From 815a9b04ef7e3df21d8b679376603b335656f5e8 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 30 四月 2025 17:09:52 +0800
Subject: [PATCH] 订单下发,订单下发定时任务处理
---
ycl-server/src/main/java/com/ycl/task/HKTask.java | 8 ---
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 38 +++++++++++++++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 4 ++
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 9 ++++
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 4 +-
ycl-server/src/main/java/com/ycl/task/WorkOrderTask.java | 33 ++++++++++++++++
ycl-server/src/main/java/com/ycl/task/UYTask.java | 1
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 3 +
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java | 2 +
9 files changed, 93 insertions(+), 9 deletions(-)
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 85c58bf..765db87 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
@@ -16,6 +16,7 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@@ -122,4 +123,6 @@
List<WorkOrderVO> getHandleTimeList(@Param("workOrderNos")List<String> workOrderNos);
WorkOrderDetailVO detailByNoButNoDistributeRecord(String workOrderNo);
+
+ List<WorkOrderVO> distributeList(Date startDate, Date endDate);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index b68349f..cb93a9b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -16,6 +16,7 @@
import org.bytedeco.javacv.FFmpegFrameGrabber;
import java.io.IOException;
+import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -126,6 +127,7 @@
*/
Result distributePage(DistributeWorkOrderQuery query);
+ List<WorkOrderVO> distributeList(Date startDate, Date endDate);
/**
* 蹇�熶笅鍙�
* @param data
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
index b52a9a4..2495202 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
@@ -19,6 +19,7 @@
import enumeration.general.WorkOrderStatusEnum;
import lombok.Data;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -36,6 +37,7 @@
*/
@Service
@RequiredArgsConstructor
+@Slf4j
public class UYErrorTypeCheckServiceImpl implements UYErrorTypeCheckService {
private final WorkOrderService workOrderService;
@@ -187,6 +189,8 @@
ywThresholdService.check(YwThreadConstants.Video_DiffTime, timeDiff, item.getDeviceNo(), ywThresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CLOCK_SKEW.getValue());
return workOrder;
}).collect(Collectors.toList());
+
+ log.error("osdCheck鑾峰緱鎻掑叆宸ュ崟:{}",workOrderList);
workOrderService.innerAddWorkOrder(workOrderList);
}
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 80dd2b3..c4c9ebc 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
@@ -62,6 +62,7 @@
import pojo.CascadeOption;
import utils.file.FileUtils;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
@@ -806,6 +807,11 @@
}
@Override
+ public List<WorkOrderVO> distributeList(Date startDate, Date endDate){
+ return baseMapper.distributeList(startDate,endDate);
+ }
+
+ @Override
@Transactional
public Result distributeFast(DistributeWorkOrderVO data) {
// 鑾峰彇褰撳墠鏃堕棿
@@ -862,6 +868,9 @@
}
}
+
+
+
@Override
@Transactional
public Result selectedIdsDistribute(DistributeWorkOrderQuery query) {
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index 15c3684..2c5b495 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -9,13 +9,11 @@
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.param.HK.*;
import com.ycl.platform.domain.result.HK.*;
-import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
import com.ycl.platform.domain.result.UY.VideoOnlineResult;
import com.ycl.platform.domain.vo.UpdateOnlineVO;
import com.ycl.platform.mapper.CheckIndexCarMapper;
import com.ycl.platform.mapper.CheckIndexFaceMapper;
import com.ycl.platform.mapper.TMonitorMapper;
-import com.ycl.platform.mapper.WorkOrderMapper;
import com.ycl.platform.service.*;
import com.ycl.utils.DateUtils;
import constant.ApiConstants;
@@ -608,7 +606,6 @@
}
}
log.error("鎵撳嵃hkResultLabels锛歿}",hkResultLabels);
-
}
}
if (faceLabelId == null || carLabelId == null){
@@ -650,7 +647,6 @@
//浠ユ壒娆d涓簁ey 鏀惧叆 JSONObject瀵硅薄
map.put(Integer.valueOf(batchIdKey),batch);
//鎵规id 涓� 鍚勫尯淇℃伅闆嗗悎
- log.error("鎵撳嵃鍑篸ata鍐呭涓壒娆d锛歿}锛屼互鍙婂搴旂殑缁撴灉info:{}",batchIdKey,batch);
}
//鑾峰緱鏈�澶х殑閿��
Optional<Integer> maxKey = map.keySet().stream()
@@ -720,7 +716,7 @@
//鎵规id 涓� 鍚勫尯淇℃伅闆嗗悎
log.error("鎵撳嵃鍑虹渷鍘呬汉鑴竏ata鍐呭涓壒娆d锛歿}锛屼互鍙婂搴旂殑缁撴灉info:{}",batchIdKey,batch);
}
- //鑾峰緱鏈�澶х殑閿��
+ //鑾峰緱鏈�澶х殑閿��
Optional<Integer> maxKey = map.keySet().stream()
.max(Integer::compareTo);
if (maxKey.isPresent()) {
@@ -785,8 +781,6 @@
Map<String,List<HkResultInfo>> provincialGroupedByAreaName = provincialList.stream()
.collect(Collectors.groupingBy(HkResultInfo::getAreaCode));
for (Map.Entry<String, List<HkResultInfo>> entry : provincialGroupedByAreaName.entrySet()) {
- log.error("鏈�鏂版壒娆″唴鐪佸巺鏁版嵁:{}",provincialGroupedByAreaName.get(entry.getKey()).size());
- log.error("鏈�鏂版壒娆″唴鐪佸巺size:{}",provincialGroupedByAreaName.get(entry.getKey()));
CheckIndexCar car = new CheckIndexCar();
CheckIndexFace face = new CheckIndexFace();
score3Index(provincialGroupedByAreaName.get(entry.getKey()), car, face,entry.getKey());
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index 6b1f82e..c1a3fe2 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -115,7 +115,7 @@
monitorList.add(monitor);
ywPointList.add(point);
}
- log.error("鍚屾mongo鏂皔wpoint鏁版嵁{}",ywPointList);
+
//娣诲姞鑰佹暟鎹�
List<String> numbers = CollectionUtils.isEmpty(monitorList) ? new ArrayList<>() : monitorList.stream().map(TMonitor::getSerialNumber).collect(Collectors.toList());
monitorVOMap.forEach((key, value) -> {
@@ -142,7 +142,7 @@
ywPointList.add(value);
}
});
- log.error("鍚屾mongo鏂板姞鏃wpoint鏁版嵁{}",ywPointList);
+
log.info("result闆嗗悎{},璁惧闆嗗悎{},鐐逛綅闆嗗悎{}", oneMachineFileResults.size(), monitorList.size(), ywPointList.size());
//鎻掑叆鏁版嵁搴�
if (!CollectionUtils.isEmpty(monitorList)) {
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 ce0ccac..1014aee 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -318,6 +318,7 @@
.map(TMonitorResult::getWorkOrder)
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(workOrderList)) {
+ log.error("pointOnline鑾峰緱鎻掑叆宸ュ崟:{}",workOrderList);
workOrderService.innerAddWorkOrder(workOrderList);
}
log.info("鐐逛綅鍦ㄧ嚎鐩戞祴瀹屾垚");
diff --git a/ycl-server/src/main/java/com/ycl/task/WorkOrderTask.java b/ycl-server/src/main/java/com/ycl/task/WorkOrderTask.java
index e40a3a3..f2d2d09 100644
--- a/ycl-server/src/main/java/com/ycl/task/WorkOrderTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/WorkOrderTask.java
@@ -1,8 +1,12 @@
package com.ycl.task;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.platform.domain.entity.WorkOrder;
+import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
+import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.YwPointJobVO;
import com.ycl.platform.mapper.WorkOrderMapper;
+import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.domain.SysConfig;
import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.utils.DateUtils;
@@ -13,6 +17,8 @@
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -25,6 +31,7 @@
@Component("workOrderTask")
public class WorkOrderTask {
+ private final WorkOrderService workOrderService;
private final WorkOrderMapper workOrderMapper;
private final SysConfigMapper configMapper;
@@ -74,4 +81,30 @@
workOrderMapper.updateById(wo);
}
}
+
+ public static List<String> errType = new ArrayList<>(List.of("OSD","ABNORMALPIC","DEVICEOFFLINE"));
+ //宸ュ崟涓嬪彂瀹氭椂浠诲姟锛� 宸ュ崟鍥犱负鏇存柊瀵艰嚧 鐘舵�佸彉涓哄緟涓嬪彂锛屾牴鎹敊璇被鍨嬪皢闇�瑕佺洿鎺ヤ笅鍙戝伐鍗�
+ //绂荤嚎锛屽浘褰㈠紓甯革紝osd閿欒
+ public void workOrderDistribute(){
+ //鏌ヨ浠婃棩寰呬笅鍙戝伐鍗�
+ Date now = new Date();
+ Date startDate = DateUtils.getDayStart(now);
+ Date endDate = DateUtils.getDayEnd(now);
+ //鑾峰緱浠婃棩宸ュ崟
+ List<WorkOrderVO> list = workOrderService.distributeList(startDate,endDate);
+ List<String> worderNos = new ArrayList<>();
+ for (WorkOrderVO workOrderVO : list){
+ for (String errType : workOrderVO.getErrorTypeList()){
+ if (WorkOrderTask.errType.contains(errType)){
+ //鍒ゆ柇宸ュ崟鏄惁鍖呭惈errType涓殑閿欒绫诲瀷
+ worderNos.add(workOrderVO.getWorkOrderNo());
+ break;
+ }
+ }
+ }
+ DistributeWorkOrderQuery distributeWorkOrderQuery = new DistributeWorkOrderQuery();
+ distributeWorkOrderQuery.setWorkOrderNOList(worderNos);
+ //涓嬪彂鎺ュ彛
+ workOrderService.selectedIdsDistribute(distributeWorkOrderQuery);
+ }
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 6c43d09..f5c8a70 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -162,6 +162,44 @@
p.yw_person_name
ORDER BY wo.work_order_no DESC
</select>
+ <select id="distributeList" resultMap="com.ycl.platform.domain.vo.WorkOrderVO">
+ SELECT
+ wo.id,wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, wo.yw_handle_time, wo.yw_result,
+ wo.yw_check_result, wo.overtime, wo.deduct,
+ u.unit_name,
+ p.yw_person_name,
+ yp.serial_number,
+ yp.important_tag,
+ yp.important_command_image_tag,
+ odr.create_time as distributeTime,
+ su.nick_name as realName,
+ tm.name as source,
+ GROUP_CONCAT(DISTINCT da.dict_label ORDER BY da.dict_label SEPARATOR '銆�') AS errorType
+ FROM
+ t_work_order wo
+ INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number
+ INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0
+ INNER JOIN t_yw_unit u ON wo.unit_id = u.id and u.deleted = 0
+ INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no
+ INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type'
+ LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id and p.deleted = 0
+ LEFT JOIN t_work_order_distribute_record odr ON odr.work_order_no = wo.work_order_no AND odr.deleted = 0
+ LEFT JOIN sys_user su ON su.user_id = odr.user_id
+ WHERE
+ wo.deleted = 0
+ AND wo.create_time BETWEEN #{startDate} AND #{endDate}
+ GROUP BY
+ wo.id, wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, tm.name, wo.yw_handle_time,
+ wo.yw_result, wo.yw_check_result, wo.overtime, wo.deduct,
+ u.unit_name,
+ p.yw_person_name,
+ yp.important_tag,
+ yp.important_command_image_tag,
+ odr.create_time,
+ su.nick_name
+ ORDER BY wo.create_time DESC
+ </select>
+
<select id="distributePage" resultType="com.ycl.platform.domain.vo.WorkOrderVO">
SELECT
wo.id,wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, wo.yw_handle_time, wo.yw_result,
--
Gitblit v1.8.0