consum-base/src/main/java/com/consum/base/controller/BaseGoodsModelsController.java
@@ -7,6 +7,7 @@ import com.consum.base.service.BaseGoodsTemplateServiceImpl; import com.consum.model.po.BaseCategory; import com.consum.model.po.BaseGoodsModels; import com.consum.model.po.BaseGoodsTemplate; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; @@ -98,6 +99,17 @@ return num > 0 ? ResponseValue.success(1) : ResponseValue.error("删除失败!"); } /** * @Description 根据物品id查询规格型号 * @Author 卢庆阳 * @Date 2023/10/30 */ @GetMapping("/selectByGoodsTemplatesId") public ResponseValue queryByGoodsTemplatesId(Long goodsTemplatesId) { List<BaseGoodsModels> list = this.baseGoodsModelsService.queryByGoodsTemplatesId(goodsTemplatesId); return ResponseValue.success(list); } } consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
@@ -26,11 +26,6 @@ @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/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.LWhGoodsService; import com.consum.base.service.LWhProcureModelService; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; @@ -32,6 +33,8 @@ private LWhFormOutputServiceImpl lWhFormOutputService; @Autowired private LWhProcureModelService lWhProcureModelService; @Autowired private LWhGoodsService lWhGoodsService; /** * @Description 新增出库单 @@ -39,7 +42,7 @@ * @Date 2023/10/27 */ @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormOutputParam param) { public ResponseValue add(@RequestBody LWhFormOutputInsertParam param) { S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("登录用户信息不存在"); @@ -112,6 +115,20 @@ return ResponseValue.success("查询成功!", formOutputExtend); } /** * @Description 根据仓库id和型号id 查询库存 * @Author 卢庆阳 * @Date 2023/11/2 */ @GetMapping("/select/number") public ResponseValue selectNumber(Long warehouseId,Long baseGoodsModelsId) { if (warehouseId == null || baseGoodsModelsId == null) { return ResponseValue.error("参数错误"); } int num = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1,null); return ResponseValue.success(num); } consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
@@ -1,17 +1,24 @@ 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.pojo.*; import com.consum.base.service.LWhFormScrappedGoodsService; import com.consum.base.service.LWhFormScrappedServiceImpl; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.*; import com.consum.model.vo.LWhFormOutputVo; import com.consum.model.vo.LWhFormTransferVo; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.web.ResponseValue; import org.springframework.beans.BeanUtils; 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; import org.springframework.web.bind.annotation.*; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @Description 报废单 @@ -24,6 +31,8 @@ @Autowired private LWhFormScrappedServiceImpl lWhFormScrappedService; @Autowired private LWhFormScrappedGoodsService scrappedGoodsService; /** * @Description 新增报废单 @@ -32,15 +41,94 @@ */ @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); int result = this.lWhFormScrappedService.add(param, this.getCurrentUser(),sysInfo); if (result > 0) return ResponseValue.success(1); return ResponseValue.error("新增失败!"); } /** * @Description 列表查询 * @Author 卢庆阳 * @Date 2023/11/02 */ //1.查询报废单 //2.查询报废单物品 @GetMapping("/list") public ResponseValue queryList(LWhFormScrappedParam param) { FinSysTenantUser sysInfo = getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager genericPager = lWhFormScrappedService.queryList(param,sysInfo); List<LWhFormScrapped> datas = genericPager.getDatas(); ArrayList<LWhFormScrappedExtend> newDatas = new ArrayList<>(); if (!CollectionUtils.isEmpty(datas)) { datas.forEach(item -> { // 查询报废单物品 LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods(); scrappedGoods.setFormScrappedId(item.getId()); List<LWhFormScrappedGoods> scrappedGoodsList = scrappedGoodsService.select(scrappedGoods); LWhFormScrappedExtend formScrappedExtend = new LWhFormScrappedExtend(); BeanUtils.copyProperties(item, formScrappedExtend); formScrappedExtend.setScrappedGoodsList(scrappedGoodsList); newDatas.add(formScrappedExtend); }); } try { Field fieldDatas = GenericPager.class.getDeclaredField("datas"); fieldDatas.setAccessible(true); fieldDatas.set(genericPager, newDatas); } catch (Exception e) { e.printStackTrace(); } // genericPager.setDatas(newDatas); return ResponseValue.success(genericPager); } /** * @Description 根据id查询详情 * @Author 卢庆阳 * @Date 2023/11/2 */ @GetMapping("/detail") public ResponseValue getById(Long id) { if (id == null) { return ResponseValue.error("报废单id为空"); } LWhFormScrappedExtend scrappedExtend = this.lWhFormScrappedService.getById(id); return ResponseValue.success(scrappedExtend); } /** * 报废明细 * @param param * @return */ @GetMapping("/list/detailList") public ResponseValue queryDetailList(LWhFormScrappedParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager<Map<String, Object>> genericPager = lWhFormScrappedService.queryDetailList(param,sysInfo); return ResponseValue.success(genericPager); } /** * @Description 导出报废登记单 * @Author 卢庆阳 * @Date 2023/11/2 */ @GetMapping("/export") public ResponseValue export(Long id) { if (id == null) { return ResponseValue.error("报废单id为空"); } LWhFormScrappedExtend scrappedExtend = this.lWhFormScrappedService.export(id,this.getSysInfo()); return ResponseValue.success(scrappedExtend); } } consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -81,7 +81,7 @@ GenericPager genericPager = lWhFormTransferService.queryFormTransferList(param); List<LWhFormTransfer> datas = genericPager.getDatas(); ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>(); ArrayList<LWhFormTransferExtend> newDatas = new ArrayList<>(); if (!CollectionUtils.isEmpty(datas)) { datas.forEach(item -> { // 查询型号数量 @@ -89,10 +89,10 @@ lWhProcureModel.setBusinessType(2); lWhProcureModel.setBusinessId(item.getId()); List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel); LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend(); BeanUtils.copyProperties(item, formProcureExtend); formProcureExtend.setModels(models); newDatas.add(formProcureExtend); LWhFormTransferExtend formTransferExtend = new LWhFormTransferExtend(); BeanUtils.copyProperties(item, formTransferExtend); formTransferExtend.setModels(models); newDatas.add(formTransferExtend); }); } try { consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java
@@ -11,10 +11,10 @@ **/ public class LWarehouseFlowParam extends ParamRequest { //单据类型 1 采购2 调拨 3出库4部门分发 //单据类型 1 采购2 调拨 3出库4部门分发 5报废 private Short businessType; // 业务单据编号 private Long businessFormCode; private String businessFormCode; //物品名称 private String goodsTemplateName; //规格型号 @@ -38,11 +38,11 @@ this.businessType = businessType; } public Long getBusinessFormCode() { public String getBusinessFormCode() { return businessFormCode; } public void setBusinessFormCode(Long businessFormCode) { public void setBusinessFormCode(String businessFormCode) { this.businessFormCode = businessFormCode; } consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputGoodsParams.java
New file @@ -0,0 +1,49 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; import java.util.List; /** * @Description * @Author 卢庆阳 * @Date 2023/11/2 */ public class LWhFormOutputGoodsParams extends ParamRequest { /** * 记录物品信息和规格型号 */ private List<LWhProcureModelParams> models; /** * 物品id */ private Long baseGoodsTemplateId; /** * 物品模版名称 */ private String goodsTemplateName; public List<LWhProcureModelParams> getModels() { return models; } public void setModels(List<LWhProcureModelParams> models) { this.models = models; } public Long getBaseGoodsTemplateId() { return baseGoodsTemplateId; } public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) { this.baseGoodsTemplateId = baseGoodsTemplateId; } public String getGoodsTemplateName() { return goodsTemplateName; } public void setGoodsTemplateName(String goodsTemplateName) { this.goodsTemplateName = goodsTemplateName; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputInsertParam.java
New file @@ -0,0 +1,51 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; import java.util.List; /** * @Description 新增出库单参数 * @Author 卢庆阳 * @Date 2023/10/27 */ public class LWhFormOutputInsertParam extends ParamRequest { /** * 仓库id */ private Long warehouseId; /** * 出库时间 */ private Long dealTime; /** * 记录物品信息和规格型号 */ private List<LWhFormOutputGoodsParams> goods; public Long getWarehouseId() { return warehouseId; } public void setWarehouseId(Long warehouseId) { this.warehouseId = warehouseId; } public Long getDealTime() { return dealTime; } public void setDealTime(Long dealTime) { this.dealTime = dealTime; } public List<LWhFormOutputGoodsParams> getGoods() { return goods; } public void setGoods(List<LWhFormOutputGoodsParams> goods) { this.goods = goods; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.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; /** @@ -20,9 +17,7 @@ /** * 出库时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate dealTime; private Long dealTime; /** * 记录物品信息和规格型号 */ @@ -69,11 +64,11 @@ this.warehouseId = warehouseId; } public LocalDate getDealTime() { public Long getDealTime() { return dealTime; } public void setDealTime(LocalDate dealTime) { public void setDealTime(Long dealTime) { this.dealTime = dealTime; } consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedExtend.java
New file @@ -0,0 +1,26 @@ package com.consum.base.pojo; import com.consum.model.po.LWhFormProcure; import com.consum.model.po.LWhFormScrapped; import com.consum.model.po.LWhFormScrappedGoods; import com.consum.model.po.LWhProcureModel; import java.util.List; /** * @Description * @Author 卢庆阳 * @Date 2023/11/2 */ public class LWhFormScrappedExtend extends LWhFormScrapped { private List<LWhFormScrappedGoods> scrappedGoodsList; public List<LWhFormScrappedGoods> getScrappedGoodsList() { return scrappedGoodsList; } public void setScrappedGoodsList(List<LWhFormScrappedGoods> scrappedGoodsList) { this.scrappedGoodsList = scrappedGoodsList; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormScrappedParam.java
@@ -6,6 +6,9 @@ import java.util.List; public class LWhFormScrappedParam extends ParamRequest { //新增参数 /** * 机构id */ @@ -29,12 +32,114 @@ /** * 物品id */ private Long baseGoodsTemplateId; /** * 报废单物品 */ private List<LWhFormScrappedGoodsParams> scrappedGoodsList; //查询参数 /** * 报废单号 */ private String businessFormCode; /** * 物品模版名称 */ private String goodsTemplateName; /** * 报废时间 开始 */ private Long dealTimeStart; /** * 报废时间 结束 */ private Long dealTimeEnd; /** * 规格型号id */ private Long baseGoodsModelsId; /** * 创建人 */ private String operatorName; 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 getBaseGoodsModelsId() { return baseGoodsModelsId; } public void setBaseGoodsModelsId(Long baseGoodsModelsId) { this.baseGoodsModelsId = baseGoodsModelsId; } public String getBusinessFormCode() { return businessFormCode; } public void setBusinessFormCode(String businessFormCode) { this.businessFormCode = businessFormCode; } public String getGoodsTemplateName() { return goodsTemplateName; } public void setGoodsTemplateName(String goodsTemplateName) { this.goodsTemplateName = goodsTemplateName; } public Long getDealTimeStart() { return dealTimeStart; } public void setDealTimeStart(Long dealTimeStart) { this.dealTimeStart = dealTimeStart; } public Long getDealTimeEnd() { return dealTimeEnd; } public void setDealTimeEnd(Long dealTimeEnd) { this.dealTimeEnd = dealTimeEnd; } public Long getBaseGoodsTemplateId() { return baseGoodsTemplateId; } public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) { this.baseGoodsTemplateId = baseGoodsTemplateId; } public Long getAgencyId() { return agencyId; } consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferExtend.java
New file @@ -0,0 +1,24 @@ package com.consum.base.pojo; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.LWhProcureModel; import java.util.List; /** * @Description * @Author 卢庆阳 * @Date 2023/11/2 */ public class LWhFormTransferExtend extends LWhFormTransfer { private List<LWhProcureModel> models; public List<LWhProcureModel> getModels() { return models; } public void setModels(List<LWhProcureModel> models) { this.models = models; } } consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java
@@ -10,8 +10,10 @@ import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.HashMap; import java.util.List; /** * @Description 物品模板 @@ -86,4 +88,41 @@ models.setStates(Constants.STATES_DELETED); return this.update(models); } /** * @Description 根据规格型号id查询规格型号 * @Author 卢庆阳 * @Date 2023/11/2 * @param idList */ public List<BaseGoodsModels> selectByModelsIdList(List<Long> idList) { if (CollectionUtils.isEmpty(idList)) { log.error("参数错误"); return null; } StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_models WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); sql.append(" and id in ( "); for (int i = 0; i < idList.size(); i++) { sql.append(idList.get(i)); if (i < idList.size() - 1) { sql.append(","); } } sql.append(" ) "); return this.select(sql.toString(), paramts, new BaseGoodsModels()); } /** * @Description 根据物品id查询规格型号 * @Author 卢庆阳 * @Date 2023/10/30 */ public List<BaseGoodsModels> queryByGoodsTemplatesId(Long goodsTemplatesId) { BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); baseGoodsModels.setGoodsTemplatesId(goodsTemplatesId); return this.select(baseGoodsModels); } } consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
@@ -3,8 +3,7 @@ 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; import com.consum.base.pojo.*; import com.consum.base.util.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; @@ -41,6 +40,8 @@ private LWhProcureModelService lWhProcureModelService; @Autowired private LWhFormOutputCoreService lWhFormOutputCoreService; @Autowired private BaseGoodsModelsServiceImpl baseGoodsModelsService; private static String QUERY_FORM_OUTPUT_LIST = "SELECT * FROM l_wh_form_output WHERE 1 = 1"; @@ -146,7 +147,7 @@ * @Author 卢庆阳 * @Date 2023/10/27 */ public int add(LWhFormOutputParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { public int add(LWhFormOutputInsertParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { //1.新增出库单记录 LWhFormOutput lWhFormOutput = new LWhFormOutput(); //出入库id @@ -168,8 +169,7 @@ lWhFormOutput.setAgencyName(sysInfo.getTenantName()); lWhFormOutput.setOperatorId(sysInfo.getId()); lWhFormOutput.setOperatorName(sysInfo.getUserName()); long dateTimeNumber = DateUtils.getDateTimeNumber(System.currentTimeMillis()); lWhFormOutput.setDealTime(dateTimeNumber); lWhFormOutput.setDealTime(param.getDealTime()); lWhFormOutput.setStates(1); int flag1 = this.insert(lWhFormOutput); if (flag1 == 0) { @@ -177,27 +177,43 @@ return 0; } //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.setBusinessId(lWhFormOutputId); lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); //lWhProcureModel.se lWhProcureModel.setCounts(model.getCounts()); //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null); lWhProcureModel.setWorehouseCount(goodsNum); modelList.add(lWhProcureModel); List<LWhFormOutputGoodsParams> goodsList = param.getGoods(); for (LWhFormOutputGoodsParams goods : goodsList) { List<LWhProcureModelParams> models = goods.getModels(); List<LWhProcureModel> modelList = new ArrayList<>(); for (LWhProcureModelParams model : models) { LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setId(IdUtil.generateId()); lWhProcureModel.setBusinessType(3); lWhProcureModel.setBusinessId(lWhFormOutputId); lWhProcureModel.setBaseGoodsModelsId(model.getBaseGoodsModelsId()); //根据型号id查询型号 BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.get(new BaseGoodsModels(model.getBaseGoodsModelsId())); if (baseGoodsModels != null) { lWhProcureModel.setBaseGoodsModelsName(baseGoodsModels.getModelName()); } lWhProcureModel.setCounts(model.getCounts()); //根据物品型号查询物品库存 int goodsNum = this.lWhGoodsService.queryGoodsModelNum(0,warehouseId, model.getBaseGoodsModelsId(), (short) 1, null); lWhProcureModel.setWorehouseCount(goodsNum); modelList.add(lWhProcureModel); } int flag2 = this.lWhProcureModelService.insert(modelList); if (flag2 != modelList.size()) { log.error("新增物品型号失败"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } } int flag2 = this.lWhProcureModelService.insert(modelList); if (flag2 != modelList.size()) { log.error("新增物品型号失败"); //3.根据出库单出库 Long lWarehouseFlowId = this.lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, currentUser, param.getDealTime()); if (lWarehouseFlowId == null) { log.error("根据出库单出库失败"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } return 1; } consum-base/src/main/java/com/consum/base/service/LWhFormScrappedGoodsService.java
@@ -1,7 +1,10 @@ package com.consum.base.service; import com.consum.model.po.LWhFormScrappedGoods; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * @ClassName LWhFormScrappedGoodsService @@ -13,4 +16,14 @@ @Service public class LWhFormScrappedGoodsService extends BaseServiceImpl { /** * @Description 根据报废单id查询报废单物品 * @Author 卢庆阳 * @Date 2023/11/2 */ public List<LWhFormScrappedGoods> getByFormScrappedId(Long id) { LWhFormScrappedGoods scrappedGoods = new LWhFormScrappedGoods(); scrappedGoods.setFormScrappedId(id); return this.select(scrappedGoods); } } consum-base/src/main/java/com/consum/base/service/LWhFormScrappedServiceImpl.java
@@ -2,19 +2,26 @@ 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.core.tools.MapRowMapper; import com.consum.base.pojo.*; import com.consum.base.util.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; 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; /** * @Description 报废单 @@ -33,22 +40,43 @@ private LWhGoodsService lWhGoodsService; @Autowired private LWhFormScrappedGoodsService scrappedGoodsService; @Autowired private SDictDataServiceImpl sDictDataService; @Autowired private BaseGoodsModelsServiceImpl baseGoodsModelsService; @Autowired private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; @Autowired private LWhFormScrappedCoreService lWhFormScrappedCoreService; private static String QUERY_LIST = "SELECT * FROM l_wh_form_scrapped WHERE 1 = 1"; private static final String QUERY_BF_DETAIL_LIST = "select lwfs.BUSINESS_FORM_CODE,\n" + " lwfsg.GOODS_TEMPLATE_NAME,\n" + " lwfsg.BASE_GOODS_MODELS_NAME,\n" + " lwfsg.COUNTS,\n" + " lwfs.AGENCY_NAME,\n" + " lwfs,OPERATOR_NAME,\n" + " lwfs,DEAL_TIME\n" + "from l_wh_form_scrapped lwfs\n" + " inner join l_wh_form_scrapped_goods lwfsg on lwfs.ID = lwfsg.FORM_SCRAPPED_ID "; /** * 新增 * * @param param * @param sysInfo * @param operatorUser * @param currentUser 当前登录用户 * @param sysInfo 当前登录用户 * @return */ //1.新增报废单 //2.新增报废单物品 public int add(LWhFormScrappedParam param, FinSysTenantUser sysInfo, S_user_core operatorUser) { public int add(LWhFormScrappedParam param, S_user_core currentUser, FinSysTenantUser sysInfo) { //1.新增报废单记录 LWhFormScrapped lWhFormScrapped = new LWhFormScrapped(); //调拨单id long lWhFormTransferId = IdUtil.generateId(); lWhFormScrapped.setId(lWhFormTransferId); //报废单id long lWhFormScrappedId = IdUtil.generateId(); lWhFormScrapped.setId(lWhFormScrappedId); lWhFormScrapped.setBusinessFormCode(codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Scrapped)); lWhFormScrapped.setWarehouseType(0); Long warehouseId = param.getWarehouseId(); @@ -78,28 +106,206 @@ return 0; } //2.新增报废单物品记录 //根据物品id查询物品 BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.get(new BaseGoodsTemplate(param.getBaseGoodsTemplateId())); if (goodsTemplate == null) { log.error("根据物品id查询物品"); return 0; } List<LWhFormScrappedGoodsParams> scrappedGoodsParamList = param.getScrappedGoodsList(); if (CollectionUtils.isEmpty(scrappedGoodsParamList)) { log.error("新增报废单物品记录 失败"); return 0; } //获取规格型号id List<Long> baseGoodsModelsIdList = scrappedGoodsParamList.stream().map(params -> params.getBaseGoodsModelsId()).collect(Collectors.toList()); //根据规格型号id查询规格型号 List<BaseGoodsModels> models = this.baseGoodsModelsService.selectByModelsIdList(baseGoodsModelsIdList); Map<Long, BaseGoodsModels> modelMap = models.stream().collect(Collectors.toMap(model -> model.getId(), model -> model)); //获取报废原因code List<String> scrappedCodeList = scrappedGoodsParamList.stream().map(params -> params.getScrappedCode()).collect(Collectors.toList()); //根据报废原因code查询数据字典 List<S_dict_data> s_dict_dataList = this.sDictDataService.selectByScrappedCodeList(scrappedCodeList); Map<Long, String> scrappedNameMap = s_dict_dataList.stream().collect(Collectors.toMap(s -> s.getDict_code(), s -> s.getDict_label())); 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); 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 报废原因 scrappedGoods.setScrappedName(scrappedNameMap.get(Long.valueOf(params.getScrappedCode()))); scrappedGoods.setFormScrappedId(lWhFormScrappedId); //物品模板 scrappedGoods.setBaseGoodsTemplateId(goodsTemplate.getId()); scrappedGoods.setGoodsTemplateName(goodsTemplate.getGoodsName()); //规格型号 Long baseGoodsModelsId = params.getBaseGoodsModelsId(); BaseGoodsModels baseGoodsModels = modelMap.get(baseGoodsModelsId); if (baseGoodsModels != null) { scrappedGoods.setBaseGoodsModelsId(baseGoodsModelsId); scrappedGoods.setBaseGoodsModelsName(baseGoodsModels.getModelName()); scrappedGoods.setUnit(baseGoodsModels.getUnit()); } scrappedGoodsList.add(scrappedGoods); } int flag2 = this.scrappedGoodsService.insert(scrappedGoodsList); if (flag2 != scrappedGoodsList.size()) { log.error("新增报废单物品记录"); log.error("新增报废单物品记录 失败"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } //3.根据报废单报废物品 Long lWarehouseFlowId = this.lWhFormScrappedCoreService.outFormByTransId(lWhFormScrappedId, currentUser, param.getDealTime()); if (lWarehouseFlowId == null) { log.error("根据出库单出库 失败"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return 0; } return 1; } /** * @Description 列表查询 * @Author 卢庆阳 * @Date 2023/11/2 */ public GenericPager queryList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) { HashMap<String, Object> paramts = new HashMap<>(); StringBuilder sql = new StringBuilder(QUERY_LIST); //报废单号 if (!StringUtils.isEmpty(param.getBusinessFormCode())) { sql.append(" and BUSINESS_FORM_CODE like :businessFormCode "); paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); } //物品名称 if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append(" AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=1 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)"); paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } //机构 sql.append(" and AGENCY_ID like :agencyId "); if (param.getAgencyId() != null){ paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT); } else { paramts.put("agencyId", sysInfo.getTenantId() + StringUtils.CHAR_PERCENT); } //报废时间 if (param.getDealTimeStart() != null) { sql.append(" and DEAL_TIME >=:dealTimeStart "); paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000); } if (param.getDealTimeEnd() != null) { sql.append(" and DEAL_TIME <:dealTimeEnd "); paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000); } sql.append(" ORDER BY DEAL_TIME DESC"); GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormScrapped()); return genericPager; } /** * @Description 根据id查询详情 * @Author 卢庆阳 * @Date 2023/11/2 */ public LWhFormScrappedExtend getById(Long id) { LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend(); //1.查询报废单 LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id)); if (lWhFormScrapped != null) { BeanUtils.copyProperties(lWhFormScrapped,scrappedExtend); } //2.查询报废单 List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id); if (!CollectionUtils.isEmpty(scrappedGoodsList)) { scrappedExtend.setScrappedGoodsList(scrappedGoodsList); } return scrappedExtend; } /** * 报废明细 * @param param * @return */ public GenericPager<Map<String, Object>> queryDetailList(LWhFormScrappedParam param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_BF_DETAIL_LIST); HashMap<String, Object> paramts = new HashMap<>(); //报废单号 if (!StringUtils.isEmpty(param.getBusinessFormCode())) { sql.append(" and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE "); paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); } //物品名称 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()); } //机构 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 (!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.getDealTimeStart() != null) { sql.append(" and DEAL_TIME >=:dealTimeStart "); paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000); } if (param.getDealTimeEnd() != null) { sql.append(" and DEAL_TIME <:dealTimeEnd "); paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000); } sql.append(" ORDER BY DEAL_TIME DESC "); return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); } /** * @Description 导出报废登记单 * @Author 卢庆阳 * @Date 2023/11/2 */ public LWhFormScrappedExtend export(Long id, FinSysTenantUser sysInfo) { LWhFormScrappedExtend scrappedExtend = new LWhFormScrappedExtend(); //1.查询报废单 LWhFormScrapped lWhFormScrapped = this.get(new LWhFormScrapped(id)); if (lWhFormScrapped != null) { lWhFormScrapped.setDealTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); lWhFormScrapped.setOperatorName(sysInfo.getUserName()); BeanUtils.copyProperties(lWhFormScrapped,scrappedExtend); } //2.查询报废单物品 List<LWhFormScrappedGoods> scrappedGoodsList = this.scrappedGoodsService.getByFormScrappedId(id); if (!CollectionUtils.isEmpty(scrappedGoodsList)) { scrappedExtend.setScrappedGoodsList(scrappedGoodsList); } return scrappedExtend; } } consum-base/src/main/java/com/consum/base/service/SDictDataServiceImpl.java
@@ -1,9 +1,39 @@ package com.consum.base.service; import com.consum.model.po.BaseGoodsModels; import com.consum.model.po.S_dict_data; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.HashMap; import java.util.List; @Service public class SDictDataServiceImpl extends BaseServiceImpl { /** * @Description 根据报废原因code查询数据字典 * @Author 卢庆阳 * @Date 2023/11/2 */ public List<S_dict_data> selectByScrappedCodeList(List<String> scrappedCodeList) { if (CollectionUtils.isEmpty(scrappedCodeList)) { log.error("参数错误"); return null; } StringBuilder sql = new StringBuilder("SELECT * FROM s_dict_data WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); sql.append(" and dict_code in ( "); for (int i = 0; i < scrappedCodeList.size(); i++) { sql.append(scrappedCodeList.get(i)); if (i < scrappedCodeList.size() - 1) { sql.append(","); } } sql.append(" ) "); return this.select(sql.toString(), paramts, new S_dict_data()); } }