From 2c799e6d26c726e3943f24e61c84f7d562087cfc Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 26 六月 2025 10:20:12 +0800
Subject: [PATCH] #增加堆垛机12物料衔接类型

---
 license.lic                                                    |    0 
 src/main/java/com/zy/asrs/entity/TransplantWork.java           |   11 +++++
 src/main/java/com/zy/asrs/service/WrkMastService.java          |    2 +
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java    |    5 ++
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |    5 ++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java            |    2 +
 src/main/resources/mapper/WrkMastMapper.xml                    |    6 +++
 src/main/java/com/zy/asrs/controller/MobileController.java     |    8 ++++
 src/main/java/com/zy/common/web/WcsController.java             |   55 +++++++++++++++++++++++++--
 9 files changed, 89 insertions(+), 5 deletions(-)

diff --git a/license.lic b/license.lic
new file mode 100644
index 0000000..4966cf8
--- /dev/null
+++ b/license.lic
Binary files differ
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 42d7241..6115bfe 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -199,6 +199,14 @@
         return R.ok("缁勬墭鎴愬姛");
     }
 
+    @RequestMapping("/combAuto/auth")
+    @ManagerAuth(memo = "缁勬墭")
+    public R combAuto(@RequestBody CombParam combParam){
+//        mobileService.comb(combParam, getUserId());
+        mobileService.comb(combParam, getUserId());
+        return R.ok("缁勬墭鎴愬姛");
+    }
+
     @RequestMapping("/kitting/query/auth")
     @ManagerAuth(memo = "榻愬鍏ュ簱鏌ヨ")
     public R kittingQuery(@RequestBody CombParam combParam){
diff --git a/src/main/java/com/zy/asrs/entity/TransplantWork.java b/src/main/java/com/zy/asrs/entity/TransplantWork.java
new file mode 100644
index 0000000..ac53dfe
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/TransplantWork.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+@Data
+public class TransplantWork {
+    private Integer workNo;
+    private String barcode;
+    private Integer sourceStaNo;
+    private Integer staNo;
+}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 8d0111e..f593fa3 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -21,6 +21,8 @@
     @Select("select count(1) from asr_wrk_mast where 1=1 and io_type = #{ioType} and sta_no = #{staNo}")
     int selectWrkMastBareBoardStaNo(Integer ioType,Integer staNo);
 
+    WrkMast selectWrkMast(Integer workNo,String barcode);
+
     List<WrkMast> selectWrkMastWrkDetl(@Param("ioType") Integer ioType, @Param("matnr") String matnr , @Param("batch") String batch , @Param("brand") String brand
             , @Param("standby1")String standby1, @Param("standby2")String standby2, @Param("standby3")String standby3
             , @Param("boxType1")String boxType1, @Param("boxType2")String boxType2, @Param("boxType3")String boxType3, @Param("crnNo") Integer crnNo);
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index 0329de3..258d5dc 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -27,4 +27,6 @@
 
     List<WrkMast> selectWrkMastWrkDetl(Integer ioType, FindLocNoAttributeVo findLocNoAttributeVo, Integer crnNo);
 
+    WrkMast selectWrkMast(Integer workNo,String barcode);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index d8ad458..9911553 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -58,4 +58,9 @@
                 ,findLocNoAttributeVo.getBoxType1(),findLocNoAttributeVo.getBoxType2(),findLocNoAttributeVo.getBoxType3()
                 ,crnNo);
     }
+
+    @Override
+    public WrkMast selectWrkMast(Integer workNo, String barcode) {
+        return this.baseMapper.selectWrkMast(workNo, barcode);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 2ae05fb..c99b8ff 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -424,7 +424,7 @@
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
         try {
-            if (null == locMast) {
+            if (null == locMast && wrkMast.getIoType() !=12) {
 //                exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -532,6 +532,9 @@
                         }
                     }
                     break;
+                //3鍙峰爢鍨涙満琛旀帴
+                case 12:
+                    break;
                 default:
                     break;
             }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index fd48d94..2869b5e 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -155,6 +155,53 @@
         return R.ok(!Cools.isEmpty(wrkMast)? R.ok("鑷姩绌烘墭鍑哄簱鎴愬姛,宸ヤ綔鍙�:" + wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触"));
     }
 
+
+    @PostMapping("/auto/Transplanting/v1")
+    @ResponseBody
+    public R autoTransplanting(@RequestBody TransplantWork transplantWork){
+        // 婧愮珯鐐圭姸鎬佹娴�
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(transplantWork.getStaNo(), true);
+        if(wrkMastService.selectWrkMast(transplantWork.getWorkNo(),transplantWork.getBarcode()) == null){
+            return  R.error("鏃犺鐩樼偣绉绘牻浠诲姟");
+        }
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(transplantWork.getWorkNo());
+        Date now = new Date();
+        int workNo = commonService.getWorkNo(2);
+
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(11L);
+        wrkMast.setIoPri(14D);
+        wrkMast.setIoType(12);
+        wrkMast.setCrnNo(3);
+        wrkMast.setBarcode(transplantWork.getBarcode());
+        wrkMast.setSourceStaNo(transplantWork.getSourceStaNo());
+        wrkMast.setStaNo(transplantWork.getStaNo());
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        wrkMast.setMemo("鑷姩3鍙峰爢鍨涙満绉绘牻");
+        for (WrkDetl item : wrkDetls) {
+            WrkDetl newDetl = new WrkDetl();
+            newDetl.sync(item); // 鍋囪 sync 鏄繁鎷疯礉灞炴��
+            newDetl.setWrkNo(wrkMast.getWrkNo());
+            newDetl.setIoTime(wrkMast.getIoTime());
+            newDetl.setAppeTime(now);
+            newDetl.setModiTime(now);
+            if (!wrkDetlService.insert(newDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        }
+        return wrkMastService.insert(wrkMast) ? R.ok("鑷姩3鍙峰爢鍨涙満绉绘牻鎴愬姛,宸ヤ綔鍙�:"+wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩3鍙峰爢鍨涙満绉绘牻澶辫触");
+    }
+
     /**
      * 鍏ㄦ澘鍏ュ簱
      */
@@ -163,10 +210,10 @@
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
-//        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-//        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
-//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
-        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
+        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
+        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
+//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
         StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 83c4cce..e9300ad 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -75,6 +75,12 @@
         order by io_time,wrk_no asc
     </select>
 
+    <select id="selectWrkMast" resultMap="BaseResultMap">
+        select top 1 *
+        from asr_wrk_mast
+        where wrk_no = #{workNo} and barcode = #{barcode}
+    </select>
+
     <select id="selectWrkMastWrkDetl" resultMap="BaseResultMap">
         select m.* from asr_wrk_mast m,asr_wrk_detl d
         where 1=1

--
Gitblit v1.9.1