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