consum-base/src/main/java/com/consum/base/controller/BaseWarehouseController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consum-base/src/main/java/com/consum/base/service/BaseWarehouseServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
consum-base/src/main/java/com/consum/base/controller/BaseWarehouseController.java
@@ -13,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @Description 仓库管理 * @Author 卢庆阳 @@ -49,11 +51,11 @@ */ @GetMapping("/list") public ResponseValue queryList(BaseWarehouseParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager<BaseWarehouse> pager = this.baseWarehouseService.queryList(param,sysInfo); // FinSysTenantUser sysInfo = this.getSysInfo(); // if (sysInfo == null) { // return ResponseValue.error("登录用户信息不存在"); // } GenericPager<BaseWarehouse> pager = this.baseWarehouseService.queryList(param); return ResponseValue.success(pager); } @@ -77,7 +79,7 @@ } /** * 根据id查询仓库详情 * 根据仓库id查询仓库详情 * @author 卢庆阳 * @Date 2023/10/26 */ @@ -120,5 +122,21 @@ return ResponseValue.success(); } /** * @Description 根据机构id查询机构仓库 * @Author 卢庆阳 * @Date 2023/10/27 */ @GetMapping("/select/tenant_warehouse") public ResponseValue getByAgencyId(Long agencyId) { if (agencyId == null) { return ResponseValue.error("机构id为空"); } List<BaseWarehouse> list = this.baseWarehouseService.getByAgencyId(agencyId); if (list == null) return ResponseValue.error("查询失败!"); return ResponseValue.success("查询成功!", list); } } consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
New file @@ -0,0 +1,54 @@ package com.consum.base.controller; import com.consum.base.BaseController; import com.consum.base.pojo.BaseGoodsTemplateParam; import com.consum.base.pojo.LWhFormOutputParam; import com.consum.base.service.BaseCategoryServiceImpl; import com.consum.base.service.LWhFormOutputServiceImpl; import com.consum.model.po.BaseGoodsTemplate; import com.consum.model.po.FinSysTenantUser; import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.StringUtils; 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/10/27 */ @RestController @RequestMapping("/pc/l/wh/form/output") public class LWhFormOutputController extends BaseController { @Autowired private LWhFormOutputServiceImpl lWhFormOutputService; /** * @Description 新增出库单 * @Author 卢庆阳 * @Date 2023/10/27 */ @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormOutputParam param) { S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("登录用户信息不存在"); } int result = this.lWhFormOutputService.add(param, currentUser,this.getSysInfo()); if (result > 0) return ResponseValue.success(1); return ResponseValue.error("新增失败!"); } } consum-base/src/main/java/com/consum/base/pojo/LWhFormOutputParam.java
New file @@ -0,0 +1,78 @@ 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; /** * @Description 出库单参数 * @Author 卢庆阳 * @Date 2023/10/27 */ public class LWhFormOutputParam extends ParamRequest { /** * 仓库id */ private Long warehouseId; /** * 出库时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate dealTime; /** * 记录物品信息和规格型号 */ private List<LWhGoodsRecord> list; /** * 物品id */ private Long baseGoodsTemplateId; /** * 物品名称 */ private String goodsTemplateName; public Long getWarehouseId() { return warehouseId; } public void setWarehouseId(Long warehouseId) { this.warehouseId = warehouseId; } public LocalDate getDealTime() { return dealTime; } public void setDealTime(LocalDate dealTime) { this.dealTime = dealTime; } public List<LWhGoodsRecord> getList() { return list; } public void setList(List<LWhGoodsRecord> list) { this.list = list; } 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/service/BaseCategoryServiceImpl.java
@@ -94,8 +94,8 @@ } //状态 if (param.getStates() != null) { sql.append(" and status =:status "); paramts.put("status", param.getStates()); sql.append(" and states =:states "); paramts.put("states", param.getStates()); } else { sql.append(" and states !=3 "); } consum-base/src/main/java/com/consum/base/service/BaseWarehouseServiceImpl.java
@@ -9,7 +9,6 @@ import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; 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; @@ -49,12 +48,12 @@ baseWarehouse.setId(IdUtil.generateId()); baseWarehouse.setWarehouseType(Constants.WAREHOUSE_TYPE_TENANT); baseWarehouse.setWarehouseCode(codeGeneratorService.createWarehouseCode()); //根据机构id查询机构 FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(baseWarehouse.getAgencyId())); if (finSysTenant != null) { baseWarehouse.setParentAgencyId(finSysTenant.getParentId()); baseWarehouse.setAgencyName(finSysTenant.getName()); } // //根据机构id查询机构 // FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(baseWarehouse.getAgencyId())); // if (finSysTenant != null) { // baseWarehouse.setParentAgencyId(finSysTenant.getParentId()); // baseWarehouse.setAgencyName(finSysTenant.getName()); // } baseWarehouse.setIsDefault(Constants.IS_DEFAULT_YES); return this.insert(baseWarehouse); @@ -65,7 +64,8 @@ * @Author 卢庆阳 * @Date 2023/10/26 */ public GenericPager<BaseWarehouse> queryList(BaseWarehouseParam param, FinSysTenantUser sysInfo) { // public GenericPager<BaseWarehouse> queryList(BaseWarehouseParam param, FinSysTenantUser sysInfo) { public GenericPager<BaseWarehouse> queryList(BaseWarehouseParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM base_warehouse WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); @@ -80,12 +80,12 @@ paramts.put("CLASSIFICATION_CODE", param.getClassificationCode()); } //机构id sql.append(" and AGENCY_ID =:AGENCY_ID "); if (param.getAgencyId() != null) { paramts.put("AGENCY_ID", param.getAgencyId()); } else { paramts.put("AGENCY_ID", Long.valueOf(sysInfo.getTenantId())); } // sql.append(" and AGENCY_ID =:AGENCY_ID "); // if (param.getAgencyId() != null) { // paramts.put("AGENCY_ID", param.getAgencyId()); // } else { // paramts.put("AGENCY_ID", Long.valueOf(sysInfo.getTenantId())); // } //状态 if (param.getStates() != null) { sql.append(" and states =:states "); @@ -148,4 +148,22 @@ } /** * @Description 根据机构id查询机构仓库 * @Author 卢庆阳 * @Date 2023/10/27 * @return */ public List<BaseWarehouse> getByAgencyId(Long agencyId) { StringBuilder sql = new StringBuilder("SELECT * FROM base_warehouse WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); //机构id if (agencyId != null) { sql.append(" and AGENCY_ID =:AGENCY_ID "); paramts.put("AGENCY_ID", agencyId); } return select(sql.toString(), paramts, new BaseWarehouse()); } } consum-base/src/main/java/com/consum/base/service/LWhFormOutputServiceImpl.java
New file @@ -0,0 +1,204 @@ package com.consum.base.service; import com.consum.base.Constants; import com.consum.base.core.param.BaseWarehouseParam1; import com.consum.base.pojo.LWhFormOutputParam; import com.consum.base.util.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.DateUtils; import com.walker.jdbc.service.BaseServiceImpl; import lombok.extern.slf4j.Slf4j; 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.List; /** * @Description 出库单 * @Author 卢庆阳 * @Date 2023/10/27 */ @Slf4j @Service public class LWhFormOutputServiceImpl extends BaseServiceImpl { @Autowired private BaseWarehouseServiceImpl baseWarehouseService; @Autowired private LWhGoodsService lWhGoodsService; @Autowired private LWhProcureModelService lWhProcureModelService; @Autowired private LWhFormOutputCoreService lWhFormOutputCoreService; // /** // * @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); // 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); // // //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); // } // // //4.新增l_wh_goods_record记录 // List<LWhGoodsRecord> recordList = param.getList(); // if (CollectionUtils.isEmpty(recordList)) { // log.error("规格型号为空"); // return 0; // } // int flag5 = 0; // int number = -1; //出库后,物品剩余数量 // for (LWhGoodsRecord record : recordList) { // //物品id和物品名称 // record.setBaseGoodsTemplateId(param.getBaseGoodsTemplateId()); // record.setGoodsTemplateName(param.getGoodsTemplateName()); // // record.setId(IdUtil.generateId()); // record.setWarehouseId(warehouseId); // //根据物品型号查询物品库存 // int goodsNum = this.lWhGoodsService.queryGoodsModelNum(warehouseId, record.getBaseGoodsModelsId(), (short) 1, null); // record.setInitialCount(goodsNum); // record.setThisType(2); // // //判断出库数量是否小于库存 // number = goodsNum - record.getThisCount(); // if (number < 0) { // log.error("库存不足"); // break; // } // record.setEndCount(number); // record.setDealTime(dateTimeNumber); // record.setWarehouseFlowId(lWarehouseFlowId); // // //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; // } // //如果出库后,剩余库存大于0,新增l_wh_goods_record记录 // int flag4 = 0; // if (number >= 0){ // flag4 = this.lWhGoodsService.insert(recordList); // } // // //如果有一条记录新增失败,则回滚 // if (flag1 == 0 || flag3 == 0 || flag4 != recordList.size() || flag5 != recordList.size() || number < 0) { // 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); 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(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; } }