From 77c0b3a6d94eab894dbc7472e530c484dcfc424e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 07 一月 2026 16:59:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jnejc-jgwcs' into jnejc-jgwcs

---
 src/main/java/com/zy/common/model/MatDto.java          |    5 +
 src/main/resources/mapper/WrkDetlMapper.xml            |    6 +
 src/main/java/com/zy/controller/MonitorController.java |   49 +++++++----
 src/main/java/com/zy/entity/WrkDetl.java               |   39 +++++++++
 src/main/java/com/zy/service/impl/MainServiceImpl.java |   24 +++--
 src/main/java/com/zy/core/MainProcess.java             |    2 
 src/main/java/com/zy/common/model/LocTypeDto.java      |    9 +
 src/main/resources/application.yml                     |   48 +++++++----
 8 files changed, 132 insertions(+), 50 deletions(-)

diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index a1224cf..319e4f4 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -31,8 +31,13 @@
     }
 
     public LocTypeDto(StaProtocol staProtocol) {
-        if (staProtocol.isHigh() == staProtocol.isLow() || staProtocol.isChang() == staProtocol.isDuan()) {
-                    News.error("plc楂樹綆/闀跨煭妫�娴嬪紓甯�,high:{},low:{}锛宑hang:{},duan:{}",staProtocol.isHigh(),staProtocol.isLow(),staProtocol.isChang(),staProtocol.isDuan());
+        // todo 楂樹綆搴撲綅鏆傛椂涓嶆娴�
+//        if (staProtocol.isHigh() == staProtocol.isLow() || staProtocol.isChang() == staProtocol.isDuan()) {
+//                    News.error("plc楂樹綆/闀跨煭妫�娴嬪紓甯�,high:{},low:{}锛宑hang:{},duan:{}",staProtocol.isHigh(),staProtocol.isLow(),staProtocol.isChang(),staProtocol.isDuan());
+//                    return;
+//        }
+        if (staProtocol.isChang() == staProtocol.isDuan()) {
+                    News.error("plc闀跨煭妫�娴嬪紓甯�,high:{},low:{}锛宑hang:{},duan:{}",staProtocol.isHigh(),staProtocol.isLow(),staProtocol.isChang(),staProtocol.isDuan());
                     return;
         }
 
diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index 684c601..ed7b457 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -43,6 +43,8 @@
 
     private Double total;
 
+    private String standby1 = "";
+
     public MatDto() {
     }
     public MatDto(String matnr, String maknx, String batch, String specs, String manu, String memo, Double count, Double total) {
@@ -55,7 +57,7 @@
         this.count = count;
         this.total = total;
     }
-    public MatDto(String orderNo,String matnr,String maknx, String batch,String specs,String manuDate,String model,Double anfme) {
+    public MatDto(String orderNo,String matnr,String maknx, String batch,String specs,String manuDate,String model,Double anfme,String standby1) {
         this.orderNo = orderNo;
         this.matnr = matnr;
         this.maknx = maknx;
@@ -64,6 +66,7 @@
         this.manuDate = manuDate;
         this.model = model;
         this.anfme = anfme;
+        this.standby1 = standby1;
     }
 
     public MatDto(String matNo, String maknx, Double count) {
diff --git a/src/main/java/com/zy/controller/MonitorController.java b/src/main/java/com/zy/controller/MonitorController.java
index e566421..b54a038 100644
--- a/src/main/java/com/zy/controller/MonitorController.java
+++ b/src/main/java/com/zy/controller/MonitorController.java
@@ -75,13 +75,16 @@
      * 鑾峰彇鍏朵粬淇℃伅
      */
     @GetMapping("/other")
-    public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer sta) {
+    public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") String ledIdString) {
         Integer ledId = 0;
-        for (LedSlave led : slaveProperties.getLed()) {
-            for (Integer staNo : led.getStaArr()) {
-                if (staNo.equals(sta)) {
-                    ledId = led.getId();
-                    break;
+        String[] ledIds = ledIdString.split(",");
+        for (String id : ledIds) {
+            for (LedSlave led : slaveProperties.getLed()) {
+                for (Integer staNo : led.getStaArr()) {
+                    if (staNo.equals(Integer.parseInt(id))) {
+                        ledId = led.getId();
+                        break;
+                    }
                 }
             }
         }
@@ -261,18 +264,23 @@
      * 鑾峰彇鍏朵粬淇℃伅
      */
     @GetMapping("/led")
-    public R monitorLed(@RequestParam("ledId") Integer ledId) {
+    public R monitorLed(@RequestParam("ledId") String ledIdString) {
+        String[] ledIds = ledIdString.split(",");
         String ledContent = "";
         List<LedCommand> commandList = null;
-        for (LedSlave slave : slaveProperties.getLed()) {
-            if (slave.getStaArr().contains(ledId)) {
-                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
-                if (null != ledThread) {
-                    ledContent = ledThread.getStringBuffer().toString();
-                    commandList = ledThread.getCommandList();
+        for(String ledId: ledIds) {
+
+            for (LedSlave slave : slaveProperties.getLed()) {
+                if (slave.getStaArr().contains(Integer.parseInt(ledId))) {
+                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
+                    if (null != ledThread) {
+                        ledContent = ledThread.getStringBuffer().toString();
+                        commandList = ledThread.getCommandList();
+                    }
                 }
             }
         }
+
         return R.ok().add(commandList);
     }
 
@@ -280,13 +288,16 @@
      * 寮傚父閫氱煡
      */
     @GetMapping("/led/error")
-    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
+    public R monitorLedError(@RequestParam("ledId") String ledIdString) {
         String errorMsg = "";
-        for (LedSlave slave : slaveProperties.getLed()) {
-            if (slave.getStaArr().contains(ledId)) {
-                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
-                if (null != ledThread) {
-                    errorMsg = ledThread.getErrorMsg().toString();
+        String[] ledIds = ledIdString.split(",");
+        for(String ledId: ledIds) {
+            for (LedSlave slave : slaveProperties.getLed()) {
+                if (slave.getStaArr().contains(Integer.parseInt(ledId))) {
+                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
+                    if (null != ledThread) {
+                        errorMsg = ledThread.getErrorMsg().toString();
+                    }
                 }
             }
         }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 8823dba..9f482ba 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -41,7 +41,7 @@
                     }
 
                     // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
-//                    mainService.stnToCrnStnPick(3);
+                    mainService.stnToCrnStnPick(3);
 
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateStoreWrkFile(); // 缁勬墭
diff --git a/src/main/java/com/zy/entity/WrkDetl.java b/src/main/java/com/zy/entity/WrkDetl.java
index 9b6f8db..e406632 100644
--- a/src/main/java/com/zy/entity/WrkDetl.java
+++ b/src/main/java/com/zy/entity/WrkDetl.java
@@ -268,6 +268,45 @@
     @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
+    /**
+     * 澶囩敤1
+     */
+    @ApiModelProperty(value= "澶囩敤1")
+    private String standby1 = "";
+
+    /**
+     * 澶囩敤2
+     */
+    @ApiModelProperty(value= "澶囩敤2")
+    private String standby2 = "";
+
+    /**
+     * 澶囩敤3
+     */
+    @ApiModelProperty(value= "澶囩敤3")
+    private String standby3 = "";
+
+    /**
+     * 澶囩敤1
+     */
+    @ApiModelProperty(value= "澶囩敤1")
+    @TableField("box_type1")
+    private String boxType1 = "1";
+
+    /**
+     * 澶囩敤2
+     */
+    @ApiModelProperty(value= "澶囩敤2")
+    @TableField("box_type2")
+    private String boxType2 = "1";
+
+    /**
+     * 澶囩敤3
+     */
+    @ApiModelProperty(value= "澶囩敤3")
+    @TableField("box_type3")
+    private String boxType3 = "1";
+
     public String getIoTime$(){
         if (Cools.isEmpty(this.ioTime)){
             return "";
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 46d313c..54b1d2e 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -173,7 +173,12 @@
                         && staProtocol.isPakMk() && staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995) { // 9990-9992绌烘墭锛�9993-9995 婊℃墭锛�9999鍥為��
                     if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                         News.info("{}鏉$爜鎵弿閿欒锛歿}",barcodeThread.getSlave().getId(),barcode);
-                        continue;
+                        staProtocol.setWorkNo(wrkNo);
+                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "鏉$爜鎵弿閿欒"));
+                        return;
                     }
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
@@ -268,7 +273,8 @@
                     staProtocol = staProtocol.clone();
                 }
 
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo() == 9999) {
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()
+                        && staProtocol.getWorkNo() >= 9993 && staProtocol.getWorkNo() <= 9995) {
                     News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
                     WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                     if (wrkMast == null) {
@@ -283,16 +289,16 @@
                     // 鑾峰彇鐩爣绔�
                     Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                             .eq("type_no", wrkMast.getIoType() - 50)
-                            .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                            .eq("stn_no", wrkMast.getSourceStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
                             .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
                         News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                         staProtocol.setWorkNo(wrkNo);
-                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
+                        staProtocol.setStaNo(pickSta.getBackSta().shortValue());
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        log.error("杈撻�佺嚎涓嬪彂4锛�"+wrkNo+","+(pickSta.getStaNo().shortValue()-(short)1));
+                        log.error("杈撻�佺嚎涓嬪彂4锛�"+wrkNo+","+pickSta.getBackSta());
                         //LED
                         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                         // led 寮傚父鏄剧ず
@@ -320,7 +326,7 @@
                         wrkMast.setIoTime(now);
                         wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
                         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+                        wrkMast.setSourceStaNo(staProtocol.getSiteId()); // 婧愮珯
                         wrkMast.setStaNo(staNo); // 鐩爣绔�
                         wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
                         wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
@@ -1366,9 +1372,9 @@
                 if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                     List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                     wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getMaktx(),
-                            wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getAnfme())));
+                            wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getAnfme(),wrkDetl.getStandby1())));
                 } else {
-                    ledCommand.getMatDtos().add(new MatDto("","","","","","","",1.0));
+                    ledCommand.getMatDtos().add(new MatDto("","","","","","","",1.0,""));
                 }
                 commands.add(ledCommand);
             }
@@ -1506,7 +1512,7 @@
                 wrkMast.setCrnNo(crn.getId());
                 wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
                 wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-                wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+                wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘
                 wrkMast.setPicking("N"); // 鎷f枡
                 wrkMast.setExitMk("N"); // 閫�鍑�
                 wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5dcb7a0..b82ada6 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -69,6 +69,13 @@
       row: 1
       bay: 1
       lev: 1
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�3
+    crnInStn[2]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 205
+      row: 1
+      bay: 9
+      lev: 1
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�1
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
@@ -132,18 +139,23 @@
       barcode: ${wcs-slave.barcode[1].id}
       backSta: 204
       led: ${wcs-slave.led[1].id}
-#    # 鎷f枡鍏ュ簱鍙�1
-#    pickSta[0]:
-#      staNo: 104
-#      barcode: ${wcs-slave.barcode[0].id}
-#      backSta: 103
-#      led: ${wcs-slave.led[1].id}
-#    # 鎷f枡鍏ュ簱鍙�2
-#    pickSta[1]:
-#      staNo: 106
-#      barcode: ${wcs-slave.barcode[1].id}
-#      backSta: 105
-#      led: ${wcs-slave.led[2].id}
+    # 鎷f枡鍏ュ簱鍙�1
+    pickSta[0]:
+      staNo: 201
+      barcode: ${wcs-slave.barcode[0].id}
+      backSta: 202
+      led: ${wcs-slave.led[0].id}
+    # 鎷f枡鍏ュ簱鍙�2
+    pickSta[1]:
+      staNo: 205
+      barcode: ${wcs-slave.barcode[2].id}
+      led: ${wcs-slave.led[2].id}
+    # 鎷f枡鍏ュ簱鍙�3
+    pickSta[2]:
+      staNo: 203
+      barcode: ${wcs-slave.barcode[1].id}
+      led: ${wcs-slave.led[1].id}
+      backSta: 204
     # 鍑哄簱鍙�1
     outSta[0]:
       staNo: 204
@@ -155,7 +167,7 @@
     # 鍑哄簱鍙�3
     outSta[2]:
       staNo: 202
-      led: ${wcs-slave.led[1].id}
+      led: ${wcs-slave.led[0].id}
 
   # 鏉$爜鎵弿浠�1
   barcode[0]:
@@ -176,23 +188,23 @@
   # LED1
   led[0]:
     id: 1
-    ip: 192.168.5.104
+    ip: 172.26.11.83
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 202
+    staArr: 201,202
     crnId: 1
   # LED2
   led[1]:
     id: 2
-    ip: 192.168.5.105
+    ip: 172.26.11.84
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 204
+    staArr: 203,204
     crnId: 1
   # LED3
   led[2]:
     id: 3
-    ip: 192.168.5.106
+    ip: 172.26.11.85
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
     staArr: 205
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index 6e87030..956fd40 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -24,6 +24,12 @@
         <result column="modi_time" property="modiTime" />
         <result column="appe_user" property="appeUser" />
         <result column="appe_time" property="appeTime" />
+        <result column="standby1" property="standby1" />
+        <result column="standby2" property="standby2" />
+        <result column="standby3" property="standby3" />
+        <result column="box_type1" property="boxType1" />
+        <result column="box_type2" property="boxType2" />
+        <result column="box_type3" property="boxType3" />
     </resultMap>
 
     <select id="findByWorkNo" resultMap="BaseResultMap">

--
Gitblit v1.9.1