From 3403a2462434da327d89311b4b9a75ab7a9b5c0f Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 07 十一月 2024 18:38:22 +0800
Subject: [PATCH] OSD宇视bug,工单删除、工单导出时间bug等等

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   81 +++++++++++++++++++++++++++++-----------
 1 files changed, 59 insertions(+), 22 deletions(-)

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 5859cbc..86f83a0 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
@@ -54,7 +54,9 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.ApplicationContext;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
@@ -100,6 +102,8 @@
     private final ReportMapper reportMapper;
     private final WorkOrderCheckImgMapper workOrderCheckImgMapper;
     private final WorkOrderWhiteMapper workOrderWhiteMapper;
+    private final DeviceInfoMapper deviceInfoMapper;
+    private final ApplicationContext applicationContext;
     @Value("${rtsp.server:http://127.0.0.1:7788}")
     private String rtspServer;
 
@@ -110,14 +114,20 @@
     private RedisCache redisCache;
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public synchronized Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) {
+        //閬垮厤鍧�(浜嬪姟鍔犻攣浼氬け鏁堛�佹柟娉曞唴閮ㄨ皟鐢ㄤ簨鍔′細澶辨晥)
+        WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class);
+        return self.batchAddWorkOrder(workOrderList);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean batchAddWorkOrder(List<WorkOrder> workOrderList){
         int total = workOrderList.size();
         // 鏌ヨ鍑虹櫧鍚嶅崟鍒楄〃
         List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
         // 閬嶅巻宸ュ崟鍒楄〃锛屽垽鏂槸鍚﹀湪鐧藉悕鍗曚腑
         workOrderList = workOrderList.stream().filter(item -> !serialNumbers.contains(item.getSerialNumber()))
-                        .collect(Collectors.toList());
+                .collect(Collectors.toList());
         workOrderList = workOrderList.stream().filter(item -> {
             return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && !CollectionUtils.isEmpty(item.getErrorTypeList());
         }).collect(Collectors.toList());
@@ -213,11 +223,12 @@
             return Boolean.TRUE;
         }
         List<String> willAddSerialNumber = waitAddList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList());
-        //鍙敓鎴愯�冩牳璁惧鐨勫伐鍗�
+        //鍙敓鎴愯�冩牳璁惧銆佷笖鏈夎繍缁村崟浣嶇殑宸ュ崟
         List<YwPoint> pointList = new LambdaQueryChainWrapper<>(ywPointService.getBaseMapper())
                 .select(YwPoint::getUnitId, YwPoint::getSerialNumber, YwPoint::getImportantTag, YwPoint::getImportantTag, YwPoint::getProvinceTag, YwPoint::getImportantCommandImageTag)
                 .in(YwPoint::getSerialNumber, willAddSerialNumber)
                 .eq(YwPoint::getExamineStatus, Boolean.TRUE)
+                .isNotNull(YwPoint::getUnitId)
                 .list();
         Map<String, YwPoint> pointMapping = pointList.stream().collect(Collectors.toMap(YwPoint::getSerialNumber, point -> point));
         // 鏌ュ嚭閲嶇偣鐐逛綅銆佹櫘閫氱偣浣嶇殑澶勭悊鏃堕棿
@@ -312,7 +323,6 @@
         log.info("浼犲叆宸ュ崟鎬绘暟: {}锛屽疄闄呮坊鍔犲伐鍗曟暟锛歿}, 瀹為檯淇敼宸ュ崟鏁帮細{}", total, waitAddList.size(), updateNum);
         return Boolean.TRUE;
     }
-
     /**
      * 娣诲姞
      *
@@ -459,6 +469,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Result ywCondition(WorkOrderYWConditionForm form) {
+
         WorkOrder workOrder = baseMapper.selectById(form.getId());
         if (Objects.isNull(workOrder)) {
             throw new ServiceException("宸ュ崟涓嶅瓨鍦�");
@@ -475,9 +486,37 @@
         workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials());
         workOrderYwConditionRecord.setSysMsg(Boolean.FALSE);
         workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord);
+        //寮傛鑾峰彇鍥剧墖
+        WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class);
+        self.getImage(workOrder);
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
+    @Async("threadPoolTaskExecutor")
+    public void getImage(WorkOrder workOrder) {
+        List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper)
+                .orderByDesc(DeviceInfo::getUpdateTime)
+                .last("limit 1")
+                .list();
+        if (CollectionUtils.isEmpty(gbDevices)) {
+            return;
+        }
+        // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id
+        String frameImg = null;
+        try {
+            log.info("鍥芥爣骞冲彴:{},璁惧缂栫爜:{},宸ュ崟鍙�:{}",gbDevices.get(0).getDeviceId(), workOrder.getSerialNumber(), workOrder.getWorkOrderNo());
+            frameImg = this.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), workOrder.getSerialNumber(), workOrder.getWorkOrderNo());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        if (StringUtils.hasText(frameImg)) {
+            WorkOrderCheckImg img = new WorkOrderCheckImg();
+            img.setWorkOrderNo(workOrder.getWorkOrderNo());
+            img.setImgUrl(frameImg);
+            img.setCreateTime(new Date());
+            workOrderCheckImgMapper.insert(img);
+        }
+    }
     @Override
     public List<WorkOrderYwConditionRecordVO> selectYwConditionByYwId(String workOrderNo) {
         List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(workOrderNo);
@@ -529,6 +568,9 @@
      */
     @Override
     public Result removeById(String id) {
+        WorkOrder workOrder = baseMapper.selectById(id);
+        String workOrderNo = workOrder.getWorkOrderNo();
+        workOrderDistributeRecordMapper.deleteByWorkOrder(workOrderNo);
         if (baseMapper.deleteById(id) > 0) {
             return Result.ok("鍒犻櫎鎴愬姛");
         }
@@ -544,9 +586,11 @@
     @Override
     public Result page(WorkOrderQuery query) {
         IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class);
-        query.setUnitId(SecurityUtils.getUnitId());
-        query.setStart(DateUtils.getDayStart(query.getStart()));
-        query.setEnd(DateUtils.getDayEnd(query.getEnd()));
+        if(query.getUnitId()==null) {
+            query.setUnitId(SecurityUtils.getUnitId());
+        }
+        if(query.getStart()!=null) query.setStart(DateUtils.getDayStart(query.getStart()));
+        if(query.getEnd()!=null) query.setEnd(DateUtils.getDayEnd(query.getEnd()));
         baseMapper.page(page, query);
         if (!CollectionUtils.isEmpty(page.getRecords())) {
             page.getRecords().stream().forEach(item -> {
@@ -564,6 +608,8 @@
     @Override
     public Result distributePage(DistributeWorkOrderQuery query) {
         IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class);
+        if(query.getStart()!=null) query.setStart(DateUtils.getDayStart(query.getStart()));
+        if(query.getEnd()!=null) query.setEnd(DateUtils.getDayEnd(query.getEnd()));
         baseMapper.distributePage(page, query);
         return Result.ok().data(page).total(page.getTotal());
     }
@@ -791,6 +837,7 @@
     @Override
     public synchronized String getFrameImgByDevice(String deviceId, String channelId, String workOrderNo) throws Exception {
         String url = String.format(this.rtspServer + "/api/play/start/img/%s/%s", deviceId, channelId);
+        log.info("璁块棶璺緞{}",url);
         String result = HttpUtils.sendGet(url);
         log.info("鎷垮埌鍙栨祦鍥剧墖鍝嶅簲缁撴灉锛�" + result);
         WVPResult wvpResult = JSON.parseObject(result, WVPResult.class);
@@ -991,22 +1038,10 @@
     @Override
     public List<WorkOrderVO> export (WorkOrderExportQuery query){
         query.setUnitId(SecurityUtils.getUnitId());
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        if (query.getStart() == null) {
-            query.setStart(format.format(DateUtils.getDayStart(new Date())));
-        } else {
-            query.setStart(query.getStart() + " 00:00:00");
-        }
-        if (query.getEnd() == null) {
-            query.setStart(format.format(DateUtils.getDayEnd(new Date())));
-        } else {
-            query.setEnd(query.getEnd() + " 23:59:59");
-        }
+        if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00");
+        if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59");
 
-        List<WorkOrderVO> export = baseMapper.export(query);
-
-        System.out.println(export);
-        return export;
+        return baseMapper.export(query);
     }
 
     /**
@@ -1083,4 +1118,6 @@
         updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
         insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
     }
+
+
 }

--
Gitblit v1.8.0