From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001
From: 吴健 <14790700720@163.com>
Date: 星期二, 15 四月 2025 08:54:08 +0800
Subject: [PATCH] add-415

---
 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchCollection/controller/DaTileMatchCollectionController.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 106 insertions(+), 0 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchCollection/controller/DaTileMatchCollectionController.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchCollection/controller/DaTileMatchCollectionController.java
index 307ce80..2eafc9f 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchCollection/controller/DaTileMatchCollectionController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchCollection/controller/DaTileMatchCollectionController.java
@@ -1,7 +1,23 @@
 package com.jcdm.main.da.tileMatchCollection.controller;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.util.StrUtil;
+import com.jcdm.common.core.domain.R;
+import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
+import com.jcdm.main.da.passingStationCollection.domain.ProductNewPassStation;
+import com.jcdm.main.da.passingStationCollection.mapper.ProductNewPassStationMapper;
+import com.jcdm.main.da.passingStationCollection.service.ProductNewPassStationService;
+import com.jcdm.main.da.tileMatchCollection.domain.ReceiveDataVO;
+import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules;
+import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService;
+import com.kangaroohy.milo.model.ReadWriteEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -21,6 +37,8 @@
 import com.jcdm.common.utils.poi.ExcelUtil;
 import com.jcdm.common.core.page.TableDataInfo;
 
+import static com.jcdm.main.plcserver.sub.OPCUaSubscription.miloService;
+
 /**
  * 鏉$爜閲囬泦Controller
  * 
@@ -33,6 +51,18 @@
 {
     @Autowired
     private IDaTileMatchCollectionService daTileMatchCollectionService;
+
+    @Autowired
+    private IDaTileMatchRulesService daTileMatchRulesService;
+
+    @Autowired
+    private IDaParamCollectionService daParamCollectionService;
+
+    @Resource
+    private ProductNewPassStationMapper productNewPassStationMapper;
+
+    @Resource
+    private ProductNewPassStationService productNewPassStationService;
 
     /**
      * 鏌ヨ鏉$爜閲囬泦鍒楄〃
@@ -101,4 +131,80 @@
     {
         return toAjax(daTileMatchCollectionService.deleteDaTileMatchCollectionByIds(ids));
     }
+
+    @GetMapping("/getBalanceData")
+    public R getBalanceData(String boxCode, String balanceCode, String productType) throws Exception {
+        List<DaTileMatchRules> resultList = new ArrayList<>();
+        if (StrUtil.isBlank(boxCode)){
+            return R.fail("绠变綋鐮佷笉鑳戒负绌�");
+        }
+        if (StrUtil.isBlank(balanceCode)){
+            return R.fail("骞宠 杞寸爜涓嶈兘涓虹┖");
+        }
+        if (StrUtil.isBlank(productType)){
+            return R.fail("浜у搧绫诲瀷涓嶈兘涓虹┖");
+        }
+        String balanceSplit = "";
+        String boxCodeSplit = "";
+        if ("380".equals(productType)){
+            //        ArrayList<String> xtList = ListUtil.toList(boxCode.split(";"));
+            ArrayList<String> xtList = ListUtil.toList(boxCode.split(","));
+            ArrayList<String> czList = ListUtil.toList(balanceCode.split(";"));
+            if (CollUtil.isNotEmpty(xtList) && xtList.size()>1 &&
+                    CollUtil.isNotEmpty(czList) && czList.size()>3){
+                boxCodeSplit = xtList.get(1);
+                balanceSplit = czList.get(2);
+            }
+            DaTileMatchRules daTileMatchRules = new DaTileMatchRules();
+            daTileMatchRules.setScanObject1("绠变綋");
+            daTileMatchRules.setScanObject2("骞宠 杞�");
+            daTileMatchRules.setProductSeries(productType);
+            List<DaTileMatchRules> allMatchRuleList = daTileMatchRulesService.selectDaTileMatchRulesList(daTileMatchRules);
+            if (CollUtil.isNotEmpty(allMatchRuleList)){
+                char[] boxCodeCharArray = boxCodeSplit.toCharArray();
+                char[] balanceCodeCharArray = balanceSplit.toCharArray();
+                if (boxCodeCharArray.length>6 && balanceCodeCharArray.length>2){
+                    if ("380".equals(productType)){
+                        for (int i = 1; i < 3; i++) {
+                            int finalI = i;
+                            List<DaTileMatchRules> collect = allMatchRuleList.stream().filter(x -> x.getAxisParameterNoPosition().equals(finalI + 5) &&
+                                            x.getNeckParameterPosition().equals(finalI + 1) &&
+                                            x.getAxisValue().equals(String.valueOf(boxCodeCharArray[finalI + 4])) &&
+                                            x.getNeckValue().equals(String.valueOf(balanceCodeCharArray[finalI])))
+                                    .collect(Collectors.toList());
+                            if (CollUtil.isNotEmpty(collect)){
+                                DaTileMatchRules rules = collect.get(0);
+                                resultList.add(rules);
+                            }
+                        }
+                    }
+                }
+            }
+            if (CollUtil.isEmpty(resultList)){
+                return R.fail("鏈尮閰嶅埌骞宠 杞寸摝");
+            } else {
+                ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP040.CodeComplete", 1);
+                miloService.writeToOpcByte(entity6);
+                ProductNewPassStation passStation = new ProductNewPassStation();
+                passStation.setProductType(productType);
+                passStation.setBoxCode(boxCode);
+                List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(passStation);
+                if (CollUtil.isNotEmpty(productPassStationList)){
+                    ProductNewPassStation newPassStation = productPassStationList.get(0);
+                    productNewPassStationMapper.updatePassStationBalanceCode(newPassStation.getSfcCode(),balanceCode);
+                }
+            }
+        } else if ("196".equals(productType)) {
+//            ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP040.CodeComplete", 1);
+//            miloService.writeToOpcByte(entity6);
+        }
+
+        return R.ok(resultList);
+    }
+
+    @GetMapping("/getDetailData")
+    public R getDetailData() throws Exception {
+        ReceiveDataVO detailData = productNewPassStationService.getDetailData();
+        return R.ok(detailData);
+    }
 }

--
Gitblit v1.9.3