consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -145,6 +145,19 @@ return ResponseValue.success(list); } /** * @Description 根据分类id查询物品模板 * @Author 卢庆阳 * @Date 2023/10/30 */ @GetMapping("/selectByCategoryId") 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/BaseWarehouseController.java
@@ -138,5 +138,6 @@ } } consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
@@ -26,6 +26,11 @@ @Resource private LWarehouseFlowService lWarehouseFlowService; /** * 出入库明细 * @param param * @return */ @GetMapping("/list") public ResponseValue queryFormProcureList(LWarehouseFlowParam param) { S_user_core currentUser = this.getCurrentUser(); consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * @Description 盘点 @@ -153,7 +154,19 @@ return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!"); } /** * @Description 异常明细列表查询 * @Author 卢庆阳 * @Date 2023/11/1 */ @GetMapping("/list/PdDetail") public ResponseValue queryPdDetailList(LWhFormInventoryParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager<Map<String, Object>> pager = this.lWhFormInventoryService.queryPdDetailList(param, sysInfo); return ResponseValue.success(pager); } } consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -99,31 +99,13 @@ LWhFormOutputExtend formOutputExtend = new LWhFormOutputExtend(); BeanUtils.copyProperties(lWhFormOutput, formOutputExtend); // 物品 LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods(); lWhFormProcureGoods.setWhFormProcureId(id); List<LWhFormProcureGoods> formProcureGoods = lWhFormOutputService.select(lWhFormProcureGoods); // 查询型号数量 LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setBusinessType(3); lWhProcureModel.setBusinessId(id); List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel); formOutputExtend.setModels(models); Field fieldModels = null; try { fieldModels = LWhFormProcureGoodsParams.class.getDeclaredField("models"); } catch (NoSuchFieldException e) { e.printStackTrace(); } fieldModels.setAccessible(true); ArrayList<LWhFormProcureGoodsParams> procureGoodsParams = new ArrayList<>(); for (LWhFormProcureGoods formProcureGood : formProcureGoods) { LWhFormProcureGoodsParams lWhFormProcureGoodsParams = new LWhFormProcureGoodsParams(); BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsParams); // 查询型号数量 LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setFromProcureGoodsId(formProcureGood.getId()); List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel); fieldModels.set(lWhFormProcureGoodsParams, models); procureGoodsParams.add(lWhFormProcureGoodsParams); } formOutputExtend.setProcureGoods(procureGoodsParams); return ResponseValue.success("查询成功!", formOutputExtend); } consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
New file @@ -0,0 +1,47 @@ package com.consum.base.controller; import com.consum.base.BaseController; import com.consum.base.pojo.LWhFormInventoryParam; import com.consum.base.pojo.LWhFormScrappedParam; import com.consum.base.service.LWhFormScrappedServiceImpl; import com.consum.model.po.FinSysTenantUser; import com.iplatform.model.po.S_user_core; import com.walker.web.ResponseValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Description 报废单 * @Author 卢庆阳 * @Date 2023/11/1 */ @RestController @RequestMapping("/pc/l/wh/form/scrapped") public class LWhFormScrappedController extends BaseController { @Autowired private LWhFormScrappedServiceImpl lWhFormScrappedService; /** * @Description 新增报废单 * @Author 卢庆阳 * @Date 2023/11/1 */ @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormScrappedParam param) { //根据盘点人id查询盘点人 S_user_core operatorUser = this.getUser(param.getOperatorId()); FinSysTenantUser sysInfo = this.getSysInfo(); int result = this.lWhFormScrappedService.add(param, sysInfo,operatorUser); if (result > 0) return ResponseValue.success(1); return ResponseValue.error("新增失败!"); } } consum-base/src/main/java/com/consum/base/core/CodeGeneratorEnum.java
@@ -24,6 +24,11 @@ Transfer("DB"), /** * 报废 */ Scrapped("BF"), /** * 盘点单编码,简写:PD */ Inventory("PD"), consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java
@@ -17,7 +17,7 @@ */ private Long warehouseId; /** * 盘点人 * 操作人 */ private Long operatorId; /** @@ -36,6 +36,66 @@ * 盘点时间 结束 */ private Long inventoryDateEnd; /** * 机构id */ private Long agencyId; /** * 物品名称 */ private String goodsTemplateName; /** * 规格型号id */ private Long baseGoodsModelsId; /** * 类型(出入库类型) 2=盘盈;3=盘亏 */ private Integer inventoryResult; /** * 出入库单号 */ private Long warehouseFormCode; /** * 盘点人 */ private String operatorName; /** * 时间(盘点结束时间) 开始 */ private Long stopTimeStart; /** * 时间(盘点结束时间) 结束 */ private Long stopTimeEnd; private Integer pageSize = 10; private Integer pageNum = 1; public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getPageNum() { return pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public String getOperatorName() { return operatorName; } public void setOperatorName(String operatorName) { this.operatorName = operatorName; } public Long getId() { return id; @@ -43,14 +103,6 @@ public void setId(Long id) { this.id = id; } public String getBusinessFormCode() { return businessFormCode; } public void setBusinessFormCode(String businessFormCode) { this.businessFormCode = businessFormCode; } public String getBusinessFormName() { @@ -108,4 +160,68 @@ public void setInventoryDateEnd(Long inventoryDateEnd) { this.inventoryDateEnd = inventoryDateEnd; } public Long getAgencyId() { return agencyId; } public void setAgencyId(Long agencyId) { this.agencyId = agencyId; } public String getGoodsTemplateName() { return goodsTemplateName; } public void setGoodsTemplateName(String goodsTemplateName) { this.goodsTemplateName = goodsTemplateName; } public Long getBaseGoodsModelsId() { return baseGoodsModelsId; } public void setBaseGoodsModelsId(Long baseGoodsModelsId) { this.baseGoodsModelsId = baseGoodsModelsId; } public Integer getInventoryResult() { return inventoryResult; } public void setInventoryResult(Integer inventoryResult) { this.inventoryResult = inventoryResult; } public void setBusinessFormCode(String businessFormCode) { this.businessFormCode = businessFormCode; } public Long getStopTimeStart() { return stopTimeStart; } public void setStopTimeStart(Long stopTimeStart) { this.stopTimeStart = stopTimeStart; } public Long getStopTimeEnd() { return stopTimeEnd; } public void setStopTimeEnd(Long stopTimeEnd) { this.stopTimeEnd = stopTimeEnd; } public String getBusinessFormCode() { return businessFormCode; } public Long getWarehouseFormCode() { return warehouseFormCode; } public void setWarehouseFormCode(Long warehouseFormCode) { this.warehouseFormCode = warehouseFormCode; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryVo.java
New file @@ -0,0 +1,124 @@ package com.consum.base.pojo; public class LWhFormInventoryVo{ /** * 仓库名称 */ private String warehouseName; /** * 物品名称 */ private String goodsTemplateName; /** * 规格型号名称 */ private String baseGoodsModelsName; /** * 类型(出入库类型) 2=盘盈;3=盘亏 */ private Integer inventoryResult; /** * 库存数量 */ private Integer initCounts; /** * 盘点数量 */ private Integer inventoryCounts; /** * 差异数量 */ private Integer errorCounts; /** * 机构名称 */ private String agencyName; /** * 操作人 */ private String operatorName; /** * 结束时间 */ private Long stopTime; public String getWarehouseName() { return warehouseName; } public void setWarehouseName(String warehouseName) { this.warehouseName = warehouseName; } public String getGoodsTemplateName() { return goodsTemplateName; } public void setGoodsTemplateName(String goodsTemplateName) { this.goodsTemplateName = goodsTemplateName; } public String getBaseGoodsModelsName() { return baseGoodsModelsName; } public void setBaseGoodsModelsName(String baseGoodsModelsName) { this.baseGoodsModelsName = baseGoodsModelsName; } public Integer getInventoryResult() { return inventoryResult; } public void setInventoryResult(Integer inventoryResult) { this.inventoryResult = inventoryResult; } public Integer getInitCounts() { return initCounts; } public void setInitCounts(Integer initCounts) { this.initCounts = initCounts; } public Integer getInventoryCounts() { return inventoryCounts; } public void setInventoryCounts(Integer inventoryCounts) { this.inventoryCounts = inventoryCounts; } public Integer getErrorCounts() { return errorCounts; } public void setErrorCounts(Integer errorCounts) { this.errorCounts = errorCounts; } public String getAgencyName() { return agencyName; } public void setAgencyName(String agencyName) { this.agencyName = agencyName; } public String getOperatorName() { return operatorName; } public void setOperatorName(String operatorName) { this.operatorName = operatorName; } public Long getStopTime() { return stopTime; } public void setStopTime(Long stopTime) { this.stopTime = stopTime; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java
@@ -26,7 +26,7 @@ /** * 记录物品信息和规格型号 */ private List<LWhGoodsRecord> list; private List<LWhProcureModelParams> models; /** * 物品id */ @@ -77,12 +77,12 @@ this.dealTime = dealTime; } public List<LWhGoodsRecord> getList() { return list; public List<LWhProcureModelParams> getModels() { return models; } public void setList(List<LWhGoodsRecord> list) { this.list = list; public void setModels(List<LWhProcureModelParams> models) { this.models = models; } public Long getBaseGoodsTemplateId() { consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedGoodsParams.java
New file @@ -0,0 +1,36 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; public class LWhFormScrappedGoodsParams extends ParamRequest { //规格型号编号 private Long baseGoodsModelsId = null; //报废数量 private Integer counts = null; //报废原因 private String scrappedCode; public Long getBaseGoodsModelsId() { return baseGoodsModelsId; } public void setBaseGoodsModelsId(Long baseGoodsModelsId) { this.baseGoodsModelsId = baseGoodsModelsId; } public Integer getCounts() { return counts; } public void setCounts(Integer counts) { this.counts = counts; } public String getScrappedCode() { return scrappedCode; } public void setScrappedCode(String scrappedCode) { this.scrappedCode = scrappedCode; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java
New file @@ -0,0 +1,85 @@ package com.consum.base.pojo; import com.consum.model.po.LWhFormScrappedGoods; import com.walker.web.param.ParamRequest; import java.util.List; public class LWhFormScrappedParam extends ParamRequest { /** * 机构id */ private Long agencyId; /** * 仓库编号 */ private Long warehouseId; /** * 操作人 */ private Long operatorId; /** * 报废时间 */ private Long dealTime; /** * 附件 */ private String uploadFiles; /** * 物品id */ /** * 报废单物品 */ private List<LWhFormScrappedGoodsParams> scrappedGoodsList; public Long getAgencyId() { return agencyId; } public void setAgencyId(Long agencyId) { this.agencyId = agencyId; } public Long getWarehouseId() { return warehouseId; } public void setWarehouseId(Long warehouseId) { this.warehouseId = warehouseId; } public Long getOperatorId() { return operatorId; } public void setOperatorId(Long operatorId) { this.operatorId = operatorId; } public Long getDealTime() { return dealTime; } public void setDealTime(Long dealTime) { this.dealTime = dealTime; } public String getUploadFiles() { return uploadFiles; } public void setUploadFiles(String uploadFiles) { this.uploadFiles = uploadFiles; } public List<LWhFormScrappedGoodsParams> getScrappedGoodsList() { return scrappedGoodsList; } public void setScrappedGoodsList(List<LWhFormScrappedGoodsParams> scrappedGoodsList) { this.scrappedGoodsList = scrappedGoodsList; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferParam.java
@@ -1,10 +1,7 @@ package com.consum.base.pojo; import com.consum.model.po.LWhGoodsRecord; import com.walker.web.param.ParamRequest; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; import java.util.List; /** consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -283,4 +283,16 @@ StringBuilder sql = new StringBuilder("SELECT * FROM s_dict_data WHERE dict_type = 'CLASSIFICATION_CODE' order by dict_sort"); return this.select(sql.toString(), new Object[]{}, new S_dict_data()); } /** * @Description 根据分类id查询物品模板 * @Author 卢庆阳 * @Date 2023/10/30 */ public List<BaseGoodsTemplate> querybyCategoryId(Long categoryId) { BaseGoodsTemplate goodsTemplate = new BaseGoodsTemplate(); goodsTemplate.setCategoryId(categoryId); List<BaseGoodsTemplate> select = this.select(goodsTemplate); return select; } } consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -2,6 +2,7 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.tools.MapRowMapper; import com.consum.base.pojo.LWhFormInventoryDto; import com.consum.base.pojo.LWhFormInventoryParam; import com.consum.base.util.IdUtil; @@ -14,11 +15,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -54,6 +53,18 @@ " AND STATES = ?\n" + " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; private static final String QUERY_PD_DETAIL_LIST = "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" + " lwfig.BASE_GOODS_MODELS_NAME,\n" + " lwfig.INVENTORY_RESULT,\n" + " lwfig.INIT_COUNTS,\n" + " lwfig.INVENTORY_COUNTS,\n" + " lwfig.ERROR_COUNTS,\n" + " lwfi.AGENCY_NAME,\n" + " lwfi.OPERATOR_NAME,\n" + " lwfi.STOP_TIME\n" + "from l_wh_form_inventory lwfi\n" + " inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID "; /** * @Description 新增 @@ -224,7 +235,7 @@ } else { inventoryGoods.setInventoryResult(1); } inventoryGoods.setErrorCounts(errorCounts); inventoryGoods.setErrorCounts(Math.abs(errorCounts)); } int flag2 = inventoryGoodsService.update(inventoryGoodsList); if (flag2 != inventoryGoodsList.size()) { @@ -233,4 +244,73 @@ } return 1; } /** * @Description 异常明细列表查询 * @Author 卢庆阳 * @Date 2023/11/1 * @return */ public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST); HashMap<String, Object> paramts = new HashMap<>(); //机构 sql.append(" and AGENCY_ID like:AGENCY_ID "); if (param.getAgencyId() != null) { paramts.put("AGENCY_ID", param.getAgencyId() + StringUtils.CHAR_PERCENT); } else { paramts.put("AGENCY_ID", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT); } //仓库编号 if (param.getWarehouseId() != null) { sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID "); paramts.put("WAREHOUSE_ID", param.getWarehouseId()); } //物品名称 if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append(" and GOODS_TEMPLATE_NAME =:GOODS_TEMPLATE_NAME "); paramts.put("GOODS_TEMPLATE_NAME", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } //规格型号 if (param.getBaseGoodsModelsId() != null) { sql.append(" and BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID "); paramts.put("BASE_GOODS_MODELS_ID", param.getBaseGoodsModelsId()); } //类型(出入库类型) Integer inventoryResult = param.getInventoryResult(); if (inventoryResult != null) { sql.append(" and INVENTORY_RESULT =:INVENTORY_RESULT "); paramts.put("INVENTORY_RESULT", inventoryResult); } //出入库单号 if (param.getWarehouseFormCode() != null) { if (inventoryResult == 2) { //盘盈入库 sql.append(" and IN_BUSINESS_FORM_CODE =:IN_BUSINESS_FORM_CODE "); paramts.put("IN_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT); } else { //盘亏出库 sql.append(" and OUT_BUSINESS_FORM_CODE =:OUT_BUSINESS_FORM_CODE "); paramts.put("OUT_BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getWarehouseFormCode() + StringUtils.CHAR_PERCENT); } } //操作人 if (!StringUtils.isEmpty(param.getOperatorName())) { sql.append(" and OPERATOR_NAME =:OPERATOR_NAME "); paramts.put("OPERATOR_NAME", StringUtils.CHAR_PERCENT + param.getOperatorName() + StringUtils.CHAR_PERCENT); } //结束时间 if (param.getStopTimeStart() != null) { sql.append(" and STOP_TIME >=:stopTimeStart "); paramts.put("stopTimeStart", param.getStopTimeStart() * 1000000); } if (param.getStopTimeEnd() != null) { sql.append(" and STOP_TIME <:stopTimeEnd "); paramts.put("stopTimeEnd", param.getStopTimeEnd() * 1000000 + 240000); } sql.append(" ORDER BY CREATE_TIME DESC "); return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); } } consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -2,6 +2,7 @@ import com.consum.base.core.param.BaseWarehouseParam1; import com.consum.base.pojo.LWhFormOutputParam; 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; @@ -15,6 +16,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -140,6 +142,78 @@ * @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(); @@ -165,45 +239,31 @@ 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("规格型号为空"); if (flag1 == 0) { 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记录 //2.新增物品型号记录 List<LWhProcureModelParams> models = param.getModels(); List<LWhProcureModel> modelList = new ArrayList<>(); for (LWhProcureModelParams model : models) { LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setId(IdUtil.generateId()); lWhProcureModel.setBusinessType(3); lWhProcureModel.setBaseGoodsModelsId(record.getBaseGoodsModelsId()); lWhProcureModel.setCounts(record.getThisCount()); lWhProcureModel.setBusinessId(lWhFormOutputId); lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); lWhProcureModel.setCounts(model.getCounts()); //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null); lWhProcureModel.setWorehouseCount(goodsNum); int res = this.lWhProcureModelService.insert(lWhProcureModel); flag5 += res; modelList.add(lWhProcureModel); } //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()) { int flag2 = this.lWhProcureModelService.insert(modelList); if (flag2 != modelList.size()) { log.error("新增物品型号失败"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } return 1; }