From a058edded3901601f8597c66bcae687c5dbc4407 Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期三, 26 六月 2024 11:37:55 +0800
Subject: [PATCH] 记录维修步骤

---
 pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java |   63 ++++++++++++++++++++++++++-----
 1 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
index e3b6538..3fa99a4 100644
--- a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
+++ b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
@@ -31,6 +31,7 @@
     private PrAssemblyPlanMapper assemblyPlanDao;
 //    private PrProductionProcessMapper processDao;
     private PrProductionNodeMapper nodeDao;
+    private StaRepairInfoMapper repairInfoDao;
     @Autowired
     public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) {
         this.deviceLastDao = deviceLastDao;
@@ -59,10 +60,14 @@
     public void setNodeDao(PrProductionNodeMapper nodeDao) {
         this.nodeDao = nodeDao;
     }
+    @Autowired
+    public void setRepairInfoDao(StaRepairInfoMapper repairInfoDao) {
+        this.repairInfoDao = repairInfoDao;
+    }
 
     public int save(QueryVo params) {
-        long taskId = Long.parseLong(params.taskId);
-        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(taskId);
+        long workId = Long.parseLong(params.workId);
+        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId);
         if (workLast == null) {
             throw new RuntimeException("宸ュ崟涓嶅瓨鍦�");
         }
@@ -88,7 +93,7 @@
             throw new RuntimeException("璁惧鍙锋湁涓斿彧鑳芥湁涓�涓�");
         }
 
-        StaDeviceLast deviceLast = saveDeviceLast(params, workLast, deviceList);
+        StaDeviceLast deviceLast = buildDeviceLast(params, workLast, deviceList.get(0));
         int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
                 deviceLastDao.updateByPrimaryKeySelective(deviceLast);
 
@@ -117,22 +122,22 @@
         deviceLifeDao.insertSelective(life);
     }
 
-    private StaDeviceLast saveDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, List<String> deviceList){
+    private StaDeviceLast buildDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, String deviceNo){
         //缁勮鏁版嵁
         StaDeviceLast record = new StaDeviceLast();
 
-        StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceList.get(0));
+        StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceNo);
         if(preRecord != null){
             record.id = preRecord.id;
             record.inTime = preRecord.outTime;
         }
         record.outTime = new Date();
 
-        record.setPlanId(workLast.planId);
-        record.setClaimId(Long.parseLong(params.taskId));
-        record.setStationId(workLast.stationId);
-        record.setEquipNo(deviceList.get(0));
-        record.setCurrNode(workLast.nodeId);
+        record.planId = workLast.planId;
+        record.workId = Long.parseLong(params.workId);
+        record.stationId = workLast.stationId;
+        record.equipNo = deviceNo;
+        record.currNode = workLast.nodeId;
 //        record.setNextNode(getNextNode(params.status,workLast.nodeId));
 
         record.updatedBy = workLast.userId;
@@ -170,4 +175,42 @@
             default -> throw new RuntimeException("鐘舵�侀敊璇�");
         };
     }
+
+    public int repair(QueryVo vo) {
+        long workId = Long.parseLong(vo.workId);
+        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId);
+        if (workLast == null) {
+            throw new RuntimeException("宸ュ崟涓嶅瓨鍦�");
+        }
+        StaDeviceLast preDeviceRecord = deviceLastDao.selectByDeviceNo(vo.deviceNo);
+        StaRepairInfo repairInfo = new StaRepairInfo();
+        repairInfo.workId = workId;
+        repairInfo.equipNo = vo.deviceNo;
+        repairInfo.repairTime = new Date();
+        repairInfo.repairBy = workLast.userId;
+        repairInfo.repairReason = vo.errorMsg;
+        repairInfo.fromNode = preDeviceRecord.currNode;
+        repairInfoDao.insertSelective(repairInfo);
+
+        StaDeviceLast deviceLast = new StaDeviceLast();
+        BeanUtils.copyProperties(preDeviceRecord, deviceLast);
+        deviceLast.repairId = repairInfo.id;
+        deviceLast.errorCode = vo.errorMsg;
+        deviceLast.assistants = vo.assistants;
+        //濡傛灉鍘熻妭鐐规槸缁撴潫鑺傜偣鎴栦箣鍚庣殑鑺傜偣锛屾槸鍒欐洿鏂颁负瀹屾垚,鍚﹀垯鏇存柊涓虹粍瑁呬腑(榛樿缁翠慨鑺傜偣鐨勭姸鎬佸彧鑳戒负 纭畾鎴� 鎶ュ簾)
+        boolean isEndNode = nodeDao.isEndNode(preDeviceRecord.currNode);
+        if(QrCodeConstant.MarkWaste.equals(vo.status)){
+            deviceLast.status = STATUS_WASTE;
+        }else{
+            deviceLast.status = isEndNode? STATUS_COMPLETE:STATUS_OK;
+        }
+        int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
+                deviceLastDao.updateByPrimaryKeySelective(deviceLast);
+        saveDeviceProductionLog(deviceLast);
+
+        if (isEndNode) {
+            saveDeviceLife(deviceLast);
+        }
+        return count;
+    }
 }

--
Gitblit v1.8.0