From 253bbfb87d8e214c9e64d9534a58ef22711e97ca Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 27 十二月 2024 08:16:17 +0800
Subject: [PATCH] #灌装线回库接口

---
 src/main/resources/mapper/WrkDetlMapper.xml                    |    7 +++
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java            |    3 +
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |    5 ++
 src/main/java/com/zy/common/web/WcsController.java             |   72 ++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    2 +
 5 files changed, 89 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 97d48d8..7baa1e4 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -6,6 +6,7 @@
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 @Mapper
@@ -23,4 +24,6 @@
     int updateInspect( @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
 
     List<WrkDetl> selectPakoutQuery(@Param("staNo")Integer staNo, @Param("matnr")String matnr);
+
+    int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index ede2552..136b447 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -21,4 +21,6 @@
 
     List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr);
 
+    boolean updateIoTime(Integer workNo, Date ioTime);
+
 }
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 196874a..4c6cd21 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -79,4 +79,9 @@
     public List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr) {
         return this.baseMapper.selectPakoutQuery(staNo, matnr);
     }
+
+    @Override
+    public boolean updateIoTime(Integer workNo, Date ioTime) {
+        return this.baseMapper.updateIoTime(workNo, ioTime) > 0;
+    }
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index da45692..a2a8fa1 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -56,6 +56,10 @@
     private BasCrnpService basCrnpService;
     @Autowired
     private StaDescService staDescService;
+    @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private WrkDetlLogService wrkDetlLogService;
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
@@ -420,4 +424,72 @@
             throw new CoolException(tarLoc.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
         }
     }
+    @PostMapping("/process/in/loc/v1")
+    @ResponseBody
+    @Transactional
+    public synchronized R processInLoc(@RequestBody SearchLocParam param){
+        log.info("鐏岃绾挎敹鍒癢CS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                .eq("barcode", param.getBarcode())
+                .eq("io_type", 105)
+                .eq("wrk_sts", 14));
+        if (Cools.isEmpty(wrkMast)) {
+            log.info("鏌ヨ涓嶅埌璇ユ墭鐩樼爜鐨勭綈瑁呭嚭搴撲换鍔★紝鎵樼洏鐮佷綅{" + param.getBarcode() + "}" );
+            throw new CoolException("鏌ヨ涓嶅埌璇ユ墭鐩樼爜鐨勭綈瑁呭嚭搴撲换鍔★紝鎵樼洏鐮佷綅{" + param.getBarcode() + "}" );
+        }
+        // 鑾峰彇鐩爣绔�
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", 55)
+                .eq("stn_no", 2106)
+                .eq("crn_no", wrkMast.getCrnNo());
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)) {
+            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦紒");
+        }
+        try {
+            // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+            }
+            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+            if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+                throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+            }
+            Date now = new Date();
+            // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+            Integer staNo = staDesc.getCrnStn();
+            // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+            wrkMast.setIoTime(now);
+            wrkMast.setIoType(55);
+            wrkMast.setWrkSts(2L);
+            wrkMast.setSourceStaNo(2106);
+            wrkMast.setStaNo(staNo);
+            wrkMast.setLocNo(wrkMast.getSourceLocNo());
+            wrkMast.setSourceLocNo("");
+            wrkMast.setModiTime(now);
+            if (!wrkMastService.updateById(wrkMast)) {
+                throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+            }
+            // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
+            wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
+            // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+            locMast.setLocSts("Q");
+            locMast.setModiTime(new Date());
+            if (!locMastService.updateById(locMast)) {
+                throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+            }
+
+        } catch (Exception e) {
+            throw new CoolException("鍏ュ簱澶辫触锛�");
+        }
+        StartupDto dto = new StartupDto();
+        dto.setWorkNo(wrkMast.getWrkNo());
+        dto.setCrnNo(wrkMast.getCrnNo());
+        dto.setSourceStaNo(wrkMast.getSourceStaNo());
+        dto.setStaNo(wrkMast.getStaNo());
+        dto.setLocNo(wrkMast.getLocNo());
+        log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+        return R.ok().add(dto);
+    }
 }
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index be7898e..dc4737a 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -111,4 +111,11 @@
         and awd.matnr + '-' + awd.batch = #{matnr}
     </select>
 
+    <update id="updateIoTime">
+        update asr_wrk_detl
+        set io_time = #{ioTime}
+        where 1=1
+          and wrk_no = #{workNo}
+    </update>
+
 </mapper>

--
Gitblit v1.9.1