From 4a35dea2b0976e7fdb0e2b1a0d7d9b8ac2af0fe4 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期五, 01 十一月 2024 09:18:49 +0800
Subject: [PATCH] get product

---
 pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java |  151 +++++++++++++++++++++++++++++++++----------------
 1 files changed, 101 insertions(+), 50 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 f87a757..6cddd03 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
@@ -7,18 +7,23 @@
 import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper;
 import com.dy.pmsGlobal.daoPr.PrProductionNodeMapper;
 import com.dy.pmsGlobal.daoSta.*;
+import com.dy.pmsGlobal.daoTst.TstCommandMapper;
 import com.dy.pmsGlobal.dyFile.FileOperate;
 import com.dy.pmsGlobal.dyFile.FileRestVo;
 import com.dy.pmsGlobal.pojoOth.OthFile;
 import com.dy.pmsGlobal.pojoPlt.*;
 import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan;
+import com.dy.pmsGlobal.pojoPr.PrBillOfMaterial;
 import com.dy.pmsGlobal.pojoPr.PrProductionNode;
 import com.dy.pmsGlobal.pojoPr.PrWorkingInstruction;
 import com.dy.pmsGlobal.pojoSta.*;
+import com.dy.pmsGlobal.pojoTst.TstCommand;
 import com.dy.pmsGlobal.util.DeviceResult;
 import com.dy.pmsGlobal.util.DeviceStatus;
 import com.dy.pmsGlobal.util.QrCodeConstant;
+import com.dy.pmsGlobal.util.UserUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -50,6 +55,7 @@
     private StaRepairInfoMapper repairInfoDao;
     private PltProductQualityInspectionItemsMapper qualityItemsDao;
     private PltProductTestInspectionItemsMapper testItemsDao;
+    private TstCommandMapper tstCommandDao;
     private PltProductMapper productDao;
     private PltProParamsMapper paramsDao;
     private PltProductFileMapper productFileDao;
@@ -136,6 +142,11 @@
     @Autowired
     public void setDeviceLifeLastDao(StaDeviceLifeLastMapper deviceLifeLastDao) {
         this.deviceLifeLastDao = deviceLifeLastDao;
+    }
+
+    @Autowired
+    public void setTstCommandDao(TstCommandMapper tstCommandDao) {
+        this.tstCommandDao = tstCommandDao;
     }
 
     @Transactional
@@ -240,9 +251,15 @@
             if (record.outLineTime != null) {
                 isEnd = true;
             }
+            if(StringUtils.isNotBlank(params.getContent())){
+                record.nodeContent = params.getContent();
+            }
         } else {
             PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId);
             record.nodeContent = node.content;
+            PrProductionNode nextNode = nodeDao.selectNodeBySort(node.getProcessId() , (node.getSort() + 1));
+            record.nextNodeContent = nextNode.content;
+            record.nextNode = nextNode.id;
             if (node.isRecord) {
                 record.deviceCycleContent = node.deviceCycleContent;
             }
@@ -284,7 +301,7 @@
      */
     private Integer getStatus(String status, boolean isEnd, String workType) {
         //缁勮   2024/07/17 鐩墠缁勮workType 1 鍙湁MarkOk     //娴嬭瘯    //鍝佹
-        if (WORK_TYPE_ASSEMBLY.equals(workType) || WORK_TYPE_TEST.equals(workType) || WORK_TYPE_INSPECTION.equals(workType) || WORK_TYPE_REPAIR.equals(workType)) {
+        if (WORK_TYPE_ASSEMBLY.equals(workType) || WORK_TYPE_TEST.equals(workType) || WORK_TYPE_INSPECTION.equals(workType) || WORK_TYPE_REPAIR.equals(workType)|| WORK_TYPE_OTHER.equals(workType)) {
             return switch (status) {
                 case QrCodeConstant.MarkOk -> isEnd ? DeviceStatus.COMPLETED.getCode() : DeviceStatus.ASSEMBLING.getCode();
                 case QrCodeConstant.MarkQualified -> isEnd ? DeviceStatus.COMPLETED.getCode() : DeviceStatus.ASSEMBLING.getCode();
@@ -304,8 +321,8 @@
      * @return 缁撴灉
      */
     private Integer getResult(String status, String workType) {
-        //缁勮
-        if (WORK_TYPE_ASSEMBLY.equals(workType)) {
+        //缁勮  涓存椂浠诲姟-鍏朵粬
+        if (WORK_TYPE_ASSEMBLY.equals(workType) || WORK_TYPE_OTHER.equals(workType)) {
             return switch (status) {
                 case QrCodeConstant.MarkOk -> DeviceResult.PASS.getCode();
                 default -> throw new RuntimeException("鐘舵�侀敊璇�");
@@ -349,19 +366,19 @@
         repairInfo.repairTime = new Date();
         repairInfo.repairBy = workLast.userId;
         repairInfo.repairReason = vo.errorMsg;
-        repairInfo.fromNode = preDeviceRecord.currNode;
+        if (preDeviceRecord != null) {
+            repairInfo.fromNode = preDeviceRecord.currNode;
+        }
         repairInfoDao.insertSelective(repairInfo);
 
         StaDeviceLast deviceLast = buildDeviceLast(vo, workLast, vo.deviceNo[0]);
-
+        deviceLast.setRepairId(repairInfo.getId());
         int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
                 deviceLastDao.updateByPrimaryKey(deviceLast);
         saveDeviceProductionLog(deviceLast);
-        if(preDeviceRecord.currNode != null){
-            boolean isEndNode = nodeDao.isEndNode(preDeviceRecord.currNode);
-            if (isEndNode) {
-                saveDeviceLife(deviceLast);
-            }
+        //鍙缁忓巻杩囩粨鏉熻妭鐐�,灏变竴鐩磋褰昫evice life
+        if (preDeviceRecord != null && preDeviceRecord.getOutLineTime() != null) {
+            saveDeviceLife(deviceLast);
         }
         return count;
     }
@@ -410,22 +427,31 @@
         if (workLast == null) {
             throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�");
         }
-        //淇濆瓨宸ヤ綔璁板綍
-        StaDeviceProductionLog log = new StaDeviceProductionLog();
-        log.setId(null); // 璁惧鐢熶骇鏃ュ織ID璁句负null锛岃〃绀烘柊澧�
-        log.setDeviceNo("");  //RepairId  planId  currNode deviceCycleContent  memo
-        log.setWorkId(workId);
-        log.setStationId(workLast.getStationId());
-        log.setNodeContent(vo.getContent());
-        log.setStatus(DeviceStatus.COMPLETED.getCode());//瀹屾垚鐘舵��
-        log.setResult(DeviceResult.PASS.getCode());//閫氳繃
-        log.setErrorMsg(vo.getErrorMsg());
-        log.setAssistants(workLast.getAssistants());
-        log.setInTime(new Date());
-        log.setOutTime(new Date());
-        log.setUpdatedBy(workLast.getUserId());
-        log.setNumber(vo.getNumber());
-        int count = deviceProductionLogDao.insertSelective(log);
+        int count = 0;
+        //淇濆瓨宸ヤ綔璁板綍 //濡傛灉鏈夎澶囩爜
+        if(vo.deviceNo != null && StringUtils.isNotBlank(vo.deviceNo[0])){
+            StaDeviceLast deviceLast = buildDeviceLast(vo, workLast, vo.deviceNo[0]);
+            count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
+                    deviceLastDao.updateByPrimaryKey(deviceLast);
+            saveDeviceProductionLog(deviceLast);
+        }else{
+            StaDeviceProductionLog log = new StaDeviceProductionLog();
+            log.setId(null); // 璁惧鐢熶骇鏃ュ織ID璁句负null锛岃〃绀烘柊澧�
+            log.setDeviceNo("");  //RepairId  planId  currNode deviceCycleContent  memo
+            log.setWorkId(workId);
+            log.setStationId(workLast.getStationId());
+            log.setNodeContent(vo.getContent());
+            log.setStatus(DeviceStatus.COMPLETED.getCode());//瀹屾垚鐘舵��
+            log.setResult(DeviceResult.PASS.getCode());//閫氳繃
+            log.setErrorMsg(vo.getErrorMsg());
+            log.setAssistants(workLast.getAssistants());
+            log.setInTime(new Date());
+            log.setOutTime(new Date());
+            log.setUpdatedBy(workLast.getUserId());
+            log.setNumber(vo.getNumber());
+            count = deviceProductionLogDao.insertSelective(log);
+
+        }
         return count;
     }
 
@@ -440,6 +466,9 @@
         }
         if (node.instruction != null) {
             addUrl(node.instruction);
+        }
+        if (node.bill != null) {
+            addBillUrl(node.bill);
         }
         return node;
     }
@@ -465,7 +494,7 @@
                 return;
             }
             FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
-            doc.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + doc.fileId;
+            doc.webUrl = fileRestVo.fileWebDownloadPath + doc.fileId;
             doc.orgName = file.orgName;
             doc.extName = file.extName;
         });
@@ -507,32 +536,32 @@
             return;
         }
         FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
-        ins.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + ins.fileId;
+        ins.webUrl = fileRestVo.fileWebDownloadPath + ins.fileId;
         ins.orgName = file.orgName;
         ins.extName = file.extName;
     }
 
-    private PltProduct addWebUrl(PltProduct pro) {
-        if (pro != null) {
-            if (pro.image != null) {
-                String filePathWithWebUrl = getFilePathWithWebUrl(pro.image);
-                pro.imageWebPath = filePathWithWebUrl;
-                pro.imageWebPathZip = fileOperate.getImgFileZipPath(filePathWithWebUrl);
-            }
-
-            pro.proFiles.stream().forEach(doc -> {
-                OthFile file = othFileMapper.selectByPrimaryKey(doc.fileId);
-                if (file == null) {
-                    return;
-                }
-                FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
-                doc.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + doc.fileId;
-                doc.orgName = file.orgName;
-                doc.extName = file.extName;
-            });
-        }
-        return pro;
-    }
+//    private PltProduct addWebUrl(PltProduct pro) {
+//        if (pro != null) {
+//            if (pro.image != null) {
+//                String filePathWithWebUrl = getFilePathWithWebUrl(pro.image);
+//                pro.imageWebPath = filePathWithWebUrl;
+//                pro.imageWebPathZip = fileOperate.getImgFileZipPath(filePathWithWebUrl);
+//            }
+//
+//            pro.proFiles.stream().forEach(doc -> {
+//                OthFile file = othFileMapper.selectByPrimaryKey(doc.fileId);
+//                if (file == null) {
+//                    return;
+//                }
+//                FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
+//                doc.webUrl = fileRestVo.fileWebDownloadPath + doc.fileId;
+//                doc.orgName = file.orgName;
+//                doc.extName = file.extName;
+//            });
+//        }
+//        return pro;
+//    }
 
     private String getFilePathWithWebUrl(Long fileId) {
         OthFile file = othFileMapper.selectByPrimaryKey(fileId);
@@ -589,5 +618,27 @@
         return deviceProductionLogDao.selectByDeviceNo(devoiceNo);
     }
 
-
+    private void addBillUrl(PrBillOfMaterial bill) {
+        if (bill == null || bill.fileId == null) {
+            return;
+        }
+        OthFile file = othFileMapper.selectByPrimaryKey(bill.fileId);
+        if (file == null) {
+            return;
+        }
+        FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
+        bill.webUrl = fileRestVo.fileWebDownloadPath + bill.fileId;
+        bill.orgName = file.orgName;
+        bill.extName = file.extName;
+    }
+    public List<TstCommand> getCommand(String proId, int type) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("proId", proId);
+        params.put("type", type);
+        return tstCommandDao.selectSome(params);
+    }
+    public List<PltProduct> selectAll(QueryVo queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+        return productDao.selectAll(params);
+    }
 }

--
Gitblit v1.8.0