From 4696a0be1e0235e4a9e5077c3f42e038da8c6809 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 14 八月 2025 16:30:37 +0800
Subject: [PATCH] 1
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java | 96 ++++++++++++++-----
zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java | 1
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 15 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenController.java | 114 +++++++++++++++-------
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReport.java | 6 +
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReportLog.java | 39 +++----
7 files changed, 180 insertions(+), 93 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java
index b27960b..5116681 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java
@@ -11,6 +11,8 @@
add("10-1");
add("10-2");
add("10-3");
+ add("1001");
+ add("1007");
}};
public static final ArrayList<String> LEFT_STA_ROW_LIST = new ArrayList<String>(){{
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
index 15f7cbf..7e10fa7 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
@@ -61,29 +61,55 @@
@Scheduled(fixedDelay = 1000) // 鍥哄畾棰戠巼鎵ц锛屽悓姝�
// @Scheduled(cron = "0/1 * * * * ? ")
private void execute() {
- if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
-
- String autoRunAreas = configService.getVal("autoRunAreas", String.class);
- if (Cools.isEmpty(autoRunAreas)) { return; }
- for (char c : autoRunAreas.toCharArray()) {
- switch (c) {
- case '1':
- this.autoRun(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST, StaGroupConstant.FAR_RIGHT_STA_ROW_LIST, AgvGroupConstant.FIFTH_AGV_GROUP);
- break;
- case '2':
- this.autoRun(LocGroupConstant.RIGHT_LOC_ROW_LIST, StaGroupConstant.RIGHT_STA_ROW_LIST, AgvGroupConstant.FOURTH_AGV_GROUP);
- break;
- case '3':
- this.autoRun(LocGroupConstant.MIDDLE_LOC_ROW_LIST, StaGroupConstant.MIDDLE_STA_ROW_LIST, AgvGroupConstant.THIRD_AGV_GROUP);
- break;
- case '4':
- this.autoRun(LocGroupConstant.LEFT_LOC_ROW_LIST, StaGroupConstant.LEFT_STA_ROW_LIST, AgvGroupConstant.SECOND_AGV_GROUP);
- break;
- case '5':
- this.autoRun(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST, StaGroupConstant.FAR_LEFT_STA_ROW_LIST, AgvGroupConstant.FIRST_AGV_GROUP);
- break;
- default:
- break;
+ if (configService.getVal("TaskAssignMode", Boolean.class)) {
+ String autoRunAreas = configService.getVal("autoRunAreas", String.class);
+ if (Cools.isEmpty(autoRunAreas)) { return; }
+ for (char c : autoRunAreas.toCharArray()) {
+ switch (c) {
+ case '1':
+ this.autoRun(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST, StaGroupConstant.FAR_RIGHT_STA_ROW_LIST, AgvGroupConstant.FIFTH_AGV_GROUP);
+ break;
+ case '2':
+ this.autoRun(LocGroupConstant.RIGHT_LOC_ROW_LIST, StaGroupConstant.RIGHT_STA_ROW_LIST, AgvGroupConstant.FOURTH_AGV_GROUP);
+ break;
+ case '3':
+ this.autoRun(LocGroupConstant.MIDDLE_LOC_ROW_LIST, StaGroupConstant.MIDDLE_STA_ROW_LIST, AgvGroupConstant.THIRD_AGV_GROUP);
+ break;
+ case '4':
+ this.autoRun(LocGroupConstant.LEFT_LOC_ROW_LIST, StaGroupConstant.LEFT_STA_ROW_LIST, AgvGroupConstant.SECOND_AGV_GROUP);
+ break;
+ case '5':
+ this.autoRun(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST, StaGroupConstant.FAR_LEFT_STA_ROW_LIST, AgvGroupConstant.FIRST_AGV_GROUP);
+ break;
+ default:
+ break;
+ }
+ }
+ }else {
+ if (configService.getVal("InAndOutMode", Boolean.class,false)) {
+ String autoRunAreas = configService.getVal("autoRunAreas", String.class);
+ if (Cools.isEmpty(autoRunAreas)) { return; }
+ for (char c : autoRunAreas.toCharArray()) {
+ switch (c) {
+ case '1':
+ this.autoOut(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST, StaGroupConstant.FAR_RIGHT_STA_ROW_LIST, AgvGroupConstant.FIFTH_AGV_GROUP);
+ break;
+ case '2':
+ this.autoOut(LocGroupConstant.RIGHT_LOC_ROW_LIST, StaGroupConstant.RIGHT_STA_ROW_LIST, AgvGroupConstant.FOURTH_AGV_GROUP);
+ break;
+ case '3':
+ this.autoOut(LocGroupConstant.MIDDLE_LOC_ROW_LIST, StaGroupConstant.MIDDLE_STA_ROW_LIST, AgvGroupConstant.THIRD_AGV_GROUP);
+ break;
+ case '4':
+ this.autoOut(LocGroupConstant.LEFT_LOC_ROW_LIST, StaGroupConstant.LEFT_STA_ROW_LIST, AgvGroupConstant.SECOND_AGV_GROUP);
+ break;
+ case '5':
+ this.autoOut(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST, StaGroupConstant.FAR_LEFT_STA_ROW_LIST, AgvGroupConstant.FIRST_AGV_GROUP);
+ break;
+ default:
+ break;
+ }
+ }
}
}
}
@@ -104,6 +130,22 @@
this.runLocToLoc(locGroupList, agvGroupList, staTaskMemo);
}
+ private void autoOut(List<Integer> locGroupList, List<String> staGroupList, List<String> agvGroupList) {
+ int availableAgvCount = this.getAvailableAgvCount(agvGroupList);
+ if (0 == availableAgvCount) { return; }
+
+ List<String> staPreNos = getStaPrefixes(staGroupList);
+ String staTaskMemo = "DEMO_STA_" + String.join("-", staPreNos);
+
+ // 鍑哄簱
+ this.runLocToSta(locGroupList, staGroupList, staTaskMemo);
+ // 鍏ュ簱
+ if (staGroupList.contains("1007")){
+ this.runStaToLoc(locGroupList, staGroupList, staTaskMemo);
+ }
+
+ }
+
// 鍏ュ簱
private void runStaToLoc(List<Integer> locGroupList, List<String> staGroupList, String memo) {
Integer startRow = Collections.min(locGroupList);
@@ -111,14 +153,15 @@
AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
- if (null == agvModel) {
- return;
- }
+// if (null == agvModel) {
+// return;
+// }
// STOCK
LambdaQueryWrapper<Sta> stockWrapper = new LambdaQueryWrapper<Sta>()
.eq(Sta::getStaSts, StaStsType.STOCK.val())
.eq(Sta::getStatus, StatusType.ENABLE.val)
+ .eq(Sta::getInEnable,"Y")
.in(Sta::getStaNo, staGroupList);
List<Sta> stockList = staService.list(stockWrapper);
if (Cools.isEmpty(stockList)) { return; }
@@ -165,6 +208,7 @@
LambdaQueryWrapper<Sta> idleWrapper = new LambdaQueryWrapper<Sta>()
.eq(Sta::getStaSts, StaStsType.IDLE.val())
.eq(Sta::getStatus, StatusType.ENABLE.val)
+ .eq(Sta::getOutEnable,"Y")
.in(Sta::getStaNo, staGroupList);
List<Sta> idleList = staService.list(idleWrapper);
if (Cools.isEmpty(idleList)) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 87ff4d9..451bc83 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -132,7 +132,7 @@
if (!busService.save(bus)) {
throw new BusinessException("Internal Server Error!");
}
- Boolean locStaStatusCheck = configService.getVal("LOC_STA_STATUS_CHECK", Boolean.class, false);
+ Boolean locStaStatusCheck = configService.getVal("LOC_STA_STATUS_CHECK", Boolean.class, true);
// 淇濆瓨浠诲姟
@@ -279,7 +279,7 @@
if (!taskService.updateById(task)) {
throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update");
}
- report(task, TaskReportStsType.START);
+ report(task,null, TaskReportStsType.START);
}
} catch (Exception e) {
log.error("mainService.infuseAgvForTask", e);
@@ -1468,7 +1468,7 @@
List<Long> taskIds = actionService.selectTaskIdsByGroupId(serialNo);
for (Long taskId : taskIds) {
Task task = taskService.getById(taskId);
- report(task, TaskReportStsType.END);
+ report(task, agv_11_up.getQrCode(), TaskReportStsType.END);
}
}
@@ -1506,7 +1506,7 @@
List<Long> taskIds = actionService.selectTaskIdsByGroupId(serialNo);
for (Long taskId : taskIds) {
Task task = taskService.getById(taskId);
- report(task, TaskReportStsType.OTBIN);
+ report(task, agv_11_up.getQrCode(), TaskReportStsType.OTBIN);
}
}
@@ -1516,7 +1516,7 @@
List<Long> taskIds = actionService.selectTaskIdsByGroupId(serialNo);
for (Long taskId : taskIds) {
Task task = taskService.getById(taskId);
- report(task, TaskReportStsType.OTBIN);
+ report(task, agv_11_up.getQrCode(), TaskReportStsType.OTBIN);
}
}
//寰�杈撻�佺嚎鏀捐揣瀹屾垚
@@ -1525,7 +1525,7 @@
List<Long> taskIds = actionService.selectTaskIdsByGroupId(serialNo);
for (Long taskId : taskIds) {
Task task = taskService.getById(taskId);
- report(task, TaskReportStsType.END);
+ report(task, agv_11_up.getQrCode(), TaskReportStsType.END);
}
}
@@ -1641,7 +1641,7 @@
/**
* 涓婃姤缁欎笂娓哥郴缁燂紝灏辨槸鎻掑叆涓�鏉℃暟鎹埌涓婃姤琛�
*/
- private void report(Task task, TaskReportStsType taskReportStsType) {
+ private void report(Task task, String qrCode, TaskReportStsType taskReportStsType) {
// TODO 鎻掑叆涓�鏉′笂鎶ヨ褰�
if (task.getBusId() == null) {
return;
@@ -1655,6 +1655,7 @@
taskReport.setAgvId(task.getAgvId());
taskReport.setBusNo(task.getBusId$());
taskReport.setCreateTime(new Date());
+ taskReport.setQrCode(qrCode);
taskReport.setReportTimes(0);
taskReport.setTaskSts(taskReportStsType.status);
taskReport.setSeqNum(task.getSeqNum());
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
index e4055e2..78a8c8b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
@@ -42,6 +42,7 @@
String wmsUrl = configService.getVal("WMS_URL", String.class);
String wmsPath = configService.getVal("WMS_PATH", String.class);
Integer times = configService.getVal("REPORT_TIMES", Integer.class, 3);
+ String codes = configService.getVal("CODES", String.class, "1457;1612");
List<TaskReport> list = taskReportService.list();
for (TaskReport taskReport : list) {
if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenController.java
index 6c11241..a55eee0 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenController.java
@@ -10,9 +10,12 @@
import com.zy.acs.manager.core.service.MainService;
import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam;
import com.zy.acs.manager.manager.entity.Loc;
-import com.zy.acs.manager.manager.enums.LocStsType;
+import com.zy.acs.manager.manager.entity.Sta;
+import com.zy.acs.manager.manager.enums.StaStsType;
import com.zy.acs.manager.manager.service.LocService;
+import com.zy.acs.manager.manager.service.StaService;
import com.zy.acs.manager.system.controller.BaseController;
+import com.zy.acs.manager.system.service.ConfigService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -38,12 +41,46 @@
@Autowired
private LocService locService;
+ @Autowired
+ private StaService staService;
+
+ @Autowired
+ private ConfigService configService;
+
//@PreAuthorize("hasAuthority('open:bus:submit')")
@PostMapping("/bus/submit")
@OperationLog("generate task from open api")
public R save(@RequestBody OpenBusSubmitParam param) {
- mainService.generateBusAndTask(param, null);
- return R.ok("generate tasks success");
+ if (!configService.getVal("TaskAssignMode", Boolean.class)) {
+ if (configService.getVal("InAndOutMode", Boolean.class, false)) {
+ mainService.generateBusAndTask(param, null);
+ return R.ok("generate tasks success");
+ }
+ }
+ return R.error("generate tasks error");
+ }
+
+ @PostMapping("/sta/update")
+ @OperationLog("sync sta")
+ public R updateLoc(@RequestBody Map<String, Object> map) {
+ if (!configService.getVal("TaskAssignMode", Boolean.class)) {
+ if (configService.getVal("InAndOutMode", Boolean.class, false)) {
+ String staNo = map.get("staNo").toString();
+ Sta loc = staService.selectByStaNo(staNo);
+ if (staNo.equals("1001")) {
+ if (loc.getStaSts() == StaStsType.STOCK.val()) {
+ loc.setStaSts(Long.parseLong(map.get("sts").toString()));
+ return staService.updateById(loc) ? R.ok() : R.error("update loc fail");
+ }
+ } else if (staNo.equals("1007")) {
+ if (loc.getStaSts() == StaStsType.IDLE.val()) {
+ loc.setStaSts(Long.parseLong(map.get("sts").toString()));
+ return staService.updateById(loc) ? R.ok() : R.error("update loc fail");
+ }
+ }
+ }
+ }
+ return R.error("update loc fail");
}
//@PreAuthorize("hasAuthority('open:bus:submit')")
@@ -58,40 +95,45 @@
@PostMapping("/loc/one")
@OperationLog("one loc")
public R emptyLoc(@RequestBody Map<String, Object> map) {
- String staNo = map.get("staNo").toString();
- Integer startRow = null;
- Integer endRow = null;
- if (staNo.equals("101-2")||staNo.equals("101-3")||staNo.equals("102-2")||staNo.equals("102-3")){
- startRow = Collections.min(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST);
- endRow = Collections.max(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST);
- } else if (staNo.equals("103-2")||staNo.equals("103-3")||staNo.equals("104-2")||staNo.equals("104-3")) {
- startRow = Collections.min(LocGroupConstant.RIGHT_LOC_ROW_LIST);
- endRow = Collections.max(LocGroupConstant.RIGHT_LOC_ROW_LIST);
- }else if (staNo.equals("105-2")||staNo.equals("105-3")||staNo.equals("106-2")||staNo.equals("106-3")) {
- startRow = Collections.min(LocGroupConstant.MIDDLE_LOC_ROW_LIST);
- endRow = Collections.max(LocGroupConstant.MIDDLE_LOC_ROW_LIST);
- }else if (staNo.equals("107-2")||staNo.equals("107-3")||staNo.equals("108-2")||staNo.equals("108-3")) {
- startRow = Collections.min(LocGroupConstant.LEFT_LOC_ROW_LIST);
- endRow = Collections.max(LocGroupConstant.LEFT_LOC_ROW_LIST);
- }else if (staNo.equals("1007")){
- startRow = Collections.min(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST);
- endRow = Collections.max(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST);
- }else {
- return R.error("staNo is not support");
+ if (!configService.getVal("TaskAssignMode", Boolean.class)) {
+ if (configService.getVal("InAndOutMode", Boolean.class, false)) {
+ String staNo = map.get("staNo").toString();
+ Integer startRow = null;
+ Integer endRow = null;
+ if (staNo.equals("101-2") || staNo.equals("101-3") || staNo.equals("102-2") || staNo.equals("102-3")) {
+ startRow = Collections.min(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST);
+ endRow = Collections.max(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST);
+ } else if (staNo.equals("103-2") || staNo.equals("103-3") || staNo.equals("104-2") || staNo.equals("104-3")) {
+ startRow = Collections.min(LocGroupConstant.RIGHT_LOC_ROW_LIST);
+ endRow = Collections.max(LocGroupConstant.RIGHT_LOC_ROW_LIST);
+ } else if (staNo.equals("105-2") || staNo.equals("105-3") || staNo.equals("106-2") || staNo.equals("106-3")) {
+ startRow = Collections.min(LocGroupConstant.MIDDLE_LOC_ROW_LIST);
+ endRow = Collections.max(LocGroupConstant.MIDDLE_LOC_ROW_LIST);
+ } else if (staNo.equals("107-2") || staNo.equals("107-3") || staNo.equals("108-2") || staNo.equals("108-3")) {
+ startRow = Collections.min(LocGroupConstant.LEFT_LOC_ROW_LIST);
+ endRow = Collections.max(LocGroupConstant.LEFT_LOC_ROW_LIST);
+ } else if (staNo.equals("1007") || staNo.equals("1001")) {
+ startRow = Collections.min(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST);
+ endRow = Collections.max(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST);
+ } else {
+ return R.error("staNo is not support");
+ }
+ LambdaQueryWrapper<Loc> idleWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, Long.parseLong(map.get("sts").toString()));
+ if (null != startRow) {
+ idleWrapper.ge(Loc::getRow, startRow);
+ }
+ if (null != endRow) {
+ idleWrapper.le(Loc::getRow, endRow);
+ }
+ List<Loc> idleList = locService.list(idleWrapper);
+ if (Cools.isEmpty(idleList)) {
+ return R.error("娌$┖搴撲綅");
+ }
+ Collections.shuffle(idleList);
+ return R.ok().add(idleList.get(0));
+ }
}
- LambdaQueryWrapper<Loc> idleWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.IDLE.val());
- if (null != startRow) {
- idleWrapper.ge(Loc::getRow, startRow);
- }
- if (null != endRow) {
- idleWrapper.le(Loc::getRow, endRow);
- }
- List<Loc> idleList = locService.list(idleWrapper);
- if (Cools.isEmpty(idleList)) {
- return R.error("娌$┖搴撲綅");
- }
- Collections.shuffle(idleList);
- return R.ok().add(idleList.get(0));
+ return R.error("鏈紑鍚妯″紡");
}
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReport.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReport.java
index b51aba6..1f2fb3f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReport.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReport.java
@@ -56,6 +56,12 @@
@ApiModelProperty(value = "鎵�鍦ㄤ笂鎶ョ偣浣�")
private String qrCode;
+ /**
+ * 搴撲綅鎴栫珯鐐�
+ */
+ @ApiModelProperty(value = "搴撲綅鎴栫珯鐐�")
+ private String locNo;
+
/**
* 涓婃姤娆℃暟
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReportLog.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReportLog.java
index 997b0b1..8159f4b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReportLog.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReportLog.java
@@ -40,7 +40,7 @@
* 浠诲姟杩涘害
*/
@ApiModelProperty(value = "浠诲姟杩涘害")
- private Long taskSts;
+ private Integer taskSts;
/**
@@ -50,33 +50,24 @@
private Long agvId;
+ /**
+ * 鎵�鍦ㄤ笂鎶ョ偣浣�
+ */
+ @ApiModelProperty(value = "鎵�鍦ㄤ笂鎶ョ偣浣�")
+ private String qrCode;
+
+ /**
+ * 搴撲綅鎴栫珯鐐�
+ */
+ @ApiModelProperty(value = "搴撲綅鎴栫珯鐐�")
+ private String locNo;
/**
- * 璧峰绔�
+ * 涓婃姤娆℃暟
*/
- @ApiModelProperty(value = "璧峰绔�")
- private Long oriSta;
-
- /**
- * 璧峰搴撲綅
- */
- @ApiModelProperty(value = "璧峰搴撲綅")
- private Long oriLoc;
-
-
- /**
- * 鐩爣绔�
- */
- @ApiModelProperty(value = "鐩爣绔�")
- private Long destSta;
-
- /**
- * 鐩爣搴撲綅
- */
- @ApiModelProperty(value = "鐩爣搴撲綅")
- private Long destLoc;
-
+ @ApiModelProperty(value = "涓婃姤娆℃暟")
+ private Integer reportTimes;
/**
* 鎵樼洏鐮�
--
Gitblit v1.9.1