From 7fbb3a0cec59554367b527f55d81e3997eacf4c9 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期三, 16 八月 2023 15:57:12 +0800 Subject: [PATCH] 增加根据损益信息定时更新库存 --- igds-inout/src/main/java/com/ld/igds/timer/DepotStoreScheduled.java | 75 +++++++++++++++++++++++++++++++++++-- 1 files changed, 70 insertions(+), 5 deletions(-) diff --git a/igds-inout/src/main/java/com/ld/igds/timer/DepotStoreScheduled.java b/igds-inout/src/main/java/com/ld/igds/timer/DepotStoreScheduled.java index 6ab6e90..241d2c2 100644 --- a/igds-inout/src/main/java/com/ld/igds/timer/DepotStoreScheduled.java +++ b/igds-inout/src/main/java/com/ld/igds/timer/DepotStoreScheduled.java @@ -2,12 +2,14 @@ import com.bstek.bdf2.core.model.DefaultCompany; import com.ld.igds.common.CoreCommonService; +import com.ld.igds.constant.Constant; import com.ld.igds.constant.DepotStatus; import com.ld.igds.inout.InoutConstant; import com.ld.igds.inout.dto.InoutData; import com.ld.igds.inout.dto.InoutParam; import com.ld.igds.inout.service.InoutService; import com.ld.igds.models.DepotStore; +import com.ld.igds.models.InoutLossOver; import com.ld.igds.models.InoutRecord; import com.ld.igds.util.ContextUtil; import lombok.extern.slf4j.Slf4j; @@ -53,14 +55,81 @@ param.setStart(DateUtils.addDays(param.getEnd(), -1)); List<InoutData> listRecord; + List<InoutLossOver> listLossOver; for (DefaultCompany company : listCompany) { param.setCompanyId(company.getId()); listRecord = inoutService.listRecordData(param); - //鏍规嵁鍑哄叆搴撲俊鎭紝鍚屾搴撳瓨淇℃伅 + // 鏍规嵁鍑哄叆搴撲俊鎭紝鍚屾搴撳瓨淇℃伅 sumDepotStoreExe(company.getId(), listRecord, param); + + listLossOver = inoutService.listLossOver(param); + // 鏍规嵁鎹熻�椾俊鎭紝鍚屾搴撳瓨淇℃伅 + sumDepotStoreByLossOver(company.getId(), listLossOver, param); + } + } + + /** + * 鍚屾浠撳簱搴撳瓨锛屾牴鎹繎鏈熷嚭鍏ュ簱璁板綍锛屽鏋滄病鏈夎褰曞垯琛ㄧず鏃犲嚭鍏ュ簱鎿嶄綔锛屽彇娑堟墽琛� + * + * @param companyId + * @param listLossOver + */ + private void sumDepotStoreByLossOver(String companyId, List<InoutLossOver> listLossOver, InoutParam param) { + + if (null == listLossOver || listLossOver.isEmpty()) { + log.info("-----------绯荤粺鑷姩鍚屾搴撳瓨锛岃繎鏈熸棤鎹熺泭璁板綍锛屽彇娑堝悓姝ヤ粨搴撳簱瀛樷�︹�}", companyId); + return; + } + + // 鑾峰彇鏈夊嚭鍏ュ簱璁板綍鐨勪粨搴� + Map<String, InoutLossOver> map = new HashMap<>(); + String key; + DepotStore lastStore; + double sumRecordWeight = 0.0; + for (InoutLossOver data : listLossOver) { + key = data.getDepotId() + "_" + data.getType(); + if (null != map.get(key)) { + continue; + } + + map.put(key, data); + + // 鏍规嵁鏈�鍚庝竴杞﹁繘琛屾眹鎬荤粺璁★紝寮�濮嬫椂闂存槸浠撳簱搴撳瓨鏈�鍚庝竴涓椂闂存埅姝㈠埌褰撳墠 + lastStore = commonService.getLastDepotStore(data.getDepotId()); + if (null == lastStore) { + log.error("--------搴撳瓨瀹氭椂浠诲姟-----娌℃湁鑾峰彇鍒颁粨搴撴渶鍚庡簱瀛樹俊鎭紝鍙栨秷鑷姩缁熻锛岃鏍稿涓氬姟閫昏緫--浠撳簱-{}", + data.getDepotId()); + continue; + } + + param.setDeptId(data.getDeptId()); + param.setDepotId(data.getDepotId()); + param.setCompanyId(data.getCompanyId()); + param.setType(data.getType()); + + //鑾峰彇鍑哄叆搴撶殑閲嶉噺淇℃伅 + sumRecordWeight = inoutService.sumLossOverWeight(param); + + //鏂板涓�鏉″簱瀛樿褰� + lastStore.setRemark("绯荤粺瀹氭椂鐢熸垚璁板綍"); + lastStore.setId(ContextUtil.getUUID()); + lastStore.setUpdateUser("绯荤粺绠$悊鍛�"); + lastStore.setUpdateDate(new Date()); + lastStore.setCreateDate(new Date()); + if(Constant.LOSS_OVER_LOSS.equals(data.getType())){ + lastStore.setStorageReal(lastStore.getStorageReal() + sumRecordWeight); + + } + if(Constant.LOSS_OVER_OVER.equals(data.getType())){ + lastStore.setStorageReal(lastStore.getStorageReal() - sumRecordWeight); + } + + lastStore.setStorageSettle(lastStore.getStorageReal()); + commonService.addDepotStore(lastStore, true); + } } /** @@ -126,10 +195,6 @@ //璁剧疆鍏ュ簱鏃堕棿 if(null == lastStore.getStoreDate()){ lastStore.setStoreDate(data.getCompleteTime()); - } - //鑻ュ嚭搴撳悗鏁伴噺涓鸿礋鏁帮紝鍒欒缃簱瀛樻暟涓�0.0 - if(lastStore.getStorageReal() < 0){ - lastStore.setStorageReal(0.0); } } -- Gitblit v1.9.3