consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java
@@ -45,13 +45,13 @@ private long defaultParentId = 0L; /** * @Description 获取分类树 * @Description 获取分类树 * @Author 卢庆阳 * @Date 2023/10/30 */ @GetMapping("/select/tree") public ResponseValue tree(String categoryName) { List<ProjectTreeResult> tree = this.baseCategoryService.tree(categoryName); List<ProjectTreeResult> tree = this.baseCategoryService.tree(); return ResponseValue.success(tree); } @@ -75,7 +75,9 @@ } int result = this.baseCategoryService.add(param, this.getCurrentUser()); if (result > 0) return ResponseValue.success(1); if (result > 0) { return ResponseValue.success(1); } return ResponseValue.error("新增失败!"); } @@ -123,6 +125,7 @@ /** * 修改状态 * * @author 卢庆阳 * @date 2023/10/23 */ @@ -152,13 +155,14 @@ if (baseCategory.getId() == null) { return ResponseValue.error("分类id为空"); } int num = this.baseCategoryService.updateById(baseCategory,this.getCurrentUser()); int num = this.baseCategoryService.updateById(baseCategory, this.getCurrentUser()); return num > 0 ? ResponseValue.success(1) : ResponseValue.error("删除失败!"); } /** * 根据物品id查询节点详情 * * @author 卢庆阳 * @Date 2023/10/23 */ @@ -168,7 +172,9 @@ return ResponseValue.error("分类id为空"); } BaseCategory baseCategory = this.baseCategoryService.getById(id); if (baseCategory == null) return ResponseValue.error("查询失败!"); if (baseCategory == null) { return ResponseValue.error("查询失败!"); } return ResponseValue.success("查询成功!", baseCategory); } consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -167,11 +167,11 @@ } @GetMapping("/query/goodsTemplate") public ResponseValue getByAgencyId(Long agencyId) { if (agencyId == null) { return ResponseValue.error("机构id为空"); } List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryByAgencyId(agencyId); public ResponseValue queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId) { // if (agencyId == null) { // return ResponseValue.error("机构id为空"); // } List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, categoryId); if (list == null) { return ResponseValue.error("查询失败!"); } consum-base/src/main/java/com/consum/base/controller/DepFormLendingController.java
File was deleted consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
@@ -2,20 +2,23 @@ import com.consum.base.BaseController; import com.consum.base.pojo.LWarehouseFlowParam; import com.consum.base.pojo.response.WarehouseFlowVO; import com.consum.base.service.LWarehouseFlowService; import com.consum.base.util.MapUtils; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.web.ResponseValue; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.compress.utils.Lists; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Map; /** * @ClassName lWarehouseFlowController * @Date 2023/10/27 * @Description * @Version 1.0 @@ -23,6 +26,7 @@ @RestController @RequestMapping("/pc/warehouse/flow") public class LWarehouseFlowController extends BaseController { @Resource private LWarehouseFlowService lWarehouseFlowService; @@ -33,6 +37,19 @@ return ResponseValue.error("登录用户信息不存在"); } GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryBusinessFlow(param); ArrayList<WarehouseFlowVO> result = Lists.newArrayList(); genericPager.getDatas().forEach(map -> { WarehouseFlowVO warehouseFlowVO = MapUtils.convertMapToObj(MapUtils.toReplaceKeyLow(map), WarehouseFlowVO.class); result.add(warehouseFlowVO); }); try { Field fieldDatas = GenericPager.class.getDeclaredField("datas"); fieldDatas.setAccessible(true); fieldDatas.set(genericPager, result); } catch (Exception e) { logger.error(e.getMessage(), e); } return ResponseValue.success(genericPager); } } consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -4,35 +4,70 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.WhBusinessEnum; import com.consum.base.pojo.LWhFormProcureExtend; import com.consum.base.core.tools.MapperUtil; import com.consum.base.pojo.LWhFormProcureGoodsParams; import com.consum.base.pojo.LWhFormProcureParam; import com.consum.base.pojo.LWhProcureModelParams; import com.consum.base.service.*; import com.consum.model.po.*; import com.consum.base.pojo.query.FormProcureQryDto; import com.consum.base.pojo.response.FormProcureVO; import com.consum.base.pojo.response.FromProcureTemplateInfoVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.LWhFormProcureExtendVO; import com.consum.base.pojo.response.LWhFormProcureGoodsVO; import com.consum.base.service.BaseGoodsTemplateServiceImpl; import com.consum.base.service.BaseWarehouseServiceImpl; import com.consum.base.service.FinSysTenantServiceImpl; import com.consum.base.service.LOrgSupplierServiceImpl; import com.consum.base.service.LWhFormProcureCoreService; import com.consum.base.service.LWhFormProcureGoodsService; import com.consum.base.service.LWhFormProcureService; import com.consum.base.service.LWhGoodsService; import com.consum.base.service.LWhProcureModelService; import com.consum.base.util.MapUtils; import com.consum.model.po.BaseGoodsTemplate; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LOrgSupplier; import com.consum.model.po.LWhFormProcure; import com.consum.model.po.LWhFormProcureGoods; import com.consum.model.po.LWhProcureModel; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.NumberGenerator; import com.walker.web.ResponseValue; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.lang.reflect.Field; import java.util.*; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.Resource; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; 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; /** * @ClassName LWhFormProcureController * @Date 2023/10/27 * @Description * @Version 1.0 **/ @Api(value = "仓库表单采购", tags = "仓库表单采购") @RestController @RequestMapping("/pc/whForm/procure") public class LWhFormProcureController extends BaseController { @Resource private LWhFormProcureService lWhFormProcureService; @Resource @@ -67,6 +102,8 @@ FinSysTenantUser sysTenantUser = this.getSysInfo(); String tenantId = sysTenantUser.getTenantId(); String tenantName = sysTenantUser.getTenantName(); // String tenantId = "100"; // String tenantName = "河南省分公司"; // 只能添加本机构仓库的进货单 //?????? // @@ -82,12 +119,12 @@ if (whFormProcureId == null) { whFormProcureId = NumberGenerator.getLongSequenceNumber(); } long procureTime = DateUtils.getDateTimeNumber(param.getProcureTime()); long procureTime = Long.valueOf(param.getProcureTime()); Set<String> supplierList = new HashSet<>(); ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>(); ArrayList<LWhProcureModel> whProcureModeLlist = new ArrayList<>(); ArrayList<LWhProcureModel> procureModelList = new ArrayList<>(); for (int i = 0; i < procureGoods.size(); i++) { LWhFormProcureGoodsParams procureGoodT = procureGoods.get(i); @@ -99,7 +136,6 @@ supplierList.add(supplier); } List<LWhProcureModelParams> models = procureGoodT.getModels(); if (CollectionUtils.isEmpty(models)) { return ResponseValue.error("采购单不能为空"); @@ -110,7 +146,8 @@ procureGood.setWhFormProcureId(whFormProcureId); procureGood.setBaseCategoryId(baseCategoryId); procureGood.setBaseGoodsTemplateId(baseGoodsTemplateId); procureGood.setGoodsTemplateName(null); // TODO 物品历史版本 procureGood.setGoodsTemplateName(procureGoodT.getGoodsTemplateName()); procureGood.setSupplier(supplier); procureGood.setSort(i); for (LWhProcureModelParams modelT : models) { @@ -145,12 +182,12 @@ model.setCounts(counts); model.setWorehouseCount(goodsModelNum); model.setSupplier(supplier); whProcureModeLlist.add(model); procureModelList.add(model); } procureGoodList.add(procureGood); } lWhFormProcureGoodsService.insertBatch(procureGoodList); lWhProcureModelService.insertBatch(whProcureModeLlist); lWhProcureModelService.insertBatch(procureModelList); // 插入 采购单物品【L_WH_FORM_PROCURE_GOODS】 LWhFormProcure lWhFormProcure = new LWhFormProcure(); @@ -185,8 +222,10 @@ /** * @Description 列表查询 */ @ApiOperation(value = "采购单列表查询", notes = "采购单列表查询") @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "采购查询条件", required = true, dataType = "FormProcureQryDto", paramType = "query")}) @GetMapping("/list") public ResponseValue queryFormProcureList(LWhFormProcureParam param) { public ResponseValue queryFormProcureList(FormProcureQryDto param) { S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("登录用户信息不存在"); @@ -197,29 +236,38 @@ //?????? GenericPager genericPager = lWhFormProcureService.queryFormProcureList(param); List<LWhFormProcure> datas = genericPager.getDatas(); ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>(); if (!CollectionUtils.isEmpty(datas)) { datas.forEach(item -> { List<LWhFormProcure> data = genericPager.getDatas(); ArrayList<FormProcureVO> result = new ArrayList<>(); if (!CollectionUtils.isEmpty(data)) { data.forEach(item -> { FormProcureVO fromProcureVO = new FormProcureVO(); BeanUtils.copyProperties(item, fromProcureVO); List<FromProcureTemplateInfoVO> procureTemplateInfoList = Lists.newArrayList(); // 查询型号数量 LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setBusinessType(1); lWhProcureModel.setBusinessId(item.getId()); List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel); LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend(); BeanUtils.copyProperties(item, formProcureExtend); formProcureExtend.setModels(models); newDatas.add(formProcureExtend); String sql = "select fpg.id,BASE_CATEGORY_ID ,BASE_GOODS_TEMPLATE_ID ,GOODS_TEMPLATE_NAME ,sum(counts) count " + "from L_WH_FORM_PROCURE_GOODS fpg left join L_WH_PROCURE_MODEL pm on fpg.id = pm.FROM_PROCURE_GOODS_ID " + "where fpg.WH_FORM_PROCURE_ID =:id group by pm.FROM_PROCURE_GOODS_ID"; Map<String, Object> paramMap = new HashMap<>(); paramMap.put("id", item.getId()); List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap); for (Map<String, Object> map : procureModelList) { FromProcureTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(MapUtils.toReplaceKeyLow(map), FromProcureTemplateInfoVO.class); procureTemplateInfoList.add(procureTemplateInfoVO); } fromProcureVO.setFromProcureTemplateInfoList(procureTemplateInfoList); result.add(fromProcureVO); }); } try { Field fieldDatas = GenericPager.class.getDeclaredField("datas"); fieldDatas.setAccessible(true); fieldDatas.set(genericPager, newDatas); fieldDatas.set(genericPager, result); } catch (Exception e) { e.printStackTrace(); } // genericPager.setDatas(newDatas); return ResponseValue.success(genericPager); } @@ -281,8 +329,8 @@ return ResponseValue.error("采购单id为空"); } LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id)); LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend(); BeanUtils.copyProperties(lWhFormProcure, formProcureExtend); LWhFormProcureExtendVO lWhFormProcureExtendVO = new LWhFormProcureExtendVO(); BeanUtils.copyProperties(lWhFormProcure, lWhFormProcureExtendVO); // 物品 LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods(); @@ -291,24 +339,51 @@ Field fieldModels = null; try { fieldModels = LWhFormProcureGoodsParams.class.getDeclaredField("models"); fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); } catch (NoSuchFieldException e) { e.printStackTrace(); } fieldModels.setAccessible(true); ArrayList<LWhFormProcureGoodsParams> procureGoodsParams = new ArrayList<>(); ArrayList<LWhFormProcureGoodsVO> procureGoodsVOList = new ArrayList<>(); for (LWhFormProcureGoods formProcureGood : formProcureGoods) { LWhFormProcureGoodsParams lWhFormProcureGoodsParams = new LWhFormProcureGoodsParams(); BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsParams); LWhFormProcureGoodsVO lWhFormProcureGoodsVO = new LWhFormProcureGoodsVO(); BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsVO); Long baseGoodsTemplateId = formProcureGood.getBaseGoodsTemplateId(); BaseGoodsTemplate queryEntity = new BaseGoodsTemplate(); queryEntity.setId(baseGoodsTemplateId); BaseGoodsTemplate baseGoodsTemplate = baseGoodsTemplateService.get(queryEntity); lWhFormProcureGoodsVO.setBaseCategoryName(baseGoodsTemplate.getCategoryName()); // 查询型号数量 LWhProcureModel lWhProcureModel = new LWhProcureModel(); lWhProcureModel.setFromProcureGoodsId(formProcureGood.getId()); List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel); fieldModels.set(lWhFormProcureGoodsParams, models); procureGoodsParams.add(lWhFormProcureGoodsParams); Map<String, Object> paramMap = new HashMap<>(); paramMap.put("formProcureGoodId", formProcureGood.getId()); String sql = "SELECT\n" + "pm.BASE_GOODS_MODELS_ID,pm.BASE_GOODS_MODELS_NAME,pm.PRICE,pm.COUNTS,pm.WOREHOUSE_COUNT,bgm.unit " + "FROM\n" + "\tl_wh_procure_model pm\n" + "\tLEFT JOIN base_goods_models bgm on pm.BASE_GOODS_MODELS_ID = bgm.id where pm.FROM_PROCURE_GOODS_ID =:formProcureGoodId"; List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil()); List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); procureModelList.forEach(item -> { GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); goodsModelVOList.add(goodsModelVO); }); fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); procureGoodsVOList.add(lWhFormProcureGoodsVO); } formProcureExtend.setProcureGoods(procureGoodsParams); return ResponseValue.success("查询成功!", formProcureExtend); lWhFormProcureExtendVO.setProcureGoods(procureGoodsVOList); return ResponseValue.success("查询成功!", lWhFormProcureExtendVO); } @ApiOperation(value = "采购单明细查询", notes = "采购单明细查询") @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "采购单明细查询", required = true, dataType = "FormProcureQryDto", paramType = "query")}) @GetMapping("detail/list") public ResponseValue queryFormProcureDetailList(FormProcureQryDto param) { S_user_core currentUser = this.getCurrentUser(); if (currentUser == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(param); return ResponseValue.success(genericPager); } } consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -7,6 +7,7 @@ import com.consum.base.pojo.UseRecordDto; import com.consum.base.pojo.UseRecordSkuDto; import com.consum.base.pojo.query.TransferQryDto; import com.consum.base.pojo.response.TransferInfoVO; import com.consum.base.service.BaseGoodsModelsServiceImpl; import com.consum.base.service.BaseWarehouseServiceImpl; import com.consum.base.service.LWhFormTransferCoreService; @@ -29,6 +30,10 @@ import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -49,6 +54,7 @@ */ @RestController @RequestMapping("/pc/l/wh/form/transfer") @Api(tags = "调拨分发管理") public class LWhFormTransferController extends BaseController { @Autowired @@ -69,6 +75,8 @@ /** * @Description 新增 */ @ApiOperation(value = "单据新增", notes = "单据新增") @ApiImplicitParam(name = "param", value = "单据新增", required = true, dataType = "LWhFormTransferParam") @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormTransferParam param) { S_user_core currentUser = this.getCurrentUser(); @@ -233,6 +241,10 @@ * @param transferQryDto * @return */ @ApiOperation(value = "部门物品分发列表明细", notes = "部门物品分发列表明细") @ApiImplicitParams({ @ApiImplicitParam(name = "transferQryDto", value = "调拨单查询条件", required = true) }) @GetMapping("/department/list") public ResponseValue departmentTransferList(TransferQryDto transferQryDto) { @@ -347,4 +359,18 @@ return ResponseValue.success(result); } @ApiOperation(value = "查询部门下的分发单", notes = "查询部门下的分发单") @ApiImplicitParams({ @ApiImplicitParam(name = "agencyId", value = "机构id", required = true, dataType = "Long", paramType = "query") }) @GetMapping("/query/detail") public ResponseValue queryDepartmentTransferOrder(Long agencyId) { TransferInfoVO transferInfoVO = new TransferInfoVO(); return ResponseValue.success(transferInfoVO); } } consum-base/src/main/java/com/consum/base/core/tools/MapperUtil.java
New file @@ -0,0 +1,29 @@ package com.consum.base.core.tools; import com.consum.base.util.MapUtils; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import org.springframework.jdbc.core.RowMapper; /** * @author asus * @version 1.0 * @description: TODO * @date 2023/11/11 14:40 */ public class MapperUtil implements RowMapper<Map<String, Object>> { @Override public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { Map<String, Object> row = new HashMap<>(); int columnCount = rs.getMetaData().getColumnCount(); for (int i = 1; i <= columnCount; i++) { String columnName = MapUtils.underlineToCamel(rs.getMetaData().getColumnName(i)); Object columnValue = rs.getObject(i); row.put(columnName, columnValue); } return row; } } consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java
@@ -1,116 +1,51 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName LWarehouseFlowParam * @Date 2023/10/27 * @Description * @Version 1.0 **/ @ApiModel(value = "库存流水查询参数") @Data public class LWarehouseFlowParam extends ParamRequest { //单据类型 1 采购2 调拨 3出库4部门分发 5报废 @ApiModelProperty(value = "单据类型 1 采购2 调拨 3出库4部门分发 5报废") private Short businessType; // 业务单据编号 @ApiModelProperty(value = "业务单据编号") private String businessFormCode; //物品名称 @ApiModelProperty(value = "物品名称") private String goodsTemplateName; //规格型号 @ApiModelProperty(value = "规格型号") private String baseGoodsModelsName; // 机构 @ApiModelProperty(value = "机构") private Long agencyId; //创建人 @ApiModelProperty(value = "创建人") private String createdName; // 操作时间 @ApiModelProperty(value = "操作时间") private Long dealTimeStart; @ApiModelProperty(value = "操作时间") private Long dealTimeEnd; public Short getBusinessType() { return businessType; } public void setBusinessType(Short businessType) { this.businessType = businessType; } 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 String getBaseGoodsModelsName() { return baseGoodsModelsName; } public void setBaseGoodsModelsName(String baseGoodsModelsName) { this.baseGoodsModelsName = baseGoodsModelsName; } public Long getAgencyId() { return agencyId; } public void setAgencyId(Long agencyId) { this.agencyId = agencyId; } public String getCreatedName() { return createdName; } public void setCreatedName(String createdName) { this.createdName = createdName; } 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; } @ApiModelProperty(value = "每页显示条数") private Integer pageSize = 10; @ApiModelProperty(value = "当前页数") 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; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsParams.java
@@ -1,17 +1,18 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; import java.util.List; import lombok.Data; /** * @ClassName LWhFormProcureGoodsParams * @Date 2023/10/27 * @Description * @Version 1.0 **/ @Data public class LWhFormProcureGoodsParams extends ParamRequest { //分类编号 private Long baseCategoryId = null; //物品模版编号 @@ -21,77 +22,15 @@ private List<LWhProcureModelParams> models; public Long getBaseCategoryId() { return baseCategoryId; } public void setBaseCategoryId(Long baseCategoryId) { this.baseCategoryId = baseCategoryId; } public Long getBaseGoodsTemplateId() { return baseGoodsTemplateId; } public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) { this.baseGoodsTemplateId = baseGoodsTemplateId; } public String getSupplier() { return supplier; } public void setSupplier(String supplier) { this.supplier = supplier; } public List<LWhProcureModelParams> getModels() { return models; } public void setModels(List<LWhProcureModelParams> models) { this.models = models; } // 主键 private Long id = null; // 属性列表 private Long whFormProcureId = null; private String goodsTemplateName = null; private String goodsTemplateName; private Integer sort = null; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getWhFormProcureId() { return whFormProcureId; } public void setWhFormProcureId(Long whFormProcureId) { this.whFormProcureId = whFormProcureId; } public String getGoodsTemplateName() { return goodsTemplateName; } public void setGoodsTemplateName(String goodsTemplateName) { this.goodsTemplateName = goodsTemplateName; } public Integer getSort() { return sort; } public void setSort(Integer sort) { this.sort = sort; } } consum-base/src/main/java/com/consum/base/pojo/LWhFormTransferParam.java
@@ -1,6 +1,8 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.AllArgsConstructor; import lombok.Data; @@ -11,209 +13,102 @@ * @Author 卢庆阳 * @Date 2023/10/30 */ @ApiModel(value = "单据新增信息") @Data @AllArgsConstructor @NoArgsConstructor public class LWhFormTransferParam extends ParamRequest { @ApiModelProperty(value = "主键") private Long id; /** * 入库仓库编号 */ @ApiModelProperty(value = "入库仓库编号") private Long inWarehouseId; /** * 出库仓库机构编号(调拨机构) */ @ApiModelProperty(value = "出库仓库机构编号(调拨机构)") private Long outAgencyId; /** * 调拨时间 */ @ApiModelProperty(value = "调拨时间") private Long createTime; /** * 调拨手续 */ @ApiModelProperty(value = "调拨手续") private String procureDoc; /** * 调拨单型号 */ @ApiModelProperty(value = "调拨单型号") private List<LWhProcureModelParams> models; /** * 物品id */ @ApiModelProperty(value = "物品id") private Long baseGoodsTemplateId; /** * 物品模版名称 */ @ApiModelProperty(value = "物品模版名称") private String goodsTemplateName; /** * 调拨单号 */ @ApiModelProperty(value = "调拨单号") private String businessFormCode; /** * 接收机构 */ @ApiModelProperty(value = "接收机构") private Long inAgencyId; /** * 状态 0=待出库;1=待接收;2=已入库 */ @ApiModelProperty(value = "状态 0=待出库;1=待接收;2=已入库") private Short states; /** * 创建人 */ @ApiModelProperty(value = "创建人") private String operatorName; /** * 申请时间 开始 */ @ApiModelProperty(value = "申请时间 开始") private Long createTimeStart; /** * 申请时间 结束 */ @ApiModelProperty(value = "申请时间 结束") private Long createTimeEnd; /** * 接收时间 开始 */ @ApiModelProperty(value = "接收时间 开始") private Long inTimeStart; /** * 接收时间 结束 */ @ApiModelProperty(value = "接收时间 结束") private Long inTimeEnd; /** * 单据类型。0仓库调拨;1部门分发;2部门物品回退 */ @ApiModelProperty(value = "单据类型。0仓库调拨;1部门分发;2部门物品回退") private Integer transferBusinessType; /** * 部门物品使用人 * TODO 属性重复 */ @ApiModelProperty(value = "部门物品使用人") private List<LWhProcureModelUserDTO> procureModelUserList; public Long getInWarehouseId() { return inWarehouseId; } public void setInWarehouseId(Long inWarehouseId) { this.inWarehouseId = inWarehouseId; } public Long getOutAgencyId() { return outAgencyId; } public void setOutAgencyId(Long outAgencyId) { this.outAgencyId = outAgencyId; } public Long getCreateTime() { return createTime; } public void setCreateTime(Long createTime) { this.createTime = createTime; } 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; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getProcureDoc() { return procureDoc; } public void setProcureDoc(String procureDoc) { this.procureDoc = procureDoc; } public String getBusinessFormCode() { return businessFormCode; } public void setBusinessFormCode(String businessFormCode) { this.businessFormCode = businessFormCode; } public Long getInAgencyId() { return inAgencyId; } public void setInAgencyId(Long inAgencyId) { this.inAgencyId = inAgencyId; } public Short getStates() { return states; } public void setStates(Short states) { this.states = states; } public String getOperatorName() { return operatorName; } public void setOperatorName(String operatorName) { this.operatorName = operatorName; } public Long getCreateTimeStart() { return createTimeStart; } public void setCreateTimeStart(Long createTimeStart) { this.createTimeStart = createTimeStart; } public Long getCreateTimeEnd() { return createTimeEnd; } public void setCreateTimeEnd(Long createTimeEnd) { this.createTimeEnd = createTimeEnd; } public Long getInTimeStart() { return inTimeStart; } public void setInTimeStart(Long inTimeStart) { this.inTimeStart = inTimeStart; } public Long getInTimeEnd() { return inTimeEnd; } public void setInTimeEnd(Long inTimeEnd) { this.inTimeEnd = inTimeEnd; } } consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java
@@ -2,6 +2,7 @@ import com.walker.web.param.ParamRequest; import java.util.List; import lombok.Data; /** * @ClassName LWhProcureModelParams @@ -9,6 +10,7 @@ * @Description * @Version 1.0 **/ @Data public class LWhProcureModelParams extends ParamRequest { // //规格型号编号 @@ -20,45 +22,9 @@ private Integer procureModelBusinessType; // 计量单位 private String baseUnit; private List<LWhProcureModelUserDTO> lWhProcureModelUserList; public Long getPrice() { return price; } public void setPrice(Long price) { this.price = price; } public Integer getCounts() { return counts; } public void setCounts(Integer counts) { this.counts = counts; } public Long getBaseGoodsModelsId() { return baseGoodsModelsId; } public void setBaseGoodsModelsId(Long baseGoodsModelsId) { this.baseGoodsModelsId = baseGoodsModelsId; } public List<LWhProcureModelUserDTO> getlWhProcureModelUserList() { return lWhProcureModelUserList; } public void setlWhProcureModelUserList(List<LWhProcureModelUserDTO> lWhProcureModelUserList) { this.lWhProcureModelUserList = lWhProcureModelUserList; } public Integer getProcureModelBusinessType() { return procureModelBusinessType; } public void setProcureModelBusinessType(Integer procureModelBusinessType) { this.procureModelBusinessType = procureModelBusinessType; } } consum-base/src/main/java/com/consum/base/pojo/ProjectTreeResult.java
@@ -2,45 +2,23 @@ import com.consum.model.po.BaseCategory; import com.walker.web.param.ParamRequest; import java.util.List; import lombok.Data; @Data public class ProjectTreeResult extends ParamRequest { List<ProjectTreeResult> children; private Long id; private String label; public List<ProjectTreeResult> getChildren() { return children; } public void setChildren(List<ProjectTreeResult> children) { this.children = children; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public ProjectTreeResult() { } private Integer sort; public ProjectTreeResult(BaseCategory baseCategory) { this.id = baseCategory.getId(); this.label = baseCategory.getCategoryName(); this.sort = baseCategory.getOrderNumber(); } } consum-base/src/main/java/com/consum/base/pojo/query/FormProcureQryDto.java
New file @@ -0,0 +1,73 @@ package com.consum.base.pojo.query; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author asus * @version 1.0 * @description: 采购查询条件 * @date 2023/11/10 16:51 */ @ApiModel(value = "采购查询条件") @Data public class FormProcureQryDto { @ApiModelProperty(value = "主键") private Long id; /** * 仓库编号 */ @ApiModelProperty(value = "仓库编号") private Long warehouseId; /** * 入库单号 */ @ApiModelProperty(value = "入库单号") private String businessFormCode; /** * 物品模版名称 */ @ApiModelProperty(value = "物品模版名称") private String goodsTemplateName; /** * 机构 */ @ApiModelProperty(value = "机构") private Long agencyId; /** * 创建人 */ @ApiModelProperty(value = "创建人") private String createName; /** * 1=待入库;2=已入库 */ @ApiModelProperty(value = "1=待入库;2=已入库") private Integer states; /** * 入库时间 开始 */ @ApiModelProperty(value = "入库时间 开始") @JsonFormat(pattern = "yyyyMMdd", timezone = "GMT+8") private Long incomeTimeStart; /** * 入库时间 结束 */ @ApiModelProperty(value = "入库时间 结束") @JsonFormat(pattern = "yyyyMMdd", timezone = "GMT+8") private Long incomeTimeEnd; /** * 规格型号id */ @ApiModelProperty(value = "规格型号id") private Long baseGoodsTemplateId; @ApiModelProperty(value = "每页显示条数") private Integer pageSize = 10; @ApiModelProperty(value = "当前页数") private Integer pageNum = 1; } consum-base/src/main/java/com/consum/base/pojo/query/TransferQryDto.java
@@ -1,13 +1,16 @@ package com.consum.base.pojo.query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @description: 调拨单查询条件 * @date 2023/11/6 11:47 */ @ApiModel(value = "调拨单查询条件") @Data public class TransferQryDto { @@ -15,56 +18,69 @@ /** * 调拨单号/分发单号 */ @ApiModelProperty(value = "调拨单号/分发单号") private String businessFormCode; /** * 物品模版名称 */ @ApiModelProperty(value = "物品模版名称") private String goodsTemplateName; /** * 出库仓库机构编号(调拨机构) */ @ApiModelProperty(value = "出库仓库机构编号(调拨机构)") private Long outAgencyId; /** * 接收机构 */ @ApiModelProperty(value = "接收机构") private Long inAgencyId; /** * 状态 0=待出库;1=待接收;2=已入库 */ @ApiModelProperty(value = "状态 0=待出库;1=待接收;2=已入库") private Short states; /** * 创建人/分发人 */ @ApiModelProperty(value = "创建人/分发人") private String operatorName; /** * 申请时间 开始 */ @ApiModelProperty(value = "申请时间 开始") private Long createTimeStart; /** * 申请时间 结束 */ @ApiModelProperty(value = "申请时间 结束") private Long createTimeEnd; /** * 接收时间 开始 */ @ApiModelProperty(value = "接收时间 开始") private Long inTimeStart; /** * 接收时间 结束 */ @ApiModelProperty(value = "接收时间 结束") private Long inTimeEnd; /** * 规格型号id */ @ApiModelProperty(value = "规格型号id") private Long baseGoodsTemplateId; /** * 页码 */ @ApiModelProperty(value = "页码") private Integer pageNum; /** * 页大小 */ @ApiModelProperty(value = "页大小") private Integer pageSize; // /** consum-base/src/main/java/com/consum/base/pojo/response/FormProcureDetailVO.java
New file @@ -0,0 +1,43 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import lombok.Data; /** * @author asus * @version 1.0 * @description: 采购列表明细信息 * @date 2023/11/11 9:51 */ @ApiModel(value = "采购列表明细信息") @Data public class FormProcureDetailVO { // 主键 private Long id; // 业务单号 private String businessFormCode; //物品模版编号 private Long baseGoodsTemplateId; //物品模版名称 private String goodsTemplateName; //规格型号编号 private Long baseGoodsModelsId; //规格型号名称 private String goodsModelsName; //单价 private Long price; //物品分发数量 private Integer goodsNum; //金额 private Long amount; //所属机构 private String agencyName; //创建人 private String createName; //操作时间 private String procureTime; } consum-base/src/main/java/com/consum/base/pojo/response/FormProcureVO.java
New file @@ -0,0 +1,72 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import java.util.List; import lombok.Data; /** * @author asus * @version 1.0 * @description: 采购列表明细信息 * @date 2023/11/10 11:37 */ @ApiModel(value = "采购列表明细信息") @Data public class FormProcureVO { // 主键 private Long id; // 属性列表 private String businessFormCode; private Long warehouseId; private String warehouseName; private Long buyerId; private String buyerName; private Long procureTime; private String procureDoc; private Integer buyType; private Integer states; private Long agencyId; private String agencyName; private Long incomeId; private String incomeName; private Long incomeTime; private String beiz; private Long lWarehouseFlowId; private List<FromProcureTemplateInfoVO> fromProcureTemplateInfoList; } consum-base/src/main/java/com/consum/base/pojo/response/FromProcureTemplateInfoVO.java
New file @@ -0,0 +1,23 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @date 2023/11/10 11:37 */ @ApiModel @Data public class FromProcureTemplateInfoVO { private Long id; private Long baseCategoryId; private Long baseGoodsTemplateId; private String goodsTemplateName; private Object count; } consum-base/src/main/java/com/consum/base/pojo/response/GoodsModelVO.java
New file @@ -0,0 +1,23 @@ package com.consum.base.pojo.response; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @date 2023/11/11 17:10 */ @Data public class GoodsModelVO { private Long id; private String baseGoodsModelsName; private String unit; private Long price; private Integer counts; private Integer worehouseCount; private Long baseGoodsModelsId; } consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureExtendVO.java
New file @@ -0,0 +1,69 @@ package com.consum.base.pojo.response; import java.util.List; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @date 2023/11/11 18:00 */ @Data public class LWhFormProcureExtendVO { // 主键 private Long id; // 属性列表 private String businessFormCode; private Long warehouseId; private String warehouseName; private Long buyerId; private String buyerName; private Long procureTime; private String procureDoc; private Integer buyType; private Integer states; private Long agencyId; private String agencyName; private Long incomeId; private String incomeName; private Long incomeTime; private String beiz; private Long lWarehouseFlowId; private List<LWhFormProcureGoodsVO> procureGoods; } consum-base/src/main/java/com/consum/base/pojo/response/LWhFormProcureGoodsVO.java
New file @@ -0,0 +1,33 @@ package com.consum.base.pojo.response; import java.util.List; import lombok.Data; /** * @ClassName LWhFormProcureGoodsParams * @Date 2023/10/27 * @Description * @Version 1.0 **/ @Data public class LWhFormProcureGoodsVO { // 主键 private Long id; //分类编号 private Long baseCategoryId; //分类名称 private String baseCategoryName; //物品模版编号 private Long baseGoodsTemplateId; //供应商 private String supplier; private Long whFormProcureId; private String goodsTemplateName; private Integer sort; private List<GoodsModelVO> models; } consum-base/src/main/java/com/consum/base/pojo/response/TransferInfoVO.java
New file @@ -0,0 +1,29 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author asus * @version 1.0 * @description: TODO * @date 2023/11/10 15:35 */ @ApiModel(value = "机构分发单信息") @Data public class TransferInfoVO { @ApiModelProperty(value = "id") private String id; @ApiModelProperty(value = "单号") private String code; @ApiModelProperty(value = "物品名称") private String name; @ApiModelProperty(value = "分发数量") private String num; @ApiModelProperty(value = "可退数量") private String refundNum; @ApiModelProperty(value = "分发时间") private String createDate; } consum-base/src/main/java/com/consum/base/pojo/response/WarehouseFlowVO.java
New file @@ -0,0 +1,40 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; /** * @author asus * @version 1.0 * @description: 仓库流水明细信息 * @date 2023/11/11 11:26 */ @ApiModel(value = "仓库流水明细信息") @NoArgsConstructor @Data public class WarehouseFlowVO { @ApiModelProperty(value = "商品模板名称") private String goodsTemplateName; @ApiModelProperty(value = "规格名称") private String baseGoodsModelsName; @ApiModelProperty(value = "交易时间") private Long dealTime; @ApiModelProperty(value = "交易类型") private Integer businessType; @ApiModelProperty(value = "创建人") private String createdName; @ApiModelProperty(value = "数量") private Integer thisCount; @ApiModelProperty(value = "交易单号") private String businessFormCode; @ApiModelProperty(value = "经营单位") private String agencyName; @ApiModelProperty(value = "交易单ID") private Long businessFormId; @ApiModelProperty(value = "交易类型") private Integer thisType; } consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
@@ -10,13 +10,12 @@ 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.stereotype.Service; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; /** * @Description 物品分类 @@ -38,7 +37,9 @@ BeanUtils.copyProperties(param, baseCategory); baseCategory.setId(IdUtil.generateId()); //层级 if (baseCategory.getFatherCategoryId() == 0L) { //一级分类 if (baseCategory.getFatherCategoryId() == null) { //一级分类 baseCategory.setFatherCategoryId(0L); baseCategory.setLevels(Constants.LEVELS_ONE); } else { //根据父类id查询上级分类信息 @@ -59,11 +60,11 @@ } /** * @param categoryName * @param fatherCategoryId * @Description 根据分类名称和父类id查询分类 * @Author 卢庆阳 * @Date 2023/10/23 * @param categoryName * @param fatherCategoryId */ public BaseCategory getByCategoryNameAndFatherCategoryId(String categoryName, Long fatherCategoryId) { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); @@ -87,7 +88,11 @@ public GenericPager<BaseCategory> queryBaseCategoryList(BaseCategoryParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); //分类名称 if (param.getFatherCategoryId() != null) { sql.append("and father_category_id =:fatherCategoryId "); paramts.put("fatherCategoryId", param.getFatherCategoryId()); } //分类名称 if (!StringUtils.isEmpty(param.getCategoryName())) { sql.append(" and category_name like:category_name "); @@ -110,7 +115,7 @@ } /** * @Description 编辑 * @Description 编辑 * @Author 卢庆阳 * @Date 2023/10/23 */ @@ -120,6 +125,7 @@ /** * 修改状态 * * @author 卢庆阳 * @date 2023/9/27 */ @@ -144,6 +150,7 @@ /** * 根据节点id查询节点详情 * * @author 卢庆阳 * @Date 2023/10/23 */ @@ -161,23 +168,42 @@ return this.select(QUERY_TREE_ALL, new Object[]{}, new BaseCategory()); } public List<ProjectTreeResult> tree(String categoryName) { public List<ProjectTreeResult> tree() { BaseCategory categoryParam = new BaseCategory(); categoryParam.setStates(1); List<BaseCategory> categories = select(categoryParam); return categories.stream() .filter(category -> Integer.valueOf(1).equals(category.getLevels())) .sorted(Comparator.comparing(BaseCategory::getOrderNumber)) .map(ProjectTreeResult::new) .peek(lv1TreeResult -> lv1TreeResult.setChildren(categories.stream().filter(categorie -> lv1TreeResult.getId().equals(categorie.getFatherCategoryId())).sorted(Comparator.comparing(BaseCategory::getOrderNumber)).map(ProjectTreeResult::new).collect(Collectors.toList()))) .collect(Collectors.toList()); //查出所有分类 List<BaseCategory> all = select(categoryParam); //组装成父子树形结构 //1级分类 List<ProjectTreeResult> menus = all.stream().filter(entity -> entity.getLevels() == 1).map(entity -> { ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity); projectTreeResult.setChildren(getChildren(projectTreeResult, all)); return projectTreeResult; }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList()); return menus; } /** * @Description 三级分类列表查询 * 递归查找所有菜单的子菜单 */ private List<ProjectTreeResult> getChildren(ProjectTreeResult root, List<BaseCategory> all) { List<ProjectTreeResult> children = all.stream().filter(entity -> entity.getFatherCategoryId().equals(root.getId())).map(entity -> { ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity); //通过递归找到子分类 projectTreeResult.setChildren(getChildren(projectTreeResult, all)); return projectTreeResult; }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList()); return children; } /** * @return * @Description 三级分类列表查询 * @Author 卢庆阳 * @Date 2023/10/30 * @return */ public List<BaseCategory> queryForLv3Tree() { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc"); consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -197,7 +197,12 @@ } int flag1 = this.update(baseGoodsTemplate); //2.修改规格型号的单位 // TODO id 物品型号修改待整理 List<BaseGoodsModels> modelsList = param.getModels(); for (BaseGoodsModels baseGoodsModel : modelsList) { BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); BeanUtils.copyProperties(baseGoodsModel, baseGoodsModels); } int flag2 = this.update(modelsList); if (flag1 > 0 && flag2 > 0) { @@ -295,13 +300,17 @@ return this.select(goodsTemplate); } public List<BaseGoodsTemplate> queryByAgencyId(Long agencyId) { public List<BaseGoodsTemplate> queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId) { StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_template WHERE 1=1 "); Map<String, Object> params = new HashMap<>(); if (agencyId != null) { sql.append(" AND model.id=:modelId"); sql.append("AND AGENCY_ID=:agencyId"); params.put("agencyId", agencyId); } if (categoryId != null) { sql.append("AND CATEGORY_ID=:categoryId"); params.put("categoryId", categoryId); } return this.select(sql.toString(), params, new BaseGoodsTemplate()); } } consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
@@ -5,14 +5,12 @@ import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Service; /** * @ClassName LWarehouseFlowService * @Date 2023/10/25 * @Description * @Version 1.0 @@ -26,7 +24,7 @@ * @param param * @return */ private static String QUERY_BUSINESS_FLOW = "SELECT flow.BUSINESS_TYPE as businessType,flow.BUSINESS_FORM_ID as businessFormId,tCaiGou.BUSINESS_FORM_CODE AS businessFormCode,record.GOODS_TEMPLATE_NAME AS goodsTemplateName,record.BASE_GOODS_MODELS_NAME AS baseGoodsModelsName,record.THIS_COUNT AS thisCount,record.THIS_TYPE AS thisType,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME END AS agencyName,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUYER_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.OPERATOR_NAME END AS createdName,flow.DEAL_TIME AS dealTime FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID WHERE 1=1"; private static String QUERY_BUSINESS_FLOW = "SELECT flow.BUSINESS_TYPE ,flow.BUSINESS_FORM_ID ,tCaiGou.BUSINESS_FORM_CODE ,record.GOODS_TEMPLATE_NAME ,record.BASE_GOODS_MODELS_NAME ,record.THIS_COUNT ,record.THIS_TYPE ,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME END agency_Name,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUYER_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.OPERATOR_NAME END created_Name,flow.DEAL_TIME deal_Time FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID WHERE 1=1"; public GenericPager<Map<String, Object>> queryBusinessFlow(LWarehouseFlowParam param) { StringBuilder sql = new StringBuilder(QUERY_BUSINESS_FLOW); @@ -38,9 +36,9 @@ // sql.append(" and flow.BUSINESS_TYPE =?"); // params.add(param.getBusinessType()); } if (param.getBusinessFormCode() != null) { sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE=:businessFormCode" + " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE=:businessFormCode END"); if (StringUtils.isNotEmpty(param.getBusinessFormCode())) { sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE=:businessFormCode" + " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.BUSINESS_FORM_CODE=:businessFormCode END"); paramts.put("businessFormCode", param.getBusinessFormCode()); // sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN flow.BUSINESS_FORM_CODE=?"); // params.add(param.getBusinessFormCode()); @@ -60,10 +58,8 @@ paramts.put("agencyId", param.getAgencyId()); } if (param.getCreatedName() != null) { sql.append(" AND CASE" + " WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUYER_NAME LIKE :createdName"+ " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.OPERATOR_NAME LIKE :createdName END" ); sql.append(" AND CASE" + " WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUYER_NAME LIKE :createdName" + " WHEN flow.BUSINESS_TYPE = 3 THEN tFormOut.OPERATOR_NAME LIKE :createdName END"); paramts.put("createdName", StringUtils.CHAR_PERCENT + param.getCreatedName() + StringUtils.CHAR_PERCENT); } if (param.getDealTimeStart() != null) { consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java
@@ -1,17 +1,17 @@ package com.consum.base.service; import com.consum.base.pojo.LWhFormProcureParam; import com.consum.base.core.tools.MapperUtil; import com.consum.base.pojo.query.FormProcureQryDto; import com.consum.model.po.LWhFormProcure; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Service; /** * @ClassName lWhFormProcureService * @Date 2023/10/24 * @Description 采购单 * @Version 1.0 @@ -21,7 +21,7 @@ private static String QUERY_FORM_PROCURE_LIST = "SELECT * FROM L_WH_FORM_PROCURE WHERE 1 = 1"; public GenericPager<LWhFormProcure> queryFormProcureList(LWhFormProcureParam param) { public GenericPager<LWhFormProcure> queryFormProcureList(FormProcureQryDto param) { HashMap<String, Object> paramts = new HashMap<>(); StringBuilder sql = new StringBuilder(QUERY_FORM_PROCURE_LIST); //入库单号 @@ -29,19 +29,19 @@ sql.append(" and BUSINESS_FORM_CODE like :businessFormCode "); paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); } if (param.getAgencyId() != null){ if (param.getAgencyId() != null) { sql.append(" and AGENCY_ID like :agencyId "); paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT); paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT); } //创建人 if (!StringUtils.isEmpty(param.getBuyerName())) { if (!StringUtils.isEmpty(param.getCreateName())) { sql.append(" and buyer_Name =:buyerName "); paramts.put("buyerName", param.getBuyerName()); paramts.put("buyerName", param.getCreateName()); } //状态 if (param.getStates() != null) { sql.append(" and status =:status "); paramts.put("status", param.getStates()); sql.append(" and states =:states "); paramts.put("states", param.getStates()); } //入库时间 if (param.getIncomeTimeStart() != null) { @@ -54,7 +54,8 @@ } //物品名称 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)"); 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(" ORDER BY PROCURE_TIME DESC"); @@ -63,5 +64,52 @@ } public GenericPager<Map<String, Object>> queryFormProcureDetailList(FormProcureQryDto param) { HashMap<String, Object> paramts = new HashMap<>(); StringBuilder sql = new StringBuilder( "SELECT pm.id,fp.BUSINESS_FORM_CODE,fpg.GOODS_TEMPLATE_NAME,pm.PRICE,pm.COUNTS, " + "( pm.PRICE * pm.COUNTS ) amount,fp.AGENCY_NAME,fp.BUYER_NAME,fp.PROCURE_TIME,pm.BUSINESS_ID,pm.BASE_GOODS_MODELS_NAME FROM l_wh_procure_model pm " + "LEFT JOIN l_wh_form_procure fp ON pm.BUSINESS_ID = fp.id " + "LEFT JOIN l_wh_form_procure_goods fpg ON fp.id = fpg.WH_FORM_PROCURE_ID WHERE pm.BUSINESS_TYPE = 1 "); //入库单号 if (!StringUtils.isEmpty(param.getBusinessFormCode())) { sql.append("and BUSINESS_FORM_CODE = :businessFormCode "); paramts.put("businessFormCode", param.getBusinessFormCode()); } //物品名称 if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { sql.append("and fpg.GOODS_TEMPLATE_NAME like :goodsTemplateName "); paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); } if (param.getAgencyId() != null) { sql.append("and AGENCY_ID like :agencyId "); paramts.put("agencyId", param.getAgencyId() + StringUtils.CHAR_PERCENT); } //创建人 if (!StringUtils.isEmpty(param.getCreateName())) { sql.append("and buyer_Name =:buyerName "); paramts.put("buyerName", param.getCreateName()); } //入库开始时间 if (param.getIncomeTimeStart() != null) { sql.append("and INCOME_TIME >=:incomeTimeStart "); paramts.put("incomeTimeStart", param.getIncomeTimeStart() * 1000000); } //入库结束时间 if (param.getIncomeTimeEnd() != null) { sql.append("and INCOME_TIME <:incomeTimeEnd "); paramts.put("incomeTimeEnd", param.getIncomeTimeEnd() * 1000000 + 240000); } //规格型号 if (param.getBaseGoodsTemplateId() != null) { sql.append("and fpg.BASE_GOODS_TEMPLATE_ID =:baseGoodsTemplateId "); paramts.put("baseGoodsTemplateId",param.getBaseGoodsTemplateId()); } sql.append("ORDER BY PROCURE_TIME DESC"); GenericPager genericPager = selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil()); return genericPager; } } consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -144,7 +144,7 @@ // 单据类型 1 采购2 调拨 3出库4部门分发 if (model.getProcureModelBusinessType() == 4) { List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList(); for (LWhProcureModelUserDTO lWhProcureModelUserDTO : model.getlWhProcureModelUserList()) { for (LWhProcureModelUserDTO lWhProcureModelUserDTO : model.getLWhProcureModelUserList()) { LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); lWhProcureModelUser.setId(IdUtil.generateId()); lWhProcureModelUser.setTransBusinessId(lWhFormTransferId); consum-base/src/main/java/com/consum/base/util/MapUtils.java
New file @@ -0,0 +1,83 @@ package com.consum.base.util; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class MapUtils { public static <T> T convertMapToObj(Map<String, Object> map, Class<T> clazz) { try { T obj = clazz.newInstance(); for (Map.Entry<String, Object> entry : map.entrySet()) { Field field = clazz.getDeclaredField(entry.getKey()); field.setAccessible(true); field.set(obj, entry.getValue()); } return obj; } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return null; } public static final char UNDERLINE = '_'; /** * 把map的key转换成驼峰命名 * * @param map * @return */ public static Map<String, Object> toReplaceKeyLow(Map<String, Object> map) { Map reMap = new HashMap(); if (map != null) { Iterator var2 = map.entrySet().iterator(); while (var2.hasNext()) { Map.Entry<String, Object> entry = (Map.Entry) var2.next(); reMap.put(underlineToCamel((String) entry.getKey()), map.get(entry.getKey())); } map.clear(); } return reMap; } /** * 将下划线转为驼峰格式 * * @param param * @return */ public static String underlineToCamel(String param) { if (param == null || "".equals(param.trim())) { return ""; } int len = param.length(); StringBuilder sb = new StringBuilder(len); for (int i = 0; i < len; i++) { char c = param.charAt(i); if (c == UNDERLINE) { if (++i < len) { sb.append(Character.toUpperCase(param.charAt(i))); } } else { sb.append(Character.toLowerCase(param.charAt(i))); } } return sb.toString(); } }