From c65db22f67af8018ae7105ea00d8743e42835e13 Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期六, 29 三月 2025 15:52:09 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/common/service/erp/task/ErpScheduler.java | 69 ++++++++++++++++++++++++++++++++-- 1 files changed, 64 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java index 2ce259c..9296f87 100644 --- a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java +++ b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java @@ -1,12 +1,20 @@ package com.zy.common.service.erp.task; +import com.zy.asrs.entity.AllLocDetl; +import com.zy.asrs.entity.InventoryVariance; +import com.zy.asrs.service.AllLocDetlService; +import com.zy.asrs.service.InventoryVarianceService; +import com.zy.asrs.service.MatService; +import com.zy.asrs.service.TagService; import com.zy.asrs.task.AbstractHandler; import com.zy.common.service.erp.ErpService; -import lombok.Synchronized; +import com.zy.common.service.erp.entity.WlzhVStRd; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; /** * erp浠诲姟鎺у埗鍣� @@ -18,10 +26,61 @@ @Autowired private ErpService erpService; + @Autowired + private TagService tagService; + @Autowired + private MatService matService; + @Autowired + private AllLocDetlService allLocDetlService; + @Autowired + private InventoryVarianceService inventoryVarianceService; - @Scheduled(cron = "0/30 * * * * ? ") - @Synchronized - public void syncMat() { + + //@Scheduled(cron = "0 0 2 * * ? ") + public void syncLocDetl(){ + log.info("搴撳瓨宸紓淇℃伅娓呴櫎"); + inventoryVarianceService.deleteAll(); + + log.info("涓嶦RP姣斿寮�濮�"); + int pageSize = 500; + int pageNumber = 0; + while (true){ + List<InventoryVariance> inventoryVariances = new ArrayList<>(); + List<WlzhVStRd> wlzhVStRds = erpService.selectPage(pageSize, pageNumber); + if(wlzhVStRds.size() < pageSize){ + break; + } + + //ERP搴撳瓨涓庣珛搴撳簱瀛樻瘮瀵� + compileStock(wlzhVStRds,inventoryVariances); + pageNumber ++; + inventoryVarianceService.insertBatch(inventoryVariances); + } + } + private void compileStock(List<WlzhVStRd> wlzhVStRds, List<InventoryVariance> inventoryVariances){ + wlzhVStRds.forEach(wlzhVStRd -> { + String matnr = wlzhVStRd.getCinvcode(); + String csocode = wlzhVStRd.getCsocode(); + String isoseq = wlzhVStRd.getIsoseq(); + Double iQuantity = wlzhVStRd.getIquantity(); + + Double anfme = 0.0; + + List<AllLocDetl> allLocDetlList = allLocDetlService.getByMatnrAndCsocodeAndIsoseq(matnr, csocode, isoseq); + for(AllLocDetl allLocDetl : allLocDetlList){ + anfme += allLocDetl.getAnfme(); + } + + int compare = Double.compare(iQuantity, anfme); + if(compare != 0){ + InventoryVariance inventoryVarianceParam = new InventoryVariance(matnr,csocode,isoseq,iQuantity,anfme); + inventoryVariances.add(inventoryVarianceParam); + } + + }); + } + + } -- Gitblit v1.9.1