feat: 初始化客运页面API接口

- 新增 TrafficApiController 客运页面专用控制器
- 实现进出站客流排名TOP10接口 (getInOutStationRank/v1)
- 实现换乘站客流排名TOP10接口 (getTransferStationRank/v1)
- 新增 SQL 查询逻辑,按单/多线路区分站点类型
- 新增缓存清理接口 (cleanCache)
- 添加完整的接口文档 (客运页面API接口文档.md)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
main
王宇航 2026-08-26 22:22:36 +08:00
commit 912037fd6d
2294 changed files with 183132 additions and 0 deletions

31
.gitignore vendored Normal file
View File

@ -0,0 +1,31 @@
# Maven
target/
*.class
*.jar
*.war
*.ear
# IDE
.idea/
.vscode/
*.iml
*.iws
*.ipr
.DS_Store
# Logs
logs/
*.log
# Frontend
node_modules/
dist/
.temp/
.cache/
# Config (可能包含敏感信息)
application-local.yml
application-dev.yml
# OS
Thumbs.db

1816
be/01.uml Normal file

File diff suppressed because it is too large Load Diff

2004
be/02.uml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jeeplus</groupId>
<artifactId>jeeplus-modules</artifactId>
<version>9.0</version>
</parent>
<artifactId>juntech-ysdp</artifactId>
<packaging>jar</packaging>
<name>juntech-ysdp</name>
<description>运三大屏</description>
<dependencies>
<dependency>
<groupId>org.jeeplus</groupId>
<artifactId>jeeplus-admin</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.jeeplus</groupId>
<artifactId>jeeplus-flowable</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.jeeplus</groupId>
<artifactId>jeeplus-quartz</artifactId>
<version>9.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,327 @@
package net.juntech.modules.ysdp.controller;
import com.jeeplus.common.redis.RedisUtils;
import com.jeeplus.config.properties.JeePlusProperties;
import com.jeeplus.security.util.EncryptUtils;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import jakarta.servlet.http.HttpServletRequest;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.ParseException;
import java.util.concurrent.TimeUnit;
/**
* @author wang
*/
public abstract class BaseApiController {
@Autowired
protected JeePlusProperties jeePlusProperties;
protected String decrytionResult = "decrytionResult";
public final static String NULL = "null";
public final static String UNDEFINED = "undefined";
ResponseEntity<JSONObject> checkResult;
@Autowired
RedisUtils redisUtils;
public String token;
/**
*
*/
protected Logger logger = LoggerFactory.getLogger(getClass());
protected HttpServletRequest request;
/**
*
*
* @param data
* @return
* @throws Exception
*/
protected Object encryptDataByConfig(Object data) throws Exception {
// if (jeePlusProperties.isEncryptEnable() && !Boolean.parseBoolean(request.getAttribute("noEncrypt").toString())) {
if (jeePlusProperties.isEncryptEnable()) {
//配置文件中是否开启SM4接口加解密,如开启则调用加密工具
///return EncryptUtils.encryptByConfig(data, token);
return EncryptUtils.encryptCbc(data.toString());
}
return data;
}
/**
*
*
* @param data
* @return
*/
protected String decryptDataByConfig(String data) throws Exception {
if (jeePlusProperties.isEncryptEnable()) {
//配置文件中是否开启SM4接口加解密,如开启则调用加密工具
return EncryptUtils.decryptByConfig(data);
}
return data;
}
/**
* null undefined
*
* @param data
* @return
*/
protected String decryptDataByConfigWithFilteNull(String data) throws ParseException {
if (jeePlusProperties.isEncryptEnable()) {
try {
//配置文件中是否开启SM4接口加解密,如开启则调用加密工具
return filterJsNull(EncryptUtils.decryptByConfig(data));
} catch (Exception ex) {
throw new ParseException(ex.toString(), 0);
}
}
return filterJsNull(data);
}
/**
* JSnullundefined
*
* @param data
* @return
*/
protected String filterJsNull(String data) {
if (StringUtils.equalsAnyIgnoreCase(data, NULL, UNDEFINED)) {
return "";
} else {
return data;
}
}
/**
* DataJSONArray
*
* @param data Data
* @return ResponseEntity
*/
protected ResponseEntity<JSONObject> okJsonResponse(JSONArray data) {
if (data != null) {
return okJsonResponse(data.toString());
} else {
return okJsonResponse("");
}
}
/**
* DataJSONArray
*
* @param data
* @param cacheKey
* @return
*/
protected ResponseEntity<JSONObject> okJsonResponse(JSONArray data, String cacheKey) {
//存入缓存,时效由全局配置参数控制
writeToRedis(cacheKey, data);
return okJsonResponse(data);
}
/**
* DataJSONArray
*
* @param data
* @param cacheKey
* @return
*/
protected ResponseEntity<JSONObject> okJsonResponse(JSONObject data, String cacheKey) {
//存入缓存,时效由全局配置参数控制
writeToRedis(cacheKey, data);
return okJsonResponse(data);
}
/**
* DataJSONObject
*
* @param data Data
* @return ResponseEntity
*/
protected ResponseEntity<JSONObject> okJsonResponse(JSONObject data) {
if (data != null) {
return okJsonResponse(data.toString());
} else {
return okJsonResponse("");
}
}
/**
* DataString
*
* @param data Data
* @return ResponseEntity
*/
protected ResponseEntity<JSONObject> okJsonResponse(String data) {
JSONObject resultObj = new JSONObject();
resultObj.put("success", true);
resultObj.put("code", HttpStatus.OK.value());
resultObj.put("msg", "请求成功!");
try {
resultObj.put("data", encryptDataByConfig(data));
} catch (Exception ex) {
resultObj.put("success", false);
resultObj.put("code", HttpStatus.BAD_REQUEST.value());
resultObj.put("msg", "请求异常!");
if (!JeePlusProperties.newInstance().isProEnv()) {
resultObj.put("error", "(异常明细仅在开发测试环境中显示)" + printStackTraceToString(ex));
}
return new ResponseEntity<>(resultObj, HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(resultObj, HttpStatus.OK);
}
/**
*
*
* @param msg
* @param ex
* @return ResponseEntity
*/
protected ResponseEntity<JSONObject> badJsonResponse(String msg, Exception ex) {
JSONObject resultObj = new JSONObject();
resultObj.put("success", false);
resultObj.put("code", HttpStatus.INTERNAL_SERVER_ERROR.value());
resultObj.put("msg", msg);
resultObj.put("data", "");
if (ex != null) {
logger.error("API接口处理发生异常:", ex);
}
if (!JeePlusProperties.newInstance().isProEnv() && ex != null) {
resultObj.put("error", "(异常明细仅在开发测试环境中显示)" + printStackTraceToString(ex));
ex.printStackTrace();
}
return new ResponseEntity<>(resultObj, HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
*
*
* @param msg
* @return
*/
protected ResponseEntity<JSONObject> badJsonResponse(String msg) {
return badJsonResponse(msg, null);
}
protected ResponseEntity<JSONObject> badJsonResponse() {
return badJsonResponse("请求异常!", null);
}
/***
*
*
* @param t
* @return
*/
public static String printStackTraceToString(Throwable t) {
StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw, true));
return sw.getBuffer().toString();
}
/**
* 使API,KEYnoCache,
*
* @param cacheKey KEY
* @param request
* @return API
*/
protected boolean useCache(String cacheKey, HttpServletRequest request) {
return redisUtils.hasKey(cacheKey) && !Boolean.parseBoolean(request.getAttribute("noCache").toString());
}
/**
*
*
* @param request
* @return
*/
protected boolean checkRequest(HttpServletRequest request) {
this.request = request;
token = request.getHeader("token");
if (request.getAttribute(decrytionResult) != null) {
checkResult = badJsonResponse(request.getAttribute(decrytionResult).toString());
return false;
}
return true;
}
/**
* ,
*
* @param cacheKey KEY
* @param resultData DATA
*/
protected void writeToRedis(String cacheKey, JSONArray resultData) {
//存入缓存,时效由全局配置参数控制
int apiCacheExpire = jeePlusProperties.getApiCacheExpire();
if (apiCacheExpire > 0) {
redisUtils.setEx(cacheKey, resultData, jeePlusProperties.getApiCacheExpire(), TimeUnit.MINUTES);
}
}
protected void writeToRedis(String cacheKey, JSONObject resultData) {
//存入缓存,时效由全局配置参数控制
int apiCacheExpire = jeePlusProperties.getApiCacheExpire();
if (apiCacheExpire > 0) {
redisUtils.setEx(cacheKey, resultData, jeePlusProperties.getApiCacheExpire(), TimeUnit.MINUTES);
}
}
/***
* SM4
* @param data
* @param request
* @return
* @throws Exception
*/
protected String encryptData(Object data, HttpServletRequest request) throws Exception {
//配置文件中是否开启SM4接口加解密,如开启则调用加密工具
if (jeePlusProperties.isEncryptEnable()) {
//token的动态密钥模式
if (jeePlusProperties.isApiEncryptTokenMode()) {
return EncryptUtils.encrypt(data, request);
} else {
//固定密钥模式
if (StringUtils.isBlank(jeePlusProperties.getApiEncryptSm4key())) {
logger.error("当前为固定密钥模式,但缺少具体密钥内容,请检查配置文件...");
throw new NoSuchFieldException();
} else {
return EncryptUtils.encrypt(data, jeePlusProperties.getApiEncryptSm4key());
}
}
}
return data.toString();
}
public static void main(String[] args) throws Exception {
String decrypt = "";
//String encrypt = EncryptUtils.encrypt("", "f46406bc0f239e3e37a093693e187da1");
// String encrypt = EncryptUtils.encrypt("yUZpFK90y6YRhm8w1KQy42nDs1kAO/puRSlssdwfQYRoUIaqSRtwyIGFuUvKFKTxr84ydt3Uo2Jmc2JP1BDQgsERDYTbBg40//h05IgyelFoNFsRc7jAsLm1bJC1/GmtB+8rpav7q/fNYFoOgBMUVqkLNtiCq6m9y2Rke6IChxvgdDLnLetyRcBwXaF880C6sR7rt9jBkjBC1t01vEottOw2ixd1/5WlWcDiLXJhPuhl/pYEH+HKERuus44T3WhrOyEr/re6Drlb4/SCxPzvZCAJGOV6z6CUjBq/S1k5D0fghIQnT9UC6CDFLrVfdwbecZki+YfFVpEZmelhfQDrfybmk0txSSNou8GBXBjBIBA=", "IZTjl9iJ");
System.out.println("加密后:" + decrypt);
//System.out.println("解密后:" + decrypt);
}
}

View File

@ -0,0 +1,152 @@
package net.juntech.modules.ysdp.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import com.jeeplus.aop.logging.annotation.ApiLog;
import net.juntech.modules.ysdp.domain.YsOperateManager;
import net.juntech.modules.ysdp.service.YsOperateManagerService;
import net.juntech.modules.ysdp.service.YsYunyingService;
import net.juntech.modules.ysdp.service.dto.YsYunyingDTO;
import net.juntech.modules.ysdp.utils.Constant;
import net.juntech.modules.ysdp.utils.JSONUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;
import jakarta.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
@Tag(name = "客运页面API接口")
@RestController
@RequestMapping(value = "/api/traffic")
public class TrafficApiController extends BaseApiController {
@Autowired
private YsYunyingService ysYunyingService;
@Autowired
private YsOperateManagerService ysOperateManagerService;
private static final String[] STATION_RANK_EXCLUDE_FIELDS = new String[]{
"id", "remarks", "createBy", "createDate", "updateBy", "updateDate",
"delFlag", "tenantId", "createTime", "createById", "updateTime",
"updateById", "updateByIdId", "createByIdId", "fileName", "pullNum",
"tenantDTO", "departureNum", "endTime", "begTime"
};
/**
* TOP10
* 线lineId
*/
@ApiLog("获取进出站客流排名TOP10")
@Operation(summary = "获取进出站客流排名TOP10")
@PostMapping("getInOutStationRank/v1")
public ResponseEntity<JSONObject> getInOutStationRank(HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_TRAFFIC_INOUT_RANK;
JSONArray resultArray = new JSONArray();
try {
if (useCache(cacheKey, request)) {
resultArray = redisUtils.getJSONArray(cacheKey);
} else {
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String compareDay = resolveCompareDay();
List<YsYunyingDTO> stationList = ysYunyingService.getInOutStationMaxList(today);
fillCompareTotal(stationList, compareDay);
resultArray = JSONUtil.getJsonArrayFormList(stationList, STATION_RANK_EXCLUDE_FIELDS);
}
} catch (Exception ex) {
return badJsonResponse("获取进出站客流排名异常", ex);
}
return okJsonResponse(resultArray, cacheKey);
}
/**
* TOP10
* 线lineId
*/
@ApiLog("获取换乘站客流排名TOP10")
@Operation(summary = "获取换乘站客流排名TOP10")
@PostMapping("getTransferStationRank/v1")
public ResponseEntity<JSONObject> getTransferStationRank(HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_TRAFFIC_TRANSFER_RANK;
JSONArray resultArray = new JSONArray();
try {
if (useCache(cacheKey, request)) {
resultArray = redisUtils.getJSONArray(cacheKey);
} else {
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String compareDay = resolveCompareDay();
List<YsYunyingDTO> stationList = ysYunyingService.getTransferStationMaxList(today);
fillCompareTotal(stationList, compareDay);
resultArray = JSONUtil.getJsonArrayFormList(stationList, STATION_RANK_EXCLUDE_FIELDS);
}
} catch (Exception ex) {
return badJsonResponse("获取换乘站客流排名异常", ex);
}
return okJsonResponse(resultArray, cacheKey);
}
/**
*
*/
@ApiLog("清理客运页面接口缓存")
@Operation(summary = "清理客运页面接口缓存")
@PostMapping("cleanCache")
public ResponseEntity<JSONObject> cleanCache(HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
try {
redisUtils.delPattern(Constant.API_CACHE_NAME_TRAFFIC_PREFIX + "*");
return okJsonResponse("缓存清理成功");
} catch (Exception ex) {
return badJsonResponse("清理缓存异常", ex);
}
}
/**
* compareDate
*/
private String resolveCompareDay() {
String compareDay = LocalDate.now().minusDays(1)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
YsOperateManager manager = ysOperateManagerService.getOne(
new QueryWrapper<YsOperateManager>().ne("del_flag", "1").last("LIMIT 1")
);
if (manager != null && manager.getCompareDate() != null && manager.getCompareDate().length() >= 10) {
compareDay = manager.getCompareDate().substring(0, 10);
}
return compareDay;
}
/**
* DTO
*/
private void fillCompareTotal(List<YsYunyingDTO> stationList, String compareDay) {
if (stationList == null || stationList.isEmpty()) {
return;
}
for (YsYunyingDTO station : stationList) {
String compareValue = ysYunyingService.getStationCompareValue(compareDay, station.getStationName());
station.setCompareTotal(compareValue);
}
}
}

View File

@ -0,0 +1,171 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import net.juntech.modules.ysdp.domain.ZnMetroStations;
import net.juntech.modules.ysdp.service.ZnMetroStationsService;
import net.juntech.modules.ysdp.service.dto.YsStationCameraDTO;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.YsCommonMonitor;
import net.juntech.modules.ysdp.service.dto.YsCommonMonitorDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsCommonMonitorWrapper;
import net.juntech.modules.ysdp.service.YsCommonMonitorService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-04-02
*/
@Tag(name = "常用视屏监控")
@RestController
@RequestMapping(value = "/ysdp/ysCommonMonitor")
public class YsCommonMonitorController {
@Autowired
private YsCommonMonitorService ysCommonMonitorService;
@Autowired
private YsCommonMonitorWrapper ysCommonMonitorWrapper;
@Autowired
private ZnMetroStationsService znMetroStationsService;
/**
*
*/
@ApiLog("查询常用视屏监控列表数据")
@Operation(summary = "查询常用视屏监控列表数据")
@PreAuthorize("hasAuthority('ysdp:ysCommonMonitor:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsCommonMonitorDTO>> list(YsCommonMonitorDTO ysCommonMonitorDTO, Page<YsCommonMonitor> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysCommonMonitorDTO, YsCommonMonitorDTO.class);
IPage<YsCommonMonitorDTO> result = ysCommonMonitorWrapper.toDTO ( ysCommonMonitorService.page (page, queryWrapper) );
List<YsCommonMonitorDTO> list = result.getRecords();
for(int i =0;i<list.size();i++) {
ZnMetroStations znMetroStations = znMetroStationsService.getById(list.get(i).getStation());
if (znMetroStations != null) {
result.getRecords().get(i).setStation(znMetroStations.getNameCn());
}
}
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取常用视屏监控数据")
@Operation(summary = "根据Id获取常用视屏监控数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysCommonMonitor:view','ysdp:ysCommonMonitor:add','ysdp:ysCommonMonitor:edit')")
@GetMapping("queryById")
public ResponseEntity<YsCommonMonitorDTO> queryById(String id) {
return ResponseEntity.ok ( ysCommonMonitorWrapper.toDTO ( ysCommonMonitorService.getById ( id ) ) );
}
/**
*
*/
@ApiLog("保存常用视屏监控")
@Operation(summary = "保存常用视屏监控")
@PreAuthorize("hasAnyAuthority('ysdp:ysCommonMonitor:add','ysdp:ysCommonMonitor:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsCommonMonitorDTO ysCommonMonitorDTO) {
//新增或编辑表单保存
ysCommonMonitorService.saveOrUpdate (ysCommonMonitorWrapper.toEntity (ysCommonMonitorDTO));
return ResponseEntity.ok ( "保存常用视屏监控成功" );
}
/**
*
*/
@ApiLog("删除常用视屏监控")
@Operation(summary = "删除常用视屏监控")
@PreAuthorize("hasAuthority('ysdp:ysCommonMonitor:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysCommonMonitorService.removeByIds ( Lists.newArrayList ( idArray ) );
return ResponseEntity.ok( "删除常用视屏监控成功" );
}
/**
*
*
* @param ysCommonMonitorDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出常用视屏监控数据")
@Operation(summary = "导出常用视屏监控数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysCommonMonitor:export')")
@GetMapping("export")
public void exportFile(YsCommonMonitorDTO ysCommonMonitorDTO, Page <YsCommonMonitor> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysCommonMonitorDTO, YsCommonMonitorDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List < YsCommonMonitor> result = ysCommonMonitorService.page ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysCommonMonitorService, ysCommonMonitorWrapper ).exportExcel ( result, options.getSheetName ( ), YsCommonMonitorDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入常用视屏监控数据板")
@Operation(summary = "导入常用视屏监控数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysCommonMonitor:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysCommonMonitorService, ysCommonMonitorWrapper ).importExcel ( file, YsCommonMonitorDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入常用视屏监控数据模板")
@Operation(summary = "下载导入常用视屏监控数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysCommonMonitor:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "常用视屏监控数据导入模板.xlsx";
List<YsCommonMonitorDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysCommonMonitorService, ysCommonMonitorWrapper ).exportExcel ( list, "常用视屏监控数据", YsCommonMonitorDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,165 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import com.jeeplus.common.redis.RedisUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import net.juntech.modules.ysdp.utils.Constant;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsDutyInfoWrapper;
import net.juntech.modules.ysdp.service.YsDutyInfoService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-03-30
*/
@Tag(name = "值班信息")
@RestController
@RequestMapping(value = "/ysdp/ysDutyInfo")
public class YsDutyInfoController {
@Autowired
private YsDutyInfoService ysDutyInfoService;
@Autowired
private YsDutyInfoWrapper ysDutyInfoWrapper;
@Autowired
RedisUtils redisUtils;
/**
*
*/
@ApiLog("查询值班信息列表数据")
@Operation(summary = "查询值班信息列表数据")
@PreAuthorize("hasAuthority('ysdp:ysDutyInfo:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsDutyInfoDTO>> list(YsDutyInfoDTO ysDutyInfoDTO, Page<YsDutyInfoDTO> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysDutyInfoDTO, YsDutyInfoDTO.class);
IPage<YsDutyInfoDTO> result = ysDutyInfoService.findPage (page, queryWrapper);
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取值班信息数据")
@Operation(summary = "根据Id获取值班信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysDutyInfo:view','ysdp:ysDutyInfo:add','ysdp:ysDutyInfo:edit')")
@GetMapping("queryById")
public ResponseEntity<YsDutyInfoDTO> queryById(String id) {
return ResponseEntity.ok ( ysDutyInfoService.findById ( id ) );
}
/**
*
*/
@ApiLog("保存值班信息")
@Operation(summary = "保存值班信息")
@PreAuthorize("hasAnyAuthority('ysdp:ysDutyInfo:add','ysdp:ysDutyInfo:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsDutyInfoDTO ysDutyInfoDTO) {
//新增或编辑表单保存
ysDutyInfoService.saveOrUpdate (ysDutyInfoDTO);
redisUtils.delPattern ( Constant.API_CACHE_NAME_GETDUTYLISTV1 );
return ResponseEntity.ok ( "保存值班信息成功" );
}
/**
*
*/
@ApiLog("删除值班信息")
@Operation(summary = "删除值班信息")
@PreAuthorize("hasAuthority('ysdp:ysDutyInfo:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
for(String id: idArray){
ysDutyInfoService.removeById ( id );
}
redisUtils.delPattern ( Constant.API_CACHE_NAME_GETDUTYLISTV1 );
return ResponseEntity.ok( "删除值班信息成功" );
}
/**
*
*
* @param ysDutyInfoDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出值班信息数据")
@Operation(summary = "导出值班信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysDutyInfo:export')")
@GetMapping("export")
public void exportFile(YsDutyInfoDTO ysDutyInfoDTO, Page <YsDutyInfoDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysDutyInfoDTO, YsDutyInfoDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "a.id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List<YsDutyInfoDTO> result = ysDutyInfoService.findPage ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysDutyInfoService, ysDutyInfoWrapper ).exportExcel ( result, options.getSheetName ( ), YsDutyInfoDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入值班信息数据")
@Operation(summary = "导入值班信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysDutyInfo:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysDutyInfoService, ysDutyInfoWrapper ).importExcel ( file, YsDutyInfoDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入值班信息数据模板")
@Operation(summary = "下载导入值班信息数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysDutyInfo:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "值班信息数据导入模板.xlsx";
List<YsDutyInfoDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysDutyInfoService, ysDutyInfoWrapper ).exportExcel ( list, "值班信息数据", YsDutyInfoDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,168 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import com.jeeplus.common.redis.RedisUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import net.juntech.modules.ysdp.utils.Constant;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.YsIndicator;
import net.juntech.modules.ysdp.service.dto.YsIndicatorDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsIndicatorWrapper;
import net.juntech.modules.ysdp.service.YsIndicatorService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-04-02
*/
@Tag(name = "年度指标")
@RestController
@RequestMapping(value = "/ysdp/ysIndicator")
public class YsIndicatorController {
@Autowired
private YsIndicatorService ysIndicatorService;
@Autowired
private YsIndicatorWrapper ysIndicatorWrapper;
@Autowired
RedisUtils redisUtils;
/**
*
*/
@ApiLog("查询年度指标列表数据")
@Operation(summary = "查询年度指标列表数据")
@PreAuthorize("hasAuthority('ysdp:ysIndicator:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsIndicatorDTO>> list(YsIndicatorDTO ysIndicatorDTO, Page<YsIndicator> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysIndicatorDTO, YsIndicatorDTO.class);
IPage<YsIndicatorDTO> result = ysIndicatorWrapper.toDTO ( ysIndicatorService.page (page, queryWrapper) );
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取年度指标数据")
@Operation(summary = "根据Id获取年度指标数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysIndicator:view','ysdp:ysIndicator:add','ysdp:ysIndicator:edit')")
@GetMapping("queryById")
public ResponseEntity<YsIndicatorDTO> queryById(String id) {
return ResponseEntity.ok ( ysIndicatorWrapper.toDTO ( ysIndicatorService.getById ( id ) ) );
}
/**
*
*/
@ApiLog("保存年度指标")
@Operation(summary = "保存年度指标")
@PreAuthorize("hasAnyAuthority('ysdp:ysIndicator:add','ysdp:ysIndicator:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsIndicatorDTO ysIndicatorDTO) {
//新增或编辑表单保存
ysIndicatorService.saveOrUpdate (ysIndicatorWrapper.toEntity (ysIndicatorDTO));
// 清除缓存
redisUtils.delPattern ( Constant.API_CACHE_NAME_GETINDICATORV1 );
return ResponseEntity.ok ( "保存年度指标成功" );
}
/**
*
*/
@ApiLog("删除年度指标")
@Operation(summary = "删除年度指标")
@PreAuthorize("hasAuthority('ysdp:ysIndicator:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysIndicatorService.removeByIds ( Lists.newArrayList ( idArray ) );
// 清除缓存
redisUtils.delPattern ( Constant.API_CACHE_NAME_GETINDICATORV1 );
return ResponseEntity.ok( "删除年度指标成功" );
}
/**
*
*
* @param ysIndicatorDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出年度指标数据")
@Operation(summary = "导出年度指标数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysIndicator:export')")
@GetMapping("export")
public void exportFile(YsIndicatorDTO ysIndicatorDTO, Page <YsIndicator> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysIndicatorDTO, YsIndicatorDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List < YsIndicator> result = ysIndicatorService.page ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysIndicatorService, ysIndicatorWrapper ).exportExcel ( result, options.getSheetName ( ), YsIndicatorDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入年度指标数据板")
@Operation(summary = "导入年度指标数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysIndicator:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysIndicatorService, ysIndicatorWrapper ).importExcel ( file, YsIndicatorDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入年度指标数据模板")
@Operation(summary = "下载导入年度指标数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysIndicator:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "年度指标数据导入模板.xlsx";
List<YsIndicatorDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysIndicatorService, ysIndicatorWrapper ).exportExcel ( list, "年度指标数据", YsIndicatorDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,214 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import com.jeeplus.common.redis.RedisUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import net.juntech.modules.ysdp.service.ZnMetroLinesService;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import net.juntech.modules.ysdp.utils.Constant;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.YsOperateManager;
import net.juntech.modules.ysdp.service.dto.YsOperateManagerDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsOperateManagerWrapper;
import net.juntech.modules.ysdp.service.YsOperateManagerService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-03-31
*/
@Tag(name = "运营信息")
@RestController
@RequestMapping(value = "/ysdp/ysOperateManager")
public class YsOperateManagerController {
@Autowired
private YsOperateManagerService ysOperateManagerService;
@Autowired
private YsOperateManagerWrapper ysOperateManagerWrapper;
String cacheKey = Constant.API_CACHE_NAME_GETOPERATEINFOV1;
@Autowired
RedisUtils redisUtils;
/**
*
*/
@ApiLog("查询运营信息列表数据")
@Operation(summary = "查询运营信息列表数据")
@PreAuthorize("hasAuthority('ysdp:ysOperateManager:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsOperateManagerDTO>> list(YsOperateManagerDTO ysOperateManagerDTO, Page<YsOperateManager> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysOperateManagerDTO, YsOperateManagerDTO.class);
IPage<YsOperateManagerDTO> result = ysOperateManagerWrapper.toDTO ( ysOperateManagerService.page (page, queryWrapper) );
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取运营信息数据")
@Operation(summary = "根据Id获取运营信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysOperateManager:view','ysdp:ysOperateManager:add','ysdp:ysOperateManager:edit')")
@GetMapping("queryById")
public ResponseEntity<YsOperateManagerDTO> queryById(String id) {
YsOperateManagerDTO YsOperateManagerDTO = ysOperateManagerWrapper.toDTO ( ysOperateManagerService.getById ( id ) );
return ResponseEntity.ok ( ysOperateManagerWrapper.toDTO ( ysOperateManagerService.getById ( id ) ) );
}
/**
*
*/
@ApiLog("保存运营信息")
@Operation(summary = "保存运营信息")
@PreAuthorize("hasAnyAuthority('ysdp:ysOperateManager:add','ysdp:ysOperateManager:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsOperateManagerDTO ysOperateManagerDTO) {
//新增或编辑表单保存
ysOperateManagerService.saveOrUpdate (ysOperateManagerWrapper.toEntity (ysOperateManagerDTO));
//存在更新时清空API缓存,使接口重新获取
redisUtils.delPattern(cacheKey);
// 删除客流
redisUtils.delPattern(Constant.API_CACHE_NAME_GETYUNYINGINFOV1);
redisUtils.delPattern(Constant.API_CACHE_NAME_GETSTATIONMAXLISTV1);
return ResponseEntity.ok ( "保存运营信息成功" );
}
/**
*
*/
@ApiLog("删除运营信息")
@Operation(summary = "删除运营信息")
@PreAuthorize("hasAuthority('ysdp:ysOperateManager:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysOperateManagerService.removeByIds ( Lists.newArrayList ( idArray ) );
redisUtils.delPattern(cacheKey);
return ResponseEntity.ok( "删除运营信息成功" );
}
/**
*
*
* @param ysOperateManagerDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出运营信息数据")
@Operation(summary = "导出运营信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysOperateManager:export')")
@GetMapping("export")
public void exportFile(YsOperateManagerDTO ysOperateManagerDTO, Page <YsOperateManager> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysOperateManagerDTO, YsOperateManagerDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List < YsOperateManager> result = ysOperateManagerService.page ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysOperateManagerService, ysOperateManagerWrapper ).exportExcel ( result, options.getSheetName ( ), YsOperateManagerDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入运营信息数据板")
@Operation(summary = "导入运营信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysOperateManager:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysOperateManagerService, ysOperateManagerWrapper ).importExcel ( file, YsOperateManagerDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入运营信息数据模板")
@Operation(summary = "下载导入运营信息数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysOperateManager:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "运营信息数据导入模板.xlsx";
List<YsOperateManagerDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysOperateManagerService, ysOperateManagerWrapper ).exportExcel ( list, "运营信息数据", YsOperateManagerDTO.class, fileName, null, response );
}
/**
*
*/
@ApiLog("查询站点监控列表数据")
@Operation(summary = "查询站点监控列表数据")
@PreAuthorize("hasAuthority('ysdp:ysOperateManager:edit')")
@GetMapping("getStationCameraLines")
public ResponseEntity<List<ZnMetroLinesDTO>> getStationCameraLines() throws Exception {
List<ZnMetroLinesDTO> result = ysOperateManagerService.getStationCameraLines();
return ResponseEntity.ok (result);
}
/**
*
*/
@ApiLog("查询站点监控列表数据")
@Operation(summary = "查询站点监控列表数据")
@PreAuthorize("hasAuthority('ysdp:ysOperateManager:edit')")
@GetMapping("getStationCameras")
public ResponseEntity<List<ZnMetroStationsDTO>> getStationCameras(String id) throws Exception {
List<ZnMetroStationsDTO> result = ysOperateManagerService.getStationCameras(id);
return ResponseEntity.ok (result);
}
/**
*
*/
@ApiLog("查询站点监控列表数据")
@Operation(summary = "查询站点监控列表数据")
@PreAuthorize("hasAuthority('ysdp:ysOperateManager:edit')")
@GetMapping("getStationMonitor")
public ResponseEntity<List<ZnMetroStationsDTO>> getStationMonitor(String id) throws Exception {
List<ZnMetroStationsDTO> result = ysOperateManagerService.getStationMonitor(id);
return ResponseEntity.ok (result);
}
}

View File

@ -0,0 +1,173 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import net.juntech.modules.ysdp.domain.ZnMetroStations;
import net.juntech.modules.ysdp.service.ZnMetroLinesService;
import net.juntech.modules.ysdp.service.ZnMetroStationsService;
import net.juntech.modules.ysdp.service.dto.YsOperateManagerDTO;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.YsStationCamera;
import net.juntech.modules.ysdp.service.dto.YsStationCameraDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsStationCameraWrapper;
import net.juntech.modules.ysdp.service.YsStationCameraService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-03-31
*/
@Tag(name = "站点监控管理")
@RestController
@RequestMapping(value = "/ysdp/ysStationCamera")
public class YsStationCameraController {
@Autowired
private YsStationCameraService ysStationCameraService;
@Autowired
private YsStationCameraWrapper ysStationCameraWrapper;
@Autowired
private ZnMetroStationsService znMetroStationsService;
/**
*
*/
@ApiLog("查询站点监控管理列表数据")
@Operation(summary = "查询站点监控管理列表数据")
@PreAuthorize("hasAuthority('ysdp:ysStationCamera:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsStationCameraDTO>> list(YsStationCameraDTO ysStationCameraDTO, Page<YsStationCamera> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysStationCameraDTO, YsStationCameraDTO.class);
IPage<YsStationCameraDTO> result = ysStationCameraWrapper.toDTO ( ysStationCameraService.page (page, queryWrapper) );
List<YsStationCameraDTO> list = result.getRecords();
for(int i =0;i<list.size();i++) {
ZnMetroStations znMetroStations = znMetroStationsService.getById(list.get(i).getStation());
if (znMetroStations != null) {
result.getRecords().get(i).setStation(znMetroStations.getNameCn());
}
}
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取站点监控管理数据")
@Operation(summary = "根据Id获取站点监控管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysStationCamera:view','ysdp:ysStationCamera:add','ysdp:ysStationCamera:edit')")
@GetMapping("queryById")
public ResponseEntity<YsStationCameraDTO> queryById(String id) {
return ResponseEntity.ok ( ysStationCameraWrapper.toDTO ( ysStationCameraService.getById ( id ) ) );
}
/**
*
*/
@ApiLog("保存站点监控管理")
@Operation(summary = "保存站点监控管理")
@PreAuthorize("hasAnyAuthority('ysdp:ysStationCamera:add','ysdp:ysStationCamera:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsStationCameraDTO ysStationCameraDTO) {
//新增或编辑表单保存
ysStationCameraService.saveOrUpdate (ysStationCameraWrapper.toEntity (ysStationCameraDTO));
return ResponseEntity.ok ( "保存站点监控管理成功" );
}
/**
*
*/
@ApiLog("删除站点监控管理")
@Operation(summary = "删除站点监控管理")
@PreAuthorize("hasAuthority('ysdp:ysStationCamera:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysStationCameraService.removeByIds ( Lists.newArrayList ( idArray ) );
return ResponseEntity.ok( "删除站点监控管理成功" );
}
/**
*
*
* @param ysStationCameraDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出站点监控管理数据")
@Operation(summary = "导出站点监控管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysStationCamera:export')")
@GetMapping("export")
public void exportFile(YsStationCameraDTO ysStationCameraDTO, Page <YsStationCamera> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysStationCameraDTO, YsStationCameraDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List < YsStationCamera> result = ysStationCameraService.page ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysStationCameraService, ysStationCameraWrapper ).exportExcel ( result, options.getSheetName ( ), YsStationCameraDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入站点监控管理数据板")
@Operation(summary = "导入站点监控管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysStationCamera:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysStationCameraService, ysStationCameraWrapper ).importExcel ( file, YsStationCameraDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入站点监控管理数据模板")
@Operation(summary = "下载导入站点监控管理数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysStationCamera:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "站点监控管理数据导入模板.xlsx";
List<YsStationCameraDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysStationCameraService, ysStationCameraWrapper ).exportExcel ( list, "站点监控管理数据", YsStationCameraDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,191 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import com.jeeplus.common.redis.RedisUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import net.juntech.modules.ysdp.utils.Constant;
import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.YsTaskNotice;
import net.juntech.modules.ysdp.service.dto.YsTaskNoticeDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsTaskNoticeWrapper;
import net.juntech.modules.ysdp.service.YsTaskNoticeService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-04-21
*/
@Tag(name = "走码字")
@RestController
@RequestMapping(value = "/ysdp/ysTaskNotice")
public class YsTaskNoticeController {
@Autowired
private YsTaskNoticeService ysTaskNoticeService;
@Autowired
private YsTaskNoticeWrapper ysTaskNoticeWrapper;
@Autowired
private RedisUtils redisUtils;
/**
*
*/
@ApiLog("查询走码字列表数据")
@Operation(summary = "查询走码字列表数据")
@PreAuthorize("hasAuthority('ysdp:ysTaskNotice:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsTaskNoticeDTO>> list(YsTaskNoticeDTO ysTaskNoticeDTO, Page<YsTaskNotice> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysTaskNoticeDTO, YsTaskNoticeDTO.class);
IPage<YsTaskNoticeDTO> result = ysTaskNoticeWrapper.toDTO ( ysTaskNoticeService.page (page, queryWrapper) );
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取走码字数据")
@Operation(summary = "根据Id获取走码字数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysTaskNotice:view','ysdp:ysTaskNotice:add','ysdp:ysTaskNotice:edit')")
@GetMapping("queryById")
public ResponseEntity<YsTaskNoticeDTO> queryById(String id) {
return ResponseEntity.ok ( ysTaskNoticeWrapper.toDTO ( ysTaskNoticeService.getById ( id ) ) );
}
/**
*
*/
@ApiLog("保存走码字")
@Operation(summary = "保存走码字")
@PreAuthorize("hasAnyAuthority('ysdp:ysTaskNotice:add','ysdp:ysTaskNotice:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsTaskNoticeDTO ysTaskNoticeDTO) {
//新增或编辑表单保存
ysTaskNoticeService.saveOrUpdate (ysTaskNoticeWrapper.toEntity (ysTaskNoticeDTO));
// 清除缓存
redisUtils.delPattern ( Constant.API_CACHE_NAME_GETTASKNOTICEV1 );
return ResponseEntity.ok ( "保存走码字成功" );
}
/**
*
*/
@ApiLog("删除走码字")
@Operation(summary = "删除走码字")
@PreAuthorize("hasAuthority('ysdp:ysTaskNotice:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysTaskNoticeService.removeByIds ( Lists.newArrayList ( idArray ) );
return ResponseEntity.ok( "删除走码字成功" );
}
/**
*
*
* @param ysTaskNoticeDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出走码字数据")
@Operation(summary = "导出走码字数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysTaskNotice:export')")
@GetMapping("export")
public void exportFile(YsTaskNoticeDTO ysTaskNoticeDTO, Page <YsTaskNotice> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysTaskNoticeDTO, YsTaskNoticeDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List < YsTaskNotice> result = ysTaskNoticeService.page ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysTaskNoticeService, ysTaskNoticeWrapper ).exportExcel ( result, options.getSheetName ( ), YsTaskNoticeDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入走码字数据板")
@Operation(summary = "导入走码字数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysTaskNotice:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysTaskNoticeService, ysTaskNoticeWrapper ).importExcel ( file, YsTaskNoticeDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入走码字数据模板")
@Operation(summary = "下载导入走码字数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysTaskNotice:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "走码字数据导入模板.xlsx";
List<YsTaskNoticeDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysTaskNoticeService, ysTaskNoticeWrapper ).exportExcel ( list, "走码字数据", YsTaskNoticeDTO.class, fileName, null, response );
}
@ApiLog("更新状态")
@Operation(summary = "更新状态")
@PreAuthorize("hasAnyAuthority('ysdp:ysTaskNotice:add','ysdp:ysTaskNotice:edit')")
@PostMapping("updateStatus")
public ResponseEntity <String> updateStatus(String id) {
//新增或编辑表单保存
YsTaskNoticeDTO ysTaskNoticeDTO = new YsTaskNoticeDTO();
JSONObject json = JSONObject.fromObject(id);
try {
ysTaskNoticeDTO.setId(json.getString("id"));
ysTaskNoticeDTO.setStatus(json.getBoolean("status"));
ysTaskNoticeService.saveOrUpdate (ysTaskNoticeWrapper.toEntity (ysTaskNoticeDTO));
// 清除缓存
redisUtils.delPattern ( Constant.API_CACHE_NAME_GETTASKNOTICEV1 );
} catch (JSONException e) {
e.printStackTrace();
}
return ResponseEntity.ok ( "更新状态成功" );
}
}

View File

@ -0,0 +1,158 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.service.dto.YsYunyingDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsYunyingWrapper;
import net.juntech.modules.ysdp.service.YsYunyingService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wq
* @version 2026-03-30
*/
@Tag(name = "客流信息")
@RestController
@RequestMapping(value = "/ysdp/ysYunying")
public class YsYunyingController {
@Autowired
private YsYunyingService ysYunyingService;
@Autowired
private YsYunyingWrapper ysYunyingWrapper;
/**
*
*/
@ApiLog("查询客流信息列表数据")
@Operation(summary = "查询客流信息列表数据")
@PreAuthorize("hasAuthority('ysdp:ysYunying:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsYunyingDTO>> list(YsYunyingDTO ysYunyingDTO, Page<YsYunyingDTO> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysYunyingDTO, YsYunyingDTO.class);
IPage<YsYunyingDTO> result = ysYunyingService.findPage (page, queryWrapper);
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取客流信息数据")
@Operation(summary = "根据Id获取客流信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunying:view','ysdp:ysYunying:add','ysdp:ysYunying:edit')")
@GetMapping("queryById")
public ResponseEntity<YsYunyingDTO> queryById(String id) {
return ResponseEntity.ok ( ysYunyingService.findById ( id ) );
}
/**
*
*/
@ApiLog("保存客流信息")
@Operation(summary = "保存客流信息")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunying:add','ysdp:ysYunying:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsYunyingDTO ysYunyingDTO) {
//新增或编辑表单保存
ysYunyingService.saveOrUpdate (ysYunyingWrapper.toEntity (ysYunyingDTO));
return ResponseEntity.ok ( "保存客流信息成功" );
}
/**
*
*/
@ApiLog("删除客流信息")
@Operation(summary = "删除客流信息")
@PreAuthorize("hasAuthority('ysdp:ysYunying:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysYunyingService.removeByIds ( Lists.newArrayList ( idArray ) );
return ResponseEntity.ok( "删除客流信息成功" );
}
/**
*
*
* @param ysYunyingDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出客流信息数据")
@Operation(summary = "导出客流信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunying:export')")
@GetMapping("export")
public void exportFile(YsYunyingDTO ysYunyingDTO, Page <YsYunyingDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysYunyingDTO, YsYunyingDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "a.id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List<YsYunyingDTO> result = ysYunyingService.findPage ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysYunyingService, ysYunyingWrapper ).exportExcel ( result, options.getSheetName ( ), YsYunyingDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入客流信息数据板")
@Operation(summary = "导入客流信息数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunying:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysYunyingService, ysYunyingWrapper ).importExcel ( file, YsYunyingDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入客流信息数据模板")
@Operation(summary = "下载导入客流信息数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysYunying:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "客流信息数据导入模板.xlsx";
List<YsYunyingDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysYunyingService, ysYunyingWrapper ).exportExcel ( list, "客流信息数据", YsYunyingDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,159 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.YsYunyingMax;
import net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsYunyingMaxWrapper;
import net.juntech.modules.ysdp.service.YsYunyingMaxService;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* 线Controller
* @author wq
* @version 2026-04-07
*/
@Tag(name = "线路最大客流")
@RestController
@RequestMapping(value = "/ysdp/ysYunyingMax")
public class YsYunyingMaxController {
@Autowired
private YsYunyingMaxService ysYunyingMaxService;
@Autowired
private YsYunyingMaxWrapper ysYunyingMaxWrapper;
/**
* 线
*/
@ApiLog("查询线路最大客流列表数据")
@Operation(summary = "查询线路最大客流列表数据")
@PreAuthorize("hasAuthority('ysdp:ysYunyingMax:list')")
@GetMapping("list")
public ResponseEntity<IPage<YsYunyingMaxDTO>> list(YsYunyingMaxDTO ysYunyingMaxDTO, Page<YsYunyingMax> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysYunyingMaxDTO, YsYunyingMaxDTO.class);
IPage<YsYunyingMaxDTO> result = ysYunyingMaxWrapper.toDTO ( ysYunyingMaxService.page (page, queryWrapper) );
return ResponseEntity.ok (result);
}
/**
* Id线
*/
@ApiLog("根据Id获取线路最大客流数据")
@Operation(summary = "根据Id获取线路最大客流数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunyingMax:view','ysdp:ysYunyingMax:add','ysdp:ysYunyingMax:edit')")
@GetMapping("queryById")
public ResponseEntity<YsYunyingMaxDTO> queryById(String id) {
return ResponseEntity.ok ( ysYunyingMaxWrapper.toDTO ( ysYunyingMaxService.getById ( id ) ) );
}
/**
* 线
*/
@ApiLog("保存线路最大客流")
@Operation(summary = "保存线路最大客流")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunyingMax:add','ysdp:ysYunyingMax:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody YsYunyingMaxDTO ysYunyingMaxDTO) {
//新增或编辑表单保存
ysYunyingMaxService.saveOrUpdate (ysYunyingMaxWrapper.toEntity (ysYunyingMaxDTO));
return ResponseEntity.ok ( "保存线路最大客流成功" );
}
/**
* 线
*/
@ApiLog("删除线路最大客流")
@Operation(summary = "删除线路最大客流")
@PreAuthorize("hasAuthority('ysdp:ysYunyingMax:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
ysYunyingMaxService.removeByIds ( Lists.newArrayList ( idArray ) );
return ResponseEntity.ok( "删除线路最大客流成功" );
}
/**
* 线
*
* @param ysYunyingMaxDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出线路最大客流数据")
@Operation(summary = "导出线路最大客流数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunyingMax:export')")
@GetMapping("export")
public void exportFile(YsYunyingMaxDTO ysYunyingMaxDTO, Page <YsYunyingMax> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (ysYunyingMaxDTO, YsYunyingMaxDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List < YsYunyingMax> result = ysYunyingMaxService.page ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( ysYunyingMaxService, ysYunyingMaxWrapper ).exportExcel ( result, options.getSheetName ( ), YsYunyingMaxDTO.class, fileName,options.getExportFields (), response );
}
/**
* 线
*
* @return
*/
@ApiLog("导入线路最大客流数据板")
@Operation(summary = "导入线路最大客流数据")
@PreAuthorize("hasAnyAuthority('ysdp:ysYunyingMax:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( ysYunyingMaxService, ysYunyingMaxWrapper ).importExcel ( file, YsYunyingMaxDTO.class );
return ResponseEntity.ok ( result );
}
/**
* 线
*
* @param response
* @return
*/
@ApiLog("下载导入线路最大客流数据模板")
@Operation(summary = "下载导入线路最大客流数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:ysYunyingMax:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "线路最大客流数据导入模板.xlsx";
List<YsYunyingMaxDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( ysYunyingMaxService, ysYunyingMaxWrapper ).exportExcel ( list, "线路最大客流数据", YsYunyingMaxDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,393 @@
package net.juntech.modules.ysdp.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jeeplus.config.properties.JeePlusProperties;
import com.jeeplus.core.query.QueryWrapperGenerator;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import com.jeeplus.aop.logging.annotation.ApiLog;
import net.juntech.modules.ysdp.domain.*;
import net.juntech.modules.ysdp.service.*;
import net.juntech.modules.ysdp.service.dto.*;
import net.juntech.modules.ysdp.utils.Constant;
import net.juntech.modules.ysdp.utils.JSONUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;
import jakarta.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@Tag( name = "运三大屏二期API接口")
@RestController
@RequestMapping(value = "/api")
public class YsdpApiController extends BaseApiController {
@Value("${operateid}")
private String operateId;
@Autowired
private YsOperateManagerService ysOperateManagerService;
@Autowired
private YsDutyInfoService ysDutyInfoService;
@Autowired
private YsDutyInfoDetailService ysDutyInfoDetailService;
@Autowired
private YsIndicatorService ysIndicatorService;
@Autowired
private YsCommonMonitorService ysCommonMonitorService;
@Autowired
private YsYunyingService ysYunyingService;
@Autowired
private YsYunyingMaxService ysYunyingMaxService;
@Autowired
private YsTaskNoticeService ysTaskNoticeService;
@ApiLog("测试Sm4加密")
@Operation(summary = "测试Sm4加密")
@PostMapping("sm4Test")
public ResponseEntity<JSONObject> sm4Test(@RequestParam(value = "text", required = false, defaultValue = "") String text, HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
return okJsonResponse(text);
}
@ApiLog("获取运营信息")
@Operation(summary = "获取运营信息")
@PostMapping("getOperateInfo/v1")
public ResponseEntity<JSONObject> getOperateInfo( HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_GETOPERATEINFOV1;
JSONObject resultObj = new JSONObject();
try {
if (useCache(cacheKey, request)) {
resultObj = redisUtils.getJSON(cacheKey);
} else {
YsOperateManager ysOperateManager = ysOperateManagerService.getById(operateId);
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId"};
resultObj = JSONUtil.getJsonObjectFromObject(ysOperateManager, excludesFields);
}
} catch (Exception ex) {
return badJsonResponse("APP获取运营信息异常", ex);
}
return okJsonResponse(resultObj, cacheKey);
}
@ApiLog("获取值班信息")
@Operation(summary = "获取值班信息")
@PostMapping("getDutyList/v1")
public ResponseEntity<JSONObject> getDutyList( HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_GETDUTYLISTV1;
JSONArray resultArray = new JSONArray();
try {
if (useCache(cacheKey, request)) {
resultArray = redisUtils.getJSONArray(cacheKey);
} else {
//获取当前时间
// 获取当前日期(只含年月日)
LocalDate now = LocalDate.now();
// 格式化输出yyyy-MM-dd
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String currentDate = now.format(formatter);
QueryWrapper queryWrapper = new QueryWrapper<YsDutyInfo>().ne("del_flag", "1").last("limit 1");
queryWrapper.eq("dutydate",currentDate);
YsDutyInfo ysDutyInfo = ysDutyInfoService.getOne(queryWrapper);
if (ysDutyInfo != null) {
List<YsDutyInfoDetailDTO> ysDutyInfoDetailDTOList = ysDutyInfoDetailService.findList(ysDutyInfo.getId());
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId", "dutyid", "tenantDTO", "dept"};
resultArray = JSONUtil.getJsonArrayFormList(ysDutyInfoDetailDTOList, excludesFields);
}
}
} catch (Exception ex) {
return badJsonResponse("APP获取值班信息异常", ex);
}
return okJsonResponse(resultArray, cacheKey);
}
@ApiLog("获取年度指标")
@Operation(summary = "获取年度指标")
@PostMapping("getIndicator/v1")
public ResponseEntity<JSONObject> getIndicator( HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_GETINDICATORV1;
JSONArray resultArray = new JSONArray();
try {
if (useCache(cacheKey, request)) {
resultArray = redisUtils.getJSONArray(cacheKey);
} else {
//获取当前时间
// 获取当前日期(只含年月日)
LocalDate now = LocalDate.now();
// 格式化输出yyyy-MM-dd
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
String year = now.format(formatter);
QueryWrapper queryWrapper = new QueryWrapper<YsIndicator>().ne("del_flag", "1").orderByAsc("sort").orderByDesc("update_time");
queryWrapper.eq("nd",year);
List<YsIndicator> ysIndicatorList = ysIndicatorService.list(queryWrapper);
if (ysIndicatorList != null) {
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId", "dutyid", "tenantDTO", "dept"};
resultArray = JSONUtil.getJsonArrayFormList(ysIndicatorList, excludesFields);
}
}
} catch (Exception ex) {
return badJsonResponse("APP获取年度指标信息异常", ex);
}
return okJsonResponse(resultArray, cacheKey);
}
@ApiLog("获取常用监控")
@Operation(summary = "获取常用监控")
@PostMapping("getCommonMonitor/v1")
public ResponseEntity<JSONObject> getCommonMonitor( HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_GETCOMMONMONITORV1;
JSONArray resultArray = new JSONArray();
try {
if (useCache(cacheKey, request)) {
resultArray = redisUtils.getJSONArray(cacheKey);
} else {
List<YsCommonMonitorDTO> ysCommonMonitorList = ysCommonMonitorService.getCommonMonitorList();
if (ysCommonMonitorList != null) {
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId", "dutyid", "tenantDTO", "dept"};
resultArray = JSONUtil.getJsonArrayFormList(ysCommonMonitorList, excludesFields);
}
}
} catch (Exception ex) {
return badJsonResponse("APP获取常用监控信息异常", ex);
}
return okJsonResponse(resultArray, cacheKey);
}
@ApiLog("获取线路客流信息")
@Operation(summary = "获取线路客流信息")
@PostMapping("getYunyingInfo/v1")
public ResponseEntity<JSONObject> getYunyingInfo(HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
final String cacheKey = Constant.API_CACHE_NAME_GETYUNYINGINFOV1;
JSONArray resultArray = new JSONArray();
try {
// 1. 缓存读取
if (useCache(cacheKey, request)) {
return okJsonResponse(redisUtils.getJSONArray(cacheKey), cacheKey);
}
// ===================== 日期处理(自动今天 / 前一天,不写死)=====================
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String today = now.format(formatter); // 今天
//today = "2026-03-30";
String compareDay = now.minusDays(1).format(formatter); // 对比日:前一天
// 配置覆盖对比日期
YsOperateManager manager = ysOperateManagerService.getOne(
new QueryWrapper<YsOperateManager>()
.ne("del_flag", "1")
.last("LIMIT 1")
);
if (manager != null) {
compareDay = manager.getCompareDate().substring(0,10);
}
//compareDay = "2026-03-01";
// ===================== 查询数据 =====================
List<YsYunyingMaxDTO> todayList = ysYunyingService.getYunyingList(today);
List<YsYunyingMaxDTO> compareList = ysYunyingService.getYunyingList(compareDay);
List<YsYunyingMax> maxList = ysYunyingMaxService.getYunyinglist();
// 空值保护
todayList = Optional.ofNullable(todayList).orElse(Collections.emptyList());
compareList = Optional.ofNullable(compareList).orElse(Collections.emptyList());
maxList = Optional.ofNullable(maxList).orElse(Collections.emptyList());
// ===================== 按线路聚合03、04、07、15=====================
// 目标线路
List<String> targetLines = Arrays.asList("03", "04", "07", "15");
// ===================== 按线路聚合:今天完整数据 + 对比日 + 历史最高 =====================
for (String lineId : targetLines) {
// 1. 获取今天的完整对象包含所有时间段字段time1~time10
YsYunyingMaxDTO today1 = todayList.stream()
.filter(dto -> lineId.equals(dto.getLineId()))
.findFirst()
.orElse(new YsYunyingMaxDTO()); // 不存在则给空对象,避免空指针
YsYunyingMaxDTO compare1 = compareList.stream()
.filter(dto -> lineId.equals(dto.getLineId()))
.findFirst()
.orElse(new YsYunyingMaxDTO()); // 不存在则给空对象,
YsYunyingMax max1 = maxList.stream()
.filter(dto -> lineId.equals(dto.getLineId()))
.findFirst()
.orElse(new YsYunyingMax()); // 不存在则给空对象,
// 2. 转为 JSONObject保留所有字段
JSONObject result = new JSONObject();
// 5. 统一放入结果
result.put("line", lineId);
result.put("todayDate", today);
result.put("compareDate", compareDay);
result.put("today", today1);
result.put("compareDay", compare1);
result.put("maxDay", max1);
resultArray.add(result);
}
} catch (Exception ex) {
return badJsonResponse("APP获取线路客流信息异常", ex);
}
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId", "lineId","tenantDTO"};
resultArray = JSONUtil.getJsonArrayFormList(resultArray, excludesFields);
return okJsonResponse(resultArray, cacheKey);
}
@ApiLog("获取今日最大10个站客流信息")
@Operation(summary = "获取今日最大10个站客流信息")
@PostMapping("getStationMaxList/v1")
public ResponseEntity<JSONObject> getStationMaxList( HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
String cacheKey = Constant.API_CACHE_NAME_GETSTATIONMAXLISTV1;
JSONArray resultArray = new JSONArray();
try {
if (useCache(cacheKey, request)) {
resultArray = redisUtils.getJSONArray(cacheKey);
} else {
// 获取当前时间年月日
LocalDate now = LocalDate.now();
// 格式化输出yyyy-MM-dd
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String today = now.format(formatter);
// today = "2026-03-02";
// ===================== 日期处理(自动今天 / 前一天,不写死)=====================// 今天
String compareDay = now.minusDays(1).format(formatter); // 对比日:前一天
// 配置覆盖对比日期
YsOperateManager manager = ysOperateManagerService.getOne(
new QueryWrapper<YsOperateManager>()
.ne("del_flag", "1")
.last("LIMIT 1")
);
if (manager != null) {
compareDay = manager.getCompareDate().substring(0,10);
}
List<YsYunyingDTO> stationMaxList = ysYunyingService.getStationMaxList(today);
for (int i =0 ; i<stationMaxList.size(); i++) {
String stationCompareValue = ysYunyingService.getStationCompareValue(compareDay, stationMaxList.get(i).getStationName());
stationMaxList.get(i).setCompareTotal(stationCompareValue);
}
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId", "fileName", "pullNum", "tenantDTO", "departureNum", "endTime", "begTime"};
resultArray = JSONUtil.getJsonArrayFormList(stationMaxList, excludesFields);
}
} catch (Exception ex) {
return badJsonResponse("APP获取线路客流信息异常", ex);
}
return okJsonResponse(resultArray, cacheKey);
}
@ApiLog("获取今日天气")
@Operation(summary = "获取今日天气")
@PostMapping("getQxjGdybHour/v1")
public ResponseEntity<JSONObject> getQxjGdybHour( HttpServletRequest request) {
if (!checkRequest(request)) {
return checkResult;
}
JSONObject json = new JSONObject();
try {
String tq= "";
//获取启用状态的所有视频监控集合
YsInterfaceDTO ysInterface = ysYunyingService.getInterface("qxj-gdyb-hour");
if (ysInterface != null) {
tq =ysInterface.getData().replace("[","").replace("]","");
} else {
}
JSONObject tt =JSONObject.fromObject(tq);
json.put("tq",tt);
} catch (Exception ex) {
return badJsonResponse("API天气出现异常", ex);
}
return okJsonResponse(json);
}
@ApiLog("清理所有接口缓存")
@Operation(summary = "清理所有接口缓存")
@PostMapping("cleanApiCache")
public void cleanApiCache(HttpServletRequest request) {
//存在更新时清空API缓存,使接口重新获取
redisUtils.delPattern(Constant.API_);
}
@ApiLog("API获取任务公告列表")
@Operation(summary = "API获取任务公告列表")
@PostMapping("getTaskNotice/v1")
public ResponseEntity<JSONObject> getTaskNoticeList(HttpServletRequest request) {
if (request.getAttribute(decrytionResult) != null) {
return badJsonResponse(request.getAttribute(decrytionResult).toString());
}
String cacheKey = Constant.API_CACHE_NAME_GETTASKNOTICEV1;
JSONObject resultObject;
try {
if (useCache(cacheKey, request)) {
resultObject = redisUtils.getJSON(cacheKey);
} else {
YsTaskNoticeDTO ysTaskNoticeDTO = new YsTaskNoticeDTO();
//获取启用状态的所有视频监控集合
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition(ysTaskNoticeDTO, YsTaskNoticeDTO.class).eq("status", "1").eq("del_flag", "0").orderByDesc("update_time").orderByAsc("no").last("limit 1");
YsTaskNotice ysTaskNotice = ysTaskNoticeService.getOne(queryWrapper);
String[] excludesFields = new String[]{"id", "remarks", "createBy", "createDate", "updateBy", "updateDate", "delFlag", "tenantId", "createTime", "createById", "updateTime", "updateById", "updateByIdId", "createByIdId", "fileName", "pullNum", "tenantDTO", "departureNum", "endTime", "begTime"};
resultObject = JSONUtil.getJsonObjectFromObject(ysTaskNotice, excludesFields);
}
} catch (Exception ex) {
return badJsonResponse("API获取任务公告列表列表出现异常", ex);
}
return okJsonResponse(resultObject);
}
}

View File

@ -0,0 +1,179 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.common.redis.RedisUtils;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import net.juntech.modules.ysdp.domain.ZnMetroLines;
import net.juntech.modules.ysdp.service.ZnMetroLinesService;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import net.juntech.modules.ysdp.service.mapstruct.ZnMetroLinesWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* 线Controller
* @author wang/mcgu
* @version 2025-05-08
*/
@Tag(name = "线路管理")
@RestController
@RequestMapping(value = "/ysdp/znMetroLines")
public class ZnMetroLinesController {
@Autowired
private ZnMetroLinesService znMetroLinesService;
@Autowired
private ZnMetroLinesWrapper znMetroLinesWrapper;
@Autowired
private RedisUtils redisUtils;
/**
* 线
*/
@ApiLog("查询线路管理列表数据")
@Operation(summary = "查询线路管理列表数据")
@PreAuthorize("hasAuthority('ysdp:znMetroLines:list')")
@GetMapping("list")
public ResponseEntity<IPage<ZnMetroLinesDTO>> list(ZnMetroLinesDTO znMetroLinesDTO, Page<ZnMetroLinesDTO> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (znMetroLinesDTO, ZnMetroLinesDTO.class);
IPage<ZnMetroLinesDTO> result = znMetroLinesService.findPage (page, queryWrapper);
return ResponseEntity.ok (result);
}
/**
* Id线
*/
@ApiLog("根据Id获取线路管理数据")
@Operation(summary = "根据Id获取线路管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroLines:view','ysdp:znMetroLines:add','ysdp:znMetroLines:edit')")
@GetMapping("queryById")
public ResponseEntity<ZnMetroLinesDTO> queryById(String id) {
return ResponseEntity.ok ( znMetroLinesService.findById ( id ) );
}
/**
* 线Id线
*/
@PreAuthorize("hasAnyAuthority('ysdp:znMetroLines:view','ysdp:znMetroLines:add','ysdp:znMetroLines:edit')")
@GetMapping("queryByLineId")
public ResponseEntity<ZnMetroLines> queryByLineId(ZnMetroLinesDTO metroLines) {
QueryWrapper<ZnMetroLines> queryWrapper = new QueryWrapper();
queryWrapper.eq("line_id", metroLines.getLineId());
List<ZnMetroLines> metroLinesList = znMetroLinesService.list(queryWrapper);
return ResponseEntity.ok(metroLinesList.size() > 0 ? metroLinesList.get(0) : new ZnMetroLines());
}
/**
* 线
*/
@ApiLog("保存线路管理")
@Operation(summary = "保存线路管理")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroLines:add','ysdp:znMetroLines:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody ZnMetroLinesDTO znMetroLinesDTO) {
//新增或编辑表单保存
znMetroLinesService.saveOrUpdate (znMetroLinesWrapper.toEntity (znMetroLinesDTO));
//存在更新时清空API缓存,使接口重新获取
redisUtils.delPattern("api_*");
return ResponseEntity.ok ( "保存线路管理成功" );
}
/**
* 线
*/
@ApiLog("删除线路管理")
@Operation(summary = "删除线路管理")
@PreAuthorize("hasAuthority('ysdp:znMetroLines:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
znMetroLinesService.removeByIds ( Lists.newArrayList ( idArray ) );
return ResponseEntity.ok( "删除线路管理成功" );
}
/**
* 线
*
* @param znMetroLinesDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出线路管理数据")
@Operation(summary = "导出线路管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroLines:export')")
@GetMapping("export")
public void exportFile(ZnMetroLinesDTO znMetroLinesDTO, Page <ZnMetroLinesDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (znMetroLinesDTO, ZnMetroLinesDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "a.id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List<ZnMetroLinesDTO> result = znMetroLinesService.findPage ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( znMetroLinesService, znMetroLinesWrapper ).exportExcel ( result, options.getSheetName ( ), ZnMetroLinesDTO.class, fileName,options.getExportFields (), response );
}
/**
* 线
*
* @return
*/
@ApiLog("导入线路管理数据板")
@Operation(summary = "导入线路管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroLines:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( znMetroLinesService, znMetroLinesWrapper ).importExcel ( file, ZnMetroLinesDTO.class );
return ResponseEntity.ok ( result );
}
/**
* 线
*
* @param response
* @return
*/
@ApiLog("下载导入线路管理数据模板")
@Operation(summary = "下载导入线路管理数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:znMetroLines:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "线路管理数据导入模板.xlsx";
List<ZnMetroLinesDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( znMetroLinesService, znMetroLinesWrapper ).exportExcel ( list, "线路管理数据", ZnMetroLinesDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,173 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.jeeplus.aop.logging.annotation.ApiLog;
import com.jeeplus.common.redis.RedisUtils;
import com.jeeplus.core.excel.EasyExcelUtils;
import com.jeeplus.core.excel.ExcelOptions;
import com.jeeplus.core.excel.annotation.ExportMode;
import com.jeeplus.core.query.QueryWrapperGenerator;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import net.juntech.modules.ysdp.service.ZnMetroLinesService;
import net.juntech.modules.ysdp.service.ZnMetroStationsService;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import net.juntech.modules.ysdp.service.mapstruct.ZnMetroStationsWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* Controller
* @author wang/mcgu
* @version 2025-05-09
*/
@Tag(name = "站点管理")
@RestController
@RequestMapping(value = "/ysdp/znMetroStations")
public class ZnMetroStationsController {
@Autowired
private ZnMetroStationsService znMetroStationsService;
@Autowired
private ZnMetroStationsWrapper znMetroStationsWrapper;
@Autowired
private ZnMetroLinesService znMetroLinesService;
@Autowired
private RedisUtils redisUtils;
/**
*
*/
@ApiLog("查询站点管理列表数据")
@Operation(summary = "查询站点管理列表数据")
@PreAuthorize("hasAuthority('ysdp:znMetroStations:list')")
@GetMapping("list")
public ResponseEntity<IPage<ZnMetroStationsDTO>> list(ZnMetroStationsDTO znMetroStationsDTO, Page<ZnMetroStationsDTO> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (znMetroStationsDTO, ZnMetroStationsDTO.class);
IPage<ZnMetroStationsDTO> result = znMetroStationsService.findPage (page, queryWrapper);
for (int i = 0; i < result.getRecords().size(); i++) {
// 线路
result.getRecords().get(i).setLine(znMetroLinesService.setMultiLineName(result.getRecords().get(i).getLine()));
}
return ResponseEntity.ok (result);
}
/**
* Id
*/
@ApiLog("根据Id获取站点管理数据")
@Operation(summary = "根据Id获取站点管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroStations:view','ysdp:znMetroStations:add','ysdp:znMetroStations:edit')")
@GetMapping("queryById")
public ResponseEntity<ZnMetroStationsDTO> queryById(String id) {
return ResponseEntity.ok ( znMetroStationsService.findById ( id ) );
}
/**
*
*/
@ApiLog("保存站点管理")
@Operation(summary = "保存站点管理")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroStations:add','ysdp:znMetroStations:edit')")
@PostMapping("save")
public ResponseEntity <String> save(@Valid @RequestBody ZnMetroStationsDTO znMetroStationsDTO) {
//新增或编辑表单保存
znMetroStationsService.saveOrUpdate (znMetroStationsDTO);
//存在更新时清空API缓存,使接口重新获取
redisUtils.delPattern("api_*");
return ResponseEntity.ok ( "保存站点管理成功" );
}
/**
*
*/
@ApiLog("删除站点管理")
@Operation(summary = "删除站点管理")
@PreAuthorize("hasAuthority('ysdp:znMetroStations:del')")
@DeleteMapping("delete")
public ResponseEntity <String> delete(String ids) {
String idArray[] = ids.split(",");
for(String id: idArray){
znMetroStationsService.removeById ( id );
}
return ResponseEntity.ok( "删除站点管理成功" );
}
/**
*
*
* @param znMetroStationsDTO
* @param page
* @param response
* @throws Exception
*/
@ApiLog("导出站点管理数据")
@Operation(summary = "导出站点管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroStations:export')")
@GetMapping("export")
public void exportFile(ZnMetroStationsDTO znMetroStationsDTO, Page <ZnMetroStationsDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
String fileName = options.getFilename ( );
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (znMetroStationsDTO, ZnMetroStationsDTO.class);
if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
} else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
queryWrapper.in ( "a.id", options.getSelectIds () );
} else { // 导出全部数据
page.setSize ( -1 );
page.setCurrent ( 0 );
}
List<ZnMetroStationsDTO> result = znMetroStationsService.findPage ( page, queryWrapper ).getRecords ( );
EasyExcelUtils.newInstance ( znMetroStationsService, znMetroStationsWrapper ).exportExcel ( result, options.getSheetName ( ), ZnMetroStationsDTO.class, fileName,options.getExportFields (), response );
}
/**
*
*
* @return
*/
@ApiLog("导入站点管理数据")
@Operation(summary = "导入站点管理数据")
@PreAuthorize("hasAnyAuthority('ysdp:znMetroStations:import')")
@PostMapping("import")
public ResponseEntity importFile(MultipartFile file) throws IOException {
String result = EasyExcelUtils.newInstance ( znMetroStationsService, znMetroStationsWrapper ).importExcel ( file, ZnMetroStationsDTO.class );
return ResponseEntity.ok ( result );
}
/**
*
*
* @param response
* @return
*/
@ApiLog("下载导入站点管理数据模板")
@Operation(summary = "下载导入站点管理数据模板")
@PreAuthorize ("hasAnyAuthority('ysdp:znMetroStations:import')")
@GetMapping("import/template")
public void importFileTemplate(HttpServletResponse response) throws IOException {
String fileName = "站点管理数据导入模板.xlsx";
List<ZnMetroStationsDTO> list = Lists.newArrayList();
EasyExcelUtils.newInstance ( znMetroStationsService, znMetroStationsWrapper ).exportExcel ( list, "站点管理数据", ZnMetroStationsDTO.class, fileName, null, response );
}
}

View File

@ -0,0 +1,61 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-04-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_common_monitor")
public class YsCommonMonitor extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
private String operateid;
/**
* 线
*/
private String line;
/**
*
*/
private String station;
/**
*
*/
private String monitor;
/**
*
*/
private String no;
/**
*
*/
@TableField("create_by_id")
private String createByIdId;
/**
*
*/
@TableField("update_by_id")
private String updateByIdId;
}

View File

@ -0,0 +1,31 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-30
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_duty_info")
public class YsDutyInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String dutydate;
}

View File

@ -0,0 +1,51 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-30
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_duty_info_detail")
public class YsDutyInfoDetail extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableField("dutyid")
private String dutyidId;
/**
*
*/
private String dept;
/**
*
*/
private String dutuser;
/**
*
*/
private String sex;
/**
*
*/
private String phone;
}

View File

@ -0,0 +1,60 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-04-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_indicator")
public class YsIndicator extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableField("nd")
private String nd;
/**
*
*/
@TableField("type")
private String type;
/**
*
*/
@TableField("baseline")
private String baseline;
/**
*
*/
@TableField("challenge")
private String challenge;
/**
*
*/
@TableField("actual")
private String actual;
/**
*
*/
private String sort;
}

View File

@ -0,0 +1,52 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_operate_manager")
public class YsOperateManager extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String level;
/**
*
*/
private String begindate;
/**
*
*/
@TableField("compare_date")
private String compareDate;
/**
*
*/
@TableField("create_by_id")
private String createByIdId;
/**
*
*/
@TableField("update_by_id")
private String updateByIdId;
}

View File

@ -0,0 +1,87 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_station_camera")
public class YsStationCamera extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String num;
/**
* ID
*/
private String deviceId;
/**
*
*/
private String station;
/**
*
*/
private String discription;
/**
*
*/
private String url;
/**
*
*/
private String position;
/**
*
*/
private String favorites;
/**
*
*/
private String enable;
/**
*
*/
private String preview;
/**
*
*/
private Long sort;
/**
*
*/
@TableField("create_time")
private Date createDate;
/**
*
*/
@TableField("update_time")
private Date updateDate;
}

View File

@ -0,0 +1,56 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-04-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_task_notice")
public class YsTaskNotice extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String no;
/**
*
*/
private String title;
/**
*
*/
private String content;
/**
*
*/
private boolean status;
/**
*
*/
@TableField("create_by_id")
private String createByIdId;
/**
*
*/
@TableField("update_by_id")
private String updateByIdId;
}

View File

@ -0,0 +1,64 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import java.util.Date;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-30
*/
@DS("juntech_ysdp")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_yunying")
public class YsYunying extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 线
*/
private String lineId;
/**
* 线
*/
private String stationId;
/**
*
*/
private Date begTime;
/**
*
*/
private Date endTime;
/**
*
*/
private String pullNum;
/**
*
*/
private String departureNum;
/**
*
*/
private String fileName;
}

View File

@ -0,0 +1,94 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 线Entity
* @author wq
* @version 2026-04-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ys_yunying_max")
public class YsYunyingMax extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 线
*/
private String lineId;
/**
*
*/
private String time1;
/**
* time2
*/
private String time2;
/**
* time3
*/
private String time3;
/**
* time4
*/
private String time4;
/**
* time5
*/
private String time5;
/**
* time6
*/
private String time6;
/**
* time7
*/
private String time7;
/**
* time8
*/
private String time8;
/**
* time9
*/
private String time9;
/**
* time10
*/
private String time10;
/**
*
*/
@TableField("create_by_id")
private String createByIdId;
/**
*
*/
@TableField("update_by_id")
private String updateByIdId;
@TableField("max_date")
private String maxDate;
}

View File

@ -0,0 +1,65 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 线Entity
* @author wang/mcgu
* @version 2025-05-08
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("zn_metro_lines")
public class ZnMetroLines extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 线ID
*/
private String lineId;
/**
* 线
*/
private String nameEn;
/**
* 线
*/
private String nameCn;
/**
* 线
*/
private String type;
/**
*
*/
private String stations;
/**
*
*/
private Long seqId;
/**
*
*/
private String remarks;
/**
* id
*/
private String ydLineId;
}

View File

@ -0,0 +1,170 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("zn_metro_stations")
public class ZnMetroStations extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String seqId;
/**
* ID
*/
private String statId;
/**
*
*/
private String nameEn;
/**
*
*/
private String nameCn;
/**
*
*/
private String pinyin;
/**
* 线
*/
private String line;
/**
*
*/
private String longitude;
/**
*
*/
private String latitude;
/**
* X
*/
private String x;
/**
* Y
*/
private String y;
/**
*
*/
private String statPic;
/**
*
*/
private String toiletInside;
/**
*
*/
private String toiletPosition;
/**
*
*/
private String toiletPositionEn;
/**
*
*/
private String entranceInfo;
/**
*
*/
private String entranceInfoEn;
/**
*
*/
private String streetPic;
/**
*
*/
private String fullpinyin;
/**
*
*/
private String type;
/**
*
*/
private String elevator;
/**
*
*/
private String elevatorEn;
/**
*
*/
private String entranceInside;
/**
*
*/
private String bdlongitude;
/**
*
*/
private String bdlatitude;
/**
*
*/
private String entrancesexits;
/**
*
*/
private String stationType;
/**
* ID
*/
private String ydStatId;
/**
*
*/
private String ydStatName;
/**
*
*/
private String remarks;
}

View File

@ -0,0 +1,75 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("zn_station_barrierfree")
public class ZnStationBarrierfree extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String statId;
/**
*
*/
private String seqId;
/**
*
*/
private String barrierfreeType;
/**
*
*/
private String position;
/**
*
*/
private String remarks;
/**
* 线ID
*/
private String lineId;
/**
*
*/
private String status;
/**
*
*/
private String description;
/**
*
*/
private String planOpenDate;
/**
*
*/
private String planCloseDate;
}

View File

@ -0,0 +1,75 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("zn_station_entrance")
public class ZnStationEntrance extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String export;
/**
*
*/
private String position;
/**
* ID
*/
private String statId;
/**
* 线ID
*/
private String lineId;
/**
*
*/
private String status;
/**
*
*/
private String description;
/**
*
*/
private String planOpenDate;
/**
*
*/
private String planCloseDate;
/**
*
*/
private String seqId;
/**
* APP
*/
private String hideForApp;
}

View File

@ -0,0 +1,80 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("zn_station_toilet")
public class ZnStationToilet extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String statId;
/**
*
*/
private String toiletIcon;
/**
*
*/
private String barrierFreeIcon;
/**
*
*/
private String toiletPosition;
/**
* 线ID
*/
private String lineId;
/**
*
*/
private String status;
/**
*
*/
private String description;
/**
*
*/
private String planOpenDate;
/**
*
*/
private String planCloseDate;
/**
*
*/
private String toiletDiscription;
/**
*
*/
private String remarks;
}

View File

@ -0,0 +1,26 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsCommonMonitor;
import net.juntech.modules.ysdp.service.dto.YsCommonMonitorDTO;
import java.util.List;
/**
* MAPPER
* @author wq
* @version 2026-04-02
*/
@InterceptorIgnore(tenantLine ="true")
public interface YsCommonMonitorMapper extends BaseMapper<YsCommonMonitor> {
/**
*
* @return
*/
List<YsCommonMonitorDTO> getCommonMonitorList();
}

View File

@ -0,0 +1,33 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDetailDTO;
import net.juntech.modules.ysdp.domain.YsDutyInfoDetail;
/**
* MAPPER
* @author wq
* @version 2026-03-30
*/
public interface YsDutyInfoDetailMapper extends BaseMapper<YsDutyInfoDetail> {
/**
* id
* @param id
* @return
*/
YsDutyInfoDetailDTO findById(String id);
/**
*
*
* @param YsDutyInfoId
* @return
*/
List <YsDutyInfoDetailDTO> findList(String YsDutyInfoId);
}

View File

@ -0,0 +1,37 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDTO;
import net.juntech.modules.ysdp.domain.YsDutyInfo;
/**
* MAPPER
* @author wq
* @version 2026-03-30
*/
public interface YsDutyInfoMapper extends BaseMapper<YsDutyInfo> {
/**
* id
* @param id
* @return
*/
YsDutyInfoDTO findById(String id);
/**
*
*
* @param queryWrapper
* @return
*/
IPage <YsDutyInfoDTO> findList(Page <YsDutyInfoDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
}

View File

@ -0,0 +1,17 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsIndicator;
/**
* MAPPER
* @author wq
* @version 2026-04-02
*/
public interface YsIndicatorMapper extends BaseMapper<YsIndicator> {
}

View File

@ -0,0 +1,28 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsOperateManager;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import java.util.List;
/**
* MAPPER
* @author wq
* @version 2026-03-31
*/
@InterceptorIgnore(tenantLine ="true")
public interface YsOperateManagerMapper extends BaseMapper<YsOperateManager> {
public List<ZnMetroLinesDTO> getStationCameraLines();
public List<ZnMetroStationsDTO> getStationCameras(String id);
public List<ZnMetroStationsDTO> getStationMonitor(String id);
}

View File

@ -0,0 +1,19 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsStationCamera;
/**
* MAPPER
* @author wq
* @version 2026-03-31
*/
@InterceptorIgnore(tenantLine ="true")
public interface YsStationCameraMapper extends BaseMapper<YsStationCamera> {
}

View File

@ -0,0 +1,19 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsTaskNotice;
/**
* MAPPER
* @author wq
* @version 2026-04-21
*/
@InterceptorIgnore(tenantLine ="true")
public interface YsTaskNoticeMapper extends BaseMapper<YsTaskNotice> {
}

View File

@ -0,0 +1,65 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsYunyingMax;
import net.juntech.modules.ysdp.service.dto.YsInterfaceDTO;
import net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.service.dto.YsYunyingDTO;
import net.juntech.modules.ysdp.domain.YsYunying;
import java.util.List;
/**
* MAPPER
* @author wq
* @version 2026-03-30
*/
@InterceptorIgnore(tenantLine ="true")
public interface YsYunyingMapper extends BaseMapper<YsYunying> {
/**
* id
* @param id
* @return
*/
YsYunyingDTO findById(String id);
/**
*
*
* @param queryWrapper
* @return
*/
IPage <YsYunyingDTO> findList(Page <YsYunyingDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
public List<YsYunyingMaxDTO> getYunyingList(String date);
public List<YsYunyingDTO> getStationMaxList(String date);
/**
* TOP10线lineId
* @param date yyyy-MM-dd
* @return
*/
public List<YsYunyingDTO> getInOutStationMaxList(String date);
/**
* TOP10线lineId
* @param date yyyy-MM-dd
* @return
*/
public List<YsYunyingDTO> getTransferStationMaxList(String date);
public String getStationCompareValue(String compareDay, String stationId);
public YsInterfaceDTO getInterface(String type);
}

View File

@ -0,0 +1,25 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.YsYunyingMax;
import net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO;
import java.util.List;
/**
* 线MAPPER
* @author wq
* @version 2026-04-07
*/
@InterceptorIgnore(tenantLine ="true")
public interface YsYunyingMaxMapper extends BaseMapper<YsYunyingMax> {
// 获取历史最大客流信息 当前库
public List<YsYunyingMaxDTO> getHistoryMaxYy();
public List<YsYunyingMax> getYunyinglist();
}

View File

@ -0,0 +1,49 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.ZnMetroLines;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
/**
* 线MAPPER
* @author wang/mcgu
* @version 2025-05-08
*/
@InterceptorIgnore(tenantLine ="true")
public interface ZnMetroLinesMapper extends BaseMapper<ZnMetroLines> {
/**
* id线
* @param id
* @return
*/
ZnMetroLinesDTO findById(String id);
/**
* 线
*
* @param queryWrapper
* @return
*/
IPage <ZnMetroLinesDTO> findList(Page <ZnMetroLinesDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
/***
* 线ID线
* @param lineIds 线ID
* @return 线
*/
List<HashMap<String, String>> getMultiLineName(@Param("lineIds") String[] lineIds);
}

View File

@ -0,0 +1,77 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.domain.ZnMetroStations;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* MAPPER
* @author wang/mcgu
* @version 2025-05-09
*/
@InterceptorIgnore(tenantLine ="true")
public interface ZnMetroStationsMapper extends BaseMapper<ZnMetroStations> {
/**
* id
* @param id
* @return
*/
ZnMetroStationsDTO findById(String id);
/**
*
*
* @param queryWrapper
* @return
*/
IPage <ZnMetroStationsDTO> findList(Page <ZnMetroStationsDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
/**
* stations线
*
* @param stations
* @return
*/
List<ZnMetroStations> getStationListByStations(String[] stations);
/**
* ,线
*
* @param nameCn
* @return
*/
List<ZnMetroStations> findSameNameStationsByLine(@Param(value = "nameCn") String nameCn);
/***
* ID
* @param statIds ID
* @return
*/
List<ZnMetroStations> getStationByIds(@Param("statIds") String[] statIds);
//查找相同名称的其他站点集合
List<ZnMetroStations> findSameNameStations(@Param(value = "stationid") String stationid);
/**
* stations线(线ID,)
*
* @param stations
* @return
*/
List<ZnMetroStations> getStationListByStationsWithoutOrderBy(String[] stations);
}

View File

@ -0,0 +1,36 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.ZnStationBarrierfree;
import net.juntech.modules.ysdp.service.dto.ZnStationBarrierfreeDTO;
import java.util.List;
/**
* MAPPER
* @author wang/mcgu
* @version 2025-05-09
*/
@InterceptorIgnore(tenantLine ="true")
public interface ZnStationBarrierfreeMapper extends BaseMapper<ZnStationBarrierfree> {
/**
* id
* @param id
* @return
*/
ZnStationBarrierfreeDTO findById(String id);
/**
*
*
* @param ZnMetroStationsId
* @return
*/
List <ZnStationBarrierfreeDTO> findList(String ZnMetroStationsId);
}

View File

@ -0,0 +1,74 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.ZnStationEntrance;
import net.juntech.modules.ysdp.service.dto.ZnStationEntranceDTO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* MAPPER
* @author wang/mcgu
* @version 2025-05-09
*/
@InterceptorIgnore(tenantLine ="true")
public interface ZnStationEntranceMapper extends BaseMapper<ZnStationEntrance> {
/**
* id
* @param id
* @return
*/
ZnStationEntranceDTO findById(String id);
/**
*
*
* @param ZnMetroStationsId
* @return
*/
List <ZnStationEntranceDTO> findList(String ZnMetroStationsId);
/**
*
*/
void delAll();
/**
* (线ID)
*
* @return
*/
@Update("update zn_station_entrance set hide_for_app = 1,del_flag = 1 ,description = '因同步表中不存在该站,该站有关出入口均设置为对APP隐藏且逻辑删除' where stat_id in (SELECT id FROM zn_metro_stations WHERE stat_id NOT IN ( SELECT DISTINCT ( station_id ) station_id FROM zn_sync_entrance ORDER BY station_id) AND yd_stat_id NOT IN ( SELECT DISTINCT ( station_id ) station_id FROM zn_sync_entrance ))")
int setHideForAppBySyncStations();
/**
*
*
* @param statId ID
* @param export
* @return
*/
@Select("SELECT position FROM zn_station_entrance WHERE stat_id = #{statId} and export = #{export} and position is not null and position <> '' order by update_time desc limit 1")
String findPositionByStatId(@Param(value = "statId") String statId, @Param(value = "export") String export);
@Select("SELECT * FROM zn_station_entrance WHERE stat_id = #{statId} order by update_time desc")
List<ZnStationEntrance> findAllListByStatId(String statId);
@Select("SELECT b.export,b.position FROM zn_metro_stations a left join zn_station_entrance b on a.id= b.stat_id WHERE a.stat_id =#{statId} and b.`status` = '1' order by a.update_time desc")
List<ZnStationEntrance> findAllListByStatId2(String statId);
@Update("update zn_station_entrance set update_time = #{updateTime},update_by_id = #{updateById},export = #{export},position = #{position},hide_for_app = #{hideForApp},del_flag = #{delFlag},description = #{description},stat_id = #{statId},status = #{status},seq_id = #{seqId} where id = #{id}")
int updateForAll(ZnStationEntrance stationEntrance);
@Update("update zn_station_entrance set update_time = #{updateTime},update_by_id = #{updateById},export = #{export},hide_for_app = #{hideForApp},del_flag = #{delFlag},description = #{description},stat_id = #{statId},status = #{status},seq_id = #{seqId} where stat_id = #{statId} and export = #{export}")
int updateForAllByExport(ZnStationEntrance stationEntrance);
}

View File

@ -0,0 +1,36 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.juntech.modules.ysdp.domain.ZnStationToilet;
import net.juntech.modules.ysdp.service.dto.ZnStationToiletDTO;
import java.util.List;
/**
* MAPPER
* @author wang/mcgu
* @version 2025-05-09
*/
@InterceptorIgnore(tenantLine ="true")
public interface ZnStationToiletMapper extends BaseMapper<ZnStationToilet> {
/**
* id
* @param id
* @return
*/
ZnStationToiletDTO findById(String id);
/**
*
*
* @param ZnMetroStationsId
* @return
*/
List <ZnStationToiletDTO> findList(String ZnMetroStationsId);
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsCommonMonitorMapper">
<!-- 获取常用视屏监控列表 -->
<select id="getCommonMonitorList" resultType="net.juntech.modules.ysdp.service.dto.YsCommonMonitorDTO">
SELECT
b.url,
a.NO,
a.line,
a.monitor,
c.name_cn station
FROM
ys_common_monitor a
LEFT JOIN ys_station_camera b ON a.station = b.station
AND a.monitor = b.position
LEFT JOIN zn_metro_stations c ON a.station = c.id
where a.del_flag = 0
ORDER BY
NO ASC,
a.update_time DESC
LIMIT 4
</select>
</mapper>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsDutyInfoDetailMapper">
<sql id="ysDutyInfoDetailColumns">
a.id AS "id",
a.dutyid AS "dutyid.id",
a.dept AS "dept",
a.dutuser AS "dutuser",
a.sex AS "sex",
a.phone AS "phone",
a.del_flag AS "delFlag",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.tenant_id AS "tenantId"
</sql>
<sql id="ysDutyInfoDetailJoins">
LEFT JOIN ys_duty_info b ON b.id = a.dutyid
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.YsDutyInfoDetailDTO">
SELECT
<include refid="ysDutyInfoDetailColumns"/>
FROM ys_duty_info_detail a
<include refid="ysDutyInfoDetailJoins"/>
WHERE a.id = #{id} and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.YsDutyInfoDetailDTO">
SELECT
<include refid="ysDutyInfoDetailColumns"/>
FROM ys_duty_info_detail a
<include refid="ysDutyInfoDetailJoins"/>
WHERE a.dutyid = #{YsDutyInfoId} and a.del_flag = 0
</select>
</mapper>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsDutyInfoMapper">
<sql id="ysDutyInfoColumns">
a.id AS "id",
a.dutyDate AS "dutydate",
a.del_flag AS "delFlag",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.tenant_id AS "tenantId"
</sql>
<sql id="ysDutyInfoJoins">
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.YsDutyInfoDTO">
SELECT
<include refid="ysDutyInfoColumns"/>
FROM ys_duty_info a
<include refid="ysDutyInfoJoins"/>
WHERE a.id = #{id} and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.YsDutyInfoDTO" >
SELECT
<include refid="ysDutyInfoColumns"/>
FROM ys_duty_info a
<include refid="ysDutyInfoJoins"/>
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsIndicatorMapper">
</mapper>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsOperateManagerMapper">
<select id="getStationCameraLines" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO">
SELECT
a.line_id id,
a.name_cn AS nameCn
FROM zn_metro_lines a
WHERE a.del_flag = 0
</select>
<select id="getStationCameras" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO">
SELECT DISTINCT
b.id,
b.name_cn AS nameCn
FROM
ys_station_camera a
LEFT JOIN zn_metro_stations b ON a.station = b.id
WHERE
a.del_flag = 0
AND a.ENABLE = '1'
AND LEFT(b.stat_id, 2) = LPAD(#{id}, 2, '0')
</select>
<select id="getStationMonitor" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO">
SELECT
distinct
a.id,
a.position nameCn
FROM ys_station_camera a
WHERE a.del_flag = 0
and a.enable='1'
and a.station=#{id}
</select>
</mapper>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsStationCameraMapper">
</mapper>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsTaskNoticeMapper">
</mapper>

View File

@ -0,0 +1,319 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsYunyingMapper">
<sql id="ysYunyingColumns">
a.id AS "id",
a.line_id AS "lineId",
a.station_id AS "stationId",
a.beg_time AS "begTime",
a.end_time AS "endTime",
a.pull_num AS "pullNum",
a.departure_num AS "departureNum",
a.file_name AS "fileName",
a.del_flag AS "delFlag",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.tenant_id AS "tenantId"
</sql>
<sql id="ysYunyingJoins">
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">
SELECT
<include refid="ysYunyingColumns"/>
FROM ys_yunying a
<include refid="ysYunyingJoins"/>
WHERE a.id = #{id} and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">
SELECT
<include refid="ysYunyingColumns"/>
FROM ys_yunying a
<include refid="ysYunyingJoins"/>
${ew.customSqlSegment}
</select>
<!-- <select id="getYunyingList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO">-->
<!-- SELECT-->
<!-- line_id,-->
<!-- MAX(CASE WHEN time_period = '05:00-06:00' THEN total_pull ELSE 0 END) AS time1,-->
<!-- MAX(CASE WHEN time_period = '06:00-08:00' THEN total_pull ELSE 0 END) AS time2,-->
<!-- MAX(CASE WHEN time_period = '08:00-10:00' THEN total_pull ELSE 0 END) AS time3,-->
<!-- MAX(CASE WHEN time_period = '10:00-12:00' THEN total_pull ELSE 0 END) AS time4,-->
<!-- MAX(CASE WHEN time_period = '12:00-14:00' THEN total_pull ELSE 0 END) AS time5,-->
<!-- MAX(CASE WHEN time_period = '14:00-16:00' THEN total_pull ELSE 0 END) AS time6,-->
<!-- MAX(CASE WHEN time_period = '16:00-18:00' THEN total_pull ELSE 0 END) AS time7,-->
<!-- MAX(CASE WHEN time_period = '18:00-20:00' THEN total_pull ELSE 0 END) AS time8,-->
<!-- MAX(CASE WHEN time_period = '20:00-22:00' THEN total_pull ELSE 0 END) AS time9,-->
<!-- MAX(CASE WHEN time_period = '22:00-24:00' THEN total_pull ELSE 0 END) AS time10,-->
<!-- sum(total_pull) totalSum-->
<!-- FROM (-->
<!-- SELECT-->
<!-- line_id,-->
<!-- CASE-->
<!-- WHEN HOUR(end_time) = 5 THEN '05:00-06:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 6 AND 7 THEN '06:00-08:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 8 AND 9 THEN '08:00-10:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 10 AND 11 THEN '10:00-12:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 12 AND 13 THEN '12:00-14:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 14 AND 15 THEN '14:00-16:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 16 AND 17 THEN '16:00-18:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 18 AND 19 THEN '18:00-20:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 20 AND 21 THEN '20:00-22:00'-->
<!-- WHEN HOUR(end_time) BETWEEN 22 AND 23 THEN '22:00-24:00'-->
<!-- END AS time_period,-->
<!-- ROUND((SUM(pull_num) + SUM(departure_num)) / 100) AS total_pull-->
<!-- FROM ys_yunying-->
<!-- WHERE-->
<!-- end_time &gt;= #{date}-->
<!-- AND end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)-->
<!-- AND HOUR(end_time) &gt;= 5-->
<!-- AND line_id in('03','04','07','15')-->
<!-- GROUP BY line_id, time_period-->
<!-- ) t-->
<!-- GROUP BY line_id-->
<!-- ORDER BY line_id-->
<!-- </select>-->
<select id="getYunyingList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO">
SELECT
line_id,
-- 累计时段:从早到晚依次累加
SUM(CASE WHEN time_period &lt;= '05:00-06:00' THEN total_pull ELSE 0 END) AS time1, -- 05-06
SUM(CASE WHEN time_period &lt;= '06:00-08:00' THEN total_pull ELSE 0 END) AS time2, -- 05-08
SUM(CASE WHEN time_period &lt;= '08:00-10:00' THEN total_pull ELSE 0 END) AS time3, -- 05-10
SUM(CASE WHEN time_period &lt;= '10:00-12:00' THEN total_pull ELSE 0 END) AS time4, -- 05-12
SUM(CASE WHEN time_period &lt;= '12:00-14:00' THEN total_pull ELSE 0 END) AS time5, -- 05-14
SUM(CASE WHEN time_period &lt;= '14:00-16:00' THEN total_pull ELSE 0 END) AS time6, -- 05-16
SUM(CASE WHEN time_period &lt;= '16:00-18:00' THEN total_pull ELSE 0 END) AS time7, -- 05-18
SUM(CASE WHEN time_period &lt;= '18:00-20:00' THEN total_pull ELSE 0 END) AS time8, -- 05-20
SUM(CASE WHEN time_period &lt;= '20:00-22:00' THEN total_pull ELSE 0 END) AS time9, -- 05-22
SUM(CASE WHEN time_period &lt;= '22:00-24:00' THEN total_pull ELSE 0 END) AS time10, -- 05-24
SUM(total_pull) AS totalSum -- 全天总和
FROM (
SELECT
line_id,
-- 时段定义
CASE
WHEN HOUR(end_time) = 5 THEN '05:00-06:00'
WHEN HOUR(end_time) BETWEEN 6 AND 7 THEN '06:00-08:00'
WHEN HOUR(end_time) BETWEEN 8 AND 9 THEN '08:00-10:00'
WHEN HOUR(end_time) BETWEEN 10 AND 11 THEN '10:00-12:00'
WHEN HOUR(end_time) BETWEEN 12 AND 13 THEN '12:00-14:00'
WHEN HOUR(end_time) BETWEEN 14 AND 15 THEN '14:00-16:00'
WHEN HOUR(end_time) BETWEEN 16 AND 17 THEN '16:00-18:00'
WHEN HOUR(end_time) BETWEEN 18 AND 19 THEN '18:00-20:00'
WHEN HOUR(end_time) BETWEEN 20 AND 21 THEN '20:00-22:00'
WHEN HOUR(end_time) BETWEEN 22 AND 23 THEN '22:00-24:00'
END AS time_period,
ROUND((SUM(pull_num) + SUM(departure_num)) / 100) AS total_pull
FROM ys_yunying
WHERE
end_time&gt;= #{date}
AND end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(end_time) &gt;= 5
AND line_id IN ('03','04','07','15')
GROUP BY line_id, time_period
) t
GROUP BY line_id
ORDER BY line_id;
</select>
<!-- <select id="getStationMaxList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">-->
<!-- SELECT-->
<!--&#45;&#45; ROW_NUMBER() OVER(ORDER BY ROUND((SUM(a.pull_num) + SUM(a.departure_num)) / 100) DESC) AS sortNo,-->
<!-- a.line_id lineId,-->
<!-- a.station_id stationId,-->
<!-- TRIM(b.`name`) stationName,-->
<!-- ROUND((SUM(a.pull_num) + SUM(a.departure_num)) / 100) AS total-->
<!-- FROM ys_yunying a-->
<!-- left join ys_station b on a.station_id = b.station_id-->
<!-- WHERE-->
<!-- end_time &gt;= #{date}-->
<!-- AND end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)-->
<!-- AND HOUR(end_time) &gt;= 5-->
<!-- and a.line_id in ('03','04','07','15')-->
<!-- GROUP BY a.line_id,a.station_id,b.`name`-->
<!-- ORDER BY total DESC-->
<!-- LIMIT 10-->
<!-- </select>-->
<!-- <select id="getStationMaxList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">-->
<!-- SELECT-->
<!-- GROUP_CONCAT(DISTINCT a.line_id SEPARATOR ',') AS lineId, &#45;&#45; 显示所有线路-->
<!-- MIN(a.station_id) AS stationId,-->
<!-- TRIM(b.`name`) AS stationName,-->
<!-- ROUND((SUM(a.pull_num) + SUM(a.departure_num)) / 100) AS total-->
<!-- FROM ys_yunying a-->
<!-- LEFT JOIN ys_station b ON a.station_id = b.station_id-->
<!-- WHERE-->
<!-- end_time &gt;= #{date}-->
<!-- AND end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)-->
<!-- AND HOUR(end_time) &gt;= 5-->
<!-- and a.station_id not in ('0316','0317','0318','0319','0320','0321','0322','0323','0324')-->
<!-- AND a.line_id IN ('03','04','07','15')-->
<!-- GROUP BY TRIM(b.`name`)-->
<!-- ORDER BY total DESC-->
<!-- LIMIT 10-->
<!-- </select>-->
<select id="getStationMaxList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">
SELECT
lineId,
stationId,
stationName,
total
FROM (
-- 先按站点名称,把所有线路合并起来
SELECT
TRIM(b.`name`) AS stationName,
GROUP_CONCAT(DISTINCT a.line_id ORDER BY a.line_id SEPARATOR ',') AS lineId,
-- 用MIN只是为了拿一个站点ID不影响业务
MIN(a.station_id) AS stationId
FROM ys_yunying a
LEFT JOIN ys_station b ON a.station_id = b.station_id
WHERE
a.end_time &gt;= #{date}
AND a.end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(a.end_time) &gt;= 5
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
GROUP BY TRIM(b.`name`)
) AS station_lines
JOIN (
-- 再单独统计客流,排除不需要的站点。单位:万人(保留 2 位小数)
SELECT
TRIM(b.`name`) AS stationName,
ROUND((SUM(a.pull_num) + SUM(a.departure_num)) / 100) AS total
FROM ys_yunying a
LEFT JOIN ys_station b ON a.station_id = b.station_id
WHERE
a.end_time &gt;= #{date}
AND a.end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(a.end_time) &gt;= 5
AND a.station_id NOT IN ('0316','0317','0318','0319','0320','0321','0322','0323','0324')
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
GROUP BY TRIM(b.`name`)
) AS station_flow
USING (stationName)
ORDER BY total DESC
LIMIT 10
</select>
<select id="getInOutStationMaxList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">
SELECT
lineId,
stationId,
stationName,
total
FROM (
-- 先按站点名称,把所有线路合并起来
SELECT
TRIM(b.`name`) AS stationName,
GROUP_CONCAT(DISTINCT a.line_id ORDER BY a.line_id SEPARATOR ',') AS lineId,
MIN(a.station_id) AS stationId
FROM ys_yunying a
LEFT JOIN ys_station b ON a.station_id = b.station_id
WHERE
a.end_time &gt;= #{date}
AND a.end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(a.end_time) &gt;= 5
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
GROUP BY TRIM(b.`name`)
) AS station_lines
JOIN (
-- 再单独统计客流,排除不需要的站点
SELECT
TRIM(b.`name`) AS stationName,
ROUND((SUM(a.pull_num) + SUM(a.departure_num)) / 100) AS total
FROM ys_yunying a
LEFT JOIN ys_station b ON a.station_id = b.station_id
WHERE
a.end_time &gt;= #{date}
AND a.end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(a.end_time) &gt;= 5
AND a.station_id NOT IN ('0316','0317','0318','0319','0320','0321','0322','0323','0324')
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
GROUP BY TRIM(b.`name`)
) AS station_flow
USING (stationName)
WHERE LOCATE(',', lineId) = 0 -- 进出站lineId不含逗号单线路
ORDER BY total DESC
LIMIT 10
</select>
<select id="getTransferStationMaxList" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingDTO">
SELECT
lineId,
stationId,
stationName,
total
FROM (
-- 先按站点名称,把所有线路合并起来
SELECT
TRIM(b.`name`) AS stationName,
GROUP_CONCAT(DISTINCT a.line_id ORDER BY a.line_id SEPARATOR ',') AS lineId,
MIN(a.station_id) AS stationId
FROM ys_yunying a
LEFT JOIN ys_station b ON a.station_id = b.station_id
WHERE
a.end_time &gt;= #{date}
AND a.end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(a.end_time) &gt;= 5
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
GROUP BY TRIM(b.`name`)
) AS station_lines
JOIN (
-- 再单独统计客流,排除不需要的站点
SELECT
TRIM(b.`name`) AS stationName,
ROUND((SUM(a.pull_num) + SUM(a.departure_num)) / 100) AS total
FROM ys_yunying a
LEFT JOIN ys_station b ON a.station_id = b.station_id
WHERE
a.end_time &gt;= #{date}
AND a.end_time &lt; DATE_ADD(#{date}, INTERVAL 1 DAY)
AND HOUR(a.end_time) &gt;= 5
AND a.station_id NOT IN ('0316','0317','0318','0319','0320','0321','0322','0323','0324')
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
GROUP BY TRIM(b.`name`)
) AS station_flow
USING (stationName)
WHERE LOCATE(',', lineId) &gt; 0 -- 换乘站lineId含逗号多线路
ORDER BY total DESC
LIMIT 10
</select>
<select id="getStationCompareValue" resultType="String">
SELECT
CAST((SUM(a.pull_num) + SUM(a.departure_num)) / 10000 AS DECIMAL(10,2)) AS total
FROM ys_yunying a
left join ys_station b on a.station_id = b.station_id
WHERE
end_time &gt;= #{compareDay}
AND end_time &lt; CONCAT(#{compareDay},' ',TIME(NOW()))
AND a.station_id not in ('0316','0317','0318','0319','0320','0321','0322','0323','0324')
AND HOUR(end_time) &gt;= 5
AND a.line_id IN ('01','02','06','08','09','10','11','12','13','14','16','18','51','03','04','07','15')
and b.`name` = #{stationId}
</select>
<select id="getInterface" resultType="net.juntech.modules.ysdp.service.dto.YsInterfaceDTO">
select * from ys_interface
where name = #{type}
and status = '0'
ORDER BY create_date DESC
LIMIT 1
</select>
</mapper>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.YsYunyingMaxMapper">
<select id="getHistoryMaxYy" resultType="net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO">
SELECT
line_id,
time1, time2, time3, time4, time5,
time6, time7, time8, time9, time10,
-- 逐行求和自动忽略NULLNULL按0计算
COALESCE(time1, 0) + COALESCE(time2, 0) + COALESCE(time3, 0) +
COALESCE(time4, 0) + COALESCE(time5, 0) + COALESCE(time6, 0) +
COALESCE(time7, 0) + COALESCE(time8, 0) + COALESCE(time9, 0) +
COALESCE(time10, 0) AS totalSum
FROM ys_yunying_max
where del_flag = '0'
ORDER BY line_id
</select>
<select id="getYunyinglist" resultType="net.juntech.modules.ysdp.domain.YsYunyingMax">
SELECT
line_id,
time1,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) time2,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) time3,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) time4,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) time5,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) + COALESCE ( time6, 0 ) time6,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) + COALESCE ( time6, 0 ) + COALESCE ( time7, 0 ) time7,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) + COALESCE ( time6, 0 ) + COALESCE ( time7, 0 ) + COALESCE ( time8, 0 ) time8,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) + COALESCE ( time6, 0 ) + COALESCE ( time7, 0 ) + COALESCE ( time8, 0 ) + COALESCE ( time9, 0 ) time9,
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) + COALESCE ( time6, 0 ) + COALESCE ( time7, 0 ) + COALESCE ( time8, 0 ) + COALESCE ( time9, 0 ) + COALESCE ( time10, 0 ) time10,-- 逐行求和自动忽略NULLNULL按0计算
COALESCE ( time1, 0 ) + COALESCE ( time2, 0 ) + COALESCE ( time3, 0 ) + COALESCE ( time4, 0 ) + COALESCE ( time5, 0 ) + COALESCE ( time6, 0 ) + COALESCE ( time7, 0 ) + COALESCE ( time8, 0 ) + COALESCE ( time9, 0 ) + COALESCE ( time10, 0 ) AS totalSum,
max_date maxDate
FROM
ys_yunying_max
WHERE
del_flag = '0'
ORDER BY
line_id
</select>
</mapper>

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.ZnMetroLinesMapper">
<sql id="znMetroLinesColumns">
a.id AS "id",
a.line_id AS "lineId",
a.name_en AS "nameEn",
a.name_cn AS "nameCn",
a.type AS "type",
a.stations AS "stations",
a.seq_id AS "seqId",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
a.yd_line_id AS "ydLineId",
a.tenant_id AS "tenantId"
</sql>
<sql id="znMetroLinesJoins">
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO">
SELECT
<include refid="znMetroLinesColumns"/>
FROM zn_metro_lines a
<include refid="znMetroLinesJoins"/>
WHERE (a.id = #{id} or a.line_id = #{id}) and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO">
SELECT
<include refid="znMetroLinesColumns"/>
FROM zn_metro_lines a
<include refid="znMetroLinesJoins"/>
${ew.customSqlSegment}
</select>
<select id="getMultiLineName" resultType="java.util.HashMap">
SELECT
GROUP_CONCAT( line_id ) AS lineId,
GROUP_CONCAT( name_cn ) AS nameCn
FROM
`zn_metro_lines`
<where>
line_id IN
<foreach collection="lineIds" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
AND del_flag = 0
</where>
</select>
</mapper>

View File

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.ZnMetroStationsMapper">
<sql id="znMetroStationsColumns">
a.id AS "id",
a.seq_id AS "seqId",
a.stat_id AS "statId",
a.name_en AS "nameEn",
a.name_cn AS "nameCn",
a.pinyin AS "pinyin",
a.line AS "line",
a.longitude AS "longitude",
a.latitude AS "latitude",
a.x AS "x",
a.y AS "y",
a.stat_pic AS "statPic",
a.toilet_inside AS "toiletInside",
a.toilet_position AS "toiletPosition",
a.toilet_position_en AS "toiletPositionEn",
a.entrance_info AS "entranceInfo",
a.entrance_info_en AS "entranceInfoEn",
a.street_pic AS "streetPic",
a.fullpinyin AS "fullpinyin",
a.type AS "type",
a.elevator AS "elevator",
a.elevator_en AS "elevatorEn",
a.entrance_inside AS "entranceInside",
a.bdlongitude AS "bdlongitude",
a.bdlatitude AS "bdlatitude",
a.entrancesexits AS "entrancesexits",
a.station_type AS "stationType",
a.yd_stat_id AS "ydStatId",
a.yd_stat_name AS "ydStatName",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
a.tenant_id AS "tenantId"
</sql>
<sql id="znMetroStationsJoins">
LEFT JOIN sys_office createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO">
SELECT
<include refid="znMetroStationsColumns"/>
FROM zn_metro_stations a
<include refid="znMetroStationsJoins"/>
WHERE (a.id = #{id} or a.stat_id = #{id}) and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO" >
SELECT
<include refid="znMetroStationsColumns"/>
FROM zn_metro_stations a
<include refid="znMetroStationsJoins"/>
${ew.customSqlSegment}
</select>
<select id="getStationListByStations" resultType="ZnMetroStations">
SELECT
stat_id AS statId,
name_cn AS nameCn,
line AS line,
longitude,
latitude
FROM
`zn_metro_stations`
<where>
stat_id IN
<foreach collection="stations" item="id" index="index" open="(" close=")" separator=",">
LPAD(#{id},4,0)
</foreach>
AND del_flag = 0
</where>
ORDER BY cast(seq_id as signed integer)
</select>
<select id="findSameNameStationsByLine" parameterType="java.lang.String" resultType="ZnMetroStations">
select id, stat_id statId, name_cn nameCn,line
from zn_metro_stations
WHERE name_cn = #{nameCn}
</select>
<select id="getStationByIds" resultType="net.juntech.modules.ysdp.domain.ZnMetroStations">
SELECT
<include refid="znMetroStationsColumns"/>
FROM zn_metro_stations a
<include refid="znMetroStationsJoins"/>
<where>
stat_id IN
<foreach collection="statIds" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
AND a.del_flag = 0
</where>
ORDER BY FIELD (stat_id,
<foreach collection="statIds" item="id" index="index" separator=",">
LPAD(#{id},4,0)
</foreach>
)
</select>
<select id="getStationListByStationsWithoutOrderBy" resultType="ZnMetroStations">
SELECT
stat_id AS statId,
name_cn AS nameCn,
line AS line,
longitude,
latitude
FROM
`zn_metro_stations`
<where>
stat_id IN
<foreach collection="stations" item="id" index="index" open="(" close=")" separator=",">
LPAD(#{id},4,0)
</foreach>
AND del_flag = 0
</where>
ORDER BY FIELD (stat_id,
<foreach collection="stations" item="id" index="index" separator=",">
LPAD(#{id},4,0)
</foreach>
)
</select>
<select id="findSameNameStations" parameterType="java.lang.String" resultType="ZnMetroStations">
select stat_id statId, name_cn nameCn
from zn_metro_stations
WHERE name_cn = (select name_cn from zn_metro_stations WHERE stat_id = #{stationid})
AND stat_id != #{stationid}
</select>
</mapper>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.ZnStationBarrierfreeMapper">
<sql id="znStationBarrierfreeColumns">
a.id AS "id",
a.stat_id AS "stat.id",
a.seq_id AS "seqId",
a.barrierfree_type AS "barrierfreeType",
a.position AS "position",
a.remarks AS "remarks",
a.line_id AS "lineId",
a.status AS "status",
a.description AS "description",
a.plan_open_date AS "planOpenDate",
a.plan_close_date AS "planCloseDate",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.del_flag AS "delFlag",
a.tenant_id AS "tenantId"
</sql>
<sql id="znStationBarrierfreeJoins">
LEFT JOIN zn_metro_stations b ON b.id = a.stat_id
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.ZnStationBarrierfreeDTO">
SELECT
<include refid="znStationBarrierfreeColumns"/>
FROM zn_station_barrierfree a
<include refid="znStationBarrierfreeJoins"/>
WHERE a.id = #{id} and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.ZnStationBarrierfreeDTO">
SELECT
<include refid="znStationBarrierfreeColumns"/>
FROM zn_station_barrierfree a
<include refid="znStationBarrierfreeJoins"/>
WHERE a.stat_id = #{ZnMetroStationsId} and a.del_flag = 0
</select>
</mapper>

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.ZnStationEntranceMapper">
<sql id="znStationEntranceColumns">
a.id AS "id",
a.export AS "export",
a.position AS "position",
a.stat_id AS "stat.id",
a.line_id AS "lineId",
a.status AS "status",
a.description AS "description",
a.plan_open_date AS "planOpenDate",
a.plan_close_date AS "planCloseDate",
a.seq_id AS "seqId",
a.hide_for_app AS "hideForApp",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.del_flag AS "delFlag",
a.tenant_id AS "tenantId"
</sql>
<sql id="znStationEntranceJoins">
LEFT JOIN zn_metro_stations b ON b.id = a.stat_id
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.ZnStationEntranceDTO">
SELECT
<include refid="znStationEntranceColumns"/>
FROM zn_station_entrance a
<include refid="znStationEntranceJoins"/>
WHERE a.id = #{id} and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.ZnStationEntranceDTO">
SELECT
<include refid="znStationEntranceColumns"/>
FROM zn_station_entrance a
<include refid="znStationEntranceJoins"/>
WHERE a.stat_id = #{ZnMetroStationsId} and a.del_flag = 0
</select>
<!--物理删除-->
<update id="delAll">
DELETE FROM zn_station_entrance
</update>
</mapper>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.juntech.modules.ysdp.mapper.ZnStationToiletMapper">
<sql id="znStationToiletColumns">
a.id AS "id",
a.stat_id AS "stat.id",
a.toilet_icon AS "toiletIcon",
a.barrier_free_icon AS "barrierFreeIcon",
a.toilet_position AS "toiletPosition",
a.line_id AS "lineId",
a.status AS "status",
a.description AS "description",
a.plan_open_date AS "planOpenDate",
a.plan_close_date AS "planCloseDate",
a.toilet_discription AS "toiletDiscription",
a.create_by_id AS "createById.id",
a.create_time AS "createTime",
a.update_by_id AS "updateById.id",
a.update_time AS "updateTime",
a.remarks AS "remarks",
a.del_flag AS "delFlag",
a.tenant_id AS "tenantId"
</sql>
<sql id="znStationToiletJoins">
LEFT JOIN zn_metro_stations b ON b.id = a.stat_id
LEFT JOIN sys_user createById ON createById.id = a.create_by_id
LEFT JOIN sys_user updateById ON updateById.id = a.update_by_id
</sql>
<select id="findById" resultType="net.juntech.modules.ysdp.service.dto.ZnStationToiletDTO">
SELECT
<include refid="znStationToiletColumns"/>
FROM zn_station_toilet a
<include refid="znStationToiletJoins"/>
WHERE a.id = #{id} and a.del_flag = 0
</select>
<select id="findList" resultType="net.juntech.modules.ysdp.service.dto.ZnStationToiletDTO">
SELECT
<include refid="znStationToiletColumns"/>
FROM zn_station_toilet a
<include refid="znStationToiletJoins"/>
WHERE a.stat_id = #{ZnMetroStationsId} and a.del_flag = 0
</select>
</mapper>

View File

@ -0,0 +1,35 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import net.juntech.modules.ysdp.service.dto.YsCommonMonitorDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.YsCommonMonitor;
import net.juntech.modules.ysdp.mapper.YsCommonMonitorMapper;
import java.util.List;
/**
* Service
* @author wq
* @version 2026-04-02
*/
@Service
@Transactional
public class YsCommonMonitorService extends ServiceImpl<YsCommonMonitorMapper, YsCommonMonitor> {
@Autowired
YsCommonMonitorMapper ysCommonMonitorMapper;
/**
*
* @return
*/
public List<YsCommonMonitorDTO> getCommonMonitorList() {
return ysCommonMonitorMapper.getCommonMonitorList();
}
}

View File

@ -0,0 +1,42 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDetailDTO;
import net.juntech.modules.ysdp.domain.YsDutyInfoDetail;
import net.juntech.modules.ysdp.mapper.YsDutyInfoDetailMapper;
/**
* Service
* @author wq
* @version 2026-03-30
*/
@Service
@Transactional
public class YsDutyInfoDetailService extends ServiceImpl<YsDutyInfoDetailMapper, YsDutyInfoDetail> {
/**
* id
* @param id
* @return
*/
public YsDutyInfoDetailDTO findById(String id) {
return baseMapper.findById ( id );
}
/**
*
* @param dutyidId
* @return
*/
public List <YsDutyInfoDetailDTO> findList(String dutyidId) {
return baseMapper.findList (dutyidId);
}
}

View File

@ -0,0 +1,87 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.jeeplus.sys.constant.CommonConstants;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDTO;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDetailDTO;
import net.juntech.modules.ysdp.service.mapstruct.YsDutyInfoWrapper;
import net.juntech.modules.ysdp.service.mapstruct.YsDutyInfoDetailWrapper;
import net.juntech.modules.ysdp.domain.YsDutyInfo;
import net.juntech.modules.ysdp.domain.YsDutyInfoDetail;
import net.juntech.modules.ysdp.mapper.YsDutyInfoMapper;
/**
* Service
* @author wq
* @version 2026-03-30
*/
@Service
@Transactional
public class YsDutyInfoService extends ServiceImpl<YsDutyInfoMapper, YsDutyInfo> {
/**
* service
*/
@Autowired
private YsDutyInfoDetailService ysDutyInfoDetailService;
/**
* id
* @param id
* @return
*/
public YsDutyInfoDTO findById(String id) {
YsDutyInfoDTO ysDutyInfoDTO = baseMapper.findById ( id );
ysDutyInfoDTO.setYsDutyInfoDetailDTOList(ysDutyInfoDetailService.findList(id));
return ysDutyInfoDTO;
}
/**
*
* @param page
* @param queryWrapper
* @return
*/
public IPage <YsDutyInfoDTO> findPage(Page <YsDutyInfoDTO> page, QueryWrapper queryWrapper) {
queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
return baseMapper.findList (page, queryWrapper);
}
/**
*
* @param ysDutyInfoDTO
* @return
*/
public void saveOrUpdate(YsDutyInfoDTO ysDutyInfoDTO) {
YsDutyInfo ysDutyInfo = YsDutyInfoWrapper.INSTANCE.toEntity ( ysDutyInfoDTO );
super.saveOrUpdate (ysDutyInfo);
for (YsDutyInfoDetailDTO ysDutyInfoDetailDTO : ysDutyInfoDTO.getYsDutyInfoDetailDTOList ()){
if ( CommonConstants.DELETED.equals ( ysDutyInfoDetailDTO.getDelFlag()) ){
ysDutyInfoDetailService.removeById ( ysDutyInfoDetailDTO.getId () );
}else{
YsDutyInfoDetail ysDutyInfoDetail = YsDutyInfoDetailWrapper.INSTANCE.toEntity ( ysDutyInfoDetailDTO );
ysDutyInfoDetail.setDutyidId ( ysDutyInfo.getId () );
ysDutyInfoDetailService.saveOrUpdate ( ysDutyInfoDetail );
}
}
}
/**
*
* @param id
* @return
*/
public void removeById(String id) {
super.removeById ( id );
ysDutyInfoDetailService.lambdaUpdate ().eq ( YsDutyInfoDetail::getDutyidId, id ).remove ();
}
}

View File

@ -0,0 +1,21 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.YsIndicator;
import net.juntech.modules.ysdp.mapper.YsIndicatorMapper;
/**
* Service
* @author wq
* @version 2026-04-02
*/
@Service
@Transactional
public class YsIndicatorService extends ServiceImpl<YsIndicatorMapper, YsIndicator> {
}

View File

@ -0,0 +1,42 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.YsOperateManager;
import net.juntech.modules.ysdp.mapper.YsOperateManagerMapper;
import java.util.List;
/**
* Service
* @author wq
* @version 2026-03-31
*/
@Service
@Transactional
public class YsOperateManagerService extends ServiceImpl<YsOperateManagerMapper, YsOperateManager> {
@Autowired
private YsOperateManagerMapper ysOperateManagerMapper;
public List<ZnMetroLinesDTO> getStationCameraLines() {
return ysOperateManagerMapper.getStationCameraLines();
}
public List<ZnMetroStationsDTO> getStationCameras(String id) {
return ysOperateManagerMapper.getStationCameras(id);
}
public List<ZnMetroStationsDTO> getStationMonitor(String id) {
return ysOperateManagerMapper.getStationMonitor(id);
}
}

View File

@ -0,0 +1,21 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.YsStationCamera;
import net.juntech.modules.ysdp.mapper.YsStationCameraMapper;
/**
* Service
* @author wq
* @version 2026-03-31
*/
@Service
@Transactional
public class YsStationCameraService extends ServiceImpl<YsStationCameraMapper, YsStationCamera> {
}

View File

@ -0,0 +1,21 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.YsTaskNotice;
import net.juntech.modules.ysdp.mapper.YsTaskNoticeMapper;
/**
* Service
* @author wq
* @version 2026-04-21
*/
@Service
@Transactional
public class YsTaskNoticeService extends ServiceImpl<YsTaskNoticeMapper, YsTaskNotice> {
}

View File

@ -0,0 +1,38 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import net.juntech.modules.ysdp.mapper.YsYunyingMapper;
import net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.YsYunyingMax;
import net.juntech.modules.ysdp.mapper.YsYunyingMaxMapper;
import java.util.List;
/**
* 线Service
* @author wq
* @version 2026-04-07
*/
@Service
@Transactional
public class YsYunyingMaxService extends ServiceImpl<YsYunyingMaxMapper, YsYunyingMax> {
@Autowired
YsYunyingMaxMapper ysYunyingMaxMapper;
// 获取历史最大客流信息 当前库
public List<YsYunyingMaxDTO> getHistoryMaxYy() {
return ysYunyingMaxMapper.getHistoryMaxYy();
}
public List<YsYunyingMax> getYunyinglist() {
return ysYunyingMaxMapper.getYunyinglist();
}
}

View File

@ -0,0 +1,94 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import net.juntech.modules.ysdp.domain.YsYunyingMax;
import net.juntech.modules.ysdp.service.dto.YsInterfaceDTO;
import net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.juntech.modules.ysdp.service.dto.YsYunyingDTO;
import net.juntech.modules.ysdp.domain.YsYunying;
import net.juntech.modules.ysdp.mapper.YsYunyingMapper;
import java.util.List;
/**
* Service
* @author wq
* @version 2026-03-30
*/
@Service
@Transactional
@DS("ysdp")
public class YsYunyingService extends ServiceImpl<YsYunyingMapper, YsYunying> {
@Autowired
YsYunyingMapper ysYunyingMapper;
/**
* id
* @param id
* @return
*/
public YsYunyingDTO findById(String id) {
return baseMapper.findById ( id );
}
/**
*
* @param page
* @param queryWrapper
* @return
*/
public IPage <YsYunyingDTO> findPage(Page <YsYunyingDTO> page, QueryWrapper queryWrapper) {
queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
return baseMapper.findList (page, queryWrapper);
}
/**
*
* @return
*/
public List<YsYunyingMaxDTO> getYunyingList(String date) {
return ysYunyingMapper.getYunyingList(date);
}
/**
*
* @param date
* @return
*/
public List<YsYunyingDTO> getStationMaxList(String date) {
return ysYunyingMapper.getStationMaxList(date);
}
/**
* TOP10线
*/
public List<YsYunyingDTO> getInOutStationMaxList(String date) {
return ysYunyingMapper.getInOutStationMaxList(date);
}
/**
* TOP10线
*/
public List<YsYunyingDTO> getTransferStationMaxList(String date) {
return ysYunyingMapper.getTransferStationMaxList(date);
}
public String getStationCompareValue(String compareDay, String stationId) {
return ysYunyingMapper.getStationCompareValue(compareDay,stationId);
}
public YsInterfaceDTO getInterface(String type) {
return ysYunyingMapper.getInterface(type);
}
}

View File

@ -0,0 +1,68 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.ZnMetroLines;
import net.juntech.modules.ysdp.mapper.ZnMetroLinesMapper;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
/**
* 线Service
* @author wang/mcgu
* @version 2025-05-08
*/
@Service
@Transactional
public class ZnMetroLinesService extends ServiceImpl<ZnMetroLinesMapper, ZnMetroLines> {
@Autowired
private ZnMetroLinesMapper znMetroLinesMapper;
/**
* id
* @param id
* @return
*/
public ZnMetroLinesDTO findById(String id) {
return baseMapper.findById ( id );
}
/**
*
* @param page
* @param queryWrapper
* @return
*/
public IPage <ZnMetroLinesDTO> findPage(Page <ZnMetroLinesDTO> page, QueryWrapper queryWrapper) {
queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
return baseMapper.findList (page, queryWrapper);
}
/***
* 线ID线
* @param line 线
* @return 线
*/
public String setMultiLineName(String line) {
String lines = "";
if (line != null && StringUtils.isNotEmpty(line)) {
List<HashMap<String, String>> lineList = znMetroLinesMapper.getMultiLineName(line.split(","));
if (lineList.size() > 0) {
lines = lineList.get(0).get("nameCn");
}
}
return lines;
}
}

View File

@ -0,0 +1,191 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jeeplus.sys.constant.CommonConstants;
import net.juntech.modules.ysdp.domain.*;
import net.juntech.modules.ysdp.mapper.ZnMetroStationsMapper;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import net.juntech.modules.ysdp.service.dto.ZnStationBarrierfreeDTO;
import net.juntech.modules.ysdp.service.dto.ZnStationEntranceDTO;
import net.juntech.modules.ysdp.service.dto.ZnStationToiletDTO;
import net.juntech.modules.ysdp.service.mapstruct.ZnMetroStationsWrapper;
import net.juntech.modules.ysdp.service.mapstruct.ZnStationBarrierfreeWrapper;
import net.juntech.modules.ysdp.service.mapstruct.ZnStationEntranceWrapper;
import net.juntech.modules.ysdp.service.mapstruct.ZnStationToiletWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
/**
* Service
* @author wang/mcgu
* @version 2025-05-09
*/
@Service
@Transactional
public class ZnMetroStationsService extends ServiceImpl<ZnMetroStationsMapper, ZnMetroStations> {
/**
* service
*/
@Autowired
private ZnStationBarrierfreeService znStationBarrierfreeService;
/**
* service
*/
@Autowired
private ZnStationEntranceService znStationEntranceService;
/**
* service
*/
@Autowired
private ZnStationToiletService znStationToiletService;
@Autowired
private ZnMetroStationsMapper znMetroStationsMapper;
/**
* id
* @param id
* @return
*/
public ZnMetroStationsDTO findById(String id) {
ZnMetroStationsDTO znMetroStationsDTO = baseMapper.findById ( id );
znMetroStationsDTO.setZnStationBarrierfreeDTOList(znStationBarrierfreeService.findList(id));
znMetroStationsDTO.setZnStationEntranceDTOList(znStationEntranceService.findList(id));
znMetroStationsDTO.setZnStationToiletDTOList(znStationToiletService.findList(id));
return znMetroStationsDTO;
}
/**
*
* @param page
* @param queryWrapper
* @return
*/
public IPage <ZnMetroStationsDTO> findPage(Page <ZnMetroStationsDTO> page, QueryWrapper queryWrapper) {
queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
return baseMapper.findList (page, queryWrapper);
}
/**
*
* @param znMetroStationsDTO
* @return
*/
public void saveOrUpdate(ZnMetroStationsDTO znMetroStationsDTO) {
ZnMetroStations znMetroStations = ZnMetroStationsWrapper.INSTANCE.toEntity ( znMetroStationsDTO );
super.saveOrUpdate (znMetroStations);
for (ZnStationBarrierfreeDTO znStationBarrierfreeDTO : znMetroStationsDTO.getZnStationBarrierfreeDTOList ()){
if ( CommonConstants.DELETED.equals ( znStationBarrierfreeDTO.getDelFlag()) ){
znStationBarrierfreeService.removeById ( znStationBarrierfreeDTO.getId () );
}else{
ZnStationBarrierfree znStationBarrierfree = ZnStationBarrierfreeWrapper.INSTANCE.toEntity ( znStationBarrierfreeDTO );
znStationBarrierfree.setStatId ( znMetroStations.getId () );
znStationBarrierfreeService.saveOrUpdate ( znStationBarrierfree );
}
}
for (ZnStationEntranceDTO znStationEntranceDTO : znMetroStationsDTO.getZnStationEntranceDTOList ()){
if ( CommonConstants.DELETED.equals ( znStationEntranceDTO.getDelFlag()) ){
znStationEntranceService.removeById ( znStationEntranceDTO.getId () );
}else{
ZnStationEntrance znStationEntrance = ZnStationEntranceWrapper.INSTANCE.toEntity ( znStationEntranceDTO );
znStationEntrance.setStatId ( znMetroStations.getId () );
znStationEntranceService.saveOrUpdate ( znStationEntrance );
}
}
for (ZnStationToiletDTO znStationToiletDTO : znMetroStationsDTO.getZnStationToiletDTOList ()){
if ( CommonConstants.DELETED.equals ( znStationToiletDTO.getDelFlag()) ){
znStationToiletService.removeById ( znStationToiletDTO.getId () );
}else{
ZnStationToilet znStationToilet = ZnStationToiletWrapper.INSTANCE.toEntity ( znStationToiletDTO );
znStationToilet.setStatId ( znMetroStations.getId () );
znStationToiletService.saveOrUpdate ( znStationToilet );
}
}
}
/**
*
* @param id
* @return
*/
public void removeById(String id) {
super.removeById ( id );
znStationBarrierfreeService.lambdaUpdate ().eq ( ZnStationBarrierfree::getStatId, id ).remove ();
znStationEntranceService.lambdaUpdate ().eq ( ZnStationEntrance::getStatId, id ).remove ();
znStationToiletService.lambdaUpdate ().eq ( ZnStationToilet::getStatId, id ).remove ();
}
/**
* statsion线(TOS)
*
* @param stations
* @return
*/
public List<ZnMetroStations> getStationListByStations(String[] stations) {
List<ZnMetroStations> resultList = this.baseMapper.getStationListByStations(stations);
int i = 0;
for (ZnMetroStations station : resultList) {
resultList.set(i, station);
i++;
}
return resultList;
}
/**
*
*
* @param nameCn
* @param line
* @return
*/
public List<String> findSameNameStationsByLine(String nameCn, String line) {
List<ZnMetroStations> sameNameStationList = znMetroStationsMapper.findSameNameStationsByLine(nameCn);
List<String> lineIdArray = Arrays.asList(line.split(","));
List<String> resultList = new ArrayList<>();
for (ZnMetroStations znMetroStations : sameNameStationList) {
if (new HashSet<>(lineIdArray).containsAll(Arrays.asList(znMetroStations.getLine().split(",")))) {
resultList.add(znMetroStations.getId());
}
}
return resultList;
}
/**
* 线
*
* @param metroLines 线
* @return
*/
public List<ZnMetroStations> getStationByIds(ZnMetroLines metroLines) {
return baseMapper.getStationByIds(metroLines.getStations().split(","));
}
public List<ZnMetroStations> findSameNameStations(String stationId) {
return znMetroStationsMapper.findSameNameStations(stationId);
}
/**
* stations线(线ID,)
*
* @param stations
* @return
*/
public List<ZnMetroStations> getStationListByStationsWithoutOrderBy(String[] stations) {
return this.baseMapper.getStationListByStationsWithoutOrderBy(stations);
}
}

View File

@ -0,0 +1,42 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.ZnStationBarrierfree;
import net.juntech.modules.ysdp.mapper.ZnStationBarrierfreeMapper;
import net.juntech.modules.ysdp.service.dto.ZnStationBarrierfreeDTO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Service
* @author wang/mcgu
* @version 2025-05-09
*/
@Service
@Transactional
public class ZnStationBarrierfreeService extends ServiceImpl<ZnStationBarrierfreeMapper, ZnStationBarrierfree> {
/**
* id
* @param id
* @return
*/
public ZnStationBarrierfreeDTO findById(String id) {
return baseMapper.findById ( id );
}
/**
*
* @param statId
* @return
*/
public List <ZnStationBarrierfreeDTO> findList(String statId) {
return baseMapper.findList (statId);
}
}

View File

@ -0,0 +1,77 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.ZnStationEntrance;
import net.juntech.modules.ysdp.mapper.ZnStationEntranceMapper;
import net.juntech.modules.ysdp.service.dto.ZnStationEntranceDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Service
* @author wang/mcgu
* @version 2025-05-09
*/
@Service
@Transactional
public class ZnStationEntranceService extends ServiceImpl<ZnStationEntranceMapper, ZnStationEntrance> {
@Autowired
ZnStationEntranceMapper znStationEntranceMapper;
/**
* id
* @param id
* @return
*/
public ZnStationEntranceDTO findById(String id) {
return baseMapper.findById ( id );
}
/**
*
* @param statId
* @return
*/
public List <ZnStationEntranceDTO> findList(String statId) {
return baseMapper.findList (statId);
}
/**
*
*/
public void delAll() {
znStationEntranceMapper.delAll();
}
/**
*
*
* @return
*/
public int setHideForAppBySyncStations() {
return this.baseMapper.setHideForAppBySyncStations();
}
public List<ZnStationEntrance> findAllListByStatId(String statId) {
return this.baseMapper.findAllListByStatId(statId);
}
public List<ZnStationEntrance> findAllListByStatId2(String statId) {
return this.baseMapper.findAllListByStatId2(statId);
}
public int updateForAll(ZnStationEntrance stationEntrance){
return this.baseMapper.updateForAll(stationEntrance);
}
public int updateForAllByExport(ZnStationEntrance stationEntrance){
return this.baseMapper.updateForAllByExport(stationEntrance);
}
}

View File

@ -0,0 +1,42 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.juntech.modules.ysdp.domain.ZnStationToilet;
import net.juntech.modules.ysdp.mapper.ZnStationToiletMapper;
import net.juntech.modules.ysdp.service.dto.ZnStationToiletDTO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Service
* @author wang/mcgu
* @version 2025-05-09
*/
@Service
@Transactional
public class ZnStationToiletService extends ServiceImpl<ZnStationToiletMapper, ZnStationToilet> {
/**
* id
* @param id
* @return
*/
public ZnStationToiletDTO findById(String id) {
return baseMapper.findById ( id );
}
/**
*
* @param statId
* @return
*/
public List <ZnStationToiletDTO> findList(String statId) {
return baseMapper.findList (statId);
}
}

View File

@ -0,0 +1,74 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import jakarta.validation.constraints.NotEmpty;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wq
* @version 2026-04-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsCommonMonitorDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty("主表id")
private String operateid;
/**
* 线
*/
@NotEmpty(message="线路不能为空")
@Query(type = QueryType.EQ)
@ExcelProperty("线路")
private String line;
/**
*
*/
@NotEmpty(message="站点不能为空")
@Query(type = QueryType.EQ)
@ExcelProperty("站点")
private String station;
/**
*
*/
@NotEmpty(message="监控位置不能为空")
@ExcelProperty("监控位置")
private String monitor;
/**
*
*/
@NotEmpty(message="序号不能为空")
@ExcelProperty("序号")
private String no;
/**
*
*/
@ExcelProperty("创建者")
private String createById;
/**
*
*/
@ExcelProperty("更新者")
private String updateById;
private String url;
}

View File

@ -0,0 +1,42 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.sys.service.dto.UserDTO;
import java.util.List;
import com.google.common.collect.Lists;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.excel.converter.ExcelUserDTOConverter;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-30
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsDutyInfoDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@Query(tableColumn = "a.dutyDate", javaField = "dutydate", type = QueryType.BETWEEN)
@ExcelProperty("值班日期")
private String dutydate;
/**
*
*/
private List<YsDutyInfoDetailDTO> ysDutyInfoDetailDTOList = Lists.newArrayList();
}

View File

@ -0,0 +1,53 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import jakarta.validation.constraints.NotEmpty;
import com.jeeplus.sys.service.dto.UserDTO;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wq
* @version 2026-03-30
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsDutyInfoDetailDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* id
*/
@NotEmpty(message="值班信息主表id不能为空")
private YsDutyInfoDTO dutyid;
/**
*
*/
private String dept;
/**
*
*/
@NotEmpty(message="值班人员不能为空")
private String dutuser;
/**
*
*/
@NotEmpty(message="性别不能为空")
private String sex;
/**
*
*/
@NotEmpty(message="手机号不能为空")
private String phone;
}

View File

@ -0,0 +1,64 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wq
* @version 2026-04-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsIndicatorDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Query(type = QueryType.EQ)
@ExcelProperty("年度")
private String nd;
/**
*
*/
@ExcelProperty("指标项")
private String type;
/**
*
*/
@ExcelProperty("基准值")
private String baseline;
/**
*
*/
@ExcelProperty("挑战值")
private String challenge;
/**
*
*/
@ExcelProperty("实际值")
private String actual;
/**
*
*/
@ExcelProperty("排序")
private String sort;
}

View File

@ -0,0 +1,46 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wang
* @version 2023-03-16
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsInterfaceDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@Query(type = QueryType.EQ)
private String name;
/**
*
*/
private String address;
/**
*
*/
private String param;
/**
*
*/
private String data;
/**
*
*/
@Query(type = QueryType.EQ)
private String status;
}

View File

@ -0,0 +1,51 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wq
* @version 2026-03-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsOperateManagerDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty("保驾等级")
private String level;
/**
*
*/
@ExcelProperty("开始日期")
private String begindate;
/**
*
*/
@ExcelProperty("创建者")
private String createById;
/**
*
*/
@ExcelProperty("更新者")
private String updateById;
/**
*
*/
@ExcelProperty("客流对比日期")
private String compareDate;
}

View File

@ -0,0 +1,113 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import jakarta.validation.constraints.NotEmpty;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wq
* @version 2026-03-31
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsStationCameraDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@NotEmpty(message="序号不能为空")
@ExcelProperty("序号")
private String num;
/**
* ID
*/
@NotEmpty(message="设备ID不能为空")
@Query(type = QueryType.EQ)
@ExcelProperty("设备ID")
private String deviceId;
/**
*
*/
@NotEmpty(message="所属站点不能为空")
@Query(type = QueryType.EQ)
@ExcelProperty("所属站点")
private String station;
/**
*
*/
@NotEmpty(message="监控信息不能为空")
@Query(type = QueryType.EQ)
@ExcelProperty("监控信息")
private String discription;
/**
*
*/
@NotEmpty(message="视频地址不能为空")
@ExcelProperty("视频地址")
private String url;
/**
*
*/
@NotEmpty(message="监控位置不能为空")
@ExcelProperty("监控位置")
private String position;
/**
*
*/
@NotEmpty(message="是否常用不能为空")
@ExcelProperty("是否常用")
private String favorites;
/**
*
*/
@NotEmpty(message="是否启用不能为空")
@Query(type = QueryType.EQ)
@ExcelProperty("是否启用")
private String enable;
/**
*
*/
@ExcelProperty("预览图片")
private String preview;
/**
*
*/
@ExcelProperty("排序")
private Long sort;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty("创建时间")
private Date createDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty("更新时间")
private Date updateDate;
}

View File

@ -0,0 +1,65 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import jakarta.validation.constraints.NotEmpty;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wq
* @version 2026-04-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsTaskNoticeDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@NotEmpty(message="序号不能为空")
@ExcelProperty("序号")
private String no;
/**
*
*/
@NotEmpty(message="公告标题不能为空")
@Query(type = QueryType.LIKE)
@ExcelProperty("公告标题")
private String title;
/**
*
*/
@NotEmpty(message="公告内容不能为空")
@ExcelProperty("公告内容")
private String content;
/**
*
*/
@ExcelProperty("状态")
private boolean status;
/**
*
*/
@ExcelProperty("创建者")
private String createById;
/**
*
*/
@ExcelProperty("更新者")
private String updateById;
}

View File

@ -0,0 +1,77 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.sys.service.dto.UserDTO;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.excel.converter.ExcelUserDTOConverter;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* DTO
* @author wq
* @version 2026-03-30
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsYunyingDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* 线
*/
@ExcelProperty("线路编码")
private String lineId;
/**
* 线
*/
@ExcelProperty("线路车站")
private String stationId;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty("数据开始时间")
private Date begTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty("数据结束时间")
private Date endTime;
/**
*
*/
@ExcelProperty("进站客流数")
private String pullNum;
/**
*
*/
@ExcelProperty("出站客流数")
private String departureNum;
/**
*
*/
@ExcelProperty("文件名")
private String fileName;
private String stationName;
private String total;
private String sortNo;
private String compareTotal;
}

View File

@ -0,0 +1,107 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.service.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 线DTO
* @author wq
* @version 2026-04-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class YsYunyingMaxDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* 线
*/
@Query(type = QueryType.EQ)
@ExcelProperty("线路编码")
private String lineId;
/**
*
*/
@ExcelProperty("数据开始时间结束时间")
private String time1;
/**
* time2
*/
@ExcelProperty("time2")
private String time2;
/**
* time3
*/
@ExcelProperty("time3")
private String time3;
/**
* time4
*/
@ExcelProperty("time4")
private String time4;
/**
* time5
*/
@ExcelProperty("time5")
private String time5;
/**
* time6
*/
@ExcelProperty("time6")
private String time6;
/**
* time7
*/
@ExcelProperty("time7")
private String time7;
/**
* time8
*/
@ExcelProperty("time8")
private String time8;
/**
* time9
*/
@ExcelProperty("time9")
private String time9;
/**
* time10
*/
@ExcelProperty("time10")
private String time10;
/**
*
*/
@ExcelProperty("创建者")
private String createById;
/**
*
*/
@ExcelProperty("更新者")
private String updateById;
private String maxDate;
private String totalSum;
}

View File

@ -0,0 +1,90 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.jeeplus.core.excel.annotation.ExcelDictProperty;
import com.jeeplus.core.excel.converter.ExcelDictDTOConverter;
import com.jeeplus.core.excel.converter.ExcelUserDTOConverter;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 线DTO
* @author wang/mcgu
* @version 2025-05-08
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class ZnMetroLinesDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* 线ID
*/
@NotEmpty(message="线路ID不能为空")
@Query(tableColumn = "line_id", javaField = "lineId", type = QueryType.EQ)
@ExcelProperty("线路ID")
private String lineId;
/**
* 线
*/
@NotEmpty(message="线路名英文不能为空")
@Query(tableColumn = "a.name_en", javaField = "nameEn", type = QueryType.LIKE)
@ExcelProperty("线路名英文")
private String nameEn;
/**
* 线
*/
@NotEmpty(message="线路名中文不能为空")
@Query(tableColumn = "a.name_cn", javaField = "nameCn", type = QueryType.LIKE)
@ExcelProperty("线路名中文")
private String nameCn;
/**
* 线
*/
@NotEmpty(message="线路类型不能为空")
@Query(tableColumn = "a.type", javaField = "type", type = QueryType.EQ)
@ExcelProperty(value = "线路类型", converter = ExcelDictDTOConverter.class)
@ExcelDictProperty("zn_line_type")
private String type;
/**
*
*/
@NotEmpty(message="站点集合不能为空")
@ExcelProperty("站点集合")
private String stations;
/**
*
*/
@ExcelProperty("排序")
private Long seqId;
/**
*
*/
@ExcelProperty("备注信息")
private String remarks;
/**
* id
*/
@ExcelProperty("仪电对应id")
private String ydLineId;
}

View File

@ -0,0 +1,231 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.google.common.collect.Lists;
import com.jeeplus.core.excel.annotation.ExcelDictProperty;
import com.jeeplus.core.excel.converter.ExcelDictDTOConverter;
import com.jeeplus.core.excel.converter.ExcelOfficeDTOConverter;
import com.jeeplus.core.excel.converter.ExcelUserDTOConverter;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.service.dto.OfficeDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class ZnMetroStationsDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@NotEmpty(message="序号不能为空")
@ExcelProperty("序号")
private String seqId;
/**
* ID
*/
@NotEmpty(message="站点ID不能为空")
@Query(tableColumn = "stat_id", javaField = "statId", type = QueryType.LIKE)
@ExcelProperty("站点ID")
private String statId;
/**
*
*/
@ExcelProperty("车站名英文")
private String nameEn;
/**
*
*/
@NotEmpty(message="车站名中文不能为空")
@Query(tableColumn = "name_cn", javaField = "nameCn", type = QueryType.LIKE)
@ExcelProperty("车站名中文")
private String nameCn;
/**
*
*/
@ExcelProperty("车站名拼音")
private String pinyin;
/**
* 线
*/
@NotEmpty(message="线路不能为空")
@Query(tableColumn = "line", javaField = "line", type = QueryType.EQ)
@ExcelProperty("线路")
private String line;
/**
*
*/
@NotEmpty(message="经度不能为空")
@ExcelProperty("经度")
private String longitude;
/**
*
*/
@NotEmpty(message="纬度不能为空")
@ExcelProperty("纬度")
private String latitude;
/**
* X
*/
@ExcelProperty("X坐标")
private String x;
/**
* Y
*/
@ExcelProperty("Y坐标")
private String y;
/**
*
*/
@ExcelProperty("站点图片")
private String statPic;
/**
*
*/
@ExcelProperty("站内厕所")
private String toiletInside;
/**
*
*/
@ExcelProperty("厕所位置")
private String toiletPosition;
/**
*
*/
@ExcelProperty("厕所位置英文")
private String toiletPositionEn;
/**
*
*/
@ExcelProperty("出入口信息")
private String entranceInfo;
/**
*
*/
@ExcelProperty("出入口信息英文")
private String entranceInfoEn;
/**
*
*/
@ExcelProperty("室外图片")
private String streetPic;
/**
*
*/
@ExcelProperty("完整拼音")
private String fullpinyin;
/**
*
*/
@ExcelProperty("类型")
private String type;
/**
*
*/
@ExcelProperty("电梯信息")
private String elevator;
/**
*
*/
@ExcelProperty("电梯信息英文")
private String elevatorEn;
/**
*
*/
@ExcelProperty("站内电梯")
private String entranceInside;
/**
*
*/
@ExcelProperty("百度地图经度")
private String bdlongitude;
/**
*
*/
@ExcelProperty("百度地图纬度")
private String bdlatitude;
/**
*
*/
@ExcelProperty("出入口")
private String entrancesexits;
/**
*
*/
@ExcelProperty(value = "站点属性", converter = ExcelDictDTOConverter.class)
@ExcelDictProperty("zn_station_type")
private String stationType;
/**
* ID
*/
@ExcelProperty("仪电站点ID")
private String ydStatId;
/**
*
*/
@ExcelProperty("仪电车站名")
private String ydStatName;
/**
*
*/
@ExcelProperty("备注信息")
private String remarks;
/**
*
*/
private List<ZnStationBarrierfreeDTO> znStationBarrierfreeDTOList = Lists.newArrayList();
/**
*
*/
private List<ZnStationEntranceDTO> znStationEntranceDTOList = Lists.newArrayList();
/**
*
*/
private List<ZnStationToiletDTO> znStationToiletDTOList = Lists.newArrayList();
}

View File

@ -0,0 +1,80 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class ZnStationBarrierfreeDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@NotEmpty(message="站点ID不能为空")
private ZnMetroStationsDTO stat;
/**
*
*/
@NotEmpty(message="设施序号不能为空")
private String seqId;
/**
*
*/
@NotEmpty(message="设施类型不能为空")
private String barrierfreeType;
/**
*
*/
@NotEmpty(message="设施位置不能为空")
private String position;
/**
*
*/
private String remarks;
/**
* 线ID
*/
@NotEmpty(message="线路ID不能为空")
private String lineId;
/**
*
*/
@NotEmpty(message="状态不能为空")
private String status;
/**
*
*/
private String description;
/**
*
*/
private String planOpenDate;
/**
*
*/
private String planCloseDate;
}

View File

@ -0,0 +1,79 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class ZnStationEntranceDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
*
*/
@NotEmpty(message="出口不能为空")
private String export;
/**
*
*/
@NotEmpty(message="位置不能为空")
private String position;
/**
* ID
*/
@NotEmpty(message="站点ID不能为空")
private ZnMetroStationsDTO stat;
/**
* 线ID
*/
@NotEmpty(message="线路ID不能为空")
private String lineId;
/**
*
*/
@NotEmpty(message="状态不能为空")
private String status;
/**
*
*/
private String description;
/**
*
*/
private String planOpenDate;
/**
*
*/
private String planCloseDate;
/**
*
*/
private String seqId;
/**
* APP
*/
private String hideForApp;
}

View File

@ -0,0 +1,85 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.dto;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* Entity
* @author wang/mcgu
* @version 2025-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class ZnStationToiletDTO extends BaseDTO {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@NotEmpty(message="站点ID不能为空")
private ZnMetroStationsDTO stat;
/**
*
*/
@NotEmpty(message="卫生间图例不能为空")
private String toiletIcon;
/**
*
*/
@NotEmpty(message="无障碍卫生间图例不能为空")
private String barrierFreeIcon;
/**
*
*/
@NotEmpty(message="卫生间位置不能为空")
private String toiletPosition;
/**
* 线ID
*/
@NotEmpty(message="线路ID不能为空")
private String lineId;
/**
*
*/
@NotEmpty(message="状态不能为空")
private String status;
/**
*
*/
private String description;
/**
*
*/
private String planOpenDate;
/**
*
*/
private String planCloseDate;
/**
*
*/
private String toiletDiscription;
/**
*
*/
private String remarks;
}

View File

@ -0,0 +1,24 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsCommonMonitorDTO;
import net.juntech.modules.ysdp.domain.YsCommonMonitor;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsCommonMonitorWrapper
* @author wq
* @version 2026-04-02
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsCommonMonitorWrapper extends EntityWrapper<YsCommonMonitorDTO, YsCommonMonitor> {
YsCommonMonitorWrapper INSTANCE = Mappers.getMapper(YsCommonMonitorWrapper.class);
}

View File

@ -0,0 +1,39 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDetailDTO;
import net.juntech.modules.ysdp.domain.YsDutyInfoDetail;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsDutyInfoDetailWrapper
* @author wq
* @version 2026-03-30
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsDutyInfoDetailWrapper extends EntityWrapper<YsDutyInfoDetailDTO, YsDutyInfoDetail> {
YsDutyInfoDetailWrapper INSTANCE = Mappers.getMapper(YsDutyInfoDetailWrapper.class);
@Mappings({
@Mapping(source = "dutyid.id", target = "dutyidId"),
@Mapping(source = "createBy.id", target = "createById"),
@Mapping (source = "updateBy.id", target = "updateById")})
YsDutyInfoDetail toEntity(YsDutyInfoDetailDTO dto);
@Mappings({
@Mapping(source = "dutyidId", target = "dutyid.id"),
@Mapping (source = "createById", target = "createBy.id"),
@Mapping (source = "updateById", target = "updateBy.id")})
YsDutyInfoDetailDTO toDTO(YsDutyInfoDetail entity);
}

View File

@ -0,0 +1,36 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsDutyInfoDTO;
import net.juntech.modules.ysdp.domain.YsDutyInfo;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsDutyInfoWrapper
* @author wq
* @version 2026-03-30
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsDutyInfoWrapper extends EntityWrapper<YsDutyInfoDTO, YsDutyInfo> {
YsDutyInfoWrapper INSTANCE = Mappers.getMapper(YsDutyInfoWrapper.class);
@Mappings({
@Mapping(source = "createBy.id", target = "createById"),
@Mapping (source = "updateBy.id", target = "updateById")})
YsDutyInfo toEntity(YsDutyInfoDTO dto);
@Mappings({
@Mapping (source = "createById", target = "createBy.id"),
@Mapping (source = "updateById", target = "updateBy.id")})
YsDutyInfoDTO toDTO(YsDutyInfo entity);
}

View File

@ -0,0 +1,24 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsIndicatorDTO;
import net.juntech.modules.ysdp.domain.YsIndicator;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsIndicatorWrapper
* @author wq
* @version 2026-04-02
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsIndicatorWrapper extends EntityWrapper<YsIndicatorDTO, YsIndicator> {
YsIndicatorWrapper INSTANCE = Mappers.getMapper(YsIndicatorWrapper.class);
}

View File

@ -0,0 +1,24 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsOperateManagerDTO;
import net.juntech.modules.ysdp.domain.YsOperateManager;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsOperateManagerWrapper
* @author wq
* @version 2026-03-31
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsOperateManagerWrapper extends EntityWrapper<YsOperateManagerDTO, YsOperateManager> {
YsOperateManagerWrapper INSTANCE = Mappers.getMapper(YsOperateManagerWrapper.class);
}

View File

@ -0,0 +1,24 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsStationCameraDTO;
import net.juntech.modules.ysdp.domain.YsStationCamera;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsStationCameraWrapper
* @author wq
* @version 2026-03-31
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsStationCameraWrapper extends EntityWrapper<YsStationCameraDTO, YsStationCamera> {
YsStationCameraWrapper INSTANCE = Mappers.getMapper(YsStationCameraWrapper.class);
}

View File

@ -0,0 +1,24 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsTaskNoticeDTO;
import net.juntech.modules.ysdp.domain.YsTaskNotice;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsTaskNoticeWrapper
* @author wq
* @version 2026-04-21
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsTaskNoticeWrapper extends EntityWrapper<YsTaskNoticeDTO, YsTaskNotice> {
YsTaskNoticeWrapper INSTANCE = Mappers.getMapper(YsTaskNoticeWrapper.class);
}

View File

@ -0,0 +1,24 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsYunyingMaxDTO;
import net.juntech.modules.ysdp.domain.YsYunyingMax;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsYunyingMaxWrapper
* @author wq
* @version 2026-04-07
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsYunyingMaxWrapper extends EntityWrapper<YsYunyingMaxDTO, YsYunyingMax> {
YsYunyingMaxWrapper INSTANCE = Mappers.getMapper(YsYunyingMaxWrapper.class);
}

View File

@ -0,0 +1,36 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.service.dto.YsYunyingDTO;
import net.juntech.modules.ysdp.domain.YsYunying;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* YsYunyingWrapper
* @author wq
* @version 2026-03-30
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface YsYunyingWrapper extends EntityWrapper<YsYunyingDTO, YsYunying> {
YsYunyingWrapper INSTANCE = Mappers.getMapper(YsYunyingWrapper.class);
@Mappings({
@Mapping(source = "createBy.id", target = "createById"),
@Mapping (source = "updateBy.id", target = "updateById")})
YsYunying toEntity(YsYunyingDTO dto);
@Mappings({
@Mapping (source = "createById", target = "createBy.id"),
@Mapping (source = "updateById", target = "updateBy.id")})
YsYunyingDTO toDTO(YsYunying entity);
}

View File

@ -0,0 +1,36 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.domain.ZnMetroLines;
import net.juntech.modules.ysdp.service.dto.ZnMetroLinesDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* ZnMetroLinesWrapper
* @author wang/mcgu
* @version 2025-05-08
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface ZnMetroLinesWrapper extends EntityWrapper<ZnMetroLinesDTO, ZnMetroLines> {
ZnMetroLinesWrapper INSTANCE = Mappers.getMapper(ZnMetroLinesWrapper.class);
@Mappings({
@Mapping(source = "createBy.id", target = "createById"),
@Mapping (source = "updateBy.id", target = "updateById")})
ZnMetroLines toEntity(ZnMetroLinesDTO dto);
@Mappings({
@Mapping (source = "createById", target = "createBy.id"),
@Mapping (source = "updateById", target = "updateBy.id")})
ZnMetroLinesDTO toDTO(ZnMetroLines entity);
}

View File

@ -0,0 +1,36 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.domain.ZnMetroStations;
import net.juntech.modules.ysdp.service.dto.ZnMetroStationsDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* ZnMetroStationsWrapper
* @author wang/mcgu
* @version 2025-05-09
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface ZnMetroStationsWrapper extends EntityWrapper<ZnMetroStationsDTO, ZnMetroStations> {
ZnMetroStationsWrapper INSTANCE = Mappers.getMapper(ZnMetroStationsWrapper.class);
@Mappings({
@Mapping(source = "createBy.id", target = "createById"),
@Mapping (source = "updateBy.id", target = "updateById")})
ZnMetroStations toEntity(ZnMetroStationsDTO dto);
@Mappings({
@Mapping (source = "createById", target = "createBy.id"),
@Mapping (source = "updateById", target = "updateBy.id")})
ZnMetroStationsDTO toDTO(ZnMetroStations entity);
}

View File

@ -0,0 +1,38 @@
/**
* Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
*/
package net.juntech.modules.ysdp.service.mapstruct;
import com.jeeplus.core.mapstruct.EntityWrapper;
import net.juntech.modules.ysdp.domain.ZnStationBarrierfree;
import net.juntech.modules.ysdp.service.dto.ZnStationBarrierfreeDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;
/**
* ZnStationBarrierfreeWrapper
* @author wang/mcgu
* @version 2025-05-09
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
public interface ZnStationBarrierfreeWrapper extends EntityWrapper<ZnStationBarrierfreeDTO, ZnStationBarrierfree> {
ZnStationBarrierfreeWrapper INSTANCE = Mappers.getMapper(ZnStationBarrierfreeWrapper.class);
@Mappings({
@Mapping(source = "stat.id", target = "statId"),
@Mapping(source = "createBy.id", target = "createById"),
@Mapping (source = "updateBy.id", target = "updateById")})
ZnStationBarrierfree toEntity(ZnStationBarrierfreeDTO dto);
@Mappings({
@Mapping(source = "statId", target = "stat.id"),
@Mapping (source = "createById", target = "createBy.id"),
@Mapping (source = "updateById", target = "updateBy.id")})
ZnStationBarrierfreeDTO toDTO(ZnStationBarrierfree entity);
}

Some files were not shown because too many files have changed in this diff Show More