From 8ba4f65089aef9ab488574a70a0738f45ce4ab10 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 01 四月 2024 08:50:55 +0800
Subject: [PATCH] #立库转平库

---
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java |   71 +++++++++++++++++++++++++++++++++--
 1 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index bd7f28d..6dc7887 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -1,14 +1,14 @@
 package com.zy.asrs.task.handler;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.VersionUtils;
 import com.zy.common.service.erp.ErpService;
 import com.zy.common.service.erp.entity.OutStockBillEntry;
 import lombok.extern.slf4j.Slf4j;
@@ -20,6 +20,8 @@
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -48,6 +50,12 @@
     private OutStockService outStockService;
     @Autowired
     private JdbcTemplate jdbcTemplate;
+    @Autowired
+    private  OutStockDanService outStockDanService;
+    @Autowired
+    private LocNormalService locNormalService;
+    @Autowired
+    private LocNormalLogService locNormalLogService;
 
     @Transactional
     public ReturnT<Exception> start(WrkMast wrkMast) {
@@ -78,6 +86,59 @@
                 waitPakinService.delete(wrapper);
             }
 
+            if (!Cools.isEmpty(wrkMast.getPdcType()) && wrkMast.getPdcType().equals("Y")){
+                List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                if (Cools.isEmpty(wrkDetls)){
+                    log.error("鍑哄簱锛堢Щ搴擄級浣滀笟鏃讹紝鏈煡璇㈠埌宸ヤ綔鏄庣粏");
+                }else {
+                    for (WrkDetl wrkDetl : wrkDetls) {
+                        EntityWrapper<LocNormal> locNormalEntityWrapper = new EntityWrapper<>();
+                        locNormalEntityWrapper.eq("matnr",wrkDetl.getMatnr());
+                        locNormalEntityWrapper.eq("mnemonic",wrkDetl.getMnemonic());
+                        locNormalEntityWrapper.eq("state","1");
+                        locNormalEntityWrapper.eq("warehouse",wrkMast.getLogErrMemo());
+                        LocNormal locNormal = locNormalService.selectOne(locNormalEntityWrapper);
+                        if (Cools.isEmpty(locNormal)){
+                            Date now = new Date();
+                            LocNormal locNormal1 = new LocNormal();
+                            locNormal1.setMatnr(wrkDetl.getMatnr());
+                            locNormal1.setMaktx(wrkDetl.getMaktx());
+                            locNormal1.setLgnum(wrkDetl.getLgnum());
+                            locNormal1.setType(wrkDetl.getType());
+                            locNormal1.setMnemonic(wrkDetl.getMnemonic());
+                            locNormal1.setSupplier(wrkDetl.getSupplier());
+                            locNormal1.setWarehouse(wrkMast.getLogErrMemo());
+                            locNormal1.setAnfme(BigDecimal.valueOf(wrkDetl.getAnfme()));
+                            locNormal1.setModiTime(now);
+                            locNormal1.setModiUser(9527L);
+                            locNormal1.setAppeUser(9527L);
+                            locNormal1.setAppeTime(now);
+                            locNormal1.setState("1");
+                            boolean insert = locNormalService.insert(locNormal1);
+                            if (!insert){
+                                log.error("鍑哄簱锛堢Щ搴擄級浣滀笟鏃讹紝鎻掑叆骞冲簱鐗╂枡澶辫触");
+                            }
+                            // 鐢熸垚骞充粨鍑哄叆搴撹褰�
+                            LocNormalLog locLog = new LocNormalLog();
+                            VersionUtils.setLocNormalLog(locLog, locNormal1);
+                            locLog.setAnfme(locNormal1.getAnfme().doubleValue());
+                            locLog.setIoType(1);
+                            locLog.setCreateTime(new Date());
+                            locLog.setCreateUser(9527L);
+                            if (!locNormalLogService.insert(locLog)) {
+                                String logStr = JSON.toJSONString(locLog);
+                                log.info("骞充粨鍏ュ簱璁板綍鎻掑叆澶辫触,鏁版嵁:" + logStr);
+                            }
+                        }else {
+                            locNormal.setAnfme(locNormal.getAnfme().add(BigDecimal.valueOf(wrkDetl.getAnfme())));
+                            boolean update = locNormalService.update(locNormal, locNormalEntityWrapper);
+                            if (!update){
+                                log.error("鍑哄簱锛堢Щ搴擄級浣滀笟鏃讹紝鏇存柊骞冲簱鐗╂枡澶辫触");
+                            }
+                        }
+                    }
+                }
+            }
             // erp鍏宠仈鍑哄簱璁㈠崟澶勭悊
             if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 53) {
                 EntityWrapper<WrkDetl> wrapper = new EntityWrapper<>();
@@ -85,12 +146,12 @@
                 List<WrkDetl> wrkDetls = wrkDetlService.selectList(wrapper.eq("wrk_no", wrkMast.getWrkNo()).and().isNotNull("supplier"));
                 for (WrkDetl wrkDetl: wrkDetls) {
                     if (!Cools.isEmpty(wrkDetl)) {
-                        Integer FInterI = outStockService.queryOutStockFInterID(wrkDetl.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
+                        Integer FInterI = outStockDanService.queryOutStockFInterID(wrkDetl.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
                         if (!Cools.isEmpty(FInterI)) {
                             if (!erpService.incrementCPakOut(FInterI, wrkDetl.getMatnr(),  wrkDetl.getAnfme(), wrkDetl.getSupplier())) {
                                 exceptionHandle("[xtyasrs_dual]鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0},FBillNo={1}]澶辫触", wrkDetl.getMatnr(),wrkDetl.getSupplier());
                             }
-                            if (!outStockService.incrementCPakOut(FInterI, wrkDetl.getMatnr(),  wrkDetl.getAnfme(), wrkDetl.getSupplier())) {
+                            if (!outStockDanService.incrementCPakOut(FInterI, wrkDetl.getMatnr(),  wrkDetl.getAnfme(), wrkDetl.getSupplier())) {
                                 exceptionHandle("[xtyasrs]鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0},FBillNo={1}]澶辫触", wrkDetl.getMatnr(),wrkDetl.getSupplier());
                             }
                         }

--
Gitblit v1.9.1