瀏覽代碼

Merge remote-tracking branch 'origin/demo_' into demo_

hfxc226 2 年之前
父節點
當前提交
2b55aeea0c
共有 41 個文件被更改,包括 1739 次插入41 次删除
  1. 6 0
      platform-dao/src/main/java/com/platform/dao/dto/fill/FillGatherDTO.java
  2. 114 0
      platform-dao/src/main/java/com/platform/dao/dto/fill/FillGatherTaskDTO.java
  3. 90 0
      platform-dao/src/main/java/com/platform/dao/dto/fill/FillGatherTaskDetailDTO.java
  4. 2 0
      platform-dao/src/main/java/com/platform/dao/dto/fill/FillInfoDTO.java
  5. 5 0
      platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartUsedDTO.java
  6. 103 0
      platform-dao/src/main/java/com/platform/dao/entity/fill/FillGatherTask.java
  7. 79 0
      platform-dao/src/main/java/com/platform/dao/entity/fill/FillGatherTaskDetail.java
  8. 7 2
      platform-dao/src/main/java/com/platform/dao/entity/fill/FillInfo.java
  9. 7 0
      platform-dao/src/main/java/com/platform/dao/entity/sb/SbModelSpareBom.java
  10. 7 5
      platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartUsed.java
  11. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/fill/FillGatherTaskDetailMapper.java
  12. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/fill/FillGatherTaskMapper.java
  13. 2 0
      platform-dao/src/main/java/com/platform/dao/mapper/sb/SbModelSpareBomMapper.java
  14. 6 0
      platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SparePartUsedMapper.java
  15. 88 0
      platform-dao/src/main/java/com/platform/dao/vo/export/fill/ExportFillGatherTaskDetailVO.java
  16. 124 0
      platform-dao/src/main/java/com/platform/dao/vo/export/fill/ExportFillGatherTaskVO.java
  17. 72 0
      platform-dao/src/main/java/com/platform/dao/vo/query/fill/FillGatherTaskDetailVO.java
  18. 96 0
      platform-dao/src/main/java/com/platform/dao/vo/query/fill/FillGatherTaskVO.java
  19. 1 0
      platform-dao/src/main/java/com/platform/dao/vo/query/fill/FillInfoVO.java
  20. 14 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/LongYanSpareVO.java
  21. 81 0
      platform-dao/src/main/resources/mapper/fill/FillGatherTaskDetailMapper.xml
  22. 111 0
      platform-dao/src/main/resources/mapper/fill/FillGatherTaskMapper.xml
  23. 14 0
      platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml
  24. 13 2
      platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartUsedMapper.xml
  25. 141 0
      platform-rest/src/main/java/com/platform/rest/controller/fill/FillGatherTaskController.java
  26. 141 0
      platform-rest/src/main/java/com/platform/rest/controller/fill/FillGatherTaskDetailController.java
  27. 25 0
      platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartUsedController.java
  28. 9 0
      platform-rest/src/main/java/com/platform/rest/controller/store/SpareStoreController.java
  29. 35 0
      platform-service/src/main/java/com/platform/service/fill/FillGatherTaskDetailService.java
  30. 35 0
      platform-service/src/main/java/com/platform/service/fill/FillGatherTaskService.java
  31. 47 8
      platform-service/src/main/java/com/platform/service/fill/impl/FillGatherServiceImpl.java
  32. 50 0
      platform-service/src/main/java/com/platform/service/fill/impl/FillGatherTaskDetailServiceImpl.java
  33. 50 0
      platform-service/src/main/java/com/platform/service/fill/impl/FillGatherTaskServiceImpl.java
  34. 3 4
      platform-service/src/main/java/com/platform/service/fill/impl/FillInfoServiceImpl.java
  35. 1 1
      platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java
  36. 3 0
      platform-service/src/main/java/com/platform/service/sb/SbModelSpareBomService.java
  37. 6 0
      platform-service/src/main/java/com/platform/service/sb/impl/SbModelSpareBomServiceImpl.java
  38. 9 0
      platform-service/src/main/java/com/platform/service/sqarepartmanage/SparePartUsedService.java
  39. 59 2
      platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartUsedServiceImpl.java
  40. 12 0
      platform-service/src/main/java/com/platform/service/store/SpareStoreService.java
  41. 19 17
      platform-service/src/main/java/com/platform/service/store/impl/SpareStoreServiceImpl.java

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/dto/fill/FillGatherDTO.java

@@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * @Description 填报项目DTO
@@ -89,4 +90,9 @@ public class FillGatherDTO extends BaseDTO implements Serializable {
      */
     private String keyword;
 
+    /**
+     * 巡检内容项ID
+     */
+    private List<String> infoIds;
+
 }

+ 114 - 0
platform-dao/src/main/java/com/platform/dao/dto/fill/FillGatherTaskDTO.java

@@ -0,0 +1,114 @@
+package com.platform.dao.dto.fill;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 巡检任务表DTO
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class FillGatherTaskDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 巡检人
+     */
+    private String checker;
+    /**
+     * 巡检主管
+     */
+    private String checkLeader;
+    /**
+     * 巡检开始时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 巡检开始时间开始
+     */
+    private LocalDateTime createdTimeStart;
+    /**
+     * 巡检开始时间结束
+     */
+    private LocalDateTime createdTimeEnd;
+    /**
+     * 巡检结束时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 巡检结束时间开始
+     */
+    private LocalDateTime updateTimeStart;
+    /**
+     * 巡检结束时间结束
+     */
+    private LocalDateTime updateTimeEnd;
+    /**
+     * 任务创建人ID
+     */
+    private String createdUserId;
+    /**
+     * 任务创建人
+     */
+    private String createdUserName;
+    /**
+     * 巡检结束人ID
+     */
+    private String updateUserId;
+    /**
+     * 巡检结束人
+     */
+    private String updateUserName;
+    /**
+     * 待完成数量
+     */
+    private Integer waitNum;
+    /**
+     * 巡检总数量
+     */
+    private Integer totalNum;
+    /**
+     * 0 待接单 1 巡检中 2 完成  3 延迟  4 暂停
+     */
+    private Integer status;
+    /**
+     * 要求时间
+     */
+    private Integer requireHour;
+    /**
+     * 超时预警时间
+     */
+    private Integer warningHour;
+    /**
+     * 累计延时时间
+     */
+    private Integer lateHistoryHours;
+    /**
+     * 变更记录
+     */
+    private String recordJson;
+    /**
+     * 任务名称
+     */
+    private String name;
+    /**
+     * 关键字
+     */
+    private String keyword;
+
+}

+ 90 - 0
platform-dao/src/main/java/com/platform/dao/dto/fill/FillGatherTaskDetailDTO.java

@@ -0,0 +1,90 @@
+package com.platform.dao.dto.fill;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 巡检任务详情表DTO
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class FillGatherTaskDetailDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 巡检任务ID
+     */
+    private String taskId;
+    /**
+     * 设备ID
+     */
+    private String sbId;
+    /**
+     * 生成时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 生成时间开始
+     */
+    private LocalDateTime createdTimeStart;
+    /**
+     * 生成时间结束
+     */
+    private LocalDateTime createdTimeEnd;
+    /**
+     * 填报时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 填报时间开始
+     */
+    private LocalDateTime updateTimeStart;
+    /**
+     * 填报时间结束
+     */
+    private LocalDateTime updateTimeEnd;
+    /**
+     * 任务创建人ID
+     */
+    private String createdUserId;
+    /**
+     * 任务创建人
+     */
+    private String createdUserName;
+    /**
+     * 填报人ID
+     */
+    private String updateUserId;
+    /**
+     * 填报人
+     */
+    private String updateUserName;
+    /**
+     * 巡检填报内容集合
+     */
+    private String content;
+    /**
+     * 0 未填报 1 已填报
+     */
+    private Integer status;
+    /**
+     * 关键字
+     */
+    private String keyword;
+
+}

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/fill/FillInfoDTO.java

@@ -128,4 +128,6 @@ public class FillInfoDTO extends BaseDTO implements Serializable {
      */
     private List<String> hideIds;
 
+    private String selectValue;
+
 }

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartUsedDTO.java

@@ -152,4 +152,9 @@ public class SparePartUsedDTO extends BaseDTO implements Serializable {
 
     private List<String> typeIds;
 
+    /**
+     * 龙岩新增字段
+     */
+    private Integer sparePeriod; // 备件寿命
+
 }

+ 103 - 0
platform-dao/src/main/java/com/platform/dao/entity/fill/FillGatherTask.java

@@ -0,0 +1,103 @@
+package com.platform.dao.entity.fill;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+
+import javax.persistence.Transient;
+
+/**
+ * @Description 巡检任务表实体类
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_fill_gather_task")
+public class FillGatherTask implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Id
+    private String id;
+    /**
+     * 巡检人
+     */
+    private String checker;
+    /**
+     * 巡检主管
+     */
+    private String checkLeader;
+    /**
+     * 巡检开始时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 巡检结束时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 任务创建人ID
+     */
+    private String createdUserId;
+    /**
+     * 任务创建人
+     */
+    private String createdUserName;
+    /**
+     * 巡检结束人ID
+     */
+    private String updateUserId;
+    /**
+     * 巡检结束人
+     */
+    private String updateUserName;
+    /**
+     * 待完成数量
+     */
+    private Integer waitNum;
+    /**
+     * 巡检总数量
+     */
+    private Integer totalNum;
+    /**
+     * 0 待接单 1 巡检中 2 完成  3 延迟  4 暂停
+     */
+    private Integer status;
+    /**
+     * 要求时间
+     */
+    private Integer requireHour;
+    /**
+     * 超时预警时间
+     */
+    private Integer warningHour;
+    /**
+     * 累计延时时间
+     */
+    private Integer lateHistoryHours;
+    /**
+     * 变更记录
+     */
+    private String recordJson;
+    /**
+     * 任务名称
+     */
+    private String name;
+
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 79 - 0
platform-dao/src/main/java/com/platform/dao/entity/fill/FillGatherTaskDetail.java

@@ -0,0 +1,79 @@
+package com.platform.dao.entity.fill;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+
+import javax.persistence.Transient;
+
+/**
+ * @Description 巡检任务详情表实体类
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_fill_gather_task_detail")
+public class FillGatherTaskDetail implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Id
+    private String id;
+    /**
+     * 巡检任务ID
+     */
+    private String taskId;
+    /**
+     * 设备ID
+     */
+    private String sbId;
+    /**
+     * 生成时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 填报时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 任务创建人ID
+     */
+    private String createdUserId;
+    /**
+     * 任务创建人
+     */
+    private String createdUserName;
+    /**
+     * 填报人ID
+     */
+    private String updateUserId;
+    /**
+     * 填报人
+     */
+    private String updateUserName;
+    /**
+     * 巡检填报内容集合
+     */
+    private String content;
+    /**
+     * 0 未填报 1 已填报
+     */
+    private Integer status;
+
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 7 - 2
platform-dao/src/main/java/com/platform/dao/entity/fill/FillInfo.java

@@ -32,7 +32,7 @@ public class FillInfo implements Serializable {
     private String fieldKey;
 
     /**
-     * 名称
+     * 巡检填报项名称
      */
     private String name;
 
@@ -41,7 +41,7 @@ public class FillInfo implements Serializable {
      */
     private Integer useType;
     /**
-     * 类型:1.int值,2.decimal值,3.范围值,4.结果描述
+     * 类型:1.input,2.select,3.date
      */
     private Integer type;
 
@@ -98,6 +98,11 @@ public class FillInfo implements Serializable {
      */
     private LocalDateTime updateTime;
 
+    /**
+     * 范围值集合
+     */
+    private String selectValue;
+
     /**
      * 数据权限
      */

+ 7 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbModelSpareBom.java

@@ -103,4 +103,11 @@ public class SbModelSpareBom implements Serializable {
     @Transient
     private DataScope dataScope;
 
+    /**
+     * 龙岩新增字段
+     */
+    private String spareName; // 备件名称
+    private String ggxh;  // 规格型号
+    private Integer sparePeriod; // 备件寿命期限(天)
+
 }

+ 7 - 5
platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartUsed.java

@@ -129,15 +129,17 @@ public class SparePartUsed implements Serializable {
      */
     @Transient
     private String sbName;
-    /**
-     * 备件名称
-     */
-    @Transient
-    private String spareName;
     /**
      * 数据权限
      */
     @Transient
     private DataScope dataScope;
 
+    /**
+     * 龙岩新增字段
+     */
+    private String spareName;  // 备件名称
+    private String ggxh; // 规格型号
+    private Integer isSpecial; // 是否关联设备 1 是 0 否
+
 }

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/fill/FillGatherTaskDetailMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.fill;
+
+import com.platform.dao.dto.fill.FillGatherTaskDetailDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.fill.FillGatherTaskDetail;
+import com.platform.dao.vo.query.fill.FillGatherTaskDetailVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 巡检任务详情表 mapper
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface FillGatherTaskDetailMapper extends MyMapper<FillGatherTaskDetail> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<FillGatherTaskDetailVO> selectList(FillGatherTaskDetailDTO dto);
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/fill/FillGatherTaskMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.fill;
+
+import com.platform.dao.dto.fill.FillGatherTaskDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.fill.FillGatherTask;
+import com.platform.dao.vo.query.fill.FillGatherTaskVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 巡检任务表 mapper
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface FillGatherTaskMapper extends MyMapper<FillGatherTask> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<FillGatherTaskVO> selectList(FillGatherTaskDTO dto);
+
+}

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbModelSpareBomMapper.java

@@ -7,6 +7,7 @@ import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.entity.check.CheckProjectStandardRelation;
 import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.vo.query.check.CheckProjectStandardRelationVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import org.springframework.stereotype.Component;
 
@@ -35,4 +36,5 @@ public interface SbModelSpareBomMapper extends MyMapper<SbModelSpareBom> {
 
     void updateBatch(List<SbModelSpareBom> sbModelSpareBomList);
     void updateBatchAll(List<SbModelSpareBom> sbModelSpareBomList);
+    List<SparePartInfoVO> selectLongYanVOList(SbModelSpareBomDTO dto);
 }

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sqarepartmanage/SparePartUsedMapper.java

@@ -79,4 +79,10 @@ public interface SparePartUsedMapper extends MyMapper<SparePartUsed> {
      * @return
      */
     List<SparePartUsedVO> selectUpdateAlert(SparePartUsedDTO model);
+
+    /**
+     * 更改为历史记录和记录实际更换时间
+     * @param model
+     */
+    void updateRecordToOld(SparePartUsedDTO model);
 }

+ 88 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/fill/ExportFillGatherTaskDetailVO.java

@@ -0,0 +1,88 @@
+package com.platform.dao.vo.export.fill;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 巡检任务详情表导出VO
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportFillGatherTaskDetailVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Excel(name = "主键", orderNum = "1")
+    private String id;
+
+    /**
+     * 巡检任务ID
+     */
+    @Excel(name = "巡检任务ID", orderNum = "2")
+    private String taskId;
+
+    /**
+     * 设备ID
+     */
+    @Excel(name = "设备ID", orderNum = "3")
+    private String sbId;
+
+    /**
+     * 生成时间
+     */
+    @Excel(name = "生成时间", orderNum = "4")
+    private LocalDateTime createdTime;
+
+    /**
+     * 填报时间
+     */
+    @Excel(name = "填报时间", orderNum = "5")
+    private LocalDateTime updateTime;
+
+    /**
+     * 任务创建人ID
+     */
+    @Excel(name = "任务创建人ID", orderNum = "6")
+    private String createdUserId;
+
+    /**
+     * 任务创建人
+     */
+    @Excel(name = "任务创建人", orderNum = "7")
+    private String createdUserName;
+
+    /**
+     * 填报人ID
+     */
+    @Excel(name = "填报人ID", orderNum = "8")
+    private String updateUserId;
+
+    /**
+     * 填报人
+     */
+    @Excel(name = "填报人", orderNum = "9")
+    private String updateUserName;
+
+    /**
+     * 巡检填报内容集合
+     */
+    @Excel(name = "巡检填报内容集合", orderNum = "10")
+    private String content;
+
+    /**
+     * 0 未填报 1 已填报
+     */
+    @Excel(name = "0 未填报 1 已填报", orderNum = "11")
+    private Integer status;
+
+
+}

+ 124 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/fill/ExportFillGatherTaskVO.java

@@ -0,0 +1,124 @@
+package com.platform.dao.vo.export.fill;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 巡检任务表导出VO
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportFillGatherTaskVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Excel(name = "主键", orderNum = "1")
+    private String id;
+
+    /**
+     * 巡检人
+     */
+    @Excel(name = "巡检人", orderNum = "2")
+    private String checker;
+
+    /**
+     * 巡检主管
+     */
+    @Excel(name = "巡检主管", orderNum = "3")
+    private String checkLeader;
+
+    /**
+     * 巡检开始时间
+     */
+    @Excel(name = "巡检开始时间", orderNum = "4")
+    private LocalDateTime createdTime;
+
+    /**
+     * 巡检结束时间
+     */
+    @Excel(name = "巡检结束时间", orderNum = "5")
+    private LocalDateTime updateTime;
+
+    /**
+     * 任务创建人ID
+     */
+    @Excel(name = "任务创建人ID", orderNum = "6")
+    private String createdUserId;
+
+    /**
+     * 任务创建人
+     */
+    @Excel(name = "任务创建人", orderNum = "7")
+    private String createdUserName;
+
+    /**
+     * 巡检结束人ID
+     */
+    @Excel(name = "巡检结束人ID", orderNum = "8")
+    private String updateUserId;
+
+    /**
+     * 巡检结束人
+     */
+    @Excel(name = "巡检结束人", orderNum = "9")
+    private String updateUserName;
+
+    /**
+     * 待完成数量
+     */
+    @Excel(name = "待完成数量", orderNum = "10")
+    private Integer waitNum;
+
+    /**
+     * 巡检总数量
+     */
+    @Excel(name = "巡检总数量", orderNum = "11")
+    private Integer totalNum;
+
+    /**
+     * 0 待接单 1 巡检中 2 完成  3 延迟  4 暂停
+     */
+    @Excel(name = "0 待接单 1 巡检中 2 完成  3 延迟  4 暂停", orderNum = "12")
+    private Integer status;
+
+    /**
+     * 要求时间
+     */
+    @Excel(name = "要求时间", orderNum = "13")
+    private Integer requireHour;
+
+    /**
+     * 超时预警时间
+     */
+    @Excel(name = "超时预警时间", orderNum = "14")
+    private Integer warningHour;
+
+    /**
+     * 累计延时时间
+     */
+    @Excel(name = "累计延时时间", orderNum = "15")
+    private Integer lateHistoryHours;
+
+    /**
+     * 变更记录
+     */
+    @Excel(name = "变更记录", orderNum = "16")
+    private String recordJson;
+
+    /**
+     * 任务名称
+     */
+    @Excel(name = "任务名称", orderNum = "17")
+    private String name;
+
+
+}

+ 72 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/fill/FillGatherTaskDetailVO.java

@@ -0,0 +1,72 @@
+package com.platform.dao.vo.query.fill;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 巡检任务详情表VO结果类
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class FillGatherTaskDetailVO extends BaseVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 巡检任务ID
+     */
+    private String taskId;
+    /**
+     * 设备ID
+     */
+    private String sbId;
+    /**
+     * 生成时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 填报时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 任务创建人ID
+     */
+    private String createdUserId;
+    /**
+     * 任务创建人
+     */
+    private String createdUserName;
+    /**
+     * 填报人ID
+     */
+    private String updateUserId;
+    /**
+     * 填报人
+     */
+    private String updateUserName;
+    /**
+     * 巡检填报内容集合
+     */
+    private String content;
+    /**
+     * 0 未填报 1 已填报
+     */
+    private Integer status;
+
+
+}

+ 96 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/fill/FillGatherTaskVO.java

@@ -0,0 +1,96 @@
+package com.platform.dao.vo.query.fill;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 巡检任务表VO结果类
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class FillGatherTaskVO extends BaseVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 巡检人
+     */
+    private String checker;
+    /**
+     * 巡检主管
+     */
+    private String checkLeader;
+    /**
+     * 巡检开始时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 巡检结束时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 任务创建人ID
+     */
+    private String createdUserId;
+    /**
+     * 任务创建人
+     */
+    private String createdUserName;
+    /**
+     * 巡检结束人ID
+     */
+    private String updateUserId;
+    /**
+     * 巡检结束人
+     */
+    private String updateUserName;
+    /**
+     * 待完成数量
+     */
+    private Integer waitNum;
+    /**
+     * 巡检总数量
+     */
+    private Integer totalNum;
+    /**
+     * 0 待接单 1 巡检中 2 完成  3 延迟  4 暂停
+     */
+    private Integer status;
+    /**
+     * 要求时间
+     */
+    private Integer requireHour;
+    /**
+     * 超时预警时间
+     */
+    private Integer warningHour;
+    /**
+     * 累计延时时间
+     */
+    private Integer lateHistoryHours;
+    /**
+     * 变更记录
+     */
+    private String recordJson;
+    /**
+     * 任务名称
+     */
+    private String name;
+
+
+}

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/fill/FillInfoVO.java

@@ -94,5 +94,6 @@ public class FillInfoVO extends BaseVO implements Serializable {
      */
     private LocalDateTime updateTime;
 
+    private String selectValue;
 
 }

+ 14 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/store/LongYanSpareVO.java

@@ -0,0 +1,14 @@
+package com.platform.dao.vo.query.store;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class LongYanSpareVO implements Serializable {
+
+    private String spareId;    // 备件ID
+    private String spareName; // 备件名称
+    private String ggxh;  // 规格型号
+    private Integer sparePeriod; // 备件寿命(天)
+    private String remark; // 备注
+}

+ 81 - 0
platform-dao/src/main/resources/mapper/fill/FillGatherTaskDetailMapper.xml

@@ -0,0 +1,81 @@
+<?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.platform.dao.mapper.fill.FillGatherTaskDetailMapper">
+    <sql id="Base_Column_List">
+     fill.id,
+     fill.task_id,
+     fill.sb_id,
+     fill.created_time,
+     fill.update_time,
+     fill.created_user_id,
+     fill.created_user_name,
+     fill.update_user_id,
+     fill.update_user_name,
+     fill.content,
+     fill.status
+</sql>
+    <sql id="Ref_Column_List">
+                                                                         fill.task_id,
+                                     fill.sb_id,
+                                                                                                                                                                                                                                                                                                             fill.content,
+                                     fill.status
+                                </sql>
+    <sql id="List_Condition">
+        <if test="id != null and id != ''">
+            and fill.id = #{id}
+        </if>
+        <if test="taskId != null and taskId != ''">
+            and fill.task_id = #{taskId}
+        </if>
+        <if test="sbId != null and sbId != ''">
+            and fill.sb_id = #{sbId}
+        </if>
+        <if test="createdTimeStart != null">
+            and fill.created_time <![CDATA[>=]]>; #{createdTimeStart}
+        </if>
+        <if test="createdTimeEnd != null">
+            and fill.created_time <![CDATA[<=]]> #{createdTimeEnd}
+        </if>
+        <if test="createdTime != null">
+            and fill.created_time = #{createdTime}
+        </if>
+        <if test="updateTimeStart != null">
+            and fill.update_time <![CDATA[>=]]>; #{updateTimeStart}
+        </if>
+        <if test="updateTimeEnd != null">
+            and fill.update_time <![CDATA[<=]]> #{updateTimeEnd}
+        </if>
+        <if test="updateTime != null">
+            and fill.update_time = #{updateTime}
+        </if>
+        <if test="createdUserId != null and createdUserId != ''">
+            and fill.created_user_id = #{createdUserId}
+        </if>
+        <if test="createdUserName != null and createdUserName != ''">
+            and fill.created_user_name = #{createdUserName}
+        </if>
+        <if test="updateUserId != null and updateUserId != ''">
+            and fill.update_user_id = #{updateUserId}
+        </if>
+        <if test="updateUserName != null and updateUserName != ''">
+            and fill.update_user_name = #{updateUserName}
+        </if>
+        <if test="content != null">
+            and fill.content = #{content}
+        </if>
+        <if test="status != null">
+            and fill.status = #{status}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and fill.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.fill.FillGatherTaskDetailDTO"
+            resultType="com.platform.dao.vo.query.fill.FillGatherTaskDetailVO">
+        select fill.*
+        from t_fill_gather_task_detail as fill
+        <where>
+            <include refid="List_Condition"/>
+        </where>
+    </select>
+</mapper>

+ 111 - 0
platform-dao/src/main/resources/mapper/fill/FillGatherTaskMapper.xml

@@ -0,0 +1,111 @@
+<?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.platform.dao.mapper.fill.FillGatherTaskMapper">
+    <sql id="Base_Column_List">
+     fill.id,
+     fill.checker,
+     fill.check_leader,
+     fill.created_time,
+     fill.update_time,
+     fill.created_user_id,
+     fill.created_user_name,
+     fill.update_user_id,
+     fill.update_user_name,
+     fill.wait_num,
+     fill.total_num,
+     fill.status,
+     fill.require_hour,
+     fill.warning_hour,
+     fill.late_history_hours,
+     fill.record_json,
+     fill.name
+</sql>
+    <sql id="Ref_Column_List">
+                                                                         fill.checker,
+                                     fill.check_leader,
+                                                                                                                                                                                                                                                                                                             fill.wait_num,
+                                     fill.total_num,
+                                     fill.status,
+                                     fill.require_hour,
+                                     fill.warning_hour,
+                                     fill.late_history_hours,
+                                     fill.record_json,
+                                     fill.name
+                                </sql>
+    <sql id="List_Condition">
+        <if test="id != null and id != ''">
+            and fill.id = #{id}
+        </if>
+        <if test="checker != null and checker != ''">
+            and fill.checker = #{checker}
+        </if>
+        <if test="checkLeader != null and checkLeader != ''">
+            and fill.check_leader = #{checkLeader}
+        </if>
+        <if test="createdTimeStart != null">
+            and fill.created_time <![CDATA[>=]]>; #{createdTimeStart}
+        </if>
+        <if test="createdTimeEnd != null">
+            and fill.created_time <![CDATA[<=]]> #{createdTimeEnd}
+        </if>
+        <if test="createdTime != null">
+            and fill.created_time = #{createdTime}
+        </if>
+        <if test="updateTimeStart != null">
+            and fill.update_time <![CDATA[>=]]>; #{updateTimeStart}
+        </if>
+        <if test="updateTimeEnd != null">
+            and fill.update_time <![CDATA[<=]]> #{updateTimeEnd}
+        </if>
+        <if test="updateTime != null">
+            and fill.update_time = #{updateTime}
+        </if>
+        <if test="createdUserId != null and createdUserId != ''">
+            and fill.created_user_id = #{createdUserId}
+        </if>
+        <if test="createdUserName != null and createdUserName != ''">
+            and fill.created_user_name = #{createdUserName}
+        </if>
+        <if test="updateUserId != null and updateUserId != ''">
+            and fill.update_user_id = #{updateUserId}
+        </if>
+        <if test="updateUserName != null and updateUserName != ''">
+            and fill.update_user_name = #{updateUserName}
+        </if>
+        <if test="waitNum != null">
+            and fill.wait_num = #{waitNum}
+        </if>
+        <if test="totalNum != null">
+            and fill.total_num = #{totalNum}
+        </if>
+        <if test="status != null">
+            and fill.status = #{status}
+        </if>
+        <if test="requireHour != null">
+            and fill.require_hour = #{requireHour}
+        </if>
+        <if test="warningHour != null">
+            and fill.warning_hour = #{warningHour}
+        </if>
+        <if test="lateHistoryHours != null">
+            and fill.late_history_hours = #{lateHistoryHours}
+        </if>
+        <if test="recordJson != null">
+            and fill.record_json = #{recordJson}
+        </if>
+        <if test="name != null and name != ''">
+            and fill.name = #{name}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and fill.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.fill.FillGatherTaskDTO"
+            resultType="com.platform.dao.vo.query.fill.FillGatherTaskVO">
+        select fill.*
+        from t_fill_gather_task as fill
+        <where>
+            <include refid="List_Condition"/>
+        </where>
+    </select>
+</mapper>

+ 14 - 0
platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml

@@ -57,6 +57,20 @@
         </where>
     </select>
 
+    <select id="selectLongYanVOList" parameterType="com.platform.dao.dto.sb.SbModelSpareBomDTO"
+            resultType="com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO">
+        select
+        bom.spare_name as name from t_sb_model_spare_bom bom
+        <where>
+            <if test="spareId != null">
+                and bom.spare_id = #{spareId}
+            </if>
+            <if test="sbId != null">
+                and bom.sb_id = #{sbId}
+            </if>
+        </where>
+    </select>
+
     <update id="updateBatch" parameterType="java.util.List">
         <foreach collection="list" item="item" index="index" open="" close="" separator=";">
             update t_sb_model_spare_bom

+ 13 - 2
platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartUsedMapper.xml

@@ -106,6 +106,7 @@
         left join t_spare_part_info spareInfo on used.spare_id = spareInfo.id
         where used.repair_id = #{repairId}
     </select>
+
     <select id="selectNameById" parameterType="java.lang.Object" resultType="java.lang.String">
         select spareInfo.name
         from t_spare_part_used used
@@ -158,9 +159,9 @@
     </select>
 
     <select id="selectUpdateAlert" parameterType="com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO" resultType="com.platform.dao.vo.spare.SparePartUsedVO">
-        select sb.name as sbName,spare.name as spareName,usd.start_date,usd.change_date,usd.repair_no,usd.created_user_name from t_spare_part_used usd
+        select sb.name as sbName,usd.spareName,usd.start_date,usd.change_date,usd.repair_no,usd.created_user_name from t_spare_part_used usd
         join t_sb_info sb on usd.sb_id = sb.id
-        join t_spare_part_info spare on usd.spare_id = spare.id where usd.status = 1
+        where usd.status = 1
         <if test="changeDate != null">
             and usd.change_date <![CDATA[ <= ]]> #{changeDate}
         </if>
@@ -174,4 +175,14 @@
             </foreach>
         </if>
     </select>
+
+    <update id="updateRecordToOld" parameterType="com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO">
+        <if test="typeIds != null and typeIds.size > 0">
+            update t_spare_part_used set status = 2,real_change_date = now() where
+             id in
+            <foreach item="item" index="index" collection="typeIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </update>
 </mapper>

+ 141 - 0
platform-rest/src/main/java/com/platform/rest/controller/fill/FillGatherTaskController.java

@@ -0,0 +1,141 @@
+package com.platform.rest.controller.fill;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.fill.FillGatherTaskDTO;
+import com.platform.dao.entity.fill.FillGatherTask;
+import com.platform.service.fill.FillGatherTaskService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.fill.ExportFillGatherTaskVO;
+import com.platform.dao.vo.query.fill.FillGatherTaskVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 巡检任务表 控制器
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/fill/tasks")
+public class FillGatherTaskController {
+
+    private final FillGatherTaskService fillGatherTaskService;
+
+    /**
+     * 通过id查询单条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @GetMapping("/{id}")
+    public R<FillGatherTask> getById(@PathVariable("id") String id) {
+        return new R<>(fillGatherTaskService.getModelById(id));
+    }
+
+    /**
+     * 新增记录
+     *
+     * @param fillGatherTaskDTO 巡检任务表DTO
+     * @return R
+     */
+    @SysLog("新增巡检任务表")
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('fill-tasks-add')")
+    public R save(@Validated({AddGroup.class}) @RequestBody FillGatherTaskDTO fillGatherTaskDTO) {
+        return new R<>(fillGatherTaskService.saveModelByDTO(fillGatherTaskDTO));
+    }
+
+    /**
+     * 修改记录
+     *
+     * @param fillGatherTaskDTO 巡检任务表DTO
+     * @return R
+     */
+    @SysLog("修改巡检任务表")
+    @PutMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('fill-tasks-edit')")
+    public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody FillGatherTaskDTO fillGatherTaskDTO) {
+        fillGatherTaskService.modModelByDTO(fillGatherTaskDTO);
+        return new R<>();
+    }
+
+
+    /**
+     * 通过id删除一条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @SysLog("删除巡检任务表")
+    @DeleteMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('fill-tasks-del')")
+    public R removeById(@PathVariable String id) {
+        fillGatherTaskService.deleteByPrimaryKey(id);
+        return new R<>();
+    }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除巡检任务表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('fill-tasks-del')")
+    public R removeIds(@RequestBody List<String> ids) {
+        fillGatherTaskService.batchDelete(ids);
+        return new R<>();
+    }
+
+    /**
+     * 获取分页
+     *
+     * @param pageNum           当前页码
+     * @param pageSize          每页条数
+     * @param fillGatherTaskDTO 巡检任务表DTO
+     * @return R
+     */
+    @GetMapping("/page")
+    public R<AbstractPageResultBean<FillGatherTaskVO>> query(FillGatherTaskDTO fillGatherTaskDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(fillGatherTaskService.selectPageList(fillGatherTaskDTO, pageNum, pageSize));
+    }
+
+    /**
+     * 获取列表
+     *
+     * @param fillGatherTaskDTO 巡检任务表DTO
+     * @return R
+     */
+    @GetMapping("")
+    public R query(FillGatherTaskDTO fillGatherTaskDTO) {
+        return new R<>(fillGatherTaskService.getModelListByDTO(fillGatherTaskDTO));
+    }
+
+    /**
+     * 巡检任务表导出
+     *
+     * @param fillGatherTaskDTO 巡检任务表DTO
+     * @return R
+     */
+    @GetMapping("/export")
+    @SysLog("巡检任务表导出")
+    @PreAuthorize("@pms.hasPermission('fill-tasks-export')")
+    public void export(HttpServletResponse response, FillGatherTaskDTO fillGatherTaskDTO) {
+        List<FillGatherTask> list = fillGatherTaskService.getModelListByDTO(fillGatherTaskDTO);
+        ExcelUtil.exportResponseDict(response, ExportFillGatherTaskVO.class, BeanConverterUtil.copyListProperties(list, ExportFillGatherTaskVO.class), "巡检任务表");
+    }
+
+}

+ 141 - 0
platform-rest/src/main/java/com/platform/rest/controller/fill/FillGatherTaskDetailController.java

@@ -0,0 +1,141 @@
+package com.platform.rest.controller.fill;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.fill.FillGatherTaskDetailDTO;
+import com.platform.dao.entity.fill.FillGatherTaskDetail;
+import com.platform.service.fill.FillGatherTaskDetailService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.fill.ExportFillGatherTaskDetailVO;
+import com.platform.dao.vo.query.fill.FillGatherTaskDetailVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 巡检任务详情表 控制器
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/fill/task-details")
+public class FillGatherTaskDetailController {
+
+  private final  FillGatherTaskDetailService fillGatherTaskDetailService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<FillGatherTaskDetail> getById(@PathVariable("id") String id){
+      return new R<>(fillGatherTaskDetailService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param fillGatherTaskDetailDTO 巡检任务详情表DTO
+   * @return R
+   */
+  @SysLog("新增巡检任务详情表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('fill-task-details-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody FillGatherTaskDetailDTO fillGatherTaskDetailDTO) {
+      return new R<>(fillGatherTaskDetailService.saveModelByDTO(fillGatherTaskDetailDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param fillGatherTaskDetailDTO 巡检任务详情表DTO
+   * @return R
+   */
+  @SysLog("修改巡检任务详情表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('fill-task-details-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody FillGatherTaskDetailDTO fillGatherTaskDetailDTO) {
+      fillGatherTaskDetailService.modModelByDTO(fillGatherTaskDetailDTO);
+      return new R<>();
+  }
+
+
+                                                                    
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除巡检任务详情表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('fill-task-details-del')")
+  public R removeById(@PathVariable String id){
+    fillGatherTaskDetailService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除巡检任务详情表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('fill-task-details-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        fillGatherTaskDetailService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param fillGatherTaskDetailDTO 巡检任务详情表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<FillGatherTaskDetailVO>> query(FillGatherTaskDetailDTO fillGatherTaskDetailDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(fillGatherTaskDetailService.selectPageList(fillGatherTaskDetailDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param fillGatherTaskDetailDTO 巡检任务详情表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(FillGatherTaskDetailDTO fillGatherTaskDetailDTO) {
+      return new R<>(fillGatherTaskDetailService.getModelListByDTO(fillGatherTaskDetailDTO));
+  }
+
+  /**
+     * 巡检任务详情表导出
+     *
+     * @param fillGatherTaskDetailDTO 巡检任务详情表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("巡检任务详情表导出")
+  @PreAuthorize("@pms.hasPermission('fill-task-details-export')")
+  public void export(HttpServletResponse response, FillGatherTaskDetailDTO fillGatherTaskDetailDTO) {
+    List<FillGatherTaskDetail> list = fillGatherTaskDetailService.getModelListByDTO(fillGatherTaskDetailDTO);
+    ExcelUtil.exportResponseDict(response, ExportFillGatherTaskDetailVO.class, BeanConverterUtil.copyListProperties(list, ExportFillGatherTaskDetailVO.class), "巡检任务详情表");
+  }
+
+}

+ 25 - 0
platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartUsedController.java

@@ -72,6 +72,19 @@ public class SparePartUsedController {
         return new R();
     }
 
+    /**
+     * 批量更换备件记录
+     *
+     * @param sparePartUsedDTOList 备件使用DTO
+     * @return R
+     */
+    @SysLog("更换备件")
+    @PostMapping("/longyan/batch")
+    public R saveLongyan(@Validated({AddGroup.class}) @RequestBody List<SparePartUsedDTO> sparePartUsedDTOList) throws Exception {
+        sparePartUsedService.saveLongYanBatch(sparePartUsedDTOList);
+        return new R();
+    }
+
     /**
      * 关联备件
      *
@@ -85,6 +98,18 @@ public class SparePartUsedController {
         return new R<>(list);
     }
 
+    /**
+     * 关联龙岩备件
+     * @param repairId 维修单-维修项目关联DTO
+     * @return R
+     */
+    @SysLog("维修项目bom")
+    @GetMapping("repair/longyan/{repairId}")
+    public R selectLongYanUsedListByRepairId(@PathVariable String repairId) {
+        List<SparePartUsed> list =  sparePartUsedService.selectLongYanByRepairId(repairId);
+        return new R<>(list);
+    }
+
     @SysLog("维修项目bom")
     @GetMapping("list/{sbId}")
     public R selectSparePartUsedListBySbId(@PathVariable String sbId) {

+ 9 - 0
platform-rest/src/main/java/com/platform/rest/controller/store/SpareStoreController.java

@@ -1,12 +1,15 @@
 package com.platform.rest.controller.store;
 
 import com.platform.common.util.R;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.dao.entity.store.Store;
 import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.vo.export.sqarepartmanage.ExportSparePartInfoVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
+import com.platform.dao.vo.query.store.LongYanSpareVO;
 import com.platform.dao.vo.spare.SpareStoreInfoVO;
 import com.platform.rest.controller.sqarepartmanage.SpareInfo;
 import com.platform.rest.controller.sqarepartmanage.SpareStoreTest;
@@ -138,6 +141,12 @@ public class SpareStoreController {
         return new R<>(spareStoreService.selectPageList(spareStoreDTO, pageNum, pageSize));
     }
 
+    @GetMapping("/longyan/page")
+    public R<AbstractPageResultBean<SparePartInfoVO>> queryLongYan(SparePartInfoDTO sparePartInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        // 备件库存
+        return new R<>(spareStoreService.selectLongYanPageList(sparePartInfoDTO, pageNum, pageSize));
+    }
+
     /**
      * 获取项目部仓库汇总分页
      * 统计某个分公司下某个项目部的总仓库库存,这个就是各个仓库累加的结果

+ 35 - 0
platform-service/src/main/java/com/platform/service/fill/FillGatherTaskDetailService.java

@@ -0,0 +1,35 @@
+package com.platform.service.fill;
+
+import com.platform.dao.vo.query.fill.FillGatherTaskDetailVO;
+import com.platform.dao.dto.fill.FillGatherTaskDetailDTO;
+import com.platform.dao.entity.fill.FillGatherTaskDetail;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 巡检任务详情表 service
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface FillGatherTaskDetailService extends IBaseService<FillGatherTaskDetail, FillGatherTaskDetailDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<FillGatherTaskDetailVO> selectPageList(FillGatherTaskDetailDTO record, int pageNum, int pageSize);
+
+                                                                                                                                        }

+ 35 - 0
platform-service/src/main/java/com/platform/service/fill/FillGatherTaskService.java

@@ -0,0 +1,35 @@
+package com.platform.service.fill;
+
+import com.platform.dao.vo.query.fill.FillGatherTaskVO;
+import com.platform.dao.dto.fill.FillGatherTaskDTO;
+import com.platform.dao.entity.fill.FillGatherTask;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 巡检任务表 service
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface FillGatherTaskService extends IBaseService<FillGatherTask, FillGatherTaskDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<FillGatherTaskVO> selectPageList(FillGatherTaskDTO record, int pageNum, int pageSize);
+
+                                                                                                                                                                                                                }

+ 47 - 8
platform-service/src/main/java/com/platform/service/fill/impl/FillGatherServiceImpl.java

@@ -3,12 +3,16 @@ package com.platform.service.fill.impl;
 import cn.hutool.core.collection.CollectionUtil;
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
-import com.platform.common.exception.BusinessException;
+import com.platform.common.exception.DeniedException;
 import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.IdGeneratorUtils;
+import com.platform.common.util.SecurityUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.fill.FillGatherDTO;
 import com.platform.dao.entity.fill.FillGather;
+import com.platform.dao.entity.fill.FillGatherInfo;
+import com.platform.dao.mapper.fill.FillGatherInfoMapper;
 import com.platform.dao.mapper.fill.FillGatherMapper;
 import com.platform.dao.vo.query.fill.FillGatherVO;
 import com.platform.service.base.impl.BaseServiceImpl;
@@ -18,6 +22,8 @@ import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -30,6 +36,7 @@ import java.util.List;
 @Service("fillGatherService")
 public class FillGatherServiceImpl extends BaseServiceImpl<FillGatherMapper, FillGather, FillGatherDTO> implements FillGatherService {
 
+    private final FillGatherInfoMapper fillGatherInfoMapper;
     @Override
     public int batchDelete(List<String> ids) {
         Weekend<FillGather> weekend = new Weekend<>(FillGather.class);
@@ -41,22 +48,54 @@ public class FillGatherServiceImpl extends BaseServiceImpl<FillGatherMapper, Fil
 
     @Override
     public FillGather saveModelByDTO(FillGatherDTO model) {
-        Integer codeId = model.getCodeId();
-        FillGatherVO fillGatherVO = this.selectByCodeIdUseType(codeId, model.getUseType());
-        if (fillGatherVO != null) {
-            throw new BusinessException("该类型已设置");
+        if(model.getInfoIds() == null || model.getInfoIds().size() == 0){
+            throw new DeniedException("巡检内容项,至少勾选一项");
+        }
+        FillGather gather = super.saveModelByDTO(model);
+        // 处理巡检内容项的新增
+        addGatherInfos(gather.getId(),model.getInfoIds(),1);
+        return gather;
+    }
+
+    /**
+     * @param gatherId 巡检标准ID
+     * @param infoIds 巡检内容项IDs
+     * @param type 插入类型 1 add  2 queryAndAdd
+     */
+    private void addGatherInfos(String gatherId,List<String> infoIds,Integer type){
+        if(type == 2){
+            // 先删除历史数据
+            Weekend<FillGatherInfo> weekend = new Weekend<>(FillGatherInfo.class);
+            WeekendCriteria<FillGatherInfo, Object> weekendCriteria = weekend.weekendCriteria();
+            weekendCriteria.andEqualTo(FillGatherInfo::getGatherId, gatherId);
+            fillGatherInfoMapper.deleteByExample(weekend);
+        }
+        List<FillGatherInfo> infos = new ArrayList<>();
+        for(String infoId : infoIds){
+            FillGatherInfo info = new FillGatherInfo();
+            info.setCreatedTime(LocalDateTime.now());
+            info.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+            info.setCreatedUserName(SecurityUtils.getUserInfo().getUsername());
+            info.setInfoId(infoId);
+            info.setGatherId(gatherId);
+            info.setId(IdGeneratorUtils.getObjectId());
+            infos.add(info);
+        }
+        // 存储巡检标准对应的内容项
+        if(infos.size() > 0){
+            fillGatherInfoMapper.insertListforComplex(infos);
         }
-        return super.saveModelByDTO(model);
     }
 
     @Override
     public void modModelByDTO(FillGatherDTO model) {
-        Integer codeId = model.getCodeId();
+        /*Integer codeId = model.getCodeId();
         FillGatherVO fillGatherVO = this.selectByCodeIdUseType(codeId, model.getUseType());
         if (fillGatherVO != null && !fillGatherVO.getId().equals(model.getId())) {
             throw new BusinessException("该类型已设置");
-        }
+        }*/
         super.modModelByDTO(model);
+        addGatherInfos(model.getId(),model.getInfoIds(),2);
     }
 
     @Override

+ 50 - 0
platform-service/src/main/java/com/platform/service/fill/impl/FillGatherTaskDetailServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.fill.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.fill.FillGatherTaskDetailVO;
+import com.platform.dao.dto.fill.FillGatherTaskDetailDTO;
+import com.platform.dao.entity.fill.FillGatherTaskDetail;
+import com.platform.dao.mapper.fill.FillGatherTaskDetailMapper;
+import com.platform.service.fill.FillGatherTaskDetailService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 巡检任务详情表 service 实现类
+ * @Author lsq
+ * @Date 2022-09-13 14:35:02
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("fillGatherTaskDetailService")
+public class FillGatherTaskDetailServiceImpl extends BaseServiceImpl<FillGatherTaskDetailMapper, FillGatherTaskDetail, FillGatherTaskDetailDTO> implements FillGatherTaskDetailService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<FillGatherTaskDetail> weekend = new Weekend<>(FillGatherTaskDetail.class);
+        WeekendCriteria<FillGatherTaskDetail, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(FillGatherTaskDetail::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<FillGatherTaskDetailVO> selectPageList(FillGatherTaskDetailDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<FillGatherTaskDetail> selectPageInfo(FillGatherTaskDetailDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                                        }

+ 50 - 0
platform-service/src/main/java/com/platform/service/fill/impl/FillGatherTaskServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.fill.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.fill.FillGatherTaskVO;
+import com.platform.dao.dto.fill.FillGatherTaskDTO;
+import com.platform.dao.entity.fill.FillGatherTask;
+import com.platform.dao.mapper.fill.FillGatherTaskMapper;
+import com.platform.service.fill.FillGatherTaskService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 巡检任务表 service 实现类
+ * @Author lsq
+ * @Date 2022-09-13 14:33:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("fillGatherTaskService")
+public class FillGatherTaskServiceImpl extends BaseServiceImpl<FillGatherTaskMapper, FillGatherTask, FillGatherTaskDTO> implements FillGatherTaskService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<FillGatherTask> weekend = new Weekend<>(FillGatherTask.class);
+        WeekendCriteria<FillGatherTask, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(FillGatherTask::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<FillGatherTaskVO> selectPageList(FillGatherTaskDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<FillGatherTask> selectPageInfo(FillGatherTaskDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                                                                                                                }

+ 3 - 4
platform-service/src/main/java/com/platform/service/fill/impl/FillInfoServiceImpl.java

@@ -47,10 +47,9 @@ public class FillInfoServiceImpl extends BaseServiceImpl<FillInfoMapper, FillInf
     @Override
     public FillInfo saveModelByDTO(FillInfoDTO model) {
         // 字段名要唯一
-        FillInfo fillInfo = this.selectByFieldKey(model.getFieldKey());
-        if (fillInfo != null) {
-            throw new BusinessException("字段名不能重复");
-        }
+        int count = mapper.selectCount(new FillInfo());
+        count++;
+        model.setFieldKey("extra" + count);
         return super.saveModelByDTO(model);
     }
 

+ 1 - 1
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -504,7 +504,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                     }
                 }
                 // 超级管理员可以看到各个状态下的所有数据 相关领导,可以在这里进行设置
-                if(userInfo.getSuperAdmin() == 1){
+                if(userInfo.getSuperAdmin() == 1 || record.getSearchType() == -1){
                     record.setUserId(null);
                     record.setDispatchUserId(null);
                     record.setRepairUserId(null);

+ 3 - 0
platform-service/src/main/java/com/platform/service/sb/SbModelSpareBomService.java

@@ -9,6 +9,7 @@ import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.entity.check.CheckProjectStandardRelation;
 import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.vo.query.check.CheckProjectStandardRelationVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.dao.vo.sb.SbModelVO;
 import com.platform.service.base.IBaseService;
@@ -78,4 +79,6 @@ public interface SbModelSpareBomService extends IBaseService<SbModelSpareBom, Sb
      * @param sbModelSpareBomDTO
      */
     void modModelByDTO(SbModelSpareBomDTO sbModelSpareBomDTO);
+
+    List<SparePartInfoVO> selectLongYanVOList(SbModelSpareBomDTO dto);
 }

+ 6 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbModelSpareBomServiceImpl.java

@@ -26,6 +26,7 @@ import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.util.CustomExcelImportUtil;
 import com.platform.dao.vo.query.check.CheckProjectStandardRelationVO;
 import com.platform.dao.vo.query.check.CheckStandardVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.check.CheckProjectStandardRelationService;
@@ -225,4 +226,9 @@ public class SbModelSpareBomServiceImpl extends BaseServiceImpl<SbModelSpareBomM
         }
         super.modModelByDTO(model);
     }
+
+    @Override
+    public List<SparePartInfoVO> selectLongYanVOList(SbModelSpareBomDTO dto) {
+        return mapper.selectLongYanVOList(dto);
+    }
 }

+ 9 - 0
platform-service/src/main/java/com/platform/service/sqarepartmanage/SparePartUsedService.java

@@ -67,6 +67,8 @@ public interface SparePartUsedService extends IBaseService<SparePartUsed, SpareP
 
     List<SparePartUsedVO> selectSparePartUsedListByRepairId(String repairId);
 
+    List<SparePartUsed> selectLongYanByRepairId(String repairId);
+
     /**
      * 报表数据
      * @param sparePartUsedDTO
@@ -93,6 +95,13 @@ public interface SparePartUsedService extends IBaseService<SparePartUsed, SpareP
      */
     void saveBatch(List<SparePartUsedDTO> sparePartUsedDTOList);
 
+    /**
+     * 批量插入
+     * @param sparePartUsedDTOList
+     * @return
+     */
+    void saveLongYanBatch(List<SparePartUsedDTO> sparePartUsedDTOList);
+
     /**
      * 设备备件更换
      * @param records

+ 59 - 2
platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartUsedServiceImpl.java

@@ -203,6 +203,13 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
         return mapper.selectSparePartUsedListByRepairId(repairId);
     }
 
+    @Override
+    public List<SparePartUsed> selectLongYanByRepairId(String repairId) {
+        SparePartUsed queryUsed = new SparePartUsed();
+        queryUsed.setRepairId(repairId);
+        return mapper.select(queryUsed);
+    }
+
     @Override
     public List<SparePartInfoReportVO> getMonthReport(SparePartUsedDTO sparePartUsedDTO, Integer searchYear, LocalDate startMonth, LocalDate endMonth) {
         List<Map<String, LocalDateTime>> monthStartAndEndList = null;
@@ -289,6 +296,56 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
         }
     }
 
+    @Override
+    public void saveLongYanBatch(List<SparePartUsedDTO> sparePartUsedDTOList) {
+        // 待插入更换记录
+        List<SparePartUsed> saveList = new ArrayList<>();
+        // 待修改为历史状态记录ID
+        List<String> ids = new ArrayList<>();
+        // 区分是否bom关联备件
+        for(SparePartUsedDTO sparePartUsedDTO : sparePartUsedDTOList){
+            int isSpecial = sparePartUsedDTO.getIsSpecial() == null ? 0 : sparePartUsedDTO.getIsSpecial();
+            // 获取old id
+            SparePartUsed oldUsed = new SparePartUsed();
+            oldUsed.setSbId(sparePartUsedDTO.getSbId());
+            oldUsed.setSpareId(sparePartUsedDTO.getSpareId());
+            oldUsed.setStatus(SparePartUsedStatusEnum.IN_USE.getValue());
+            oldUsed = mapper.selectOne(oldUsed);
+            if(oldUsed != null){
+                ids.add(oldUsed.getId());
+            }
+            // 封装新增更换记录
+            SparePartUsed entity = BeanConverterUtil.copyObjectProperties(sparePartUsedDTO, SparePartUsed.class);
+            entity.setId(IdGeneratorUtils.getObjectId());
+            entity.setCreatedTime(LocalDateTime.now());
+            OauthUser user = SecurityUtils.getUser();
+            if (user != null) {
+                UserInfo userInfo = user.getUserInfo();
+                entity.setCreatedUserId(userInfo.getUserId());
+                entity.setCreatedUserName(userInfo.getRealName());
+            }
+            LocalDate now = LocalDate.now();
+            entity.setStartDate(now);
+            entity.setIsSpecial(isSpecial);
+            // 计算下次更换时间
+            if(sparePartUsedDTO.getSparePeriod() != null && sparePartUsedDTO.getSparePeriod() > 0){
+                entity.setChangeDate(now.plusDays(sparePartUsedDTO.getSparePeriod()));
+            }
+            saveList.add(entity);
+
+        }
+        // 保存更换记录
+        if(saveList.size() > 0){
+            mapper.insertListforComplex(saveList);
+        }
+        // 将之前记录修改为历史和实际更换时间
+        if(ids.size() > 0){
+            SparePartUsedDTO updDTO = new SparePartUsedDTO();
+            updDTO.setTypeIds(ids);
+            mapper.updateRecordToOld(updDTO);
+        }
+    }
+
     @Override
     public synchronized void updateSpare(List<SparePartUsedDTO> records) {
         for(SparePartUsedDTO sparePartUsedDTO : records){
@@ -351,7 +408,7 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
             record.setKeyword(record.getKeyword().trim());
         }
         // 根据备件类型查询
-        if (StringUtils.isNotBlank(record.getTypeId())) {
+        /*if (StringUtils.isNotBlank(record.getTypeId())) {
             Weekend<SpareType> weekend = new Weekend<>(SpareType.class);
             WeekendCriteria<SpareType, Object> weekendCriteria = weekend.weekendCriteria();
             weekendCriteria.andEqualTo(SpareType::getParentId, record.getTypeId());
@@ -364,7 +421,7 @@ public class SparePartUsedServiceImpl extends BaseServiceImpl<SparePartUsedMappe
                 });
             }
             record.setTypeIds(typeIds);
-        }
+        }*/
         return new MyVOPage<>(mapper.selectUpdateAlert(record));
     }
 

+ 12 - 0
platform-service/src/main/java/com/platform/service/store/SpareStoreService.java

@@ -1,5 +1,8 @@
 package com.platform.service.store;
 
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
+import com.platform.dao.vo.query.store.LongYanSpareVO;
 import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.entity.store.SpareStore;
@@ -72,4 +75,13 @@ public interface SpareStoreService extends IBaseService<SpareStore, SpareStoreDT
     SpareStoreInfoVO getAllSpareStoreInfoVO(String storeId);
 
     void genMinStockWarn();
+
+    /**
+     * 龙岩备件列表分页
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<SparePartInfoVO> selectLongYanPageList(SparePartInfoDTO record, int pageNum, int pageSize);
 }

+ 19 - 17
platform-service/src/main/java/com/platform/service/store/impl/SpareStoreServiceImpl.java

@@ -2,25 +2,22 @@ package com.platform.service.store.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.cache.ConfigCache;
 import com.platform.common.constant.CommonConstants;
 import com.platform.common.enums.DataFilterTypeEnum;
 import com.platform.common.exception.BusinessException;
-import com.platform.common.util.*;
+import com.platform.common.util.IdGeneratorUtils;
+import com.platform.common.util.SpringContextHolder;
+import com.platform.common.util.StringUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.sqarepartmanage.SpareTypeDTO;
-import com.platform.dao.dto.store.InStoreFormDTO;
-import com.platform.dao.dto.store.OutStoreFormDTO;
 import com.platform.dao.dto.store.SpareStoreDTO;
 import com.platform.dao.dto.store.StoreDTO;
-import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
 import com.platform.dao.entity.store.SpareStore;
 import com.platform.dao.entity.store.Store;
@@ -28,29 +25,26 @@ import com.platform.dao.enums.StoreLevelEnum;
 import com.platform.dao.enums.SysConfigEnum;
 import com.platform.dao.enums.WorkplaceBacklogDetailTypeEnum;
 import com.platform.dao.enums.WorkplaceBacklogTypeEnum;
-import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
 import com.platform.dao.mapper.sqarepartmanage.SparePartUsedMapper;
-import com.platform.dao.mapper.sqarepartmanage.SpareTypeMapper;
 import com.platform.dao.mapper.store.InStoreFormMapper;
 import com.platform.dao.mapper.store.OutStoreFormMapper;
 import com.platform.dao.mapper.store.SpareStoreMapper;
 import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
-import com.platform.dao.vo.query.store.*;
+import com.platform.dao.vo.query.store.SpareStoreVO;
+import com.platform.dao.vo.query.store.StoreVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.dao.vo.spare.SparePartUsedVO;
 import com.platform.dao.vo.spare.SpareStoreInfoVO;
-import com.platform.dao.vo.spare.SpareTypeVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.event.WorkplaceBacklogEvent;
 import com.platform.service.sb.SbModelSpareBomService;
 import com.platform.service.sqarepartmanage.SpareTypeService;
 import com.platform.service.store.SpareStoreService;
 import com.platform.service.store.StoreService;
-import com.platform.service.upms.SysDeptService;
-import com.platform.service.upms.SysUserDeptService;
 import com.platform.service.util.CodeFileUtils;
+import com.platform.service.yongyou.YongyouService;
 import lombok.AllArgsConstructor;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
@@ -61,7 +55,6 @@ import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import java.math.BigDecimal;
-import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -81,16 +74,13 @@ public class SpareStoreServiceImpl extends BaseServiceImpl<SpareStoreMapper, Spa
     private StoreService storeService;
     private SpareTypeService spareTypeService;
     private final Environment environment;
-    private SysUserDeptService sysUserDeptService;
-    private SysDeptService sysDeptService;
     private SbModelSpareBomService sbModelSpareBomService;
     private SparePartUsedMapper sparePartUsedMapper;
     private SpareStoreMapper spareStoreMapper;
-    private SpareTypeMapper spareTypeMapper;
     private InStoreFormMapper inStoreFormMapper;
     private OutStoreFormMapper outStoreFormMapper;
     private StoreMapper storeMapper;
-    private SparePartInfoMapper sparePartInfoMapper;
+    private YongyouService yongyouService;
 
     @Override
     public SpareStoreVO getDetail(Object id) {
@@ -416,6 +406,18 @@ public class SpareStoreServiceImpl extends BaseServiceImpl<SpareStoreMapper, Spa
         }
     }
 
+    @Override
+    public AbstractPageResultBean<SparePartInfoVO> selectLongYanPageList(SparePartInfoDTO record, int pageNum, int pageSize) {
+        // 1、是否是关联备件的获取
+        if(record.getIsSpecial() != null && record.getIsSpecial() == 1){
+            PageHelper.startPage(pageNum, pageSize);
+            SbModelSpareBomDTO sbModelDTO = new SbModelSpareBomDTO();
+            sbModelDTO.setSbId(record.getSbId());
+            return new MyPage(sbModelSpareBomService.selectLongYanVOList(sbModelDTO));
+        }
+        // 2、全部备件的拉取,传入分页数据
+        return yongyouService.selectPageList(record,pageNum,pageSize);
+    }
 
 
 }