From 69abbfbdbda77af152490e47851622905df7eb8e Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期六, 02 十二月 2023 20:35:52 +0800
Subject: [PATCH] feat: 部门物品回退
---
consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java | 2
consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java | 2
consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java | 3
consum-base/src/main/java/com/consum/base/core/utils/CommonUtil.java | 2
consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java | 41 ++---
consum-base/src/main/java/com/consum/base/core/DepUsingFormBackCoreServiceImpl.java | 338 ++++++++++++++++++++++++++++++++++++++++++++++++
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java | 4
7 files changed, 360 insertions(+), 32 deletions(-)
diff --git a/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java b/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java
index 259a48d..a2fe8e1 100644
--- a/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/UsingFormBackController.java
@@ -40,7 +40,7 @@
if (sysInfo == null) {
return ResponseValue.error("璇峰厛鐧诲綍");
}
- usingFormBackService.add(usingFormBackParam, sysInfo);
+ usingFormBackService.add(usingFormBackParam, sysInfo,this.getCurrentUser());
return ResponseValue.success();
}
diff --git a/consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java b/consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
index 1a2d47f..2316f69 100644
--- a/consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
@@ -114,7 +114,7 @@
Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
int goodsModelNum = 0;
synchronized (warehouseModelLockObj) {
- goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, null);
+ goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 2, null);
for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
// 璋冩嫧鍗曚俊鎭�
Long transBusinessId = (Long) depFormScrappedModel.get("TRANS_BUSINESS_ID");
diff --git a/consum-base/src/main/java/com/consum/base/core/DepUsingFormBackCoreServiceImpl.java b/consum-base/src/main/java/com/consum/base/core/DepUsingFormBackCoreServiceImpl.java
new file mode 100644
index 0000000..171a064
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/core/DepUsingFormBackCoreServiceImpl.java
@@ -0,0 +1,338 @@
+package com.consum.base.core;
+
+import cn.hutool.core.convert.Convert;
+import com.consum.base.core.service.LWhWarningCoreServiceImpl;
+import com.consum.base.core.utils.IdUtil;
+import com.consum.base.core.utils.LockManage;
+import com.consum.base.service.*;
+import com.consum.model.po.*;
+import com.iplatform.model.po.S_user_core;
+import com.walker.infrastructure.utils.CollectionUtils;
+import com.walker.web.ResponseValue;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName DepFormScrappedCoreServiceImpl
+ * @Author cy
+ * @Date 2023/12/2
+ * @Description
+ * @Version 1.0
+ **/
+@Service
+@Slf4j
+@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+public class DepUsingFormBackCoreServiceImpl {
+ @Resource
+ private GoodsBaseServiceImpl goodsBaseService;
+ @Resource
+ private LWhGoodsService lWhGoodsService;
+ @Resource
+ private LWhGoodsRecordDetailsService lWhGoodsRecordDetailsService;
+ @Resource
+ private LWhGoodsRecordService lWhGoodsRecordService;
+ @Resource
+ private LWarehouseFlowService lWarehouseFlowService;
+ @Resource
+ private LWhWarningCoreServiceImpl lWhWarningCoreService;
+
+ /**
+ * 鏍规嵁鎶ュ簾鍗曟姤搴燂細淇敼璋冩嫧鍗曚腑鍙��鍥炴暟閲忥紱浠撳簱涓墿鍝佺姸鎬佽缃负鎶ュ簾;鐢熸垚涓�涓繚璐规祦姘达紱鏇存柊鎶ュ簾鍨嬪彿琛ㄤ腑锛岀墿鍝佷环鍊�
+ * <p>
+ * 1.鎵惧埌闇�瑕侀��鍥炵殑鍨嬪彿锛� 鎸夊悓涓�涓�
+ *
+ * @param lWhFormBackId
+ */
+ public ResponseValue updateBack(Long lWhFormBackId, S_user_core currentUser, Long dealTime) {
+ // 鏌ヨ鎶ュ簾鍗曠姸鎬�
+ UsingFormBack depFormScrapped = new UsingFormBack(lWhFormBackId);
+ depFormScrapped = goodsBaseService.get(depFormScrapped);
+ //鐘舵�� 1=寰呮姤搴燂紱2=宸叉姤搴�
+ if (depFormScrapped == null || depFormScrapped.getStates() != 1) {
+ return ResponseValue.error("璇锋鏌ユ姤搴熷崟");
+ }
+
+ Long userId = currentUser.getId();
+ String nickName = currentUser.getNick_name();
+
+ // 鏍规嵁鎶ュ簾鍗� 鏌ヨ闇�瑕佹姤搴熺殑鍨嬪彿鏁伴噺
+ List<Map<String, Object>> bfModelList = goodsBaseService.select("SELECT scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,scrGoods.TRANS_BUSINESS_ID,scrGoods.BUSINESS_FORM_CODE,scrGoods.TRANS_OUT_WAREHOUSE_TYPE,scrGoods.TRANS_OUT_WAREHOUSE_ID,scrGoods.BASE_GOODS_TEMPLATE_ID,scrGoods.BASE_GOODS_TEMPLATE_NAME,goodsModel.id formScrappedModelId,goodsModel.BASE_GOODS_TEMPLATE_ID,goodsModel.BASE_GOODS_MODELS_ID,goodsModel.COUNTS,goodsModel.PROCURE_MODEL_USER_ID,goodsModel.GOODS_USER_NAME,goodsModel.BASE_GOODS_MODELS_NAME FROM USING_FORM_BACK_GOODS scrGoods LEFT JOIN USING_FORM_BACK_MODEL goodsModel ON scrgoods.id=goodsModel.USING_FORM_BACK_GOODS_ID WHERE scrGoods.USING_FORM_BACK_ID=?", new Object[]{lWhFormBackId});
+ Map<Object, List<Map<String, Object>>> groupByModelIdMap = bfModelList.stream()
+ .collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
+ Integer warehouseType = depFormScrapped.getOutWarehouseType();
+ Long warehouseId = depFormScrapped.getOutWarehouseId();
+ String warehouseName = depFormScrapped.getOutWarehouseName();
+
+ // 娴佹按璁板綍鎬昏〃ID
+ long lWarehouseFlowId = IdUtil.generateId();
+
+ // 鏇存柊 鎶ュ簾鍗曠墿鍝併�怐EP_FORM_SCRAPPED_MODEL銆戜腑浠锋牸鐨刲ist
+ Map<Long, Long> modelTotalPriceMap = new HashMap<>();
+
+ ArrayList<LWhGoodsRecord> lWhGoodsRecordList = new ArrayList<>();
+
+ //閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鏍规嵁璋冩嫧鍗�+鍨嬪彿 鏇存柊 鍦ㄧ敤鏁伴噺
+ Map<String, Integer> procureModelMap = new HashMap<>();
+
+ for (Object key : groupByModelIdMap.keySet()) {
+ Long modelTotalPrice = 0l;
+ //瑕佹姤搴熺殑鎬绘暟閲�
+ int modelTotalNum = 0;
+
+ Long baseGoodsModelsId = (Long) key;
+ List<Map<String, Object>> eachFfModelList = groupByModelIdMap.get(key);
+ Map<String, Object> eachFfModelBase = eachFfModelList.get(0);
+ Long tempGoodsId = Convert.toLong(eachFfModelBase.get("BASE_GOODS_TEMPLATE_ID"));
+ String goodsName = Convert.toStr(eachFfModelBase.get("BASE_GOODS_TEMPLATE_NAME"));
+ String modelName = Convert.toStr(eachFfModelBase.get("BASE_GOODS_MODELS_NAME"));
+
+ // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD
+ long whGoodsRecordId = IdUtil.generateId();
+ LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord();
+ whGoodsRecord.setId(whGoodsRecordId);
+ whGoodsRecord.setWarehouseType(warehouseType);
+ whGoodsRecord.setWarehouseId(warehouseId);
+ whGoodsRecord.setWarehouseFlowId(lWarehouseFlowId);
+ whGoodsRecord.setBaseGoodsTemplateId(tempGoodsId);
+ whGoodsRecord.setGoodsTemplateName(goodsName);
+ whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
+ whGoodsRecord.setBaseGoodsModelsName(modelName);
+ whGoodsRecord.setDealTime(dealTime);
+ //鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
+ whGoodsRecord.setThisType(2);
+
+ //閫氳繃LockManage鑾峰緱閿�
+ Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
+ int goodsModelNum = 0;
+ synchronized (warehouseModelLockObj) {
+ goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 2, null);
+ for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
+ // 璋冩嫧鍗曚俊鎭�
+ Long transBusinessId = (Long) depFormScrappedModel.get("TRANS_BUSINESS_ID");
+ String nowUserName = Convert.toStr(depFormScrappedModel.get("GOODS_USER_NAME"));
+ Integer counts = Convert.toInt(depFormScrappedModel.get("COUNTS"));
+ Long formScrappedModelId = Convert.toLong(depFormScrappedModel.get("formScrappedModelId"));
+
+ modelTotalNum += counts;
+
+ // 鏍规嵁鍒嗗彂鍗曘�佸瀷鍙枫�佷娇鐢ㄤ汉淇℃伅鏌ヨ鐗╁搧淇℃伅
+ List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short) 2, counts);
+ if (CollectionUtils.isEmpty(scrappedGoodsList) || scrappedGoodsList.size() < counts) {
+ log.error("瑕佹姤搴熺殑鐗╁搧鏁伴噺涓嶈冻锛�");
+ // 鎵嬪姩鍥炴粴
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ throw new RuntimeException("鎶ュ簾澶辫触!鍨嬪彿鏁伴噺涓嶈冻");
+ }
+ // 鏀惧叆鐗╁搧ID绛変俊鎭�
+ depFormScrappedModel.put("scrappedGoodsList", scrappedGoodsList);
+
+ Long formScrappedModelPrice = scrappedGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
+ modelTotalPrice += formScrappedModelPrice;
+ // 鏇存柊 鎶ュ簾鍗曠墿鍝併�怐EP_FORM_SCRAPPED_MODEL銆戜腑 浠锋牸
+ modelTotalPriceMap.put(formScrappedModelId, formScrappedModelPrice);
+ //閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鍦ㄧ敤鏁伴噺
+ Integer procureModelNum = Convert.toInt(procureModelMap.get(transBusinessId + "_" + baseGoodsModelsId), 0);
+ procureModelMap.put(transBusinessId + "_" + baseGoodsModelsId, counts + procureModelNum);
+
+ // 姹囨�诲嚭闇�瑕佷慨鏀圭姸鎬佺殑鐗╁搧id
+ List<Long> srappedGoodsIds = scrappedGoodsList.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
+
+ // 璁剧疆鐗╁搧涓烘姤搴熺姸鎬�
+// lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3);
+ // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
+ lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 2);
+ }
+ }
+
+ whGoodsRecord.setInitialCount(goodsModelNum);
+ whGoodsRecord.setEndCount(goodsModelNum - modelTotalNum);
+ whGoodsRecord.setThisCount(modelTotalNum);
+ whGoodsRecord.setTotalPrice(modelTotalPrice);
+// lWhGoodsRecordService.insert(whGoodsRecord);
+ lWhGoodsRecordList.add(whGoodsRecord);
+ }
+
+ // 鎻掑叆鎬绘祦姘�
+ LWarehouseFlow warehouseFlow = new LWarehouseFlow();
+ warehouseFlow.setId(lWarehouseFlowId);
+ warehouseFlow.setWarehouseType(warehouseType);
+ warehouseFlow.setWarehouseId(warehouseId);
+ warehouseFlow.setWarehouseName(warehouseName);
+ warehouseFlow.setThisType(2);
+ warehouseFlow.setBusinessType(WhBusinessEnum.BAOFEI.getValue() + 0);
+ warehouseFlow.setBusinessFormId(lWhFormBackId);
+ warehouseFlow.setOperatorId(userId);
+ warehouseFlow.setOperatorName(nickName);
+ warehouseFlow.setDealTime(dealTime);
+ // 鎻掑叆娴佹按鎬昏〃
+ int flowInsertFlag = lWarehouseFlowService.insert(warehouseFlow);
+ if (flowInsertFlag == 0) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return null;
+ }
+ // 鎵归噺鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撱�怢_WH_GOODS_RECORD銆�
+ lWhGoodsRecordService.insertBatch(lWhGoodsRecordList);
+
+ // 鏇存柊鎶ュ簾鍗�
+ depFormScrapped = new UsingFormBack(lWhFormBackId);
+ depFormScrapped.setStates(2);
+ goodsBaseService.update(depFormScrapped);
+
+ // 鏇存柊 鎶ュ簾鍗曠墿鍝併�怐EP_FORM_SCRAPPED_MODEL銆戜腑浠锋牸鐨刲ist
+ List<Object[]> parameterList = new ArrayList<>();
+ for (Map.Entry<Long, Long> entry : modelTotalPriceMap.entrySet()) {
+ Long key = entry.getKey();
+ Long value = entry.getValue();
+ Object[] one = new Object[2];
+ one[0] = value;
+ one[1] = key;
+ parameterList.add(one);
+ }
+ goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList);
+
+ //閲囪喘銆佽皟鎷ㄣ�佸嚭搴撶瓑鐨勭墿鍝佸瀷鍙枫�怢_WH_PROCURE_MODEL銆戜腑 鏍规嵁璋冩嫧鍗�+鍨嬪彿 鏇存柊 鍦ㄧ敤鏁伴噺
+ List<Object[]> procureModelParameterList = new ArrayList<>();
+ for (Map.Entry<String, Integer> entry : procureModelMap.entrySet()) {
+ String key = entry.getKey();
+ Integer modelUseingNum = entry.getValue();
+ String[] strings = key.split("_");
+ String transBusinessId = strings[0];
+ String baseGoodsModelsId = strings[1];
+ Object[] one = new Object[4];
+ one[0] = modelUseingNum;
+ one[1] = transBusinessId;
+ one[2] = baseGoodsModelsId;
+ one[3] = modelUseingNum;
+ procureModelParameterList.add(one);
+ StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL set USE_COUNT=USE_COUNT-");
+ sb.append(modelUseingNum).append(" where BUSINESS_TYPE=4 and BUSINESS_ID=");
+ sb.append(transBusinessId).append(" and BASE_GOODS_MODELS_ID=");
+ sb.append(baseGoodsModelsId).append(" and USE_COUNT-");
+ sb.append(modelUseingNum).append(" >=0");
+ goodsBaseService.update(sb.toString());
+ }
+// goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL set USE_COUNT=USE_COUNT-? where BUSINESS_TYPE=4 and BUSINESS_ID=? and BASE_GOODS_MODELS_ID=? and USE_COUNT=USE_COUNT-? >0", parameterList);
+
+
+ // 鎿嶄綔鍏ュ簱锛屾鏃惰鎸夌墿鍝佹墍灞炰粨搴� 鐢熸垚涓嶅悓浠撳簱鍏ュ簱鐨勬祦姘�
+ Map<String, List<Map<String, Object>>> groupByOutWarehouseIdMap = bfModelList.stream()
+ .collect(Collectors.groupingBy(map -> map.get("TRANS_OUT_WAREHOUSE_TYPE") + "_" + map.get("TRANS_OUT_WAREHOUSE_ID")));
+ //姣忎釜浠撳簱涓�涓祦姘磋〃
+ ArrayList<LWarehouseFlow> flowArrayList = new ArrayList<>();
+ ArrayList<LWhGoodsRecord> flowRecordArrayList = new ArrayList<>();
+
+ for (String outWarehouseTypeAndId : groupByOutWarehouseIdMap.keySet()) {
+ List<Map<String, Object>> eachWareHouseList = groupByOutWarehouseIdMap.get(outWarehouseTypeAndId);
+ Map<String, Object> eachWarehouseModelMap = eachWareHouseList.get(0);
+
+// Integer inWareHouseType = Convert.toInt(eachWarehouseModelMap.get("TRANS_OUT_WAREHOUSE_TYPE"));
+ Long inWarehouseId = Convert.toLong(eachWarehouseModelMap.get("TRANS_OUT_WAREHOUSE_ID"));
+ String inWarehouseName = null;
+ BaseWarehouse baseWarehouse = goodsBaseService.get(new BaseWarehouse(inWarehouseId));
+ if (baseWarehouse != null) {
+ inWarehouseName = baseWarehouse.getWarehouseName();
+ }
+
+ // 姣忎釜浠撳簱涓�涓祦姘磋〃
+ LWarehouseFlow inWarehouseFlow = new LWarehouseFlow();
+ // 娴佹按璁板綍鎬昏〃ID
+ long inWarehouseFlowId = IdUtil.generateId();
+ inWarehouseFlow.setId(inWarehouseFlowId);
+ inWarehouseFlow.setWarehouseType(0);
+ inWarehouseFlow.setWarehouseId(inWarehouseId);
+ inWarehouseFlow.setWarehouseName(inWarehouseName);
+ inWarehouseFlow.setThisType(1);
+ inWarehouseFlow.setBusinessType(WhBusinessEnum.BAOFEI.getValue() + 0);
+ inWarehouseFlow.setBusinessFormId(lWhFormBackId);
+ inWarehouseFlow.setOperatorId(userId);
+ inWarehouseFlow.setOperatorName(nickName);
+ inWarehouseFlow.setDealTime(dealTime);
+ flowArrayList.add(inWarehouseFlow);
+
+ //鎸夊瀷鍙峰垎 姣忎釜鍨嬪彿涓�涓� L_WH_GOODS_RECORD
+ Map<Object, List<Map<String, Object>>> eachWareHouseModelMap = eachWareHouseList.stream()
+ .collect(Collectors.groupingBy(map -> map.get("BASE_GOODS_MODELS_ID")));
+ for (Object key : eachWareHouseModelMap.keySet()) {
+ Long baseGoodsModelsId = (Long) key;
+
+ List<Map<String, Object>> eachFfModelList = eachWareHouseModelMap.get(baseGoodsModelsId);
+ Map<String, Object> eachFfModelBase = eachFfModelList.get(0);
+ Long tempGoodsId = Convert.toLong(eachFfModelBase.get("BASE_GOODS_TEMPLATE_ID"));
+ String goodsName = Convert.toStr(eachFfModelBase.get("BASE_GOODS_TEMPLATE_NAME"));
+ String modelName = Convert.toStr(eachFfModelBase.get("BASE_GOODS_MODELS_NAME"));
+
+ // 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD
+ long whGoodsRecordId = IdUtil.generateId();
+ LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord();
+ whGoodsRecord.setId(whGoodsRecordId);
+ whGoodsRecord.setWarehouseType(0);
+ whGoodsRecord.setWarehouseId(inWarehouseId);
+ whGoodsRecord.setWarehouseFlowId(inWarehouseFlowId);
+ whGoodsRecord.setBaseGoodsTemplateId(tempGoodsId);
+ whGoodsRecord.setGoodsTemplateName(goodsName);
+ whGoodsRecord.setBaseGoodsModelsId(baseGoodsModelsId);
+ whGoodsRecord.setBaseGoodsModelsName(modelName);
+ whGoodsRecord.setDealTime(dealTime);
+ //鏈璋冩暣绫诲瀷 1=璋冨锛�2=璋冨噺
+ whGoodsRecord.setThisType(1);
+ //閫氳繃LockManage鑾峰緱閿�
+ Object warehouseModelLockObj = LockManage.acquireLock(0, inWarehouseId, baseGoodsModelsId);
+ int goodsModelNum = 0;
+ // 瀛樻斁鎵�鏈夌殑鐗╁搧id 浠锋牸绛変俊鎭�
+ List<Map<String, Object>> scrappedAllGoodsList = new ArrayList<>();
+ synchronized (warehouseModelLockObj) {
+ //鏌ヨ鏈熷垵鏁伴噺
+ goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, inWarehouseId, baseGoodsModelsId, 1, null);
+ for (Map<String, Object> depFormScrappedModel : eachFfModelList) {
+ scrappedAllGoodsList.addAll((List<Map<String, Object>>) depFormScrappedModel.get("scrappedGoodsList"));
+ }
+ // 姹囨�诲嚭闇�瑕佷慨鏀圭姸鎬佺殑鐗╁搧id
+ List<Long> srappedGoodsIds = scrappedAllGoodsList.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
+
+ // 璁剧疆鐗╁搧涓哄叆搴撴湭鍒嗗彂锛� 骞惰缃墍灞炰粨搴�
+ lWhGoodsService.modGoodsTransfering(srappedGoodsIds, 0, inWarehouseId, warehouseName, 1);
+ // 浣跨敤浜轰俊鎭�
+
+ // 鎵归噺鎻掑叆 杩涘嚭搴撴祦姘存槑缁哰L_WH_GOODS_RECORD_DETAILS]
+ lWhGoodsRecordDetailsService.sameGoodsInsertMore(srappedGoodsIds, whGoodsRecordId, (short) 1);
+ }
+ // 涓婃柟鐗╁搧鐨勪环鏍�
+ Long formScrappedModelPrice = scrappedAllGoodsList.stream().mapToLong(map -> (long) map.get("price")).sum();
+ whGoodsRecord.setInitialCount(goodsModelNum);
+ whGoodsRecord.setEndCount(goodsModelNum + scrappedAllGoodsList.size());
+ whGoodsRecord.setThisCount(scrappedAllGoodsList.size());
+ whGoodsRecord.setTotalPrice(formScrappedModelPrice);
+ //lWhGoodsRecordService.insert(whGoodsRecord);
+ flowRecordArrayList.add(whGoodsRecord);
+ }
+
+ // 鎻愬彇baseGoodsModelsId骞舵斁鍏ユ柊鐨凩ist涓�
+ List<Long> allChangModelList = eachWareHouseList.stream()
+ .map(map -> Convert.toLong(map.get("BASE_GOODS_MODELS_ID")))
+ .distinct()
+ .collect(Collectors.toList());
+ //褰撳簱瀛樺彉鍔ㄦ椂璋冪敤璇ユ柟娉�
+ lWhWarningCoreService.updateKuCun((short) 0, inWarehouseId, allChangModelList, null, dealTime);
+ }
+ // 鎻掑叆娴佹按鎬昏〃
+ flowInsertFlag = lWarehouseFlowService.insertBatch(flowArrayList);
+ if (flowInsertFlag == 0) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return null;
+ }
+ // 鎵归噺鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撱�怢_WH_GOODS_RECORD銆�
+ lWhGoodsRecordService.insertBatch(flowRecordArrayList);
+
+ return null;
+ }
+}
diff --git a/consum-base/src/main/java/com/consum/base/core/utils/CommonUtil.java b/consum-base/src/main/java/com/consum/base/core/utils/CommonUtil.java
index 2a97310..d555066 100644
--- a/consum-base/src/main/java/com/consum/base/core/utils/CommonUtil.java
+++ b/consum-base/src/main/java/com/consum/base/core/utils/CommonUtil.java
@@ -246,7 +246,7 @@
Field[] fields = sourceClass.getDeclaredFields();
for (Field field : fields) {
String fieldName = field.getName();
- if (!fieldName.startsWith("isset__")) {
+ if (!fieldName.startsWith("isset_")) {
continue;
}
try {
diff --git a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
index a9989b2..dfffa9c 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -1,9 +1,9 @@
package com.consum.base.service;
+import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.LockManage;
import com.consum.model.po.*;
import com.walker.infrastructure.utils.CollectionUtils;
-import com.walker.infrastructure.utils.NumberGenerator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -112,7 +112,7 @@
String goodsUnit = (String) tempGoodsInfo.get("unit");
// 鎻掑叆 鍚勮鏍肩墿鍝佺殑杩涘嚭搴撹褰� L_WH_GOODS_RECORD
- long whGoodsRecordId = NumberGenerator.getLongSequenceNumberNano();
+ long whGoodsRecordId = IdUtil.generateId();
LWhGoodsRecord whGoodsRecord = new LWhGoodsRecord();
whGoodsRecord.setId(whGoodsRecordId);
whGoodsRecord.setWarehouseId(warehouseId);
diff --git a/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java b/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java
index aa5741f..4003904 100644
--- a/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java
+++ b/consum-base/src/main/java/com/consum/base/service/UsingFormBackService.java
@@ -5,6 +5,7 @@
import com.consum.base.pojo.request.UsingFormBackParam;
import com.consum.base.pojo.response.UsingFormBackDetailVO;
import com.consum.model.po.FinSysTenantUser;
+import com.iplatform.model.po.S_user_core;
import com.walker.jdbc.service.BaseService;
/**
@@ -15,7 +16,7 @@
*/
public interface UsingFormBackService extends BaseService {
- void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo);
+ void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo, S_user_core currentUser);
PageUtil selectPageByList(UsingFormBackQry usingFormBackParam);
diff --git a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
index 85d1297..e00cb1f 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -2,6 +2,7 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.core.DepUsingFormBackCoreServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
@@ -11,40 +12,26 @@
import com.consum.base.pojo.request.UsingFormBackGoodsInfo;
import com.consum.base.pojo.request.UsingFormBackParam;
import com.consum.base.pojo.request.baseGoodModel;
-import com.consum.base.pojo.response.BaseGoodsTemplateInfo;
-import com.consum.base.pojo.response.UseInfo;
-import com.consum.base.pojo.response.UsingFormBackDetailListVO;
-import com.consum.base.pojo.response.UsingFormBackDetailVO;
-import com.consum.base.pojo.response.UsingFormBackGoodsTemplateInfo;
-import com.consum.base.pojo.response.UsingFormBackModelInfo;
-import com.consum.base.pojo.response.UsingFormBackVO;
-import com.consum.base.service.BaseCategoryService;
-import com.consum.base.service.FinSysTenantDepartmentService;
-import com.consum.base.service.LWhFormTransferService;
-import com.consum.base.service.UsingFormBackGoodsService;
-import com.consum.base.service.UsingFormBackModelService;
-import com.consum.base.service.UsingFormBackService;
-import com.consum.model.po.BaseCategory;
-import com.consum.model.po.FinSysTenantDepartment;
-import com.consum.model.po.FinSysTenantUser;
-import com.consum.model.po.LWhFormTransfer;
-import com.consum.model.po.UsingFormBack;
-import com.consum.model.po.UsingFormBackGoods;
-import com.consum.model.po.UsingFormBackModel;
+import com.consum.base.pojo.response.*;
+import com.consum.base.service.*;
+import com.consum.model.po.*;
+import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* @author asus
@@ -67,9 +54,10 @@
private FinSysTenantDepartmentService finSysTenantDepartmentService;
@Autowired
private LWhFormTransferService lWhFormTransferService;
-
+ @Resource
+ private DepUsingFormBackCoreServiceImpl depUsingFormBackCoreService;
@Override
- public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo) {
+ public void add(UsingFormBackParam usingFormBackParam, FinSysTenantUser sysInfo, S_user_core currentUser) {
Long departmentId = usingFormBackParam.getDepartmentId();
FinSysTenantDepartment department = finSysTenantDepartmentService.getById(departmentId);
@@ -135,6 +123,7 @@
}
+ depUsingFormBackCoreService.updateBack(usingFormBackId ,currentUser,DateUtils.getDateTimeNumber(System.currentTimeMillis()));
}
@Override
--
Gitblit v1.9.1