equipment/equipment-rpc-api/pom.xml
@@ -79,6 +79,14 @@ </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> equipment/equipment-rpc-api/src/main/java/com/gkhy/safePlatform/equipment/rpc/api/EquipmentRpcAPi.java
@@ -1,11 +1,9 @@ package com.gkhy.safePlatform.equipment.rpc.api; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.req.MaterialReceiveRecordsRPCReq; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.req.MaterialSpwRPCReq; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeMaterialBsClassifyRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeMaterialClassifyRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeMaterialClassifyStockRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeRfidMaterialDetailRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.*; import java.util.List; @@ -48,4 +46,9 @@ * 根据rfids获取物资 */ ResultVO<List<SafeRfidMaterialDetailRPCRespDto>> getListByRfid(List<String> rfids); /** * 根据人员和小类获取领取记录 */ ResultVO<List<MaterialReceiveRecordsRPCRespDto>> getMaterialReceiveRecords(MaterialReceiveRecordsRPCReq req); } equipment/equipment-rpc-api/src/main/java/com/gkhy/safePlatform/equipment/rpc/api/model/dto/req/MaterialReceiveRecordsRPCReq.java
对比新文件 @@ -0,0 +1,25 @@ package com.gkhy.safePlatform.equipment.rpc.api.model.dto.req; import java.util.List; public class MaterialReceiveRecordsRPCReq { private List<Long> receiveUids; private List<Long> smallClassifyIds; public List<Long> getReceiveUids() { return receiveUids; } public void setReceiveUids(List<Long> receiveUids) { this.receiveUids = receiveUids; } public List<Long> getSmallClassifyIds() { return smallClassifyIds; } public void setSmallClassifyIds(List<Long> smallClassifyIds) { this.smallClassifyIds = smallClassifyIds; } } equipment/equipment-rpc-api/src/main/java/com/gkhy/safePlatform/equipment/rpc/api/model/dto/resp/MaterialReceiveRecordsRPCRespDto.java
对比新文件 @@ -0,0 +1,213 @@ package com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; public class MaterialReceiveRecordsRPCRespDto { /** * id */ private Long id; /** * 物资名称 */ private String materialName; /** * 物资编号 */ private String materialNo; /** * rfid */ private String rfid; /** * 领取时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime receiveTime; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 归还状态(0未归还,1归还,3损耗) */ private Byte revertStatus; /** * 物资状态 */ private Byte materialStatus; /** * 备注 */ private String remark; /** * 归还时间 */ private LocalDateTime revertTime; /** * 物资清单(详细物资)id */ private Long smdId; /** * 基础记录id */ private Long receiveBaseId; private Byte validStatus; private Long smallClassifyId; private Byte consumable; private Long bigClassifyId; private String bigClassifyName; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public String getMaterialNo() { return materialNo; } public void setMaterialNo(String materialNo) { this.materialNo = materialNo; } public String getRfid() { return rfid; } public void setRfid(String rfid) { this.rfid = rfid; } public LocalDateTime getReceiveTime() { return receiveTime; } public void setReceiveTime(LocalDateTime receiveTime) { this.receiveTime = receiveTime; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getRevertStatus() { return revertStatus; } public void setRevertStatus(Byte revertStatus) { this.revertStatus = revertStatus; } public Byte getMaterialStatus() { return materialStatus; } public void setMaterialStatus(Byte materialStatus) { this.materialStatus = materialStatus; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public LocalDateTime getRevertTime() { return revertTime; } public void setRevertTime(LocalDateTime revertTime) { this.revertTime = revertTime; } public Long getSmdId() { return smdId; } public void setSmdId(Long smdId) { this.smdId = smdId; } public Long getReceiveBaseId() { return receiveBaseId; } public void setReceiveBaseId(Long receiveBaseId) { this.receiveBaseId = receiveBaseId; } public Byte getValidStatus() { return validStatus; } public void setValidStatus(Byte validStatus) { this.validStatus = validStatus; } public Long getSmallClassifyId() { return smallClassifyId; } public void setSmallClassifyId(Long smallClassifyId) { this.smallClassifyId = smallClassifyId; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } public Long getBigClassifyId() { return bigClassifyId; } public void setBigClassifyId(Long bigClassifyId) { this.bigClassifyId = bigClassifyId; } public String getBigClassifyName() { return bigClassifyName; } public void setBigClassifyName(String bigClassifyName) { this.bigClassifyName = bigClassifyName; } } equipment/equipment-rpc-api/src/main/java/com/gkhy/safePlatform/equipment/rpc/api/model/dto/resp/SafeMaterialClassifyRPCRespDto.java
@@ -7,6 +7,12 @@ private String materialClassifyName; private Long parentId; /** * 是否是耗材(0是,1否) */ private Byte consumable; private String consumableName; private List<SafeMaterialClassifyRPCRespDto> childList; @@ -41,4 +47,20 @@ public void setChildList(List<SafeMaterialClassifyRPCRespDto> childList) { this.childList = childList; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } public String getConsumableName() { return consumableName; } public void setConsumableName(String consumableName) { this.consumableName = consumableName; } } equipment/equipment-rpc-provider/src/main/java/com/gkhy/safePlatform/equipment/rpc/provider/EquipmentRpcProvider.java
@@ -3,6 +3,8 @@ import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyDO; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialSpwDeliveryReq; @@ -11,14 +13,14 @@ import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyStockDto; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeRfidMaterialDetailDto; import com.gkhy.safePlatform.equipment.rpc.api.EquipmentRpcAPi; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.req.MaterialReceiveRecordsRPCReq; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.req.MaterialSpwDeliveryRPCReq; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.req.MaterialSpwRPCReq; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeMaterialBsClassifyRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeMaterialClassifyRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeMaterialClassifyStockRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.SafeRfidMaterialDetailRPCRespDto; import com.gkhy.safePlatform.equipment.rpc.api.model.dto.resp.*; import com.gkhy.safePlatform.equipment.service.MaterialClassifyService; import com.gkhy.safePlatform.equipment.service.MaterialReceiveRecordsService; import com.gkhy.safePlatform.equipment.service.SafeMaterialDetailService; import com.gkhy.safePlatform.equipment.service.impl.MaterialReceiveRecordsServiceImpl; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -33,6 +35,8 @@ private MaterialClassifyService materialClassifyService; @Autowired private SafeMaterialDetailService safeMaterialDetailService; @Autowired private MaterialReceiveRecordsService materialReceiveRecordsService; public ResultVO<List<SafeMaterialClassifyRPCRespDto>> getMaterialClassifyList(){ @@ -47,11 +51,17 @@ List<SafeMaterialClassifyDto> childList = classifyDto.getChildList(); List<SafeMaterialClassifyRPCRespDto> childRPCList = new ArrayList<>(); for(SafeMaterialClassifyDto child:childList){ SafeMaterialClassifyRPCRespDto childRPCRespDto = new SafeMaterialClassifyRPCRespDto(); childRPCRespDto.setId(child.getId()); childRPCRespDto.setParentId(child.getParentId()); childRPCRespDto.setMaterialClassifyName(child.getMaterialClassifyName()); childRPCList.add(childRPCRespDto); //临时限制一下 if(child.getConsumable() == 1){ SafeMaterialClassifyRPCRespDto childRPCRespDto = new SafeMaterialClassifyRPCRespDto(); childRPCRespDto.setId(child.getId()); childRPCRespDto.setParentId(child.getParentId()); childRPCRespDto.setMaterialClassifyName(child.getMaterialClassifyName()); childRPCRespDto.setConsumable(child.getConsumable()); childRPCRespDto.setConsumableName(child.getConsumableName()); childRPCList.add(childRPCRespDto); } } classifyRPCRespDto.setChildList(childRPCList); rpcRespList.add(classifyRPCRespDto); @@ -197,4 +207,33 @@ } return resultVO; } @Override public ResultVO<List<MaterialReceiveRecordsRPCRespDto>> getMaterialReceiveRecords(MaterialReceiveRecordsRPCReq req) { ResultVO resultVO = new ResultVO<>(ResultCodes.OK); MaterialReceiveRecordsBO materialReceiveRecordsBO = new MaterialReceiveRecordsBO(); if(null != req){ BeanUtils.copyProperties(req,materialReceiveRecordsBO); } try { List<MaterialReceiveRecordsDO> list = materialReceiveRecordsService.getReceiveRecordsByReceiveUids(materialReceiveRecordsBO); List<MaterialReceiveRecordsRPCRespDto> materialReceiveRecordsRPCRespDtos = new ArrayList<>(); if(list.size()>0){ for(MaterialReceiveRecordsDO recordsDO:list){ MaterialReceiveRecordsRPCRespDto receiveRecordsRPCRespDto = new MaterialReceiveRecordsRPCRespDto(); BeanUtils.copyProperties(recordsDO,receiveRecordsRPCRespDto); materialReceiveRecordsRPCRespDtos.add(receiveRecordsRPCRespDto); } resultVO.setData(materialReceiveRecordsRPCRespDtos); } }catch (EquipmentException e){ resultVO.setCode(e.getCode()); resultVO.setMsg(e.getMessage()); }catch (Exception e){ resultVO.setCode(ResultCodes.SERVER_ERROR.getCode()); resultVO.setCode(ResultCodes.SERVER_ERROR.getDesc()); } return resultVO; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/MaterialClassifyController.java
@@ -7,10 +7,7 @@ import com.gkhy.safePlatform.commons.utils.PageUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialClassifyQuery; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyAddReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyModReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyQuery; import com.gkhy.safePlatform.equipment.model.dto.req.*; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyDto; import com.gkhy.safePlatform.equipment.service.MaterialClassifyService; import org.springframework.beans.factory.annotation.Autowired; @@ -46,7 +43,7 @@ public SearchResultVO<List<SafeMaterialClassifyDto>> listByPage(Authentication authentication,@RequestBody PageQuery<MaterialClassifyQuery> pageQuery){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); PageUtils.checkCheck(pageQuery); return materialClassifyService.listByPage(pageQuery); return materialClassifyService.listByPage(currentUser,pageQuery); } @@ -78,15 +75,25 @@ public ResultVO delete(Authentication authentication, @RequestBody JSONObject jsonObject){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); Long id = jsonObject.getLong("id"); return materialClassifyService.delete(id); return materialClassifyService.delete(currentUser,id); } /** * 逻辑删除-批量 * @return */ // @PostMapping(value = "batch/delete") // public ResultVO batchDelete(Authentication authentication, @Validated @RequestBody ParamForm paramForm){ // ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); // return materialClassifyService.batchDelete(currentUser,paramForm); // } /** * 查询单条数据 */ @PostMapping(value = "queryById") public ResultVO<SafeMaterialClassifyDto> queryById(Authentication authentication, @RequestBody JSONObject jsonObject){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); Long id = jsonObject.getLong("id"); return new ResultVO<>(ResultCodes.OK,materialClassifyService.queryById(id)); return new ResultVO<>(ResultCodes.OK,materialClassifyService.queryById(currentUser,id)); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialController.java
@@ -1,8 +1,12 @@ package com.gkhy.safePlatform.equipment.controller; import com.alibaba.fastjson.JSONObject; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.PageUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.equipment.model.dto.req.ParamForm; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialAddReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialModReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; @@ -23,34 +27,47 @@ @PostMapping(value = "save") public ResultVO save(Authentication authentication, @Validated @RequestBody SafeMaterialAddReq req){ return safeMaterialService.save(req); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialService.save(currentUser,req); } @PostMapping(value = "update") public ResultVO update(Authentication authentication, @Validated @RequestBody SafeMaterialModReq req){ return safeMaterialService.update(req); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialService.update(currentUser,req); } @PostMapping(value = "delete") public ResultVO delete(Authentication authentication, @RequestBody JSONObject jsonObject){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); Long id = jsonObject.getLong("id"); return safeMaterialService.delete(id); return safeMaterialService.delete(currentUser,id); } @PostMapping(value = "queryById") public ResultVO queryById(Authentication authentication, @RequestBody JSONObject jsonObject){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); Long id = jsonObject.getLong("id"); return safeMaterialService.queryById(id); return safeMaterialService.queryById(currentUser,id); } @PostMapping(value = "list") public ResultVO list(Authentication authentication){ return safeMaterialService.list(); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return new ResultVO<>(ResultCodes.OK,safeMaterialService.list(currentUser)); } @PostMapping(value = "listByDepId") public ResultVO listByDepId(Authentication authentication){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return new ResultVO<>(ResultCodes.OK,safeMaterialService.listByDepId(currentUser)); } @PostMapping(value = "page/list") public ResultVO listByPage(Authentication authentication,@RequestBody PageQuery<SafeMaterialQuery> pageQuery){ return safeMaterialService.listByPage(pageQuery); PageUtils.checkCheck(pageQuery); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialService.listByPage(currentUser,pageQuery); } @PostMapping(value = "deleteBatch") public ResultVO deleteBatch(Authentication authentication, @RequestBody Long[] ids){ return safeMaterialService.deleteBatch(ids); public ResultVO deleteBatch(Authentication authentication,@Validated @RequestBody ParamForm paramForm){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialService.deleteBatch(currentUser,paramForm); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialDetailController.java
@@ -1,6 +1,7 @@ package com.gkhy.safePlatform.equipment.controller; import com.alibaba.fastjson.JSONObject; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.ResultVO; @@ -46,15 +47,7 @@ public ResultVO update(Authentication authentication,@Validated @RequestBody SafeMaterialDetailReq req){ return safeMaterialDetailService.update(req); } /** * 单独出入库 * @param authentication * @return */ @PostMapping(value = "/single/delivery0rReceipt") public ResultVO singleDdelivery0rReceipt(Authentication authentication, @Validated @RequestBody SafeMaterialDetailReq req){ return safeMaterialDetailService.singleDdelivery0rReceipt(req); } /** * 单独出库 @@ -63,7 +56,9 @@ */ @PostMapping(value = "/single/delivery") public ResultVO singleDelivery(Authentication authentication, @Validated @RequestBody SafeMaterialDetailReq req){ return safeMaterialDetailService.singleDelivery(req); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); safeMaterialDetailService.singleDelivery(currentUser,req); return new ResultVO(ResultCodes.OK); } /** @@ -73,8 +68,10 @@ */ @PostMapping(value = "/single/receipt") public ResultVO singleReceipt(Authentication authentication,@RequestBody JSONObject jsonObject){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); Long id = jsonObject.getLong("id"); return safeMaterialDetailService.singleReceipt(id); safeMaterialDetailService.singleReceipt(id,currentUser); return new ResultVO(ResultCodes.OK); } /** * 批量出库 - 根据ids @@ -83,8 +80,9 @@ */ @PostMapping(value = "/batch/delivery/ids") public ResultVO deliveryBatchByIds(Authentication authentication, @Validated @RequestBody MterialDeliveryReq req){ return safeMaterialDetailService.deliveryBatchByIds(req); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); safeMaterialDetailService.deliveryBatchByIds(req,currentUser); return new ResultVO(ResultCodes.OK); } /** * 批量出库 @@ -93,7 +91,9 @@ */ @PostMapping(value = "/batch/delivery/random") public ResultVO deliveryBatchRandom(Authentication authentication,@Validated @RequestBody MterialRandomDeliveryReq req){ return safeMaterialDetailService.deliveryBatchRandom(req); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); safeMaterialDetailService.deliveryBatchBySmId(req,currentUser); return new ResultVO(ResultCodes.OK); } /** @@ -101,6 +101,7 @@ */ @PostMapping(value = "/batch/receipt") public ResultVO receiptBatch(Authentication authentication ,@Validated @RequestBody ParamForm paramForm){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialDetailService.receiptBatch(paramForm); } /** @@ -121,7 +122,8 @@ */ @PostMapping(value = "/deleteBatch") public ResultVO deleteBatch(Authentication authentication,@Validated @RequestBody ParamForm paramForm){ return safeMaterialDetailService.deleteBatch(paramForm); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialDetailService.deleteBatch(currentUser,paramForm); } @@ -132,7 +134,8 @@ */ @PostMapping(value = "/page/list") public SearchResultVO<List<SafeMaterialDetailDto>> listByPage(Authentication authentication, @RequestBody PageQuery<SafeMatetrialDetailQuery> pageQuery){ return safeMaterialDetailService.listByPage(pageQuery); ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); return safeMaterialDetailService.listByPage(currentUser,pageQuery); } /** @@ -155,7 +158,7 @@ safeMaterialDetailService.deliveryBatchSpw(req); return new ResultVO<>(ResultCodes.OK); } /* *//** /** * 根据rfid获去数据 * @param authentication * @return equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialReceiveRecordsController.java
对比新文件 @@ -0,0 +1,46 @@ package com.gkhy.safePlatform.equipment.controller; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.PageUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseDO; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsBaseReq; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsQuery; import com.gkhy.safePlatform.equipment.model.dto.resp.MaterialReceiveRecordsBaseDto; import com.gkhy.safePlatform.equipment.service.MaterialReceiveRecordsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/equipment/material/record") public class SafeMaterialReceiveRecordsController { @Autowired private MaterialReceiveRecordsService materialReceiveRecordsService; @RequestMapping("page/list") public SearchResultVO<List<MaterialReceiveRecordsBaseDto>> list(Authentication authentication, @RequestBody PageQuery<MaterialReceiveRecordsQuery> pageQuery){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); PageUtils.checkCheck(pageQuery); return materialReceiveRecordsService.listByPage(currentUser,pageQuery); } /** * 归还物资 */ @RequestMapping("revert") public ResultVO revertMaterial(Authentication authentication, @Validated @RequestBody MaterialReceiveRecordsBaseReq req){ ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); materialReceiveRecordsService.revertMaterial(currentUser,req); return new ResultVO(ResultCodes.OK); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialDeliveryRecordDO.java
对比新文件 @@ -0,0 +1,153 @@ package com.gkhy.safePlatform.equipment.entity; import java.time.LocalDateTime; /** * 出库记录 */ public class MaterialDeliveryRecordDO { /** * 主键 */ private Long receiveBaseId; /** * 物资名称 */ private String materialName; /** * RFID */ private String rfid; /** * 状态 */ private Byte status; /** * 安全物资详表id */ private Long smdId; /** * 认领人id */ private Long receiveUid; /** * 认领人姓名 */ private String receiveUname; /** * 归还时间 */ private LocalDateTime revertTime; private Long receiveId; /** * 领取数量 */ private Integer receiveCount; /** * 归还数量 */ private Integer revertCount; /** * 物资归还 */ private Byte revertStatus; public Long getReceiveBaseId() { return receiveBaseId; } public void setReceiveBaseId(Long receiveBaseId) { this.receiveBaseId = receiveBaseId; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public String getRfid() { return rfid; } public void setRfid(String rfid) { this.rfid = rfid; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public Long getSmdId() { return smdId; } public void setSmdId(Long smdId) { this.smdId = smdId; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public LocalDateTime getRevertTime() { return revertTime; } public void setRevertTime(LocalDateTime revertTime) { this.revertTime = revertTime; } public Long getReceiveId() { return receiveId; } public void setReceiveId(Long receiveId) { this.receiveId = receiveId; } public Integer getReceiveCount() { return receiveCount; } public void setReceiveCount(Integer receiveCount) { this.receiveCount = receiveCount; } public Integer getRevertCount() { return revertCount; } public void setRevertCount(Integer revertCount) { this.revertCount = revertCount; } public Byte getRevertStatus() { return revertStatus; } public void setRevertStatus(Byte revertStatus) { this.revertStatus = revertStatus; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialReceiveRecordsBO.java
对比新文件 @@ -0,0 +1,25 @@ package com.gkhy.safePlatform.equipment.entity; import java.util.List; public class MaterialReceiveRecordsBO { private List<Long> receiveUids; private List<Long> smallClassifyIds ; public List<Long> getReceiveUids() { return receiveUids; } public void setReceiveUids(List<Long> receiveUids) { this.receiveUids = receiveUids; } public List<Long> getSmallClassifyIds() { return smallClassifyIds; } public void setSmallClassifyIds(List<Long> smallClassifyIds) { this.smallClassifyIds = smallClassifyIds; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialReceiveRecordsBaseBO.java
对比新文件 @@ -0,0 +1,32 @@ package com.gkhy.safePlatform.equipment.entity; public class MaterialReceiveRecordsBaseBO { private Long id; private Byte status; private Integer revertCount; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public Integer getRevertCount() { return revertCount; } public void setRevertCount(Integer revertCount) { this.revertCount = revertCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialReceiveRecordsBaseDO.java
对比新文件 @@ -0,0 +1,153 @@ package com.gkhy.safePlatform.equipment.entity; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; public class MaterialReceiveRecordsBaseDO { /** * 主键 */ private Long id; /** * 物资种类名称 */ private String materialName; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 领取数量 */ private Integer receiveCount; /** * 归还数量 */ private Integer revertCount; private Integer consumeCount; /** * 归还情况(0未归还,1部分归还,2归还完成,3耗材无需归还) */ private Byte status; /** * 物资管理id */ private Long smId; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") public LocalDateTime createTime; private Long depId; private String depName; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Integer getReceiveCount() { return receiveCount; } public void setReceiveCount(Integer receiveCount) { this.receiveCount = receiveCount; } public Integer getRevertCount() { return revertCount; } public void setRevertCount(Integer revertCount) { this.revertCount = revertCount; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public Long getSmId() { return smId; } public void setSmId(Long smId) { this.smId = smId; } public LocalDateTime getCreateTime() { return createTime; } public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public String getDepName() { return depName; } public void setDepName(String depName) { this.depName = depName; } public Integer getConsumeCount() { return consumeCount; } public void setConsumeCount(Integer consumeCount) { this.consumeCount = consumeCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialReceiveRecordsBaseInfo.java
对比新文件 @@ -0,0 +1,226 @@ package com.gkhy.safePlatform.equipment.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; @TableName("material_receive_records_base") public class MaterialReceiveRecordsBaseInfo { /** * 主键 */ @TableId(type = IdType.AUTO) private Long id; /** * 物资种类名称 */ private String materialName; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 领取数量 */ private Integer receiveCount; /** * 归还数量 */ private Integer revertCount; /** * 损耗数量 */ private Integer consumeCount; /** * 归还情况(0未归还,1部分归还,2归还完成,3耗材无需归还) */ private Byte status; /** * 物资管理id */ private Long smId; /** * 删除标识 */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 private int delFlag; /** * 创建人id */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 private Long createUid; /** * 创建人姓名 */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 private String createUname; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") public LocalDateTime createTime; /** * 修改人id */ @TableField(fill = FieldFill.INSERT_UPDATE) //自动填充的注解 private Long updateUid; /** * 修改人姓名 */ @TableField(fill = FieldFill.INSERT_UPDATE) //自动填充的注解 private String updateUname; /** * 修改时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) //自动填充的注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime updateTime; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public Long getReceiveUid(Long uid) { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public Integer getReceiveCount() { return receiveCount; } public void setReceiveCount(Integer receiveCount) { this.receiveCount = receiveCount; } public Integer getRevertCount() { return revertCount; } public void setRevertCount(Integer revertCount) { this.revertCount = revertCount; } public int getDelFlag() { return delFlag; } public void setDelFlag(int delFlag) { this.delFlag = delFlag; } public LocalDateTime getCreateTime() { return createTime; } public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; } public Long getCreateUid() { return createUid; } public void setCreateUid(Long createUid) { this.createUid = createUid; } public String getCreateUname() { return createUname; } public void setCreateUname(String createUname) { this.createUname = createUname; } public LocalDateTime getUpdateTime() { return updateTime; } public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; } public Long getUpdateUid() { return updateUid; } public void setUpdateUid(Long updateUid) { this.updateUid = updateUid; } public String getUpdateUname() { return updateUname; } public void setUpdateUname(String updateUname) { this.updateUname = updateUname; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public Long getReceiveUid() { return receiveUid; } public Long getSmId() { return smId; } public void setSmId(Long smId) { this.smId = smId; } public Integer getConsumeCount() { return consumeCount; } public void setConsumeCount(Integer consumeCount) { this.consumeCount = consumeCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialReceiveRecordsDO.java
对比新文件 @@ -0,0 +1,207 @@ package com.gkhy.safePlatform.equipment.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; public class MaterialReceiveRecordsDO { /** * id */ private Long id; /** * 物资名称 */ private String materialName; /** * 物资编号 */ private String materialNo; /** * rfid */ private String rfid; /** * 领取时间 */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime receiveTime; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 归还状态(0未归还,1归还,3损耗) */ private Byte revertStatus; /** * 物资状态 */ private Byte materialStatus; /** * 备注 */ private String remark; /** * 归还时间 */ private LocalDateTime revertTime; /** * 物资清单(详细物资)id */ private Long smdId; /** * 基础记录id */ private Long receiveBaseId; private Byte validStatus; private Long smallClassifyId; private Long bigClassifyId; private Byte consumable; public Long getReceiveBaseId() { return receiveBaseId; } public void setReceiveBaseId(Long receiveBaseId) { this.receiveBaseId = receiveBaseId; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public String getMaterialNo() { return materialNo; } public void setMaterialNo(String materialNo) { this.materialNo = materialNo; } public String getRfid() { return rfid; } public void setRfid(String rfid) { this.rfid = rfid; } public LocalDateTime getReceiveTime() { return receiveTime; } public void setReceiveTime(LocalDateTime receiveTime) { this.receiveTime = receiveTime; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getRevertStatus() { return revertStatus; } public void setRevertStatus(Byte revertStatus) { this.revertStatus = revertStatus; } public Byte getMaterialStatus() { return materialStatus; } public void setMaterialStatus(Byte materialStatus) { this.materialStatus = materialStatus; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public LocalDateTime getRevertTime() { return revertTime; } public void setRevertTime(LocalDateTime revertTime) { this.revertTime = revertTime; } public Long getSmdId() { return smdId; } public void setSmdId(Long smdId) { this.smdId = smdId; } public Byte getValidStatus() { return validStatus; } public void setValidStatus(Byte validStatus) { this.validStatus = validStatus; } public Long getSmallClassifyId() { return smallClassifyId; } public void setSmallClassifyId(Long smallClassifyId) { this.smallClassifyId = smallClassifyId; } public Long getBigClassifyId() { return bigClassifyId; } public void setBigClassifyId(Long bigClassifyId) { this.bigClassifyId = bigClassifyId; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/MaterialReceiveRecordsInfo.java
对比新文件 @@ -0,0 +1,168 @@ package com.gkhy.safePlatform.equipment.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; @TableName("material_receive_records") public class MaterialReceiveRecordsInfo { @TableId(type = IdType.AUTO) private Long id; /** * 物资名称 */ private String materialName; /** * 物资编号 */ private String materialNo; /** * rfid */ private String rfid; /** * 领取时间 */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime receiveTime; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 归还状态(0未归还,1归还,3损耗) */ private Byte revertStatus; /** * 物资状态 */ private Byte materialStatus; /** * 备注 */ private String remark; /** * 归还时间 */ private LocalDateTime revertTime; /** * 物资清单(详细物资)id */ private Long smdId; /** * 基础记录id */ private Long receiveBaseId; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public String getMaterialNo() { return materialNo; } public void setMaterialNo(String materialNo) { this.materialNo = materialNo; } public String getRfid() { return rfid; } public void setRfid(String rfid) { this.rfid = rfid; } public Long getSmdId() { return smdId; } public void setSmdId(Long smdId) { this.smdId = smdId; } public Long getReceiveBaseId() { return receiveBaseId; } public void setReceiveBaseId(Long receiveBaseId) { this.receiveBaseId = receiveBaseId; } public LocalDateTime getReceiveTime() { return receiveTime; } public void setReceiveTime(LocalDateTime receiveTime) { this.receiveTime = receiveTime; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getRevertStatus() { return revertStatus; } public void setRevertStatus(Byte revertStatus) { this.revertStatus = revertStatus; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public LocalDateTime getRevertTime() { return revertTime; } public void setRevertTime(LocalDateTime revertTime) { this.revertTime = revertTime; } public Byte getMaterialStatus() { return materialStatus; } public void setMaterialStatus(Byte materialStatus) { this.materialStatus = materialStatus; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialBO.java
对比新文件 @@ -0,0 +1,32 @@ package com.gkhy.safePlatform.equipment.entity; public class SafeMaterialBO { private Long id; private Integer totalCount; private Integer stockCount; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Integer getStockCount() { return stockCount; } public void setStockCount(Integer stockCount) { this.stockCount = stockCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialBatchDeliveryBO.java
文件名从 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailBO.java 修改 @@ -3,12 +3,14 @@ import java.time.LocalDateTime; import java.util.List; public class SafeMaterialDetailBO { public class SafeMaterialBatchDeliveryBO { private List<Long> ids; private Integer count; private Byte irStatus; private Long claimantId; private String claimantName; private Long receiveUid; private String receiveUname; private LocalDateTime deliveryTime; @@ -37,20 +39,21 @@ this.irStatus = irStatus; } public Long getClaimantId() { return claimantId; public Long getReceiveUid() { return receiveUid; } public void setClaimantId(Long claimantId) { this.claimantId = claimantId; public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getClaimantName() { return claimantName; public String getReceiveUname() { return receiveUname; } public void setClaimantName(String claimantName) { this.claimantName = claimantName; public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public LocalDateTime getDeliveryTime() { equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyInfo.java
@@ -21,6 +21,8 @@ * 父级id */ private Long parentId; private Byte consumable; /** * 删除标识 */ @@ -140,4 +142,12 @@ public void setParentId(Long parentId) { this.parentId = parentId; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDO.java
@@ -25,6 +25,7 @@ private String bigClassifyName; private Long smallClassifyId; private String smallClassifyName; /** * 部门id */ @@ -37,6 +38,11 @@ * 物资名称 */ private String materialName; /** * */ private Integer totalCount; private Integer stockCount; /** * 是否是耗材(0是, 1否) */ @@ -209,4 +215,28 @@ public void setSmallClassifyId(Long smallClassifyId) { this.smallClassifyId = smallClassifyId; } public String getSmallClassifyName() { return smallClassifyName; } public void setSmallClassifyName(String smallClassifyName) { this.smallClassifyName = smallClassifyName; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Integer getStockCount() { return stockCount; } public void setStockCount(Integer stockCount) { this.stockCount = stockCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfo.java
@@ -5,6 +5,7 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.util.Date; @TableName("safe_material_detail") public class SafeMaterialDetailInfo implements Serializable { @@ -46,7 +47,7 @@ /** * 保质到期时间 */ private LocalDateTime validTime; private Date validTime; /** * 状态 */ @@ -70,13 +71,21 @@ /** * 认领人id */ private Long claimantId; private Long receiveUid; /** * 认领人姓名 */ private String claimantName; private String receiveUname; /** * 无效原因 */ private Byte status; /** * 描述 */ private String remark; /** * 删除标识 */ @@ -179,11 +188,11 @@ this.validType = validType; } public LocalDateTime getValidTime() { public Date getValidTime() { return validTime; } public void setValidTime(LocalDateTime validTime) { public void setValidTime(Date validTime) { this.validTime = validTime; } @@ -283,19 +292,36 @@ this.updateTime = updateTime; } public Long getClaimantId() { return claimantId; public Long getReceiveUid() { return receiveUid; } public void setClaimantId(Long claimantId) { this.claimantId = claimantId; public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getClaimantName() { return claimantName; public String getReceiveUname() { return receiveUname; } public void setClaimantName(String claimantName) { this.claimantName = claimantName; public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfoDO.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; import java.util.Date; public class SafeMaterialDetailInfoDO { /** @@ -51,12 +52,16 @@ /** * 保质到期时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime validTime; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date validTime; /** * 状态 */ private Byte validStatus; private Byte status; private String remark; /** * 出入库状态 */ @@ -78,12 +83,12 @@ /** * 认领人id */ private Long claimantId; private Long receiveUid; /** * 认领人姓名 */ private String claimantName; private String receiveUname; public Long getId() { return id; @@ -165,11 +170,11 @@ this.validType = validType; } public LocalDateTime getValidTime() { public Date getValidTime() { return validTime; } public void setValidTime(LocalDateTime validTime) { public void setValidTime(Date validTime) { this.validTime = validTime; } @@ -213,21 +218,6 @@ this.smId = smId; } public Long getClaimantId() { return claimantId; } public void setClaimantId(Long claimantId) { this.claimantId = claimantId; } public String getClaimantName() { return claimantName; } public void setClaimantName(String claimantName) { this.claimantName = claimantName; } public Long getSmallClassifyId() { return smallClassifyId; @@ -236,4 +226,36 @@ public void setSmallClassifyId(Long smallClassifyId) { this.smallClassifyId = smallClassifyId; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialInfo.java
@@ -44,6 +44,14 @@ */ private Byte consumable; /** * 有效数量 */ private Integer totalCount; /** * 库存数量 */ private Integer stockCount; /** * 删除标识 */ @TableField(fill = FieldFill.INSERT) //自动填充的注解 @@ -202,5 +210,19 @@ this.updateTime = updateTime; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Integer getStockCount() { return stockCount; } public void setStockCount(Integer stockCount) { this.stockCount = stockCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ConsumableEnum.java
@@ -4,8 +4,8 @@ import java.util.Map; public enum ConsumableEnum { YES((byte) 0, "是"), NO((byte) 1, "否"); YES((byte) 0, "耗材"), NO((byte) 1, "非耗材"); private Byte code; private String value; equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java
@@ -17,6 +17,7 @@ MATERIAL_IN_THE_LIBRARY("E1008","物资已入库,不可再次入库"), MATERIAL_CONSUMABLE("E1009","耗材物资不可重新入库"), DATA_EXIST("E1010","数据已存在"), DATA_ILLEGAL("E1011","数据不合法"), ERROR("A3000", "未知错误"); equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/MaterialReceiveRecordsStatusEnum.java
对比新文件 @@ -0,0 +1,49 @@ package com.gkhy.safePlatform.equipment.enums; import java.util.HashMap; import java.util.Map; public enum MaterialReceiveRecordsStatusEnum { RETURN_NO((byte) 0, "未归还"), RETURN_PART((byte) 1, "部分归还"), RETURN_COMPLETE((byte)2,"归还完成"), CONSUMABLE_RETURN_NO((byte)3,"--"); private Byte code; private String value; MaterialReceiveRecordsStatusEnum(Byte code, String value) { this.code = code; this.value = value; } public Byte getCode() { return code; } public void setCode(Byte code) { this.code = code; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } // 转换成为 MAP<Byte, String>, 对外提供查询和遍历功能 public static Map<Byte, MaterialReceiveRecordsStatusEnum> toMap() { Map<Byte, MaterialReceiveRecordsStatusEnum> map = new HashMap(); for (MaterialReceiveRecordsStatusEnum receiveRecordsStatusEnum : MaterialReceiveRecordsStatusEnum.values()) { map.put(receiveRecordsStatusEnum.getCode(), receiveRecordsStatusEnum); } return map; } public static MaterialReceiveRecordsStatusEnum getByCode(Byte code){ return toMap().get(code); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/MaterialRevertStatusEnum.java
对比新文件 @@ -0,0 +1,47 @@ package com.gkhy.safePlatform.equipment.enums; import java.util.HashMap; import java.util.Map; public enum MaterialRevertStatusEnum { REVERT_YES((byte) 0, "已归还"), REVERT_NO((byte) 1, "未归还"), DEPLETION((byte)2,"耗损"); private Byte code; private String value; MaterialRevertStatusEnum(Byte code, String value) { this.code = code; this.value = value; } public Byte getCode() { return code; } public void setCode(Byte code) { this.code = code; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } // 转换成为 MAP<Byte, String>, 对外提供查询和遍历功能 public static Map<Byte, MaterialRevertStatusEnum> toMap() { Map<Byte, MaterialRevertStatusEnum> map = new HashMap(); for (MaterialRevertStatusEnum revertStatusEnum : MaterialRevertStatusEnum.values()) { map.put(revertStatusEnum.getCode(), revertStatusEnum); } return map; } public static MaterialRevertStatusEnum getByCode(Byte code){ return toMap().get(code); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/MaterialStatusEnum.java
对比新文件 @@ -0,0 +1,50 @@ package com.gkhy.safePlatform.equipment.enums; import java.util.HashMap; import java.util.Map; public enum MaterialStatusEnum { INTACT((byte) 0, "完好"), DAMAGE((byte) 1, "损坏"), LOSS((byte) 2, "丢失"), OVERDUE((byte) 3, "过期"), OTHER((byte) 4,"其他") ; private Byte code; private String value; MaterialStatusEnum(Byte code, String value) { this.code = code; this.value = value; } public Byte getCode() { return code; } public void setCode(Byte code) { this.code = code; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } // 转换成为 MAP<Byte, String>, 对外提供查询和遍历功能 public static Map<Byte, MaterialStatusEnum> toMap() { Map<Byte, MaterialStatusEnum> map = new HashMap(); for (MaterialStatusEnum materialStatusEnum : MaterialStatusEnum.values()) { map.put(materialStatusEnum.getCode(), materialStatusEnum); } return map; } public static MaterialStatusEnum getByCode(Byte code){ return toMap().get(code); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidStatusEnum.java
@@ -34,8 +34,8 @@ // 转换成为 MAP<Byte, String>, 对外提供查询和遍历功能 public static Map<Byte, ValidStatusEnum> toMap() { Map<Byte, ValidStatusEnum> map = new HashMap(); for (ValidStatusEnum consumableEnum : ValidStatusEnum.values()) { map.put(consumableEnum.getCode(), consumableEnum); for (ValidStatusEnum validStatusEnum : ValidStatusEnum.values()) { map.put(validStatusEnum.getCode(), validStatusEnum); } return map; } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MaterialReceiveRecordsBaseReq.java
对比新文件 @@ -0,0 +1,27 @@ package com.gkhy.safePlatform.equipment.model.dto.req; import javax.validation.constraints.NotNull; import java.util.List; public class MaterialReceiveRecordsBaseReq { @NotNull(message = "领取记录主键不可为空!") private Long receiveBaseId; @NotNull(message = "领取物资不可为空!") private List<MaterialReceiveRecordsReq> materialList; public Long getReceiveBaseId() { return receiveBaseId; } public void setReceiveBaseId(Long receiveBaseId) { this.receiveBaseId = receiveBaseId; } public List<MaterialReceiveRecordsReq> getMaterialList() { return materialList; } public void setMaterialList(List<MaterialReceiveRecordsReq> materialList) { this.materialList = materialList; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MaterialReceiveRecordsQuery.java
对比新文件 @@ -0,0 +1,65 @@ package com.gkhy.safePlatform.equipment.model.dto.req; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDate; public class MaterialReceiveRecordsQuery { @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate startTime; @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate endTime; private String materialName; private Long depId; private Long receiveUid; private String receiveUname; public LocalDate getStartTime() { return startTime; } public void setStartTime(LocalDate startTime) { this.startTime = startTime; } public LocalDate getEndTime() { return endTime; } public void setEndTime(LocalDate endTime) { this.endTime = endTime; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MaterialReceiveRecordsReq.java
对比新文件 @@ -0,0 +1,41 @@ package com.gkhy.safePlatform.equipment.model.dto.req; public class MaterialReceiveRecordsReq { /** * 领取物资id */ private Long receiveId; /** * 物资状态 */ private Byte materialStatus; /** * 物资情况说明 */ private String remark; public Long getReceiveId() { return receiveId; } public void setReceiveId(Long receiveId) { this.receiveId = receiveId; } public Byte getMaterialStatus() { return materialStatus; } public void setMaterialStatus(Byte materialStatus) { this.materialStatus = materialStatus; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialDeliveryReq.java
@@ -8,7 +8,7 @@ @NotNull(message = "主键不可为空!") private List<Long> ids; @NotNull(message = "认领人不可为空!") private Long claimantId; private Long receiveUid; public List<Long> getIds() { return ids; @@ -18,11 +18,11 @@ this.ids = ids; } public Long getClaimantId() { return claimantId; public Long getReceiveUid() { return receiveUid; } public void setClaimantId(Long claimantId) { this.claimantId = claimantId; public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialRandomDeliveryReq.java
@@ -7,7 +7,7 @@ @NotNull(message = "主键不可为空!") private Integer count; @NotNull(message = "认领人不可为空!") private Long claimantId; private Long receiveUid; @NotNull(message = "物资管理id不可为空!") private Long smId; @@ -22,12 +22,12 @@ this.smId = smId; } public Long getClaimantId() { return claimantId; public Long getReceiveUid() { return receiveUid; } public void setClaimantId(Long claimantId) { this.claimantId = claimantId; public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public Integer getCount() { equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialAddReq.java
@@ -16,17 +16,7 @@ */ @NotNull(message = "物资类型(大类)不可为空!") private Long bigClassifyId; /** * 部门id */ @NotNull(message = "所属部门不可为空!") private Long depId; /** * 是否是耗材(0是, 1否) */ @NotNull(message = "是否是耗材不可为空!") private Byte consumable; public Long getSmallClassifyId() { return smallClassifyId; @@ -36,21 +26,6 @@ this.smallClassifyId = smallClassifyId; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } public Long getBigClassifyId() { return bigClassifyId; equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyAddReq.java
@@ -14,6 +14,11 @@ */ private Long ParentId; /** * 是否是耗材(0是,1否) */ private Byte consumable; public String getMaterialClassifyName() { return materialClassifyName; } @@ -29,4 +34,12 @@ public void setParentId(Long parentId) { ParentId = parentId; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyModReq.java
@@ -16,6 +16,11 @@ @NotBlank(message = "物资名称不可为空") private String materialClassifyName; /** * 是否是耗材(0是,1否) */ private Byte consumable; public Long getId() { return id; } @@ -31,4 +36,12 @@ public void setMaterialClassifyName(String materialClassifyName) { this.materialClassifyName = materialClassifyName; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailAddReq.java
@@ -4,6 +4,7 @@ import javax.validation.constraints.NotNull; import java.time.LocalDateTime; import java.util.Date; public class SafeMaterialDetailAddReq { @NotNull(message = "物资不可为空!") @@ -14,8 +15,8 @@ private Integer wareHousingCount; @NotNull(message = "有效期类型不可为空!") private Byte validType; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime validTime; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date validTime; //rfid private String rfid; @@ -60,11 +61,11 @@ this.validType = validType; } public LocalDateTime getValidTime() { public Date getValidTime() { return validTime; } public void setValidTime(LocalDateTime validTime) { public void setValidTime(Date validTime) { this.validTime = validTime; } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailReq.java
@@ -4,6 +4,7 @@ import javax.validation.constraints.NotNull; import java.time.LocalDateTime; import java.util.Date; public class SafeMaterialDetailReq { /** @@ -28,8 +29,8 @@ /** * 保质到期时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime validTime; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date validTime; /** * 出入库状态 */ @@ -42,7 +43,7 @@ /** * 认领人id */ private Long claimantId; private Long receiveUid; public Long getId() { return id; @@ -76,11 +77,11 @@ this.validType = validType; } public LocalDateTime getValidTime() { public Date getValidTime() { return validTime; } public void setValidTime(LocalDateTime validTime) { public void setValidTime(Date validTime) { this.validTime = validTime; } @@ -100,12 +101,11 @@ this.smId = smId; } public Long getClaimantId() { return claimantId; public Long getReceiveUid() { return receiveUid; } public void setClaimantId(Long claimantId) { this.claimantId = claimantId; public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialModReq.java
@@ -15,19 +15,7 @@ */ @NotNull(message = "物资类型(大类)不可为空!") private Long bigClassifyId; /** * 部门id */ @NotNull(message = "所属部门不可为空!") private Long depId; /** * 物资名称 */ /** * 是否是耗材(0是, 1否) */ @NotNull(message = "是否是耗材不可为空!") private Byte consumable; public Long getId() { return id; @@ -43,22 +31,6 @@ public void setSmallClassifyId(Long smallClassifyId) { this.smallClassifyId = smallClassifyId; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } public Long getBigClassifyId() { equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialQuery.java
@@ -10,6 +10,8 @@ */ private String materialName; private Long depId; public Long getBigClassifyId() { return bigClassifyId; } @@ -25,4 +27,12 @@ public void setMaterialName(String materialName) { this.materialName = materialName; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/db/SafeMaterialDetailDBQuery.java
对比新文件 @@ -0,0 +1,59 @@ package com.gkhy.safePlatform.equipment.model.dto.req.db; public class SafeMaterialDetailDBQuery { private Byte irStatus; private String rfid; private Long depId; private Long smId; private Byte validStatus; private Integer count; public Byte getIrStatus() { return irStatus; } public void setIrStatus(Byte irStatus) { this.irStatus = irStatus; } public String getRfid() { return rfid; } public void setRfid(String rfid) { this.rfid = rfid; } public Long getSmId() { return smId; } public void setSmId(Long smId) { this.smId = smId; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public Byte getValidStatus() { return validStatus; } public void setValidStatus(Byte validStatus) { this.validStatus = validStatus; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/BaseMaterialDto.java
@@ -6,6 +6,12 @@ //物资名称 private String materialName; /** * 是否是耗材(0是, 1否) */ private Byte consumable; private String consumableName; public Long getSmId() { return smId; } @@ -21,4 +27,20 @@ public void setMaterialName(String materialName) { this.materialName = materialName; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } public String getConsumableName() { return consumableName; } public void setConsumableName(String consumableName) { this.consumableName = consumableName; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialReceiveRecordsBaseDto.java
对比新文件 @@ -0,0 +1,174 @@ package com.gkhy.safePlatform.equipment.model.dto.resp; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; import java.util.List; public class MaterialReceiveRecordsBaseDto { /** * 主键 */ private Long id; /** * 物资种类名称 */ private String materialName; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 领取数量 */ private Integer receiveCount; /** * 归还数量 */ private Integer revertCount; private Integer consumeCount; /** * 归还情况(0未归还,1部分归还,2归还完成,3耗材无需归还) */ private Byte status; /** * 归还情况 */ private String statusName; /** * 物资管理id */ private Long smId; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") public LocalDateTime createTime; private Long depId; private String depName; private List<MaterialReceiveRecordsDto> materialList; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Integer getReceiveCount() { return receiveCount; } public void setReceiveCount(Integer receiveCount) { this.receiveCount = receiveCount; } public Integer getRevertCount() { return revertCount; } public void setRevertCount(Integer revertCount) { this.revertCount = revertCount; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public String getStatusName() { return statusName; } public void setStatusName(String statusName) { this.statusName = statusName; } public Long getSmId() { return smId; } public void setSmId(Long smId) { this.smId = smId; } public LocalDateTime getCreateTime() { return createTime; } public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public String getDepName() { return depName; } public void setDepName(String depName) { this.depName = depName; } public List<MaterialReceiveRecordsDto> getMaterialList() { return materialList; } public void setMaterialList(List<MaterialReceiveRecordsDto> materialList) { this.materialList = materialList; } public Integer getConsumeCount() { return consumeCount; } public void setConsumeCount(Integer consumeCount) { this.consumeCount = consumeCount; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialReceiveRecordsDto.java
对比新文件 @@ -0,0 +1,193 @@ package com.gkhy.safePlatform.equipment.model.dto.resp; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; public class MaterialReceiveRecordsDto { @TableId(type = IdType.AUTO) private Long id; /** * 物资名称 */ private String materialName; /** * 物资编号 */ private String materialNo; /** * rfid */ private String rfid; /** * 领取时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime receiveTime; /** * 领取人id */ private Long receiveUid; /** * 领取人姓名 */ private String receiveUname; /** * 归还状态(0未归还,1归还,3损耗) */ private Byte revertStatus; /** * 归还状态 */ private String revertStatusName; /** * 物资状态 */ private Byte materialStatus; /** * 物资状态 */ private String materialStatusName; /** * 备注 */ private String remark; /** * 归还时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime revertTime; /** * 物资清单(详细物资)id */ private Long smdId; /** * 基础记录id */ private Long receiveBaseId; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getMaterialName() { return materialName; } public void setMaterialName(String materialName) { this.materialName = materialName; } public String getMaterialNo() { return materialNo; } public void setMaterialNo(String materialNo) { this.materialNo = materialNo; } public String getRfid() { return rfid; } public void setRfid(String rfid) { this.rfid = rfid; } public LocalDateTime getReceiveTime() { return receiveTime; } public void setReceiveTime(LocalDateTime receiveTime) { this.receiveTime = receiveTime; } public Long getReceiveUid() { return receiveUid; } public void setReceiveUid(Long receiveUid) { this.receiveUid = receiveUid; } public String getReceiveUname() { return receiveUname; } public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getRevertStatus() { return revertStatus; } public void setRevertStatus(Byte revertStatus) { this.revertStatus = revertStatus; } public String getRevertStatusName() { return revertStatusName; } public void setRevertStatusName(String revertStatusName) { this.revertStatusName = revertStatusName; } public Byte getMaterialStatus() { return materialStatus; } public void setMaterialStatus(Byte materialStatus) { this.materialStatus = materialStatus; } public String getMaterialStatusName() { return materialStatusName; } public void setMaterialStatusName(String materialStatusName) { this.materialStatusName = materialStatusName; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public LocalDateTime getRevertTime() { return revertTime; } public void setRevertTime(LocalDateTime revertTime) { this.revertTime = revertTime; } public Long getSmdId() { return smdId; } public void setSmdId(Long smdId) { this.smdId = smdId; } public Long getReceiveBaseId() { return receiveBaseId; } public void setReceiveBaseId(Long receiveBaseId) { this.receiveBaseId = receiveBaseId; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialClassifyDto.java
@@ -8,6 +8,13 @@ private Long parentId; /** * 是否是耗材(0是,1否) */ private Byte consumable; private String consumableName; private List<SafeMaterialClassifyDto> childList; public Long getParentId() { @@ -41,4 +48,20 @@ public void setChildList(List<SafeMaterialClassifyDto> childList) { this.childList = childList; } public Byte getConsumable() { return consumable; } public void setConsumable(Byte consumable) { this.consumable = consumable; } public String getConsumableName() { return consumableName; } public void setConsumableName(String consumableName) { this.consumableName = consumableName; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDetailDto.java
@@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; import java.util.Date; public class SafeMaterialDetailDto { /** @@ -16,10 +17,14 @@ * 物资编号 */ private String materialNo; private Long bigClassifyId; /** * 物资类型名称 */ private String materialClassifyName; private String bigClassifyName; private Long depId; /** * 部门名称 */ @@ -43,8 +48,8 @@ /** * 保质到期时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime validTime; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date validTime; /** * 状态 */ @@ -75,7 +80,19 @@ /** * 认领人姓名 */ private String claimantName; private String receiveUname; /** * 物资状态 */ private Byte status; /** * 物资状态名称 */ private String statusName; /** * 描述 */ private String remark; /** * 安全物资管理id @@ -123,12 +140,12 @@ this.rfid = rfid; } public String getMaterialClassifyName() { return materialClassifyName; public String getBigClassifyName() { return bigClassifyName; } public void setMaterialClassifyName(String materialClassifyName) { this.materialClassifyName = materialClassifyName; public void setBigClassifyName(String bigClassifyName) { this.bigClassifyName = bigClassifyName; } public String getConsumableName() { @@ -147,11 +164,11 @@ this.validType = validType; } public LocalDateTime getValidTime() { public Date getValidTime() { return validTime; } public void setValidTime(LocalDateTime validTime) { public void setValidTime(Date validTime) { this.validTime = validTime; } @@ -203,12 +220,28 @@ this.deliveryTime = deliveryTime; } public String getClaimantName() { return claimantName; public String getReceiveUname() { return receiveUname; } public void setClaimantName(String claimantName) { this.claimantName = claimantName; public void setReceiveUname(String receiveUname) { this.receiveUname = receiveUname; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getValidTypeName() { @@ -226,4 +259,28 @@ public void setSmId(Long smId) { this.smId = smId; } public Long getBigClassifyId() { return bigClassifyId; } public void setBigClassifyId(Long bigClassifyId) { this.bigClassifyId = bigClassifyId; } public Long getDepId() { return depId; } public void setDepId(Long depId) { this.depId = depId; } public String getStatusName() { return statusName; } public void setStatusName(String statusName) { this.statusName = statusName; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDto.java
@@ -42,7 +42,13 @@ /** * 有效库存数量 */ private Integer validStockCount; private Integer stockCount; /** * 总库存 * @return */ private Integer totalCount; public Long getId() { return id; @@ -102,12 +108,20 @@ this.consumableName = consumableName; } public Integer getValidStockCount() { return validStockCount; public Integer getStockCount() { return stockCount; } public void setValidStockCount(Integer validStockCount) { this.validStockCount = validStockCount; public void setStockCount(Integer stockCount) { this.stockCount = stockCount; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Long getBigClassifyId() { equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/MaterialReceiveRecordsBaseInfoRepository.java
对比新文件 @@ -0,0 +1,18 @@ package com.gkhy.safePlatform.equipment.repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseInfo; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsQuery; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface MaterialReceiveRecordsBaseInfoRepository extends BaseMapper<MaterialReceiveRecordsBaseInfo> { List<MaterialReceiveRecordsBaseDO> listByConditions(Page page, @Param("query") MaterialReceiveRecordsQuery query); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/MaterialReceiveRecordsInfoRepository.java
对比新文件 @@ -0,0 +1,23 @@ package com.gkhy.safePlatform.equipment.repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.safePlatform.equipment.entity.MaterialDeliveryRecordDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsInfo; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface MaterialReceiveRecordsInfoRepository extends BaseMapper<MaterialReceiveRecordsInfo> { MaterialDeliveryRecordDO getRecordBySmdId(@Param("smdId") Long smdId, @Param("revertStatus") Byte revertStatus); List<MaterialReceiveRecordsDO> getNoReturnRecordByIds(@Param("idList") List<Long> idList, @Param("revertStatus") Byte revertStatus); List<MaterialReceiveRecordsDO> getReceiveRecordsByReceiveUids(MaterialReceiveRecordsBO bo); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialDetailInfoRepository.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.equipment.entity.*; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMatetrialDetailQuery; import com.gkhy.safePlatform.equipment.model.dto.req.db.SafeMaterialDetailDBQuery; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -27,13 +27,12 @@ void deleteBatch(List<Long> ids); void updateDeliveryStatusByIds(@Param("detailBO")SafeMaterialDetailBO detailBO); void updateDeliveryStatusByIds(@Param("detailBO") SafeMaterialBatchDeliveryBO detailBO); void deliveryBatchRandom(@Param("detailBO")SafeMaterialDetailBO detailBO); Integer getValidStockCount(@Param("smId")Long smId, @Param("validStatus")Byte validStatus, @Param("irStatus")Byte irStatus); List<SafeMaterialDetailInfoDO> listByCondition(Page<SafeMaterialDetailInfo> page, @Param("query") SafeMatetrialDetailQuery query); List<SafeMaterialDetailInfoDO> listByCondition(Page<SafeMaterialDetailInfo> page, @Param("query") SafeMaterialDetailDBQuery query); int getCountBySmIds(@Param("smIds") List<Long> smIds); @@ -52,4 +51,14 @@ List<SafeMaterialDetailDO> getListBySmallClassifyIds(List<Long> smallClassifyIds,@Param("depIds") List<Long> depIds); List<SafeMaterialDetailInfoDO> getListByRfids(List<String> rfids); void updateValidStatusByIds(@Param("ids")List<Long> ids, @Param("validStatus")Byte validStatus); List<SafeMaterialDetailInfo> getUnValidList(Byte validStatus); List<SafeMaterialDetailInfo> getListBySmIdAndRfid(@Param("query") SafeMaterialDetailDBQuery query); List<SafeMaterialDetailInfo> getListBySmId(@Param("query") SafeMaterialDetailDBQuery query); void updateBatch(List<SafeMaterialDetailInfo> list); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialInfoRepository.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.equipment.entity.SafeMaterialBO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialDO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; @@ -13,7 +14,7 @@ @Repository public interface SafeMaterialInfoRepository extends BaseMapper<SafeMaterialInfo> { SafeMaterialInfo queryById(Long id); SafeMaterialDO queryById(Long id); int getTotalCount(); @@ -25,4 +26,8 @@ int getCountBySmallClassifyId(Long smallClassifyId); Integer checkMatrial(@Param("smallClassifyId") Long smallClassifyId, @Param("depId") Long depId,@Param("id") Long id); void updateCountById(SafeMaterialBO safeMaterialBO); void updateStockCount(List<SafeMaterialBO> safeMaterialBOList); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialClassifyService.java
@@ -5,10 +5,7 @@ import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyDO; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialClassifyQuery; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyAddReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyModReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyQuery; import com.gkhy.safePlatform.equipment.model.dto.req.*; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyDto; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyStockDto; @@ -21,14 +18,15 @@ ResultVO update(ContextCacheUser currentUser, SafeMaterialClassifyModReq req); ResultVO delete(Long id); ResultVO delete(ContextCacheUser currentUser,Long id); SafeMaterialClassifyDto queryById(Long id); SafeMaterialClassifyDto queryById(ContextCacheUser currentUser,Long id); SafeMaterialClassifyDO getBigAndSmallClassifyInfo(Long smallClassifyId); List<SafeMaterialClassifyDto> getClassifyListByIds(List<Long> ids); List<SafeMaterialClassifyDO> getTraceabilityClassifyList(List<Long> smallClassifyIds); SearchResultVO<List<SafeMaterialClassifyDto>> listByPage(PageQuery<MaterialClassifyQuery> pageQuery); SearchResultVO<List<SafeMaterialClassifyDto>> listByPage(ContextCacheUser currentUser,PageQuery<MaterialClassifyQuery> pageQuery); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialReceiveRecordsService.java
对比新文件 @@ -0,0 +1,19 @@ package com.gkhy.safePlatform.equipment.service; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsBaseReq; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsQuery; import com.gkhy.safePlatform.equipment.model.dto.resp.MaterialReceiveRecordsBaseDto; import java.util.List; public interface MaterialReceiveRecordsService { SearchResultVO<List<MaterialReceiveRecordsBaseDto>> listByPage(ContextCacheUser currentUser, PageQuery<MaterialReceiveRecordsQuery> pageQuery); void revertMaterial(ContextCacheUser currentUser, MaterialReceiveRecordsBaseReq req); List<MaterialReceiveRecordsDO> getReceiveRecordsByReceiveUids(MaterialReceiveRecordsBO bo); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialDetailService.java
@@ -1,5 +1,6 @@ package com.gkhy.safePlatform.equipment.service; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; @@ -13,13 +14,12 @@ public interface SafeMaterialDetailService { ResultVO save(SafeMaterialDetailAddReq req); ResultVO singleDelivery(SafeMaterialDetailReq req); void singleDelivery(ContextCacheUser currentUser,SafeMaterialDetailReq req); ResultVO singleReceipt(Long id); void singleReceipt(Long id,ContextCacheUser currentUser); ResultVO delete(Long id); ResultVO singleDdelivery0rReceipt(SafeMaterialDetailReq req); ResultVO saveBatch(SafeMaterialDetailAddReq req); @@ -27,13 +27,13 @@ ResultVO receiptBatch(ParamForm paramForm); ResultVO deleteBatch(ParamForm paramForm); ResultVO deleteBatch(ContextCacheUser currentUser,ParamForm paramForm); ResultVO deliveryBatchByIds(MterialDeliveryReq req); void deliveryBatchByIds(MterialDeliveryReq req,ContextCacheUser currentUser); ResultVO deliveryBatchRandom(MterialRandomDeliveryReq req); void deliveryBatchBySmId(MterialRandomDeliveryReq req,ContextCacheUser currentUser); SearchResultVO<List<SafeMaterialDetailDto>> listByPage(PageQuery<SafeMatetrialDetailQuery> pageQuery); SearchResultVO<List<SafeMaterialDetailDto>> listByPage(ContextCacheUser currentUser,PageQuery<SafeMatetrialDetailQuery> pageQuery); ResultVO queryById(Long id); List<SafeMaterialClassifyStockDto> getSmallClassifyStockByIds(List<Long> smallClassifyIds); equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialService.java
@@ -1,26 +1,31 @@ package com.gkhy.safePlatform.equipment.service; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.model.dto.req.ParamForm; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialAddReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialModReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; import com.gkhy.safePlatform.equipment.model.dto.resp.MaterialClassificationDto; import com.gkhy.safePlatform.equipment.model.dto.resp.MaterialDepartmentDto; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialDto; import java.util.List; public interface SafeMaterialService { ResultVO save(SafeMaterialAddReq req); ResultVO save(ContextCacheUser currentUser,SafeMaterialAddReq req); ResultVO update(SafeMaterialModReq req); ResultVO update(ContextCacheUser currentUser,SafeMaterialModReq req); ResultVO queryById(Long id); ResultVO queryById(ContextCacheUser currentUser,Long id); ResultVO delete(Long id); ResultVO delete(ContextCacheUser currentUser,Long id); ResultVO deleteBatch(Long[] ids); ResultVO deleteBatch(ContextCacheUser currentUser, ParamForm paramForm); ResultVO list(); SearchResultVO<List<SafeMaterialDto>> listByPage(PageQuery<SafeMaterialQuery> pageQuery); List<MaterialDepartmentDto> list(ContextCacheUser currentUser); List<MaterialClassificationDto> listByDepId(ContextCacheUser currentUser); SearchResultVO<List<SafeMaterialDto>> listByPage(ContextCacheUser currentUser,PageQuery<SafeMaterialQuery> pageQuery); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/MaterialReceiveRecordsBaseInfoService.java
对比新文件 @@ -0,0 +1,15 @@ package com.gkhy.safePlatform.equipment.service.baseService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseInfo; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsQuery; import java.util.List; public interface MaterialReceiveRecordsBaseInfoService extends IService<MaterialReceiveRecordsBaseInfo> { List<MaterialReceiveRecordsBaseDO> listByPage(Page page, MaterialReceiveRecordsQuery query); MaterialReceiveRecordsBaseInfo queryById(Long receiveBaseId); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/MaterialReceiveRecordsInfoService.java
对比新文件 @@ -0,0 +1,22 @@ package com.gkhy.safePlatform.equipment.service.baseService; import com.baomidou.mybatisplus.extension.service.IService; import com.gkhy.safePlatform.equipment.entity.MaterialDeliveryRecordDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsInfo; import java.util.List; public interface MaterialReceiveRecordsInfoService extends IService<MaterialReceiveRecordsInfo> { MaterialDeliveryRecordDO getRecordBySmdId(Long smdId); List<MaterialReceiveRecordsInfo> getNoReturnRecordByReceiveBaseId(Long receiveBaseId); List<MaterialReceiveRecordsDO> getNoReturnRecordByIds(List<Long> idList); List<MaterialReceiveRecordsInfo> listByReceiveBaseIds(List<Long> idList); List<MaterialReceiveRecordsDO> getReceiveRecordsByReceiveUids(MaterialReceiveRecordsBO bo); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialClassifyInfoService.java
@@ -21,7 +21,7 @@ List<SafeMaterialClassifyInfo> list(); List<SafeMaterialClassifyInfo> getList(); List<SafeMaterialClassifyInfo> getParentList(); List<SafeMaterialClassifyInfo> getListByParentId(Long parentId); @@ -31,7 +31,7 @@ List<SafeMaterialClassifyDO> getTraceabilityClassifyList(List<Long> smallClassifyIds); List<SafeMaterialClassifyInfo> listByPage(Page<SafeMaterialClassifyInfo> page, MaterialClassifyQuery searchParams); List<SafeMaterialClassifyInfo> listByPage(Page<SafeMaterialClassifyInfo> page, MaterialClassifyQuery query); List<SafeMaterialClassifyInfo> getListByParentIds(List<Long> parentIdList); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialDetailInfoService.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.gkhy.safePlatform.equipment.entity.*; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMatetrialDetailQuery; import com.gkhy.safePlatform.equipment.model.dto.req.db.SafeMaterialDetailDBQuery; import java.util.List; @@ -25,14 +25,13 @@ void deleteBatch(List<Long> ids); void updateDeliveryStatusByIds(SafeMaterialDetailBO detailBO); void deliveryBatchRandom(SafeMaterialDetailBO detailBO); void updateDeliveryStatusByIds(SafeMaterialBatchDeliveryBO detailBO); Integer getValidStockCount(Long smId); List<SafeMaterialDetailInfoDO> listByPage(Page<SafeMaterialDetailInfo> page, SafeMatetrialDetailQuery query); List<SafeMaterialDetailInfoDO> listByPage(Page<SafeMaterialDetailInfo> page, SafeMaterialDetailDBQuery query); int getCountBySmIds(List<Long> smIds); @@ -53,4 +52,14 @@ List<SafeMaterialDetailInfoDO> getListByRfids(List<String> rfid); List<SafeMaterialDetailInfo> getUnValidList(); void updateValidStatusByIds(List<Long> ids); List<SafeMaterialDetailInfo> getListBySmIdAndRfid(SafeMaterialDetailDBQuery query); List<SafeMaterialDetailInfo> getListBySmId(SafeMaterialDetailDBQuery query); void updateBatch(List<SafeMaterialDetailInfo> safeMaterialDetailInfoList); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialInfoService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.gkhy.safePlatform.equipment.entity.SafeMaterialBO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialDO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; @@ -11,7 +12,7 @@ public interface SafeMaterialInfoService extends IService<SafeMaterialInfo> { int getTotalCount(); SafeMaterialInfo queryById(Long id); SafeMaterialDO queryById(Long id); @@ -25,4 +26,10 @@ int getCountBySmallClassifyId(Long smallClassifyId); boolean checkMaterial(Long smallClassifyId, Long depId, Long id); void updateCountById(SafeMaterialBO safeMaterialBO); List<SafeMaterialInfo> listByDepId(Long depId); void updateStockCount(List<SafeMaterialBO> safeMaterialBOList); } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/MaterialReceiveRecordsBaseInfoServiceImpl.java
对比新文件 @@ -0,0 +1,29 @@ package com.gkhy.safePlatform.equipment.service.baseService.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseInfo; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsQuery; import com.gkhy.safePlatform.equipment.repository.MaterialReceiveRecordsBaseInfoRepository; import com.gkhy.safePlatform.equipment.service.baseService.MaterialReceiveRecordsBaseInfoService; import org.springframework.stereotype.Service; import java.util.List; @Service public class MaterialReceiveRecordsBaseInfoServiceImpl extends ServiceImpl<MaterialReceiveRecordsBaseInfoRepository,MaterialReceiveRecordsBaseInfo> implements MaterialReceiveRecordsBaseInfoService { @Override public List<MaterialReceiveRecordsBaseDO> listByPage(Page page, MaterialReceiveRecordsQuery query) { return baseMapper.listByConditions(page,query); } @Override public MaterialReceiveRecordsBaseInfo queryById(Long receiveBaseId) { MaterialReceiveRecordsBaseInfo receiveRecordsBaseInfo = baseMapper.selectOne(new LambdaQueryWrapper<MaterialReceiveRecordsBaseInfo>() .eq(MaterialReceiveRecordsBaseInfo::getId, receiveBaseId) .eq(MaterialReceiveRecordsBaseInfo::getDelFlag, 0)); return receiveRecordsBaseInfo; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/MaterialReceiveRecordsInfoServiceImpl.java
对比新文件 @@ -0,0 +1,69 @@ package com.gkhy.safePlatform.equipment.service.baseService.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.equipment.entity.MaterialDeliveryRecordDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO; import com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsInfo; import com.gkhy.safePlatform.equipment.enums.MaterialRevertStatusEnum; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.repository.MaterialReceiveRecordsInfoRepository; import com.gkhy.safePlatform.equipment.service.baseService.MaterialReceiveRecordsInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; @Service public class MaterialReceiveRecordsInfoServiceImpl extends ServiceImpl<MaterialReceiveRecordsInfoRepository, MaterialReceiveRecordsInfo> implements MaterialReceiveRecordsInfoService { @Autowired private MaterialReceiveRecordsInfoRepository repository; @Override public MaterialDeliveryRecordDO getRecordBySmdId(Long smdId) { if(null == smdId){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } return repository.getRecordBySmdId(smdId,MaterialRevertStatusEnum.REVERT_NO.getCode()); } @Override public List<MaterialReceiveRecordsInfo> getNoReturnRecordByReceiveBaseId(Long receiveBaseId) { if(null == receiveBaseId){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } List<MaterialReceiveRecordsInfo> recordsInfos = repository.selectList(new LambdaQueryWrapper<MaterialReceiveRecordsInfo>() .eq(MaterialReceiveRecordsInfo::getReceiveBaseId, receiveBaseId) .eq(MaterialReceiveRecordsInfo::getRevertStatus, MaterialRevertStatusEnum.REVERT_NO.getCode())); return recordsInfos; } @Override public List<MaterialReceiveRecordsDO> getNoReturnRecordByIds(List<Long> idList) { if (CollectionUtils.isEmpty(idList)) { throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } List<MaterialReceiveRecordsDO> records = repository.getNoReturnRecordByIds(idList, MaterialRevertStatusEnum.REVERT_NO.getCode()); return records; } @Override public List<MaterialReceiveRecordsInfo> listByReceiveBaseIds(List<Long> idList) { if (CollectionUtils.isEmpty(idList)) { throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } List<MaterialReceiveRecordsInfo> receiveRecordsInfoList = repository.selectList(new LambdaQueryWrapper<MaterialReceiveRecordsInfo>() .in(MaterialReceiveRecordsInfo::getReceiveBaseId, idList)); return receiveRecordsInfoList; } @Override public List<MaterialReceiveRecordsDO> getReceiveRecordsByReceiveUids(MaterialReceiveRecordsBO bo) { if (CollectionUtils.isEmpty(bo.getReceiveUids()) || CollectionUtils.isEmpty(bo.getSmallClassifyIds())) { throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } return repository.getReceiveRecordsByReceiveUids(bo); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialClassifyInfoServiceImpl.java
@@ -60,7 +60,7 @@ } @Override public List<SafeMaterialClassifyInfo> getList(){ public List<SafeMaterialClassifyInfo> getParentList(){ List<SafeMaterialClassifyInfo> list = repository.selectList(new LambdaQueryWrapper<SafeMaterialClassifyInfo>() .eq(SafeMaterialClassifyInfo::getDelFlag,0) .eq(SafeMaterialClassifyInfo::getParentId,0l)); equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialDetailInfoServiceImpl.java
@@ -4,16 +4,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.equipment.entity.*; import com.gkhy.safePlatform.equipment.enums.IssueReceiptEnum; import com.gkhy.safePlatform.equipment.enums.ValidStatusEnum; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMatetrialDetailQuery; import com.gkhy.safePlatform.equipment.model.dto.req.db.SafeMaterialDetailDBQuery; import com.gkhy.safePlatform.equipment.repository.SafeMaterialDetailInfoRepository; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialDetailInfoService; import jodd.util.StringUtil; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -85,23 +83,13 @@ } @Override public void updateDeliveryStatusByIds(SafeMaterialDetailBO detailBO) { if(CollectionUtils.isEmpty(detailBO.getIds()) || null == detailBO.getClaimantId() || StringUtil.isBlank(detailBO.getClaimantName())){ public void updateDeliveryStatusByIds(SafeMaterialBatchDeliveryBO detailBO) { if(CollectionUtils.isEmpty(detailBO.getIds()) || null == detailBO.getReceiveUid() || StringUtil.isBlank(detailBO.getReceiveUname())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } detailBO.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); detailBO.setDeliveryTime(LocalDateTime.now()); repository.updateDeliveryStatusByIds(detailBO); } @Override public void deliveryBatchRandom(SafeMaterialDetailBO detailBO) { if(null == detailBO.getCount() || null == detailBO.getClaimantId() || StringUtil.isBlank(detailBO.getClaimantName())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } detailBO.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); detailBO.setDeliveryTime(LocalDateTime.now()); repository.deliveryBatchRandom(detailBO); } @Override @@ -114,7 +102,7 @@ } @Override public List<SafeMaterialDetailInfoDO> listByPage(Page<SafeMaterialDetailInfo> page, SafeMatetrialDetailQuery query) { public List<SafeMaterialDetailInfoDO> listByPage(Page<SafeMaterialDetailInfo> page, SafeMaterialDetailDBQuery query) { return repository.listByCondition(page,query); } @@ -188,5 +176,38 @@ return repository.getListByRfids(rfids); } @Override public List<SafeMaterialDetailInfo> getUnValidList() { return repository.getUnValidList(ValidStatusEnum.YES.getCode()); } @Override public void updateValidStatusByIds(List<Long> ids) { if(CollectionUtils.isEmpty(ids)){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } repository.updateValidStatusByIds(ids,ValidStatusEnum.NO.getCode()); } @Override public List<SafeMaterialDetailInfo> getListBySmIdAndRfid(SafeMaterialDetailDBQuery query) { List<SafeMaterialDetailInfo> list = repository.getListBySmIdAndRfid(query); return list; } @Override public List<SafeMaterialDetailInfo> getListBySmId(SafeMaterialDetailDBQuery query) { List<SafeMaterialDetailInfo> list = repository.getListBySmId(query); return list; } @Override public void updateBatch(List<SafeMaterialDetailInfo> list) { if(CollectionUtils.isEmpty(list)){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } repository.updateBatch(list); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialInfoServiceImpl.java
@@ -5,15 +5,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.equipment.entity.SafeMaterialCountDO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialDO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo; import com.gkhy.safePlatform.equipment.entity.*; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; import com.gkhy.safePlatform.equipment.repository.SafeMaterialInfoRepository; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; @@ -31,15 +30,11 @@ } @Override public SafeMaterialInfo queryById(Long id) { public SafeMaterialDO queryById(Long id) { if(null == id){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } SafeMaterialInfo safeMaterialInfo = repository.selectOne(new LambdaQueryWrapper<SafeMaterialInfo>() .eq(SafeMaterialInfo::getId, id) .eq(SafeMaterialInfo::getDelFlag, 0) ); return safeMaterialInfo; return repository.queryById(id); } @Override @@ -86,5 +81,32 @@ return flag; } @Override public void updateCountById(SafeMaterialBO safeMaterialBO) { if(null == safeMaterialBO){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } repository.updateCountById(safeMaterialBO); } @Override public List<SafeMaterialInfo> listByDepId(Long depId) { if(null == depId){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } List<SafeMaterialInfo> safeMaterialInfoList = repository.selectList(new LambdaQueryWrapper<SafeMaterialInfo>() .eq(SafeMaterialInfo::getDelFlag, 0) .eq(SafeMaterialInfo::getDepId, depId)); return safeMaterialInfoList; } @Override public void updateStockCount(List<SafeMaterialBO> safeMaterialBOList) { if(CollectionUtils.isEmpty(safeMaterialBOList)){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } repository.updateStockCount(safeMaterialBOList); } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java
@@ -1,5 +1,6 @@ package com.gkhy.safePlatform.equipment.service.impl; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; @@ -9,9 +10,11 @@ import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyDO; import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo; import com.gkhy.safePlatform.equipment.enums.ConsumableEnum; import com.gkhy.safePlatform.equipment.enums.EquipmentResultCodes; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialClassifyQuery; import com.gkhy.safePlatform.equipment.model.dto.req.ParamForm; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyAddReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyModReq; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyDto; @@ -43,6 +46,7 @@ .stream() .filter(item -> item.getParentId().equals(0l)) .collect(Collectors.toList()); List<SafeMaterialClassifyDto> respDTOList = new ArrayList<>(); //只有二级不采用递归 for (SafeMaterialClassifyInfo classifyInfo:parentList) { @@ -59,6 +63,10 @@ SafeMaterialClassifyDto childDTO = new SafeMaterialClassifyDto(); childDTO.setId(child.getId()); childDTO.setMaterialClassifyName(child.getMaterialClassifyName()); if(null != child.getConsumable()){ childDTO.setConsumableName(ConsumableEnum.getByCode(child.getConsumable()).getValue()); } childDTO.setConsumable(child.getConsumable()); childDTO.setParentId(child.getParentId()); childDTOList.add(childDTO); } @@ -72,14 +80,25 @@ @Override public ResultVO save(ContextCacheUser currentUser, SafeMaterialClassifyAddReq req) { ResultVO resultVO = null; if(null != req.getParentId()){ if(null == req.getConsumable()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"是否耗材未选择"); } if(null == ConsumableEnum.getByCode(req.getConsumable())){ throw new EquipmentException(EquipmentResultCodes.DATA_ILLEGAL); } } SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo(); classifyInfo.setId(IdUtil.getSnowflake(0,0).nextId()); classifyInfo.setMaterialClassifyName(req.getMaterialClassifyName()); classifyInfo.setConsumable(req.getConsumable()); if(null != req.getParentId()){ classifyInfo.setParentId(req.getParentId()); }else{ classifyInfo.setParentId(0l); } boolean flag = safeMaterialClassifyInfoService.save(classifyInfo); if (flag){ resultVO = new ResultVO(ResultCodes.OK); @@ -95,8 +114,19 @@ if(req.getId() == null){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } SafeMaterialClassifyInfo safeMaterialClassifyInfo = safeMaterialClassifyInfoService.queryById(req.getId()); if(safeMaterialClassifyInfo.getParentId() != 0 ){ if(null == req.getConsumable()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"是否耗材未选择"); } if(null == ConsumableEnum.getByCode(req.getConsumable())){ throw new EquipmentException(EquipmentResultCodes.DATA_ILLEGAL); } } SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo(); classifyInfo.setMaterialClassifyName(req.getMaterialClassifyName()); classifyInfo.setConsumable(req.getConsumable()); classifyInfo.setId(req.getId()); boolean flag = safeMaterialClassifyInfoService.updateById(classifyInfo); if (flag){ @@ -108,7 +138,7 @@ } @Override public ResultVO delete(Long id) { public ResultVO delete(ContextCacheUser currentUser,Long id) { if(id == null){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } @@ -138,7 +168,7 @@ } @Override public SafeMaterialClassifyDto queryById(Long id) { public SafeMaterialClassifyDto queryById(ContextCacheUser currentUser,Long id) { if(id == null){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } @@ -154,12 +184,18 @@ respDTO.setId(classifyInfo.getId()); respDTO.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); respDTO.setParentId(classifyInfo.getParentId()); respDTO.setConsumable(classifyInfo.getConsumable()); respDTO.setConsumableName(ConsumableEnum.getByCode(classifyInfo.getConsumable()).getValue()); List<SafeMaterialClassifyDto> childDtoList = new ArrayList<>(); for (SafeMaterialClassifyInfo child:childList){ SafeMaterialClassifyDto childDto = new SafeMaterialClassifyDto(); childDto.setId(child.getId()); childDto.setMaterialClassifyName(child.getMaterialClassifyName()); childDto.setParentId(child.getParentId()); childDto.setConsumable(child.getConsumable()); if(null != child.getConsumable()){ childDto.setConsumableName(ConsumableEnum.getByCode(child.getConsumable()).getValue()); } childDtoList.add(childDto); } respDTO.setChildList(childDtoList); @@ -206,25 +242,39 @@ } @Override public SearchResultVO<List<SafeMaterialClassifyDto>> listByPage(PageQuery<MaterialClassifyQuery> pageQuery) { public SearchResultVO<List<SafeMaterialClassifyDto>> listByPage(ContextCacheUser currentUser,PageQuery<MaterialClassifyQuery> pageQuery) { Page<SafeMaterialClassifyInfo> page = new Page<>(pageQuery.getPageIndex(),pageQuery.getPageSize()); List<SafeMaterialClassifyInfo> classifyInfoList = safeMaterialClassifyInfoService.listByPage(page, pageQuery.getSearchParams()); List<SafeMaterialClassifyInfo> parentList = safeMaterialClassifyInfoService.listByPage(page, pageQuery.getSearchParams()); List<SafeMaterialClassifyInfo> childList = new ArrayList<>(); if (!CollectionUtils.isEmpty(classifyInfoList)) { List<Long> parentIdList = classifyInfoList.stream().map(SafeMaterialClassifyInfo::getId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(parentList)){ List<Long> parentIdList = parentList.stream().map(SafeMaterialClassifyInfo::getId).collect(Collectors.toList()); childList = safeMaterialClassifyInfoService.getListByParentIds(parentIdList); } List<SafeMaterialClassifyDto> respList = new ArrayList<>(); for(SafeMaterialClassifyInfo classifyInfo:classifyInfoList){ for(SafeMaterialClassifyInfo parentClassify:parentList){ SafeMaterialClassifyDto classifyDto = new SafeMaterialClassifyDto(); classifyDto.setId(classifyInfo.getId()); classifyDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); classifyDto.setParentId(classifyInfo.getParentId()); classifyDto.setId(parentClassify.getId()); classifyDto.setMaterialClassifyName(parentClassify.getMaterialClassifyName()); classifyDto.setParentId(parentClassify.getParentId()); //获取子级 List<SafeMaterialClassifyInfo> selectList = childList.stream().filter(cl -> cl.getParentId().equals(classifyInfo.getId())).collect(Collectors.toList()); List<SafeMaterialClassifyInfo> selectList = childList .stream() .filter(cl -> cl.getParentId().equals(parentClassify.getId())) .collect(Collectors.toList()); List<SafeMaterialClassifyDto> childRespList = new ArrayList<>(); if(selectList.size()>0){ childRespList = BeanCopyUtils.copyBeanList(selectList,SafeMaterialClassifyDto.class); for(SafeMaterialClassifyInfo child:selectList){ SafeMaterialClassifyDto childClassify = new SafeMaterialClassifyDto(); childClassify.setId(child.getId()); childClassify.setMaterialClassifyName(child.getMaterialClassifyName()); childClassify.setParentId(child.getParentId()); childClassify.setConsumable(child.getConsumable()); if(null != child.getConsumable()){ childClassify.setConsumableName(ConsumableEnum.getByCode(child.getConsumable()).getValue()); } childRespList.add(childClassify); } classifyDto.setChildList(childRespList); respList.add(classifyDto); @@ -239,4 +289,6 @@ } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialReceiveRecordsServiceImpl.java
对比新文件 @@ -0,0 +1,219 @@ package com.gkhy.safePlatform.equipment.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.entity.*; import com.gkhy.safePlatform.equipment.enums.*; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsBaseReq; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsQuery; import com.gkhy.safePlatform.equipment.model.dto.req.MaterialReceiveRecordsReq; import com.gkhy.safePlatform.equipment.model.dto.resp.MaterialReceiveRecordsBaseDto; import com.gkhy.safePlatform.equipment.model.dto.resp.MaterialReceiveRecordsDto; import com.gkhy.safePlatform.equipment.service.MaterialReceiveRecordsService; import com.gkhy.safePlatform.equipment.service.baseService.MaterialReceiveRecordsBaseInfoService; import com.gkhy.safePlatform.equipment.service.baseService.MaterialReceiveRecordsInfoService; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialDetailInfoService; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialInfoService; import io.micrometer.core.instrument.util.StringUtils; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @Service public class MaterialReceiveRecordsServiceImpl implements MaterialReceiveRecordsService { @Autowired private MaterialReceiveRecordsBaseInfoService recordsBaseInfoService; @Autowired private MaterialReceiveRecordsInfoService receiveRecordsInfoService; @Autowired private SafeMaterialDetailInfoService safeMaterialDetailInfoService; @Autowired private SafeMaterialInfoService safeMaterialInfoService; @Autowired private RedissonClient redissonClient; @Override public SearchResultVO<List<MaterialReceiveRecordsBaseDto>> listByPage(ContextCacheUser currentUser, PageQuery<MaterialReceiveRecordsQuery> pageQuery) { MaterialReceiveRecordsQuery query = pageQuery.getSearchParams(); query.setDepId(currentUser.getDepId()); Page page = new Page<>(pageQuery.getPageIndex(), pageQuery.getPageSize()); List<MaterialReceiveRecordsBaseDO> list = recordsBaseInfoService.listByPage(page,query); List<MaterialReceiveRecordsInfo> receiveRecordsInfoList = new ArrayList<>(); if(!CollectionUtils.isEmpty(list)) { List<Long> idList = list.stream().map(MaterialReceiveRecordsBaseDO::getId).collect(Collectors.toList()); receiveRecordsInfoList = receiveRecordsInfoService.listByReceiveBaseIds(idList); } List<MaterialReceiveRecordsBaseDto> receiveRecordsBaseDtoList = new ArrayList<>(); for(MaterialReceiveRecordsBaseDO receiveRecordsBaseDO:list){ MaterialReceiveRecordsBaseDto receiveRecordsBaseDto = new MaterialReceiveRecordsBaseDto(); BeanUtils.copyProperties(receiveRecordsBaseDO,receiveRecordsBaseDto); receiveRecordsBaseDto.setStatusName(MaterialReceiveRecordsStatusEnum.getByCode(receiveRecordsBaseDO.getStatus()).getValue()); //获取该记录关联的物资 List<MaterialReceiveRecordsInfo> selectList = receiveRecordsInfoList.stream().filter(item -> item.getReceiveBaseId().equals(receiveRecordsBaseDO.getId())).collect(Collectors.toList()); List<MaterialReceiveRecordsDto> receiveRecordsDtoList = new ArrayList<>(); for(MaterialReceiveRecordsInfo receiveRecordsInfo:selectList){ MaterialReceiveRecordsDto receiveRecordsDto = new MaterialReceiveRecordsDto(); BeanUtils.copyProperties(receiveRecordsInfo,receiveRecordsDto); receiveRecordsDto.setMaterialStatusName(MaterialStatusEnum.getByCode(receiveRecordsInfo.getMaterialStatus()).getValue()); receiveRecordsDto.setRevertStatusName(MaterialRevertStatusEnum.getByCode(receiveRecordsInfo.getRevertStatus()).getValue()); receiveRecordsDtoList.add(receiveRecordsDto); } receiveRecordsBaseDto.setMaterialList(receiveRecordsDtoList); receiveRecordsBaseDtoList.add(receiveRecordsBaseDto); } return new SearchResultVO<>(true, page.getCurrent(), page.getSize(), page.getPages(), page.getTotal(), receiveRecordsBaseDtoList, ResultCodes.OK); } @Override @Transactional public void revertMaterial(ContextCacheUser currentUser, MaterialReceiveRecordsBaseReq req) { //检查 List<MaterialReceiveRecordsReq> materialList = req.getMaterialList(); for(MaterialReceiveRecordsReq receiveRecordsReq:materialList){ if(null == receiveRecordsReq.getReceiveId()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"领取清单主键不可为空!"); } if(null != receiveRecordsReq.getMaterialStatus()){ if(null == MaterialStatusEnum.getByCode(receiveRecordsReq.getMaterialStatus())){ throw new EquipmentException(EquipmentResultCodes.DATA_ILLEGAL,"物资状态不合法!"); }else{ if(MaterialStatusEnum.OTHER.getCode().equals(receiveRecordsReq.getMaterialStatus()) && StringUtils.isBlank(receiveRecordsReq.getRemark())){ throw new EquipmentException(EquipmentResultCodes.DATA_ILLEGAL,"损耗备注不可为空!"); } } } } //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_REVERT_MATERIAL"); try { lock.lock(10, TimeUnit.SECONDS); //获取该次领取记录 MaterialReceiveRecordsBaseInfo receiveRecordsBaseInfo = recordsBaseInfoService.queryById(req.getReceiveBaseId()); if(null == receiveRecordsBaseInfo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"该条记录不存在!"); } if(receiveRecordsBaseInfo.getStatus().equals(MaterialReceiveRecordsStatusEnum.CONSUMABLE_RETURN_NO.getCode())){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_CONSUMABLE); } List<Long> idList = materialList.stream().map(MaterialReceiveRecordsReq::getReceiveId).collect(Collectors.toList()); //检查该次要归还的物资是否有归还或处理过 List<MaterialReceiveRecordsDO> revertList = receiveRecordsInfoService.getNoReturnRecordByIds(idList); if(materialList.size() > revertList.size()){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_IN_THE_LIBRARY,"已归还或已处理物资不可重复归还处理!"); } List<MaterialReceiveRecordsInfo> updateRecordsList = new ArrayList<>(); List<SafeMaterialDetailInfo> updateDetailList = new ArrayList<>(); int revertCount = 0; int consumeCount = 0; int validCount = 0; for(MaterialReceiveRecordsReq receiveRecordsReq:materialList){ //过滤出该条领取物资 List<MaterialReceiveRecordsDO> selectList = revertList.stream().filter(item -> item.getId().equals(receiveRecordsReq.getReceiveId())).collect(Collectors.toList()); MaterialReceiveRecordsDO receiveRecord = selectList.get(0); //物资清单 SafeMaterialDetailInfo safeMaterialDetailInfo = new SafeMaterialDetailInfo(); safeMaterialDetailInfo.setId(receiveRecord.getSmdId()); safeMaterialDetailInfo.setWareHousingTime(LocalDateTime.now()); //领取清单 MaterialReceiveRecordsInfo materialReceiveRecordsInfo = new MaterialReceiveRecordsInfo(); materialReceiveRecordsInfo.setId(receiveRecordsReq.getReceiveId()); materialReceiveRecordsInfo.setMaterialStatus(receiveRecordsReq.getMaterialStatus()); materialReceiveRecordsInfo.setRemark(MaterialStatusEnum.getByCode(receiveRecordsReq.getMaterialStatus()).getValue()); if(MaterialStatusEnum.INTACT.getCode().equals(receiveRecordsReq.getMaterialStatus()) || null == receiveRecordsReq.getMaterialStatus()){ materialReceiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.REVERT_YES.getCode()); safeMaterialDetailInfo.setIrStatus(IssueReceiptEnum.IN_THE_LIBRARY.getCode()); revertCount++; if(receiveRecord.getValidStatus().equals(ValidStatusEnum.NO.getCode())){ //无效情况 validCount++; } }else{ //损耗 materialReceiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.DEPLETION.getCode()); if (StringUtils.isNotBlank(receiveRecordsReq.getRemark())) { materialReceiveRecordsInfo.setRemark(receiveRecordsReq.getRemark()); } safeMaterialDetailInfo.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); consumeCount++; } updateRecordsList.add(materialReceiveRecordsInfo); safeMaterialDetailInfo.setStatus(materialReceiveRecordsInfo.getMaterialStatus()); safeMaterialDetailInfo.setRemark(materialReceiveRecordsInfo.getRemark()); updateDetailList.add(safeMaterialDetailInfo); } //物资管理 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(receiveRecordsBaseInfo.getSmId()); safeMaterialBO.setStockCount(revertCount-validCount); //领取总记录 MaterialReceiveRecordsBaseInfo materialReceiveRecordsBaseInfo = new MaterialReceiveRecordsBaseInfo(); materialReceiveRecordsBaseInfo.setId(req.getReceiveBaseId()); if(receiveRecordsBaseInfo.getReceiveCount() == receiveRecordsBaseInfo.getConsumeCount()+materialList.size()){ materialReceiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_COMPLETE.getCode()); }else{ materialReceiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_PART.getCode()); } materialReceiveRecordsBaseInfo.setRevertCount(receiveRecordsBaseInfo.getRevertCount()+revertCount); materialReceiveRecordsBaseInfo.setConsumeCount(receiveRecordsBaseInfo.getConsumeCount()+consumeCount); //修改物资管理库存 safeMaterialInfoService.updateCountById(safeMaterialBO); //修改物资清单状态 safeMaterialDetailInfoService.updateBatchById(updateDetailList); //修改总记录 recordsBaseInfoService.updateById(materialReceiveRecordsBaseInfo); //修改领取清单 receiveRecordsInfoService.updateBatchById(updateRecordsList); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); }catch (Exception e) { e.printStackTrace(); throw new BusinessException(ResultCodes.SERVER_ERROR); }finally { if(lock.isLocked()){ lock.unlock(); } } } @Override public List<MaterialReceiveRecordsDO> getReceiveRecordsByReceiveUids(MaterialReceiveRecordsBO bo){ if (CollectionUtils.isEmpty(bo.getReceiveUids())) { throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"领取人不可为空!"); } if(CollectionUtils.isEmpty(bo.getSmallClassifyIds())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"物资类型(小类)不可为空!"); } List<MaterialReceiveRecordsDO> list = receiveRecordsInfoService.getReceiveRecordsByReceiveUids(bo); return list; } } equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialDetailServiceImpl.java
@@ -4,32 +4,28 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.account.rpc.apimodel.AccountUserService; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.UserInfoRPCRespDTO; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.common.RocketMQTemplateHelper; import com.gkhy.safePlatform.equipment.entity.*; import com.gkhy.safePlatform.equipment.enums.*; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.*; import com.gkhy.safePlatform.equipment.model.dto.req.db.SafeMaterialDetailDBQuery; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyStockDto; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialDetailDto; import com.gkhy.safePlatform.equipment.model.dto.resp.SafeRfidMaterialDetailDto; import com.gkhy.safePlatform.equipment.mq.msg.SafeMaterialMsg; import com.gkhy.safePlatform.equipment.service.SafeMaterialDetailService; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialClassifyInfoService; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialDetailInfoService; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialInfoService; import com.gkhy.safePlatform.equipment.service.baseService.*; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -51,22 +47,25 @@ @Autowired private SafeMaterialClassifyInfoService safeMaterialClassifyInfoService; @Value("${rocketmq.topic.safeMaterialTopic}") private String safeMaterialTopic; @DubboReference(check = false) private AccountUserService accountUserService; @Autowired private RocketMQTemplateHelper rocketMQTemplateHelper; private RedissonClient redissonClient; @Autowired private RedissonClient redissonClient; private MaterialReceiveRecordsBaseInfoService materialReceiveRecordsBaseInfoService; @Autowired private MaterialReceiveRecordsInfoService materialReceiveRecordsInfoService; @Override @Transactional public ResultVO save(SafeMaterialDetailAddReq req) { //判断物资是否存在 SafeMaterialInfo materialInfo = safeMaterialInfoService.queryById(req.getSmId()); if(null == materialInfo){ SafeMaterialDO safeMaterialDO = safeMaterialInfoService.queryById(req.getSmId()); if(null == safeMaterialDO){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"该种物资不存在!"); } if(null == ValidTypeEnum.getByCode(req.getValidType())){ @@ -99,11 +98,13 @@ String rfid = "0000000".substring(0,(8 - countStr.length()))+countStr; SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(IdUtil.getSnowflake(0,0).nextId()); materialDetailInfo.setBigClassifyId(materialInfo.getBigClassifyId()); materialDetailInfo.setSmallClassifyId(materialInfo.getSmallClassifyId()); materialDetailInfo.setName(materialInfo.getMaterialName()); materialDetailInfo.setBigClassifyId(safeMaterialDO.getBigClassifyId()); materialDetailInfo.setSmallClassifyId(safeMaterialDO.getSmallClassifyId()); materialDetailInfo.setName(safeMaterialDO.getMaterialName()); materialDetailInfo.setSmId(req.getSmId()); materialDetailInfo.setConsumable(materialInfo.getConsumable()); materialDetailInfo.setConsumable(safeMaterialDO.getConsumable()); materialDetailInfo.setStatus(MaterialStatusEnum.INTACT.getCode()); materialDetailInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); materialDetailInfo.setValidType(req.getValidType()); if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode())){ materialDetailInfo.setValidTime(req.getValidTime()); @@ -120,11 +121,13 @@ for(int i = 0;i < req.getWareHousingCount();i++){ SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(IdUtil.getSnowflake(0,0).nextId()); materialDetailInfo.setBigClassifyId(materialInfo.getBigClassifyId()); materialDetailInfo.setSmallClassifyId(materialInfo.getSmallClassifyId()); materialDetailInfo.setName(materialInfo.getMaterialName()); materialDetailInfo.setBigClassifyId(safeMaterialDO.getBigClassifyId()); materialDetailInfo.setSmallClassifyId(safeMaterialDO.getSmallClassifyId()); materialDetailInfo.setName(safeMaterialDO.getMaterialName()); materialDetailInfo.setSmId(req.getSmId()); materialDetailInfo.setConsumable(materialInfo.getConsumable()); materialDetailInfo.setConsumable(safeMaterialDO.getConsumable()); materialDetailInfo.setStatus(MaterialStatusEnum.INTACT.getCode()); materialDetailInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); materialDetailInfo.setValidType(req.getValidType()); if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode())){ materialDetailInfo.setValidTime(req.getValidTime()); @@ -136,6 +139,11 @@ list.add(materialDetailInfo); } } //填充物资管理数据 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(req.getSmId()); safeMaterialBO.setStockCount(req.getWareHousingCount()); safeMaterialBO.setTotalCount(req.getWareHousingCount()); //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_SAVE"); @@ -143,16 +151,18 @@ lock.lock(10, TimeUnit.SECONDS); //批量入库 safeMaterialDetailInfoService.saveBatch(list); //修改数量 safeMaterialInfoService.updateCountById(safeMaterialBO); //发送消息 if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null != req.getValidTime()){ /*if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null != req.getValidTime()){ for(SafeMaterialDetailInfo materialDetailInfo:list){ SafeMaterialMsg safeMaterialMsg = new SafeMaterialMsg(); safeMaterialMsg.setId(materialDetailInfo.getId()); safeMaterialMsg.setValidTime(conversionTimeType(materialDetailInfo.getValidTime())); rocketMQTemplateHelper.syncSend(safeMaterialTopic,safeMaterialMsg); } } }*/ //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { @@ -176,10 +186,11 @@ * @return */ @Override @Transactional public ResultVO saveBatch(SafeMaterialDetailAddReq req) { //判断物资是否存在 SafeMaterialInfo materialInfo = safeMaterialInfoService.queryById(req.getSmId()); if(null == materialInfo){ SafeMaterialDO safeMaterialDO = safeMaterialInfoService.queryById(req.getSmId()); if(null == safeMaterialDO){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"该种物资不存在!"); } if(null == ValidTypeEnum.getByCode(req.getValidType())){ @@ -195,11 +206,13 @@ for(int i = 0;i < req.getWareHousingCount();i++){ SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(IdUtil.getSnowflake(0,0).nextId()); materialDetailInfo.setBigClassifyId(materialInfo.getBigClassifyId()); materialDetailInfo.setSmallClassifyId(materialInfo.getSmallClassifyId()); materialDetailInfo.setName(materialInfo.getMaterialName()); materialDetailInfo.setBigClassifyId(safeMaterialDO.getBigClassifyId()); materialDetailInfo.setSmallClassifyId(safeMaterialDO.getSmallClassifyId()); materialDetailInfo.setName(safeMaterialDO.getMaterialName()); materialDetailInfo.setSmId(req.getSmId()); materialDetailInfo.setConsumable(materialInfo.getConsumable()); materialDetailInfo.setConsumable(safeMaterialDO.getConsumable()); materialDetailInfo.setStatus(MaterialStatusEnum.INTACT.getCode()); materialDetailInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); materialDetailInfo.setValidType(req.getValidType()); if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode())){ materialDetailInfo.setValidTime(req.getValidTime()); @@ -211,22 +224,22 @@ materialDetailInfo.setMaterialNo(generateMaterialNo(totalCount+i)); list.add(materialDetailInfo); } //填充物资管理数据 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(req.getSmId()); safeMaterialBO.setStockCount(req.getWareHousingCount()); safeMaterialBO.setTotalCount(req.getWareHousingCount()); //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_SAVEBATCH"); try { lock.lock(10, TimeUnit.SECONDS); //批量入库 safeMaterialDetailInfoService.saveBatch(list); //发送消息 if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null != req.getValidTime()){ for(SafeMaterialDetailInfo materialDetailInfo:list){ //发送消息 SafeMaterialMsg safeMaterialMsg = new SafeMaterialMsg(); safeMaterialMsg.setId(materialInfo.getId()); safeMaterialMsg.setValidTime(conversionTimeType(materialDetailInfo.getValidTime())); rocketMQTemplateHelper.syncSend(safeMaterialTopic,safeMaterialMsg); } } //修改数量 safeMaterialInfoService.updateCountById(safeMaterialBO); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); @@ -261,9 +274,17 @@ }else{ if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null == req.getValidTime()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"有效期时间不可为空!"); }else{ if(req.getValidTime().before(new Date())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"有效期时间小于当前时间!"); } } } } //填充物资管理数据 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(vo.getSmId()); safeMaterialBO.setStockCount(0); //填充数据 SafeMaterialDetailInfo safeMaterialDetailInfo = new SafeMaterialDetailInfo(); safeMaterialDetailInfo.setId(req.getId()); @@ -271,20 +292,29 @@ safeMaterialDetailInfo.setSmId(req.getSmId()); safeMaterialDetailInfo.setValidType(req.getValidType()); safeMaterialDetailInfo.setValidTime(req.getValidTime()); if(ValidStatusEnum.NO.getCode().equals(vo.getValidStatus())){ //无效情况 if(vo.getStatus().equals(MaterialStatusEnum.OVERDUE.getCode())){ //过期 safeMaterialDetailInfo.setValidStatus(ValidStatusEnum.YES.getCode()); safeMaterialDetailInfo.setStatus(MaterialStatusEnum.INTACT.getCode()); safeMaterialDetailInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); safeMaterialBO.setStockCount(1); } } //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_UPDATE"); try { lock.lock(10, TimeUnit.SECONDS); //修改 safeMaterialDetailInfoService.updateById(safeMaterialDetailInfo); //如果是非常期 if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null != req.getValidTime()){ //发送消息 SafeMaterialMsg safeMaterialMsg = new SafeMaterialMsg(); safeMaterialMsg.setId(req.getId()); safeMaterialMsg.setValidTime(conversionTimeType(req.getValidTime())); rocketMQTemplateHelper.syncSend(safeMaterialTopic,safeMaterialMsg); if(null != safeMaterialBO){ safeMaterialInfoService.updateCountById(safeMaterialBO); } //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); @@ -301,7 +331,7 @@ /** * 批量-重新入库 * @param ids * @param * @return */ @Override @@ -314,13 +344,15 @@ List<SafeMaterialDetailInfo> list = safeMaterialDetailInfoService.getListByIds(paramForm.getIds()); List<SafeMaterialDetailInfo> selectList = list .stream() .filter(item -> item.getIrStatus().equals(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()) && item.getConsumable().equals(ConsumableEnum.YES.getCode())) .filter(item -> item.getIrStatus().equals(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()) && item.getConsumable().equals(ConsumableEnum.NO.getCode())) .collect(Collectors.toList()); if(selectList.size() != paramForm.getIds().size()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"已入库或耗材物资不可重复入库!"); } //修改为入库状态 safeMaterialDetailInfoService.updateReceiptStatusByIds(paramForm.getIds(),IssueReceiptEnum.IN_THE_LIBRARY.getCode()); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); @@ -340,66 +372,39 @@ * @param * @return */ @Transactional @Override public ResultVO deleteBatch(ParamForm paramForm) { safeMaterialDetailInfoService.deleteBatch(paramForm.getIds()); return new ResultVO(ResultCodes.OK); } /** * 批量出库 - 根据ids * @param req * @return */ @Override public ResultVO deliveryBatchByIds(MterialDeliveryReq req) { //获取认领人信息 UserInfoRPCRespDTO userInfo = getUserInfo(req.getClaimantId()); //验证 List<SafeMaterialDetailInfo> list = safeMaterialDetailInfoService.getListByIds(req.getIds()); List<SafeMaterialDetailInfo> selectList = list .stream() .filter(item -> item.getIrStatus().equals(IssueReceiptEnum.IN_THE_LIBRARY.getCode()) && item.getValidStatus().equals(ValidStatusEnum.YES.getCode())) .collect(Collectors.toList()); if(selectList.size() != req.getIds().size()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"已出库物资或无效物资,不可出库!"); } SafeMaterialDetailBO detailBO = new SafeMaterialDetailBO(); detailBO.setIds(req.getIds()); detailBO.setClaimantName(userInfo.getUsername()); detailBO.setClaimantId(req.getClaimantId()); safeMaterialDetailInfoService.updateDeliveryStatusByIds(detailBO); return new ResultVO(ResultCodes.OK); } @Override public ResultVO deliveryBatchRandom(MterialRandomDeliveryReq req) { UserInfoRPCRespDTO userInfo = getUserInfo(req.getClaimantId()); List<Long> idList = new ArrayList<>(); public ResultVO deleteBatch(ContextCacheUser currentUser,ParamForm paramForm) { //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_DELIVERYBATCHRANDOM"); RLock lock = redissonClient.getLock("LOCK_SMD_DELETEBATCH"); try { lock.lock(10, TimeUnit.SECONDS); if(StringUtils.isNotBlank(req.getRfid())){ idList = safeMaterialDetailInfoService.getIdListByRfid(req.getCount(),req.getSmId(),req.getRfid()); }else{ idList = safeMaterialDetailInfoService.getRfidNullList(req.getCount(), req.getSmId()); //获取所有物资管理 List<SafeMaterialInfo> safeMaterialInfoList = safeMaterialInfoService.listByDepId(currentUser.getDepId()); List<Long> idList = paramForm.getIds(); List<SafeMaterialDetailInfo> list = safeMaterialDetailInfoService.getListByIds(idList); List<SafeMaterialDetailInfo> collect = list.stream().filter(item -> item.getIrStatus().equals(IssueReceiptEnum.OUT_OF_LIBRARY.getCode())).collect(Collectors.toList()); if(collect.size()>0){ throw new EquipmentException(ResultCodes.SERVER_DEL_ERROR,"出库物资不可删除!"); } if(idList.size()< req.getCount()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"有效库存数量不足!"); List<SafeMaterialBO> safeMaterialBOList = new ArrayList<>(); for(SafeMaterialInfo materialInfo:safeMaterialInfoList){ List<SafeMaterialDetailInfo> selectList = list.stream().filter(item -> item.getSmId().equals(materialInfo.getId())).collect(Collectors.toList()); if(selectList.size()>0){ //物资管理 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(materialInfo.getId()); safeMaterialBO.setStockCount(-selectList.size()); safeMaterialBO.setTotalCount(-selectList.size()); safeMaterialBOList.add(safeMaterialBO); } } //获取有效数量 Integer validStockCount = safeMaterialDetailInfoService.getValidStockCount(req.getSmId()); if(req.getCount() > validStockCount){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"出库数量不可大于有效库存数量!"); } SafeMaterialDetailBO detailBO = new SafeMaterialDetailBO(); detailBO.setClaimantName(userInfo.getUsername()); detailBO.setClaimantId(req.getClaimantId()); detailBO.setIds(idList); safeMaterialDetailInfoService.updateDeliveryStatusByIds(detailBO); //删除 safeMaterialDetailInfoService.deleteBatch(paramForm.getIds()); //修改库存 safeMaterialInfoService.updateStockCount(safeMaterialBOList); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); @@ -412,6 +417,246 @@ } } return new ResultVO(ResultCodes.OK); } /** * 批量出库 - 根据ids * @param req * @return */ @Transactional @Override public void deliveryBatchByIds(MterialDeliveryReq req,ContextCacheUser currentUser) { //获取认领人信息 UserInfoRPCRespDTO userInfo = getUserInfo(req.getReceiveUid()); //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_DELIVERYBATCHBYIDS"); try { lock.lock(10, TimeUnit.SECONDS); //验证 List<SafeMaterialDetailInfo> list = safeMaterialDetailInfoService.getListByIds(req.getIds()); List<SafeMaterialDetailInfo> selectList = list .stream() .filter(item -> item.getIrStatus().equals(IssueReceiptEnum.IN_THE_LIBRARY.getCode()) && item.getValidStatus().equals(ValidStatusEnum.YES.getCode())) .collect(Collectors.toList()); if(selectList.size() != req.getIds().size()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"已出库物资或无效物资,不可出库!"); } //获取该部门的所管理物资 List<SafeMaterialInfo> safeMaterialInfoList = safeMaterialInfoService.listByDepId(currentUser.getDepId()); List<MaterialReceiveRecordsBaseInfo> receiveRecordsBaseInfoList = new ArrayList<>(); List<MaterialReceiveRecordsInfo> receiveRecordsInfoList = new ArrayList<>(); List<SafeMaterialBO> safeMaterialBOList = new ArrayList<>(); List<SafeMaterialDetailInfo> safeMaterialDetailInfoList = new ArrayList<>(); //循环 for(SafeMaterialInfo safeMaterialInfo:safeMaterialInfoList){ List<SafeMaterialDetailInfo> collectList = list.stream().filter(item -> safeMaterialInfo.getId().equals(item.getSmId())).collect(Collectors.toList()); if(collectList.size()>0){ //物资管理 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(safeMaterialInfo.getId()); safeMaterialBO.setStockCount(-collectList.size()); safeMaterialBOList.add(safeMaterialBO); //总记录 MaterialReceiveRecordsBaseInfo receiveRecordsBaseInfo = new MaterialReceiveRecordsBaseInfo(); receiveRecordsBaseInfo.setId(IdUtil.getSnowflake(0,0).nextId()); receiveRecordsBaseInfo.setMaterialName(safeMaterialInfo.getMaterialName()); receiveRecordsBaseInfo.setReceiveUid(userInfo.getUid()); receiveRecordsBaseInfo.setReceiveUname(userInfo.getUsername()); receiveRecordsBaseInfo.setReceiveCount(collectList.size()); receiveRecordsBaseInfo.setRevertCount(0); receiveRecordsBaseInfo.setConsumeCount(0); if(ConsumableEnum.YES.getCode().equals(safeMaterialInfo.getConsumable())){ receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.CONSUMABLE_RETURN_NO.getCode()); receiveRecordsBaseInfo.setConsumeCount(0); }else{ receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_NO.getCode()); receiveRecordsBaseInfo.setConsumeCount(collectList.size()); } receiveRecordsBaseInfo.setSmId(safeMaterialInfo.getId()); receiveRecordsBaseInfoList.add(receiveRecordsBaseInfo); //循环详细物资 for(SafeMaterialDetailInfo safeMaterialDetailInfo:collectList){ //领取物资清单记录 MaterialReceiveRecordsInfo materialReceiveRecordsInfo = new MaterialReceiveRecordsInfo(); materialReceiveRecordsInfo.setId(IdUtil.getSnowflake(0,0).nextId()); materialReceiveRecordsInfo.setMaterialName(safeMaterialDetailInfo.getName()); materialReceiveRecordsInfo.setMaterialNo(safeMaterialDetailInfo.getMaterialNo()); materialReceiveRecordsInfo.setReceiveBaseId(receiveRecordsBaseInfo.getId()); if(ConsumableEnum.YES.getCode().equals(safeMaterialDetailInfo.getConsumable())){ materialReceiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.DEPLETION.getCode()); materialReceiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.OTHER.getCode()); materialReceiveRecordsInfo.setRemark("耗材"); }else{ materialReceiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.REVERT_NO.getCode()); materialReceiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.INTACT.getCode()); materialReceiveRecordsInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); } materialReceiveRecordsInfo.setReceiveTime(LocalDateTime.now()); materialReceiveRecordsInfo.setReceiveUid(userInfo.getUid()); materialReceiveRecordsInfo.setReceiveUname(userInfo.getUsername()); materialReceiveRecordsInfo.setSmdId(safeMaterialDetailInfo.getId()); materialReceiveRecordsInfo.setRfid(safeMaterialDetailInfo.getRfid()); receiveRecordsInfoList.add(materialReceiveRecordsInfo); //物资清单 SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(safeMaterialDetailInfo.getId()); materialDetailInfo.setReceiveUid(userInfo.getUid()); materialDetailInfo.setReceiveUname(userInfo.getRealName()); materialDetailInfo.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); materialDetailInfo.setDeliveryTime(LocalDateTime.now()); if(ConsumableEnum.YES.getCode().equals(safeMaterialDetailInfo.getConsumable())){ materialDetailInfo.setValidStatus(ValidStatusEnum.NO.getCode()); materialDetailInfo.setStatus(MaterialStatusEnum.OTHER.getCode()); materialDetailInfo.setRemark("耗材"); } safeMaterialDetailInfoList.add(materialDetailInfo); } } } //修改物资管理数量 safeMaterialInfoService.updateStockCount(safeMaterialBOList); //修改物资清单的状态 safeMaterialDetailInfoService.updateBatchById(safeMaterialDetailInfoList); //插入领取总记录 materialReceiveRecordsBaseInfoService.saveBatch(receiveRecordsBaseInfoList); //插入领取清单 materialReceiveRecordsInfoService.saveBatch(receiveRecordsInfoList); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); }catch (Exception e) { e.printStackTrace(); throw new BusinessException(ResultCodes.SERVER_ERROR); }finally { if(lock.isLocked()){ lock.unlock(); } } } @Transactional @Override public void deliveryBatchBySmId(MterialRandomDeliveryReq req,ContextCacheUser currentUser) { SafeMaterialDO safeMaterialDO = safeMaterialInfoService.queryById(req.getSmId()); if(null == safeMaterialDO){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"物资不存在,无法出库!"); } SafeMaterialDetailDBQuery query = new SafeMaterialDetailDBQuery(); query.setSmId(safeMaterialDO.getId()); query.setCount(req.getCount()); query.setRfid(req.getRfid()); query.setIrStatus(IssueReceiptEnum.IN_THE_LIBRARY.getCode()); query.setValidStatus(ValidStatusEnum.YES.getCode()); UserInfoRPCRespDTO userInfo = getUserInfo(req.getReceiveUid()); List<SafeMaterialDetailInfo> safeMaterialDetailInfoList = new ArrayList<>(); //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_DELIVERYBATCHRANDOM"); try { lock.lock(10, TimeUnit.SECONDS); //获取有效数量 Integer validStockCount = safeMaterialDetailInfoService.getValidStockCount(req.getSmId()); if(req.getCount() > validStockCount){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"出库数量不可大于有效库存数量!"); } if(StringUtils.isNotBlank(req.getRfid())){ safeMaterialDetailInfoList = safeMaterialDetailInfoService.getListBySmIdAndRfid(query); }else{ safeMaterialDetailInfoList = safeMaterialDetailInfoService.getListBySmId(query); } if(safeMaterialDetailInfoList.size()< req.getCount()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"库存数量不足!"); } //物资管理 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(req.getSmId()); safeMaterialBO.setStockCount(-req.getCount()); //领取记录 MaterialReceiveRecordsBaseInfo receiveRecordsBaseInfo = new MaterialReceiveRecordsBaseInfo(); receiveRecordsBaseInfo.setId(IdUtil.getSnowflake(0,0).nextId()); receiveRecordsBaseInfo.setMaterialName(safeMaterialDO.getMaterialName()); receiveRecordsBaseInfo.setReceiveUid(userInfo.getUid()); receiveRecordsBaseInfo.setReceiveUname(userInfo.getUsername()); receiveRecordsBaseInfo.setReceiveCount(req.getCount()); receiveRecordsBaseInfo.setRevertCount(0); receiveRecordsBaseInfo.setConsumeCount(0); if(ConsumableEnum.YES.getCode().equals(safeMaterialDO.getConsumable())){ receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.CONSUMABLE_RETURN_NO.getCode()); receiveRecordsBaseInfo.setConsumeCount(req.getCount()); }else{ receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_NO.getCode()); receiveRecordsBaseInfo.setConsumeCount(0); } receiveRecordsBaseInfo.setSmId(safeMaterialDO.getId()); //物资领取清单 List<MaterialReceiveRecordsInfo> receiveRecordsInfoList = new ArrayList<>(); //物资清单 List<SafeMaterialDetailInfo> updateDetailList = new ArrayList<>(); for(SafeMaterialDetailInfo safeMaterialDetailInfo:safeMaterialDetailInfoList){ //领取物资清单记录 MaterialReceiveRecordsInfo materialReceiveRecordsInfo = new MaterialReceiveRecordsInfo(); materialReceiveRecordsInfo.setId(IdUtil.getSnowflake(0,0).nextId()); materialReceiveRecordsInfo.setMaterialName(safeMaterialDetailInfo.getName()); materialReceiveRecordsInfo.setMaterialNo(safeMaterialDetailInfo.getMaterialNo()); materialReceiveRecordsInfo.setReceiveBaseId(receiveRecordsBaseInfo.getId()); if(ConsumableEnum.YES.getCode().equals(safeMaterialDetailInfo.getConsumable())){ materialReceiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.DEPLETION.getCode()); materialReceiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.OTHER.getCode()); materialReceiveRecordsInfo.setRemark("耗材"); }else{ materialReceiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.REVERT_NO.getCode()); materialReceiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.INTACT.getCode()); materialReceiveRecordsInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); } materialReceiveRecordsInfo.setReceiveTime(LocalDateTime.now()); materialReceiveRecordsInfo.setReceiveUid(userInfo.getUid()); materialReceiveRecordsInfo.setReceiveUname(userInfo.getUsername()); materialReceiveRecordsInfo.setSmdId(safeMaterialDetailInfo.getId()); materialReceiveRecordsInfo.setRfid(safeMaterialDetailInfo.getRfid()); receiveRecordsInfoList.add(materialReceiveRecordsInfo); //物资清单 SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(safeMaterialDetailInfo.getId()); materialDetailInfo.setReceiveUid(userInfo.getUid()); materialDetailInfo.setReceiveUname(userInfo.getRealName()); materialDetailInfo.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); materialDetailInfo.setDeliveryTime(LocalDateTime.now()); if(ConsumableEnum.YES.getCode().equals(safeMaterialDetailInfo.getConsumable())){ materialDetailInfo.setValidStatus(ValidStatusEnum.NO.getCode()); materialDetailInfo.setStatus(MaterialStatusEnum.OTHER.getCode()); materialDetailInfo.setRemark("耗材"); } updateDetailList.add(materialDetailInfo); } //修改物资清单状态 safeMaterialDetailInfoService.updateBatchById(updateDetailList); //修改物资管理库存 safeMaterialInfoService.updateCountById(safeMaterialBO); //插入领取总记录 materialReceiveRecordsBaseInfoService.save(receiveRecordsBaseInfo); //插入领取清单 materialReceiveRecordsInfoService.saveBatch(receiveRecordsInfoList); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); }catch (Exception e) { e.printStackTrace(); throw new BusinessException(ResultCodes.SERVER_ERROR); }finally { if(lock.isLocked()){ lock.unlock(); } } } /** @@ -494,9 +739,9 @@ ids.addAll(collect); } } SafeMaterialDetailBO detailBO = new SafeMaterialDetailBO(); detailBO.setClaimantName(userInfo.getUsername()); detailBO.setClaimantId(req.getClaimantId()); SafeMaterialBatchDeliveryBO detailBO = new SafeMaterialBatchDeliveryBO(); detailBO.setReceiveUname(userInfo.getUsername()); detailBO.setReceiveUid(req.getClaimantId()); detailBO.setIds(ids); safeMaterialDetailInfoService.updateDeliveryStatusByIds(detailBO); @@ -528,9 +773,32 @@ } @Override public SearchResultVO<List<SafeMaterialDetailDto>> listByPage(PageQuery<SafeMatetrialDetailQuery> pageQuery) { @Transactional public SearchResultVO<List<SafeMaterialDetailDto>> listByPage(ContextCacheUser currentUser,PageQuery<SafeMatetrialDetailQuery> pageQuery) { SafeMaterialDetailDBQuery dbQuery = new SafeMaterialDetailDBQuery(); if(null != pageQuery.getSearchParams()){ BeanUtils.copyProperties(pageQuery.getSearchParams(),dbQuery); dbQuery.setDepId(currentUser.getDepId()); } dbQuery.setDepId(currentUser.getDepId()); //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_MATERIALEXPIRED"); try { lock.lock(10, TimeUnit.SECONDS); //执行无效物资过期 this.materialExpired(); //创建成功,释放锁 lock.unlock(); }catch (Exception e) { e.printStackTrace(); throw new BusinessException(ResultCodes.SERVER_ERROR); }finally { if(lock.isLocked()){ lock.unlock(); } } Page<SafeMaterialDetailInfo> page = new Page(pageQuery.getPageIndex(),pageQuery.getPageSize()); List<SafeMaterialDetailInfoDO> safeMaterialDetailInfoDOS = safeMaterialDetailInfoService.listByPage(page, pageQuery.getSearchParams()); List<SafeMaterialDetailInfoDO> safeMaterialDetailInfoDOS = safeMaterialDetailInfoService.listByPage(page, dbQuery); List<SafeMaterialDetailDto> detailDtoList = new ArrayList<>(); for(SafeMaterialDetailInfoDO materialDetailInfoDO : safeMaterialDetailInfoDOS){ SafeMaterialDetailDto materialDetailDto = new SafeMaterialDetailDto(); @@ -539,11 +807,53 @@ materialDetailDto.setValidStatusName(ValidStatusEnum.getByCode(materialDetailInfoDO.getValidStatus()).getValue()); materialDetailDto.setValidTypeName(ValidTypeEnum.getByCode(materialDetailInfoDO.getValidType()).getValue()); materialDetailDto.setIrStatusName(IssueReceiptEnum.getByCode(materialDetailInfoDO.getIrStatus()).getValue()); materialDetailDto.setStatusName(MaterialStatusEnum.getByCode(materialDetailInfoDO.getStatus()).getValue()); detailDtoList.add(materialDetailDto); } return new SearchResultVO<>(true, page.getCurrent(),page.getSize(), page.getPages(),page.getTotal(),detailDtoList,ResultCodes.OK); } private void materialExpired(){ //获取所有物资管理 List<SafeMaterialInfo> list = safeMaterialInfoService.list(); //获取在库有效物资 List<SafeMaterialDetailInfo> unValidList = safeMaterialDetailInfoService.getUnValidList(); if(unValidList.size()>0){ List<SafeMaterialBO> safeMaterialBOList = new ArrayList<>(); List<SafeMaterialDetailInfo> updateValidStatusList = new ArrayList<>(); for(SafeMaterialInfo safeMaterialInfo:list){ //过滤出该管理下过期物资 List<SafeMaterialDetailInfo> expiredList = unValidList.stream().filter(item -> item.getSmId().equals(safeMaterialInfo.getId())).collect(Collectors.toList()); if(expiredList.size()>0){ //过滤非出库无效物资 List<SafeMaterialDetailInfo> expiredAndInLibraryList = expiredList.stream().filter(item -> item.getIrStatus().equals(IssueReceiptEnum.IN_THE_LIBRARY.getCode())).collect(Collectors.toList()); if(expiredAndInLibraryList.size()>0){ //物资管理 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(safeMaterialInfo.getId()); safeMaterialBO.setStockCount(-expiredAndInLibraryList.size()); safeMaterialBOList.add(safeMaterialBO); } //物资清单 for(SafeMaterialDetailInfo detailInfo:expiredList){ SafeMaterialDetailInfo safeMaterialDetailInfo = new SafeMaterialDetailInfo(); safeMaterialDetailInfo.setId(detailInfo.getId()); safeMaterialDetailInfo.setValidStatus(ValidStatusEnum.NO.getCode()); if(detailInfo.getStatus().equals(MaterialStatusEnum.INTACT.getCode())){ safeMaterialDetailInfo.setStatus(MaterialStatusEnum.OVERDUE.getCode()); safeMaterialDetailInfo.setRemark(MaterialStatusEnum.OVERDUE.getValue()); } updateValidStatusList.add(safeMaterialDetailInfo); } } } if(safeMaterialBOList.size()>0){ safeMaterialInfoService.updateStockCount(safeMaterialBOList); } if(updateValidStatusList.size()>0){ safeMaterialDetailInfoService.updateBatchById(updateValidStatusList); } } } @Override public ResultVO queryById(Long id) { if(null == id){ @@ -552,18 +862,19 @@ SafeMaterialDetailInfo materialDetailInfo = safeMaterialDetailInfoService.queryById(id); SafeMaterialDetailDto detailDto = new SafeMaterialDetailDto(); if(materialDetailInfo != null){ SafeMaterialInfo materialInfo = safeMaterialInfoService.queryById(materialDetailInfo.getSmId()); SafeMaterialDO safeMaterialDO = safeMaterialInfoService.queryById(materialDetailInfo.getSmId()); SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(materialDetailInfo.getBigClassifyId()); BeanUtils.copyProperties(materialDetailInfo,detailDto); detailDto.setConsumableName(ConsumableEnum.getByCode(materialDetailInfo.getConsumable()).getValue()); detailDto.setValidStatusName(ValidStatusEnum.getByCode(materialDetailInfo.getValidStatus()).getValue()); detailDto.setValidTypeName(ValidTypeEnum.getByCode(materialDetailInfo.getValidType()).getValue()); detailDto.setIrStatusName(IssueReceiptEnum.getByCode(materialDetailInfo.getIrStatus()).getValue()); if(materialInfo != null){ detailDto.setDepName(materialInfo.getDepName()); detailDto.setStatusName(MaterialStatusEnum.getByCode(materialDetailInfo.getStatus()).getValue()); if(safeMaterialDO != null){ detailDto.setDepName(safeMaterialDO.getDepName()); } if(classifyInfo != null){ detailDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); detailDto.setBigClassifyName(classifyInfo.getMaterialClassifyName()); } } @@ -576,7 +887,11 @@ * @return */ @Override public ResultVO singleDelivery(SafeMaterialDetailReq req) { @Transactional public void singleDelivery(ContextCacheUser currentUser,SafeMaterialDetailReq req) { if(null == req.getReceiveUid()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"领取人不可为空!"); } //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_SINGLEDELIVERY"); try { @@ -593,15 +908,68 @@ throw new EquipmentException(EquipmentResultCodes.MATERIAL_OUT_OF_LIBRARY); } //检查认领人 UserInfoRPCRespDTO userInfo = getUserInfo(req.getClaimantId()); UserInfoRPCRespDTO userInfo = getUserInfo(req.getReceiveUid()); //详细物资 SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(req.getId()); materialDetailInfo.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); materialDetailInfo.setClaimantId(req.getClaimantId()); materialDetailInfo.setClaimantName(userInfo.getUsername()); materialDetailInfo.setReceiveUid(req.getReceiveUid()); materialDetailInfo.setReceiveUname(userInfo.getUsername()); materialDetailInfo.setDeliveryTime(LocalDateTime.now()); //物资管理库存数量 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(vo.getSmId()); safeMaterialBO.setStockCount(-1); //出库记录 MaterialReceiveRecordsBaseInfo receiveRecordsBaseInfo = new MaterialReceiveRecordsBaseInfo(); receiveRecordsBaseInfo.setId(IdUtil.getSnowflake(0,0).nextId()); receiveRecordsBaseInfo.setMaterialName(vo.getName()); receiveRecordsBaseInfo.setReceiveCount(1); receiveRecordsBaseInfo.setRevertCount(0); receiveRecordsBaseInfo.setConsumeCount(0); receiveRecordsBaseInfo.setReceiveUid(userInfo.getUid()); receiveRecordsBaseInfo.setReceiveUname(userInfo.getUsername()); receiveRecordsBaseInfo.setSmId(vo.getSmId()); //出库物资记录 MaterialReceiveRecordsInfo receiveRecordsInfo = new MaterialReceiveRecordsInfo(); receiveRecordsInfo.setId(IdUtil.getSnowflake(0,0).nextId()); receiveRecordsInfo.setMaterialName(vo.getName()); receiveRecordsInfo.setMaterialNo(vo.getMaterialNo()); receiveRecordsInfo.setRfid(vo.getRfid()); receiveRecordsInfo.setReceiveTime(LocalDateTime.now()); receiveRecordsInfo.setReceiveUid(userInfo.getUid()); receiveRecordsInfo.setReceiveUname(userInfo.getUsername()); receiveRecordsInfo.setReceiveBaseId(receiveRecordsBaseInfo.getId()); receiveRecordsInfo.setSmdId(vo.getId()); if(vo.getConsumable().equals(ConsumableEnum.YES.getCode())){ //耗材 materialDetailInfo.setValidStatus(ValidStatusEnum.NO.getCode()); materialDetailInfo.setStatus(MaterialStatusEnum.OTHER.getCode()); materialDetailInfo.setRemark("耗材"); receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.CONSUMABLE_RETURN_NO.getCode()); receiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.DEPLETION.getCode()); receiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.OTHER.getCode()); receiveRecordsInfo.setRemark("耗材"); }else{ //默认未归还 receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_NO.getCode()); receiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.REVERT_NO.getCode()); receiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.INTACT.getCode()); receiveRecordsInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); } //修改出入库状态为出库 safeMaterialDetailInfoService.updateById(materialDetailInfo); //修改物资管理库存 safeMaterialInfoService.updateCountById(safeMaterialBO); //物资领取总记录 materialReceiveRecordsBaseInfoService.save(receiveRecordsBaseInfo); //物资详细清单 materialReceiveRecordsInfoService.save(receiveRecordsInfo); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); @@ -613,7 +981,6 @@ lock.unlock(); } } return new ResultVO<>(ResultCodes.OK); } /** @@ -623,7 +990,8 @@ */ @Override public ResultVO singleReceipt(Long id) { @Transactional public void singleReceipt(Long id,ContextCacheUser currentUser) { if(null == id){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } @@ -634,7 +1002,7 @@ //获取该条数据 SafeMaterialDetailInfo vo = safeMaterialDetailInfoService.queryById(id); if(null == vo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST); throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"未查询到该物资出库记录"); } //如果是耗材不可重新入库 if(vo.getConsumable().equals(ConsumableEnum.YES.getCode())){ @@ -643,8 +1011,60 @@ if(vo.getIrStatus().equals(IssueReceiptEnum.IN_THE_LIBRARY.getCode())){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_IN_THE_LIBRARY); } //物资管理库存数量 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(vo.getSmId()); safeMaterialBO.setStockCount(1); //获取物资总记录数据 MaterialDeliveryRecordDO deliveryRecordDO = materialReceiveRecordsInfoService.getRecordBySmdId(id); SafeMaterialDetailInfo safeMaterialDetailInfo = new SafeMaterialDetailInfo(); safeMaterialDetailInfo.setId(vo.getId()); safeMaterialDetailInfo.setIrStatus(IssueReceiptEnum.IN_THE_LIBRARY.getCode()); safeMaterialDetailInfo.setWareHousingTime(LocalDateTime.now()); if(null == deliveryRecordDO){ //无领取记录 if (vo.getValidStatus().equals(ValidStatusEnum.NO.getCode())) {//无效 if(vo.getStatus().equals(MaterialStatusEnum.OVERDUE.getCode())){//过期 safeMaterialBO.setStockCount(0); }else{ //其他情况,重新入库则改成有效 safeMaterialDetailInfo.setValidStatus(ValidStatusEnum.YES.getCode()); safeMaterialDetailInfo.setStatus(MaterialStatusEnum.INTACT.getCode()); safeMaterialDetailInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); } } }else{ //有领取记录,则归还 //获取未归还物资详细记录 List<MaterialReceiveRecordsInfo> recordsInfos = materialReceiveRecordsInfoService.getNoReturnRecordByReceiveBaseId(deliveryRecordDO.getReceiveBaseId()); //领取总记录填充 MaterialReceiveRecordsBaseInfo receiveRecordsBaseInfo = new MaterialReceiveRecordsBaseInfo(); receiveRecordsBaseInfo.setId(deliveryRecordDO.getReceiveBaseId()); if(recordsInfos.size() > 1) { receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_PART.getCode()); }else { receiveRecordsBaseInfo.setStatus(MaterialReceiveRecordsStatusEnum.RETURN_COMPLETE.getCode()); } receiveRecordsBaseInfo.setRevertCount(deliveryRecordDO.getRevertCount()+1); materialReceiveRecordsBaseInfoService.updateById(receiveRecordsBaseInfo); //详细物资领取记录 MaterialReceiveRecordsInfo receiveRecordsInfo = new MaterialReceiveRecordsInfo(); receiveRecordsInfo.setId(deliveryRecordDO.getReceiveId()); receiveRecordsInfo.setRevertStatus(MaterialRevertStatusEnum.REVERT_YES.getCode()); receiveRecordsInfo.setRevertTime(LocalDateTime.now()); receiveRecordsInfo.setMaterialStatus(MaterialStatusEnum.INTACT.getCode()); receiveRecordsInfo.setRemark(MaterialStatusEnum.INTACT.getValue()); materialReceiveRecordsInfoService.updateById(receiveRecordsInfo); } //修改出入库状态为入库 safeMaterialDetailInfoService.updateReceiptStatus(id,IssueReceiptEnum.IN_THE_LIBRARY.getCode()); safeMaterialDetailInfoService.updateById(safeMaterialDetailInfo); //修改物资管理库存 safeMaterialInfoService.updateCountById(safeMaterialBO); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); @@ -656,62 +1076,8 @@ lock.unlock(); } } return new ResultVO<>(ResultCodes.OK); } @Override public ResultVO singleDdelivery0rReceipt(SafeMaterialDetailReq req) { if(null == IssueReceiptEnum.getByCode(req.getIrStatus())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"物资状态不合法"); } //获取该条数据 SafeMaterialDetailInfo vo = safeMaterialDetailInfoService.queryById(req.getId()); if(null == vo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST); } if(null == IssueReceiptEnum.getByCode(req.getIrStatus())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"出入库状态不合法"); } if(IssueReceiptEnum.IN_THE_LIBRARY.getCode().equals(req.getIrStatus())){ //如果是耗材不可重新入库 if(vo.getConsumable().equals(ConsumableEnum.YES.getCode())){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_CONSUMABLE); } //重新入库 if(vo.getIrStatus().equals(req.getIrStatus())){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_IN_THE_LIBRARY); } //修改出入库状态为入库 safeMaterialDetailInfoService.updateReceiptStatus(req.getId(), req.getIrStatus()); }else{ //出库 if(vo.getValidStatus().equals(ValidStatusEnum.NO.getCode())){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_INVALID,"无效物资不可出库"); } if(vo.getIrStatus().equals(req.getIrStatus())){ throw new EquipmentException(EquipmentResultCodes.MATERIAL_OUT_OF_LIBRARY); } if(null == req.getClaimantId()){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"认领人不可为空!"); } //检查认领人 UserInfoRPCRespDTO userInfo = getUserInfo(req.getClaimantId()); //出库 SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(req.getId()); materialDetailInfo.setIrStatus(req.getIrStatus()); materialDetailInfo.setClaimantId(req.getClaimantId()); materialDetailInfo.setClaimantName(userInfo.getUsername()); materialDetailInfo.setDeliveryTime(LocalDateTime.now()); //修改出入库状态为入库 safeMaterialDetailInfoService.updateById(materialDetailInfo); } return new ResultVO<>(ResultCodes.OK); } /** @@ -719,21 +1085,55 @@ * @param * @return */ @Transactional @Override public ResultVO delete(Long id){ if(null == id){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } //获取该条数据 SafeMaterialDetailInfo vo = safeMaterialDetailInfoService.queryById(id); if(null == vo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST); } SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(id); materialDetailInfo.setDelFlag(1); //删除一条数据 safeMaterialDetailInfoService.updateById(materialDetailInfo); //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SMD_DELETE"); try { //获取该条数据 SafeMaterialDetailInfo vo = safeMaterialDetailInfoService.queryById(id); if(null == vo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST); } if(vo.getIrStatus().equals(IssueReceiptEnum.OUT_OF_LIBRARY.getCode())){ throw new EquipmentException(ResultCodes.SERVER_DEL_ERROR,"出库物资不可删除!"); } SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); materialDetailInfo.setId(id); materialDetailInfo.setDelFlag(1); //物资管理库存数量 SafeMaterialBO safeMaterialBO = new SafeMaterialBO(); safeMaterialBO.setId(vo.getSmId()); if(vo.getValidStatus().equals(ValidStatusEnum.YES.getCode())){ //有效 safeMaterialBO.setStockCount(-1); safeMaterialBO.setTotalCount(-1); }else{ //无效 safeMaterialBO.setTotalCount(-1); } //删除一条数据 safeMaterialDetailInfoService.updateById(materialDetailInfo); //减少库存 safeMaterialInfoService.updateCountById(safeMaterialBO); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { e.printStackTrace(); throw new EquipmentException(e.getCode(), e.getMessage()); }catch (Exception e) { e.printStackTrace(); throw new BusinessException(ResultCodes.SERVER_ERROR); }finally { if(lock.isLocked()){ lock.unlock(); } } return new ResultVO<>(ResultCodes.OK); } @@ -764,7 +1164,7 @@ if (rpcResult.getData() != null) { userInfo = (UserInfoRPCRespDTO) rpcResult.getData(); }else { throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"认领人员不存在!"); throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"领取人员不存在!"); } } else { throw new EquipmentException(ResultCodes.RPC_RESULT_NULL); @@ -777,12 +1177,14 @@ return null; } String serialCode = null; String prefix = "NO-"; if(count >= 10000){ serialCode = "" + (count+1); }else if(count >=0){ String countStr = String.valueOf(count+1); serialCode = "10000".substring(0,(5 - countStr.length()))+countStr; } serialCode = prefix + serialCode; return serialCode; } private Date conversionTimeType(LocalDateTime localDateTime){ equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialServiceImpl.java
@@ -1,9 +1,11 @@ package com.gkhy.safePlatform.equipment.service.impl; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.account.rpc.apimodel.AccountDepartmentService; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepInfoRPCRespDTO; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.DepRPCRespDTO; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.query.PageQuery; @@ -13,6 +15,7 @@ import com.gkhy.safePlatform.equipment.enums.ConsumableEnum; import com.gkhy.safePlatform.equipment.enums.EquipmentResultCodes; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.ParamForm; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialAddReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialModReq; import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; @@ -25,6 +28,7 @@ import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialDetailInfoService; import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialInfoService; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.ibatis.annotations.Param; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.BeanUtils; @@ -33,7 +37,6 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -52,23 +55,18 @@ private RedissonClient redissonClient; @Override public ResultVO save(SafeMaterialAddReq req) { public ResultVO save(ContextCacheUser currentUser,SafeMaterialAddReq req) { //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SM_INSERT"); try { lock.lock(10, TimeUnit.SECONDS); //获取部门信息 DepInfoRPCRespDTO depInfo = getDepInfoByDepId(req.getDepId()); if(null == ConsumableEnum.getByCode(req.getConsumable())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"耗材类型不合法!"); } //获取物资类型 SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(req.getSmallClassifyId()); if(null == classifyInfo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"物资类型不存在!"); } //判断该部门是否已经创建物资 boolean flag = safeMaterialInfoService.checkMaterial(req.getSmallClassifyId(), req.getDepId(), null); boolean flag = safeMaterialInfoService.checkMaterial(req.getSmallClassifyId(), currentUser.getDepId(), null); if(flag){ throw new EquipmentException(EquipmentResultCodes.DATA_EXIST,"该种物资已存在不可重复创建"); } @@ -76,13 +74,16 @@ //获取数量 int safeMaterialTotalCount = safeMaterialInfoService.getTotalCount(); SafeMaterialInfo safeMaterialInfo = new SafeMaterialInfo(); safeMaterialInfo.setConsumable(req.getConsumable()); safeMaterialInfo.setDepId(req.getDepId()); safeMaterialInfo.setId(IdUtil.getSnowflake(0,0).nextId()); safeMaterialInfo.setConsumable(classifyInfo.getConsumable()); safeMaterialInfo.setDepId(currentUser.getDepId()); safeMaterialInfo.setSmallClassifyId(req.getSmallClassifyId()); safeMaterialInfo.setMaterialName(classifyInfo.getMaterialClassifyName()); safeMaterialInfo.setDepName(depInfo.getDepName()); safeMaterialInfo.setDepName(currentUser.getDepName()); safeMaterialInfo.setSerialNum(this.generateSerialNum(safeMaterialTotalCount)); safeMaterialInfo.setBigClassifyId(req.getBigClassifyId()); safeMaterialInfo.setTotalCount(0); safeMaterialInfo.setStockCount(0); //插入 safeMaterialInfoService.save(safeMaterialInfo); @@ -103,33 +104,29 @@ } @Override public ResultVO update(SafeMaterialModReq req) { public ResultVO update(ContextCacheUser currentUser,SafeMaterialModReq req) { //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SM_UPDATE"); try { lock.lock(10, TimeUnit.SECONDS); //获取部门信息 DepInfoRPCRespDTO depInfo = getDepInfoByDepId(req.getDepId()); if(null == ConsumableEnum.getByCode(req.getConsumable())){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"耗材类型不合法!"); } //获取物资类型 SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(req.getSmallClassifyId()); if(null == classifyInfo){ throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"物资类型不存在!"); } boolean flag = safeMaterialInfoService.checkMaterial(req.getSmallClassifyId(), req.getDepId(), req.getDepId()); boolean flag = safeMaterialInfoService.checkMaterial(req.getSmallClassifyId(), currentUser.getDepId(), req.getId()); if(flag){ throw new EquipmentException(EquipmentResultCodes.DATA_EXIST,"该种物资已存在不可重复创建"); } SafeMaterialInfo safeMaterialInfo = new SafeMaterialInfo(); safeMaterialInfo.setConsumable(req.getConsumable()); safeMaterialInfo.setDepId(req.getDepId()); safeMaterialInfo.setConsumable(classifyInfo.getConsumable()); safeMaterialInfo.setSmallClassifyId(req.getSmallClassifyId()); safeMaterialInfo.setMaterialName(classifyInfo.getMaterialClassifyName()); safeMaterialInfo.setDepName(depInfo.getDepName()); safeMaterialInfo.setDepName(currentUser.getDepName()); safeMaterialInfo.setBigClassifyId(req.getBigClassifyId()); safeMaterialInfo.setId(req.getId()); //跟新 safeMaterialInfoService.updateById(safeMaterialInfo); //创建成功,释放锁 @@ -149,27 +146,22 @@ } @Override public ResultVO queryById(Long id) { public ResultVO queryById(ContextCacheUser currentUser,Long id) { if(null == id){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } SafeMaterialInfo safeMaterialInfo = safeMaterialInfoService.queryById(id); SafeMaterialDO safeMaterialDO = safeMaterialInfoService.queryById(id); SafeMaterialDto safeMaterialDto = new SafeMaterialDto(); if(null != safeMaterialInfo){ SafeMaterialClassifyDO classifyDO = safeMaterialClassifyInfoService.getBigAndSmallClassify(safeMaterialInfo.getSmallClassifyId()); Integer validStockCount = safeMaterialDetailInfoService.getValidStockCount(safeMaterialInfo.getId()); BeanUtils.copyProperties(safeMaterialInfo,safeMaterialDto); safeMaterialDto.setConsumableName(ConsumableEnum.getByCode(safeMaterialInfo.getConsumable()).getValue()); if(null != classifyDO){ safeMaterialDto.setBigClassifyName(classifyDO.getBigClassifyName()); if(null != safeMaterialDO){ BeanUtils.copyProperties(safeMaterialDO,safeMaterialDto); if(null != ConsumableEnum.getByCode(safeMaterialDO.getConsumable())){ safeMaterialDto.setConsumableName(ConsumableEnum.getByCode(safeMaterialDO.getConsumable()).getValue()); } safeMaterialDto.setValidStockCount(validStockCount); } return new ResultVO(ResultCodes.OK,safeMaterialDto); } public ResultVO delete(Long id) { public ResultVO delete(ContextCacheUser currentUser,Long id) { ResultVO resultVO = null; //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SM_DELETE"); @@ -206,21 +198,19 @@ } @Override public ResultVO deleteBatch(Long[] ids) { if(ids.length == 0){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); } public ResultVO deleteBatch(ContextCacheUser currentUser, ParamForm paramForm) { //加分布式锁,防止重复创建规则 RLock lock = redissonClient.getLock("LOCK_SM_DELETEBATCH"); try { lock.lock(10, TimeUnit.SECONDS); List<Long> idList = Arrays.asList(ids); int count = safeMaterialDetailInfoService.getCountBySmIds(idList); int count = safeMaterialDetailInfoService.getCountBySmIds(paramForm.getIds()); //判断是否绑定具体安全物资数据 if(count > 0){ throw new EquipmentException(EquipmentResultCodes.DATA_HAS_BEEN_BOND,"物资已被绑定物资详情数据,不可删除!"); } safeMaterialInfoService.deleteBatch(idList); safeMaterialInfoService.deleteBatch(paramForm.getIds()); //创建成功,释放锁 lock.unlock(); }catch (EquipmentException e) { @@ -237,23 +227,61 @@ return new ResultVO(ResultCodes.OK); } /** * 获取列表 * @return */ @Override public ResultVO list() { public List<MaterialClassificationDto> listByDepId(ContextCacheUser currentUser) { //获取所有数据 List<SafeMaterialInfo> materialInfoList = safeMaterialInfoService.listByDepId(currentUser.getDepId()); //获取所有物资类型 List<SafeMaterialClassifyInfo> classifyInfoList = safeMaterialClassifyInfoService.getParentList(); List<MaterialClassificationDto> classificationDtoList = new ArrayList<>(); for (SafeMaterialClassifyInfo classifyInfo:classifyInfoList) { MaterialClassificationDto classificationDto = new MaterialClassificationDto(); classificationDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); classificationDto.setMaterialClassifyId(classifyInfo.getId()); //过滤出物资数据 List<SafeMaterialInfo> selectMaterialList = materialInfoList .stream() .filter(item -> classifyInfo.getId().equals(item.getBigClassifyId())) .collect(Collectors.toList()); List<BaseMaterialDto> baseMaterialDtoList = new ArrayList<>(); if(selectMaterialList.size()>0){ //循环物资 for (SafeMaterialInfo materialInfo:selectMaterialList){ //填充基础物资数据 BaseMaterialDto baseMaterialDto = new BaseMaterialDto(); baseMaterialDto.setMaterialName(materialInfo.getMaterialName()); baseMaterialDto.setSmId(materialInfo.getId()); baseMaterialDto.setMaterialName(materialInfo.getMaterialName()); baseMaterialDto.setConsumable(materialInfo.getConsumable()); baseMaterialDto.setConsumableName(ConsumableEnum.getByCode(materialInfo.getConsumable()).getValue()); baseMaterialDtoList.add(baseMaterialDto); } classificationDto.setBaseMaterialList(baseMaterialDtoList); classificationDtoList.add(classificationDto); } } return classificationDtoList; } @Override public List<MaterialDepartmentDto> list(ContextCacheUser currentUser) { //获取所有数据 List<SafeMaterialInfo> materialInfoList = safeMaterialInfoService.list(); //获取所有部门 List<DepRPCRespDTO> depInfoList = getDepInfoList(); //获取所有物资类型 List<SafeMaterialClassifyInfo> classifyInfoList = safeMaterialClassifyInfoService.getList(); List<SafeMaterialClassifyInfo> classifyInfoList = safeMaterialClassifyInfoService.getParentList(); //循环部门 List<MaterialDepartmentDto> departmentDtoList = new ArrayList<>(); recursiveDep(depInfoList,departmentDtoList,materialInfoList,classifyInfoList); return new ResultVO(ResultCodes.OK,departmentDtoList); return departmentDtoList; } private void recursiveDep(List<DepRPCRespDTO> depInfoList,List<MaterialDepartmentDto> departmentDtoList,List<SafeMaterialInfo> materialInfoList,List<SafeMaterialClassifyInfo> classifyInfoList){ for (DepRPCRespDTO dep:depInfoList){ @@ -295,31 +323,17 @@ } } @Override public SearchResultVO<List<SafeMaterialDto>> listByPage(PageQuery<SafeMaterialQuery> pageQuery) { public SearchResultVO<List<SafeMaterialDto>> listByPage(ContextCacheUser currentUser,PageQuery<SafeMaterialQuery> pageQuery) { Page<SafeMaterialDO> page= new Page(pageQuery.getPageIndex(),pageQuery.getPageSize()); List<SafeMaterialDO> materialInfoList = safeMaterialInfoService.listByPage(page, pageQuery.getSearchParams()); List<Long> materialIdList = new ArrayList<>(); List<SafeMaterialDetailCountDO> statisticsList = new ArrayList<>(); if(materialInfoList.size()>0){ materialIdList = materialInfoList.stream().map(SafeMaterialDO::getId).collect(Collectors.toList()); } if(materialIdList.size()>0){ statisticsList = safeMaterialDetailInfoService.getStatisticsValidStock(materialIdList); } SafeMaterialQuery query = pageQuery.getSearchParams(); query.setDepId(currentUser.getDepId()); List<SafeMaterialDO> materialInfoList = safeMaterialInfoService.listByPage(page, query); List<SafeMaterialDto> materialDtoList = new ArrayList<>(); for (SafeMaterialDO materialDO:materialInfoList){ SafeMaterialDto materialDto = new SafeMaterialDto(); BeanUtils.copyProperties(materialDO,materialDto); materialDto.setConsumableName(ConsumableEnum.getByCode(materialDO.getConsumable()).getValue()); //过滤出当前物资详细 List<SafeMaterialDetailCountDO> selectList = statisticsList .stream() .filter(item -> item.getSmId().equals(materialDO.getId())) .collect(Collectors.toList()); if(selectList.size()>0){ materialDto.setValidStockCount(selectList.get(0).getCount()); }else{ materialDto.setValidStockCount(0); if(null != ConsumableEnum.getByCode(materialDO.getConsumable())){ materialDto.setConsumableName(ConsumableEnum.getByCode(materialDO.getConsumable()).getValue()); } materialDtoList.add(materialDto); } equipment/equipment-service/src/main/resources/config/mapper/equipment/MaterialReceiveRecordsBaseInfoMapper.xml
对比新文件 @@ -0,0 +1,61 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.gkhy.safePlatform.equipment.repository.MaterialReceiveRecordsBaseInfoRepository"> <resultMap type="com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseInfo" id="resultMap"> <id column="id" property="id" jdbcType="BIGINT"/> <result column="material_name" property="materialName" jdbcType="VARCHAR"/> <result column="receive_uid" property="receiveId" jdbcType="BIGINT"/> <result column="receive_uname" property="receiveName" jdbcType="VARCHAR"/> <result column="receive_count" property="receiveCount" jdbcType="INTEGER"/> <result column="revert_count" property="revertCount" jdbcType="INTEGER"/> <result column="consume_count" property="consumeCount" jdbcType="INTEGER"/> <result column="status" property="status" jdbcType="TINYINT"/> <result column="remark" property="remark" jdbcType="VARCHAR"/> <result column="sm_id" property="smId" jdbcType="BIGINT"/> <result column="del_flag" property="delFlag" jdbcType="INTEGER"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_uid" property="createUid" jdbcType="BIGINT"/> <result column="create_uname" property="createUname" jdbcType="VARCHAR"/> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/> <result column="update_uid" property="updateUid" jdbcType="BIGINT"/> <result column="update_uname" property="updateUname" jdbcType="VARCHAR"/> </resultMap> <select id="listByConditions" resultType="com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsBaseDO"> SELECT b.id, b.material_name, b.receive_uid, b.receive_uname, b.receive_count, b.revert_count, b.consume_count, b.status, b.remark, b.create_time, b.sm_id, s.dep_id, s.dep_name from material_receive_records_base b inner join safe_material s on b.sm_id = s.id where b.del_flag = 0 <if test="query.materialName != null and query.materialName != '' "> and instr(b.material_name,#{query.materialName})>0 </if> <if test="query.receiveUname != null and query.receiveUname != '' "> and instr(b.receive_uname,#{query.receiveUname})>0 </if> <if test="query.depId != null"> and s.dep_id = #{query.depId} </if> <if test="query.startTime != null "> and DATE_FORMAT(b.create_time,'%Y-%m-%d') >= DATE_FORMAT(#{query.startTime},'%Y-%m-%d') </if> <if test="query.endTime != null "> and DATE_FORMAT(b.create_time,'%Y-%m-%d') <= DATE_FORMAT(#{query.endTime},'%Y-%m-%d') </if> order by b.create_time desc </select> </mapper> equipment/equipment-service/src/main/resources/config/mapper/equipment/MaterialReceiveRecordsInfoMapper.xml
对比新文件 @@ -0,0 +1,94 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.gkhy.safePlatform.equipment.repository.MaterialReceiveRecordsInfoRepository"> <resultMap type="com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsInfo" id="resultMap"> <id column="id" property="id" jdbcType="BIGINT"/> <result column="material_name" property="materialName" jdbcType="VARCHAR"/> <result column="material_no" property="materialNo" jdbcType="VARCHAR"/> <result column="rfid" property="rfid" jdbcType="VARCHAR"/> <result column="revert_status" property="revertStatus" jdbcType="TINYINT"/> <result column="material_status" property="materialStatus" jdbcType="TINYINT"/> <result column="smd_id" property="smdId" jdbcType="BIGINT"/> <result column="receive_uid" property="receiveUid" jdbcType="BIGINT"/> <result column="receive_uname" property="receiveUname" jdbcType="VARCHAR"/> <result column="receive_time" property="receiveTime" jdbcType="TIMESTAMP"/> <result column="receive_base_id" property="receiveBaseId" jdbcType="BIGINT"/> <result column="remark" property="remark" jdbcType="VARCHAR"/> <result column="revert_time" property="revertTime" jdbcType="TIMESTAMP"/> </resultMap> <select id="getRecordBySmdId" resultType="com.gkhy.safePlatform.equipment.entity.MaterialDeliveryRecordDO"> select r.id as receiveId, r.material_name, r.rfid, r.smd_id, b.id as receiveBaseId, b.revert_count, b.receive_count, b.receive_uid, b.status, b.receive_uname, b.create_time as receiveTime from material_receive_records r inner join material_receive_records_base b on r.receive_base_id = b.id where r.smd_id = #{smdId} and r.revert_status = #{revertStatus} </select> <select id="getNoReturnRecordByIds" resultType="com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO"> SELECT r.id , r.material_name, r.rfid, r.smd_id, r.material_status, r.revert_status, r.receive_uid, r.receive_uname, r.receive_time, r.remark, r.revert_time, s.valid_status FROM material_receive_records r INNER JOIN safe_material_detail s ON r.smd_id = s.id WHERE r.id in <foreach collection="idList" item="id" open="(" close=")" separator=","> #{id} </foreach> and r.revert_status = #{revertStatus} </select> <select id="getReceiveRecordsByReceiveUids" resultType="com.gkhy.safePlatform.equipment.entity.MaterialReceiveRecordsDO"> SELECT r.id, r.material_no, r.material_name, r.rfid, r.receive_uid, r.receive_uname, r.smd_id, d.small_classify_id, d.big_classify_id, d.consumable, c.material_classify_name as bigClassifyName FROM material_receive_records r LEFT JOIN safe_material_detail d ON r.smd_id = d.id LEFT JOIN safe_material_classify c on d.big_classify_id = c.id where r.revert_status = 1 and r.receive_uid in <foreach collection="receiveUids" item="receiveUid" separator="," open="(" close=")"> #{receiveUid} </foreach> and d.small_classify_id in <foreach collection="smallClassifyIds" item="smallClassifyId" separator="," open="(" close=")"> #{smallClassifyId} </foreach> </select> </mapper> equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialClassifyInfoMapper.xml
@@ -6,7 +6,7 @@ <!--新增--> <insert id="save" parameterType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> insert into safe_material_classify (id,material_classify_name,parent_id,del_flag,create_time,create_uid,create_uname,update_time,update_uid,update_uname) values (#{id},#{materialClassifyName},#{parentId},#{delFlag},#{createTime},#{createUid},#{createUname},#{updateTime},#{updateUid},#{updateUname}) insert into safe_material_classify (id,material_classify_name,parent_id,consumable,del_flag,create_time,create_uid,create_uname,update_time,update_uid,update_uname) values (#{id},#{materialClassifyName},#{parentId},#{consumable},#{delFlag},#{createTime},#{createUid},#{createUname},#{updateTime},#{updateUid},#{updateUname}) </insert> <!--更新--> <update id="update" parameterType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> @@ -24,7 +24,7 @@ </update> <!--查询单条数据--> <select id="queryById" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> select id,material_classify_name,parent_id,create_time,create_uid,create_uname,update_time,update_uid,update_uname from safe_material_classify where id = #{id} and del_flag = 0; select id,material_classify_name,parent_id,consumable,create_time,create_uid,create_uname,update_time,update_uid,update_uname from safe_material_classify where id = #{id} and del_flag = 0; </select> <select id="listByContion" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> select id, @@ -71,12 +71,12 @@ SELECT id, parent_id, material_classify_name material_classify_name, consumable FROM safe_material_classify WHERE parent_id = 0 AND del_flag = 0 WHERE del_flag = 0 and parent_id = 0 <if test="query.classifyName != null and query.classifyName != ''"> and instr(material_classify_name,#{query.classifyName}) > 0 </if> @@ -85,7 +85,8 @@ SELECT id, parent_id, material_classify_name material_classify_name, consumable FROM safe_material_classify WHERE equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialDetailInfoMapper.xml
@@ -15,12 +15,14 @@ <result column="valid_type" property="validType" jdbcType="TINYINT"/> <result column="valid_time" property="validTime" jdbcType="TIMESTAMP"/> <result column="valid_status" property="validStatus" jdbcType="TINYINT"/> <result column="status" property="status" jdbcType="TINYINT"/> <result column="ir_status" property="irStatus" jdbcType="TINYINT"/> <result column="ware_housing_time" property="wareHousingTime" jdbcType="TIMESTAMP"/> <result column="delivery_time" property="deliveryTime" jdbcType="TIMESTAMP"/> <result column="sm_id" property="smId" jdbcType="BIGINT"/> <result column="claimant_id" property="claimantId" jdbcType="BIGINT"/> <result column="claimant_name" property="claimantName" jdbcType="VARCHAR"/> <result column="receive_uid" property="receiveUid" jdbcType="BIGINT"/> <result column="receive_uname" property="receiveUname" jdbcType="VARCHAR"/> <result column="remark" property="remark" jdbcType="VARCHAR"/> <result column="del_flag" property="delFlag" jdbcType="INTEGER"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_uid" property="createUid" jdbcType="BIGINT"/> @@ -35,7 +37,7 @@ </select> <select id="queryById" resultMap="materialDetailResult"> select id, CONCAT(name,'(ID',sm_id,')') as name, name, material_no, big_classify_id, rfid, @@ -43,25 +45,27 @@ valid_type, valid_time, valid_status, status, ir_status, ware_housing_time, ware_housing_time, delivery_time, sm_id, claimant_id, claimant_name receive_uid, receive_uname from safe_material_detail where del_flag = 0 and id = #{id} </select> <update id="updateReceiptStatus" > update safe_material_detail set ir_status = #{status}, ware_housing_time = #{wareHousingTime}, claimant_id = null, claimant_name = null receive_uid = null, receive_uname = null, delivery_time = null where id = #{id} </update> <select id="getListByIds" resultMap="materialDetailResult"> select id,name,material_no,big_classify_id,rfid,consumable,valid_type,valid_time,valid_status,ir_status,ware_housing_time,ware_housing_time,delivery_time,sm_id,claimant_id,claimant_name select id,name,material_no,big_classify_id,rfid,consumable,valid_type,valid_time,valid_status,status,ir_status,ware_housing_time,ware_housing_time,delivery_time,sm_id,receive_uid, receive_uname,remark from safe_material_detail where del_flag = 0 and id in @@ -73,8 +77,10 @@ update safe_material_detail set ir_status = #{irStatus}, ware_housing_time = #{wareHousingTime}, claimant_id = null, claimant_name = null where id in receive_uid = null, receive_uname = null, delivery_time = null where id in <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach> @@ -115,26 +121,13 @@ <update id="updateDeliveryStatusByIds" > update safe_material_detail set ir_status = #{detailBO.irStatus}, claimant_id = #{detailBO.claimantId}, claimant_name = #{detailBO.claimantName}, receive_uid = #{detailBO.receiveUid}, receive_uname = #{detailBO.receiveUname}, delivery_time = #{detailBO.deliveryTime} where id in <foreach collection="detailBO.ids" item="id" separator="," open="(" close=")"> #{id} </foreach> </update> <!--批量出库-随机--> <update id="deliveryBatchRandom" > update safe_material_detail set ir_status = #{detailBO.irStatus}, claimant_id = #{detailBO.claimantId}, claimant_name = #{detailBO.claimantName}, delivery_time = #{detailBO.deliveryTime} where id in <foreach collection="detailBO.ids" item="id" separator="," open="(" close=")" > #{id} </foreach> </update> <select id="getValidStockCount" resultType="java.lang.Integer"> @@ -147,7 +140,7 @@ </select> <select id="listByCondition" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfoDO"> select sd.id, CONCAT(sd.name,'(ID',sd.sm_id,')') as name, CONCAT(sd.name,'(',sm.serial_num,')') as name, sd.material_no, sd.big_classify_id, sd.rfid, @@ -155,9 +148,11 @@ sd.valid_type, sd.valid_time, sd.valid_status, sd.status, sd.remark, sd.ir_status, sd.ware_housing_time, sd.claimant_name, sd.receive_uname, sd.delivery_time, sm.dep_id, sm.dep_name, @@ -175,6 +170,9 @@ </if> <if test="query.smId != null"> and sd.sm_id = #{query.smId} </if> <if test="query.depId != null"> and sm.dep_id = #{query.depId} </if> ORDER BY sd.create_time desc </select> @@ -201,8 +199,43 @@ <select id="getRfidNullList" resultType="java.lang.Long"> select id from safe_material_detail where sm_id = #{smId} and ir_status = 0 and valid_status = 0 and del_flag = 0 and rfid is null ORDER BY ware_housing_time asc LIMIT #{count} </select> <select id="getIdListByRfid" resultType="java.lang.Long"> select id from safe_material_detail where sm_id = #{smId} and ir_status = 0 and valid_status = 0 and del_flag = 0 and rfid = #{rfid} ORDER BY ware_housing_time asc LIMIT #{count} <select id="getListBySmIdAndRfid" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo"> select id, name, material_no, big_classify_id, rfid, consumable, valid_type, valid_time, valid_status, status, ir_status, ware_housing_time, delivery_time, sm_id, receive_uid, receive_uname from safe_material_detail where del_flag = 0 and sm_id = #{query.smId} and ir_status = #{query.irStatus} and valid_status = #{query.validStatus} and rfid = #{query.rfid} ORDER BY create_time asc LIMIT #{query.count} </select> <select id="getListBySmId" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo"> select id, name, material_no, big_classify_id, rfid, consumable, valid_type, valid_time, valid_status, status, ir_status, ware_housing_time, delivery_time, sm_id, receive_uid, receive_uname from safe_material_detail where del_flag = 0 and sm_id = #{query.smId} and ir_status = #{query.irStatus} and valid_status = #{query.validStatus} ORDER BY create_time asc LIMIT #{query.count} </select> <select id="getSmallClassifyStockByIds" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyStockDO"> select d.small_classify_id, @@ -264,4 +297,63 @@ #{rfid} </foreach> </select> <select id="updateValidStatusByIds" > update safe_material_detail set valid_status = #{validStatus} where id in <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach> </select> <select id="getUnValidList" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo"> select id, name, material_no, big_classify_id, rfid, consumable, valid_type, valid_time, valid_status, ir_status, ware_housing_time, ware_housing_time, delivery_time, sm_id, receive_uid, receive_uname from safe_material_detail where del_flag = 0 and valid_status = #{validStatus} and DATE_FORMAT(valid_time,'%Y%m%d') < DATE_FORMAT(CURDATE( ),'%Y%m%d') </select> <update id="updateBatch" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update safe_material_detail <trim prefix="SET" suffixOverrides=","> <if test="null != item.receiveUid"> receive_uid = #{item.receiveUid}, </if> <if test="null != item.receiveUname and '' != item.receiveUname"> receive_uname = #{item.receiveUname}, </if> <if test="null != item.irStatus"> ir_status = #{item.irStatus}, </if> <if test="null != item.deliveryTime"> delivery_time = #{item.deliveryTime} </if> <if test="null != item.validStatus"> valid_status = #{item.validStatus} </if> <if test="null != item.remark and '' != item.remark"> remark = #{item.remark} </if> <if test="null != item.status"> status = #{item.status} </if> </trim> where id = #{item.id} </foreach> </update> </mapper> equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialInfoMapper.xml
@@ -13,6 +13,8 @@ <result column="dep_name" property="depName" jdbcType="VARCHAR"/> <result column="material_name" property="materilaName" jdbcType="VARCHAR"/> <result column="consumable" property="consumable" jdbcType="TINYINT"/> <result column="total_count" property="totalCount" jdbcType="INTEGER"/> <result column="stock_count" property="stockCount" jdbcType="INTEGER"/> <result column="del_flag" property="delFlag" jdbcType="INTEGER"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_uid" property="createUid" jdbcType="BIGINT"/> @@ -22,8 +24,25 @@ <result column="update_uname" property="updateUname" jdbcType="VARCHAR"/> </resultMap> <!--查询单条数据--> <select id="queryById" resultMap="materialResult"> select id,serial_num,small_classify_id,big_classify_id,dep_id,dep_name,material_name,consumable,del_flag,create_time,create_uid,create_uname,update_time,update_uid,update_uname from safe_material where id = #{id} and del_flag = 0; <select id="queryById" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDO"> select m.id, m.serial_num, m.big_classify_id as bigClassifyId, m.small_classify_id as smallClassifyId, m.dep_id, m.dep_name, m.material_name, m.consumable, m.stock_count, m.total_count, m.create_time, m.material_name as smallClassifyName, c.material_classify_name as bigClassifyName from safe_material m inner join safe_material_classify c on m.big_classify_id = c.id where m.del_flag = 0 and m.id = #{id}; </select> <!--查询所有数量--> <select id="getTotalCount" resultType="java.lang.Integer"> @@ -49,6 +68,10 @@ m.dep_name, m.material_name, m.consumable, m.stock_count, m.total_count, m.create_time, m.material_name as smallClassifyName, c.material_classify_name as bigClassifyName from safe_material m inner join safe_material_classify c @@ -59,6 +82,9 @@ </if> <if test="query.bigClassifyId != null"> and m.big_classify_id = #{query.bigClassifyId} </if> <if test="query.depId != null"> and m.dep_id = #{query.depId} </if> order by m.create_time desc </select> @@ -72,5 +98,32 @@ and id != #{id} </if> </select> <update id="updateCountById"> update safe_material <trim prefix="SET" suffixOverrides=","> <if test="totalCount != null"> total_count = total_count + #{totalCount}, </if> <if test="stockCount != null"> stock_count = stock_count + #{stockCount}, </if> </trim> where id = #{id} </update> <update id="updateStockCount"> <foreach collection="safeMaterialBOList" item="safeMaterialBO" separator=";"> update safe_material <trim prefix="SET" suffixOverrides=","> <if test="safeMaterialBO.totalCount != null"> total_count = total_count + #{safeMaterialBO.totalCount}, </if> <if test="safeMaterialBO.stockCount != null"> stock_count = stock_count + #{safeMaterialBO.stockCount} </if> </trim> where id = #{safeMaterialBO.id} </foreach> </update> </mapper>