From d3d2fd46e9a1df3535ec240bef43ebaac6f4993c Mon Sep 17 00:00:00 2001 From: tzsk <Administrator@qq.com> Date: 星期三, 07 二月 2024 21:21:32 +0800 Subject: [PATCH] Changes --- src/main/java/com/zy/common/service/erp/task/ErpScheduler.java | 109 +++++++++++++++++++++++++----------------------------- 1 files changed, 50 insertions(+), 59 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 a35706e..9819fde 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,25 +1,20 @@ package com.zy.common.service.erp.task; -import com.alibaba.fastjson.JSON; -import com.core.common.Cools; -import com.core.common.DateUtils; -import com.core.exception.CoolException; -import com.zy.asrs.entity.Mat; -import com.zy.asrs.entity.Tag; +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 com.zy.common.service.erp.dto.VoucherDto; -import com.zy.common.service.erp.entity.Goods; -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 org.springframework.transaction.annotation.Transactional; -import java.util.Date; +import java.util.ArrayList; import java.util.List; /** @@ -36,61 +31,57 @@ private TagService tagService; @Autowired private MatService matService; + @Autowired + private AllLocDetlService allLocDetlService; + @Autowired + private InventoryVarianceService inventoryVarianceService; - @Scheduled(cron = "0/5 * * * * ? ") - @Synchronized - @Transactional - public synchronized void syncMat1() { - erpService.updateStateForGoods("PL0122231401176", 1); - } + @Scheduled(cron = "0 0 2 * * ? ") + public void syncLocDetl(){ + log.info("搴撳瓨宸紓淇℃伅娓呴櫎"); + inventoryVarianceService.deleteAll(); - @Scheduled(cron = "0/5 * * * * ? ") - @Synchronized - @Transactional - public synchronized void syncMat() { - Tag top = tagService.getTop(); - List<Goods> goods = erpService.selectGoods(0); - Date now = new Date(); - if (!Cools.isEmpty(goods)) { - for (Goods good : goods) { - Mat mat = matService.selectByMatnr(good.getBarCode()); - if (mat == null) { - mat = new Mat(); - mat.setTagId(top.getId()); - mat.setMatnr(good.getBarCode()); - mat.setMaktx(good.getMaterialNO()); - mat.setSpecs(good.getProdSpec()); - mat.setModel(good.getBatch()); - mat.setWeight(good.getNWT()); - mat.setUnits(good.getNumOfBobbins()==null?null:good.getNumOfBobbins().doubleValue()); - mat.setManuDate(good.getProdDate()); - - mat.setCreateTime(now); - mat.setSku(good.getLocation()); - if (!Cools.isEmpty(good.getLastUpdatedDate())) { - mat.setUpdateTime(DateUtils.convert(good.getLastUpdatedDate().substring(0, 19))); - } - - if (!matService.insert(mat)) { - throw new CoolException(good.getBarCode() + "鍟嗗搧鍚屾澶辫触"); - } else { - int state = 1; - if (!erpService.updateStateForGoods(good.getBarCode(), state)) { - throw new CoolException(good.getBarCode() + "鍟嗗搧淇敼State涓�"+state+"澶辫触"); - } - } - } + 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); } + } - @Scheduled(cron = "0/5 * * * * ? ") - @Synchronized - @Transactional - public synchronized void syncOrder() { - List<VoucherDto> list = erpService.selectOrder(0); - System.out.println(JSON.toJSONString(list)); + 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