From 2377332554103dcbc54fff45777ef1c67cf0fb0e Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期二, 28 五月 2024 08:53:35 +0800
Subject: [PATCH] -

---
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java |  246 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 228 insertions(+), 18 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 9fea30c..2d0e491 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
@@ -4,8 +4,11 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -14,8 +17,11 @@
 import com.jcdm.framework.websocket.WebSocketUsers;
 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
+import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
 import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
 import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper;
+import com.jcdm.main.da.testDeviceInterface.service.IDaTestDeviceInterfaceService;
+import com.jcdm.main.plcserver.util.TimeUtil;
 import com.kangaroohy.milo.model.ReadWriteEntity;
 import com.kangaroohy.milo.service.MiloService;
 import org.aspectj.weaver.loadtime.Aj;
@@ -50,6 +56,12 @@
 
     @Autowired
     private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
+
+    @Autowired
+    private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
+
+    @Autowired
+    private IDaParamCollectionService daParamCollectionService;
 
     Map<String, Session> map = WebSocketUsers.getUsers();
 
@@ -145,6 +157,147 @@
     }
 
     @Override
+    public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "";
+        List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
+        List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
+                .eq(BsFormulaChildInfo::getOperationType, "2")
+        );
+        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());
+            bsFormulaChildInfos.get(0).setResults("OK");
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
+            bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
+            addParameterCollection(bsFormulaChildInfo);
+            if (spareField4 != null && !spareField4.isEmpty()) {
+                // 鎵ц鎿嶄綔
+                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
+                    try {
+                        result = "3";
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+        }else {
+            result = "1";
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public AjaxResult yzUpdateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "1";
+        BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
+        getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
+        getMaterTwo.setOperationType("2");
+        List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
+        List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
+        for (String s : collect) {
+            if(s.equals("")){
+                return AjaxResult.error("鎵弿鏈畬鎴愶紝绂佹鎷х揣鎿嶄綔锛�");
+            }
+        }
+        BsFormulaChildInfo listQuery = new BsFormulaChildInfo();
+        listQuery.setParamCode(bsFormulaChildInfo.getParamCode());
+        String paramCode = bsFormulaChildInfo.getTightenTheArray();
+        if(paramCode.contains("N")){
+            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+            bsFormulaChildInfos.get(0).setResults("NG");
+            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            return AjaxResult.error("鎵弿缁撴灉NG,璇烽噸鏂版壂鎻忥紒");
+        }else {
+            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+            bsFormulaChildInfos.get(0).setResults("OK");
+            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+
+            Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
+            try {
+                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+
+            String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
+            if (spareField4 != null && !spareField4.isEmpty()) {
+                // 鎵ц鎿嶄綔
+                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
+                    try {
+//                        WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT");
+                        result = "2";
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public AjaxResult jrmUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "";
+        List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
+        List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
+                .eq(BsFormulaChildInfo::getOperationType, "2")
+        ).stream().filter(x -> StrUtil.isBlank(x.getCollectData())).collect(Collectors.toList());
+
+
+        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());
+            bsFormulaChildInfos.get(0).setResults("OK");
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
+            bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
+            jrmAddParameterCollection(bsFormulaChildInfo);
+
+            if (spareField4 != null && !spareField4.isEmpty()) {
+                // 鎵ц鎿嶄綔
+                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
+                    try {
+                        result = "3";
+//                        String strA = bsFormulaChildInfo.getLocationCode() + "A";
+//                        String strB = bsFormulaChildInfo.getLocationCode() + "B";
+//                        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();
+                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+locationCode+".RecordDataDone").value(21).build());
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+        }else {
+            result = "1";
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
     public BsFormulaChildInfo releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) {
         return bsFormulaChildInfoMapper.releaseCheck(bsFormulaChildInfo);
     }
@@ -174,6 +327,14 @@
             bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
             bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
             addParameterCollection(bsFormulaChildInfo);
+
+//            Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
+//            try {
+//                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".StepNumber").value(stepNumber).build());
+//            } catch (Exception e) {
+//                throw new RuntimeException(e);
+//            }
+
             if (spareField4 != null && !spareField4.isEmpty()) {
                 // 鎵ц鎿嶄綔
                 if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
@@ -203,8 +364,34 @@
         daParamCollectionMapper.insertDaParamCollection(daParamCollection);
     }
 
+    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);
+//        }
+
+    }
+
     @Override
     public AjaxResult workpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
+        try {
+            daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
+        }catch (Exception e){
+        }
         List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
                 .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
                 .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
@@ -218,6 +405,7 @@
 
     @Override
     public AjaxResult updateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) {
+        Boolean b = true;
         BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
         getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
         getMaterTwo.setOperationType("2");
@@ -239,26 +427,48 @@
             return AjaxResult.error("鎵弿缁撴灉NG,璇烽噸鏂版壂鎻忥紒");
         }else {
             List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
-            bsFormulaChildInfos.get(0).setResults("OK");
-            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
-            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
-            String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
-            if (spareField4 != null && !spareField4.isEmpty()) {
-                // 鎵ц鎿嶄綔
-                if(bsFormulaChildInfos.get(0).getSpareField4().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);
+            if(bsFormulaChildInfos.get(0).getSpareField2()!=null&&bsFormulaChildInfos.get(0).getSpareField3()!=null){
+                String tightenArray = bsFormulaChildInfo.getTightenTheArray().replace("[", "").replace("]", "").replace(" ", "");
+                String[] tightenDataParts = tightenArray.split(",");
+                b = TimeUtil.isNumberInRange(Double.parseDouble(tightenDataParts[0]),Double.parseDouble(bsFormulaChildInfos.get(0).getSpareField2()),Double.parseDouble(bsFormulaChildInfos.get(0).getSpareField3()));
+            }
+            if(b){
+                bsFormulaChildInfos.get(0).setResults("OK");
+                bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
+                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+                Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
+                try {
+                    miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
+                if (spareField4 != null && !spareField4.isEmpty()) {
+                    // 鎵ц鎿嶄綔
+                    if(bsFormulaChildInfos.get(0).getSpareField4().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);
+                        }
                     }
                 }
+            }else {
+                List<BsFormulaChildInfo> bsFormulaChildInfos1 = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+                bsFormulaChildInfos1.get(0).setResults("NG");
+                String originalString = bsFormulaChildInfo.getTightenTheArray();
+                String modifiedString = originalString.replaceFirst("OK", "NG");
+                bsFormulaChildInfos1.get(0).setCollectData(modifiedString);
+                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos1.get(0));
+                return AjaxResult.error("鎵弿缁撴灉NG,璇烽噸鏂版壂鎻忥紒");
             }
 
         }

--
Gitblit v1.9.3