From 1b74e131111650d28b5d67b7e6c1b62db57736ad Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期日, 01 九月 2024 14:52:39 +0800
Subject: [PATCH] 定时任务工单生成优化
---
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 28 +++++++
ycl-pojo/src/main/java/com/ycl/platform/domain/query/PlatformQuery.java | 6 +
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 15 ++-
ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml | 3
ycl-server/src/main/java/com/ycl/task/UYTask.java | 126 +++++++++++++++---------------
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 8 ++
6 files changed, 117 insertions(+), 69 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/PlatformQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/PlatformQuery.java
index 39b05f8..acd3ae0 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/PlatformQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/PlatformQuery.java
@@ -13,5 +13,11 @@
@Data
@ApiModel(value = "Platform鏌ヨ", description = "骞冲彴杩愯鐩戞帶鏌ヨ")
public class PlatformQuery extends AbsQuery {
+
+ /**
+ * 鍏抽敭瀛楁悳绱�
+ */
+ private String keyword;
+
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
index 517232c..1625fb5 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
@@ -84,4 +84,12 @@
* @return
*/
int updateMany(List<WorkOrder> workOrderList);
+
+ /**
+ * 鑾峰彇鏈畬鎴愮殑宸ュ崟
+ *
+ * @param serialNumberList
+ * @return
+ */
+ List<WorkOrder> getNotFinishedWorkOrders(@Param("list") List<String> serialNumberList);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index b7b68f1..767691e 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -118,11 +118,14 @@
)).values().stream().collect(Collectors.toList());
List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList());
// 鏌ュ嚭鏁版嵁搴撲腑鍥芥爣鐮佸搴旂殑鏈畬鎴愮殑宸ュ崟
- List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper)
- .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getWorkOrderNo)
- .in(WorkOrder::getSerialNumber, serialNumberList)
- .ne(WorkOrder::getStatus, WorkOrderStatusEnum.AUDITING_SUCCESS)
- .list();
+ List<WorkOrder> inDatabaseWorkOrderList = baseMapper.getNotFinishedWorkOrders(serialNumberList);
+ inDatabaseWorkOrderList.stream().forEach(item -> {
+ if (StringUtils.hasText(item.getErrorType())) {
+ item.setErrorTypeList(List.of(item.getErrorType().split(",")));
+ } else {
+ item.setErrorTypeList(new ArrayList<>(1));
+ }
+ });
Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder)));
List<WorkOrder> waitAddList = new ArrayList<>(48);
List<WorkOrderErrorType> waitAddErrorTypeList = new ArrayList<>(48);
@@ -137,7 +140,7 @@
for (WorkOrder workOrder : workOrderList) {
WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
if (Objects.nonNull(databaseWorkOrder)) {
- List<String> errorNameList = workOrderErrorTypeService.getBaseMapper().getNotFinishWorkOrderErrors(databaseWorkOrder.getWorkOrderNo());
+ List<String> errorNameList = databaseWorkOrder.getErrorTypeList();
List<String> errorTypes = workOrder.getErrorTypeList();
if (errorNameList.containsAll(errorTypes)) {
// 濡傛灉锛屽浗鏍囩爜銆佹晠闅滅被鍨嬮兘涓�鏍凤紝鍒欒烦杩囦笉澶勭悊
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index 0554404..fcae41b 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -62,42 +62,42 @@
// 鍥惧儚妫�娴�
public void imageDetection() {
log.info("寮�濮嬫墽琛屽浘鍍忔娴嬫暟鎹悓姝�");
- ImageDetectionParam param = new ImageDetectionParam();
- param.setPageNum(ApiConstants.PageNo);
- param.setPageSize(ApiConstants.PageSize);
- param.setArealayerno(ApiConstants.AreaNo);
- JSONObject jsonObject = uyClient.imageDetection(param);
- if (jsonObject != null) {
- log.info("鏁版嵁鏍煎紡" + jsonObject);
- Integer statusCode = jsonObject.getInteger("statusCode");
- if (ApiConstants.UYSuccessCode.equals(statusCode)) {
- JSONObject data = jsonObject.getJSONObject("data");
- if (data != null) {
- List<ImageDetectionResult> records = data.getList("records", ImageDetectionResult.class);
- if (!CollectionUtils.isEmpty(records)) {
- //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
- Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- DeleteResult result = mongoTemplate.remove(query, ImageDetectionResult.class);
- //瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(records);
- // 宸ュ崟鐢熸垚
- uyErrorTypeCheckService.imageDetectionCheck(records);
- } else {
- log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", data);
- }
- } else {
- log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", jsonObject);
- }
- } else {
- log.error("鍥惧儚鐩戞祴璇锋眰澶辫触{}", jsonObject);
- }
- } else {
- log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖");
- }
+// ImageDetectionParam param = new ImageDetectionParam();
+// param.setPageNum(ApiConstants.PageNo);
+// param.setPageSize(ApiConstants.PageSize);
+// param.setArealayerno(ApiConstants.AreaNo);
+// JSONObject jsonObject = uyClient.imageDetection(param);
+// if (jsonObject != null) {
+// log.info("鏁版嵁鏍煎紡" + jsonObject);
+// Integer statusCode = jsonObject.getInteger("statusCode");
+// if (ApiConstants.UYSuccessCode.equals(statusCode)) {
+// JSONObject data = jsonObject.getJSONObject("data");
+// if (data != null) {
+// List<ImageDetectionResult> records = data.getList("records", ImageDetectionResult.class);
+// if (!CollectionUtils.isEmpty(records)) {
+// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+// Query query = new Query(Criteria
+// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+// DeleteResult result = mongoTemplate.remove(query, ImageDetectionResult.class);
+// //瀛樻斁鍦╩ongo涓�
+// mongoTemplate.insertAll(records);
+// // 宸ュ崟鐢熸垚
+// uyErrorTypeCheckService.imageDetectionCheck(records);
+// } else {
+// log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", data);
+// }
+// } else {
+// log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", jsonObject);
+// }
+// } else {
+// log.error("鍥惧儚鐩戞祴璇锋眰澶辫触{}", jsonObject);
+// }
+// } else {
+// log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖");
+// }
// 鏈湴娴嬭瘯
-// Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
-// uyErrorTypeCheckService.imageDetectionCheck(mongoTemplate.find(query, ImageDetectionResult.class));
+ Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+ uyErrorTypeCheckService.imageDetectionCheck(mongoTemplate.find(query, ImageDetectionResult.class));
log.info("缁撴潫鎵ц鍥惧儚鐩戞祴鏁版嵁鍚屾");
}
@@ -190,35 +190,35 @@
public void recordMetaDSumTask() {
//褰曞儚鍙敤鐜�
log.info("寮�濮嬫墽琛屽綍鍍忓彲鐢ㄦ暟鎹悓姝�");
- RecordMetaDSumParam param = new RecordMetaDSumParam();
- param.setTenantId(tenantId);
- Calendar instance = Calendar.getInstance();
- instance.setTime(new Date());
- instance.add(Calendar.DAY_OF_MONTH, -1);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- String yesterday = format.format(instance.getTime());
- param.setStatTime(yesterday);
- JSONObject jsonObject = uyClient.recordMetaDSumList(param);
- if (jsonObject != null) {
- if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
- List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class);
- if (!CollectionUtils.isEmpty(records)) {
- //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
- Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
- //瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(records);
- // 宸ュ崟鐢熸垚
- uyErrorTypeCheckService.recordMetaDSumCheck(records);
- }
- } else {
- log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject);
- }
- }
+// RecordMetaDSumParam param = new RecordMetaDSumParam();
+// param.setTenantId(tenantId);
+// Calendar instance = Calendar.getInstance();
+// instance.setTime(new Date());
+// instance.add(Calendar.DAY_OF_MONTH, -1);
+// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+// String yesterday = format.format(instance.getTime());
+// param.setStatTime(yesterday);
+// JSONObject jsonObject = uyClient.recordMetaDSumList(param);
+// if (jsonObject != null) {
+// if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
+// List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class);
+// if (!CollectionUtils.isEmpty(records)) {
+// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+// Query query = new Query(Criteria
+// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+// DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
+// //瀛樻斁鍦╩ongo涓�
+// mongoTemplate.insertAll(records);
+// // 宸ュ崟鐢熸垚
+// uyErrorTypeCheckService.recordMetaDSumCheck(records);
+// }
+// } else {
+// log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject);
+// }
+// }
// 鏈湴娴嬭瘯
-// Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
-// uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class));
+ Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+ uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class));
log.info("缁撴潫鎵ц褰曞儚鍙敤鏁版嵁鍚屾");
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml
index 962b43a..f2a3daf 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml
@@ -52,6 +52,9 @@
t_platform TP
WHERE
TP.deleted = 0
+ <if test="query.keyword != null and query.keyword != ''">
+ AND (TP.platform_name like concat('%', #{query.keyword}, '%') or TP.platform_ip like concat('%', #{query.keyword}, '%'))
+ </if>
</select>
</mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index f57cebe..a487fd4 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -254,4 +254,32 @@
WHERE id = #{item.id}
</foreach>
</update>
+
+
+ <select id="getNotFinishedWorkOrders" resultMap="GenWorkOrderMap">
+ SELECT
+ wo.id,
+ wo.serial_number,
+ wo.status,
+ wo.work_order_no,
+ GROUP_CONCAT(DISTINCT et.error_name SEPARATOR ',') AS error_names
+ FROM
+ t_work_order wo
+ LEFT JOIN t_work_order_error_type et ON et.work_order_no = wo.work_order_no
+ WHERE
+ wo.status != 'AUDITING_SUCCESS'
+ AND wo.deleted = 0
+ AND wo.serial_number in <foreach collection="list" open="(" separator="," close=")" item="serialNumber">
+ #{serialNumber}
+ </foreach>
+ GROUP BY
+ wo.id, wo.serial_number, wo.status, wo.work_order_no
+ </select>
+
+ <resultMap id="GenWorkOrderMap" type="com.ycl.platform.domain.entity.WorkOrder">
+ <id column="id" property="id"/>
+ <result column="serial_number" property="serialNumber"/>
+ <result column="status" property="status" typeHandler="com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler"/>
+ <result column="error_names" property="errorType"/>
+ </resultMap>
</mapper>
--
Gitblit v1.8.0