From c039bdc062899af5d3c7782bc0e3f38d8b39fc87 Mon Sep 17 00:00:00 2001
From: qlsxk <qlsxk@qq.com>
Date: 星期二, 14 十月 2025 08:37:54 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/WrkDetlMapper.xml                    |    8 ++++
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java            |    2 +
 src/main/webapp/views/report/locDetl.html                      |    2 
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |    5 ++
 src/main/resources/mapper/WrkMastMapper.xml                    |    2 
 src/main/java/com/zy/common/web/WcsController.java             |   95 +++++++++++++++++++++++++++++++++++++++++++++++
 src/main/resources/application.yml                             |    4 +-
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    2 +
 8 files changed, 116 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 24cac60..307d06b 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -25,4 +25,6 @@
     List<WrkDetl> selectPakoutQuery(@Param("staNo")Integer staNo, @Param("matnr")String matnr);
 
     List<WrkDetl> findByWorkNo(Integer workNo);
+
+    boolean updateWorkNo(@Param("oldWrkNo") Integer oldWrkNo, @Param("newWrkNo") Integer newWrkNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 18f86c6..4be4d8c 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -19,6 +19,8 @@
 
     boolean updateInspect(Integer wrkNo, String matnr, String batch);
 
+    boolean updateWorkNo(Integer oldWrkNo, Integer newWrkNo);
+
     List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr);
 
     List<WrkDetl> findByWorkNo(Integer wrkNo);
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 5c56e86..ba252a4 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -85,4 +85,9 @@
     public List<WrkDetl> findByWorkNo(Integer workNo) {
         return this.baseMapper.findByWorkNo(workNo);
     }
+
+    @Override
+    public boolean updateWorkNo(Integer oldWrkNo, Integer newWrkNo) {
+        return this.baseMapper.updateWorkNo(oldWrkNo, newWrkNo);
+    }
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 8bcb656..e5cd336 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -126,6 +126,20 @@
         return R.ok().add(dto);
     }
 
+    @PostMapping("/pakin/loc/returnWarehouse")
+    @ResponseBody
+    public synchronized R returnWarehouse(@RequestBody(required = false) SearchLocParam param) {
+        log.info("鏀跺埌WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h姹�====>>鍏ュ弬:{}", param);
+        if (Cools.isEmpty(param.getSourceStaNo())) {
+            return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+        }
+        LocTypeDto locTypeDto = new LocTypeDto();
+        locTypeDto.setLocType1(param.getLocType1());
+
+        StartupDto dto = startupPickIn(param.getSourceStaNo(), param.getBarcode(), locTypeDto);;
+        log.info("WCS鎷i�夌洏鐐瑰叆搴撴帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+        return R.ok().add(dto);
+    }
 
     /**
      * 鍏ㄦ澘鍏ュ簱
@@ -210,6 +224,87 @@
         return dto;
     }
 
+    /**
+     * 鎷i�夊叆搴�
+     */
+    @Transactional
+    public StartupDto startupPickIn(Integer devpNo, String barcode, LocTypeDto locTypeDto) {
+        // 婧愮珯鐐圭姸鎬佹娴�
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+
+        WrkMast wrkMastOut = wrkMastService.selectByBarcode(barcode);
+        if (wrkMastOut == null) {
+            throw new CoolException("鎷i�夌洏鐐逛换鍔′笉瀛樺湪");
+        }
+
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMastOut.getWrkNo());
+        if (wrkDetls.isEmpty()) {
+            throw new CoolException("鎷i�夌洏鐐逛换鍔℃暟鎹笉瀛樺湪");
+        }
+
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+        findLocNoAttributeVo.setMatnr(wrkDetls.get(0).getMatnr());
+
+        StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto, barcode);
+        if (dto == null) {
+            throw new CoolException("鎵句笉鍒扮┖搴撲綅");
+        }
+
+        Date now = new Date();
+
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        int workNo = dto.getWorkNo();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(wrkMastOut.getIoType() - 50); // 鍏ュ嚭搴撶姸鎬侊細53.鎷f枡鍐嶅叆搴�
+        wrkMast.setIoPri(30D); // 浼樺厛绾�
+        wrkMast.setCrnNo(dto.getCrnNo());
+        wrkMast.setSourceStaNo(dto.getSourceStaNo());
+        wrkMast.setStaNo(dto.getStaNo());
+        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        wrkDetlService.updateWorkNo(wrkMastOut.getWrkNo(), workNo);
+
+        // 鍒犻櫎宸ヤ綔涓绘。
+        if (!wrkMastService.deleteById(wrkMastOut)) {
+            throw new CoolException("鍒犻櫎宸ヤ綔涓绘。澶辫触锛寃orkNo=" + wrkMastOut.getWrkNo());
+        }
+
+        // 鏇存柊婧愮珯鐐逛俊鎭�
+        sourceStaNo.setWrkNo(wrkMast.getWrkNo());
+        sourceStaNo.setModiTime(now);
+        if (!basDevpService.updateById(sourceStaNo)) {
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
+        }
+        // 鏇存柊鐩爣搴撲綅鐘舵��
+        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocSts().equals("O")) {
+            locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)) {
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+        }
+        return dto;
+    }
+
     @Transactional
     public StartupDto emptyPlateIn(Integer devpNo, String barcode) {
         // 妫�绱㈠簱浣�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fd14592..ad2bee7 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,7 +12,7 @@
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
     url: jdbc:sqlserver://127.0.0.1:1433;databasename=qlasrs-sxk
     username: sa
-    password: sa@123
+    password: spcyy@2025
   mvc:
     static-path-pattern: /**
   redis:
@@ -66,7 +66,7 @@
   ip: 192.168.1.198
   url: wms
   port: 8081
-  id: 1001
+  id: 1002
 
 #erp瀵规帴
 erp:
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index 3195c97..c448ed1 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -81,6 +81,14 @@
         <include refid="batchSeq"></include>
     </update>
 
+    <update id="updateWorkNo">
+        update asr_wrk_detl
+        set wrk_no = #{newWrkNo}
+        , modi_time = getdate()
+        where 1=1
+        and wrk_no = #{oldWrkNo}
+    </update>
+
     <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
         select * from asr_wrk_detl where order_no = #{orderNo}
         union
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index f00483e..44fd552 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -71,7 +71,7 @@
         where wrk_sts=5
         or wrk_sts=20
         or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
-        or (wrk_sts=15 and dateadd(mi,15,modi_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
+        or (wrk_sts=15 and dateadd(mi,8,modi_time) &lt;= getdate() and wrk_no not in (select wrk_no from asr_bas_devp))
         or (wrk_sts=15 and modi_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
         order by modi_time,wrk_no asc
     </select>
diff --git a/src/main/webapp/views/report/locDetl.html b/src/main/webapp/views/report/locDetl.html
index 0da0485..56f1aa3 100644
--- a/src/main/webapp/views/report/locDetl.html
+++ b/src/main/webapp/views/report/locDetl.html
@@ -26,7 +26,7 @@
 </body>
 <script type="text/html" id="operateDetl">
 <!--    <button id="batch" class="layui-btn layui-btn-primary layui-btn-radius" style="height: auto" lay-submit lay-filter="batch">淇敼鍚堝悓鍙�</button>-->
-    <a class="layui-btn layui-btn-xs layui-btn-danger btn-pakoutPreview" lay-event="pakoutPreview"><i class="layui-icon layui-icon-prev-circle"></i>淇敼鍚堝悓鍙�</a>
+<!--    <a class="layui-btn layui-btn-xs layui-btn-danger btn-pakoutPreview" lay-event="pakoutPreview"><i class="layui-icon layui-icon-prev-circle"></i>淇敼鍚堝悓鍙�</a>-->
 </script>
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>

--
Gitblit v1.9.1