From 23ba6b079e80ae6e5fbd909df6544c1d992df561 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期日, 23 十一月 2025 15:00:48 +0800
Subject: [PATCH] 根据库存明细更新商品信息

---
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    2 +
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    2 +
 src/main/resources/mapper/LocDetlMapper.xml                    |    9 ++++
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    6 +++
 src/main/java/com/zy/asrs/task/InOutSyncScheduler.java         |   60 ++++++++++++++++++++++++++++++
 5 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 4fa50cb..7e46b8f 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -93,4 +93,6 @@
 
     @Select("select count(*) from asr_loc_detl where matnr = #{matnr};")
     Integer selectCountByMatNr(String matnr);
+
+    List<LocDetl> select100();
 }
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index a07ec9c..07859dd 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -91,4 +91,6 @@
     List<LocDetl> selectLocDetlUnilateralMoveShuttle(String matnr, String batch, String grade, Integer crnNo);
 
     Integer selectCountByMatNr(String matnr);
+
+    List<LocDetl> select100();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 9941bc1..7e1bf2f 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -15,6 +15,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -216,6 +217,11 @@
     }
 
     @Override
+    public List<LocDetl> select100() {
+        return this.baseMapper.select100();
+    }
+
+    @Override
     public LocDetl selectItem(String locNo, WrkDetl wrkDetl) {
         List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, wrkDetl.getMatnr());
         if (locDetls != null) {
diff --git a/src/main/java/com/zy/asrs/task/InOutSyncScheduler.java b/src/main/java/com/zy/asrs/task/InOutSyncScheduler.java
new file mode 100644
index 0000000..48d5cc0
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/InOutSyncScheduler.java
@@ -0,0 +1,60 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.zy.asrs.entity.InOut;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.Mat;
+import com.zy.asrs.service.InOutService;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.asrs.service.MatService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Component
+@Slf4j
+@Transactional
+public class InOutSyncScheduler {
+    @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
+    private InOutService inOutService;
+    @Autowired
+    private MatService matService;
+
+    @Scheduled(cron = "0/30 * * * * ? ")
+    private void syncInOut(){
+//        List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().ne("length",1).last("top 100"));
+        List<LocDetl> locDetlList = locDetlService.select100();
+        if (locDetlList.size() == 0){
+            log.info("鍟嗗搧淇℃伅鏇存柊瀹屾瘯");
+            return;
+        }
+        for (LocDetl locDetl : locDetlList) {
+            InOut inOut = inOutService.selectByMatnr(locDetl.getMatnr());
+            Mat mat = matService.selectByMatnr(locDetl.getMatnr());
+
+            inOut.setBrand(locDetl.getZpallet());//鎵樼洏鏉$爜
+            inOut.setTemp3(locDetl.getLocNo());//搴撲綅鍙�
+            inOut.setTemp1("鍦ㄥ簱");//鏄惁鍦ㄥ簱
+            inOut.setTemp2(mat.getName());//濂楀彿
+
+            locDetl.setLength(1.0);//鏍囪
+
+
+            if (!inOutService.update(inOut, new EntityWrapper<InOut>().eq("matnr",inOut.getMatnr()))){
+                log.error("鏇存柊鍟嗗搧淇℃伅澶辫触");
+            }
+            if (!locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("matnr",locDetl.getMatnr()))){
+                log.error("鏇存柊搴撳瓨鏍囪澶辫触");
+            }
+
+        }
+        log.info("鏇存柊" + locDetlList.size() + "鏉″晢鍝佷俊鎭垚鍔�");
+    }
+}
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 1ea5ec3..e28d4f7 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -559,6 +559,15 @@
         order by row1
     </select>
 
+    <select id="select100" resultMap="BaseResultMap">
+        select TOP 100 a.*
+        from asr_loc_detl a
+                 left join asr_loc_mast b on a.loc_no = b.loc_no
+        where 1=1
+          and b.loc_sts = 'F'
+          and a.length != 1
+    </select>
+
 
 
 

--
Gitblit v1.9.1