From 1a24bc85c7dbd80a4460ace64dd88846ff1af654 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期日, 03 十一月 2024 09:48:33 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/WrkDetlMapper.xml                    |    6 ++
 src/main/java/com/zy/asrs/entity/param/TagParam.java           |    8 ++
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java            |    2 
 src/main/java/com/zy/asrs/service/WrkMastService.java          |    4 +
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |    5 +
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |    5 +
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java            |    3 +
 src/main/java/com/zy/common/web/WcsController.java             |   66 ++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java    |   70 +++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    2 
 10 files changed, 169 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/param/TagParam.java b/src/main/java/com/zy/asrs/entity/param/TagParam.java
index ab87118..3e1256d 100644
--- a/src/main/java/com/zy/asrs/entity/param/TagParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TagParam.java
@@ -6,6 +6,10 @@
 
 @Data
 public class TagParam {
-    private String parentTagName;
-    private String tagName;
+    private String ItemClassId;
+    private String ParentItemClassId;
+    private String Name;
+    private String SysActive;
+    private String ParentName;
+
 }
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 15503d5..f44e1fb 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -28,4 +28,6 @@
     List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
 
     int updateIoTimeWms(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
+
+    int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
 }
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index efcec10..ae41072 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -30,4 +30,7 @@
     List<WrkMast> selectToShuttleTask();
 
     List<WrkMast> selectToShuttleOutTask();
+
+    @Insert("insert into asr_wrk_detl_log select * from asr_wrk_detl where wrk_no=#{workNo}")
+    int saveWrkDetlLog(Integer workNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 4239172..7eeaf83 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -24,4 +24,6 @@
     List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
 
     boolean updateIoTimeWms(Integer workNo, Date ioTime);
+
+    boolean updateIoTime(Integer workNo, Date ioTime);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index faa3ebe..ae749a8 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.WrkMast;
+import org.apache.ibatis.annotations.Insert;
 
 import java.util.List;
 
@@ -30,4 +31,7 @@
 
     List<WrkMast> selectToShuttleTask();
     List<WrkMast> selectToShuttleOutTask();
+
+    @Insert("insert into asr_wrk_detl_log select * from asr_wrk_detl where wrk_no=#{workNo}")
+    int saveWrkDetlLog(Integer workNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index f042c12..a828246 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -637,5 +637,75 @@
     @Transactional
     public void syncTag(List<TagParam> param) {
 
+        param.forEach(tag-> {
+            // 鍒嗙被
+            Long tagId;
+            Date now = new Date();
+            if (Cools.isEmpty(tag.getParentItemClassId())){
+                Tag priTag = tagService.selectByName("鍏ㄩ儴", 1);
+
+                // 浜岀骇鍒嗙被
+                Tag secTag = tagService.selectByName(tag.getName(), 2);
+                if (secTag == null) {
+                    NodeUtils nodeUtils = new NodeUtils();
+                    nodeUtils.executePath(priTag.getId());
+                    secTag = new Tag(
+                            null,    // 缂栧彿
+                            tag.getName(),    // 鍚嶇О
+                            priTag.getId(),    // 鐖剁骇
+                            priTag.getName(),    // 鐖剁骇鍚嶇О
+                            nodeUtils.path.toString(),    // 鍏宠仈璺緞
+                            nodeUtils.pathName.toString(),    // 鍏宠仈璺緞鍚�
+                            0,    // 绫诲瀷
+                            null,    // 璐熻矗浜�
+                            null,    // 鍥剧墖
+                            null,    // 绠�瑕佹弿杩�
+                            null,    // 鏁伴噺
+                            2,    // 绛夌骇
+                            null,    // 鎺掑簭
+                            1,    // 鐘舵��
+                            now,    // 娣诲姞鏃堕棿
+                            null,    // 娣诲姞浜哄憳
+                            now,    // 淇敼鏃堕棿
+                            null,    // 淇敼浜哄憳
+                            tag.getItemClassId()    // 澶囨敞
+                    );
+                    if (tagMapper.insert(secTag) == 0) {
+                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                    }
+                }
+            }else {
+                Tag priTag =tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getParentItemClassId()));
+                if (priTag == null) {
+                    Tag top = tagService.getTop();
+                    NodeUtils nodeUtils = new NodeUtils();
+                    nodeUtils.executePath(top.getId());
+                    priTag = new Tag(
+                            null,    // 缂栧彿
+                            tag.getParentName(),    // 鍚嶇О
+                            top.getId(),    // 鐖剁骇
+                            top.getName(),    // 鐖剁骇鍚嶇О
+                            nodeUtils.path.toString(),    // 鍏宠仈璺緞
+                            nodeUtils.pathName.toString(),    // 鍏宠仈璺緞鍚�
+                            0,    // 绫诲瀷
+                            null,    // 璐熻矗浜�
+                            null,    // 鍥剧墖
+                            null,    // 绠�瑕佹弿杩�
+                            null,    // 鏁伴噺
+                            2,    // 绛夌骇
+                            null,    // 鎺掑簭
+                            1,    // 鐘舵��
+                            now,    // 娣诲姞鏃堕棿
+                            null,    // 娣诲姞浜哄憳
+                            now,    // 淇敼鏃堕棿
+                            null,    // 淇敼浜哄憳
+                            tag.getParentItemClassId()    // 澶囨敞
+                    );
+                    if (tagMapper.insert(priTag) == 0) {
+                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                    }
+                }
+            }
+        });
     }
 }
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 9b15e6d..968b9b6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -88,4 +88,9 @@
     public boolean updateIoTimeWms(Integer workNo, Date ioTime) {
         return this.baseMapper.updateIoTimeWms(workNo, ioTime) > 0;
     }
+
+    @Override
+    public boolean updateIoTime(Integer workNo, Date ioTime) {
+        return this.baseMapper.updateIoTime(workNo, ioTime) > 0;
+    }
 }
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 6d0f9e9..dbd5dd3 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -70,4 +70,9 @@
     public List<WrkMast> selectToShuttleOutTask() {
         return this.baseMapper.selectToShuttleOutTask();
     }
+
+    @Override
+    public int saveWrkDetlLog(Integer workNo) {
+        return this.baseMapper.saveWrkDetlLog(workNo);
+    }
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 2b419c8..afa1f5d 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -17,6 +17,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
@@ -53,6 +54,71 @@
     @Autowired
     private StaDescService staDescService;
 
+    @PostMapping
+    @Transactional
+    public synchronized R getLocNo3(@RequestBody SearchLocParam param){
+        log.info("鏀跺埌WCS鎷f枡鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+        if (Cools.isEmpty(wrkMast)){
+            return R.error("鏈壘鍒颁换鍔�");
+        }
+        StartupDto dto = null;
+        // 鑾峰彇鐩爣绔�
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", wrkMast.getIoType() - 50)
+                .eq("stn_no", 31002) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)){
+            return R.error("鏈壘鍒扮珯鐐硅矾寰�");
+        }
+        if (wrkMast.getWrkSts() == 14 && wrkMast.getIoType() == 103){
+            try {
+                // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+                if (wrkMastService.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
+                    throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+                }
+                // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+                if (wrkMastService.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
+                    throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+                }
+
+                Date now = new Date();
+                // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+                Integer staNo = staDesc.getCrnStn();
+                // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+                wrkMast.setIoTime(now);
+                wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+                wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+                wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+                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("淇敼搴撲綅鐘舵�佸け璐�");
+                }
+                dto.setWorkNo(wrkMast.getWrkNo());
+                dto.setLocNo(wrkMast.getLocNo());
+                return R.ok(dto);
+            } catch (Exception e) {
+               return R.error(e.getMessage());
+            }
+        }else {
+
+        }
+        return R.error();
+    }
+
     @PostMapping("/pakin2/loc/v1")
     @ResponseBody
     @Transactional
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index e99d6bf..ca46fff 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -101,6 +101,12 @@
         where 1=1
           and wrk_no = #{workNo}
     </update>
+    <update id="updateIoTime">
+        update asr_wrk_detl
+        set io_time = #{ioTime}
+        where 1=1
+          and wrk_no = #{workNo}
+    </update>
 
     <select id="selectPakoutQuery" resultMap="BaseResultMap">
         select

--
Gitblit v1.9.1