From 08fc154ca750b446e97b4b7764f0ffe130348f24 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 26 十一月 2024 11:25:40 +0800
Subject: [PATCH] 创建工单时通过mosquitto推送消息

---
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java |  146 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 127 insertions(+), 19 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
index 34746ef..30d7b7f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
@@ -2,10 +2,13 @@
 
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
+import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper;
+import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
+import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
 import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -32,6 +35,9 @@
     @Autowired
     private OpeProcessingResultMapper opeProcessingResultMapper;
 
+    @Autowired
+    private OpeApproveResultMapper opeApproveResultMapper;
+
     /**
      * 娣诲姞宸ュ崟璁板綍
      * @param po
@@ -53,8 +59,8 @@
      * @param workOrderId
      * @return
      */
-    public OpeWorkOrder getWorkOrder(Long dispatcherId, Long workOrderId) {
-        return opeWorkOrderMapper.getWorkOrder(dispatcherId, workOrderId);
+    public OpeWorkOrder getWorkOrder(Long workOrderId, Long dispatcherId) {
+        return opeWorkOrderMapper.getWorkOrder(workOrderId, dispatcherId);
     }
 
     /**
@@ -96,27 +102,129 @@
     }
 
     /**
-     * 鏍规嵁workOrderId鑾峰彇鏈垹闄ょ殑澶勭悊缁撴灉鏁伴噺锛屾坊鍔犵粨鏋滀笂鎶ュ墠鍒ゆ柇浣跨敤
-     * @param workOrderId
-     * @return
-     */
-    public Boolean hasValidProcessingResult(Long workOrderId) {
-        if (opeProcessingResultMapper.getValidResultCount(workOrderId) == 0) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
      * 涓婃姤宸ュ崟澶勭悊缁撴灉
      * @param po
      * @return
      */
-    public Long insertProcessingResult(OpeProcessingResult po) {
-        po.setReportTime(new Date());
-        po.setState((byte)1);
+    public String addProcessingResult(OpeProcessingResult po) {
+        String result = "";
+        OpeProcessingResult processingResult = opeProcessingResultMapper.getByWorkOrderId(po.getWorkOrderId());
+        if(processingResult == null) {
+            // 鏃犲鐞嗙粨鏋滀笂鎶ュ鐞嗙粨鏋�
+            po.setReportTime(new Date());
+            po.setState((byte)1);
+            po.setDeleted(0L);
+            opeProcessingResultMapper.insert(po);
+            if(po.getId() == 0) {
+                result = "宸ュ崟澶勭悊缁撴灉涓婃姤澶辫触";
+                return result;
+            }
+
+            result = "success";
+            return result;
+        }
+
+        switch (processingResult.getState()) {
+            case 1:
+                result = "宸ュ崟澶勭悊缁撴灉宸蹭笂鎶ワ紝璇峰嬁閲嶅涓婃姤";
+                break;
+            case 2:
+                result = "宸ュ崟澶勭悊缁撴灉宸查�氳繃";
+                break;
+            case 3:
+                // 澶勭悊缁撴灉琚┏鍥炴椂锛屽垹闄ゅ綋鍓嶅鐞嗙粨鏋滐紝涓婃姤鏂扮殑澶勭悊缁撴灉
+                processingResult.setDeleted(System.currentTimeMillis()/1000);
+                opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
+
+                po.setReportTime(new Date());
+                po.setState((byte)1);
+                po.setDeleted(0L);
+                opeProcessingResultMapper.insert(po);
+                result = "success";
+                break;
+        }
+
+        return result;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾宸℃鍛樼殑鎸囧畾鏈垹闄や笖鏈鎵圭殑澶勭悊缁撴灉涓婃姤锛屽垹闄ゅ鐞嗙粨鏋滃墠鍒ゆ柇浣跨敤浣跨敤
+     * @param proResultId
+     * @param inspectorId
+     * @return
+     */
+    public OpeProcessingResult getProResult(Long proResultId, Long inspectorId) {
+        return opeProcessingResultMapper.getProResult(proResultId, inspectorId);
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫鐞嗙粨鏋�
+     * @param proResultId
+     * @return
+     */
+    public Integer deleteProResult(Long proResultId) {
+        return opeProcessingResultMapper.deleteProResult(proResultId);
+    }
+
+    /**
+     * 鑾峰彇澶勭悊缁撴灉璇︽儏
+     * @param proResultId
+     * @return
+     */
+    public VoProcessingResult getProResultById(Long proResultId) {
+        return opeProcessingResultMapper.getProResultById(proResultId);
+    }
+
+    /**
+     * 瀹℃牳宸ュ崟澶勭悊缁撴灉
+     *      1. 鍒ゆ柇鎸囧畾鐨勫伐鍗曞強澶勭悊缁撴灉鏄惁瀛樺湪涓旀湭瀹屾垚
+     *      2. 娣诲姞瀹℃牳璁板綍
+     *      3. 濡傛灉瀹℃牳閫氳繃
+     *          澶勭悊缁撴灉鐘舵�佹敼涓哄凡閫氳繃
+     *          宸ュ崟琛ュ厖浠诲姟瀹屾垚鏃堕棿
+     *          宸ュ崟鐘舵�佹敼涓哄凡瀹屾垚
+     *      4. 濡傛灉椹冲洖
+     *          浠诲姟澶勭悊缁撴灉鏀逛负椹冲洖
+     *          宸ュ崟椹冲洖娆℃暟鍔�1
+     * @param po
+     * @return
+     */
+    public String approveProResult(OpeApproveResult po) {
+
+        OpeProcessingResult processingResult = opeProcessingResultMapper.selectByPrimaryKey(po.getProcessingResultId());
+        if(processingResult == null || processingResult.getDeleted() != 0 || processingResult.getState() != 1) {
+            return "澶勭悊缁撴灉涓嶅瓨鍦ㄦ垨宸插畬鎴愬鏍�";
+        }
+
+        OpeWorkOrder workOrder = opeWorkOrderMapper.selectByPrimaryKey(po.getWorkOrderId());
+        if(workOrder == null || workOrder.getDeleted() != 0 || workOrder.getState() == 2) {
+            return "宸ュ崟涓嶅瓨鍦ㄦ垨宸插畬鎴�";
+        }
+
+        po.setApproveTime(new Date());
         po.setDeleted(0L);
-        opeProcessingResultMapper.insert(po);
-        return po.getId();
+        if(opeApproveResultMapper.insert(po) == 0) {
+            return "瀹℃牳璁板綍娣诲姞澶辫触";
+        }
+
+        if(po.getApproveResult() == 1) {
+            // 瀹℃牳閫氳繃
+            processingResult.setState((byte)2);
+            opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
+
+            workOrder.setCompleteTime(processingResult.getCompleteTime());
+            workOrder.setState((byte)2);
+            opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder);
+
+        } else {
+            // 椹冲洖
+            processingResult.setState((byte)3);
+            opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
+
+            workOrder.setRejectTimes(workOrder.getRejectTimes() + 1);
+            opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder);
+        }
+
+        return "success";
     }
 }

--
Gitblit v1.8.0