consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -35,6 +35,7 @@ import com.walker.infrastructure.utils.PhoneNumberUtils; import com.walker.infrastructure.utils.StringUtils; 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; @@ -65,6 +66,7 @@ * @Author wh * @Date 2023/7/17 14:16 */ @Api(value = "机构用户信息", tags = "机构用户信息") @RestController @RequestMapping("/pc/fin/sys/tenant/user") public class FinSysTenantUserController extends BaseController { @@ -179,6 +181,18 @@ } @ApiOperation(value = "根据机构id查询用户", notes = "根据机构id查询用户") @ApiImplicitParam(name = "tenantId", value = "机构id", required = true, dataType = "Long", paramType = "query") @GetMapping("/query/user") public ResponseValue queryUserByTenantId(Long tenantId) { FinSysTenantUser finSysTenantUser = new FinSysTenantUser(); finSysTenantUser.setTenantId(String.valueOf(tenantId)); List<FinSysTenantUser> result = finSysTenantUserService.select(finSysTenantUser); return ResponseValue.success(result); } /** * @Description 新增 * @Author wh consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -1,47 +1,74 @@ package com.consum.base.controller; import com.consum.base.BaseController; import com.consum.base.pojo.LWhFormInventoryDto; import com.consum.base.pojo.LWhFormInventoryParam; import com.consum.base.pojo.request.FormInventoryParam; import com.consum.base.pojo.request.LWhFormInventoryParam; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.base.pojo.response.FormInventoryVO; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.LWhFormInventoryServiceImpl; import com.consum.model.po.BaseCategory; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormInventory; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.web.ResponseValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.util.List; import java.util.Map; import java.util.Objects; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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; /** * @Description 盘点 * @Author 卢庆阳 * @Date 2023/10/23 */ @Api(value = "盘点", tags = "盘点") @RestController @RequestMapping("/pc/l/wh/form/inventory") public class LWhFormInventoryController extends BaseController { @Autowired private LWhFormInventoryServiceImpl lWhFormInventoryService; @Autowired private FinSysTenantUserServiceImpl finSysTenantUserService; /** * @Description 新增 * @Author 卢庆阳 * @Date 2023/10/31 */ @ApiOperation(value = "新增盘点", notes = "新增盘点") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam") }) @PostMapping("/add") public ResponseValue add(@RequestBody LWhFormInventoryParam param) { public ResponseValue add(@RequestBody FormInventoryParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } //根据盘点人id查询盘点人 S_user_core operatorUser = this.getUser(param.getOperatorId()); FinSysTenantUser finSysTenantUser = new FinSysTenantUser(); finSysTenantUser.setId(param.getOperatorUserId()); FinSysTenantUser operatorUser = finSysTenantUserService.get(finSysTenantUser); //根据监盘人id查询监盘人 S_user_core operatorUser2 = this.getUser(param.getOperatorId2()); int result = this.lWhFormInventoryService.add(param, this.getSysInfo(),operatorUser,operatorUser2); if (result > 0) return ResponseValue.success(1); FinSysTenantUser monitorUserInfo = new FinSysTenantUser(); monitorUserInfo.setId(param.getMonitorUserId()); FinSysTenantUser monitorUser = finSysTenantUserService.get(monitorUserInfo); int result = this.lWhFormInventoryService.add(param, this.getSysInfo(), operatorUser, monitorUser); if (result > 0) { return ResponseValue.success(); } return ResponseValue.error("新增失败!"); } @@ -50,14 +77,35 @@ * @Author 卢庆阳 * @Date 2023/10/31 */ @ApiOperation(value = "盘点单列表查询", notes = "盘点单列表查询") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query") }) @GetMapping("/list") public ResponseValue queryList(LWhFormInventoryParam param) { public ResponseValue queryList(com.consum.base.pojo.LWhFormInventoryParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager<LWhFormInventory> pager = this.lWhFormInventoryService.queryList(param,sysInfo); GenericPager<LWhFormInventory> pager = this.lWhFormInventoryService.queryList(param, sysInfo); return ResponseValue.success(pager); } @ApiOperation(value = "盘点单物品列表查询", notes = "盘点单物品列表查询") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query") }) @GetMapping("/query") public ResponseValue queryInventBaseGoodTemplate(Long id) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } if (id == null) { return ResponseValue.error("参数不能为空"); } FormInventoryVO formInventoryVO = this.lWhFormInventoryService.queryInventBaseGoodTemplate(id); return ResponseValue.success(formInventoryVO); } /** @@ -65,8 +113,12 @@ * @Author 卢庆阳 * @Date 2023/10/31 */ @ApiOperation(value = "编辑盘点", notes = "编辑盘点") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam") }) @PostMapping("/edit") public ResponseValue edit(@RequestBody LWhFormInventoryParam param) { public ResponseValue edit(@RequestBody FormInventoryParam param) { LWhFormInventory lWhFormInventory = lWhFormInventoryService.get(new LWhFormInventory(param.getId())); if (lWhFormInventory == null) { return ResponseValue.error("编辑失败!"); @@ -80,7 +132,7 @@ } ResponseValue add = this.add(param); if (add.getCode() == ResponseValue.CODE_SUCCESS) { return ResponseValue.success(1); return ResponseValue.success(); } return ResponseValue.error("编辑失败!"); @@ -89,6 +141,10 @@ /** * @Description 根据id删除 */ @ApiOperation(value = "根据id删除盘点", notes = "根据id删除盘点") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query") }) @DeleteMapping("/del") public ResponseValue delById(Long id) { if (id == null) { @@ -114,7 +170,12 @@ * @Author 卢庆阳 * @Date 2023/10/31 */ @ApiOperation(value = "盘点", notes = "盘点") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query") }) @GetMapping("/select/pdList") @Deprecated public ResponseValue queryPdList(Long id) { if (id == null) { return ResponseValue.error("盘点失败!"); @@ -126,32 +187,42 @@ /** * 暂存 * * @author 卢庆阳 * @date 2023/10/31 */ @PostMapping("/temporaryStorage") public ResponseValue temporaryStorage(@RequestBody LWhFormInventoryDto dto) { @ApiOperation(value = "盘点暂存", notes = "盘点暂存") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto") }) @PostMapping("/temporary/storage") public ResponseValue temporaryStorage(@RequestBody LWhFormInventoryParam dto) { if (dto == null) { return ResponseValue.error("参数错误"); } int num = this.lWhFormInventoryService.temporaryStorage(dto); int num = this.lWhFormInventoryService.temporaryStorage(dto, 1); return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!"); } /** * 完成盘点 * * @author 卢庆阳 * @date 2023/10/31 */ @ApiOperation(value = "完成盘点", notes = "完成盘点") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto") }) @PostMapping("/finish") public ResponseValue finishPd(@RequestBody LWhFormInventoryDto dto) { public ResponseValue finishPd(@RequestBody LWhFormInventoryParam dto) { if (dto == null) { return ResponseValue.error("参数错误"); } int num = this.lWhFormInventoryService.finishPd(dto); return num > 0 ? ResponseValue.success(1) : ResponseValue.error("暂存失败!"); int num = this.lWhFormInventoryService.temporaryStorage(dto, 2); return num > 0 ? ResponseValue.success(1) : ResponseValue.error("盘点失败!"); } /** @@ -159,8 +230,12 @@ * @Author 卢庆阳 * @Date 2023/11/1 */ @ApiOperation(value = "异常明细列表查询", notes = "异常明细列表查询") @ApiImplicitParams({ @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query") }) @GetMapping("/list/PdDetail") public ResponseValue queryPdDetailList(LWhFormInventoryParam param) { public ResponseValue queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); @@ -168,5 +243,31 @@ GenericPager<Map<String, Object>> pager = this.lWhFormInventoryService.queryPdDetailList(param, sysInfo); return ResponseValue.success(pager); } @ApiOperation(value = "根据id查询盘点物品详细信息", notes = "根据id查询盘点物品详细信息") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "盘点id", dataType = "Long", required = true, paramType = "query") }) @GetMapping("/detail") public ResponseValue selectDetailById(Long id) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } FormInventoryVO formInventoryVO = new FormInventoryVO(); LWhFormInventory lWhFormInventory = new LWhFormInventory(); lWhFormInventory.setId(id); LWhFormInventory item = this.lWhFormInventoryService.get(lWhFormInventory); if (Objects.isNull(item)) { return ResponseValue.error("盘点单不存在"); } BeanUtils.copyProperties(item, formInventoryVO); List<FormInventoryGoodsVO> formInventoryGoodsVOS = this.lWhFormInventoryService.selectDetailById(id); formInventoryVO.setFormInventoryGoodsList(formInventoryGoodsVOS); return ResponseValue.success(formInventoryVO); } } consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryGoodsController.java
@@ -1,25 +1,24 @@ package com.consum.base.controller; import com.consum.base.BaseController; import com.consum.base.pojo.LWhFormInventoryParam; import com.consum.base.service.LWhFormInventoryGoodsServiceImpl; import com.consum.base.service.LWhFormInventoryServiceImpl; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormInventory; import com.consum.model.po.LWhFormInventoryGoods; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.web.ResponseValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Description 盘点单物品 * @Author 卢庆阳 * @Date 2023/10/31 */ @Api(value = "盘点", tags = "盘点") @RestController @RequestMapping("/pc/l/wh/form/inventory/goods") public class LWhFormInventoryGoodsController extends BaseController { @@ -28,11 +27,12 @@ private LWhFormInventoryGoodsServiceImpl inventoryGoodsService; /** * @Description 根据盘点单id查询盘点单物品(继续盘点) * @return * @Description 根据盘点单id查询盘点单物品(继续盘点) * @Author 卢庆阳 * @Date 2023/10/31 * @return */ @ApiOperation(value = "查询盘点单物品(继续盘点)", notes = "查询盘点单物品(继续盘点)") @GetMapping("/list") public ResponseValue queryList(Long id) { FinSysTenantUser sysInfo = this.getSysInfo(); consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -439,21 +439,8 @@ public ResponseValue queryDepartmentTransferOrder(Long agencyId) { TransferInfoVO transferInfoVO = new TransferInfoVO(); String sql = "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " gr.GOODS_TEMPLATE_NAME,\n" + " gr.BASE_GOODS_TEMPLATE_ID,\n" + " ft.CREATE_TIME\n" + "\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n" + " left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n" + " LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n" + " left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID\n" + "\n" + "\n" + "\n" + "\n"; lWhFormTransferService.queryDepartmentTransferOrder(); return ResponseValue.success(transferInfoVO); } } consum-base/src/main/java/com/consum/base/core/utils/MapperUtil.java
@@ -10,7 +10,7 @@ /** * @author asus * @version 1.0 * @description: Mapper map工具类 * @description: Mapper map工具类</p> 包含驼峰格式和列名别名 * @date 2023/11/11 14:40 */ @Slf4j @@ -21,7 +21,10 @@ 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)); String columnLabel = rs.getMetaData().getColumnLabel(i); String columnName = columnLabel.contains("_") ? MapUtils.underlineToCamel(columnLabel) : (Character.isUpperCase(columnLabel.charAt(0)) ? columnLabel.toLowerCase() : columnLabel); Object columnValue = rs.getObject(i); row.put(columnName, columnValue); } consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryDto.java
File was deleted consum-base/src/main/java/com/consum/base/pojo/LWhFormInventoryParam.java
@@ -1,8 +1,13 @@ package com.consum.base.pojo; import com.walker.web.param.ParamRequest; import io.swagger.annotations.ApiModel; import lombok.Data; @Data @ApiModel(value = "盘点单条件参数") public class LWhFormInventoryParam extends ParamRequest { private Long id; /** * 盘点单号 @@ -19,23 +24,20 @@ /** * 操作人 */ private Long operatorId; private Long operatorUserId; /** * 监盘人 */ private Integer operatorId2; /** * 备注 */ private String beiz1; private Long monitorUserId; /** * 盘点时间 开始 */ private Long inventoryDateStart; private Long startTime; /** * 盘点时间 结束 */ private Long inventoryDateEnd; private Long endTime; /** * 机构id */ @@ -72,156 +74,5 @@ private Integer pageSize = 10; private Integer pageNum = 1; public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getPageNum() { return pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public String getOperatorName() { return operatorName; } public void setOperatorName(String operatorName) { this.operatorName = operatorName; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getBusinessFormName() { return businessFormName; } public void setBusinessFormName(String businessFormName) { this.businessFormName = businessFormName; } public Long getWarehouseId() { return warehouseId; } public void setWarehouseId(Long warehouseId) { this.warehouseId = warehouseId; } public Long getOperatorId() { return operatorId; } public void setOperatorId(Long operatorId) { this.operatorId = operatorId; } public Integer getOperatorId2() { return operatorId2; } public void setOperatorId2(Integer operatorId2) { this.operatorId2 = operatorId2; } public String getBeiz1() { return beiz1; } public void setBeiz1(String beiz1) { this.beiz1 = beiz1; } public Long getInventoryDateStart() { return inventoryDateStart; } public void setInventoryDateStart(Long inventoryDateStart) { this.inventoryDateStart = inventoryDateStart; } public Long getInventoryDateEnd() { return inventoryDateEnd; } public void setInventoryDateEnd(Long inventoryDateEnd) { this.inventoryDateEnd = inventoryDateEnd; } public Long getAgencyId() { return agencyId; } public void setAgencyId(Long agencyId) { this.agencyId = agencyId; } public String getGoodsTemplateName() { return goodsTemplateName; } public void setGoodsTemplateName(String goodsTemplateName) { this.goodsTemplateName = goodsTemplateName; } public Long getBaseGoodsModelsId() { return baseGoodsModelsId; } public void setBaseGoodsModelsId(Long baseGoodsModelsId) { this.baseGoodsModelsId = baseGoodsModelsId; } public Integer getInventoryResult() { return inventoryResult; } public void setInventoryResult(Integer inventoryResult) { this.inventoryResult = inventoryResult; } public void setBusinessFormCode(String businessFormCode) { this.businessFormCode = businessFormCode; } public Long getStopTimeStart() { return stopTimeStart; } public void setStopTimeStart(Long stopTimeStart) { this.stopTimeStart = stopTimeStart; } public Long getStopTimeEnd() { return stopTimeEnd; } public void setStopTimeEnd(Long stopTimeEnd) { this.stopTimeEnd = stopTimeEnd; } public String getBusinessFormCode() { return businessFormCode; } public Long getWarehouseFormCode() { return warehouseFormCode; } public void setWarehouseFormCode(Long warehouseFormCode) { this.warehouseFormCode = warehouseFormCode; } } consum-base/src/main/java/com/consum/base/pojo/request/FormInventoryParam.java
New file @@ -0,0 +1,46 @@ package com.consum.base.pojo.request; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author asus * @version 1.0 * @description: 新增盘点单信息 * @date 2023/11/20 13:49 */ @Data @ApiModel(value = "新增盘点单信息") public class FormInventoryParam { private Long id; /** * 盘点单名 */ @ApiModelProperty(value = "盘点单名") private String businessFormName; /** * 仓库编号 */ @ApiModelProperty(value = "仓库编号") private Long warehouseId; /** * 操作人 */ @ApiModelProperty(value = "操作人") private Long operatorUserId; /** * 监盘人 */ @ApiModelProperty(value = "监盘人") private Long monitorUserId; /** * 备注 */ @ApiModelProperty(value = "备注") private String remark; } consum-base/src/main/java/com/consum/base/pojo/request/LWhFormInventoryParam.java
New file @@ -0,0 +1,18 @@ package com.consum.base.pojo.request; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.model.po.LWhFormInventory; import io.swagger.annotations.ApiModel; import java.util.List; import lombok.Data; @Data @ApiModel(value = "盘点单") public class LWhFormInventoryParam extends LWhFormInventory { /** * 盘点单物品 */ private List<FormInventoryGoodsVO> inventoryGoodsList; } consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryGoodsVO.java
New file @@ -0,0 +1,50 @@ 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: 盘点物品信息 * @date 2023/11/20 14:45 */ @Data @ApiModel(value = "盘点物品信息") public class FormInventoryGoodsVO { // 主键 @ApiModelProperty(value = "id") private Long id; private Long whFormInventoryId; private Long baseGoodsTemplateId; @ApiModelProperty(value = "商品模板名称") private String goodsTemplateName; @ApiModelProperty(value = "商品型号名称") private String baseGoodsModelsName; @ApiModelProperty(value = "商品类别") private String type; @ApiModelProperty(value = "单位") private String unit; @ApiModelProperty(value = "库存数量") private Integer inventoryCount; @ApiModelProperty(value = "单价") private Integer price; @ApiModelProperty(value = "总价") private Long totalAmount; @ApiModelProperty(value = "实盘数量") private Integer realNum; } consum-base/src/main/java/com/consum/base/pojo/response/FormInventoryVO.java
New file @@ -0,0 +1,45 @@ package com.consum.base.pojo.response; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.Data; /** * @author asus * @version 1.0 * @description: 盘点物品单详细信息 * @date 2023/11/20 14:43 */ @Data @ApiModel(value = "盘点物品单详细信息") public class FormInventoryVO { /** * 盘点单号 */ @ApiModelProperty(value = "盘点单号") private String businessFormCode; /** * 盘点单名 */ @ApiModelProperty(value = "盘点单名") private String businessFormName; /** * 仓库编号 */ @ApiModelProperty(value = "仓库编号") private Long warehouseId; /** * 仓库名字 */ @ApiModelProperty(value = "仓库名字") private String warehouseName; /** * 盘点物品信息 */ @ApiModelProperty(value = "盘点物品信息") private List<FormInventoryGoodsVO> formInventoryGoodsList; } consum-base/src/main/java/com/consum/base/pojo/response/TransferInfoVO.java
@@ -7,7 +7,7 @@ /** * @author asus * @version 1.0 * @description: TODO * @description: 机构分发单信息 * @date 2023/11/10 15:35 */ @ApiModel(value = "机构分发单信息") @@ -17,9 +17,9 @@ @ApiModelProperty(value = "id") private String id; @ApiModelProperty(value = "单号") private String code; private String businessFormCode; @ApiModelProperty(value = "物品名称") private String name; private String goodsTemplatesName; @ApiModelProperty(value = "分发数量") private String num; @ApiModelProperty(value = "可退数量") consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -1,14 +1,13 @@ package com.consum.base.service; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.model.po.LWhFormInventoryGoods; import com.walker.jdbc.service.BaseServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** * @Description 盘点单物品 @@ -20,10 +19,10 @@ public class LWhFormInventoryGoodsServiceImpl extends BaseServiceImpl { /** * @Description 根据盘点单id查询盘点单物品 * @return * @Description 根据盘点单id查询盘点单物品 * @Author 卢庆阳 * @Date 2023/10/31 * @return */ public List<LWhFormInventoryGoods> getByInventoryId(Long id) { LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods(); @@ -32,35 +31,59 @@ } /** * @Description 新增盘点单物品记录 * @return * @Description 新增盘点单物品记录 * @Author 卢庆阳 * @Date 2023/10/31 * @return */ public int add(List<Map<String, Object>> list, Long warehouseId) { List<LWhFormInventoryGoods> inventoryGoodsList = new ArrayList<>(); for (Map<String, Object> map : list) { LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods(); inventoryGoods.setId(IdUtil.generateId()); inventoryGoods.setWhFormInventoryId(warehouseId); inventoryGoods.setBaseGoodsTemplateId((Long) map.get("id")); inventoryGoods.setGoodsTemplateName((String) map.get("goodsname")); inventoryGoods.setUnit((String) map.get("unit")); inventoryGoods.setBaseGoodsModelsId((Long) map.get("modelsid")); inventoryGoods.setBaseGoodsModelsName((String) map.get("goodsTemplateId")); inventoryGoods.setInitCounts((Integer) map.get("endcount")); inventoryGoodsList.add(inventoryGoods); // public int add(List<Map<String, Object>> list, Long warehouseId) { // List<LWhFormInventoryGoods> inventoryGoodsList = new ArrayList<>(); // for (Map<String, Object> map : list) { // LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods(); // inventoryGoods.setId(IdUtil.generateId()); // inventoryGoods.setWhFormInventoryId(warehouseId); // inventoryGoods.setBaseGoodsTemplateId((Long) map.get("id")); // inventoryGoods.setGoodsTemplateName((String) map.get("goodsname")); // inventoryGoods.setUnit((String) map.get("unit")); // inventoryGoods.setBaseGoodsModelsId((Long) map.get("modelsid")); // inventoryGoods.setBaseGoodsModelsName((String) map.get("goodsTemplateId")); // inventoryGoods.setInitCounts((Integer) map.get("endcount")); // // inventoryGoodsList.add(inventoryGoods); // } // return this.insert(inventoryGoodsList); // } public int add(List<FormInventoryGoodsVO> inventoryGoodsList, Long warehouseId) { List<LWhFormInventoryGoods> goodsList = new ArrayList<>(); for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) { LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods(); lWhFormInventoryGoods.setId(IdUtil.generateId()); lWhFormInventoryGoods.setWhFormInventoryId(warehouseId); lWhFormInventoryGoods.setBaseGoodsTemplateId(inventoryGoods.getBaseGoodsTemplateId()); lWhFormInventoryGoods.setGoodsTemplateName(inventoryGoods.getGoodsTemplateName()); lWhFormInventoryGoods.setUnit(inventoryGoods.getUnit()); lWhFormInventoryGoods.setBaseGoodsModelsId(inventoryGoods.getId()); lWhFormInventoryGoods.setBaseGoodsModelsName(inventoryGoods.getBaseGoodsModelsName()); Integer inventoryCount = inventoryGoods.getInventoryCount(); Integer realNum = inventoryGoods.getRealNum(); int errorCount = inventoryCount - realNum; lWhFormInventoryGoods.setInventoryCounts(realNum); lWhFormInventoryGoods.setErrorCounts(errorCount); //盘点结果(1=正常;2=盘盈;3=盘亏) lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? 2 : (errorCount < 0) ? 3 : 1); goodsList.add(lWhFormInventoryGoods); } return this.insert(inventoryGoodsList); return this.insert(goodsList); } /** * @Description 根据盘点单id删除盘点单物品 * @Description 根据盘点单id删除盘点单物品 * @Author 卢庆阳 * @Date 2023/10/31 */ public void delByFormInventoryId(Long id) { } } consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java
@@ -2,25 +2,30 @@ import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.utils.MapRowMapper; import com.consum.base.pojo.LWhFormInventoryDto; import com.consum.base.pojo.LWhFormInventoryParam; import com.consum.base.core.utils.IdUtil; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.consum.base.core.utils.MapRowMapper; import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; import com.consum.base.pojo.request.FormInventoryParam; import com.consum.base.pojo.request.LWhFormInventoryParam; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.base.pojo.response.FormInventoryVO; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormInventory; 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 java.util.HashMap; import java.util.List; import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Description 盘点 @@ -39,47 +44,41 @@ private FinSysTenantUserServiceImpl finSysTenantUserService; @Autowired private LWhFormInventoryGoodsServiceImpl inventoryGoodsService; @Autowired private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; @Autowired private LWhGoodsService lWhGoodsService; private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 "; private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" + " record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + "FROM BASE_GOODS_MODELS model\n" + " LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + " FROM L_WH_GOODS\n" + " WHERE WAREHOUSE_TYPE = 0\n" + " AND WAREHOUSE_ID = 1\n" + " AND STATES = ?\n" + " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" + " record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + "FROM BASE_GOODS_MODELS model\n" + " LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + " FROM L_WH_GOODS\n" + " WHERE WAREHOUSE_TYPE = 0\n" + " AND WAREHOUSE_ID = 1\n" + " AND STATES = ?\n" + " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; private static final String QUERY_PD_DETAIL_LIST = "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" + " lwfig.BASE_GOODS_MODELS_NAME,\n" + " lwfig.INVENTORY_RESULT,\n" + " lwfig.INIT_COUNTS,\n" + " lwfig.INVENTORY_COUNTS,\n" + " lwfig.ERROR_COUNTS,\n" + " lwfi.AGENCY_NAME,\n" + " lwfi.OPERATOR_NAME,\n" + " lwfi.STOP_TIME\n" + "from l_wh_form_inventory lwfi\n" + " inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID "; private static final String QUERY_PD_DETAIL_LIST = "select lwfi.WAREHOUSE_NAME,lwfig.GOODS_TEMPLATE_NAME,\n" + " lwfig.BASE_GOODS_MODELS_NAME,\n" + " lwfig.INVENTORY_RESULT,\n" + " lwfig.INIT_COUNTS,\n" + " lwfig.INVENTORY_COUNTS,\n" + " lwfig.ERROR_COUNTS,\n" + " lwfi.AGENCY_NAME,\n" + " lwfi.OPERATOR_NAME,\n" + " lwfi.STOP_TIME\n" + "from l_wh_form_inventory lwfi\n" + " inner join l_wh_form_inventory_goods lwfig on lwfi.ID = lwfig.WH_FORM_INVENTORY_ID "; /** * @param param * @param currentUser 当前登录用户 * @param operatorUser 盘点人 * @param monitorUser 监盘人 * @return * @Description 新增 * @Author 卢庆阳 * @Date 2023/10/31 * @param param * @param currentUser 当前登录用户 * @param operatorUser 盘点人 * @param operatorUser2 监盘人 * @return */ public int add(LWhFormInventoryParam param, FinSysTenantUser currentUser, S_user_core operatorUser, S_user_core operatorUser2) { public int add(FormInventoryParam param, FinSysTenantUser currentUser, FinSysTenantUser operatorUser, FinSysTenantUser monitorUser) { //新增盘点单 LWhFormInventory lWhFormInventory = new LWhFormInventory(); BeanUtils.copyProperties(param,lWhFormInventory); BeanUtils.copyProperties(param, lWhFormInventory); lWhFormInventory.setId(IdUtil.generateId()); //盘点单编码 String businessFormCode = codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Inventory); @@ -89,15 +88,22 @@ if (baseWarehouse != null) { lWhFormInventory.setWarehouseName(baseWarehouse.getWarehouseName()); } lWhFormInventory.setOperatorName(operatorUser.getUser_name()); lWhFormInventory.setOperatorName2(operatorUser2.getUser_name()); if (operatorUser != null) { lWhFormInventory.setOperatorId(operatorUser.getId()); lWhFormInventory.setOperatorName(operatorUser.getUserName()); } if (monitorUser != null) { lWhFormInventory.setOperatorId2(monitorUser.getId()); lWhFormInventory.setOperatorName2(monitorUser.getUserName()); } lWhFormInventory.setStates(0); lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId())); lWhFormInventory.setAgencyName(currentUser.getTenantName()); lWhFormInventory.setCreatorId(currentUser.getSysUserId()); lWhFormInventory.setCreatorName(currentUser.getUserName()); lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); lWhFormInventory.setBeiz1(param.getRemark()); return this.insert(lWhFormInventory); } @@ -106,47 +112,47 @@ * @Author 卢庆阳 * @Date 2023/10/31 */ public GenericPager<LWhFormInventory> queryList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { public GenericPager<LWhFormInventory> queryList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_LIST); HashMap<String, Object> paramts = new HashMap<>(); //盘点单号 if (!StringUtils.isEmpty(param.getBusinessFormCode())) { sql.append(" and BUSINESS_FORM_CODE like:BUSINESS_FORM_CODE "); paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); sql.append("and BUSINESS_FORM_CODE =:BUSINESS_FORM_CODE "); paramts.put("BUSINESS_FORM_CODE", param.getBusinessFormCode()); } //盘点单名称 if (!StringUtils.isEmpty(param.getBusinessFormName())) { sql.append(" and BUSINESS_FORM_NAME =:BUSINESS_FORM_NAME "); sql.append("and BUSINESS_FORM_NAME like :BUSINESS_FORM_NAME "); paramts.put("BUSINESS_FORM_NAME", StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT); } //仓库编号 if (param.getWarehouseId() != null) { sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID "); sql.append("and WAREHOUSE_ID =:WAREHOUSE_ID "); paramts.put("WAREHOUSE_ID", param.getWarehouseId()); } //盘点时间 if (param.getInventoryDateStart() != null) { sql.append(" and INVENTORY_DATE >=:inventoryDateStart "); paramts.put("inventoryDateStart", param.getInventoryDateStart() * 1000000); if (param.getStartTime() != null) { sql.append("and INVENTORY_DATE >=:inventoryDateStart "); paramts.put("inventoryDateStart", param.getStartTime() * 1000000); } if (param.getInventoryDateEnd() != null) { sql.append(" and INVENTORY_DATE <:inventoryDateEnd "); paramts.put("inventoryDateEnd", param.getInventoryDateEnd() * 1000000 + 240000); if (param.getEndTime() != null) { sql.append("and INVENTORY_DATE <:inventoryDateEnd "); paramts.put("inventoryDateEnd", param.getEndTime() * 1000000 + 240000); } //机构 sql.append(" and AGENCY_ID =:AGENCY_ID "); sql.append("and AGENCY_ID =:AGENCY_ID "); paramts.put("AGENCY_ID", sysInfo.getTenantId()); sql.append(" ORDER BY CREATE_TIME DESC "); sql.append("ORDER BY CREATE_TIME DESC "); return selectSplit(sql.toString(), paramts, new LWhFormInventory()); } /** * @param id 盘点单id * @Description 盘点 * @Author 卢庆阳 * @Date 2023/10/31 * @param id 盘点单id */ public List queryPdList(Long id) { //1.根据盘点单id查询盘点单 @@ -161,40 +167,45 @@ return null; } //3.新增盘点单物品记录 int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId()); if (flag != list.size()) { log.error("新增盘点单记录"); return null; } // int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId()); // if (flag != list.size()) { // log.error("新增盘点单记录"); // return null; // } //4.根据盘点单id查询盘点单物品 return inventoryGoodsService.getByInventoryId(id); } /** * 暂存 * * @author 卢庆阳 * @date 2023/10/31 */ public int temporaryStorage(LWhFormInventoryDto dto) { public int temporaryStorage(LWhFormInventoryParam dto, Integer state) { //1.根据盘点单id查询盘点单 LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); if (lWhFormInventory == null) { log.error("根据盘点单id查询盘点单 失败"); log.error("根据盘点单id查询盘点单失败"); return 0; } //2.修改盘点单 lWhFormInventory.setStates(1); lWhFormInventory.setStates(state); lWhFormInventory.setInventoryDate(DateUtils.getDateTimeNumber(System.currentTimeMillis())); int flag1 = this.update(lWhFormInventory); if (flag1 == 0) { log.error("修改盘点单 失败"); log.error("修改盘点单失败"); return 0; } //3.更新盘点单物品 List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); int flag2 = inventoryGoodsService.update(inventoryGoodsList); //3.添加盘点单物品 List<FormInventoryGoodsVO> inventoryGoodsList = dto.getInventoryGoodsList(); if (CollectionUtils.isEmpty(inventoryGoodsList)) { log.error("盘点单物品为空"); return 0; } int flag2 = inventoryGoodsService.add(inventoryGoodsList, lWhFormInventory.getWarehouseId()); if (flag2 != inventoryGoodsList.size()) { log.error("更新盘点单物品 失败"); log.error("更新盘点单物品失败"); return 0; } return 1; @@ -202,56 +213,57 @@ /** * 完成盘点 * * @author 卢庆阳 * @date 2023/10/31 */ public int finishPd(LWhFormInventoryDto dto) { //1.根据盘点单id查询盘点单 LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); if (lWhFormInventory == null) { log.error("根据盘点单id查询盘点单 失败"); return 0; } //2.修改盘点单 lWhFormInventory.setStates(2); lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); int flag1 = this.update(lWhFormInventory); if (flag1 == 0) { log.error("修改盘点单 失败"); return 0; } //3.更新盘点单物品 List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); if (CollectionUtils.isEmpty(inventoryGoodsList)) { log.error("盘点单物品 为空"); return 0; } for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) { int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts(); if (errorCounts >0 ) { inventoryGoods.setInventoryResult(3); } else if (errorCounts <0){ inventoryGoods.setInventoryResult(2); } else { inventoryGoods.setInventoryResult(1); } inventoryGoods.setErrorCounts(Math.abs(errorCounts)); } int flag2 = inventoryGoodsService.update(inventoryGoodsList); if (flag2 != inventoryGoodsList.size()) { log.error("更新盘点单物品 失败"); return 0; } return 1; } // public int finishPd(LWhFormInventoryParam dto) { // //1.根据盘点单id查询盘点单 // LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(dto.getId())); // if (lWhFormInventory == null) { // log.error("根据盘点单id查询盘点单 失败"); // return 0; // } // //2.修改盘点单 // lWhFormInventory.setStates(2); // lWhFormInventory.setStopTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); // int flag1 = this.update(lWhFormInventory); // if (flag1 == 0) { // log.error("修改盘点单 失败"); // return 0; // } // //3.更新盘点单物品 // List<LWhFormInventoryGoods> inventoryGoodsList = dto.getInventoryGoodsList(); // if (CollectionUtils.isEmpty(inventoryGoodsList)) { // log.error("盘点单物品 为空"); // return 0; // } // for (LWhFormInventoryGoods inventoryGoods : inventoryGoodsList) { // int errorCounts = inventoryGoods.getInitCounts() - inventoryGoods.getInventoryCounts(); // if (errorCounts > 0) { // inventoryGoods.setInventoryResult(3); // } else if (errorCounts < 0) { // inventoryGoods.setInventoryResult(2); // } else { // inventoryGoods.setInventoryResult(1); // } // inventoryGoods.setErrorCounts(Math.abs(errorCounts)); // } // int flag2 = inventoryGoodsService.update(inventoryGoodsList); // if (flag2 != inventoryGoodsList.size()) { // log.error("更新盘点单物品 失败"); // return 0; // } // return 1; // } /** * @return * @Description 异常明细列表查询 * @Author 卢庆阳 * @Date 2023/11/1 * @return */ public GenericPager<Map<String, Object>> queryPdDetailList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { public GenericPager<Map<String, Object>> queryPdDetailList(com.consum.base.pojo.LWhFormInventoryParam param, FinSysTenantUser sysInfo) { StringBuilder sql = new StringBuilder(QUERY_PD_DETAIL_LIST); HashMap<String, Object> paramts = new HashMap<>(); @@ -313,4 +325,53 @@ return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper()); } public List<FormInventoryGoodsVO> selectDetailById(Long id) { String sql = "select fig.id, fig.BASE_GOODS_TEMPLATE_ID,fig.GOODS_TEMPLATE_NAME,fig.BASE_GOODS_MODELS_NAME," + "fig.INIT_COUNTS total,fig.INVENTORY_COUNTS,fig.INVENTORY_RESULT status from " + "l_wh_form_inventory_goods fig where fig.WH_FORM_INVENTORY_ID = :id"; HashMap<String, Object> param = new HashMap<>(); param.put("id", id); List<Map<String, Object>> select = select(sql, param, new MapperUtil()); List<FormInventoryGoodsVO> result = Lists.newArrayList(); select.forEach(item -> { FormInventoryGoodsVO formInventoryGoodsVO = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class); result.add(formInventoryGoodsVO); }); return result; } public FormInventoryVO queryInventBaseGoodTemplate(Long id) { FormInventoryVO formInventoryVO = new FormInventoryVO(); LWhFormInventory lWhFormInventory = new LWhFormInventory(); lWhFormInventory.setId(id); LWhFormInventory inventory = this.get(lWhFormInventory); if (inventory == null) { return null; } Long warehouseId = inventory.getWarehouseId(); Integer warehouseType = inventory.getWarehouseType(); formInventoryVO.setBusinessFormCode(inventory.getBusinessFormCode()); formInventoryVO.setBusinessFormName(inventory.getBusinessFormName()); formInventoryVO.setWarehouseId(warehouseId); formInventoryVO.setWarehouseName(inventory.getWarehouseName()); String sql = "select bgm.id,bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id " + "where bgt.AGENCY_ID = :agencyId"; HashMap<String, Object> param = new HashMap<>(); param.put("agencyId", inventory.getAgencyId()); List<Map<String, Object>> result = this.select(sql, param, new MapperUtil()); List<FormInventoryGoodsVO> goodsVOList = Lists.newArrayList(); result.forEach(item -> { FormInventoryGoodsVO baseGoodsModels = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class); int inventoryCount = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null); baseGoodsModels.setInventoryCount(inventoryCount); goodsVOList.add(baseGoodsModels); }); formInventoryVO.setFormInventoryGoodsList(goodsVOList); return formInventoryVO; } } consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -499,4 +499,27 @@ return mapGenericPager; } public List<Map<String, Object>> queryDepartmentTransferOrder() { String sql = "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " gr.GOODS_TEMPLATE_NAME,\n" + " gr.BASE_GOODS_TEMPLATE_ID goodsTemplateId,\n" + " ft.CREATE_TIME\n" + "\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n" + " left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n" + " LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n" + " left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID where ft.BUSINESS_TYPE = 1 GROUP BY gr.BASE_GOODS_TEMPLATE_ID \n"; HashMap<String, Object> param = new HashMap<>(); List<Map<String, Object>> select = this.select(sql, param, new MapperUtil()); select.forEach(item -> { }); return select; } }