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