From 46136bb08f496cf439c734a1a7e1f38feb6c6d29 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期三, 29 十一月 2023 19:02:57 +0800
Subject: [PATCH] feat: 发放
---
consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java | 137 +++++++++++++++++++++++++--------------------
consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java | 17 +++--
2 files changed, 85 insertions(+), 69 deletions(-)
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
index dd3ce96..c8830d7 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -72,7 +72,7 @@
* @return 鍑哄簱鍗旾d
*/
@Transactional(rollbackFor = Exception.class)
- public Long createOutFormByTransId(Long whFormTransferId, S_user_core currentUser, Long dealTime) {
+ public Long createOutFormByTransId(Long whFormTransferId, WhBusinessEnum businessEnum, S_user_core currentUser, Long dealTime) {
if (whFormTransferId == null) {
return null;
}
@@ -89,7 +89,7 @@
}
//鐢宠璋冩嫧鐨勭墿鍝�
- List<LWhProcureModel> goodsModelNumList = lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, whFormTransferId);
+ List<LWhProcureModel> goodsModelNumList = lWhProcureModelService.getModelByForm(businessEnum, whFormTransferId);
if (CollectionUtils.isEmpty(goodsModelNumList)) {
log.error("娌℃湁瑕佸叆搴撶殑鐗╁搧");
return null;
@@ -191,21 +191,22 @@
Integer buyTypeT = null;
Integer modGoodsTransferingStatusT = null;
short businessTypeValue = businessType.getValue();
- if (BaseWarehouseParam1.In_OutPutTypeEnum.Transfer_Output.getValue() == businessTypeValue) {
+ if (BaseWarehouseParam1.In_OutPutTypeEnum.Transfer_Output.getValue() == businessTypeValue) {
//璋冩嫧鍑哄簱
queryModelStatusT = 1;
buyTypeT = 1;
lWarehouseFlowBusinessId = lWhFormOutput.getTransBusinessId();
modGoodsTransferingStatusT = 0;
- } else if (BaseWarehouseParam1.In_OutPutTypeEnum.Dept_Lending_Out.getValue() == businessTypeValue) {
+ } else if (BaseWarehouseParam1.In_OutPutTypeEnum.Dept_Lending_Out.getValue() == businessTypeValue) {
// 閮ㄩ棬浠撳簱 鍒嗗彂鍑哄簱
// queryModelStatusT = 2;
- } else if (BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue() == businessTypeValue) {
+ lWarehouseFlowBusinessId = lWhFormOutput.getTransBusinessId();
+ } else if (BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue() == businessTypeValue) {
// 闆舵槦鍑哄簱
queryModelStatusT = 1;
buyTypeT = null;
modGoodsTransferingStatusT = 4;
- }else if (BaseWarehouseParam1.In_OutPutTypeEnum.Inventory_Output.getValue() == businessTypeValue) {
+ } else if (BaseWarehouseParam1.In_OutPutTypeEnum.Inventory_Output.getValue() == businessTypeValue) {
// 鐩樼偣鍑哄簱
queryModelStatusT = 1;
buyTypeT = null;
@@ -304,7 +305,9 @@
lWhFormOutputService.update(lWhFormOutput);
//褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
- lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short) 0), outWarehouseId, allChangModelList, null, dealTime);
+ if (outWarehouseType == 0){
+ lWhWarningCoreService.updateKuCun(Convert.toShort(outWarehouseType, (short) 0), outWarehouseId, allChangModelList, null, dealTime);
+ }
return lWarehouseFlowId;
}
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
index c5573dc..a9cad8f 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
@@ -70,16 +70,6 @@
Long userId = currentUser.getId();
String nickName = currentUser.getNick_name();
long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
-
- // 鍑哄簱鍗旾D
- Long outWarehouseFormId = null;
- try {
- // 鏍规嵁璋冩嫧鍗� 鐢熸垚 鍑哄簱鍗� 杩欐牱灏辫兘鍏敤鍑哄簱
- outWarehouseFormId = lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, currentUser, dealTime);
- } catch (Exception e) {
- log.error(e.getMessage());
- return;
- }
//鍗曟嵁绫诲瀷銆�0浠撳簱璋冩嫧锛�1閮ㄩ棬鍒嗗彂锛�2閮ㄩ棬鐗╁搧鍥為��
Integer businessType = lWhFormTransfer.getBusinessType();
businessType = businessType == null ? 0 : businessType;
@@ -90,6 +80,17 @@
businessEnum = WhBusinessEnum.BUMENFENFA;
} else if (businessType == 2) {
businessEnum = WhBusinessEnum.BUMENTUIHUI;
+ }
+
+ // 鍑哄簱鍗旾D
+ Long outWarehouseFormId = null;
+ try {
+ // 鏍规嵁璋冩嫧鍗� 鐢熸垚 鍑哄簱鍗� 杩欐牱灏辫兘鍏敤鍑哄簱
+ lWhFormTransfer.getBusinessType();
+ outWarehouseFormId = lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, businessEnum, currentUser, dealTime);
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ return;
}
// 鍑哄簱鍗� 鍑哄簱锛岃繑鍥� 鍑哄簱鍗曟祦姘碔d
Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, businessEnum, currentUser, dealTime);
@@ -178,67 +179,77 @@
whGoodsRecord.setDealTime(dealTime);
//閫氳繃LockManage鑾峰緱閿�
Object warehouseModelLockObj = LockManage.acquireLock(inWarehouseType, inWarehouseId, baseGoodsModelsId);
+ List<Long> outGoodsIds = null;
synchronized (warehouseModelLockObj) {
// 鏍规嵁鍑哄簱娴佹按ID 鏌ヨ 鍑哄簱鐨勭墿鍝両D
- List<Long> outGoodsIds = getGoodsidByFlowId(outWarehouseFlowId, oldRecordId);
+ outGoodsIds = getGoodsidByFlowId(outWarehouseFlowId, oldRecordId);
// 搴撳瓨鐗╁搧璇︽儏锛圠_WH_GOODS锛変腑 鐘舵�佽缃负1
lWhGoodsService.modGoodsTransfering(outGoodsIds, inWarehouseType, inWarehouseId, inWarehouseName, goodsStatus);
- if (businessType == 1) {
- // 1閮ㄩ棬鍒嗗彂 姝ゆ椂瑕佸線 鐗╁搧浣跨敤璁板綍銆怢_GOODS_USER_RECORD銆戞坊鍔犳暟鎹�
- //鏌ヨ閮ㄩ棬鍒嗗彂浣跨敤浜�
- LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
- lWhProcureModelUser.setTransBusinessId(whFormTransferId);
- lWhProcureModelUser.setBaseGoodsModelsId(baseGoodsModelsId);
- List<LWhProcureModelUser> goodsUserInfo = goodsBaseService.select(lWhProcureModelUser);
- int totalGoodsNum = goodsUserInfo.stream().mapToInt(LWhProcureModelUser::getGoodsNum).sum();
- if (totalGoodsNum != outGoodsIds.size()) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
-// log.error("鍒涘缓鍏ュ簱鍗曞け璐�");
- }
- //灏嗙墿鍝佸瀷鍙蜂互鍓嶇殑浣跨敤璁板綍璁剧疆涓洪潪鏈�鏂�
- lGoodsUserRecordService.updSetNotLast(outGoodsIds);
- ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
- int startIndex = 0;
- for (LWhProcureModelUser whProcureModelUser : goodsUserInfo) {
- Integer goodsNum = whProcureModelUser.getGoodsNum();
- String nowUserName = whProcureModelUser.getNowUserName();
- Long nowUserPhone = whProcureModelUser.getNowUserPhone();
- Long procureModelUserRecordId = whProcureModelUser.getProcureModelUserRecordId();
- List<Long> goodsIds = outGoodsIds.subList(startIndex, startIndex + goodsNum);
- for (Long goodsId : goodsIds) {
- LGoodsUserRecord tmp = new LGoodsUserRecord();
- tmp.setWhGoodsId(goodsId);
- tmp.setRecordType(recordType);
- tmp.setTransBusinessId(whFormTransferId);
- if (businessType == 1) {
- tmp.setNowUserName(nowUserName);
- tmp.setNowUserPhone(nowUserPhone);
- } else if (businessType == 2) {
- tmp.setNowUserName(null);
- tmp.setNowUserPhone(null);
- }
- tmp.setProcureModelUserRecordId(procureModelUserRecordId);
- tmp.setOperatorId(userId);
- tmp.setOperatorName(nickName);
- tmp.setDealTime(dealTime);
- tmp.setLastRecord(1);
- goodsUserRecordList.add(tmp);
- }
- // 鏇存柊涓嬫爣浣嶇疆
- startIndex += goodsNum;
- }
- //鎵归噺鎻掑叆浣跨敤浜鸿褰�
- lGoodsUserRecordService.insertBatch(goodsUserRecordList);
- }
- //灏嗕繚绠′粨搴撲俊鎭洿鏂板埌 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
- lGoodsWhRecordService.insertNewRecord(outGoodsIds, inWarehouseFlowId, dealTime);
// 鑾峰緱閿佸悗鏌ヨ璇ュ瀷鍙风殑鏈熷垵鏁伴噺
int goodsModelNum = lWhGoodsService.queryGoodsModelNum(inWarehouseType, inWarehouseId, baseGoodsModelsId, 1, null);
whGoodsRecord.setInitialCount(goodsModelNum);
whGoodsRecord.setEndCount(goodsModelNum + whGoodsRecord.getThisCount());
+ long totalAmount = lWhGoodsService.queryGoodsPriceById(outGoodsIds);
+ whGoodsRecord.setTotalPrice(totalAmount);
}
+ if (businessType == 1) {
+// List<Map<String, Object>> modelInfo = baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId);
+
+ // 1閮ㄩ棬鍒嗗彂 姝ゆ椂瑕佸線 鐗╁搧浣跨敤璁板綍銆怢_GOODS_USER_RECORD銆戞坊鍔犳暟鎹�
+ //鏌ヨ閮ㄩ棬鍒嗗彂浣跨敤浜�
+ LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
+ lWhProcureModelUser.setTransBusinessId(whFormTransferId);
+ lWhProcureModelUser.setBaseGoodsModelsId(baseGoodsModelsId);
+ List<LWhProcureModelUser> goodsUserInfo = goodsBaseService.select(lWhProcureModelUser);
+ if (CollectionUtils.isEmpty(goodsUserInfo)){
+ continue;
+ }
+ int totalGoodsNum = goodsUserInfo.stream().filter(item -> item.getGoodsNum() != null).mapToInt(LWhProcureModelUser::getGoodsNum).sum();
+ if (totalGoodsNum != outGoodsIds.size()) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ throw new RuntimeException("鍏ュ簱鍗曞け璐ワ紝浣跨敤浜轰娇鐢ㄦ暟閲忎笌鐗╁搧鏁伴噺涓嶄竴鑷�");
+// log.error("鍒涘缓鍏ュ簱鍗曞け璐�");
+ }
+ //灏嗙墿鍝佸瀷鍙蜂互鍓嶇殑浣跨敤璁板綍璁剧疆涓洪潪鏈�鏂�
+ lGoodsUserRecordService.updSetNotLast(outGoodsIds);
+ ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();
+ int startIndex = 0;
+ for (LWhProcureModelUser whProcureModelUser : goodsUserInfo) {
+ Integer goodsNum = whProcureModelUser.getGoodsNum();
+ String nowUserName = whProcureModelUser.getNowUserName();
+ Long nowUserPhone = whProcureModelUser.getNowUserPhone();
+ Long procureModelUserRecordId = whProcureModelUser.getProcureModelUserRecordId();
+ List<Long> goodsIds = outGoodsIds.subList(startIndex, startIndex + goodsNum);
+ for (Long goodsId : goodsIds) {
+ LGoodsUserRecord tmp = new LGoodsUserRecord();
+ tmp.setWhGoodsId(goodsId);
+ tmp.setRecordType(recordType);
+ tmp.setTransBusinessId(whFormTransferId);
+ if (businessType == 1) {
+ tmp.setNowUserName(nowUserName);
+ tmp.setNowUserPhone(nowUserPhone);
+ } else if (businessType == 2) {
+ tmp.setNowUserName(null);
+ tmp.setNowUserPhone(null);
+ }
+ tmp.setProcureModelUserRecordId(procureModelUserRecordId);
+ tmp.setOperatorId(userId);
+ tmp.setOperatorName(nickName);
+ tmp.setDealTime(dealTime);
+ tmp.setLastRecord(1);
+ goodsUserRecordList.add(tmp);
+ }
+ // 鏇存柊涓嬫爣浣嶇疆
+ startIndex += goodsNum;
+ }
+ //鎵归噺鎻掑叆浣跨敤浜鸿褰�
+ lGoodsUserRecordService.insertBatch(goodsUserRecordList);
+ }
+ //灏嗕繚绠′粨搴撲俊鎭洿鏂板埌 鐗╁搧浠撳簱淇濈璁板綍銆怢_GOODS_WH_RECORD銆�
+ lGoodsWhRecordService.insertNewRecord(outGoodsIds, inWarehouseFlowId, dealTime);
+
+
LWhGoodsRecordDetails lWhGoodsRecordDetails = new LWhGoodsRecordDetails();
lWhGoodsRecordDetails.setWhGoodsRecordId(oldRecordId);
List<LWhGoodsRecordDetails> goodsRecordDetailsList = lWhGoodsRecordDetailsService.select(lWhGoodsRecordDetails);
@@ -262,7 +273,9 @@
lWhFormTransferService.update(lWhFormTransfer);
//褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
- lWhWarningCoreService.updateKuCun(Convert.toShort(inWarehouseType, (short) 0), inWarehouseId, allChangModelList, null, dealTime);
+ if (inWarehouseType == 0){
+ lWhWarningCoreService.updateKuCun(Convert.toShort(inWarehouseType, (short) 0), inWarehouseId, allChangModelList, null, dealTime);
+ }
log.info("璋冩嫧鍗曪細{} 鍏ュ簱瀹屾垚", whFormTransferId);
return;
}
--
Gitblit v1.9.1