From f241a39f07acc5d5ede28b4152d74cbb84e4885b Mon Sep 17 00:00:00 2001 From: zhangfeng <1603559716@qq.com> Date: 星期二, 08 十一月 2022 08:37:36 +0800 Subject: [PATCH] 安全物资和设备管理 --- equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialInfo.java | 194 ++ equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/IssueReceiptEnum.java | 45 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialDeliveryReq.java | 28 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialClassifyInfoRepository.java | 17 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialClassifyInfoService.java | 21 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailBO.java | 63 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialDetailController.java | 148 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/common/RocketMQTemplateHelper.java | 52 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidStatusEnum.java | 46 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMatetrialDetailQuery.java | 22 equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialInfoMapper.xml | 65 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialClassifyService.java | 22 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialAddReq.java | 62 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyInfo.java | 131 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialModReq.java | 69 equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialClassifyInfoMapper.xml | 43 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialClassificationDto.java | 35 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailAddReq.java | 78 safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEquipment.java | 7 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfo.java | 289 +++ equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialCountDO.java | 22 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyAddReq.java | 23 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDetailDto.java | 215 ++ safePlatfrom-out-web/src/main/resources/config/application-dev.yaml | 7 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidTypeEnum.java | 46 equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialDetailInfoMapper.xml | 190 ++ safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/exception/GlobalExceptionHandler.java | 22 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialController.java | 56 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/handler/MyMetaObjectHandler.java | 34 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java | 114 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialDepartmentDto.java | 36 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/msg/SafeMaterialMsg.java | 46 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfoDO.java | 230 ++ equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/excepiton/EquipmentException.java | 10 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialClassifyInfoServiceImpl.java | 63 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialInfoRepository.java | 27 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java | 6 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDto.java | 126 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialDetailInfoService.java | 45 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialDetailServiceImpl.java | 541 ++++++ pom.xml | 26 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialService.java | 26 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/consumer/SafeMaterialConsumer.java | 72 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/MaterialClassifyController.java | 76 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyDO.java | 22 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialInfoServiceImpl.java | 80 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ConsumableEnum.java | 46 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDO.java | 200 ++ equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyModReq.java | 34 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyQuery.java | 13 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialRandomDeliveryReq.java | 38 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialInfoService.java | 25 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialDetailInfoServiceImpl.java | 147 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialQuery.java | 28 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailCountDO.java | 22 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialServiceImpl.java | 336 ++++ equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialClassifyDto.java | 22 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialDetailService.java | 38 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialDetailInfoRepository.java | 46 equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailReq.java | 111 + equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/BaseMaterialDto.java | 24 61 files changed, 4,728 insertions(+), 0 deletions(-) diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/common/RocketMQTemplateHelper.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/common/RocketMQTemplateHelper.java new file mode 100644 index 0000000..31aab69 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/common/RocketMQTemplateHelper.java @@ -0,0 +1,52 @@ +package com.gkhy.safePlatform.equipment.common; + +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.client.producer.SendStatus; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.support.TransactionSynchronizationAdapter; +import org.springframework.transaction.support.TransactionSynchronizationManager; + +import java.util.Date; + +@Component +public class RocketMQTemplateHelper { + + @Autowired + private RocketMQTemplate rocketMQTemplate; + + private Logger logger = LoggerFactory.getLogger(this.getClass()); + + + /** + * 事务提交后发送MQ + * @param message + * @param <T> + */ + public <T> void syncSend(String destination, T message) { + // 是否开启事务判断 + if (TransactionSynchronizationManager.isSynchronizationActive()) { + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void afterCommit() { + SendResult sendResult = rocketMQTemplate.syncSend(destination, message); + if(sendResult.getSendStatus() != SendStatus.SEND_OK){ + logger.info("【安全物资和设备管理】事务提交后才发送MQ的消息发送失败!"+ new Date()); + }else{ + logger.info("【安全物资和设备管理】消息申请发送rocketMQ消息成功!"+ new Date()); + } + } + }); + } else { + SendResult sendResult = rocketMQTemplate.syncSend(destination, message); + if(sendResult.getSendStatus() != SendStatus.SEND_OK){ + logger.info("【安全物资和设备管理】事务提交后才发送MQ的消息发送失败!"+ new Date()); + }else{ + logger.info("【安全物资和设备管理】消息申请发送rocketMQ消息成功!"+ new Date()); + } + } + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/MaterialClassifyController.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/MaterialClassifyController.java new file mode 100644 index 0000000..ebad542 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/MaterialClassifyController.java @@ -0,0 +1,76 @@ +package com.gkhy.safePlatform.equipment.controller; + +import com.alibaba.fastjson.JSONObject; +import com.gkhy.safePlatform.commons.co.ContextCacheUser; +import com.gkhy.safePlatform.commons.vo.ResultVO; +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.resp.SafeMaterialClassifyDto; +import com.gkhy.safePlatform.equipment.service.MaterialClassifyService; +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.PostMapping; +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/classify") +public class MaterialClassifyController { + @Autowired + private MaterialClassifyService materialClassifyService; + /** + * 列表 + * @return + */ + @PostMapping(value = "/list") + public ResultVO<List<SafeMaterialClassifyDto>> list(Authentication authentication, @RequestBody SafeMaterialClassifyQuery query){ + ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); + return materialClassifyService.list(query); + + } + + /** + * 新增 + * @return + */ + @PostMapping(value = "save") + public ResultVO save(Authentication authentication, @Validated @RequestBody SafeMaterialClassifyAddReq req){ + ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); + return materialClassifyService.save(currentUser,req); + } + + /** + * 更新 + * @return + */ + @PostMapping(value = "update") + public ResultVO update(Authentication authentication, @Validated @RequestBody SafeMaterialClassifyModReq req){ + ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); + return materialClassifyService.update(currentUser,req); + } + + /** + * 逻辑删除 单条 + * @return + */ + @PostMapping(value = "delete") + public ResultVO delete(Authentication authentication, @RequestBody JSONObject jsonObject){ + ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); + Long id = jsonObject.getLong("id"); + return materialClassifyService.delete(id); + } + + /** + * 查询单条数据 + */ + @PostMapping(value = "queryById") + public ResultVO<SafeMaterialClassifyDto> queryById(Authentication authentication, @RequestBody JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + return materialClassifyService.queryById(id); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialController.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialController.java new file mode 100644 index 0000000..558b456 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialController.java @@ -0,0 +1,56 @@ +package com.gkhy.safePlatform.equipment.controller; + +import com.alibaba.fastjson.JSONObject; +import com.gkhy.safePlatform.commons.query.PageQuery; +import com.gkhy.safePlatform.commons.vo.ResultVO; +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.service.SafeMaterialService; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(value = "/equipment/safeMaterial") +public class SafeMaterialController { + @Autowired + private SafeMaterialService safeMaterialService; + + @PostMapping(value = "save") + public ResultVO save(Authentication authentication, @Validated @RequestBody SafeMaterialAddReq req){ + return safeMaterialService.save(req); + } + @PostMapping(value = "update") + public ResultVO update(Authentication authentication, @Validated @RequestBody SafeMaterialModReq req){ + return safeMaterialService.update(req); + } + @PostMapping(value = "delete") + public ResultVO delete(Authentication authentication, @RequestBody JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + return safeMaterialService.delete(id); + } + @PostMapping(value = "queryById") + public ResultVO queryById(Authentication authentication, @RequestBody JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + return safeMaterialService.queryById(id); + } + @PostMapping(value = "list") + public ResultVO list(Authentication authentication){ + return safeMaterialService.list(); + } + + @PostMapping(value = "page/list") + public ResultVO listByPage(Authentication authentication,@RequestBody PageQuery<SafeMaterialQuery> pageQuery){ + return safeMaterialService.listByPage(pageQuery); + } + @PostMapping(value = "deleteBatch") + public ResultVO deleteBatch(Authentication authentication, @RequestBody Long[] ids){ + return safeMaterialService.deleteBatch(ids); + } + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialDetailController.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialDetailController.java new file mode 100644 index 0000000..0250924 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialDetailController.java @@ -0,0 +1,148 @@ +package com.gkhy.safePlatform.equipment.controller; + +import com.alibaba.fastjson.JSONObject; +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.*; +import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialDetailDto; +import com.gkhy.safePlatform.equipment.service.SafeMaterialDetailService; +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.PostMapping; +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(value = "/equipment/smDetail") +public class SafeMaterialDetailController { + @Autowired + private SafeMaterialDetailService safeMaterialDetailService; + /** + * 新增入库 + * @param authentication + * @return + */ + @PostMapping(value = "/save") + public ResultVO save(Authentication authentication,@Validated @RequestBody SafeMaterialDetailAddReq req){ + return safeMaterialDetailService.save(req); + } + /** + * 批量入库 + */ + @PostMapping(value = "/saveBatch") + public ResultVO saveBatch(Authentication authentication,@Validated @RequestBody SafeMaterialDetailAddReq req){ + return safeMaterialDetailService.saveBatch(req); + } + /** + * 编辑 + */ + @PostMapping(value = "/update") + 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); + } + + /** + * 单独出库 + * @param authentication + * @return + */ + @PostMapping(value = "/single/delivery") + public ResultVO singleDelivery(Authentication authentication, @Validated @RequestBody SafeMaterialDetailReq req){ + return safeMaterialDetailService.singleDelivery(req); + } + + /** + * 单独入库 + * @param authentication + * @return + */ + @PostMapping(value = "/single/receipt") + public ResultVO singleReceipt(Authentication authentication,@RequestBody JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + return safeMaterialDetailService.singleReceipt(id); + } + /** + * 批量出库 - 根据ids + * @param authentication + * @return + */ + @PostMapping(value = "/batch/delivery/ids") + public ResultVO deliveryBatchByIds(Authentication authentication, @Validated @RequestBody MterialDeliveryReq req){ + + return safeMaterialDetailService.deliveryBatchByIds(req); + } + /** + * 批量出库 + * @param authentication + * @return + */ + @PostMapping(value = "/batch/delivery/random") + public ResultVO deliveryBatchRandom(Authentication authentication,@Validated @RequestBody MterialRandomDeliveryReq req){ + return safeMaterialDetailService.deliveryBatchRandom(req); + } + + /** + * 批量重新入库 + */ + @PostMapping(value = "/batch/receipt") + public ResultVO receiptBatch(Authentication authentication, @RequestBody Long[] ids){ + return safeMaterialDetailService.receiptBatch(ids); + } + /** + * 删除-单条 + * @param authentication + * @return + */ + @PostMapping(value = "/delete") + public ResultVO delete(Authentication authentication, @RequestBody JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + return safeMaterialDetailService.delete(id); + } + + /** + * 批量删除 + * @param authentication + * @return + */ + @PostMapping(value = "/deleteBatch") + public ResultVO deleteBatch(Authentication authentication,@RequestBody Long[] ids){ + return safeMaterialDetailService.deleteBatch(ids); + } + + + /** + * 分页查询 + * @param authentication + * @return + */ + @PostMapping(value = "/page/list") + public SearchResultVO<List<SafeMaterialDetailDto>> listByPage(Authentication authentication, @RequestBody PageQuery<SafeMatetrialDetailQuery> pageQuery){ + return safeMaterialDetailService.listByPage(pageQuery); + } + + /** + * 查询单条数据 + * @param authentication + * @return + */ + @PostMapping(value = "/queryById") + public ResultVO queryById(Authentication authentication,@RequestBody JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + return safeMaterialDetailService.queryById(id); + } + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyDO.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyDO.java new file mode 100644 index 0000000..f96a877 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyDO.java @@ -0,0 +1,22 @@ +package com.gkhy.safePlatform.equipment.entity; + +public class SafeMaterialClassifyDO { + private Long id; + private String materialClassifyName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyInfo.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyInfo.java new file mode 100644 index 0000000..0880f55 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyInfo.java @@ -0,0 +1,131 @@ +package com.gkhy.safePlatform.equipment.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import java.io.Serializable; +import java.time.LocalDateTime; + +@TableName("safe_material_classify") +public class SafeMaterialClassifyInfo implements Serializable { + private static final long serialVersionUID = -6700804265510606854L; + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + /** + * 物资分类名称 + */ + private String materialClassifyName; + /** + * 删除标识 + */ + @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 LocalDateTime getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + public LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } + + public int getDelFlag() { + return delFlag; + } + + public void setDelFlag(int delFlag) { + this.delFlag = delFlag; + } + + 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 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; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialCountDO.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialCountDO.java new file mode 100644 index 0000000..a84c101 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialCountDO.java @@ -0,0 +1,22 @@ +package com.gkhy.safePlatform.equipment.entity; + +public class SafeMaterialCountDO { + private Long id; + private Integer count; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDO.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDO.java new file mode 100644 index 0000000..1930b44 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDO.java @@ -0,0 +1,200 @@ +package com.gkhy.safePlatform.equipment.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +public class SafeMaterialDO { + + + /** + * 主键 + */ + private Long id; + /** + * 物资序列号 (如果以后id使用雪花算法时候再启用该字段) + */ + private String serialNum; + /** + * 物资类型id + */ + private Long materialClassifyId; + + private String materialClassifyName; + /** + * 部门id + */ + private Long depId; + /** + * 部门名称 + */ + private String depName; + /** + * 物资名称 + */ + private String materialName; + /** + * 是否是耗材(0是, 1否) + */ + private Byte consumable; + /** + * 删除标识 + */ + @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 getSerialNum() { + return serialNum; + } + + public void setSerialNum(String serialNum) { + this.serialNum = serialNum; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + 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 String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public Byte getConsumable() { + return consumable; + } + + public void setConsumable(Byte consumable) { + this.consumable = consumable; + } + + public int getDelFlag() { + return delFlag; + } + + public void setDelFlag(int delFlag) { + this.delFlag = delFlag; + } + + 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 getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + 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 LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailBO.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailBO.java new file mode 100644 index 0000000..6ad8730 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailBO.java @@ -0,0 +1,63 @@ +package com.gkhy.safePlatform.equipment.entity; + +import java.time.LocalDateTime; +import java.util.List; + +public class SafeMaterialDetailBO { + private List<Long> ids; + private Integer count; + private Byte irStatus; + private Long claimantId; + private String claimantName; + + private LocalDateTime deliveryTime; + + public List<Long> getIds() { + return ids; + } + + public void setIds(List<Long> ids) { + this.ids = ids; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + + public Byte getIrStatus() { + return irStatus; + } + + public void setIrStatus(Byte irStatus) { + this.irStatus = irStatus; + } + + 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 LocalDateTime getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(LocalDateTime deliveryTime) { + this.deliveryTime = deliveryTime; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailCountDO.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailCountDO.java new file mode 100644 index 0000000..bb80a9a --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailCountDO.java @@ -0,0 +1,22 @@ +package com.gkhy.safePlatform.equipment.entity; + +public class SafeMaterialDetailCountDO { + private Long smId; + private Integer count; + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + this.smId = smId; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfo.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfo.java new file mode 100644 index 0000000..310e2a5 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfo.java @@ -0,0 +1,289 @@ +package com.gkhy.safePlatform.equipment.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +@TableName("safe_material_detail") +public class SafeMaterialDetailInfo implements Serializable { + private static final long serialVersionUID = -3779254000698221155L; + + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + /** + * 物资名称 + */ + private String name; + /** + * 物资编号 + */ + private String materialNo; + /** + * 物资类型id + */ + private Long materialClassifyId; + /** + * RFID + */ + private String rfid; + /** + * 是否是耗材(0是, 1否) + */ + private Byte consumable; + /** + * 保质期类型 + */ + private Byte validType; + /** + * 保质到期时间 + */ + private LocalDateTime validTime; + /** + * 状态 + */ + private Byte validStatus; + /** + * 出入库状态 + */ + private Byte irStatus; + /** + * 入库时间 + */ + private LocalDateTime wareHousingTime; + /** + * 出库时间 + */ + private LocalDateTime deliveryTime; + /** + * 安全物资字表id + */ + private Long smId; + /** + * 认领人id + */ + private Long claimantId; + + /** + * 认领人姓名 + */ + private String claimantName; + + /** + * 删除标识 + */ + @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 getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMaterialNo() { + return materialNo; + } + + public void setMaterialNo(String materialNo) { + this.materialNo = materialNo; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public String getRfid() { + return rfid; + } + + public void setRfid(String rfid) { + this.rfid = rfid; + } + + public Byte getConsumable() { + return consumable; + } + + public void setConsumable(Byte consumable) { + this.consumable = consumable; + } + + public Byte getValidType() { + return validType; + } + + public void setValidType(Byte validType) { + this.validType = validType; + } + + public LocalDateTime getValidTime() { + return validTime; + } + + public void setValidTime(LocalDateTime validTime) { + this.validTime = validTime; + } + + public Byte getValidStatus() { + return validStatus; + } + + public void setValidStatus(Byte validStatus) { + this.validStatus = validStatus; + } + + public Byte getIrStatus() { + return irStatus; + } + + public void setIrStatus(Byte irStatus) { + this.irStatus = irStatus; + } + + public LocalDateTime getWareHousingTime() { + return wareHousingTime; + } + + public void setWareHousingTime(LocalDateTime wareHousingTime) { + this.wareHousingTime = wareHousingTime; + } + + public LocalDateTime getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(LocalDateTime deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + this.smId = smId; + } + + public int getDelFlag() { + return delFlag; + } + + public void setDelFlag(int delFlag) { + this.delFlag = delFlag; + } + + 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 getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + 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 LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } + + 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; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfoDO.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfoDO.java new file mode 100644 index 0000000..f86b007 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfoDO.java @@ -0,0 +1,230 @@ +package com.gkhy.safePlatform.equipment.entity; + + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.time.LocalDateTime; + +public class SafeMaterialDetailInfoDO { + /** + * 主键 + */ + private Long id; + /** + * 物资名称 + */ + private String name; + /** + * 物资编号 + */ + private String materialNo; + /** + * 物资类型id + */ + private Long materialClassifyId; + /** + * 物资类型名称 + */ + private String materialClassifyName; + /** + * RFID + */ + private String rfid; + /** + * 是否是耗材(0是, 1否) + */ + private Byte consumable; + /** + * 部门名称 + * + */ + private String depName; + /** + * 部门id + */ + private Long depId; + /** + * 保质期类型 + */ + private Byte validType; + /** + * 保质到期时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime validTime; + /** + * 状态 + */ + private Byte validStatus; + /** + * 出入库状态 + */ + private Byte irStatus; + /** + * 入库时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime wareHousingTime; + /** + * 出库时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime deliveryTime; + /** + * 安全物资字表id + */ + private Long smId; + /** + * 认领人id + */ + private Long claimantId; + + /** + * 认领人姓名 + */ + private String claimantName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMaterialNo() { + return materialNo; + } + + public void setMaterialNo(String materialNo) { + this.materialNo = materialNo; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } + + public String getRfid() { + return rfid; + } + + public void setRfid(String rfid) { + this.rfid = rfid; + } + + public Byte getConsumable() { + return consumable; + } + + public void setConsumable(Byte consumable) { + this.consumable = consumable; + } + + public String getDepName() { + return depName; + } + + public void setDepName(String depName) { + this.depName = depName; + } + + public Long getDepId() { + return depId; + } + + public void setDepId(Long depId) { + this.depId = depId; + } + + public Byte getValidType() { + return validType; + } + + public void setValidType(Byte validType) { + this.validType = validType; + } + + public LocalDateTime getValidTime() { + return validTime; + } + + public void setValidTime(LocalDateTime validTime) { + this.validTime = validTime; + } + + public Byte getValidStatus() { + return validStatus; + } + + public void setValidStatus(Byte validStatus) { + this.validStatus = validStatus; + } + + public Byte getIrStatus() { + return irStatus; + } + + public void setIrStatus(Byte irStatus) { + this.irStatus = irStatus; + } + + public LocalDateTime getWareHousingTime() { + return wareHousingTime; + } + + public void setWareHousingTime(LocalDateTime wareHousingTime) { + this.wareHousingTime = wareHousingTime; + } + + public LocalDateTime getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(LocalDateTime deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + 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; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialInfo.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialInfo.java new file mode 100644 index 0000000..b432ae3 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialInfo.java @@ -0,0 +1,194 @@ +package com.gkhy.safePlatform.equipment.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +@TableName("safe_material") +public class SafeMaterialInfo implements Serializable { + + private static final long serialVersionUID = -3147326241995464433L; + + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + /** + * 物资序列号 (如果以后id使用雪花算法时候再启用该字段) + */ + private String serialNum; + /** + * 物资类型id + */ + private Long materialClassifyId; + /** + * 部门id + */ + private Long depId; + /** + * 部门名称 + */ + private String depName; + /** + * 物资名称 + */ + private String materialName; + /** + * 是否是耗材(0是, 1否) + */ + private Byte consumable; + /** + * 删除标识 + */ + @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 getSerialNum() { + return serialNum; + } + + public void setSerialNum(String serialNum) { + this.serialNum = serialNum; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + 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 String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public Byte getConsumable() { + return consumable; + } + + public void setConsumable(Byte consumable) { + this.consumable = consumable; + } + + public int getDelFlag() { + return delFlag; + } + + public void setDelFlag(int delFlag) { + this.delFlag = delFlag; + } + + 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 getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + 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 LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } + + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ConsumableEnum.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ConsumableEnum.java new file mode 100644 index 0000000..bcbedcb --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ConsumableEnum.java @@ -0,0 +1,46 @@ +package com.gkhy.safePlatform.equipment.enums; + +import java.util.HashMap; +import java.util.Map; + +public enum ConsumableEnum { + YES((byte) 0, "是"), + NO((byte) 1, "否"); + + private Byte code; + private String value; + + ConsumableEnum(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, ConsumableEnum> toMap() { + Map<Byte, ConsumableEnum> map = new HashMap(); + for (ConsumableEnum consumableEnum : ConsumableEnum.values()) { + map.put(consumableEnum.getCode(), consumableEnum); + } + return map; + } + + public static ConsumableEnum getByCode(Byte code){ + return toMap().get(code); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java index e9f115c..5eb0eb2 100644 --- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java @@ -10,6 +10,12 @@ KEYPOINT_EQUIPMENT_ENUM_PART_TYPE_NOT_EXIST("K1001","重点设备装置部位分类类型异常"), + DATA_HAS_BEEN_BOND("E1004","数据已被绑定"), + DATA_NOT_EXIST("E1005","数据不存在"), + MATERIAL_INVALID("E1006","物资无效"), + MATERIAL_OUT_OF_LIBRARY("E1007","物资已出库,不可再次出库"), + MATERIAL_IN_THE_LIBRARY("E1007","物资已入库,不可再次入库"), + ERROR("A3000", "未知错误"); private String code; diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/IssueReceiptEnum.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/IssueReceiptEnum.java new file mode 100644 index 0000000..7347bab --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/IssueReceiptEnum.java @@ -0,0 +1,45 @@ +package com.gkhy.safePlatform.equipment.enums; + +import java.util.HashMap; +import java.util.Map; + +public enum IssueReceiptEnum { + IN_THE_LIBRARY((byte) 0, "在库"), + OUT_OF_LIBRARY((byte) 1, "已出库"); + private Byte code; + private String value; + + IssueReceiptEnum(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, IssueReceiptEnum> toMap() { + Map<Byte, IssueReceiptEnum> map = new HashMap(); + for (IssueReceiptEnum consumableEnum : IssueReceiptEnum.values()) { + map.put(consumableEnum.getCode(), consumableEnum); + } + return map; + } + + public static IssueReceiptEnum getByCode(Byte code){ + return toMap().get(code); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidStatusEnum.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidStatusEnum.java new file mode 100644 index 0000000..ba6840d --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidStatusEnum.java @@ -0,0 +1,46 @@ +package com.gkhy.safePlatform.equipment.enums; + +import java.util.HashMap; +import java.util.Map; + +public enum ValidStatusEnum { + YES((byte) 0, "是"), + NO((byte) 1, "否"); + + private Byte code; + private String value; + + ValidStatusEnum(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, ValidStatusEnum> toMap() { + Map<Byte, ValidStatusEnum> map = new HashMap(); + for (ValidStatusEnum consumableEnum : ValidStatusEnum.values()) { + map.put(consumableEnum.getCode(), consumableEnum); + } + return map; + } + + public static ValidStatusEnum getByCode(Byte code){ + return toMap().get(code); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidTypeEnum.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidTypeEnum.java new file mode 100644 index 0000000..e3e5fe8 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidTypeEnum.java @@ -0,0 +1,46 @@ +package com.gkhy.safePlatform.equipment.enums; + +import java.util.HashMap; +import java.util.Map; + +public enum ValidTypeEnum { + LONG_TERM((byte) 0, "长期"), + SHORT_TERM((byte) 1, "非长期"); + + private Byte code; + private String value; + + ValidTypeEnum(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, ValidTypeEnum> toMap() { + Map<Byte, ValidTypeEnum> map = new HashMap(); + for (ValidTypeEnum consumableEnum : ValidTypeEnum.values()) { + map.put(consumableEnum.getCode(), consumableEnum); + } + return map; + } + + public static ValidTypeEnum getByCode(Byte code){ + return toMap().get(code); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/excepiton/EquipmentException.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/excepiton/EquipmentException.java index a9ffee4..d8088c8 100644 --- a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/excepiton/EquipmentException.java +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/excepiton/EquipmentException.java @@ -17,6 +17,11 @@ this.code = error.getCode(); this.message = error.getDesc(); } + public EquipmentException(EquipmentResultCodes equipmentResultCodes,String message) { + super(message); + this.code = equipmentResultCodes.getCode(); + this.message = message; + } public EquipmentException(String code, String message) { super(message); @@ -29,6 +34,11 @@ this.code = clientParamIllegal.getCode(); this.message = clientParamIllegal.getDesc(); } + public EquipmentException(ResultCodes resultCodes,String message) { + super(message); + this.code = resultCodes.getCode(); + this.message = message; + } public String getCode() { return this.code; diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/handler/MyMetaObjectHandler.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/handler/MyMetaObjectHandler.java new file mode 100644 index 0000000..1a9d906 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/handler/MyMetaObjectHandler.java @@ -0,0 +1,34 @@ +package com.gkhy.safePlatform.equipment.handler; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.gkhy.safePlatform.commons.co.ContextCacheUser; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +@Component +public class MyMetaObjectHandler implements MetaObjectHandler { + @Override + public void insertFill(MetaObject metaObject) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); + this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用) + this.strictInsertFill(metaObject, "createUid", Long.class, currentUser.getUid()); + this.strictInsertFill(metaObject, "createUname", String.class, currentUser.getUsername()); + this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐) + this.strictInsertFill(metaObject, "updateUid", Long.class, currentUser.getUid()); + this.strictInsertFill(metaObject, "updateUname", String.class, currentUser.getUsername()); + } + + @Override + public void updateFill(MetaObject metaObject) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + ContextCacheUser currentUser = (ContextCacheUser) authentication.getPrincipal(); + this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐) + this.strictInsertFill(metaObject, "updateUid", Long.class, currentUser.getUid()); + this.strictInsertFill(metaObject, "updateUname", String.class, currentUser.getUsername()); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialDeliveryReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialDeliveryReq.java new file mode 100644 index 0000000..bda8a2d --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialDeliveryReq.java @@ -0,0 +1,28 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +import javax.validation.constraints.NotNull; +import java.lang.annotation.Native; +import java.util.List; + +public class MterialDeliveryReq { + @NotNull(message = "主键不可为空!") + private List<Long> ids; + @NotNull(message = "认领人不可为空!") + private Long claimantId; + + public List<Long> getIds() { + return ids; + } + + public void setIds(List<Long> ids) { + this.ids = ids; + } + + public Long getClaimantId() { + return claimantId; + } + + public void setClaimantId(Long claimantId) { + this.claimantId = claimantId; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialRandomDeliveryReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialRandomDeliveryReq.java new file mode 100644 index 0000000..722fb52 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialRandomDeliveryReq.java @@ -0,0 +1,38 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +import javax.validation.constraints.NotNull; +import java.util.List; + +public class MterialRandomDeliveryReq { + @NotNull(message = "主键不可为空!") + private Integer count; + @NotNull(message = "认领人不可为空!") + private Long claimantId; + + @NotNull(message = "物资主键不可为空!") + private Long smId; + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + this.smId = smId; + } + + public Long getClaimantId() { + return claimantId; + } + + public void setClaimantId(Long claimantId) { + this.claimantId = claimantId; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialAddReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialAddReq.java new file mode 100644 index 0000000..1c8641e --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialAddReq.java @@ -0,0 +1,62 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +public class SafeMaterialAddReq { + /** + * 物资类型id + */ + @NotNull(message = "物资类型不可为空!") + private Long materialClassifyId; + /** + * 部门id + */ + @NotNull(message = "所属部门不可为空!") + private Long depId; + /** + * 物资名称 + */ + @NotBlank(message = "安全物资名称不可为空!") + private String materialName; + /** + * 是否是耗材(0是, 1否) + */ + @NotNull(message = "是否是耗材不可为空!") + private Byte consumable; + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public Long getDepId() { + return depId; + } + + public void setDepId(Long depId) { + this.depId = depId; + } + + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public Byte getConsumable() { + return consumable; + } + + public void setConsumable(Byte consumable) { + this.consumable = consumable; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyAddReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyAddReq.java new file mode 100644 index 0000000..f7e6284 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyAddReq.java @@ -0,0 +1,23 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + + +import org.hibernate.validator.constraints.Length; +import org.jetbrains.annotations.NotNull; + +import javax.validation.constraints.NotBlank; + +public class SafeMaterialClassifyAddReq { + /** + * 物资分类名称 + */ + @NotBlank(message = "物资名称不可为空") + private String materialClassifyName; + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyModReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyModReq.java new file mode 100644 index 0000000..33aa411 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyModReq.java @@ -0,0 +1,34 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +public class SafeMaterialClassifyModReq { + /** + * 主键 + */ + @NotNull(message = "主键不可为空") + private Long id; + /** + * 物资分类名称 + */ + @NotBlank(message = "物资名称不可为空") + private String materialClassifyName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyQuery.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyQuery.java new file mode 100644 index 0000000..551511c --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyQuery.java @@ -0,0 +1,13 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +public class SafeMaterialClassifyQuery { + private String materialClassifyName; + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailAddReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailAddReq.java new file mode 100644 index 0000000..001f192 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailAddReq.java @@ -0,0 +1,78 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +public class SafeMaterialDetailAddReq { + @NotNull(message = "物资不可为空!") + private Long smId; + private String startRfid; + private String endRfid; + @NotNull(message = "入库数量不可为空!") + private Integer wareHousingCount; + @NotNull(message = "有效期类型不可为空!") + private Byte validType; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime validTime; + + //rfid + private String rfid; + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + this.smId = smId; + } + + public String getStartRfid() { + return startRfid; + } + + public void setStartRfid(String startRfid) { + this.startRfid = startRfid; + } + + public String getEndRfid() { + return endRfid; + } + + public void setEndRfid(String endRfid) { + this.endRfid = endRfid; + } + + public Integer getWareHousingCount() { + return wareHousingCount; + } + + public void setWareHousingCount(Integer wareHousingCount) { + this.wareHousingCount = wareHousingCount; + } + + public Byte getValidType() { + return validType; + } + + public void setValidType(Byte validType) { + this.validType = validType; + } + + public LocalDateTime getValidTime() { + return validTime; + } + + public void setValidTime(LocalDateTime validTime) { + this.validTime = validTime; + } + + public String getRfid() { + return rfid; + } + + public void setRfid(String rfid) { + this.rfid = rfid; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailReq.java new file mode 100644 index 0000000..53467ea --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailReq.java @@ -0,0 +1,111 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +public class SafeMaterialDetailReq { + /** + * 主键 + */ + @NotNull(message = "主键不可为空!") + private Long id; + + /** + * 物资类型id + */ + private Long materialClassifyId; + /** + * RFID + */ + private String rfid; + + /** + * 保质期类型 + */ + private Byte validType; + /** + * 保质到期时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime validTime; + /** + * 出入库状态 + */ + private Byte irStatus; + + /** + * 安全物资字表id + */ + private Long smId; + /** + * 认领人id + */ + private Long claimantId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public String getRfid() { + return rfid; + } + + public void setRfid(String rfid) { + this.rfid = rfid; + } + + public Byte getValidType() { + return validType; + } + + public void setValidType(Byte validType) { + this.validType = validType; + } + + public LocalDateTime getValidTime() { + return validTime; + } + + public void setValidTime(LocalDateTime validTime) { + this.validTime = validTime; + } + + public Byte getIrStatus() { + return irStatus; + } + + public void setIrStatus(Byte irStatus) { + this.irStatus = irStatus; + } + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + this.smId = smId; + } + + public Long getClaimantId() { + return claimantId; + } + + public void setClaimantId(Long claimantId) { + this.claimantId = claimantId; + } + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialModReq.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialModReq.java new file mode 100644 index 0000000..976cbe3 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialModReq.java @@ -0,0 +1,69 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +public class SafeMaterialModReq { + @NotNull(message = "主键不可为空!") + private Long id; + /** + * 物资类型id + */ + @NotNull(message = "物资类型不可为空!") + private Long materialClassifyId; + /** + * 部门id + */ + @NotNull(message = "所属部门不可为空!") + private Long depId; + /** + * 物资名称 + */ + @NotBlank(message = "安全物资名称不可为空!") + private String materialName; + /** + * 是否是耗材(0是, 1否) + */ + @NotNull(message = "是否是耗材不可为空!") + private Byte consumable; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public Long getDepId() { + return depId; + } + + public void setDepId(Long depId) { + this.depId = depId; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public Byte getConsumable() { + return consumable; + } + + public void setConsumable(Byte consumable) { + this.consumable = consumable; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialQuery.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialQuery.java new file mode 100644 index 0000000..9d6130f --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialQuery.java @@ -0,0 +1,28 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +public class SafeMaterialQuery { + /** + * 物资类型id + */ + private Long materialClassifyId; + /** + * 物资名称 + */ + private String materialName; + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMatetrialDetailQuery.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMatetrialDetailQuery.java new file mode 100644 index 0000000..b12d628 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMatetrialDetailQuery.java @@ -0,0 +1,22 @@ +package com.gkhy.safePlatform.equipment.model.dto.req; + +public class SafeMatetrialDetailQuery { + private Byte irStatus; + private String rfid; + + 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; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/BaseMaterialDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/BaseMaterialDto.java new file mode 100644 index 0000000..86907be --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/BaseMaterialDto.java @@ -0,0 +1,24 @@ +package com.gkhy.safePlatform.equipment.model.dto.resp; + +public class BaseMaterialDto { + //物资设备id + private Long smId; + //物资名称 + private String materialName; + + public Long getSmId() { + return smId; + } + + public void setSmId(Long smId) { + this.smId = smId; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialClassificationDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialClassificationDto.java new file mode 100644 index 0000000..f8d57a1 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialClassificationDto.java @@ -0,0 +1,35 @@ +package com.gkhy.safePlatform.equipment.model.dto.resp; + +import java.util.List; + +public class MaterialClassificationDto { + //物资类型id + private Long materialClassifyId; + //物资类型名称 + private String materialClassifyName; + private List<MaterialDepartmentDto> departmentList; + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } + + public List<MaterialDepartmentDto> getDepartmentList() { + return departmentList; + } + + public void setDepartmentList(List<MaterialDepartmentDto> departmentList) { + this.departmentList = departmentList; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialDepartmentDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialDepartmentDto.java new file mode 100644 index 0000000..989d7be --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialDepartmentDto.java @@ -0,0 +1,36 @@ +package com.gkhy.safePlatform.equipment.model.dto.resp; + +import java.util.List; + +public class MaterialDepartmentDto { + //部门id + private Long depId; + //部门名称 + private String depName; + //基础物资设备 + private List<BaseMaterialDto> baseMaterialList; + + 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<BaseMaterialDto> getBaseMaterialList() { + return baseMaterialList; + } + + public void setBaseMaterialList(List<BaseMaterialDto> baseMaterialList) { + this.baseMaterialList = baseMaterialList; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialClassifyDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialClassifyDto.java new file mode 100644 index 0000000..058fb30 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialClassifyDto.java @@ -0,0 +1,22 @@ +package com.gkhy.safePlatform.equipment.model.dto.resp; + +public class SafeMaterialClassifyDto { + private Long id; + private String materialClassifyName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDetailDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDetailDto.java new file mode 100644 index 0000000..b6478e8 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDetailDto.java @@ -0,0 +1,215 @@ +package com.gkhy.safePlatform.equipment.model.dto.resp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import java.time.LocalDateTime; + +public class SafeMaterialDetailDto { + /** + * 主键 + */ + private Long id; + /** + * 物资名称 + */ + private String name; + /** + * 物资编号 + */ + private String materialNo; + /** + * 物资类型名称 + */ + private String materialClassifyName; + /** + * 部门名称 + */ + private String depName; + /** + * RFID + */ + private String rfid; + /** + * 耗材类型名称 + */ + private String consumableName; + /** + * 保质期类型 + */ + private Byte validType; + /** + * 保质期类型中文 + */ + private String validTypeName; + /** + * 保质到期时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime validTime; + /** + * 状态 + */ + private Byte validStatus; + /** + * 有效状态 + */ + private String validStatusName; + /** + * 出入库状态 + */ + private Byte irStatus; + /** + * 出入库状态中文 + */ + private String irStatusName; + /** + * 入库时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime wareHousingTime; + /** + * 出库时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime deliveryTime; + + /** + * 认领人姓名 + */ + private String claimantName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMaterialNo() { + return materialNo; + } + + public void setMaterialNo(String materialNo) { + this.materialNo = materialNo; + } + + public String getDepName() { + return depName; + } + + public void setDepName(String depName) { + this.depName = depName; + } + + public String getRfid() { + return rfid; + } + + public void setRfid(String rfid) { + this.rfid = rfid; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } + + public String getConsumableName() { + return consumableName; + } + + public void setConsumableName(String consumableName) { + this.consumableName = consumableName; + } + + public Byte getValidType() { + return validType; + } + + public void setValidType(Byte validType) { + this.validType = validType; + } + + public LocalDateTime getValidTime() { + return validTime; + } + + public void setValidTime(LocalDateTime validTime) { + this.validTime = validTime; + } + + public Byte getValidStatus() { + return validStatus; + } + + public void setValidStatus(Byte validStatus) { + this.validStatus = validStatus; + } + + public String getValidStatusName() { + return validStatusName; + } + + public void setValidStatusName(String validStatusName) { + this.validStatusName = validStatusName; + } + + public Byte getIrStatus() { + return irStatus; + } + + public void setIrStatus(Byte irStatus) { + this.irStatus = irStatus; + } + + public String getIrStatusName() { + return irStatusName; + } + + public void setIrStatusName(String irStatusName) { + this.irStatusName = irStatusName; + } + + public LocalDateTime getWareHousingTime() { + return wareHousingTime; + } + + public void setWareHousingTime(LocalDateTime wareHousingTime) { + this.wareHousingTime = wareHousingTime; + } + + public LocalDateTime getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(LocalDateTime deliveryTime) { + this.deliveryTime = deliveryTime; + } + + public String getClaimantName() { + return claimantName; + } + + public void setClaimantName(String claimantName) { + this.claimantName = claimantName; + } + + public String getValidTypeName() { + return validTypeName; + } + + public void setValidTypeName(String validTypeName) { + this.validTypeName = validTypeName; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDto.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDto.java new file mode 100644 index 0000000..4bd30ce --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDto.java @@ -0,0 +1,126 @@ +package com.gkhy.safePlatform.equipment.model.dto.resp; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +public class SafeMaterialDto { + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + /** + * 物资序列号 (如果以后id使用雪花算法时候再启用该字段) + */ + private String serialNum; + /** + * 物资类型id + */ + private Long materialClassifyId; + + private String materialClassifyName; + /** + * 部门id + */ + private Long depId; + /** + * 部门名称 + */ + private String depName; + /** + * 物资名称 + */ + private String materialName; + /** + * 是否是耗材(0是, 1否) + */ + private Byte consumable; + private String consumableName; + + /** + * 有效库存数量 + */ + private Integer validStockCount; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSerialNum() { + return serialNum; + } + + public void setSerialNum(String serialNum) { + this.serialNum = serialNum; + } + + public Long getMaterialClassifyId() { + return materialClassifyId; + } + + public void setMaterialClassifyId(Long materialClassifyId) { + this.materialClassifyId = materialClassifyId; + } + + public String getMaterialClassifyName() { + return materialClassifyName; + } + + public void setMaterialClassifyName(String materialClassifyName) { + this.materialClassifyName = materialClassifyName; + } + + 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 String getMaterialName() { + return materialName; + } + + 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; + } + + public Integer getValidStockCount() { + return validStockCount; + } + + public void setValidStockCount(Integer validStockCount) { + this.validStockCount = validStockCount; + } + + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/consumer/SafeMaterialConsumer.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/consumer/SafeMaterialConsumer.java new file mode 100644 index 0000000..e70357a --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/consumer/SafeMaterialConsumer.java @@ -0,0 +1,72 @@ +package com.gkhy.safePlatform.equipment.mq.consumer; + +import com.gkhy.safePlatform.commons.utils.CalcuteDelayLevelUtils; +import com.gkhy.safePlatform.commons.utils.JsonUtils; + +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo; +import com.gkhy.safePlatform.equipment.enums.ValidStatusEnum; +import com.gkhy.safePlatform.equipment.mq.msg.SafeMaterialMsg; +import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialDetailInfoService; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.client.producer.SendStatus; +import org.apache.rocketmq.common.message.MessageExt; +import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; +import org.apache.rocketmq.spring.core.RocketMQListener; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.messaging.Message; +import org.springframework.messaging.support.MessageBuilder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.nio.charset.StandardCharsets; +import java.util.Date; + +@Service +@RocketMQMessageListener(topic = "${rocketmq.topic.safeMaterialTopic}",consumerGroup = "${rocketmq.consumer.safeMaterialGroup}") +public class SafeMaterialConsumer implements RocketMQListener<MessageExt> { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Value("${rocketmq.topic.safeMaterialTopic}") + private String safeMaterialTopic; + + @Autowired + private RocketMQTemplate rocketMQTemplate; + + @Autowired + private SafeMaterialDetailInfoService safeMaterialDetailInfoService; + + + @Override + @Transactional + public void onMessage(MessageExt message) { + try{ + SafeMaterialMsg msg = JsonUtils.parse(new String(message.getBody(), StandardCharsets.UTF_8),SafeMaterialMsg.class); + if(null != msg && msg.getId()>0){ + //当前时间早于目标处理时间前0秒 + Long relaySeconds = (msg.getValidTime().getTime() - new Date().getTime())/1000; + if(relaySeconds>0){ + //重发消息,实现连续延时 + Message reMsg = MessageBuilder.withPayload(msg).build(); + SendResult sendResult = rocketMQTemplate.syncSend(safeMaterialTopic, reMsg, 10000, CalcuteDelayLevelUtils.calcuteDelayLevel(relaySeconds)); + if(sendResult.getSendStatus() != SendStatus.SEND_OK){ + throw new RuntimeException("【安全物资管理】重发消息失败" + msg.getId()+ "MSG_ID: "+ message.getMsgId()); + } + }else{//超时 + SafeMaterialDetailInfo materialDetailInfo = safeMaterialDetailInfoService.queryById(msg.getId()); + if(null != materialDetailInfo){ + safeMaterialDetailInfoService.updateValidStatus(msg.getId()); + logger.info("物资详细数据id:"+msg.getId()+" 物资过期!"); + + } + } + + } + }catch (Exception e){ + logger.error("【安全物资和设备管理】消息消费异常!"+ "MSG_ID: "+ message.getMsgId()+e); + } + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/msg/SafeMaterialMsg.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/msg/SafeMaterialMsg.java new file mode 100644 index 0000000..23b36bf --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/msg/SafeMaterialMsg.java @@ -0,0 +1,46 @@ +package com.gkhy.safePlatform.equipment.mq.msg; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; + +public class SafeMaterialMsg { + /** + * 主键 + */ + private Long id ; + + /** + * 有效类型 + */ + private Byte validStatus; + /** + * 有效期 + */ + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") + private Date validTime; + + public Byte getValidStatus() { + return validStatus; + } + + public void setValidStatus(Byte validStatus) { + this.validStatus = validStatus; + } + + public Date getValidTime() { + return validTime; + } + + public void setValidTime(Date validTime) { + this.validTime = validTime; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialClassifyInfoRepository.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialClassifyInfoRepository.java new file mode 100644 index 0000000..4e6244f --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialClassifyInfoRepository.java @@ -0,0 +1,17 @@ +package com.gkhy.safePlatform.equipment.repository; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Repository +public interface SafeMaterialClassifyInfoRepository extends BaseMapper<SafeMaterialClassifyInfo> { + + int save(SafeMaterialClassifyInfo classifyInfo); + + int update(SafeMaterialClassifyInfo classifyInfo); + + SafeMaterialClassifyInfo queryById(@Param("id") Long id); + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialDetailInfoRepository.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialDetailInfoRepository.java new file mode 100644 index 0000000..4dddeca --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialDetailInfoRepository.java @@ -0,0 +1,46 @@ +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.SafeMaterialDetailBO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailCountDO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfoDO; +import com.gkhy.safePlatform.equipment.model.dto.req.SafeMatetrialDetailQuery; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.time.LocalDateTime; +import java.util.List; + +@Repository +public interface SafeMaterialDetailInfoRepository extends BaseMapper<SafeMaterialDetailInfo> { + Integer getTotalCount(); + + SafeMaterialDetailInfo queryById(Long id); + void updateReceiptStatus(@Param("id") Long id, @Param("status") Byte status,@Param("wareHousingTime") LocalDateTime wareHousingTime); + + List<SafeMaterialDetailInfo> getListByIds(List<Long> ids); + + void updateReceiptStatusByIds(@Param("ids") List<Long> ids, @Param("irStatus") Byte irStatus, @Param("wareHousingTime")LocalDateTime wareHousingTime); + + List<SafeMaterialDetailCountDO> getCountGroupBySmId(@Param("ids") List<Long> ids, @Param("irStatus") Byte irStatus); + + List<SafeMaterialDetailCountDO> getStatisticsValidStock(@Param("smIds") List<Long> smIds,@Param("validStatus") Byte validStatus,@Param("irStatus") Byte irStatus); + + void deleteBatch(Long[] ids); + + void updateDeliveryStatusByIds(@Param("detailBO")SafeMaterialDetailBO 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); + + int getCountBySmIds(@Param("smIds") List<Long> smIds); + + int getCountBySmId(Long smId); + + void updateValidStatus(@Param("id") Long id, @Param("validStatus")Byte validStatus); +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialInfoRepository.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialInfoRepository.java new file mode 100644 index 0000000..08938b6 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialInfoRepository.java @@ -0,0 +1,27 @@ +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.SafeMaterialDO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo; +import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface SafeMaterialInfoRepository extends BaseMapper<SafeMaterialInfo> { + + SafeMaterialInfo queryById(Long id); + + int getTotalCount(); + + int getCountByClassify(Long classifyId); + + int deleteBatch(List<Long> ids); + + List<SafeMaterialDO> listByConditions(Page<SafeMaterialDO> page, @Param("query") SafeMaterialQuery query); + + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialClassifyService.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialClassifyService.java new file mode 100644 index 0000000..bc84115 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialClassifyService.java @@ -0,0 +1,22 @@ +package com.gkhy.safePlatform.equipment.service; + +import com.gkhy.safePlatform.commons.co.ContextCacheUser; +import com.gkhy.safePlatform.commons.vo.ResultVO; +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.resp.SafeMaterialClassifyDto; + +import java.util.List; + +public interface MaterialClassifyService { + ResultVO<List<SafeMaterialClassifyDto>> list(SafeMaterialClassifyQuery query); + + ResultVO save(ContextCacheUser currentUser, SafeMaterialClassifyAddReq req); + + ResultVO update(ContextCacheUser currentUser, SafeMaterialClassifyModReq req); + + ResultVO delete(Long id); + + ResultVO<SafeMaterialClassifyDto> queryById(Long id); +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialDetailService.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialDetailService.java new file mode 100644 index 0000000..89985a2 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialDetailService.java @@ -0,0 +1,38 @@ +package com.gkhy.safePlatform.equipment.service; + +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.*; +import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialDetailDto; + +import java.util.List; + +public interface SafeMaterialDetailService { + ResultVO save(SafeMaterialDetailAddReq req); + + ResultVO singleDelivery(SafeMaterialDetailReq req); + + ResultVO singleReceipt(Long id); + + ResultVO delete(Long id); + + ResultVO singleDdelivery0rReceipt(SafeMaterialDetailReq req); + + ResultVO saveBatch(SafeMaterialDetailAddReq req); + + ResultVO update(SafeMaterialDetailReq req); + + ResultVO receiptBatch(Long[] ids); + + ResultVO deleteBatch(Long[] ids); + + ResultVO deliveryBatchByIds(MterialDeliveryReq req); + + ResultVO deliveryBatchRandom(MterialRandomDeliveryReq req); + + SearchResultVO<List<SafeMaterialDetailDto>> listByPage(PageQuery<SafeMatetrialDetailQuery> pageQuery); + + ResultVO queryById(Long id); + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialService.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialService.java new file mode 100644 index 0000000..6acc8c0 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialService.java @@ -0,0 +1,26 @@ +package com.gkhy.safePlatform.equipment.service; + +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.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.SafeMaterialDto; + +import java.util.List; + +public interface SafeMaterialService { + ResultVO save(SafeMaterialAddReq req); + + ResultVO update(SafeMaterialModReq req); + + ResultVO queryById(Long id); + + ResultVO delete(Long id); + + ResultVO deleteBatch(Long[] ids); + + ResultVO list(); + SearchResultVO<List<SafeMaterialDto>> listByPage(PageQuery<SafeMaterialQuery> pageQuery); +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialClassifyInfoService.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialClassifyInfoService.java new file mode 100644 index 0000000..ba1af0a --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialClassifyInfoService.java @@ -0,0 +1,21 @@ +package com.gkhy.safePlatform.equipment.service.baseService; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo; +import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyQuery; +import com.gkhy.safePlatform.equipment.model.dto.resp.SafeMaterialClassifyDto; + +import java.util.List; + +public interface SafeMaterialClassifyInfoService extends IService<SafeMaterialClassifyInfo> { + SafeMaterialClassifyInfo queryById(Long id); + + + boolean save(SafeMaterialClassifyInfo classifyInfo); + + int update(SafeMaterialClassifyInfo classifyInfo); + + List<SafeMaterialClassifyInfo> listByCondition(SafeMaterialClassifyQuery query); + + List<SafeMaterialClassifyInfo> getList(); +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialDetailInfoService.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialDetailInfoService.java new file mode 100644 index 0000000..b32d6ce --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialDetailInfoService.java @@ -0,0 +1,45 @@ +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.SafeMaterialDetailBO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailCountDO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfoDO; +import com.gkhy.safePlatform.equipment.model.dto.req.SafeMatetrialDetailQuery; + +import java.util.List; + +public interface SafeMaterialDetailInfoService extends IService<SafeMaterialDetailInfo> { + + Integer getTotalCount(); + + SafeMaterialDetailInfo queryById(Long id); + + void updateReceiptStatus(Long id, Byte status); + + List<SafeMaterialDetailInfo> getListByIds(List<Long> ids); + + void updateReceiptStatusByIds(List<Long> ids, Byte irStatus); + + List<SafeMaterialDetailCountDO> getCountGroupBySmId(List<Long> ids, Byte irStatus); + + List<SafeMaterialDetailCountDO> getStatisticsValidStock(List<Long> smIds); + + void deleteBatch(Long[] ids); + + void updateDeliveryStatusByIds(SafeMaterialDetailBO detailBO); + + void deliveryBatchRandom(SafeMaterialDetailBO detailBO); + + + Integer getValidStockCount(Long smId); + + List<SafeMaterialDetailInfoDO> listByPage(Page<SafeMaterialDetailInfo> page, SafeMatetrialDetailQuery query); + + int getCountBySmIds(List<Long> smIds); + + int getCountBySmId(Long smId); + + void updateValidStatus(Long id); +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialInfoService.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialInfoService.java new file mode 100644 index 0000000..c12986a --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialInfoService.java @@ -0,0 +1,25 @@ +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.SafeMaterialDO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo; +import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialQuery; + +import java.util.List; + +public interface SafeMaterialInfoService extends IService<SafeMaterialInfo> { + int getTotalCount(); + + SafeMaterialInfo queryById(Long id); + + int getCountByClassify(Long classifyId); + + int deleteBatch(List<Long> ids); + + List<SafeMaterialInfo> list(); + + List<SafeMaterialDO> listByPage(Page<SafeMaterialDO> page, SafeMaterialQuery query); + + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialClassifyInfoServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialClassifyInfoServiceImpl.java new file mode 100644 index 0000000..a5a0d15 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialClassifyInfoServiceImpl.java @@ -0,0 +1,63 @@ +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.commons.utils.StringUtils; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo; +import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; +import com.gkhy.safePlatform.equipment.model.dto.req.SafeMaterialClassifyQuery; +import com.gkhy.safePlatform.equipment.repository.SafeMaterialClassifyInfoRepository; +import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialClassifyInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("SafeMaterialClassifyInfoService") +public class SafeMaterialClassifyInfoServiceImpl extends ServiceImpl<SafeMaterialClassifyInfoRepository, SafeMaterialClassifyInfo> implements SafeMaterialClassifyInfoService { + @Autowired + private SafeMaterialClassifyInfoRepository repository; + @Override + public boolean save(SafeMaterialClassifyInfo classifyInfo) { + boolean flag = true; + int i = repository.save(classifyInfo); + if(i == 0){ + flag = false; + } + return flag; + } + + //@Override + public int update(SafeMaterialClassifyInfo classifyInfo) { + if(classifyInfo.getId() == null){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + int i = repository.update(classifyInfo); + return i; + } + + + @Override + public SafeMaterialClassifyInfo queryById(Long id) { + if(id == null){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.queryById(id); + } + @Override + public List<SafeMaterialClassifyInfo> listByCondition(SafeMaterialClassifyQuery query){ + List<SafeMaterialClassifyInfo> list = repository.selectList(new LambdaQueryWrapper<SafeMaterialClassifyInfo>() + .eq(SafeMaterialClassifyInfo::getDelFlag, 0) + .like(StringUtils.isNotBlank(query.getMaterialClassifyName()), SafeMaterialClassifyInfo::getMaterialClassifyName, query.getMaterialClassifyName()) + ); + return list; + } + + @Override + public List<SafeMaterialClassifyInfo> getList(){ + List<SafeMaterialClassifyInfo> list = repository.selectList(new LambdaQueryWrapper<SafeMaterialClassifyInfo>()); + return list; + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialDetailInfoServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialDetailInfoServiceImpl.java new file mode 100644 index 0000000..1107562 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialDetailInfoServiceImpl.java @@ -0,0 +1,147 @@ +package com.gkhy.safePlatform.equipment.service.baseService.impl; + +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.equipment.entity.SafeMaterialDetailBO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailCountDO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfoDO; +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.repository.SafeMaterialDetailInfoRepository; +import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialDetailInfoService; +import jodd.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.util.List; + +@Service("SafeMaterialDetailInfoService") +public class SafeMaterialDetailInfoServiceImpl extends ServiceImpl<SafeMaterialDetailInfoRepository, SafeMaterialDetailInfo> implements SafeMaterialDetailInfoService { + @Autowired + private SafeMaterialDetailInfoRepository repository; + @Override + public Integer getTotalCount() { + return repository.getTotalCount(); + } + + @Override + public SafeMaterialDetailInfo queryById(Long id) { + if(null == id){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.queryById(id); + } + + @Override + public void updateReceiptStatus(Long id, Byte status) { + if(null == id || null == status){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + repository.updateReceiptStatus(id,status,LocalDateTime.now()); + } + + @Override + public List<SafeMaterialDetailInfo> getListByIds(List<Long> ids) { + if(CollectionUtils.isEmpty(ids)){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.getListByIds(ids); + + } + + @Override + public void updateReceiptStatusByIds(List<Long> ids, Byte irStatus) { + if(CollectionUtils.isEmpty(ids) || null == irStatus){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + repository.updateReceiptStatusByIds(ids,irStatus,LocalDateTime.now()); + } + + @Override + public List<SafeMaterialDetailCountDO> getCountGroupBySmId(List<Long> ids, Byte irStatus) { + if(!CollectionUtils.isEmpty(ids) || null == irStatus){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.getCountGroupBySmId(ids,irStatus); + } + + @Override + public List<SafeMaterialDetailCountDO> getStatisticsValidStock(List<Long> smIds) { + return repository.getStatisticsValidStock(smIds, ValidStatusEnum.YES.getCode(), IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + } + + @Override + public void deleteBatch(Long[] ids) { + if(ids.length == 0){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + repository.deleteBatch(ids); + } + + @Override + public void updateDeliveryStatusByIds(SafeMaterialDetailBO detailBO) { + if(CollectionUtils.isEmpty(detailBO.getIds()) || 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.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 + public Integer getValidStockCount(Long smId) { + if(null == smId){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + Integer count = repository.getValidStockCount(smId,ValidStatusEnum.YES.getCode(),IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + return count; + } + + @Override + public List<SafeMaterialDetailInfoDO> listByPage(Page<SafeMaterialDetailInfo> page, SafeMatetrialDetailQuery query) { + + return repository.listByCondition(page,query); + } + + @Override + public int getCountBySmIds(List<Long> smIds) { + if(null == smIds || smIds.size() == 0){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.getCountBySmIds(smIds); + } + + @Override + public int getCountBySmId(Long smId) { + if(null == smId){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.getCountBySmId(smId); + } + + @Override + public void updateValidStatus(Long id) { + if(null == id){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + repository.updateValidStatus(id,ValidStatusEnum.NO.getCode()); + } + + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialInfoServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialInfoServiceImpl.java new file mode 100644 index 0000000..6c6d4cd --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialInfoServiceImpl.java @@ -0,0 +1,80 @@ +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.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.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 java.util.List; + +@Service("SafeMaterialInfoService") +public class SafeMaterialInfoServiceImpl extends ServiceImpl<SafeMaterialInfoRepository, SafeMaterialInfo> implements SafeMaterialInfoService { + @Autowired + private SafeMaterialInfoRepository repository; + /** + * 获取所有数据,包括被删除的 + * @return + */ + @Override + public int getTotalCount() { + return repository.getTotalCount(); + } + + @Override + public SafeMaterialInfo 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; + } + + /** + * 根据类型统计数据 + */ + @Override + public int getCountByClassify(Long classifyId){ + if(null == classifyId){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + return repository.getCountByClassify(classifyId); + } + + @Override + public int deleteBatch(List<Long> ids) { + if(null == ids || ids.size() == 0){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + repository.deleteBatch(ids); + return 0; + } + + @Override + public List<SafeMaterialInfo> list(){ + List<SafeMaterialInfo> safeMaterialInfos = repository.selectList(new LambdaQueryWrapper<SafeMaterialInfo>() + .eq(SafeMaterialInfo::getDelFlag, 0)); + return safeMaterialInfos; + + } + + @Override + public List<SafeMaterialDO> listByPage(Page<SafeMaterialDO> page, SafeMaterialQuery query) { + List<SafeMaterialDO> materialInfoList = repository.listByConditions(page, query); + return materialInfoList; + } + + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java new file mode 100644 index 0000000..b71a9eb --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java @@ -0,0 +1,114 @@ +package com.gkhy.safePlatform.equipment.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gkhy.safePlatform.commons.co.ContextCacheUser; +import com.gkhy.safePlatform.commons.enums.ResultCodes; +import com.gkhy.safePlatform.commons.utils.StringUtils; +import com.gkhy.safePlatform.commons.vo.ResultVO; +import com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo; +import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; +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.resp.SafeMaterialClassifyDto; +import com.gkhy.safePlatform.equipment.service.MaterialClassifyService; +import com.gkhy.safePlatform.equipment.service.baseService.SafeMaterialClassifyInfoService; +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.ArrayList; +import java.util.List; + +@Service("MaterialClassifyService") +public class MaterialClassifyServiceImpl implements MaterialClassifyService { + @Autowired + private SafeMaterialClassifyInfoService safeMaterialClassifyInfoService; + @Autowired + private SafeMaterialInfoService safeMaterialInfoService; + + @Override + public ResultVO<List<SafeMaterialClassifyDto>> list(SafeMaterialClassifyQuery query) { + List<SafeMaterialClassifyInfo> list = safeMaterialClassifyInfoService.listByCondition(query); + List<SafeMaterialClassifyDto> respList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(list)){ + for(SafeMaterialClassifyInfo classifyInfo : list){ + SafeMaterialClassifyDto respDTO = new SafeMaterialClassifyDto(); + respDTO.setId(classifyInfo.getId()); + respDTO.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); + respList.add(respDTO); + } + } + return new ResultVO<>(ResultCodes.OK,respList); + } + + @Override + public ResultVO save(ContextCacheUser currentUser, SafeMaterialClassifyAddReq req) { + ResultVO resultVO = null; + SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo(); + classifyInfo.setMaterialClassifyName(req.getMaterialClassifyName()); + boolean flag = safeMaterialClassifyInfoService.save(classifyInfo); + if (flag){ + resultVO = new ResultVO(ResultCodes.OK); + }else { + resultVO = new ResultVO(ResultCodes.SERVER_ADD_ERROR); + } + return resultVO; + } + + @Override + public ResultVO update(ContextCacheUser currentUser, SafeMaterialClassifyModReq req) { + ResultVO resultVO = null; + if(req.getId() == null){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo(); + classifyInfo.setMaterialClassifyName(req.getMaterialClassifyName()); + classifyInfo.setId(req.getId()); + boolean flag = safeMaterialClassifyInfoService.updateById(classifyInfo); + if (flag){ + resultVO = new ResultVO(ResultCodes.OK); + }else { + resultVO = new ResultVO(ResultCodes.SERVER_UPDATE_ERROR); + } + return resultVO; + } + + @Override + public ResultVO delete(Long id) { + if(id == null){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + ResultVO resultVO = null; + //判断是否被绑定 + int count = safeMaterialInfoService.getCountByClassify(id); + if(count > 0){ + throw new EquipmentException(ResultCodes.SERVER_DEL_ERROR,"该类型已被绑定,不可删除!"); + }else{ + //如果没有被绑定,逻辑删除 + SafeMaterialClassifyInfo classifyInfo = new SafeMaterialClassifyInfo(); + classifyInfo.setId(id); + classifyInfo.setDelFlag(1); + boolean flag = safeMaterialClassifyInfoService.updateById(classifyInfo); + if (flag){ + resultVO = new ResultVO(ResultCodes.OK); + }else { + resultVO = new ResultVO(ResultCodes.SERVER_DEL_ERROR); + } + } + return resultVO; + } + + @Override + public ResultVO<SafeMaterialClassifyDto> queryById(Long id) { + if(id == null){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(id); + SafeMaterialClassifyDto respDTO = new SafeMaterialClassifyDto(); + respDTO.setId(classifyInfo.getId()); + respDTO.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); + return new ResultVO<>(ResultCodes.OK,respDTO); + } +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialDetailServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialDetailServiceImpl.java new file mode 100644 index 0000000..72cc374 --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialDetailServiceImpl.java @@ -0,0 +1,541 @@ +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.AccountUserService; +import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.UserInfoRPCRespDTO; +import com.gkhy.safePlatform.commons.enums.ResultCodes; +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.resp.SafeMaterialDetailDto; +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 org.apache.dubbo.config.annotation.DubboReference; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +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 java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Service("SafeMaterialDetailService") +public class SafeMaterialDetailServiceImpl implements SafeMaterialDetailService { + @Autowired + private SafeMaterialInfoService safeMaterialInfoService; + @Autowired + private SafeMaterialDetailInfoService safeMaterialDetailInfoService; + + @Autowired + private SafeMaterialClassifyInfoService safeMaterialClassifyInfoService; + + @Value("${rocketmq.topic.safeMaterialTopic}") + private String safeMaterialTopic; + + @DubboReference(check = false) + private AccountUserService accountUserService; + + @Autowired + private RocketMQTemplateHelper rocketMQTemplateHelper; + + @Override + public ResultVO save(SafeMaterialDetailAddReq req) { + //判断物资是否存在 + SafeMaterialInfo materialInfo = safeMaterialInfoService.queryById(req.getSmId()); + if(null == materialInfo){ + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"该种物资不存在!"); + } + if(null == ValidTypeEnum.getByCode(req.getValidType())){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"有效期类型不合法!"); + } + if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null == req.getValidTime()){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"有效期时间不可为空!"); + } + //获取数据量 + Integer totalCount = safeMaterialDetailInfoService.getTotalCount(); + List<SafeMaterialDetailInfo> list = new ArrayList<>(); + + //RFID起始不为空计算一下 + if(StringUtils.isNotBlank(req.getStartRfid()) && StringUtils.isNotBlank(req.getEndRfid())){ + int start = 0; + int end = 0; + String prefix = ""; + try{ + prefix = req.getStartRfid().substring(0,req.getStartRfid().length()-8); + start = Integer.parseInt(req.getStartRfid().substring(req.getStartRfid().length()-8)); + end = Integer.parseInt(req.getEndRfid().substring(req.getEndRfid().length()-8)); + }catch (Exception e){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"起始RFID不合法!"); + } + if((end-start+1) != req.getWareHousingCount()){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"RFID起始和入库数量不能对应!"); + } + for(int i = 0;i < req.getWareHousingCount();i++){ + String countStr = String.valueOf(start+i); + String rfid = "0000000".substring(0,(8 - countStr.length()))+countStr; + SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); + materialDetailInfo.setId(IdUtil.getSnowflake(0,0).nextId()); + materialDetailInfo.setMaterialClassifyId(materialInfo.getMaterialClassifyId()); + materialDetailInfo.setName(materialInfo.getMaterialName()+"(ID"+materialInfo.getId()+")"); + materialDetailInfo.setSmId(req.getSmId()); + materialDetailInfo.setConsumable(materialInfo.getConsumable()); + materialDetailInfo.setValidType(req.getValidType()); + if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode())){ + materialDetailInfo.setValidTime(req.getValidTime()); + } + materialDetailInfo.setValidStatus(ValidStatusEnum.YES.getCode()); + materialDetailInfo.setIrStatus(IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + materialDetailInfo.setWareHousingTime(LocalDateTime.now()); + materialDetailInfo.setRfid(prefix+rfid); + materialDetailInfo.setMaterialNo(generateMaterialNo(totalCount+i)); + list.add(materialDetailInfo); + } + }else{ + //不分配FRID + for(int i = 0;i < req.getWareHousingCount();i++){ + SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); + materialDetailInfo.setId(IdUtil.getSnowflake(0,0).nextId()); + materialDetailInfo.setMaterialClassifyId(materialInfo.getMaterialClassifyId()); + materialDetailInfo.setName(materialInfo.getMaterialName()+"(ID"+materialInfo.getId()+")"); + materialDetailInfo.setSmId(req.getSmId()); + materialDetailInfo.setConsumable(materialInfo.getConsumable()); + materialDetailInfo.setValidType(req.getValidType()); + if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode())){ + materialDetailInfo.setValidTime(req.getValidTime()); + } + materialDetailInfo.setValidStatus(ValidStatusEnum.YES.getCode()); + materialDetailInfo.setIrStatus(IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + materialDetailInfo.setWareHousingTime(LocalDateTime.now()); + materialDetailInfo.setMaterialNo(generateMaterialNo(totalCount+i)); + list.add(materialDetailInfo); + } + } + + //批量入库 + safeMaterialDetailInfoService.saveBatch(list); + + //发送消息 + 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); + } + } + return new ResultVO<>(ResultCodes.OK); + } + + /** + * 批量入库 + * @param req + * @return + */ + @Override + public ResultVO saveBatch(SafeMaterialDetailAddReq req) { + //判断物资是否存在 + SafeMaterialInfo materialInfo = safeMaterialInfoService.queryById(req.getSmId()); + if(null == materialInfo){ + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"该种物资不存在!"); + } + if(null == ValidTypeEnum.getByCode(req.getValidType())){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"有效期类型不合法!"); + } + if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null == req.getValidTime()){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"有效期时间不可为空!"); + } + //获取数据量 + Integer totalCount = safeMaterialDetailInfoService.getTotalCount(); + List<SafeMaterialDetailInfo> list = new ArrayList<>(); + + for(int i = 0;i < req.getWareHousingCount();i++){ + SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); + materialDetailInfo.setId(IdUtil.getSnowflake(0,0).nextId()); + materialDetailInfo.setMaterialClassifyId(materialInfo.getMaterialClassifyId()); + materialDetailInfo.setName(materialInfo.getMaterialName()+"(ID"+materialInfo.getId()+")"); + materialDetailInfo.setSmId(req.getSmId()); + materialDetailInfo.setConsumable(materialInfo.getConsumable()); + materialDetailInfo.setValidType(req.getValidType()); + if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode())){ + materialDetailInfo.setValidTime(req.getValidTime()); + } + materialDetailInfo.setValidStatus(ValidStatusEnum.YES.getCode()); + materialDetailInfo.setIrStatus(IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + materialDetailInfo.setWareHousingTime(LocalDateTime.now()); + materialDetailInfo.setRfid(req.getRfid()); + materialDetailInfo.setMaterialNo(generateMaterialNo(totalCount+i)); + list.add(materialDetailInfo); + } + //批量入库 + 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); + } + } + return new ResultVO<>(ResultCodes.OK); + } + + /** + * 编辑 + * @param req + * @return + */ + @Transactional + @Override + public ResultVO update(SafeMaterialDetailReq req) { + //获取该条数据 + SafeMaterialDetailInfo vo = safeMaterialDetailInfoService.queryById(req.getId()); + if(null == vo){ + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST); + } + //有效类型不为空 + if(null != req.getValidType()){ + if(null == ValidTypeEnum.getByCode(req.getValidType())){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"有效期类型不合法!"); + }else{ + if(req.getValidType().equals(ValidTypeEnum.SHORT_TERM.getCode()) && null == req.getValidTime()){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL,"有效期时间不可为空!"); + } + } + } + //填充数据 + SafeMaterialDetailInfo safeMaterialDetailInfo = new SafeMaterialDetailInfo(); + safeMaterialDetailInfo.setId(req.getId()); + safeMaterialDetailInfo.setRfid(req.getRfid()); + safeMaterialDetailInfo.setSmId(req.getSmId()); + safeMaterialDetailInfo.setValidType(req.getValidType()); + safeMaterialDetailInfo.setValidTime(req.getValidTime()); + //修改 + 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); + } + return new ResultVO(ResultCodes.OK); + } + + /** + * 批量-重新入库 + * @param ids + * @return + */ + @Override + public ResultVO receiptBatch(Long[] ids) { + if (ids.length == 0) { + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + List<Long> idList = new ArrayList<>(); + Collections.addAll(idList,ids); + //验证 + List<SafeMaterialDetailInfo> list = safeMaterialDetailInfoService.getListByIds(idList); + List<SafeMaterialDetailInfo> selectList = list + .stream() + .filter(item -> item.getIrStatus().equals(IssueReceiptEnum.OUT_OF_LIBRARY.getCode())) + .collect(Collectors.toList()); + if(selectList.size() != ids.length){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"已入库物资不可重复入库!"); + } + //修改为入库状态 + safeMaterialDetailInfoService.updateReceiptStatusByIds(idList,IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + return new ResultVO(ResultCodes.OK); + } + + /** + * 逻辑删除 -批量删除 + * @param + * @return + */ + @Override + public ResultVO deleteBatch(Long[] ids) { + if (ids.length == 0) { + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + safeMaterialDetailInfoService.deleteBatch(ids); + 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()); + //获取有效数量 + Integer validStockCount = safeMaterialDetailInfoService.getValidStockCount(req.getSmId()); + if(req.getCount() > validStockCount){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"出库数量不可大于有效库存数量!"); + } + + SafeMaterialDetailBO detailBO = new SafeMaterialDetailBO(); + detailBO.setCount(req.getCount()); + detailBO.setClaimantName(userInfo.getUsername()); + detailBO.setClaimantId(req.getClaimantId()); + safeMaterialDetailInfoService.deliveryBatchRandom(detailBO); + return new ResultVO(ResultCodes.OK); + } + + @Override + public SearchResultVO<List<SafeMaterialDetailDto>> listByPage(PageQuery<SafeMatetrialDetailQuery> pageQuery) { + Page<SafeMaterialDetailInfo> page = new Page(pageQuery.getPageIndex(),pageQuery.getPageSize()); + List<SafeMaterialDetailInfoDO> safeMaterialDetailInfoDOS = safeMaterialDetailInfoService.listByPage(page, pageQuery.getSearchParams()); + List<SafeMaterialDetailDto> detailDtoList = new ArrayList<>(); + for(SafeMaterialDetailInfoDO materialDetailInfoDO : safeMaterialDetailInfoDOS){ + SafeMaterialDetailDto materialDetailDto = new SafeMaterialDetailDto(); + BeanUtils.copyProperties(materialDetailInfoDO,materialDetailDto); + materialDetailDto.setConsumableName(ConsumableEnum.getByCode(materialDetailInfoDO.getConsumable()).getValue()); + materialDetailDto.setValidStatusName(ValidStatusEnum.getByCode(materialDetailInfoDO.getValidStatus()).getValue()); + materialDetailDto.setValidTypeName(ValidTypeEnum.getByCode(materialDetailInfoDO.getValidType()).getValue()); + materialDetailDto.setIrStatusName(IssueReceiptEnum.getByCode(materialDetailInfoDO.getIrStatus()).getValue()); + + detailDtoList.add(materialDetailDto); + } + return new SearchResultVO<>(true, page.getCurrent(),page.getSize(), page.getPages(),page.getTotal(),detailDtoList,ResultCodes.OK); + } + + @Override + public ResultVO queryById(Long id) { + if(null == id){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + SafeMaterialDetailInfo materialDetailInfo = safeMaterialDetailInfoService.queryById(id); + SafeMaterialDetailDto detailDto = new SafeMaterialDetailDto(); + if(materialDetailInfo != null){ + SafeMaterialInfo materialInfo = safeMaterialInfoService.queryById(materialDetailInfo.getSmId()); + SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(materialDetailInfo.getMaterialClassifyId()); + 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()); + } + if(classifyInfo != null){ + detailDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); + } + + } + return new ResultVO(ResultCodes.OK,detailDto); + } + + /** + * 单条-出库 + * @param req + * @return + */ + @Override + public ResultVO singleDelivery(SafeMaterialDetailReq req) { + //获取该条数据 + SafeMaterialDetailInfo vo = safeMaterialDetailInfoService.queryById(req.getId()); + if(null == vo){ + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST); + } + if(vo.getValidStatus().equals(ValidStatusEnum.NO.getCode())){ + throw new EquipmentException(EquipmentResultCodes.MATERIAL_INVALID,"无效物资不可出库"); + } + if(vo.getIrStatus().equals(IssueReceiptEnum.OUT_OF_LIBRARY.getCode())){ + throw new EquipmentException(EquipmentResultCodes.MATERIAL_OUT_OF_LIBRARY); + } + //检查认领人 + UserInfoRPCRespDTO userInfo = getUserInfo(req.getClaimantId()); + SafeMaterialDetailInfo materialDetailInfo = new SafeMaterialDetailInfo(); + materialDetailInfo.setId(req.getId()); + materialDetailInfo.setIrStatus(IssueReceiptEnum.OUT_OF_LIBRARY.getCode()); + materialDetailInfo.setClaimantId(req.getClaimantId()); + materialDetailInfo.setClaimantName(userInfo.getUsername()); + materialDetailInfo.setDeliveryTime(LocalDateTime.now()); + //修改出入库状态为出库 + safeMaterialDetailInfoService.updateById(materialDetailInfo); + return new ResultVO<>(ResultCodes.OK); + } + + /** + * 单条-重新入库 + * @param id + * @return + */ + + @Override + public ResultVO singleReceipt(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); + } + if(vo.getIrStatus().equals(IssueReceiptEnum.IN_THE_LIBRARY.getCode())){ + throw new EquipmentException(EquipmentResultCodes.MATERIAL_IN_THE_LIBRARY); + } + //修改出入库状态为入库 + safeMaterialDetailInfoService.updateReceiptStatus(id,IssueReceiptEnum.IN_THE_LIBRARY.getCode()); + 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.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); + } + + + + /** + * 逻辑删除 -单条 + * @param + * @return + */ + 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); + + return new ResultVO<>(ResultCodes.OK); + } + + + + + + + private UserInfoRPCRespDTO getUserInfo(Long uid) { + UserInfoRPCRespDTO userInfo = new UserInfoRPCRespDTO(); + ResultVO<UserInfoRPCRespDTO> rpcResult = accountUserService.getUserInfoByUid(uid); + if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) { + if (rpcResult.getData() != null) { + userInfo = (UserInfoRPCRespDTO) rpcResult.getData(); + }else { + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"认领人员不存在!"); + } + } else { + throw new EquipmentException(ResultCodes.RPC_RESULT_NULL); + } + return userInfo; + } + + private String generateMaterialNo(int count){ + if(count < 0){ + return null; + } + String serialCode = null; + if(count >= 10000){ + serialCode = "" + (count+1); + }else if(count >=0){ + String countStr = String.valueOf(count+1); + serialCode = "10000".substring(0,(5 - countStr.length()))+countStr; + } + return serialCode; + } + private Date conversionTimeType(LocalDateTime localDateTime){ + ZoneId zoneId = ZoneId.systemDefault(); + ZonedDateTime zdt = localDateTime.atZone(zoneId); + Date date = Date.from(zdt.toInstant()); + return date; + } + +} diff --git a/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialServiceImpl.java b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialServiceImpl.java new file mode 100644 index 0000000..b2405da --- /dev/null +++ b/equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialServiceImpl.java @@ -0,0 +1,336 @@ +package com.gkhy.safePlatform.equipment.service.impl; + +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.enums.ResultCodes; +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.entity.*; +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.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.BaseMaterialDto; +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 com.gkhy.safePlatform.equipment.repository.SafeMaterialDetailInfoRepository; +import com.gkhy.safePlatform.equipment.service.SafeMaterialService; +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 org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.parameters.P; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@Service("SafeMaterialService") +public class SafeMaterialServiceImpl implements SafeMaterialService { + @Autowired + private SafeMaterialInfoService safeMaterialInfoService; + @DubboReference(check = false) + private AccountDepartmentService accountDepartmentService; + @Autowired + private SafeMaterialClassifyInfoService safeMaterialClassifyInfoService; + @Autowired + private SafeMaterialDetailInfoService safeMaterialDetailInfoService; + + @Override + public ResultVO save(SafeMaterialAddReq req) { + ResultVO resultVO = null; + //获取部门信息 + DepInfoRPCRespDTO depInfo = getDepInfoByDepId(req.getDepId()); + + if(null == ConsumableEnum.getByCode(req.getConsumable())){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"耗材类型不合法!"); + } + //获取物资类型 + SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(req.getMaterialClassifyId()); + if(null == classifyInfo){ + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"物资类型不存在!"); + } + //获取数量 + int safeMaterialTotalCount = safeMaterialInfoService.getTotalCount(); + SafeMaterialInfo safeMaterialInfo = new SafeMaterialInfo(); + BeanUtils.copyProperties(req,safeMaterialInfo); + safeMaterialInfo.setDepName(depInfo.getDepName()); + safeMaterialInfo.setSerialNum(this.generateSerialNum(safeMaterialTotalCount)); + //插入 + boolean flag = safeMaterialInfoService.save(safeMaterialInfo); + if(flag){ + resultVO = new ResultVO(ResultCodes.OK); + }else { + resultVO = new ResultVO(ResultCodes.SERVER_ADD_ERROR); + } + + return resultVO; + } + + @Override + public ResultVO update(SafeMaterialModReq req) { + ResultVO resultVO = null; + //获取部门信息 + DepInfoRPCRespDTO depInfo = getDepInfoByDepId(req.getDepId()); + + if(null == ConsumableEnum.getByCode(req.getConsumable())){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL,"耗材类型不合法!"); + } + //获取物资类型 + SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(req.getMaterialClassifyId()); + if(null == classifyInfo){ + throw new EquipmentException(EquipmentResultCodes.DATA_NOT_EXIST,"物资类型不存在!"); + } + SafeMaterialInfo safeMaterialInfo = new SafeMaterialInfo(); + BeanUtils.copyProperties(req,safeMaterialInfo); + safeMaterialInfo.setDepName(depInfo.getDepName()); + //跟新 + boolean flag = safeMaterialInfoService.updateById(safeMaterialInfo); + if(flag){ + resultVO = new ResultVO(ResultCodes.OK); + }else { + resultVO = new ResultVO(ResultCodes.SERVER_UPDATE_ERROR); + } + + return resultVO; + } + + @Override + public ResultVO queryById(Long id) { + if(null == id){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + SafeMaterialInfo safeMaterialInfo = safeMaterialInfoService.queryById(id); + SafeMaterialDto safeMaterialDto = new SafeMaterialDto(); + if(null != safeMaterialInfo){ + SafeMaterialClassifyInfo classifyInfo = safeMaterialClassifyInfoService.queryById(safeMaterialInfo.getMaterialClassifyId()); + Integer validStockCount = safeMaterialDetailInfoService.getValidStockCount(safeMaterialInfo.getId()); + BeanUtils.copyProperties(safeMaterialInfo,safeMaterialDto); + safeMaterialDto.setConsumable(ConsumableEnum.getByCode(safeMaterialInfo.getConsumable()).getCode()); + if(null != classifyInfo){ + safeMaterialDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); + } + safeMaterialDto.setValidStockCount(validStockCount); + + } + return new ResultVO(ResultCodes.OK,safeMaterialDto); + } + + public ResultVO delete(Long id) { + ResultVO resultVO = null; + //删除之前检查详表中是否还有该物物资数据 + int count = safeMaterialDetailInfoService.getCountBySmId(id); + if(count > 0){ + throw new EquipmentException(EquipmentResultCodes.DATA_HAS_BEEN_BOND,"该种物资已被绑定物资详情数据,不可删除!"); + } + SafeMaterialInfo materialInfo = new SafeMaterialInfo(); + materialInfo.setId(id); + materialInfo.setDelFlag(1); + boolean flag = safeMaterialInfoService.updateById(materialInfo); + if(flag){ + resultVO = new ResultVO(ResultCodes.OK); + }else{ + resultVO = new ResultVO(ResultCodes.SERVER_DEL_ERROR); + } + return resultVO; + } + + @Override + public ResultVO deleteBatch(Long[] ids) { + if(ids.length == 0){ + throw new EquipmentException(ResultCodes.CLIENT_PARAM_NULL); + } + List<Long> idList = Arrays.asList(ids); + int count = safeMaterialDetailInfoService.getCountBySmIds(idList); + //判断是否绑定具体安全物资数据 + if(count > 0){ + throw new EquipmentException(EquipmentResultCodes.DATA_HAS_BEEN_BOND,"物资已被绑定物资详情数据,不可删除!"); + } + safeMaterialInfoService.deleteBatch(idList); + return new ResultVO(ResultCodes.OK); + } + + /** + * 获取列表 + * @return + */ + @Override + public ResultVO list() { + //获取所有数据 + List<SafeMaterialInfo> materialInfoList = safeMaterialInfoService.list(); + //获取所有部门 + List<DepRPCRespDTO> depInfoList = getDepInfoList(); + //获取所有物资类型 + List<SafeMaterialClassifyInfo> classifyInfoList = safeMaterialClassifyInfoService.getList(); + //循环物资分类 + List<MaterialClassificationDto> classificationDtoList = new ArrayList<>(); + for (SafeMaterialClassifyInfo classifyInfo:classifyInfoList){ + MaterialClassificationDto classificationDto = new MaterialClassificationDto(); + classificationDto.setMaterialClassifyId(classifyInfo.getId()); + classificationDto.setMaterialClassifyName(classifyInfo.getMaterialClassifyName()); + //循环部门 + List<MaterialDepartmentDto> departmentDtoList = new ArrayList<>(); + for (DepRPCRespDTO dep:depInfoList){ + //过滤出物资数据 + List<SafeMaterialInfo> selectMaterialList = materialInfoList + .stream() + .filter(item -> classifyInfo.getId().equals(item.getMaterialClassifyId()) && dep.getDepId().equals(item.getDepId())) + .collect(Collectors.toList()); + if(selectMaterialList.size()>0){ + //填充部门数据 + MaterialDepartmentDto departmentDto = new MaterialDepartmentDto(); + departmentDto.setDepId(dep.getDepId()); + departmentDto.setDepName(dep.getDepName()); + + List<BaseMaterialDto> baseMaterialDtoList = new ArrayList<>(); + //循环物资 + for (SafeMaterialInfo materialInfo:selectMaterialList){ + //填充基础物资数据 + BaseMaterialDto baseMaterialDto = new BaseMaterialDto(); + baseMaterialDto.setMaterialName(materialInfo.getMaterialName()); + baseMaterialDto.setSmId(materialInfo.getId()); + baseMaterialDtoList.add(baseMaterialDto); + } + departmentDto.setBaseMaterialList(baseMaterialDtoList); + departmentDtoList.add(departmentDto); + } + //子集部门 + if(!CollectionUtils.isEmpty(dep.getChildren())){ + this.recursiveDep(dep.getChildren(),departmentDtoList,materialInfoList,classifyInfo.getId()); + } + } + classificationDto.setDepartmentList(departmentDtoList); + classificationDtoList.add(classificationDto); + } + + return new ResultVO(ResultCodes.OK,classificationDtoList); + } + private void recursiveDep(List<DepRPCRespDTO> depList,List<MaterialDepartmentDto> departmentDtoList,List<SafeMaterialInfo> materialInfoList,Long classifyId){ + for(DepRPCRespDTO dep:depList){ + //过滤出物资数据 + List<SafeMaterialInfo> selectMaterialList = materialInfoList + .stream() + .filter(item -> classifyId.equals(item.getMaterialClassifyId()) && dep.getDepId().equals(item.getDepId())) + .collect(Collectors.toList()); + if(selectMaterialList.size()>0){ + //填充部门数据 + MaterialDepartmentDto departmentDto = new MaterialDepartmentDto(); + departmentDto.setDepId(dep.getDepId()); + departmentDto.setDepName(dep.getDepName()); + + List<BaseMaterialDto> baseMaterialDtoList = new ArrayList<>(); + //循环物资 + for (SafeMaterialInfo materialInfo:selectMaterialList){ + //填充基础物资数据 + BaseMaterialDto baseMaterialDto = new BaseMaterialDto(); + baseMaterialDto.setMaterialName(materialInfo.getMaterialName()); + baseMaterialDto.setSmId(materialInfo.getId()); + baseMaterialDtoList.add(baseMaterialDto); + } + departmentDto.setBaseMaterialList(baseMaterialDtoList); + departmentDtoList.add(departmentDto); + } + //子集 + if(!CollectionUtils.isEmpty(dep.getChildren())){ + this.recursiveDep(dep.getChildren(),departmentDtoList,materialInfoList,classifyId); + } + } + } + @Override + public SearchResultVO<List<SafeMaterialDto>> listByPage(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); + } + 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); + } + materialDtoList.add(materialDto); + } + return new SearchResultVO<>( + true, + page.getCurrent(), + page.getSize(), + page.getPages(), + page.getTotal(), + materialDtoList,ResultCodes.OK); + + + } + private DepInfoRPCRespDTO getDepInfoByDepId(Long deptId) { + DepInfoRPCRespDTO dep = new DepInfoRPCRespDTO(); + ResultVO<DepInfoRPCRespDTO> rpcResult = accountDepartmentService.getDepInfoByDepId(deptId); + if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) { + if (rpcResult.getData() != null) { + dep = (DepInfoRPCRespDTO) rpcResult.getData(); + }else { + throw new EquipmentException(ResultCodes.CLIENT_DEP_NOT_EXIST); + } + } else { + throw new EquipmentException(ResultCodes.RPC_RESULT_NULL); + } + return dep; + } + private List<DepRPCRespDTO> getDepInfoList() { + List<DepRPCRespDTO> depInfoList = new ArrayList<>(); + ResultVO<List<DepRPCRespDTO>> rpcResult = accountDepartmentService.depList(); + if (rpcResult != null && rpcResult.getCode().equals(ResultCodes.OK.getCode())) { + if (rpcResult.getData() != null) { + depInfoList = (List<DepRPCRespDTO>) rpcResult.getData(); + }else{ + throw new EquipmentException(ResultCodes.CLIENT_DEP_NOT_EXIST); + } + } else { + throw new EquipmentException(ResultCodes.CLIENT_DEP_NOT_EXIST); + } + return depInfoList; + } + + private String generateSerialNum(int count){ + if(count < 0){ + return null; + } + String code = null; + String prefix = "ID-"; + String serialCode = null; + if(count >= 10000){ + serialCode = "" + (count+1); + }else if(count >=0){ + String countStr = String.valueOf(count+1); + serialCode = "00000".substring(0,(5 - countStr.length()))+countStr; + } + if(serialCode != null && !serialCode.isEmpty()){ + code = prefix+serialCode; + } + return code; + } +} diff --git a/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialClassifyInfoMapper.xml b/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialClassifyInfoMapper.xml new file mode 100644 index 0000000..e76027d --- /dev/null +++ b/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialClassifyInfoMapper.xml @@ -0,0 +1,43 @@ +<?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.SafeMaterialClassifyInfoRepository"> + + <resultMap type="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyDO" id="materialClassifyResult"> + <id column="id" property="id" jdbcType="BIGINT"/> + <result column="material_classify_name" property="materialClassifyName"/> + </resultMap> + <!--新增--> + <insert id="save" parameterType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> + insert into safe_material_classify (id,material_classify_name,del_flag,create_time,create_uid,create_uname,update_time,update_uid,update_uname) values (#{id},#{materialClassifyName},#{delFlag},#{createTime},#{createUid},#{createUname},#{updateTime},#{updateUid},#{updateUname}) + </insert> + <!--更新--> + <update id="update" parameterType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> + update safe_material_classify + <trim prefix="SET" suffixOverrides=","> + <if test="materialClassifyName != null and materialClassifyName != ''"> + material_classify_name = #{materialClassifyName} + </if> + </trim> + where id = #{id} + </update> + <!--逻辑删除--> + <update id="delete"> + update safe_material_classify set del_fag = 1 where id = #{id} + </update> + <!--查询单条数据--> + <select id="queryById" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialClassifyInfo"> + select id,material_classify_name,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, + material_classify_name + from safe_material_classify + where del_flag = 0 + <if test="mateialClassifyName != null and materialClassifyName != ''"> + and instr(material_classify_name,#{materialClassifyName}) > 0 + </if> + </select> + +</mapper> diff --git a/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialDetailInfoMapper.xml b/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialDetailInfoMapper.xml new file mode 100644 index 0000000..b79af4a --- /dev/null +++ b/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialDetailInfoMapper.xml @@ -0,0 +1,190 @@ +<?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.SafeMaterialDetailInfoRepository"> + + <resultMap type="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfo" id="materialDetailResult"> + <id column="id" property="id" jdbcType="BIGINT"/> + <result column="name" property="name" jdbcType="VARCHAR"/> + <result column="material_no" property="materialNo" jdbcType="VARCHAR"/> + <result column="material_classify_id" property="materialClassifyId" jdbcType="BIGINT"/> + <result column="rfid" property="rfid" jdbcType="VARCHAR"/> + <result column="consumable" property="consumable" jdbcType="TINYINT"/> + <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="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="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="getTotalCount" resultType="java.lang.Integer"> + select count(1) from safe_material_detail + </select> + <select id="queryById" resultMap="materialDetailResult"> + select id, + name, + material_no, + material_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 + 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 + where id = #{id} + </update> + <select id="getListByIds" resultMap="materialDetailResult"> + select id,name,material_no,material_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 + from safe_material_detail + where del_flag = 0 + and id in + <foreach collection="ids" item="id" separator="," open="(" close=")"> + #{id} + </foreach> + </select> + <update id="updateReceiptStatusByIds" > + update safe_material_detail + set ir_status = #{irStatus}, + ware_housing_time = #{wareHousingTime}, + claimant_id = null, + claimant_name = null where id in + <foreach collection="ids" item="id" separator="," open="(" close=")"> + #{id} + </foreach> + </update> + <select id="getCountGroupBySmId" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailCountDO"> + select smId,count(*) + from safe_material_detail + where del_flag = 0 + and ir_status = #{irStatus} + and id in + <foreach collection="ids" item="id" separator="," open="(" close=")"> + #{id} + </foreach> + group by smId + </select> + <select id="getStatisticsValidStock" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailCountDO"> + select count(1) as count, + sm_id + from safe_material_detail + where del_flag = 0 + and valid_status = #{validStatus} + and ir_status = #{irStatus} + and sm_id in + <foreach collection="smIds" item="smId" open="(" close=")" separator=","> + #{smId} + </foreach> + GROUP BY + sm_id + </select> + <!--批量删除--> + <update id="deleteBatch"> + update safe_material_detail set del_flag = 1 where id in + <foreach collection="ids" item="id" open="(" close=")" separator=","> + #{id} + </foreach> + </update> + <!--批量出库-根据ids--> + <update id="updateDeliveryStatusByIds" > + 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> + <!--批量出库-随机--> + <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 + (select t.id from (select id from safe_material_detail where ir_status = 0 and valid_status = 0 and del_flag = 0 ORDER BY ware_housing_time asc LIMIT #{detailBO.count}) t + ) + </update> + + <select id="getValidStockCount" resultType="java.lang.Integer"> + select count(1) + from safe_material_detail + where del_flag = 0 + and valid_status = #{validStatus} + and ir_status = #{irStatus} + and sm_id = #{smId} + </select> + <select id="listByCondition" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDetailInfoDO"> + select sd.id, + sd.name, + sd.material_no, + sd.material_classify_id, + sd.rfid, + sd.consumable, + sd.valid_type, + sd.valid_time, + sd.valid_status, + sd.ir_status, + sd.ware_housing_time, + sd.claimant_name, + sd.delivery_time, + sm.dep_id, + sm.dep_name, + sc.material_classify_name + from safe_material_detail sd + INNER JOIN safe_material_classify sc on sd.material_classify_id = sc.id + INNER JOIN safe_material sm on sd.sm_id = sm.id + where sd.del_flag = 0 + <if test="query.rfid != null and query.rfid != '' "> + and sd.rfid = #{query.rfid} + </if> + <if test="query.irStatus != null and query.irStatus != '' or query.irStatus == 0"> + and sd.ir_status = #{query.irStatus} + </if> + ORDER BY sd.create_time desc + </select> + + <!--根据smId统计数量--> + <select id="getCountBySmId" resultType="java.lang.Integer"> + select count(1) from safe_material_detail where del_flag = 0 and sm_id = #{smId} + </select> + <!--根据smIds统计数量--> + <select id="getCountBySmIds" resultType="java.lang.Integer"> + select count(1) from safe_material_detail where del_flag = 0 and sm_id in + <foreach collection="smIds" item="smId" open="(" close=")" separator=","> + #{smId} + </foreach> + </select> + + <update id="updateValidStatus" > + update safe_material_detail set valid_status = #{validStatus} where id = #{id} + </update> +</mapper> diff --git a/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialInfoMapper.xml b/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialInfoMapper.xml new file mode 100644 index 0000000..cd3cfd2 --- /dev/null +++ b/equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialInfoMapper.xml @@ -0,0 +1,65 @@ +<?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.SafeMaterialInfoRepository"> + + <resultMap type="com.gkhy.safePlatform.equipment.entity.SafeMaterialInfo" id="materialResult"> + <id column="id" property="id" jdbcType="BIGINT"/> + <result column="serial_num" property="serialNum" jdbcType="VARCHAR"/> + <result column="material_classify_id" property="materialClassifyId" jdbcType="BIGINT"/> + <result column="dep_id" property="depId" jdbcType="BIGINT"/> + <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="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="queryById" resultMap="materialResult"> + select id,serial_num,material_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> + <!--查询所有数量--> + <select id="getTotalCount" resultType="java.lang.Integer"> + select count(1) from safe_material; + </select> + <!--根据类型统计数量--> + <select id="getCountByClassify" resultType="java.lang.Integer"> + select count(1) from safe_material where del_flag = 0 and material_classify_id = #{classifyId} + </select> + <update id="deleteBatch"> + update safe_material set del_flag = 1 where id in + <foreach collection="ids" item="id" separator="," open="(" close=")" > + #{id} + </foreach> + </update> + <!--条件查询--> + <select id="listByConditions" resultType="com.gkhy.safePlatform.equipment.entity.SafeMaterialDO"> + select m.id, + m.serial_num, + m.material_classify_id, + m.dep_id, + m.dep_name, + m.material_name, + m.consumable, + c.material_classify_name + from safe_material m + inner join safe_material_classify c + on m.material_classify_id = c.id + where m.del_flag = 0 + <if test="query.materialName != null and query.materialName != '' "> + and instr(m.material_name,#{query.materialName})>0 + </if> + <if test="query.materialClassifyId != null"> + and m.material_classify_id = #{query.materialClassifyId} + </if> + order by m.create_time desc + </select> + + +</mapper> diff --git a/pom.xml b/pom.xml index 5dd6e01..c7db91e 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,7 @@ <jta.starter.version>2.7.1</jta.starter.version> <commons.utils.version>1.9.4</commons.utils.version> <redission.version>3.17.4</redission.version> + <rocketmq.starter.version>2.2.2</rocketmq.starter.version> </properties> <dependencyManagement> @@ -144,6 +145,18 @@ <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>${redission.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.rocketmq</groupId> + <artifactId>rocketmq-spring-boot</artifactId> + <version>${rocketmq.starter.version}</version> + </dependency> + + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + <version>5.8.5</version> </dependency> </dependencies> @@ -264,6 +277,19 @@ <artifactId>account-rpc-api</artifactId> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-validation</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.rocketmq</groupId> + <artifactId>rocketmq-spring-boot</artifactId> + </dependency> + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + </dependency> </dependencies> <build> diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEquipment.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEquipment.java index 0237202..c58fb65 100644 --- a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEquipment.java +++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEquipment.java @@ -2,8 +2,10 @@ import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; +import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; +import com.gkhy.safePlatform.equipment.handler.MyMetaObjectHandler; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionTemplate; @@ -63,6 +65,11 @@ //设置分页插件 Interceptor[] plugins = {mybatisPlusInterceptor}; factoryBean.setPlugins(plugins); + + GlobalConfig globalConfig = new GlobalConfig(); + globalConfig.setMetaObjectHandler(new MyMetaObjectHandler()); + factoryBean.setGlobalConfig(globalConfig); + return factoryBean.getObject(); } diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/exception/GlobalExceptionHandler.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/exception/GlobalExceptionHandler.java index 56d1879..cce9141 100644 --- a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/exception/GlobalExceptionHandler.java +++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/exception/GlobalExceptionHandler.java @@ -6,12 +6,14 @@ import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; +import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.incidentManage.exception.AccidentException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.AuthenticationException; import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @@ -38,6 +40,15 @@ @ResponseBody @ExceptionHandler(value = EmergencyException.class) public ResultVO AHandler(EmergencyException e) { + logger.warn(e.getMessage()); + return new ResultVO(e.getCode(),e.getMessage()); + } + /** + * 设备自定义异常 + */ + @ResponseBody + @ExceptionHandler(value = EquipmentException.class) + public ResultVO AHandler(EquipmentException e) { logger.warn(e.getMessage()); return new ResultVO(e.getCode(),e.getMessage()); } @@ -115,4 +126,15 @@ return resultVO; // return new ResultVO(ResultCodes.SERVER_ERROR); } + /** + * 处理入参异常 + * @param e + * @return + */ + @ResponseBody + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResultVO handleMethodArgumentNotValidException(MethodArgumentNotValidException e){ + logger.warn(e.getBindingResult().getFieldError().getDefaultMessage()); + return new ResultVO(ResultCodes.SERVER_PARAM_NULL.getCode(),e.getBindingResult().getFieldError().getDefaultMessage()); + } } diff --git a/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml b/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml index 1f344b6..5e825ae 100644 --- a/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml +++ b/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml @@ -74,6 +74,10 @@ mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + global-config: + db-config: + logic-delete-value: 1 + logic-not-delete-value: 0 dubbo: registry: @@ -112,8 +116,11 @@ sendMessageTimeout: 300000 consumer: group: gkhy-safeplatform-out-dev + safeMaterialGroup: gkhy-safeplatform-out-safeMaterialConsumer topic: demoTopic: gkhy-safeplatform-topic-demo + safeMaterialTopic: gkhy-safeplatform-out-safeMaterialTopic + minio: endPoint: 192.168.0.52 -- Gitblit v1.9.2