From dd78a469b3167d5c0251427dcaab82f81bb3f3a5 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 22 一月 2024 15:03:09 +0800
Subject: [PATCH] #检料再入库逻辑修改,定时器检测是否存在在库无资料数据

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    6 +
 src/main/java/com/zy/asrs/task/CheckLocDetlExistScheduler.java |   74 ++++++++++++++++++++++++
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java    |   14 ++++
 src/main/resources/mapper/LocDetlMapper.xml                    |    1 
 src/main/resources/mapper/LocMastMapper.xml                    |    7 ++
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    2 
 src/main/java/com/zy/common/web/WcsController.java             |   20 +++---
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 
 8 files changed, 115 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 35e946b..3b8193d 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -47,4 +47,6 @@
 
     Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev);
 
+    List<LocMast> selectLocDetlNotExist();
+
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 38b0869..b730745 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -67,4 +67,6 @@
     Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev);
 
     void updateByLocNo(LocMast locMast);
+
+    List<LocMast> selectLocDetlNotExist();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 92799e0..035c797 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -207,7 +207,11 @@
     }
 
     public void updateByLocNo(LocMast locMast){
-
         this.update(locMast,new EntityWrapper<LocMast>().eq("loc_no",locMast.getLocNo()));
     }
+
+    @Override
+    public List<LocMast> selectLocDetlNotExist() {
+        return this.baseMapper.selectLocDetlNotExist();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/CheckLocDetlExistScheduler.java b/src/main/java/com/zy/asrs/task/CheckLocDetlExistScheduler.java
new file mode 100644
index 0000000..bd762f0
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/CheckLocDetlExistScheduler.java
@@ -0,0 +1,74 @@
+package com.zy.asrs.task;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.service.LocMastService;
+import com.zy.common.utils.HttpHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 妫�娴嬪簱浣嶇姸鎬佷负F浣嗘棤搴撳瓨鏁版嵁
+ * 姣忓垎閽熸壂鎻忎竴娆�
+ */
+@Component
+public class CheckLocDetlExistScheduler {
+
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private ConfigService configService;
+
+    @Scheduled(cron = "*/1 * * * * ? ")
+    private void execute(){
+        List<LocMast> locMasts = locMastService.selectLocDetlNotExist();
+        if (locMasts.isEmpty()) {
+            return;
+        }
+
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","dingdingReportUrl"));
+        if (config == null) {
+            return;
+        }
+
+        if (config.getStatus() == 0) {
+            return;//閫氱煡绂佺敤
+        }
+
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("銆愰�氱煡銆戜笁鍑洓鍚戝簱-搴撳瓨璧勬枡寮傚父\n");//娑堟伅鏍囬
+
+        for (LocMast locMast : locMasts) {
+            buffer.append(locMast.getLocNo()).append("\n");
+        }
+
+        try {
+            HashMap<String, Object> param = new HashMap<>();
+            HashMap<String, Object> data = new HashMap<>();
+            data.put("content", buffer.toString());
+            param.put("msgtype", "text");
+            param.put("text", data);
+            String response = new HttpHandler.Builder()
+                    .setUri(config.getValue())
+                    .setJson(JSON.toJSONString(param))
+                    .setHttps(true)
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            if (jsonObject.get("errmsg").equals("ok")) {
+                return;//鍙戦�佹垚鍔�
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}
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 46beecb..7885214 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkDetl;
@@ -165,6 +166,19 @@
                         List<LocDetl> locDetls1 = locDetlService.selectByLocNo(locMast.getLocNo());
                         log.info("宸ヤ綔鍙凤細" + wrkMast.getWrkNo() + "锛屾墭鐩樼爜锛�" + wrkMast.getBarcode() + "锛屼慨鏀瑰簱浣嶇姸鎬丵=>F鎴愬姛锛屽簱瀛樻槑缁嗭細" + JSON.toJSONString(locDetls1));
                     }
+
+                    //娓呯┖婧愬簱浣嶆暟鎹� P ====>> O
+                    LocMast locMast1 = locMastService.selectByLoc(wrkMast.getSourceLocNo());
+                    if (locMast1.getLocSts().equals("P")) {
+                        locMast1.setLocSts("O"); // 娓呯┖搴撲綅
+                        locMast1.setModiTime(new Date());
+                        if (!locMastService.updateById(locMast1)) {
+                            throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+                        }
+                    } else {
+                        throw new CoolException("婧愬簱浣嶇姸鎬佸紓甯�");
+                    }
+
                     break;
                 // 骞舵澘鍏ュ簱
                 case 54:
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index bb8ce9a..d0bb461 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -497,17 +497,17 @@
             }
         }
 
-        //娓呯┖婧愬簱浣嶆暟鎹�
+//        //娓呯┖婧愬簱浣嶆暟鎹�
         LocMast locMast1 = locMastService.selectByLoc(wrkMast.getSourceLocNo());
-        if (locMast1.getLocSts().equals("P")) {
-            locMast1.setLocSts("O"); // 娓呯┖搴撲綅
-            locMast1.setModiTime(new Date());
-            if (!locMastService.updateById(locMast1)) {
-                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-            }
-        } else {
-            throw new CoolException("婧愬簱浣嶇姸鎬佸紓甯�");
-        }
+//        if (locMast1.getLocSts().equals("P")) {
+//            locMast1.setLocSts("O"); // 娓呯┖搴撲綅
+//            locMast1.setModiTime(new Date());
+//            if (!locMastService.updateById(locMast1)) {
+//                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+//            }
+//        } else {
+//            throw new CoolException("婧愬簱浣嶇姸鎬佸紓甯�");
+//        }
 
         // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
         if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 8e6b7de..e62d6f0 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -64,6 +64,7 @@
         where 1=1
         and loc_no = #{locNo}
         and matnr = #{matnr}
+        and (batch IS NULL OR batch = '')
         <choose>
             <when test="suppCode != null and suppCode != ''">
                 and supp_code = #{suppCode}
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index ee92255..81f5acf 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -155,4 +155,11 @@
         and (bay1 &gt;= #{startBay} and bay1 &lt;= #{endBay})
         and (lev1 &gt;= #{startLev} and lev1 &lt;= #{endLev})
     </select>
+
+    <select id="selectLocDetlNotExist" resultMap="BaseResultMap">
+        select * from asr_loc_mast lm
+        left join asr_loc_detl ld
+        on lm.loc_no = ld.loc_no
+        where ld.matnr is null and lm.loc_sts = 'F'
+    </select>
 </mapper>

--
Gitblit v1.9.1