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 | 69 ++++++++++++++++++++++++++++++----
1 files changed, 61 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutStockController.java b/src/main/java/com/zy/asrs/controller/OutStockController.java
index ab30dd6..b9b6c03 100644
--- a/src/main/java/com/zy/asrs/controller/OutStockController.java
+++ b/src/main/java/com/zy/asrs/controller/OutStockController.java
@@ -1,6 +1,8 @@
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;
@@ -8,23 +10,30 @@
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;
@@ -41,6 +50,9 @@
private LocNormalService locNormalService;
@Autowired
private ErpService erpService;
+ @Autowired
+ private LocNormalLogService locNormalLogService;
+
/**
*
@@ -83,8 +95,8 @@
*/
@RequestMapping(value = "/outStock/query/locNormalList")
@ManagerAuth
- public R queryMatWithLocNormal(String fbillNo) {
- List<LocNormal> list = locNormalService.queryLocNorlMatnr(fbillNo);
+ public R queryMatWithLocNormal(String fbillNo, String mnemonic,String matnr) {
+ List<LocNormal> list = locNormalService.queryLocNorlMatnr(fbillNo, mnemonic,matnr);
return R.ok(list);
}
@@ -96,15 +108,27 @@
*/
@RequestMapping(value = "/outStock/locNormal")
@ManagerAuth
+ @Transactional
public R outStockLocNormal(@RequestBody LocNormalStockOutParam param) {
Long modiUser = getUserId();
Date modiTime = new Date();
- for (LocNormal locNormals:param.getList()) {
- // erp涓棿琛ㄦ洿鏂版暟鎹�
- Integer FInterI = outStockService.queryOutStockFInterID(param.getSupplier()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿�
- if (!erpService.incrementCPakOut(FInterI, locNormals.getMatnr(), locNormals.getAnfme().doubleValue(), param.getSupplier())) {
- log.info("鏇存柊ERP鎴愬搧鍑哄簱鏁版嵁[matnr={0}]澶辫触", locNormals.getMatnr(), param.getSupplier());
+
+ 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) {
@@ -124,15 +148,44 @@
logLocNormal.setMemo(locNormal.getMemo());
logLocNormal.setState("2");
// 鐢熸垚鍑哄簱璁板綍
- locNormalService.insert(logLocNormal);
+// 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