From 782de1a5b6182e5f9b4eff9e85d99a82beeebe50 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 01 八月 2024 16:16:51 +0800
Subject: [PATCH] feat:工单状态同步点位

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java               |   15 ++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java              |   37 +----------
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   19 ++++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java   |   41 +++++++------
 ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java            |    9 +++
 ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java  |    2 
 6 files changed, 63 insertions(+), 60 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
index 51d98e6..92430f4 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
@@ -1,6 +1,7 @@
 package com.ycl.platform.domain.entity;
 
 import annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.system.entity.BaseEntity;
 
@@ -141,15 +142,8 @@
     @Excel(name = "绫诲瀷缂栫爜 : [131.鎽勫儚鏈虹紪鐮�;132.缃戠粶鎽勫儚鏈虹紪鐮�;]")
     private Long lxbm;
 
-    @Excel(name = "寮傚父鍘熷洜")
-    private String reason;
-
-    @Excel(name ="寮傚父鎭㈠鏍囪瘑")
-    private Long recovery;
-
-    @Excel(name = "寮傚父鎭㈠鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date recoveryTime;
+    @TableField(exist = false)
+    private Integer recovery;
 
     private Long deptId;
 
@@ -169,31 +163,13 @@
         return installedTime;
     }
 
-    public Date getRecoveryTime() {
-        return recoveryTime;
-    }
-
-    public void setRecoveryTime(Date recoveryTime) {
-        this.recoveryTime = recoveryTime;
-    }
-
-    public Long getRecovery() {
+    public Integer getRecovery() {
         return recovery;
     }
 
-    public void setRecovery(Long recovery) {
+    public void setRecovery(Integer recovery) {
         this.recovery = recovery;
     }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-
 
     public void setId(Long id)
     {
@@ -501,9 +477,6 @@
                 ", cameraDept='" + cameraDept + '\'' +
                 ", hybm='" + hybm + '\'' +
                 ", lxbm=" + lxbm +
-                ", reason='" + reason + '\'' +
-                ", recovery=" + recovery +
-                ", recoveryTime=" + recoveryTime +
                 ", deptId=" + deptId +
                 '}';
     }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
index e041929..4fd4a81 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
@@ -3,13 +3,15 @@
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.time.LocalDateTime;
-
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.platform.base.AbsEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 杩愮淮鐐逛綅
@@ -60,5 +62,14 @@
     @TableField("point_tag")
     private String pointTag;
 
+    @TableField("reason")
+    private String reason;
+
+    @TableField("recovery")
+    private Integer recovery;
+
+    @TableField("recovery_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date recoveryTime;
 
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
index e9603bd..a6e6d44 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
@@ -85,4 +85,13 @@
      * @return
      */
     Result select(String keyword);
+
+    /**
+     * 鎵归噺鍚屾鐘舵��
+     *
+     * @param pointIds 鐐逛綅id
+     * @param recovery  鐘舵��
+     * @return 鏁伴噺
+     */
+    boolean updateRecovery(List<Integer> pointIds, int recovery);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index 4a241b1..88610bb 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -52,7 +52,7 @@
     public List<TMonitorVO> selectTMonitorList(TMonitor tMonitor)
     {
         List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor);
-        if (Objects.equals(tMonitor.getRecovery(), 1L)) {
+        if (Objects.equals(tMonitor.getRecovery(), 1)) {
             String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time");
             if (StringUtils.isBlank(time)) {
                 throw new RuntimeException("璇烽厤缃紓甯歌澶囪繛缁叧娉ㄦ椂闂�");
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 6a4f2a8..39f6dff 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
@@ -17,6 +17,7 @@
 import com.ycl.platform.service.NotifyService;
 import com.ycl.platform.service.WorkOrderAuditingRecordService;
 import com.ycl.platform.service.WorkOrderService;
+import com.ycl.platform.service.YwPointService;
 import com.ycl.system.Result;
 import com.ycl.system.model.LoginUser;
 import com.ycl.system.page.PageUtil;
@@ -38,9 +39,7 @@
 
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -54,8 +53,7 @@
 public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
 
     private final WorkOrderMapper workOrderMapper;
-    private final YwUnitMapper ywUnitMapper;
-    private final YwPeopleMapper ywPeopleMapper;
+    private final YwPointService ywPointService;
     private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
     private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
     private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
@@ -125,6 +123,10 @@
                 UrgentLevelEnum.WARNING,
                 workOrder.getWorkOrderNo());
         notifyService.save(notify);
+        // 鍚屾鐐逛綅鐘舵��
+        if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) {
+            ywPointService.updateRecovery(Collections.singletonList(workOrder.getPointId()), 0);
+        }
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
@@ -268,6 +270,7 @@
     }
 
     @Override
+    @Transactional
     public Result distributeFast(DistributeWorkOrderVO data) {
         // 鑾峰彇褰撳墠鏃堕棿
         LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault());
@@ -308,6 +311,8 @@
                     .in(WorkOrder::getId, ids)
                     .update();
             addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE);
+            // 鍚屾鐐逛綅鐘舵��
+            ywPointService.updateRecovery(pointIds, 1);
             return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�");
         } catch (Exception e) {
             return Result.error("鎿嶄綔澶辫触");
@@ -317,6 +322,7 @@
     }
 
     @Override
+    @Transactional
     public Result selectedIdsDistribute(DistributeWorkOrderQuery query) {
         WorkOrderDistributeWayEnum distributeWayEnum = WorkOrderDistributeWayEnum.SELECTED_DISTRIBUTE;
         if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); }
@@ -338,6 +344,9 @@
                     .in(WorkOrder::getId, query.getIds())
                     .update();
             addDistributeRecord(query.getIds(), distributeWayEnum);
+            // 鍚屾鐐逛綅鐘舵��
+            List<Integer> pointIds = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getPointId).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getPointId).toList();
+            ywPointService.updateRecovery(pointIds, 1);
             return Result.ok("鎴愬姛涓嬪彂" + query.getIds().size() + "鏉″伐鍗�");
         } catch (Exception e) {
             return Result.error("鎿嶄綔澶辫触");
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
index b18d3a5..258f830 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -1,43 +1,35 @@
 package com.ycl.platform.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.base.BaseSelect;
-import com.ycl.platform.domain.entity.Region;
 import com.ycl.platform.domain.entity.YwPeople;
 import com.ycl.platform.domain.entity.YwPoint;
-import com.ycl.platform.domain.entity.YwUnit;
 import com.ycl.platform.domain.form.BatchEditPointForm;
-import com.ycl.platform.mapper.RegionMapper;
+import com.ycl.platform.domain.form.YwPointForm;
+import com.ycl.platform.domain.query.YwPointQuery;
+import com.ycl.platform.domain.vo.YwPointVO;
 import com.ycl.platform.mapper.YwPeopleMapper;
 import com.ycl.platform.mapper.YwPointMapper;
-import com.ycl.platform.mapper.YwUnitMapper;
 import com.ycl.platform.service.YwPointService;
 import com.ycl.platform.service.YwUnitService;
 import com.ycl.system.Result;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.platform.domain.form.YwPointForm;
-import com.ycl.platform.domain.vo.YwPointVO;
-import com.ycl.platform.domain.query.YwPointQuery;
-import java.util.List;
-
-import com.ycl.system.entity.SysUser;
 import com.ycl.system.mapper.SysDeptMapper;
-import com.ycl.system.service.ISysDeptService;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.system.page.PageUtil;
+import com.ycl.utils.DateUtils;
 import com.ycl.utils.SecurityUtils;
-import enumeration.general.RegionLevelEnum;
-import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
-import java.util.ArrayList;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import lombok.RequiredArgsConstructor;
-import org.springframework.util.StringUtils;
 
 /**
  * 杩愮淮鐐逛綅 鏈嶅姟瀹炵幇绫�
@@ -214,4 +206,13 @@
         }).collect(Collectors.toList());
         return Result.ok().data(data);
     }
+
+    @Override
+    public boolean updateRecovery(List<Integer> pointIds, int recovery) {
+        return new LambdaUpdateChainWrapper<>(baseMapper)
+                .in(YwPoint::getId, pointIds)
+                .set(YwPoint::getRecovery, recovery)
+                .set(recovery == 0, YwPoint::getRecoveryTime, DateUtils.getNowDate())
+                .update();
+    }
 }

--
Gitblit v1.8.0