zhangfeng
2022-11-08 f241a39f07acc5d5ede28b4152d74cbb84e4885b
安全物资和设备管理
已修改6个文件
已添加55个文件
4728 ■■■■■ 文件已修改
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/common/RocketMQTemplateHelper.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/MaterialClassifyController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/SafeMaterialDetailController.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyDO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialClassifyInfo.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialCountDO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDO.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailBO.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailCountDO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfo.java 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialDetailInfoDO.java 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/entity/SafeMaterialInfo.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ConsumableEnum.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/EquipmentResultCodes.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/IssueReceiptEnum.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidStatusEnum.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/enums/ValidTypeEnum.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/excepiton/EquipmentException.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/handler/MyMetaObjectHandler.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialDeliveryReq.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/MterialRandomDeliveryReq.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialAddReq.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyAddReq.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyModReq.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialClassifyQuery.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailAddReq.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialDetailReq.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialModReq.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMaterialQuery.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/req/SafeMatetrialDetailQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/BaseMaterialDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialClassificationDto.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/MaterialDepartmentDto.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialClassifyDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDetailDto.java 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/model/dto/resp/SafeMaterialDto.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/consumer/SafeMaterialConsumer.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/mq/msg/SafeMaterialMsg.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialClassifyInfoRepository.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialDetailInfoRepository.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/repository/SafeMaterialInfoRepository.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/MaterialClassifyService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialDetailService.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/SafeMaterialService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialClassifyInfoService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialDetailInfoService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/SafeMaterialInfoService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialClassifyInfoServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialDetailInfoServiceImpl.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/baseService/impl/SafeMaterialInfoServiceImpl.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/MaterialClassifyServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialDetailServiceImpl.java 541 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/service/impl/SafeMaterialServiceImpl.java 336 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialClassifyInfoMapper.xml 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialDetailInfoMapper.xml 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
equipment/equipment-service/src/main/resources/config/mapper/equipment/SafeMaterialInfoMapper.xml 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEquipment.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/exception/GlobalExceptionHandler.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
safePlatfrom-out-web/src/main/resources/config/application-dev.yaml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
            }
        }
    }
}
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);
    }
}
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);
    }
}
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);
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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);
    }
}
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;
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);
    }
}
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);
    }
}
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);
    }
}
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;
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());
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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;
    }
}
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);
        }
    }
}
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;
    }
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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();
}
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);
}
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);
}
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;
    }
}
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());
    }
}
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;
    }
}
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);
    }
}
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;
    }
}
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;
    }
}
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>
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>
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>
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>
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();
    }
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());
    }
}
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