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