consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -151,8 +151,8 @@ * @Date 2023/10/30 */ @GetMapping("/selectByCategoryId") public ResponseValue querybyCategoryId(Long categoryId) { List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.querybyCategoryId(categoryId); public ResponseValue queryByCategoryId(Long categoryId) { List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryByCategoryId(categoryId); return ResponseValue.success(list); } consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -4,6 +4,7 @@ import com.consum.base.pojo.*; import com.consum.base.service.BaseCategoryServiceImpl; import com.consum.base.service.LWhFormOutputServiceImpl; import com.consum.base.service.LWhProcureModelService; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; @@ -29,6 +30,8 @@ @Autowired private LWhFormOutputServiceImpl lWhFormOutputService; @Autowired private LWhProcureModelService lWhProcureModelService; /** * @Description 新增出库单 @@ -62,15 +65,15 @@ GenericPager genericPager = lWhFormOutputService.queryFormOutputList(param); List<LWhFormOutput> datas = genericPager.getDatas(); ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>(); ArrayList<LWhFormOutputExtend> newDatas = new ArrayList<>(); if (!CollectionUtils.isEmpty(datas)) { datas.forEach(item -> { // 查询型号数量 LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setBusinessType(3); lWhProcureModel.setBusinessId(item.getId()); List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel); LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend(); List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel); LWhFormOutputExtend formProcureExtend = new LWhFormOutputExtend(); BeanUtils.copyProperties(item, formProcureExtend); formProcureExtend.setModels(models); newDatas.add(formProcureExtend); consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputExtend.java
@@ -1,19 +1,21 @@ package com.consum.base.pojo; import com.consum.model.po.LWhFormOutput; import com.consum.model.po.LWhFormProcure; import com.consum.model.po.LWhProcureModel; import java.util.List; /** * @ClassName LWhFormProcureExtend * @Author cy * @Date 2023/10/27 * @Description * @Author 卢庆阳 * @Date 2023/10/30 */ public class LWhFormOutputExtend extends LWhFormProcure { * @Version 1.0 **/ public class LWhFormOutputExtend extends LWhFormOutput { private List<LWhProcureModel> models; private List<LWhFormProcureGoodsParams> procureGoods; public List<LWhProcureModel> getModels() { return models; @@ -23,11 +25,4 @@ this.models = models; } public List<LWhFormProcureGoodsParams> getProcureGoods() { return procureGoods; } public void setProcureGoods(List<LWhFormProcureGoodsParams> procureGoods) { this.procureGoods = procureGoods; } } consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -233,7 +233,7 @@ * @param modelId * @return */ private static String QUERY_GOODSINFO_BY_MODELID = "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 "; private static String QUERY_GOODSINFO_BY_MODELID = "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification,temp.CATEGORY_ID categoryId FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 "; public Map<String, Object> queryGoodsInfoByModelId(Long modelId) { StringBuilder sqlStr = new StringBuilder(QUERY_GOODSINFO_BY_MODELID); @@ -289,10 +289,9 @@ * @Author 卢庆阳 * @Date 2023/10/30 */ public List<BaseGoodsTemplate> querybyCategoryId(Long categoryId) { public List<BaseGoodsTemplate> queryByCategoryId(Long categoryId) { BaseGoodsTemplate goodsTemplate = new BaseGoodsTemplate(); goodsTemplate.setCategoryId(categoryId); List<BaseGoodsTemplate> select = this.select(goodsTemplate); return select; return this.select(goodsTemplate); } } consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
New file @@ -0,0 +1,321 @@ package com.consum.base.service; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.WhBusinessEnum; import com.consum.base.util.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.NumberGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @ClassName LWhFormInventoryCoreService * @Author cy * @Date 2023/11/1 * @Description * @Version 1.0 **/ @Slf4j @Service public class LWhFormInventoryCoreService { private LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods; private LWhFormOutputCoreService lWhFormOutputCoreService; private CodeGeneratorService codeGeneratorService; private LWhFormProcureService lWhFormProcureService; private BaseWarehouseServiceImpl baseWarehouseService; private LWhFormProcureGoodsService lWhFormProcureGoodsService; private LWhProcureModelService lWhProcureModelService; private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; private LWhGoodsService lWhGoodsService; private LWhFormInventoryServiceImpl lWhFormInventoryService; private LWhFormProcureCoreService lWhFormProcureCoreService; private LWhFormOutputServiceImpl lWhFormOutputService; @Autowired public LWhFormInventoryCoreService(LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods, LWhFormOutputCoreService lWhFormOutputCoreService, CodeGeneratorService codeGeneratorService, LWhFormProcureService lWhFormProcureService, BaseWarehouseServiceImpl baseWarehouseService, LWhFormProcureGoodsService lWhFormProcureGoodsService, LWhProcureModelService lWhProcureModelService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsService lWhGoodsService, LWhFormInventoryServiceImpl lWhFormInventoryService, LWhFormProcureCoreService lWhFormProcureCoreService, LWhFormOutputServiceImpl lWhFormOutputService ) { this.lWhFormInventoryGoods = lWhFormInventoryGoods; this.lWhFormOutputCoreService = lWhFormOutputCoreService; this.codeGeneratorService = codeGeneratorService; this.lWhFormProcureService = lWhFormProcureService; this.baseWarehouseService = baseWarehouseService; this.lWhFormProcureGoodsService = lWhFormProcureGoodsService; this.lWhProcureModelService = lWhProcureModelService; this.baseGoodsTemplateService = baseGoodsTemplateService; this.lWhGoodsService = lWhGoodsService; this.lWhFormInventoryService = lWhFormInventoryService; this.lWhFormProcureCoreService = lWhFormProcureCoreService; this.lWhFormOutputService = lWhFormOutputService; } /** * 根据 盘点单 生成 出库单 和 入库单 * 盘点单中 盘盈物品生成入库单,盘亏生成出库单 * * @param whformInventoryId 盘点单id * @return status true/false * errMsg 错误消息 */ @Transactional(rollbackFor = Exception.class) public String createInOutFormByInventoryId(Long whformInventoryId, S_user_core currentUser, FinSysTenantUser sysInfo) { LWhFormInventory lWhFormInventory = lWhFormInventoryService.get(new LWhFormInventory(whformInventoryId)); if (lWhFormInventory == null) { // rtnMap.put("status", false); // rtnMap.put("errMsg", "没有找到盘点单"); return "没有找到盘点单"; } if (lWhFormInventory.getStates() != 1) { // rtnMap.put("status", false); // rtnMap.put("errMsg", "请检查盘点单状态"); return "请检查盘点单状态"; } List<LWhFormInventoryGoods> lWhFormInventoryGoods = this.lWhFormInventoryGoods.getByInventoryId(whformInventoryId); if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) { // rtnMap.put("status", false); // rtnMap.put("errMsg", "没有找到盘点单结果物品"); return "没有找到盘点单结果物品"; } Map<Integer, List<LWhFormInventoryGoods>> inventoryGoodsMap = lWhFormInventoryGoods.stream() .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3) .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult)); if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) { // rtnMap.put("status", true); return null; } Long warehouseId = lWhFormInventory.getWarehouseId(); Long stopTime = lWhFormInventory.getStopTime(); Map<String, Object> inOutMap = new HashMap<>(); for (Map.Entry<Integer, List<LWhFormInventoryGoods>> entry : inventoryGoodsMap.entrySet()) { //盘点结果(1=正常;2=盘盈;3=盘亏) Integer inventoryResult = entry.getKey(); List<LWhFormInventoryGoods> inventoryGoods = entry.getValue(); if (inventoryResult == 2) { // 创建入库单并入库 // 返回入库单号 Map<String, Object> rkMap = createInFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser); if (rkMap == null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // throw new RuntimeException("创建入库单失败"); log.error("创建入库单失败"); // rtnMap.put("status", false); // rtnMap.put("errMsg", "创建入库单失败"); return "创建入库单失败"; } Long inFormByInventoryId = (Long) inOutMap.get("inId"); inOutMap.putAll(rkMap); String errMsg = lWhFormProcureCoreService.doProcure(inFormByInventoryId, currentUser); if (errMsg != null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // throw new RuntimeException(errMsg); log.error("创建入库单失败"); // rtnMap.put("status", false); // rtnMap.put("errMsg", "创建入库单失败"); return "创建入库单失败"; } } else { // 创建出库单并出库 Map<String, Object> ckMap = createOutFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser, sysInfo); if (ckMap == null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // throw new RuntimeException("创建出库单失败"); log.error("创建入库单失败"); // rtnMap.put("status", false); // rtnMap.put("errMsg", "创建入库单失败"); return "创建入库单失败"; } inOutMap.putAll(ckMap); Long lWhFormOutputId = (Long) inOutMap.get("outId"); //2.根据出库单出库 Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, currentUser, stopTime); if (lWarehouseFlowId == null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // throw new RuntimeException("创建出库单失败"); log.error("创建入库单失败"); // rtnMap.put("status", false); // rtnMap.put("errMsg", "创建入库单失败"); return "创建入库单失败"; } } } // lWhFormInventory = new LWhFormInventory(whformInventoryId); lWhFormInventory.setStates(2); lWhFormInventory.setInWarehouseFormId((Long) inOutMap.get("inId")); lWhFormInventory.setInBusinessFormCode((String) inOutMap.get("inCode")); lWhFormInventory.setOutWarehouseFormId((Long) inOutMap.get("outId")); lWhFormInventory.setOutBusinessFormCode((String) inOutMap.get("outCode")); lWhFormInventoryService.update(lWhFormInventory); return null; } /** * 根据信息创建入库单 * * @param warehouseId 仓库ID * @param procureTime 采购时间 * @param currentUser */ private Map<String, Object> createInFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList, S_user_core currentUser) { if (CollectionUtils.isEmpty(inventoryGoodsList)) { return null; } Long whFormProcureId = NumberGenerator.getLongSequenceNumber(); BaseWarehouse baseWarehouse = baseWarehouseService.getById(warehouseId); LWhFormProcure lWhFormProcure = new LWhFormProcure(); lWhFormProcure.setId(whFormProcureId); String inCode = codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.Procure_Warehouse.getValue(), 10); lWhFormProcure.setBusinessFormCode(inCode); lWhFormProcure.setWarehouseId(warehouseId); lWhFormProcure.setWarehouseName(baseWarehouse.getWarehouseName()); lWhFormProcure.setBuyerId(currentUser.getId()); lWhFormProcure.setBuyerName(currentUser.getNick_name()); lWhFormProcure.setProcureTime(procureTime); lWhFormProcure.setProcureDoc(null); lWhFormProcure.setBuyType(2); lWhFormProcure.setStates(1); lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId()); lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName()); int result = lWhFormProcureService.insert(lWhFormProcure); if (result == 0) { return null; } ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>(); ArrayList<LWhProcureModel> whProcureModeLlist = new ArrayList<>(); for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) { Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId(); Long baseGoodsTemplateId = inventoryGoods.getBaseGoodsTemplateId(); //查询型号信息 Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId); Long baseCategoryId = Long.valueOf(tempGoodsInfo.get("categoryid") + ""); LWhFormProcureGoods procureGood = new LWhFormProcureGoods(); long fromProcureGoodsId = NumberGenerator.getLongSequenceNumber(); procureGood.setId(fromProcureGoodsId); procureGood.setWhFormProcureId(whFormProcureId); procureGood.setBaseCategoryId(baseCategoryId); procureGood.setBaseGoodsTemplateId(baseGoodsTemplateId); procureGood.setGoodsTemplateName(null); procureGood.setSupplier(null); procureGood.setSort(null); Integer counts = inventoryGoods.getErrorCounts(); if (counts == null || counts <= 0) { continue; } // 查询型号库存 int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null); LWhProcureModel model = new LWhProcureModel(); model.setId(NumberGenerator.getLongSequenceNumber()); model.setFromProcureGoodsId(fromProcureGoodsId); model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0); model.setBusinessId(whFormProcureId); model.setBaseGoodsModelsId(baseGoodsModelsId); model.setPrice(0l); model.setCounts(counts); model.setWorehouseCount(goodsModelNum); model.setSupplier(null); whProcureModeLlist.add(model); procureGoodList.add(procureGood); } lWhFormProcureGoodsService.insertBatch(procureGoodList); lWhProcureModelService.insertBatch(whProcureModeLlist); HashMap<String, Object> rtnMap = new HashMap<>(); rtnMap.put("inId", whFormProcureId); rtnMap.put("inCode", inCode); return rtnMap; } /** * 根据信息创建出库单 * * @param warehouseId 仓库ID * @param procureTime 出库时间 * @param currentUser */ private Map<String, Object> createOutFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList, S_user_core currentUser, FinSysTenantUser sysInfo) { if (CollectionUtils.isEmpty(inventoryGoodsList)) { return null; } //1.新增出库单记录 LWhFormOutput lWhFormOutput = new LWhFormOutput(); //出入库id long lWhFormOutputId = IdUtil.generateId(); lWhFormOutput.setId(lWhFormOutputId); lWhFormOutput.setWarehouseId(warehouseId); //根据仓库id查询仓库 BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId); if (warehouse == null) { log.error("仓库id不存在"); return null; } lWhFormOutput.setWarehouseName(warehouse.getWarehouseName()); String outCode = codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.OutPut_Warehouse.getValue(), 10); lWhFormOutput.setOutputCode(outCode); lWhFormOutput.setOutputName("盘点出库"); lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId())); lWhFormOutput.setAgencyName(sysInfo.getTenantName()); lWhFormOutput.setOperatorId(sysInfo.getId()); lWhFormOutput.setOperatorName(sysInfo.getUserName()); lWhFormOutput.setDealTime(procureTime); lWhFormOutput.setStates(1); int flag1 = lWhFormOutputService.insert(lWhFormOutput); if (flag1 != 1) { return null; } for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) { Long baseGoodsModelsId = inventoryGoods.getBaseGoodsModelsId(); Integer counts = inventoryGoods.getErrorCounts(); if (counts == null || counts <= 0) { continue; } //根据物品型号查询物品库存 int goodsNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null); //新增L_WH_PROCURE_MODEL记录 LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setId(IdUtil.generateId()); lWhProcureModel.setBusinessType(3); lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId); lWhProcureModel.setCounts(counts); lWhProcureModel.setWorehouseCount(goodsNum); lWhProcureModelService.insert(lWhProcureModel); } HashMap<String, Object> rtnMap = new HashMap<>(); rtnMap.put("outId", lWhFormOutputId); rtnMap.put("outCode", outCode); return rtnMap; } } consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -279,6 +279,12 @@ if (flowInsertFlag == 0) { return null; } // 向出库单 插入 进出库流水总表ID lWhFormOutput = new LWhFormOutput(outWarehouseFormId); lWhFormOutput.setStates(2); lWhFormOutput.setWarehouseFlowId(lWarehouseFlowId); lWhFormOutputService.update(lWhFormOutput); return lWarehouseFlowId; } consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -1,5 +1,7 @@ package com.consum.base.service; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.param.BaseWarehouseParam1; import com.consum.base.pojo.LWhFormOutputParam; import com.consum.base.pojo.LWhProcureModelParams; @@ -29,6 +31,8 @@ @Service public class LWhFormOutputServiceImpl extends BaseServiceImpl { @Autowired private CodeGeneratorService codeGeneratorService; @Autowired private BaseWarehouseServiceImpl baseWarehouseService; @Autowired @@ -142,84 +146,13 @@ * @Author 卢庆阳 * @Date 2023/10/27 */ // public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { // //1.新增出库单记录 // LWhFormOutput lWhFormOutput = new LWhFormOutput(); // //出入库id // long lWhFormOutputId = IdUtil.generateId(); // lWhFormOutput.setId(lWhFormOutputId); // Long warehouseId = param.getWarehouseId(); // lWhFormOutput.setWarehouseId(warehouseId); // //根据仓库id查询仓库 // BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId); // if (warehouse == null) { // log.error("仓库id不存在"); // return 0; // } // lWhFormOutput.setWarehouseName(warehouse.getWarehouseName()); // lWhFormOutput.setOutputCode(BaseWarehouseParam1.In_OutPutTypeEnum.Fragmentary_Output.getValue() + ""); // lWhFormOutput.setOutputName("零星出库"); // lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId())); // lWhFormOutput.setAgencyName(sysInfo.getTenantName()); // lWhFormOutput.setOperatorId(sysInfo.getId()); // lWhFormOutput.setOperatorName(sysInfo.getUserName()); // long dateTimeNumber = DateUtils.getDateTimeNumber(System.currentTimeMillis()); // lWhFormOutput.setDealTime(dateTimeNumber); // lWhFormOutput.setStates(1); // int flag1 = this.insert(lWhFormOutput); // // //4.新增l_wh_goods_record记录 // List<LWhGoodsRecord> recordList = param.getList(); // if (CollectionUtils.isEmpty(recordList)) { // log.error("规格型号为空"); // return 0; // } // int flag5 = 0; // for (LWhGoodsRecord record : recordList) { // //根据物品型号查询物品库存 // int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, record.getBaseGoodsModelsId(), (short) 1, null); // // //5.新增L_WH_PROCURE_MODEL记录 // LWhProcureModel lWhProcureModel = new LWhProcureModel(); // lWhProcureModel.setId(IdUtil.generateId()); // lWhProcureModel.setBusinessType(3); // lWhProcureModel.setBaseGoodsModelsId(record.getBaseGoodsModelsId()); // lWhProcureModel.setCounts(record.getThisCount()); // lWhProcureModel.setWorehouseCount(goodsNum); // int res = this.lWhProcureModelService.insert(lWhProcureModel); // flag5 += res; // } // // //2.根据出库单出库 // Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutput.getId(), currentUser, dateTimeNumber); // //3.向出库单 插入 进出库流水总表ID // int flag3 = 0; // if (flag1 > 0) { // LWhFormOutput lWhFormOutput1 = new LWhFormOutput(lWhFormOutputId); // lWhFormOutput1.setWarehouseFlowId(lWarehouseFlowId); // flag3 = this.update(lWhFormOutput1); // } // // //如果有一条记录新增失败,则回滚 // if (flag1 == 0 || flag3 == 0 || flag5 != recordList.size()) { // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // return 0; // } // // return 1; // } /** * @Description 新增出库单 * @Author 卢庆阳 * @Date 2023/10/27 */ public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { //1.新增出库单记录 LWhFormOutput lWhFormOutput = new LWhFormOutput(); //出入库id long lWhFormOutputId = IdUtil.generateId(); lWhFormOutput.setId(lWhFormOutputId); lWhFormOutput.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.OutPut_Warehouse)); Long warehouseId = param.getWarehouseId(); lWhFormOutput.setWarehouseId(warehouseId); //根据仓库id查询仓库 @@ -252,6 +185,7 @@ lWhProcureModel.setBusinessType(3); lWhProcureModel.setBusinessId(lWhFormOutputId); lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); //lWhProcureModel.se lWhProcureModel.setCounts(model.getCounts()); //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null); consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
@@ -68,6 +68,7 @@ int flowInsertFlag = lWarehouseFlowService.buyInsertWareFlow(goodsModelNum, lWhFormProcure, warehouseFlow); if (flowInsertFlag == 1) { // 更新采购单【L_WH_FORM_PROCURE】 whFormProcure = new LWhFormProcure(whFormProcureId); whFormProcure.setStates(2); whFormProcure.setLWarehouseFlowId(lWarehouseFlowId); whFormProcure.setIncomeId(userId); consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
New file @@ -0,0 +1,105 @@ package com.consum.base.service; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.pojo.LWhFormScrappedGoodsParams; import com.consum.base.pojo.LWhFormScrappedParam; import com.consum.base.pojo.LWhProcureModelParams; import com.consum.base.util.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.ArrayList; import java.util.List; /** * @Description 报废单 * @Author 卢庆阳 * @Date 2023/11/1 */ @Service public class LWhFormScrappedServiceImpl extends BaseServiceImpl { @Autowired private CodeGeneratorService codeGeneratorService; @Autowired private BaseWarehouseServiceImpl baseWarehouseService; @Autowired private FinSysTenantDepartmentServiceImpl departmentService; @Autowired private LWhGoodsService lWhGoodsService; @Autowired private LWhFormScrappedGoodsService scrappedGoodsService; /** * 新增 * @param param * @param sysInfo * @param operatorUser * @return */ //1.新增报废单 //2.新增报废单物品 public int add(LWhFormScrappedParam param, FinSysTenantUser sysInfo, S_user_core operatorUser) { //1.新增报废单记录 LWhFormScrapped lWhFormScrapped = new LWhFormScrapped(); //调拨单id long lWhFormTransferId = IdUtil.generateId(); lWhFormScrapped.setId(lWhFormTransferId); lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped)); lWhFormScrapped.setWarehouseType(0); Long warehouseId = param.getWarehouseId(); lWhFormScrapped.setWarehouseId(warehouseId); //根据仓库id查询仓库 BaseWarehouse warehouse = this.baseWarehouseService.getById(warehouseId); if (warehouse == null) { log.error("仓库不存在"); return 0; } lWhFormScrapped.setWarehouseName(warehouse.getWarehouseName()); lWhFormScrapped.setAgencyId(Long.valueOf(sysInfo.getTenantId())); lWhFormScrapped.setAgencyName(sysInfo.getTenantName()); lWhFormScrapped.setOperatorId(sysInfo.getSysUserId()); lWhFormScrapped.setOperatorName(sysInfo.getUserName()); lWhFormScrapped.setDealTime(param.getDealTime()); lWhFormScrapped.setStates(0); //根据部门id查询部门 FinSysTenantDepartment department = this.departmentService.getById(sysInfo.getSysDeptId()); if (department != null) { lWhFormScrapped.setDepartmentId(sysInfo.getSysDeptId()); lWhFormScrapped.setDepartmentName(department.getName()); } int flag1 = this.insert(lWhFormScrapped); if (flag1 == 0) { log.error("新增报废单失败"); return 0; } //2.新增报废单物品记录 List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList(); List<LWhFormScrappedGoods> scrappedGoodsList = new ArrayList<>(); for (LWhFormScrappedGoodsParams params : scrappedGoodsParamList) { LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods(); scrappedGoods.setId(IdUtil.generateId()); //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, scrappedGoods.getBaseGoodsModelsId(), (short) 1, null); if (params.getCounts() > goodsNum) { log.error("报废数量大于库存数量"); return 0; } scrappedGoods.setCounts(params.getCounts()); scrappedGoods.setScrappedCode(params.getScrappedCode()); //TODO 报废原因 scrappedGoodsList.add(scrappedGoods); } int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList); if (flag2 != scrappedGoodsList.size()) { log.error("新增报废单物品记录"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } return 1; } } consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory.java
@@ -96,7 +96,7 @@ @JsonIgnore protected boolean isset_inWarehouseFormId = false; private Long inBusinessFormCode = null; private String inBusinessFormCode = null; @JsonIgnore protected boolean isset_inBusinessFormCode = false; @@ -104,7 +104,7 @@ @JsonIgnore protected boolean isset_outWarehouseFormId = false; private Long outBusinessFormCode = null; private String outBusinessFormCode = null; @JsonIgnore protected boolean isset_outBusinessFormCode = false; @@ -409,18 +409,18 @@ return this.inWarehouseFormId == null; } public Long getInBusinessFormCode() { public String getInBusinessFormCode() { return this.inBusinessFormCode; } public void setInBusinessFormCode(Long inBusinessFormCode) { public void setInBusinessFormCode(String inBusinessFormCode) { this.inBusinessFormCode = inBusinessFormCode; this.isset_inBusinessFormCode = true; } @JsonIgnore public boolean isEmptyInBusinessFormCode() { return this.inBusinessFormCode == null; return this.inBusinessFormCode == null || this.inBusinessFormCode.length() == 0; } public Long getOutWarehouseFormId() { @@ -437,18 +437,18 @@ return this.outWarehouseFormId == null; } public Long getOutBusinessFormCode() { public String getOutBusinessFormCode() { return this.outBusinessFormCode; } public void setOutBusinessFormCode(Long outBusinessFormCode) { public void setOutBusinessFormCode(String outBusinessFormCode) { this.outBusinessFormCode = outBusinessFormCode; this.isset_outBusinessFormCode = true; } @JsonIgnore public boolean isEmptyOutBusinessFormCode() { return this.outBusinessFormCode == null; return this.outBusinessFormCode == null || this.outBusinessFormCode.length() == 0; } /** consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory_mapper.java
@@ -7,6 +7,8 @@ import com.walker.jdbc.sqlgen.InsertBuilder; import com.walker.jdbc.sqlgen.SelectBuilder; import com.walker.jdbc.sqlgen.UpdateBuilder; import com.walker.jdbc.util.StringUtils; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; @@ -500,11 +502,7 @@ } columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.InBusinessFormCode); if (columnIndex > 0) { if (rs.getBigDecimal(columnIndex) == null) { l_wh_form_inventory.setInBusinessFormCode(null); } else { l_wh_form_inventory.setInBusinessFormCode(rs.getLong(columnIndex)); } l_wh_form_inventory.setInBusinessFormCode(rs.getString(columnIndex)); } columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.OutWarehouseFormId); if (columnIndex > 0) { @@ -516,11 +514,7 @@ } columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.OutBusinessFormCode); if (columnIndex > 0) { if (rs.getBigDecimal(columnIndex) == null) { l_wh_form_inventory.setOutBusinessFormCode(null); } else { l_wh_form_inventory.setOutBusinessFormCode(rs.getLong(columnIndex)); } l_wh_form_inventory.setOutBusinessFormCode(rs.getString(columnIndex)); } return l_wh_form_inventory; } consum-model-pojo/src/main/java/com/consum/model/po/LWhProcureModel.java
@@ -36,6 +36,10 @@ @JsonIgnore protected boolean isset_baseGoodsModelsId = false; private String baseGoodsModelsName = null; @JsonIgnore protected boolean isset_baseGoodsModelsName = false; private Long price = null; @JsonIgnore protected boolean isset_price = false; @@ -143,6 +147,20 @@ return this.baseGoodsModelsId == null; } public String getBaseGoodsModelsName() { return this.baseGoodsModelsName; } public void setBaseGoodsModelsName(String baseGoodsModelsName) { this.baseGoodsModelsName = baseGoodsModelsName; this.isset_baseGoodsModelsName = true; } @JsonIgnore public boolean isEmptyBaseGoodsModelsName() { return this.baseGoodsModelsName == null || this.baseGoodsModelsName.length() == 0; } public Long getPrice() { return this.price; } @@ -210,6 +228,7 @@ .append("businessType=").append(this.businessType) .append("businessId=").append(this.businessId) .append("baseGoodsModelsId=").append(this.baseGoodsModelsId) .append("baseGoodsModelsName=").append(this.baseGoodsModelsName) .append("price=").append(this.price) .append("counts=").append(this.counts) .append("worehouseCount=").append(this.worehouseCount) @@ -243,6 +262,9 @@ if (this.isset_baseGoodsModelsId) { l_wh_procure_model.setBaseGoodsModelsId(this.getBaseGoodsModelsId()); } if (this.isset_baseGoodsModelsName) { l_wh_procure_model.setBaseGoodsModelsName(this.getBaseGoodsModelsName()); } if (this.isset_price) { l_wh_procure_model.setPrice(this.getPrice()); } consum-model-pojo/src/main/java/com/consum/model/po/LWhProcureModel_mapper.java
@@ -32,6 +32,7 @@ public static final String BusinessType = "business_type"; public static final String BusinessId = "business_id"; public static final String BaseGoodsModelsId = "base_goods_models_id"; public static final String BaseGoodsModelsName = "base_goods_models_name"; public static final String Price = "price"; public static final String Counts = "counts"; public static final String WorehouseCount = "worehouse_count"; @@ -60,6 +61,9 @@ } if (lWhProcureModel.isset_baseGoodsModelsId) { this.setBaseGoodsModelsId(lWhProcureModel.getBaseGoodsModelsId()); } if (lWhProcureModel.isset_baseGoodsModelsName) { this.setBaseGoodsModelsName(lWhProcureModel.getBaseGoodsModelsName()); } if (lWhProcureModel.isset_price) { this.setPrice(lWhProcureModel.getPrice()); @@ -120,6 +124,7 @@ ib.set(BusinessType, this.getBusinessType(), this.isset_businessType); ib.set(BusinessId, this.getBusinessId(), this.isset_businessId); ib.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); ib.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); ib.set(Price, this.getPrice(), this.isset_price); ib.set(Counts, this.getCounts(), this.isset_counts); ib.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount); @@ -137,6 +142,7 @@ ub.set(BusinessType, this.getBusinessType(), this.isset_businessType); ub.set(BusinessId, this.getBusinessId(), this.isset_businessId); ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); ub.set(Price, this.getPrice(), this.isset_price); ub.set(Counts, this.getCounts(), this.isset_counts); ub.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount); @@ -155,6 +161,7 @@ ub.set(BusinessType, this.getBusinessType(), this.isset_businessType); ub.set(BusinessId, this.getBusinessId(), this.isset_businessId); ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); ub.set(Price, this.getPrice(), this.isset_price); ub.set(Counts, this.getCounts(), this.isset_counts); ub.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount); @@ -172,6 +179,7 @@ ub.set(BusinessType, this.getBusinessType(), this.isset_businessType); ub.set(BusinessId, this.getBusinessId(), this.isset_businessId); ub.set(BaseGoodsModelsId, this.getBaseGoodsModelsId(), this.isset_baseGoodsModelsId); ub.set(BaseGoodsModelsName, this.getBaseGoodsModelsName(), this.isset_baseGoodsModelsName); ub.set(Price, this.getPrice(), this.isset_price); ub.set(Counts, this.getCounts(), this.isset_counts); ub.set(WorehouseCount, this.getWorehouseCount(), this.isset_worehouseCount); @@ -223,7 +231,7 @@ */ @Override public SqlAndParameters<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) { return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters); return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, base_goods_models_name, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters); } /** @@ -231,7 +239,7 @@ */ @Override public SqlAndParameters<Object[]> getSelectSql_(String where, Object[] parameters) { return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters); return new SqlAndParameters<>("select id, from_procure_goods_id, business_type, business_id, base_goods_models_id, base_goods_models_name, price, counts, worehouse_count, supplier from " + this.getTableName_() + " " + where, parameters); } /** @@ -300,6 +308,10 @@ l_wh_procure_model.setBaseGoodsModelsId(rs.getLong(columnIndex)); } } columnIndex = resultSetUtils.findColumn(rs, LWhProcureModel_mapper.BaseGoodsModelsName); if (columnIndex > 0) { l_wh_procure_model.setBaseGoodsModelsName(rs.getString(columnIndex)); } columnIndex = resultSetUtils.findColumn(rs, LWhProcureModel_mapper.Price); if (columnIndex > 0) { if (rs.getBigDecimal(columnIndex) == null) {