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