Ver Fonte

设备状态记录+停机记录

xiongchao há 4 anos atrás
pai
commit
8518fa23d4
28 ficheiros alterados com 1658 adições e 8 exclusões
  1. 0 2
      platform-common/src/main/java/com/platform/common/util/DateUtils.java
  2. 16 0
      platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java
  3. 94 0
      platform-dao/src/main/java/com/platform/dao/dto/sb/SbStatusLogDTO.java
  4. 103 0
      platform-dao/src/main/java/com/platform/dao/dto/sb/SbStopLogDTO.java
  5. 8 1
      platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartInfoDTO.java
  6. 17 0
      platform-dao/src/main/java/com/platform/dao/entity/sb/SbModelSpareBom.java
  7. 81 0
      platform-dao/src/main/java/com/platform/dao/entity/sb/SbStatusLog.java
  8. 94 0
      platform-dao/src/main/java/com/platform/dao/entity/sb/SbStopLog.java
  9. 8 0
      platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartInfo.java
  10. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/sb/SbStatusLogMapper.java
  11. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/sb/SbStopLogMapper.java
  12. 93 0
      platform-dao/src/main/java/com/platform/dao/vo/export/sb/ExportSbStatusLogVO.java
  13. 106 0
      platform-dao/src/main/java/com/platform/dao/vo/export/sb/ExportSbStopLogVO.java
  14. 88 0
      platform-dao/src/main/java/com/platform/dao/vo/query/sb/SbStatusLogVO.java
  15. 97 0
      platform-dao/src/main/java/com/platform/dao/vo/query/sb/SbStopLogVO.java
  16. 8 1
      platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java
  17. 17 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbModelSpareBomVO.java
  18. 9 1
      platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml
  19. 88 0
      platform-dao/src/main/resources/mapper/sb/SbStatusLogMapper.xml
  20. 98 0
      platform-dao/src/main/resources/mapper/sb/SbStopLogMapper.xml
  21. 4 0
      platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartInfoMapper.xml
  22. 140 0
      platform-rest/src/main/java/com/platform/rest/controller/sb/SbStatusLogController.java
  23. 140 0
      platform-rest/src/main/java/com/platform/rest/controller/sb/SbStopLogController.java
  24. 34 0
      platform-service/src/main/java/com/platform/service/sb/SbStatusLogService.java
  25. 34 0
      platform-service/src/main/java/com/platform/service/sb/SbStopLogService.java
  26. 131 3
      platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java
  27. 49 0
      platform-service/src/main/java/com/platform/service/sb/impl/SbStatusLogServiceImpl.java
  28. 49 0
      platform-service/src/main/java/com/platform/service/sb/impl/SbStopLogServiceImpl.java

+ 0 - 2
platform-common/src/main/java/com/platform/common/util/DateUtils.java

@@ -226,8 +226,6 @@ public class DateUtils {
         return duration.toMinutes();
     }
 
-
-
     public static String dateDiff(LocalDateTime end, LocalDateTime now){
         //获取秒数
         long nowSecond = now.toEpochSecond(ZoneOffset.ofHours(0));

+ 16 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java

@@ -43,6 +43,22 @@ public class SbModelSpareBomDTO extends BaseDTO implements Serializable {
      * 设备型号库id
      */
     private String modelId;
+    /**
+     * 更換日期
+     */
+    private LocalDate checkDate;
+    /**
+     * 下次更換日期
+     */
+    private LocalDate nextCheckDate;
+    /**
+     * 更换里程/台时
+     */
+    private BigDecimal changeNum;
+    /**
+     * 下次更换里程/台时
+     */
+    private BigDecimal nextChangeNum;
     /**
      * 设备id
      */

+ 94 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbStatusLogDTO.java

@@ -0,0 +1,94 @@
+package com.platform.dao.dto.sb;
+
+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 future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbStatusLogDTO extends BaseDTO implements Serializable {
+
+      /**
+     * id
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 设备id
+     */
+          private String sbId;
+          /**
+     * 变更时间
+     */
+          private LocalDateTime changeTime;
+          /**
+     * 变更原因
+     */
+          private String changeReason;
+          /**
+     * 变更人
+     */
+          private String changeUserId;
+          /**
+     * 变更前状态
+     */
+          private Integer preStatus;
+          /**
+     * 变更后状态
+     */
+          private Integer afterStatus;
+          /**
+     * 备注
+     */
+          private String remark;
+          /**
+     * 创建人
+     */
+          private String createdUserId;
+          /**
+     * 更新人
+     */
+          private String updateUserId;
+          /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 创建日期开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 创建日期结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 更新日期开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 更新日期结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 103 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbStopLogDTO.java

@@ -0,0 +1,103 @@
+package com.platform.dao.dto.sb;
+
+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;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备停机记录表DTO
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbStopLogDTO extends BaseDTO implements Serializable {
+
+      /**
+     * id
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 设备id
+     */
+          private String sbId;
+          /**
+     * 停用时间
+     */
+          private LocalDateTime stopTime;
+          /**
+     * 停用原因
+     */
+          private String stopReason;
+          /**
+     * 停用人
+     */
+          private String stopUserId;
+          /**
+     * 启用时间
+     */
+          private LocalDateTime startTime;
+          /**
+     * 启用原因
+     */
+          private String startReason;
+          /**
+     * 启用人
+     */
+          private String startUserId;
+          /**
+     * 停机时长分钟
+     */
+          private BigDecimal stopDuration;
+          /**
+     * 备注
+     */
+          private String remark;
+          /**
+     * 创建人
+     */
+          private String createdUserId;
+          /**
+     * 更新人
+     */
+          private String updateUserId;
+          /**
+     * 创建日期
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 创建日期开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 创建日期结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     * 更新日期
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 更新日期开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 更新日期结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 8 - 1
platform-dao/src/main/java/com/platform/dao/dto/sqarepartmanage/SparePartInfoDTO.java

@@ -138,7 +138,14 @@ public class SparePartInfoDTO extends BaseDTO implements Serializable {
    * 最高库存
    */
     private BigDecimal maxStock;
-
+    /**
+     * 使用周期:月
+     */
+    private BigDecimal usePeriod;
+    /**
+     * 采购到货周期:天
+     */
+    private BigDecimal purchasePeriod;
     /**
    * 最低库存
    */

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

@@ -9,6 +9,7 @@ import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -80,6 +81,22 @@ public class SbModelSpareBom implements Serializable {
      */
     private String updateUserName;
 
+    /**
+     * 更換日期
+     */
+    private LocalDate checkDate;
+    /**
+     * 下次更換日期
+     */
+    private LocalDate nextCheckDate;
+    /**
+     * 更换里程/台时
+     */
+    private BigDecimal changeNum;
+    /**
+     * 下次更换里程/台时
+     */
+    private BigDecimal nextChangeNum;
     /**
      * 数据权限
      */

+ 81 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbStatusLog.java

@@ -0,0 +1,81 @@
+package com.platform.dao.entity.sb;
+
+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 future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_sb_status_log")
+public class SbStatusLog implements Serializable{
+
+    /**
+     * id
+     */
+        @Id
+    private String id;
+    /**
+     * 设备id
+     */
+    private String sbId;
+    /**
+     * 变更时间
+     */
+    private LocalDateTime changeTime;
+    /**
+     * 变更原因
+     */
+    private String changeReason;
+    /**
+     * 变更人
+     */
+    private String changeUserId;
+    /**
+     * 变更前状态
+     */
+    private Integer preStatus;
+    /**
+     * 变更后状态
+     */
+    private Integer afterStatus;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 94 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbStopLog.java

@@ -0,0 +1,94 @@
+package com.platform.dao.entity.sb;
+
+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;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备停机记录表实体类
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_sb_stop_log")
+public class SbStopLog implements Serializable{
+
+    /**
+     * id
+     */
+        @Id
+    private String id;
+    /**
+     * 设备id
+     */
+    private String sbId;
+    /**
+     * 停用时间
+     */
+    private LocalDateTime stopTime;
+    /**
+     * 停用原因
+     */
+    private String stopReason;
+    /**
+     * 停用人
+     */
+    private String stopUserId;
+    /**
+     * 启用时间
+     */
+    private LocalDateTime startTime;
+    /**
+     * 启用原因
+     */
+    private String startReason;
+    /**
+     * 启用人
+     */
+    private String startUserId;
+    /**
+     * 状态:0 未关闭,1关闭
+     */
+    private Integer status;
+    /**
+     * 停机时长分钟
+     */
+    private BigDecimal stopDuration;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createdUserId;
+    /**
+     * 更新人
+     */
+    private String updateUserId;
+    /**
+     * 创建日期
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartInfo.java

@@ -111,6 +111,14 @@ public class SparePartInfo implements Serializable{
      * 备件价值
      */
     private BigDecimal initialValue;
+    /**
+     * 使用周期:月
+     */
+    private BigDecimal usePeriod;
+    /**
+     * 采购到货周期:天
+     */
+    private BigDecimal purchasePeriod;
     /**
      * 生产商
      */

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbStatusLogMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.sb;
+
+import com.platform.dao.dto.sb.SbStatusLogDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.sb.SbStatusLog;
+import com.platform.dao.vo.query.sb.SbStatusLogVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 设备状态变更记录 mapper
+ * @Author future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface SbStatusLogMapper extends MyMapper<SbStatusLog> {
+    /**
+     * 分页查询
+     * @param dto :
+     * @return :
+     */
+    List<SbStatusLogVO> selectList(SbStatusLogDTO dto);
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbStopLogMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.sb;
+
+import com.platform.dao.dto.sb.SbStopLogDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.sb.SbStopLog;
+import com.platform.dao.vo.query.sb.SbStopLogVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 设备停机记录表 mapper
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface SbStopLogMapper extends MyMapper<SbStopLog> {
+    /**
+     * 分页查询
+     * @param dto :
+     * @return :
+     */
+    List<SbStopLogVO> selectList(SbStopLogDTO dto);
+
+}

+ 93 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/sb/ExportSbStatusLogVO.java

@@ -0,0 +1,93 @@
+package com.platform.dao.vo.export.sb;
+
+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 future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportSbStatusLogVO implements Serializable {
+
+    /**
+   * id
+   */
+  @Excel(name = "id", orderNum = "1")
+  private String id;
+
+    /**
+   * 设备id
+   */
+  @Excel(name = "设备id", orderNum = "2")
+  private String sbId;
+
+    /**
+   * 变更时间
+   */
+  @Excel(name = "变更时间", orderNum = "3")
+  private LocalDateTime changeTime;
+
+    /**
+   * 变更原因
+   */
+  @Excel(name = "变更原因", orderNum = "4")
+  private String changeReason;
+
+    /**
+   * 变更人
+   */
+  @Excel(name = "变更人", orderNum = "5")
+  private String changeUserId;
+
+    /**
+   * 变更前状态
+   */
+  @Excel(name = "变更前状态", orderNum = "6")
+  private Integer preStatus;
+
+    /**
+   * 变更后状态
+   */
+  @Excel(name = "变更后状态", orderNum = "7")
+  private Integer afterStatus;
+
+    /**
+   * 备注
+   */
+  @Excel(name = "备注", orderNum = "8")
+  private String remark;
+
+    /**
+   * 创建人
+   */
+  @Excel(name = "创建人", orderNum = "9")
+  private String createdUserId;
+
+    /**
+   * 更新人
+   */
+  @Excel(name = "更新人", orderNum = "10")
+  private String updateUserId;
+
+    /**
+   * 创建日期
+   */
+  @Excel(name = "创建日期", orderNum = "11")
+  private LocalDateTime createdTime;
+
+    /**
+   * 更新日期
+   */
+  @Excel(name = "更新日期", orderNum = "12")
+  private LocalDateTime updateTime;
+
+
+}

+ 106 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/sb/ExportSbStopLogVO.java

@@ -0,0 +1,106 @@
+package com.platform.dao.vo.export.sb;
+
+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;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备停机记录表导出VO
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportSbStopLogVO implements Serializable {
+
+    /**
+   * id
+   */
+  @Excel(name = "id", orderNum = "1")
+  private String id;
+
+    /**
+   * 设备id
+   */
+  @Excel(name = "设备id", orderNum = "2")
+  private String sbId;
+
+    /**
+   * 停用时间
+   */
+  @Excel(name = "停用时间", orderNum = "3")
+  private LocalDateTime stopTime;
+
+    /**
+   * 停用原因
+   */
+  @Excel(name = "停用原因", orderNum = "4")
+  private String stopReason;
+
+    /**
+   * 停用人
+   */
+  @Excel(name = "停用人", orderNum = "5")
+  private String stopUserId;
+
+    /**
+   * 启用时间
+   */
+  @Excel(name = "启用时间", orderNum = "6")
+  private LocalDateTime startTime;
+
+    /**
+   * 启用原因
+   */
+  @Excel(name = "启用原因", orderNum = "7")
+  private String startReason;
+
+    /**
+   * 启用人
+   */
+  @Excel(name = "启用人", orderNum = "8")
+  private String startUserId;
+
+    /**
+   * 停机时长分钟
+   */
+  @Excel(name = "停机时长分钟", orderNum = "9")
+  private BigDecimal stopDuration;
+
+    /**
+   * 备注
+   */
+  @Excel(name = "备注", orderNum = "10")
+  private String remark;
+
+    /**
+   * 创建人
+   */
+  @Excel(name = "创建人", orderNum = "11")
+  private String createdUserId;
+
+    /**
+   * 更新人
+   */
+  @Excel(name = "更新人", orderNum = "12")
+  private String updateUserId;
+
+    /**
+   * 创建日期
+   */
+  @Excel(name = "创建日期", orderNum = "13")
+  private LocalDateTime createdTime;
+
+    /**
+   * 更新日期
+   */
+  @Excel(name = "更新日期", orderNum = "14")
+  private LocalDateTime updateTime;
+
+
+}

+ 88 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sb/SbStatusLogVO.java

@@ -0,0 +1,88 @@
+package com.platform.dao.vo.query.sb;
+
+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 future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbStatusLogVO extends BaseVO implements Serializable{
+
+    /**
+     * id
+     */
+private String id;
+    /**
+     * 设备id
+     */
+private String sbId;
+    /**
+     * 设备id
+     */
+    private String sbName;
+    /**
+     * 设备id
+     */
+    private String sbNo;
+    /**
+     * 设备id
+     */
+    private String sbModel;
+    /**
+     * 变更时间
+     */
+private LocalDateTime changeTime;
+    /**
+     * 变更原因
+     */
+private String changeReason;
+    /**
+     * 变更人
+     */
+private String changeUserId;
+    /**
+     * 变更前状态
+     */
+private Integer preStatus;
+    /**
+     * 变更后状态
+     */
+private Integer afterStatus;
+    /**
+     * 备注
+     */
+private String remark;
+    /**
+     * 创建人
+     */
+private String createdUserId;
+    /**
+     * 更新人
+     */
+private String updateUserId;
+    /**
+     * 创建日期
+     */
+private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+private LocalDateTime updateTime;
+
+
+
+}

+ 97 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sb/SbStopLogVO.java

@@ -0,0 +1,97 @@
+package com.platform.dao.vo.query.sb;
+
+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;
+import java.math.BigDecimal;
+
+/**
+ * @Description 设备停机记录表VO结果类
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbStopLogVO extends BaseVO implements Serializable{
+
+    /**
+     * id
+     */
+private String id;
+    /**
+     * 设备id
+     */
+private String sbId;
+    /**
+     * 设备id
+     */
+    private String sbName;
+    /**
+     * 设备id
+     */
+    private String sbNo;
+    /**
+     * 设备id
+     */
+    private String sbModel;
+    /**
+     * 停用时间
+     */
+private LocalDateTime stopTime;
+    /**
+     * 停用原因
+     */
+private String stopReason;
+    /**
+     * 停用人
+     */
+private String stopUserId;
+    /**
+     * 启用时间
+     */
+private LocalDateTime startTime;
+    /**
+     * 启用原因
+     */
+private String startReason;
+    /**
+     * 启用人
+     */
+private String startUserId;
+    /**
+     * 停机时长分钟
+     */
+private BigDecimal stopDuration;
+    /**
+     * 备注
+     */
+private String remark;
+    /**
+     * 创建人
+     */
+private String createdUserId;
+    /**
+     * 更新人
+     */
+private String updateUserId;
+    /**
+     * 创建日期
+     */
+private LocalDateTime createdTime;
+    /**
+     * 更新日期
+     */
+private LocalDateTime updateTime;
+
+
+
+}

+ 8 - 1
platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java

@@ -27,7 +27,14 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SparePartInfoVO extends BaseVO implements Serializable {
-
+    /**
+     * 使用周期:月
+     */
+    private BigDecimal usePeriod;
+    /**
+     * 采购到货周期:天
+     */
+    private BigDecimal purchasePeriod;
     /**
    * 主键
    */

+ 17 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbModelSpareBomVO.java

@@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
 import javax.persistence.Id;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -31,6 +32,22 @@ public class SbModelSpareBomVO extends BaseVO implements Serializable {
      * 周期类型: 参考数据字典
      */
     private Integer periodType;
+    /**
+     * 更換日期
+     */
+    private LocalDate checkDate;
+    /**
+     * 下次更換日期
+     */
+    private LocalDate nextCheckDate;
+    /**
+     * 更换里程/台时
+     */
+    private BigDecimal changeNum;
+    /**
+     * 下次更换里程/台时
+     */
+    private BigDecimal nextChangeNum;
     /**
      * 主键
      */

+ 9 - 1
platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml

@@ -4,13 +4,21 @@
 
     <sql id="Left_Column">
         bom.id, bom.period, bom.period_type, bom.num, bom.model_id, bom.sb_id, bom.sb_part_id,
+        bom.check_date,
+        bom.next_check_date,
+        bom.change_num,
+        bom.next_change_num,
         bom.spare_id, model.name, model.model, model.name_model, part.name as sbPartName
     </sql>
 
     <select id="selectExportList" parameterType="com.platform.dao.dto.sb.SbModelSpareBomDTO"
             resultType="com.platform.dao.vo.sb.SbModelSpareBomVO">
         select
-        bom.id, bom.model_id, bom.sb_id, bom.sb_part_id, bom.spare_id,model.name,model.model, part.name as sbPartName
+        bom.id,
+               bom.check_date,
+        bom.next_check_date,
+        bom.change_num,
+        bom.next_change_num,bom.model_id, bom.sb_id, bom.sb_part_id, bom.spare_id,model.name,model.model, part.name as sbPartName
         from t_sb_model_spare_bom bom, t_sb_model model
         LEFT JOIN t_part_info part on bom.sb_part_id = part.id
         where

+ 88 - 0
platform-dao/src/main/resources/mapper/sb/SbStatusLogMapper.xml

@@ -0,0 +1,88 @@
+<?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.sb.SbStatusLogMapper">
+    <sql id="Base_Column_List">
+                             sbStatusLog.id,
+                                     sbStatusLog.sb_id,
+                                     sbStatusLog.change_time,
+                                     sbStatusLog.change_reason,
+                                     sbStatusLog.change_user_id,
+                                     sbStatusLog.pre_status,
+                                     sbStatusLog.after_status,
+                                     sbStatusLog.remark,
+                                     sbStatusLog.created_user_id,
+                                     sbStatusLog.update_user_id,
+                                     sbStatusLog.created_time,
+                                     sbStatusLog.update_time
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         sbStatusLog.sb_id,
+                                     sbStatusLog.change_time,
+                                     sbStatusLog.change_reason,
+                                     sbStatusLog.change_user_id,
+                                     sbStatusLog.pre_status,
+                                     sbStatusLog.after_status,
+                                     sbStatusLog.remark,
+                                                                                                                                                                                                        </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and sbStatusLog.id = #{id}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and sbStatusLog.sb_id = #{sbId}
+                </if>
+                                                <if test="changeTime != null">
+                    and sbStatusLog.change_time = #{changeTime}
+                </if>
+                                                <if test="changeReason != null and changeReason != ''">
+                    and sbStatusLog.change_reason = #{changeReason}
+                </if>
+                                                <if test="changeUserId != null and changeUserId != ''">
+                    and sbStatusLog.change_user_id = #{changeUserId}
+                </if>
+                                                <if test="preStatus != null">
+                    and sbStatusLog.pre_status = #{preStatus}
+                </if>
+                                                <if test="afterStatus != null">
+                    and sbStatusLog.after_status = #{afterStatus}
+                </if>
+                                                <if test="remark != null and remark != ''">
+                    and sbStatusLog.remark = #{remark}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and sbStatusLog.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and sbStatusLog.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and sbStatusLog.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and sbStatusLog.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and sbStatusLog.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and sbStatusLog.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and sbStatusLog.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and sbStatusLog.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and sbStatusLog.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.sb.SbStatusLogDTO" resultType="com.platform.dao.vo.query.sb.SbStatusLogVO">
+        select sbStatusLog.*, sb.no as sbNo, sb.name as sbName, sb.model as sbModel
+        from t_sb_status_log sbStatusLog, t_sb_info sb
+        <where>
+            sbStatusLog.sb_id = sb.id
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 98 - 0
platform-dao/src/main/resources/mapper/sb/SbStopLogMapper.xml

@@ -0,0 +1,98 @@
+<?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.sb.SbStopLogMapper">
+    <sql id="Base_Column_List">
+                             sbStopLog.id,
+                                     sbStopLog.sb_id,
+                                     sbStopLog.stop_time,
+                                     sbStopLog.stop_reason,
+                                     sbStopLog.stop_user_id,
+                                     sbStopLog.start_time,
+                                     sbStopLog.start_reason,
+                                     sbStopLog.start_user_id,
+                                     sbStopLog.stop_duration,
+                                     sbStopLog.remark,
+                                     sbStopLog.created_user_id,
+                                     sbStopLog.update_user_id,
+                                     sbStopLog.created_time,
+                                     sbStopLog.update_time
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         sbStopLog.sb_id,
+                                     sbStopLog.stop_time,
+                                     sbStopLog.stop_reason,
+                                     sbStopLog.stop_user_id,
+                                     sbStopLog.start_time,
+                                     sbStopLog.start_reason,
+                                     sbStopLog.start_user_id,
+                                     sbStopLog.stop_duration,
+                                     sbStopLog.remark,
+                                                                                                                                                                                                        </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and sbStopLog.id = #{id}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and sbStopLog.sb_id = #{sbId}
+                </if>
+                                                <if test="stopTime != null">
+                    and sbStopLog.stop_time = #{stopTime}
+                </if>
+                                                <if test="stopReason != null and stopReason != ''">
+                    and sbStopLog.stop_reason = #{stopReason}
+                </if>
+                                                <if test="stopUserId != null and stopUserId != ''">
+                    and sbStopLog.stop_user_id = #{stopUserId}
+                </if>
+                                                <if test="startTime != null">
+                    and sbStopLog.start_time = #{startTime}
+                </if>
+                                                <if test="startReason != null and startReason != ''">
+                    and sbStopLog.start_reason = #{startReason}
+                </if>
+                                                <if test="startUserId != null and startUserId != ''">
+                    and sbStopLog.start_user_id = #{startUserId}
+                </if>
+                                                <if test="stopDuration != null">
+                    and sbStopLog.stop_duration = #{stopDuration}
+                </if>
+                                                <if test="remark != null and remark != ''">
+                    and sbStopLog.remark = #{remark}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and sbStopLog.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and sbStopLog.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and sbStopLog.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and sbStopLog.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and sbStopLog.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and sbStopLog.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and sbStopLog.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and sbStopLog.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and sbStopLog.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.sb.SbStopLogDTO" resultType="com.platform.dao.vo.query.sb.SbStopLogVO">
+        select sbStopLog.*, sb.no as sbNo, sb.name as sbName, sb.model as sbModel
+        from t_sb_stop_log sbStopLog, t_sb_info sb
+        <where>
+            sbStopLog.sb_id = sb.id
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 4 - 0
platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartInfoMapper.xml

@@ -32,6 +32,8 @@
         <result column="zjm" jdbcType="VARCHAR" property="zjm"/>
         <result column="cd" jdbcType="INTEGER" property="cd"/>
         <result column="yt" jdbcType="INTEGER" property="yt"/>
+        <result column="purchase_period" jdbcType="DATE" property="purchasePeriod"/>
+        <result column="use_period" jdbcType="DATE" property="usePeriod"/>
         <result column="remark" jdbcType="VARCHAR" property="remark"/>
         <result column="created_user_id" jdbcType="VARCHAR" property="createdUserId"/>
         <result column="update_user_id" jdbcType="VARCHAR" property="updateUserId"/>
@@ -45,6 +47,8 @@
     <sql id="Base_Column_List">
         id, no, unite_no, gg_no, name_no, name, type_id, level, initial_value, producer_id,
     unit,
+    purchase_period,
+    use_period,
     unit_bz,
     unit_rate,
     image,

+ 140 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbStatusLogController.java

@@ -0,0 +1,140 @@
+package com.platform.rest.controller.sb;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.sb.SbStatusLogDTO;
+import com.platform.dao.entity.sb.SbStatusLog;
+import com.platform.service.sb.SbStatusLogService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.sb.ExportSbStatusLogVO;
+import com.platform.dao.vo.query.sb.SbStatusLogVO;
+import com.platform.dao.bean.MyVOPage;
+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 future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sb/status-logs")
+public class SbStatusLogController {
+
+  private final  SbStatusLogService sbStatusLogService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<SbStatusLog> getById(@PathVariable("id") String id){
+      return new R<>(sbStatusLogService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param sbStatusLogDTO 设备状态变更记录DTO
+   * @return R
+   */
+  @SysLog("新增设备状态变更记录")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('sb-status-logs-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody SbStatusLogDTO sbStatusLogDTO) {
+      return new R<>(sbStatusLogService.saveModelByDTO(sbStatusLogDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param sbStatusLogDTO 设备状态变更记录DTO
+   * @return R
+   */
+  @SysLog("修改设备状态变更记录")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sb-status-logs-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody SbStatusLogDTO sbStatusLogDTO) {
+      sbStatusLogDTO.setId(id);
+      sbStatusLogService.modModelByDTO(sbStatusLogDTO);
+      return new R<>();
+  }
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备状态变更记录")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sb-status-logs-del')")
+  public R removeById(@PathVariable String id){
+    sbStatusLogService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除设备状态变更记录")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('sb-status-logs-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        sbStatusLogService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param sbStatusLogDTO 设备状态变更记录DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<MyVOPage<SbStatusLogVO>> query(SbStatusLogDTO sbStatusLogDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(sbStatusLogService.selectPageList(sbStatusLogDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param sbStatusLogDTO 设备状态变更记录DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(SbStatusLogDTO sbStatusLogDTO) {
+      return new R<>(sbStatusLogService.getModelListByDTO(sbStatusLogDTO));
+  }
+
+  /**
+     * 设备状态变更记录导出
+     *
+     * @param sbStatusLogDTO 设备状态变更记录DTO
+     */
+  @GetMapping("/export")
+  @SysLog("设备状态变更记录导出")
+  @PreAuthorize("@pms.hasPermission('sb-status-logs-export')")
+  public void export(HttpServletResponse response, SbStatusLogDTO sbStatusLogDTO) {
+    List<SbStatusLog> list = sbStatusLogService.getModelListByDTO(sbStatusLogDTO);
+    ExcelUtil.exportResponseDict(response, ExportSbStatusLogVO.class, BeanConverterUtil.copyListProperties(list, ExportSbStatusLogVO.class), "设备状态变更记录");
+  }
+
+}

+ 140 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbStopLogController.java

@@ -0,0 +1,140 @@
+package com.platform.rest.controller.sb;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.sb.SbStopLogDTO;
+import com.platform.dao.entity.sb.SbStopLog;
+import com.platform.service.sb.SbStopLogService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.sb.ExportSbStopLogVO;
+import com.platform.dao.vo.query.sb.SbStopLogVO;
+import com.platform.dao.bean.MyVOPage;
+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 future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sb/stop-logs")
+public class SbStopLogController {
+
+  private final  SbStopLogService sbStopLogService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<SbStopLog> getById(@PathVariable("id") String id){
+      return new R<>(sbStopLogService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param sbStopLogDTO 设备停机记录表DTO
+   * @return R
+   */
+  @SysLog("新增设备停机记录表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('sb-stop-logs-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody SbStopLogDTO sbStopLogDTO) {
+      return new R<>(sbStopLogService.saveModelByDTO(sbStopLogDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param sbStopLogDTO 设备停机记录表DTO
+   * @return R
+   */
+  @SysLog("修改设备停机记录表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sb-stop-logs-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody SbStopLogDTO sbStopLogDTO) {
+      sbStopLogDTO.setId(id);
+      sbStopLogService.modModelByDTO(sbStopLogDTO);
+      return new R<>();
+  }
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备停机记录表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sb-stop-logs-del')")
+  public R removeById(@PathVariable String id){
+    sbStopLogService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除设备停机记录表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('sb-stop-logs-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        sbStopLogService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param sbStopLogDTO 设备停机记录表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<MyVOPage<SbStopLogVO>> query(SbStopLogDTO sbStopLogDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(sbStopLogService.selectPageList(sbStopLogDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param sbStopLogDTO 设备停机记录表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(SbStopLogDTO sbStopLogDTO) {
+      return new R<>(sbStopLogService.getModelListByDTO(sbStopLogDTO));
+  }
+
+  /**
+     * 设备停机记录表导出
+     *
+     * @param sbStopLogDTO 设备停机记录表DTO
+     */
+  @GetMapping("/export")
+  @SysLog("设备停机记录表导出")
+  @PreAuthorize("@pms.hasPermission('sb-stop-logs-export')")
+  public void export(HttpServletResponse response, SbStopLogDTO sbStopLogDTO) {
+    List<SbStopLog> list = sbStopLogService.getModelListByDTO(sbStopLogDTO);
+    ExcelUtil.exportResponseDict(response, ExportSbStopLogVO.class, BeanConverterUtil.copyListProperties(list, ExportSbStopLogVO.class), "设备停机记录表");
+  }
+
+}

+ 34 - 0
platform-service/src/main/java/com/platform/service/sb/SbStatusLogService.java

@@ -0,0 +1,34 @@
+package com.platform.service.sb;
+
+import com.platform.dao.vo.query.sb.SbStatusLogVO;
+import com.platform.dao.dto.sb.SbStatusLogDTO;
+import com.platform.dao.entity.sb.SbStatusLog;
+import com.platform.dao.bean.MyVOPage;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 设备状态变更记录 service
+ * @Author future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface SbStatusLogService extends IBaseService<SbStatusLog, SbStatusLogDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record :
+     * @param pageNum :
+     * @param pageSize :
+     * @return :
+     */
+    MyVOPage<SbStatusLogVO> selectPageList(SbStatusLogDTO record, int pageNum, int pageSize);
+}

+ 34 - 0
platform-service/src/main/java/com/platform/service/sb/SbStopLogService.java

@@ -0,0 +1,34 @@
+package com.platform.service.sb;
+
+import com.platform.dao.vo.query.sb.SbStopLogVO;
+import com.platform.dao.dto.sb.SbStopLogDTO;
+import com.platform.dao.entity.sb.SbStopLog;
+import com.platform.dao.bean.MyVOPage;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 设备停机记录表 service
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface SbStopLogService extends IBaseService<SbStopLog, SbStopLogDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record :
+     * @param pageNum :
+     * @param pageSize :
+     * @return :
+     */
+    MyVOPage<SbStopLogVO> selectPageList(SbStopLogDTO record, int pageNum, int pageSize);
+}

+ 131 - 3
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -26,9 +26,7 @@ import com.platform.dao.entity.upms.SysUser;
 import com.platform.dao.entity.upms.SysUserDept;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.firm.FirmProducerMapper;
-import com.platform.dao.mapper.sb.SbInfoMapper;
-import com.platform.dao.mapper.sb.SbModelMapper;
-import com.platform.dao.mapper.sb.SbPositionMapper;
+import com.platform.dao.mapper.sb.*;
 import com.platform.dao.mapper.upms.SysDeptMapper;
 import com.platform.dao.mapper.upms.SysFileMapper;
 import com.platform.dao.mapper.upms.SysUserDeptMapper;
@@ -81,6 +79,10 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
 
     private final SysDeptMapper deptMapper;
 
+    private final SbStatusLogMapper sbStatusLogMapper;
+
+    private final SbStopLogMapper sbStopLogMapper;
+
     private final SysUserMapper sysUserMapper;
 
     private final SbPositionMapper sbPositionMapper;
@@ -194,9 +196,70 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         // 保存文件
         this.saveFile(model);
         setSaveDept(model);
+        saveSbStatusLogAndStopLog(model);
         return super.saveModelHaveCreateInfo(model);
     }
 
+    /**
+     *  如果是变更了状态,需要记录状态变更表,
+     *  如果是启用,则要更新停机记录表数据
+     *
+     * @param model
+     */
+    private void saveSbStatusLogAndStopLog(SbInfoDTO model) {
+
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        LocalDateTime now = LocalDateTime.now();
+        SbStatusLog log = new SbStatusLog();
+        log.setSbId(model.getId());
+        log.setId(IdGeneratorUtils.getObjectId());
+        log.setChangeReason("");
+        log.setAfterStatus(model.getStatus());
+        log.setPreStatus(SbInfoStatusEnum.IN_STORE.getValue());// 默认新增之前状态是在库
+        log.setChangeTime(now);
+        log.setChangeUserId(userInfo.getUserId());
+        log.setCreatedTime(now);
+        log.setCreatedUserId(userInfo.getUserId());
+        log.setUpdateTime(now);
+        log.setUpdateUserId(userInfo.getUserId());
+        log.setRemark("");
+        sbStatusLogMapper.insert(log);
+
+        // 新增停机记录
+        if(model.getStatus().equals(SbInfoStatusEnum.IN_STOP.getValue())){
+            SbStopLog stopLog = new SbStopLog();
+            stopLog.setId(IdGeneratorUtils.getObjectId());
+            stopLog.setSbId(model.getId());
+            stopLog.setStopTime(now);
+            stopLog.setStopUserId(userInfo.getUserId());
+            stopLog.setStopReason("");
+            stopLog.setStartReason("");
+            stopLog.setCreatedTime(now);
+            stopLog.setCreatedUserId(userInfo.getUserId());
+            stopLog.setUpdateTime(now);
+            stopLog.setUpdateUserId(userInfo.getUserId());
+            sbStopLogMapper.insert(stopLog);
+        }
+
+        // 更新开机记录,并记录时长
+        if(model.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
+            Weekend<SbStopLog> weekend = new Weekend<>(SbStopLog.class);
+            weekend.weekendCriteria().andEqualTo(SbStopLog::getSbId, model.getId()).andEqualTo(SbStopLog::getStatus, 0);
+            SbStopLog stopLog = sbStopLogMapper.selectOneByExample(weekend);
+            // 创建新的记录,直接跳过,不记录了
+            if(stopLog == null){
+                return;
+            }
+            stopLog.setStartUserId(userInfo.getUserId());
+            stopLog.setStartTime(now);
+            stopLog.setStatus(1);
+            stopLog.setStopDuration(new BigDecimal(DateUtils.getDurationMinutes(stopLog.getStopTime(), stopLog.getStartTime())));
+            stopLog.setUpdateTime(now);
+            stopLog.setUpdateUserId(userInfo.getUserId());
+            sbStopLogMapper.updateByPrimaryKey(stopLog);
+        }
+    }
+
     @Override
     public void modModelByDTO(SbInfoDTO model) {
 
@@ -219,7 +282,72 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         }
         this.saveFile(model);
         setSaveDept(model);
+        setSbStatusLogAndStopLog(model);
         super.modModelByDTO(model);
+
+    }
+
+    /**
+     *  如果是变更了状态,需要记录状态变更表,
+     *  如果是启用,则要更新停机记录表数据
+     *
+     * @param model
+     */
+    private void setSbStatusLogAndStopLog(SbInfoDTO model) {
+        SbInfo old = mapper.selectByPrimaryKey(model.getId());
+        if(old.getStatus() != null && old.getStatus().equals(model.getStatus())){
+            return;
+        }
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        LocalDateTime now = LocalDateTime.now();
+        SbStatusLog log = new SbStatusLog();
+        log.setSbId(model.getId());
+        log.setId(IdGeneratorUtils.getObjectId());
+        log.setChangeReason("");
+        log.setAfterStatus(model.getStatus());
+        log.setPreStatus(old.getStatus());
+        log.setChangeTime(now);
+        log.setChangeUserId(userInfo.getUserId());
+        log.setCreatedTime(now);
+        log.setCreatedUserId(userInfo.getUserId());
+        log.setUpdateTime(now);
+        log.setUpdateUserId(userInfo.getUserId());
+        log.setRemark("");
+        sbStatusLogMapper.insert(log);
+
+        // 新增停机记录
+        if(model.getStatus().equals(SbInfoStatusEnum.IN_STOP.getValue())){
+            SbStopLog stopLog = new SbStopLog();
+            stopLog.setId(IdGeneratorUtils.getObjectId());
+            stopLog.setSbId(model.getId());
+            stopLog.setStopTime(now);
+            stopLog.setStopUserId(userInfo.getUserId());
+            stopLog.setStopReason("");
+            stopLog.setCreatedTime(now);
+            stopLog.setCreatedUserId(userInfo.getUserId());
+            stopLog.setUpdateTime(now);
+            stopLog.setStatus(0);
+            stopLog.setUpdateUserId(userInfo.getUserId());
+            sbStopLogMapper.insert(stopLog);
+        }
+
+        // 更新开机记录,并记录时长
+        if(model.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
+            Weekend<SbStopLog> weekend = new Weekend<>(SbStopLog.class);
+            weekend.weekendCriteria().andEqualTo(SbStopLog::getSbId, model.getId()).andEqualTo(SbStopLog::getStatus, 0);
+            SbStopLog stopLog = sbStopLogMapper.selectOneByExample(weekend);
+            // 创建新的记录,直接跳过,不记录了
+            if(stopLog == null){
+                return;
+            }
+            stopLog.setStartUserId(userInfo.getUserId());
+            stopLog.setStartTime(now);
+            stopLog.setStatus(1);
+            stopLog.setStopDuration(new BigDecimal(DateUtils.getDurationMinutes(stopLog.getStopTime(), stopLog.getStartTime())));
+            stopLog.setUpdateTime(now);
+            stopLog.setUpdateUserId(userInfo.getUserId());
+            sbStopLogMapper.updateByPrimaryKey(stopLog);
+        }
     }
 
     /**

+ 49 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbStatusLogServiceImpl.java

@@ -0,0 +1,49 @@
+package com.platform.service.sb.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.platform.dao.bean.MyVOPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.sb.SbStatusLogVO;
+import com.platform.dao.dto.sb.SbStatusLogDTO;
+import com.platform.dao.entity.sb.SbStatusLog;
+import com.platform.dao.mapper.sb.SbStatusLogMapper;
+import com.platform.service.sb.SbStatusLogService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 设备状态变更记录 service 实现类
+ * @Author future
+ * @Date 2021-05-15 18:37:43
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("sbStatusLogService")
+public class SbStatusLogServiceImpl extends BaseServiceImpl<SbStatusLogMapper, SbStatusLog, SbStatusLogDTO> implements SbStatusLogService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<SbStatusLog> weekend = new Weekend<>(SbStatusLog.class);
+        WeekendCriteria<SbStatusLog, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbStatusLog::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public MyVOPage<SbStatusLogVO> selectPageList(SbStatusLogDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyVOPage<>(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<SbStatusLog> selectPageInfo(SbStatusLogDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage<>(this.getModelListByDTO(record));
+    }
+}

+ 49 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbStopLogServiceImpl.java

@@ -0,0 +1,49 @@
+package com.platform.service.sb.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.platform.dao.bean.MyVOPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.sb.SbStopLogVO;
+import com.platform.dao.dto.sb.SbStopLogDTO;
+import com.platform.dao.entity.sb.SbStopLog;
+import com.platform.dao.mapper.sb.SbStopLogMapper;
+import com.platform.service.sb.SbStopLogService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 设备停机记录表 service 实现类
+ * @Author future
+ * @Date 2021-05-15 21:34:24
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("sbStopLogService")
+public class SbStopLogServiceImpl extends BaseServiceImpl<SbStopLogMapper, SbStopLog, SbStopLogDTO> implements SbStopLogService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<SbStopLog> weekend = new Weekend<>(SbStopLog.class);
+        WeekendCriteria<SbStopLog, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbStopLog::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public MyVOPage<SbStopLogVO> selectPageList(SbStopLogDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyVOPage<>(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<SbStopLog> selectPageInfo(SbStopLogDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage<>(this.getModelListByDTO(record));
+    }
+}