From cc3b8857e340360e08aedbe81de7d82df7c1b644 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 05 七月 2023 15:33:33 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OutStockController.java |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 162 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutStockController.java b/src/main/java/com/zy/asrs/controller/OutStockController.java
index 147213a..b9b6c03 100644
--- a/src/main/java/com/zy/asrs/controller/OutStockController.java
+++ b/src/main/java/com/zy/asrs/controller/OutStockController.java
@@ -1,25 +1,66 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocNormal;
+import com.zy.asrs.entity.LocNormalLog;
+import com.zy.asrs.entity.param.LocNormalStockOutParam;
+import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.service.LocNormalLogService;
+import com.zy.asrs.service.LocNormalService;
 import com.zy.asrs.service.OutStockService;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.service.erp.ErpService;
+import com.zy.common.service.erp.entity.OutStockBill;
 import com.zy.common.service.erp.entity.OutStockBillEntry;
 import com.zy.common.web.BaseController;
+import lombok.extern.slf4j.Slf4j;
+import net.bytebuddy.implementation.bytecode.Throw;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
+@Slf4j
 @RestController
 public class OutStockController extends BaseController {
 
     @Autowired
     private OutStockService outStockService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private LocNormalService locNormalService;
+    @Autowired
+    private ErpService erpService;
+    @Autowired
+    private LocNormalLogService locNormalLogService;
 
+
+    /**
+     *
+     * @param curr
+     * @param limit
+     * @param param
+     * @return
+     */
     @RequestMapping(value = "/outStock/query/list")
     @ManagerAuth
     public R outStockQueryList(@RequestParam(defaultValue = "1")Integer curr,
@@ -27,4 +68,125 @@
                           @RequestParam Map<String, Object> param){
         return R.ok(outStockService.queryOutStock(toPage(curr, limit, param, OutStockBillEntry.class)));
     }
+
+    /**
+     * 妫�绱㈢鍚堥�氱煡鍗曠殑绔嬪簱搴撳瓨鐗╂枡
+     * @param fbillNo
+     * @return
+     */
+    @RequestMapping(value = "/outStock/query/locList")
+    @ManagerAuth
+    public R queryMatWithLoc(String fbillNo) {
+        List<LocDetl> list = outStockService.queryMatWithLoc(fbillNo);
+        return R.ok(list);
+    }
+
+    @RequestMapping(value = "/plate/outStock/start")
+    @ManagerAuth(memo = "鍑哄簱浣滀笟")
+    public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+        outStockService.startupFullTakeStore(param, getUserId());
+        return R.ok("鍑哄簱鍚姩鎴愬姛");
+    }
+
+    /**
+     * 妫�绱㈢鍚堥�氱煡鍗曠殑骞充粨搴撳瓨鐗╂枡
+     * @param fbillNo
+     * @return
+     */
+    @RequestMapping(value = "/outStock/query/locNormalList")
+    @ManagerAuth
+    public R queryMatWithLocNormal(String fbillNo, String mnemonic,String matnr) {
+        List<LocNormal> list = locNormalService.queryLocNorlMatnr(fbillNo, mnemonic,matnr);
+        return R.ok(list);
+    }
+
+
+    /**
+     * 骞充粨瀵规帴erp鍑哄簱
+     * @param
+     * @return
+     */
+    @RequestMapping(value = "/outStock/locNormal")
+    @ManagerAuth
+    @Transactional
+    public R outStockLocNormal(@RequestBody LocNormalStockOutParam param) {
+        Long modiUser = getUserId();
+        Date modiTime = new Date();
+
+        Integer FInterI = outStockService.queryOutStockFInterID(param.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
+        List<OutStockBillEntry>  entryList = outStockService.selectList(new EntityWrapper<OutStockBillEntry>().eq("FInterID",FInterI));
+        for(OutStockBillEntry one : entryList){
+            String Fnumber = one.getFnumber();
+            BigDecimal qty = new BigDecimal(0);
+            for (LocNormal locNormals:param.getList()) {
+                if(locNormals.getMatnr().equals(Fnumber)){
+                    qty = qty.add(locNormals.getAnfme());
+                }
+            }
+            if(qty.compareTo(one.getFQty()) == 1){
+                return R.error("鍑哄簱鏁伴噺澶т簬閫氱煡妗f暟閲廩FInterID=" + FInterI + ",Fnumber=" + Fnumber + "]");
+            }
+        }
+
+        for (LocNormal locNormals:param.getList()) {
+            LocNormal locNormal = locNormalService.selectOne(new EntityWrapper<LocNormal>().eq("id", locNormals.getId()));
+            if (!Cools.isEmpty(locNormal)) {
+                if (locNormal.getAnfme().compareTo(locNormals.getAnfme()) == 1) {
+                    LocNormal logLocNormal = new LocNormal();
+                    logLocNormal.setAnfme(locNormals.getAnfme());
+                    logLocNormal.setMatnr(locNormal.getMatnr());
+                    logLocNormal.setMaktx(locNormal.getMaktx());
+                    logLocNormal.setLgnum(locNormal.getLgnum());
+                    logLocNormal.setType(locNormal.getType());
+                    logLocNormal.setMnemonic(locNormal.getMnemonic());
+                    logLocNormal.setSupplier(locNormal.getSupplier());
+                    logLocNormal.setWarehouse(locNormal.getWarehouse());
+                    logLocNormal.setWarehouseName(locNormal.getWarehouseName());
+                    logLocNormal.setBrand(locNormal.getBrand());
+                    logLocNormal.setAltme(locNormal.getAltme());
+                    logLocNormal.setBname(locNormal.getBname());
+                    logLocNormal.setMemo(locNormal.getMemo());
+                    logLocNormal.setState("2");
+                    // 鐢熸垚鍑哄簱璁板綍
+//                    locNormalService.insert(logLocNormal);
+                    // 鏇存柊鍘熷厛骞充粨璁板綍
+                    locNormalService.updateLocNormal(locNormal.getMatnr(), locNormal.getAnfme().subtract(locNormals.getAnfme()), modiUser, modiTime, locNormal.getId());
+                    // 鐢熸垚骞充粨鍑哄叆搴撹褰�
+                    LocNormalLog locLog = new LocNormalLog();
+                    VersionUtils.setLocNormalLog(locLog, locNormals);
+                    locLog.setAnfme(locNormals.getAnfme().doubleValue());
+                    locLog.setIoType(2);
+                    locLog.setCreateTime(new Date());
+                    locLog.setCreateUser(modiUser);
+                    if (!locNormalLogService.insert(locLog)) {
+                        String logStr = JSON.toJSONString(locLog);
+                        log.info("骞充粨鍑哄簱璁板綍鎻掑叆澶辫触,鏁版嵁:" + logStr);
+                    }
+                } else {
+                    // 鎶婂搴旂墿鏂欏钩浠撳簱瀛樺嚭搴�
+                    locNormalService.outLocNormal(locNormals.getMatnr(), modiUser, modiTime, locNormals.getId());
+                }
+            }
+
+//            Integer FInterI = outStockService.queryOutStockFInterID(param.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
+
+            //鏇存柊ASRS鍑哄簱閫氱煡妗f槑缁嗗嚭搴撴暟閲�
+            Wrapper wrapper = new EntityWrapper<OutStockBillEntry>().eq("FInterID",FInterI).eq("Fnumber",locNormals.getMatnr());
+            OutStockBillEntry outStockBillEntry = outStockService.selectOne(wrapper);
+            outStockBillEntry.setFAuxCommitQty(outStockBillEntry.getFAuxCommitQty().add(locNormals.getAnfme()));
+            outStockBillEntry.setFAmount(outStockBillEntry.getFAmount().add(locNormals.getAnfme()));  //鍊熺敤famount瀛楁锛屾帶鍒朵笅鍙戝嚭搴撲换鍔℃暟閲�
+            outStockBillEntry.setFAuxQty(outStockBillEntry.getFAuxQty().subtract(locNormals.getAnfme()));
+            if(!outStockService.update(outStockBillEntry,wrapper)){
+                throw new CoolException("鏇存柊鍑哄簱閫氱煡妗f槑缁嗗け璐FInterID="+FInterI+",Fnumber="+locNormals.getMatnr()+"]");
+            }
+
+            // erp涓棿琛ㄦ洿鏂版暟鎹�
+            if (!erpService.incrementCPakOut(FInterI, locNormals.getMatnr(), locNormals.getAnfme().doubleValue(), param.getSupplier())) {
+                log.error("鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={},FBillNo={}]澶辫触", locNormals.getMatnr(), param.getSupplier());
+                throw new CoolException("鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr=" + locNormals.getMatnr() + ",FBillNo=" + param.getSupplier() + "]澶辫触");
+            }
+
+        }
+        return R.ok("骞充粨鍑哄簱鎴愬姛");
+    }
 }

--
Gitblit v1.9.1