From c2e92c3bd4fc134b27ba6a6271f63b032b2b9d99 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期三, 28 八月 2024 15:46:32 +0800
Subject: [PATCH] -打印bug修改

---
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java |  188 +++++++++++++++++++---------------------------
 1 files changed, 77 insertions(+), 111 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
index 3221f31..b74e37d 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
@@ -8,6 +8,7 @@
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -17,6 +18,8 @@
 import com.jcdm.common.utils.DateUtils;
 import com.jcdm.common.utils.StringUtils;
 import com.jcdm.framework.websocket.WebSocketUsers;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
@@ -80,6 +83,9 @@
     private IDaParamCollectionTempService daParamCollectionTempService;
 
     Map<String, Session> map = WebSocketUsers.getUsers();
+
+    @Autowired
+    private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService;
 
     /**
      * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�
@@ -190,6 +196,12 @@
                 }
             }
         }
+//        for (BsFormulaChildInfo formulaChildInfo : infos) {
+//            if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())) {
+//                bsFormulaChildInfos.add(formulaChildInfo);
+//                break;
+//            }
+//        }
         if(bsFormulaChildInfos.size()>0){
             String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
             bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
@@ -338,6 +350,8 @@
 //                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
 //                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strB+".RecordDataDone").value(21).build());
                         String locationCode = bsFormulaChildInfo.getLocationCode();
+                        WebSocketUsers.sendMessageToUserByText(map.get(locationCode), "OUT");
+
 //                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+locationCode+".RecordDataDone").value(21).build());
                     } catch (Exception e) {
                         throw new RuntimeException(e);
@@ -353,54 +367,12 @@
     @Override
     public AjaxResult jrmWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
         this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
-//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
-//                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
-//                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
-//        for (BsFormulaChildInfo info : list) {
-//            info.setCollectData("");
-//            info.setResults("");
-//            bsFormulaChildInfoService.saveOrUpdate(info);
-//        }
-        String[] split = bsFormulaChildInfo.getProductBarcode().split(",");
-        try {
-            for (int i = 0; i < split.length; i++) {
-                daParamCollectionService.pushGeelycvMesFeedback(split[i], bsFormulaChildInfo.getLocationCode());
-
-                String barCode = split[i];
-                String locationCode = bsFormulaChildInfo.getLocationCode();
-
-                if(StringUtils.isNotBlank(locationCode)&&StringUtils.isNotBlank(barCode)){
-                    DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
-                    daPassingStationCollection.setOutRsSign("1");
-                    daPassingStationCollection.setOutboundTime(new Date());
-                    daPassingStationCollection.setSfcCode(barCode);
-                    daPassingStationCollection.setLocationCode(locationCode);
-                    int updateDaPassingStation = daPassingStationCollectionService.updateDaPassingStationCollectionBySfcCodeAndLocationCode(daPassingStationCollection);
-                    logger.info("鍔犵儹鑶滀汉宸ュ伐浣嶆洿鏂拌繃绔欒褰晆pdateDaPassingStationCollectionBySfcCodeAndLocationCode:鏇存柊浜唟}鏉℃暟鎹�-鏇存柊鏉′欢pack鐮亄}-宸ヤ綅{}",updateDaPassingStation,barCode,locationCode);
-                }
-
-//                DaPassingStationCollection passingStationCollectionOne = daPassingStationCollectionService.getOne(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getSfcCode, barCode).eq(DaPassingStationCollection::getLocationCode, locationCode));
-//                if (passingStationCollectionOne != null) {
-//                    passingStationCollectionOne.setOutRsSign("1");
-//                    passingStationCollectionOne.setOutboundTime(new Date());
-//                    daPassingStationCollectionService.saveOrUpdate(passingStationCollectionOne);
-//                }
-            }
-        }catch (Exception e){
-        }
+        daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
         return AjaxResult.success();
     }
 
     @Override
     public AjaxResult clearWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
-//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
-//                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
-//                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
-//        for (BsFormulaChildInfo info : list) {
-//            info.setCollectData("");
-//            info.setResults("");
-//            bsFormulaChildInfoService.saveOrUpdate(info);
-//        }
         this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
         return AjaxResult.success();
     }
@@ -426,7 +398,9 @@
         LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
         updateWrapper.set(BsFormulaChildInfo::getCollectData, "");
         updateWrapper.set(BsFormulaChildInfo::getResults,"");
+        updateWrapper.set(BsFormulaChildInfo::getNgTimes,0);
         updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
+        updateWrapper.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode());
         BsFormulaChildInfo info = new BsFormulaChildInfo();
         boolean update = this.update(info,updateWrapper);
         return AjaxResult.success(update);
@@ -518,71 +492,34 @@
 
     public void jrmAddParameterCollection(BsFormulaChildInfo bsFormulaChildInfo){
         String scanBarCode = bsFormulaChildInfo.getSfcBarcode();
-        String[] modeleSplit = scanBarCode.split(",");
-//        for (String modele : modeleSplit) {
-            DaParamCollection daParamCollection = new DaParamCollection();
-            daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
-            daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
-            daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
-            daParamCollection.setParamValue(bsFormulaChildInfo.getParamValue());
-            daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
-            daParamCollection.setCollectionTime(new Date());
-            if(bsFormulaChildInfo.getParamCode().contains("B")){
-                daParamCollection.setSfcCode(modeleSplit[1]);
-            }else {
-                daParamCollection.setSfcCode(modeleSplit[0]);
-            }
-//            daParamCollection.setSfcCode(modele);
-            daParamCollectionMapper.insertDaParamCollection(daParamCollection);
-//        }
+        DaParamCollection daParamCollection = new DaParamCollection();
+        daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
+        daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+        daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
+        daParamCollection.setParamValue(bsFormulaChildInfo.getParamValue());
+        daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
+        daParamCollection.setCollectionTime(new Date());
+        daParamCollection.setSfcCode(scanBarCode);
+        daParamCollectionMapper.insertDaParamCollection(daParamCollection);
 
-            DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
-            daParamCollectionTemp.setParamCode(bsFormulaChildInfo.getParamCode());
-            daParamCollectionTemp.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
-            daParamCollectionTemp.setLocationCode(bsFormulaChildInfo.getLocationCode());
-            daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
-            daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
-            daParamCollectionTemp.setCollectionTime(new Date());
-            if(bsFormulaChildInfo.getParamCode().contains("B")){
-                daParamCollectionTemp.setSfcCode(modeleSplit[1]);
-            }else {
-                daParamCollectionTemp.setSfcCode(modeleSplit[0]);
-            }
-            daParamCollectionTempService.save(daParamCollectionTemp);
+        DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
+        daParamCollectionTemp.setParamCode(bsFormulaChildInfo.getParamCode());
+        daParamCollectionTemp.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+        daParamCollectionTemp.setLocationCode(bsFormulaChildInfo.getLocationCode());
+        daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
+        daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
+        daParamCollectionTemp.setCollectionTime(new Date());
+        daParamCollectionTemp.setSfcCode(scanBarCode);
+
+        boolean save = daParamCollectionTempService.save(daParamCollectionTemp);
+        System.out.println(save);
     }
 
     @Override
     public AjaxResult workpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
         this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
-//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
-//                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
-//                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
-//        for (BsFormulaChildInfo info : list) {
-//            info.setCollectData("");
-//            info.setResults("");
-//            bsFormulaChildInfoService.saveOrUpdate(info);
-//        }
         try {
             daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
-//            String barCode = bsFormulaChildInfo.getProductBarcode();
-//            String locationCode = bsFormulaChildInfo.getLocationCode();
-//
-//            if(StringUtils.isNotBlank(locationCode)&&StringUtils.isNotBlank(barCode)){
-//                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
-//                daPassingStationCollection.setOutRsSign("1");
-//                daPassingStationCollection.setOutboundTime(new Date());
-//                daPassingStationCollection.setSfcCode(barCode);
-//                daPassingStationCollection.setLocationCode(locationCode);
-//                int updateDaPassingStation = daPassingStationCollectionService.updateDaPassingStationCollectionBySfcCodeAndLocationCode(daPassingStationCollection);
-//                logger.info("鏅�氫汉宸ュ伐浣嶆洿鏂拌繃绔欒褰晆pdateDaPassingStationCollectionBySfcCodeAndLocationCode:鏇存柊浜唟}鏉℃暟鎹�-鏇存柊鏉′欢pack鐮亄}-宸ヤ綅{}",updateDaPassingStation,barCode,locationCode);
-//            }
-
-//            DaPassingStationCollection passingStationCollectionOne = daPassingStationCollectionService.getOne(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getSfcCode, barCode).eq(DaPassingStationCollection::getLocationCode, locationCode));
-//            if (passingStationCollectionOne != null) {
-//                passingStationCollectionOne.setOutRsSign("1");
-//                passingStationCollectionOne.setOutboundTime(new Date());
-//                daPassingStationCollectionService.saveOrUpdate(passingStationCollectionOne);
-//            }
         }catch (Exception e){
         }
         return AjaxResult.success();
@@ -614,13 +551,18 @@
 
         String paramCode = bsFormulaChildInfo.getTightenTheArray();
         if(paramCode.contains("NG")){
-       /*     List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
-            bsFormulaChildInfos.get(0).setResults("NG");
-            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
-*/
             bsFormulaChildInfo.setResults("NG");
             bsFormulaChildInfo.setCollectData(bsFormulaChildInfo.getTightenTheArray());
+
+            Integer ngTimes = bsFormulaChildInfo.getNgTimes();
+            bsFormulaChildInfo.setNgTimes(ngTimes+1);
             bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+
+            if(bsFormulaChildInfo.getNgTimes() > 3){
+                this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode(), bsFormulaChildInfo.getProductBarcode());
+                WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "NG");
+                return AjaxResult.error("瓒呰繃涓夋鎷х揣 pack NG涓嬬嚎锛�");
+            }
             return AjaxResult.error("鎷х揣缁撴灉NG,璇烽噸鏂版嫥绱э紒");
         }else {
             //List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
@@ -646,13 +588,6 @@
                     // 鎵ц鎿嶄綔
                     if(spareField4.equals("1")){
                         try {
-    //                        //鏇存柊杩囩珯璁板綍琛ㄥ嚭绔欐椂闂�
-    //                        DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
-    //                        daPassingStationCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
-    //                        List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
-    //                        daPassingStationCollections.get(0).setOutboundTime(new Date());
-    //                        daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
-//                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".RecordDataDone").value(21).build());
                             WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT");
                         } catch (Exception e) {
                             throw new RuntimeException(e);
@@ -665,7 +600,17 @@
                 String originalString = bsFormulaChildInfo.getTightenTheArray();
                 String modifiedString = originalString.replaceFirst("OK", "NG");
                 bsFormulaChildInfo.setCollectData(modifiedString);
+//                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+
+                Integer ngTimes = bsFormulaChildInfo.getNgTimes();
+                bsFormulaChildInfo.setNgTimes(ngTimes+1);
                 bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+
+                if(bsFormulaChildInfo.getNgTimes() > 3){
+                    this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode(), bsFormulaChildInfo.getProductBarcode());
+                    WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "NG");
+                    return AjaxResult.error("瓒呰繃涓夋鎷х揣 pack NG涓嬬嚎锛�");
+                }
                 return AjaxResult.error("鎷х揣缁撴灉NG,璇烽噸鏂版嫥绱э紒");
             }
 
@@ -675,6 +620,27 @@
         return AjaxResult.success("鎷х揣鎴愬姛锛�");
     }
 
+    public void recordNgTighteningData(String locationCode,String productCode,String packId){
+        List<BsFormulaChildInfo> ngFormulaList = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, locationCode)
+                .eq(BsFormulaChildInfo::getProductCode, productCode)
+        );
+        List<BsFormulaChildInfo> filteredList = ngFormulaList.stream()
+                .filter(formula -> formula.getResults() != null && !formula.getResults().isEmpty())
+                .collect(Collectors.toList());
+        for (BsFormulaChildInfo childInfo : filteredList) {
+            BsFormulaChildInfoTemp childInfoTemp = new BsFormulaChildInfoTemp();
+            childInfoTemp.setCollectData(childInfo.getCollectData());
+            childInfoTemp.setResults(childInfo.getResults());
+            childInfoTemp.setSfcCode(packId);
+            childInfoTemp.setProcessesCode(childInfo.getProcessesCode());
+            childInfoTemp.setProductCode(childInfo.getProductCode());
+            childInfoTemp.setStepSort(childInfo.getStepSort());
+            childInfoTemp.setChildId(childInfo.getId());
+            bsFormulaChildInfoTempService.save(childInfoTemp);
+        }
+    }
+
 
 
 

--
Gitblit v1.9.3