1 سال پیش
والد
کامیت
b8de56109c
25فایلهای تغییر یافته به همراه1496 افزوده شده و 0 حذف شده
  1. 4 0
      platform-common/src/main/java/com/platform/common/util/IdGeneratorUtils.java
  2. 1 0
      platform-common/src/main/resources/refuseUnusedEmail.vm
  3. 1 0
      platform-common/src/main/resources/unusedEmail.vm
  4. 1 0
      platform-common/src/main/resources/unusedSuccessEmail.vm
  5. 87 0
      platform-dao/src/main/java/com/platform/dao/dto/sbUnused/SbUnusedDTO.java
  6. 74 0
      platform-dao/src/main/java/com/platform/dao/dto/sbUnuseddetail/SbUnusedDetailDTO.java
  7. 71 0
      platform-dao/src/main/java/com/platform/dao/entity/sbUnused/SbUnused.java
  8. 65 0
      platform-dao/src/main/java/com/platform/dao/entity/sbUnuseddetail/SbUnusedDetail.java
  9. 36 0
      platform-dao/src/main/java/com/platform/dao/enums/SbUnusedStatusEnum.java
  10. 5 0
      platform-dao/src/main/java/com/platform/dao/enums/WorkplaceBacklogDetailTypeEnum.java
  11. 27 0
      platform-dao/src/main/java/com/platform/dao/mapper/sbUnused/SbUnusedMapper.java
  12. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/sbUnuseddetail/SbUnusedDetailMapper.java
  13. 90 0
      platform-dao/src/main/java/com/platform/dao/util/MessageTemplateUtil.java
  14. 75 0
      platform-dao/src/main/java/com/platform/dao/vo/export/sbUnused/ExportSbUnusedVO.java
  15. 63 0
      platform-dao/src/main/java/com/platform/dao/vo/export/sbUnuseddetail/ExportSbUnusedDetailVO.java
  16. 71 0
      platform-dao/src/main/java/com/platform/dao/vo/query/sbUnused/SbUnusedVO.java
  17. 63 0
      platform-dao/src/main/java/com/platform/dao/vo/query/sbUnuseddetail/SbUnusedDetailVO.java
  18. 80 0
      platform-dao/src/main/resources/mapper/sbUnused/SbUnusedMapper.xml
  19. 62 0
      platform-dao/src/main/resources/mapper/sbUnuseddetail/SbUnusedDetailMapper.xml
  20. 155 0
      platform-rest/src/main/java/com/platform/rest/controller/sbUnused/SbUnusedController.java
  21. 141 0
      platform-rest/src/main/java/com/platform/rest/controller/sbUnuseddetail/SbUnusedDetailController.java
  22. 37 0
      platform-service/src/main/java/com/platform/service/sbUnused/SbUnusedService.java
  23. 176 0
      platform-service/src/main/java/com/platform/service/sbUnused/impl/SbUnusedServiceImpl.java
  24. 35 0
      platform-service/src/main/java/com/platform/service/sbUnuseddetail/SbUnusedDetailService.java
  25. 50 0
      platform-service/src/main/java/com/platform/service/sbUnuseddetail/impl/SbUnusedDetailServiceImpl.java

+ 4 - 0
platform-common/src/main/java/com/platform/common/util/IdGeneratorUtils.java

@@ -185,6 +185,10 @@ public class IdGeneratorUtils {
     public static String getPurchaseNo(Integer countNum) {
         return getProjectNum("CGD", countNum);
     }
+
+    public static String getUnusedSbNo(Integer countNum) {
+        return getProjectNum("XZD", countNum);
+    }
     /**
      * 生成出库单号
      *

+ 1 - 0
platform-common/src/main/resources/refuseUnusedEmail.vm

@@ -0,0 +1 @@
+您有一个闲置单审核被拒,单号:${no},闲置名称: ${name},点此跳转修改:${url}

+ 1 - 0
platform-common/src/main/resources/unusedEmail.vm

@@ -0,0 +1 @@
+有一条新的闲置待审消息,单号:${no},闲置名称: ${name},点此跳转审核:${url}

+ 1 - 0
platform-common/src/main/resources/unusedSuccessEmail.vm

@@ -0,0 +1 @@
+您有有一条的闲置设备已审核通过!单号:${no},闲置名称: ${name}

+ 87 - 0
platform-dao/src/main/java/com/platform/dao/dto/sbUnused/SbUnusedDTO.java

@@ -0,0 +1,87 @@
+package com.platform.dao.dto.sbUnused;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.sb.SbInfoDTO;
+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.util.List;
+
+/**
+ * @Description 设备闲置表DTO
+ * @Author lsq
+ * @Date 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbUnusedDTO extends BaseDTO implements Serializable {
+    private String advice;
+    private List<SbInfoDTO> sbInfoDTOS;
+    private String no;
+
+      /**
+     *
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 闲置名称
+     */
+          private String name;
+          /**
+     * 申请时间
+     */
+        private LocalDateTime applyTime;
+      /**
+       * 申请时间开始
+       */
+      private LocalDateTime applyTimeStart;
+      /**
+       * 申请时间结束
+       */
+      private LocalDateTime applyTimeEnd;
+          /**
+     * 申请人
+     */
+          private String applyUserId;
+          /**
+     * 申请状态
+     */
+          private Integer status;
+          /**
+     *
+     */
+          private String createdUserId;
+          /**
+     *
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     *
+     */
+          private String updateUserId;
+          /**
+     * 审核人
+     */
+          private String verityUserId;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 74 - 0
platform-dao/src/main/java/com/platform/dao/dto/sbUnuseddetail/SbUnusedDetailDTO.java

@@ -0,0 +1,74 @@
+package com.platform.dao.dto.sbUnuseddetail;
+
+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 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbUnusedDetailDTO extends BaseDTO implements Serializable {
+
+      /**
+     * 
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 
+     */
+          private String sbUnusedId;
+          /**
+     * 
+     */
+          private String sbId;
+          /**
+     * 
+     */
+          private String createdUserId;
+          /**
+     * 
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     * 
+     */
+          private String updateUserId;
+          /**
+     * 
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 71 - 0
platform-dao/src/main/java/com/platform/dao/entity/sbUnused/SbUnused.java

@@ -0,0 +1,71 @@
+package com.platform.dao.entity.sbUnused;
+
+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 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_sb_unused")
+public class SbUnused implements Serializable{
+    private String advice;//意见
+    private String no;
+
+    /**
+     *
+     */
+        @Id
+    private String id;
+    /**
+     * 闲置名称
+     */
+    private String name;
+    /**
+     * 申请时间
+     */
+    private LocalDateTime applyTime;
+    /**
+     * 申请人
+     */
+    private String applyUserId;
+    /**
+     * 申请状态
+     */
+    private Integer status;
+    /**
+     *
+     */
+    private String createdUserId;
+    /**
+     *
+     */
+    private LocalDateTime createdTime;
+    /**
+     *
+     */
+    private String updateUserId;
+    /**
+     * 审核人
+     */
+    private String verityUserId;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 65 - 0
platform-dao/src/main/java/com/platform/dao/entity/sbUnuseddetail/SbUnusedDetail.java

@@ -0,0 +1,65 @@
+package com.platform.dao.entity.sbUnuseddetail;
+
+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 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_sb_unused_detail")
+public class SbUnusedDetail implements Serializable{
+    private String sbName;
+    private String positionNo;
+    private String ggxh;
+    private String sbNo;
+
+    /**
+     *
+     */
+        @Id
+    private String id;
+    /**
+     *
+     */
+    private String sbUnusedId;
+    /**
+     *
+     */
+    private String sbId;
+    /**
+     *
+     */
+    private String createdUserId;
+    /**
+     *
+     */
+    private LocalDateTime createdTime;
+    /**
+     *
+     */
+    private String updateUserId;
+    /**
+     *
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 36 - 0
platform-dao/src/main/java/com/platform/dao/enums/SbUnusedStatusEnum.java

@@ -0,0 +1,36 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 设备状态
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum SbUnusedStatusEnum {
+
+    /**
+     *一审中
+     */
+    verifying_one(1),
+
+    /**
+     *二审中
+     */
+    verifying_two(2),
+    /**
+     * 审核通过
+     */
+    success(3),
+    /**
+     * 审核被拒
+     */
+    refused(4)
+    ;
+    private final Integer value;
+
+}

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/enums/WorkplaceBacklogDetailTypeEnum.java

@@ -117,6 +117,11 @@ public enum WorkplaceBacklogDetailTypeEnum {
     SPARE_MIN_WARN(400, "备件不足提醒"),
     SPARE_STORE_MIN_WARN(401, "仓库备件不足提醒"),
 
+    /**
+     * 设备闲置
+     */
+    SB_UNUSED_VERIFY(2000, "设备闲置审核"),
+
     /**
      * 巡检
      */

+ 27 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sbUnused/SbUnusedMapper.java

@@ -0,0 +1,27 @@
+package com.platform.dao.mapper.sbUnused;
+
+import com.platform.dao.dto.sbUnused.SbUnusedDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.sbUnused.SbUnused;
+import com.platform.dao.vo.query.sbUnused.SbUnusedVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 设备闲置表 mapper
+ * @Author lsq
+ * @Date 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface SbUnusedMapper extends MyMapper<SbUnused> {
+    SbUnusedVO getUnusedVO(String id);
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<SbUnusedVO> selectList(SbUnusedDTO dto);
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sbUnuseddetail/SbUnusedDetailMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.sbUnuseddetail;
+
+import com.platform.dao.dto.sbUnuseddetail.SbUnusedDetailDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.sbUnuseddetail.SbUnusedDetail;
+import com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 闲置详情表 mapper
+ * @Author lsq
+ * @Date 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface SbUnusedDetailMapper extends MyMapper<SbUnusedDetail> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<SbUnusedDetailVO> selectList(SbUnusedDetailDTO dto);
+
+}

+ 90 - 0
platform-dao/src/main/java/com/platform/dao/util/MessageTemplateUtil.java

@@ -3,6 +3,7 @@ package com.platform.dao.util;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.util.StringUtils;
 import com.platform.dao.dto.repair.RepairApplicationFormDTO;
+import com.platform.dao.dto.sbUnused.SbUnusedDTO;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.enums.PreparationStatusEnum;
 import com.platform.dao.vo.sb.SbInfoVO;
@@ -272,6 +273,95 @@ public class MessageTemplateUtil {
         }
     }
 
+    public static String getUnusedSbVmHtmlContent(String url, SbUnusedDTO model){
+        //构造填充数据的Map
+        Map<String,String> map = new HashMap();
+        map.put("name", model.getName());
+        map.put("no", model.getNo());
+        map.put("url",url );
+
+        //初始化参数
+        Properties properties=new Properties();
+        //设置velocity资源加载方式为class
+        properties.setProperty("resource.loader", "class");
+        //设置velocity资源加载方式为file时的处理类
+        properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
+        //实例化一个VelocityEngine对象
+        VelocityEngine velocityEngine=new VelocityEngine(properties);
+
+        //实例化一个VelocityContext
+        VelocityContext context=new VelocityContext(map);
+        try {
+            //渲染模板
+            StringWriter sw = new StringWriter();
+            velocityEngine.mergeTemplate("unusedEmail.vm", "utf-8", context, sw);
+            System.out.println(sw.toString());
+            return sw.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException("闲置邮件模板解析出错。" + e.getMessage());
+        }
+    }
+
+    public static String getUnusedSbSuccessVmHtmlContent(SbUnusedDTO model){
+        //构造填充数据的Map
+        Map<String,String> map = new HashMap();
+        map.put("name", model.getName());
+        map.put("no", model.getNo());
+
+        //初始化参数
+        Properties properties=new Properties();
+        //设置velocity资源加载方式为class
+        properties.setProperty("resource.loader", "class");
+        //设置velocity资源加载方式为file时的处理类
+        properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
+        //实例化一个VelocityEngine对象
+        VelocityEngine velocityEngine=new VelocityEngine(properties);
+
+        //实例化一个VelocityContext
+        VelocityContext context=new VelocityContext(map);
+        try {
+            //渲染模板
+            StringWriter sw = new StringWriter();
+            velocityEngine.mergeTemplate("unusedSuccessEmail.vm", "utf-8", context, sw);
+            System.out.println(sw.toString());
+            return sw.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException("闲置邮件模板解析出错。" + e.getMessage());
+        }
+    }
+
+    public static String getRefuseUnusedSbVmHtmlContent(String url, SbUnusedDTO model){
+        //构造填充数据的Map
+        Map<String,String> map = new HashMap();
+        map.put("name", model.getName());
+        map.put("no", model.getNo());
+        map.put("url",url );
+
+        //初始化参数
+        Properties properties=new Properties();
+        //设置velocity资源加载方式为class
+        properties.setProperty("resource.loader", "class");
+        //设置velocity资源加载方式为file时的处理类
+        properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
+        //实例化一个VelocityEngine对象
+        VelocityEngine velocityEngine=new VelocityEngine(properties);
+
+        //实例化一个VelocityContext
+        VelocityContext context=new VelocityContext(map);
+        try {
+            //渲染模板
+            StringWriter sw = new StringWriter();
+            velocityEngine.mergeTemplate("refuseUnusedEmail.vm", "utf-8", context, sw);
+            System.out.println(sw.toString());
+            return sw.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException("闲置邮件模板解析出错。" + e.getMessage());
+        }
+    }
+
     public static void main(String[] args) {
         //初始化参数
         Properties properties=new Properties();

+ 75 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/sbUnused/ExportSbUnusedVO.java

@@ -0,0 +1,75 @@
+package com.platform.dao.vo.export.sbUnused;
+
+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 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportSbUnusedVO implements Serializable {
+
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "1")
+      private String id;
+    
+    /**
+   * 闲置名称
+   */
+          @Excel(name = "闲置名称", orderNum = "2")
+      private String name;
+    
+    /**
+   * 申请时间
+   */
+          @Excel(name = "申请时间", orderNum = "3")
+      private LocalDateTime applyTime;
+    
+    /**
+   * 申请人
+   */
+          @Excel(name = "申请人", orderNum = "4")
+      private String applyUserId;
+    
+    /**
+   * 申请状态
+   */
+          @Excel(name = "申请状态", orderNum = "5")
+      private Integer status;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "6")
+      private String createdUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "7")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "8")
+      private String updateUserId;
+    
+    /**
+   * 审核人
+   */
+          @Excel(name = "审核人", orderNum = "9")
+      private String verityUserId;
+    
+  
+}

+ 63 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/sbUnuseddetail/ExportSbUnusedDetailVO.java

@@ -0,0 +1,63 @@
+package com.platform.dao.vo.export.sbUnuseddetail;
+
+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 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportSbUnusedDetailVO implements Serializable {
+
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "1")
+      private String id;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "2")
+      private String sbUnusedId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "3")
+      private String sbId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "4")
+      private String createdUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "5")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "6")
+      private String updateUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "7")
+      private LocalDateTime updateTime;
+    
+  
+}

+ 71 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sbUnused/SbUnusedVO.java

@@ -0,0 +1,71 @@
+package com.platform.dao.vo.query.sbUnused;
+
+import com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO;
+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.util.List;
+
+/**
+ * @Description 设备闲置表VO结果类
+ * @Author lsq
+ * @Date 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbUnusedVO extends BaseVO implements Serializable{
+    private String applyName;
+    private String advice;//意见
+
+    private List<SbUnusedDetailVO> sbUnusedDetailVOS;
+    private String no;
+
+    /**
+     *
+     */
+        private String id;
+        /**
+     * 闲置名称
+     */
+        private String name;
+        /**
+     * 申请时间
+     */
+        private LocalDateTime applyTime;
+        /**
+     * 申请人
+     */
+        private String applyUserId;
+        /**
+     * 申请状态
+     */
+        private Integer status;
+        /**
+     *
+     */
+        private String createdUserId;
+        /**
+     *
+     */
+        private LocalDateTime createdTime;
+        /**
+     *
+     */
+        private String updateUserId;
+        /**
+     * 审核人
+     */
+        private String verityUserId;
+
+
+
+}

+ 63 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sbUnuseddetail/SbUnusedDetailVO.java

@@ -0,0 +1,63 @@
+package com.platform.dao.vo.query.sbUnuseddetail;
+
+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 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SbUnusedDetailVO extends BaseVO implements Serializable{
+    private String sbName;
+
+    private String ggxh;
+
+    private String positionNo;
+
+    private String sbNo;
+
+    /**
+     *
+     */
+        private String id;
+        /**
+     *
+     */
+        private String sbUnusedId;
+        /**
+     *
+     */
+        private String sbId;
+        /**
+     *
+     */
+        private String createdUserId;
+        /**
+     *
+     */
+        private LocalDateTime createdTime;
+        /**
+     *
+     */
+        private String updateUserId;
+        /**
+     *
+     */
+        private LocalDateTime updateTime;
+
+
+
+}

+ 80 - 0
platform-dao/src/main/resources/mapper/sbUnused/SbUnusedMapper.xml

@@ -0,0 +1,80 @@
+<?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.sbUnused.SbUnusedMapper">
+    <sql id="Base_Column_List">
+                             unused.id,
+                                     unused.name,
+                                     unused.apply_time,
+                                     unused.apply_user_id,
+                                     unused.status,
+                                     unused.created_user_id,
+                                     unused.created_time,
+                                     unused.update_user_id,
+                                     unused.verity_user_id
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         unused.name,
+                                     unused.apply_time,
+                                     unused.apply_user_id,
+                                     unused.status,
+                                                                                                                                                                         unused.verity_user_id
+                                </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and unused.id = #{id}
+                </if>
+                                                <if test="name != null and name != ''">
+                    and unused.name = #{name}
+                </if>
+                                                <if test="applyTimeStart != null">
+                    and unused.apply_time <![CDATA[>=]]>; #{applyTimeStart}
+                </if>
+                <if test="applyTimeEnd != null">
+                    and unused.apply_time <![CDATA[<=]]> #{applyTimeEnd}
+                </if>
+                <if test="applyTime != null">
+                    and unused.apply_time = #{applyTime}
+                </if>
+                                                <if test="applyUserId != null and applyUserId != ''">
+                    and unused.apply_user_id = #{applyUserId}
+                </if>
+                                                <if test="status != null">
+                    and unused.status = #{status}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and unused.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and unused.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and unused.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and unused.created_time = #{createdTime}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and unused.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="verityUserId != null and verityUserId != ''">
+                    and unused.verity_user_id = #{verityUserId}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and unused.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.sbUnused.SbUnusedDTO" resultType="com.platform.dao.vo.query.sbUnused.SbUnusedVO">
+        select unused.*
+                                                                                                                                                                                                    from t_sb_unused as unused
+                                                                                                                                                                                                    <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+
+    <select id="getUnusedVO" parameterType="java.lang.String"
+    resultType="com.platform.dao.vo.query.sbUnused.SbUnusedVO">
+        select unused.*,user.username as applyName from t_sb_unused unused left join t_sys_user user
+        on unused.apply_user_id = user.user_id
+        where id = #{id}
+    </select>
+</mapper>

+ 62 - 0
platform-dao/src/main/resources/mapper/sbUnuseddetail/SbUnusedDetailMapper.xml

@@ -0,0 +1,62 @@
+<?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.sbUnuseddetail.SbUnusedDetailMapper">
+    <sql id="Base_Column_List">
+                             unusedDetails.id,
+                                     unusedDetails.sb_unused_id,
+                                     unusedDetails.sb_id,
+                                     unusedDetails.created_user_id,
+                                     unusedDetails.created_time,
+                                     unusedDetails.update_user_id,
+                                     unusedDetails.update_time
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         unusedDetails.sb_unused_id,
+                                     unusedDetails.sb_id,
+                                                                                                                                                                                                        </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and unusedDetails.id = #{id}
+                </if>
+                                                <if test="sbUnusedId != null and sbUnusedId != ''">
+                    and unusedDetails.sb_unused_id = #{sbUnusedId}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and unusedDetails.sb_id = #{sbId}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and unusedDetails.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and unusedDetails.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and unusedDetails.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and unusedDetails.created_time = #{createdTime}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and unusedDetails.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and unusedDetails.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and unusedDetails.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and unusedDetails.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and unusedDetails.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.sbUnuseddetail.SbUnusedDetailDTO" resultType="com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO">
+        select unusedDetails.*
+        from t_sb_unused_detail as unusedDetails
+                                                                                                                                                            <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 155 - 0
platform-rest/src/main/java/com/platform/rest/controller/sbUnused/SbUnusedController.java

@@ -0,0 +1,155 @@
+package com.platform.rest.controller.sbUnused;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.sbUnused.SbUnusedDTO;
+import com.platform.dao.entity.sbUnused.SbUnused;
+import com.platform.service.sbUnused.SbUnusedService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.sbUnused.ExportSbUnusedVO;
+import com.platform.dao.vo.query.sbUnused.SbUnusedVO;
+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 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sbUnused/unused")
+public class SbUnusedController {
+
+  private final  SbUnusedService sbUnusedService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<SbUnused> getById(@PathVariable("id") String id){
+      return new R<>(sbUnusedService.getModelById(id));
+  }
+
+  @GetMapping("/queryById")
+  public R<SbUnusedVO> getById2( String id){
+    return new R<>(sbUnusedService.getModelById2(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param sbUnusedDTO 设备闲置表DTO
+   * @return R
+   */
+  @SysLog("新增设备闲置表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('sbUnused-unused-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody SbUnusedDTO sbUnusedDTO) {
+      return new R<>(sbUnusedService.saveModelByDTO(sbUnusedDTO));
+  }
+
+
+  @SysLog("闲置设备审核")
+  @PostMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sbUnused-unused-add')")
+  public R unusedVerify(@PathVariable String id,@RequestBody SbUnusedDTO dto) {
+    sbUnusedService.unusedVerify(id,dto);
+    return new R<>();
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param sbUnusedDTO 设备闲置表DTO
+   * @return R
+   */
+  @SysLog("修改设备闲置表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sbUnused-unused-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody SbUnusedDTO sbUnusedDTO) {
+      sbUnusedService.modModelByDTO(sbUnusedDTO);
+      return new R<>();
+  }
+
+
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除设备闲置表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sbUnused-unused-del')")
+  public R removeById(@PathVariable String id){
+    sbUnusedService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除设备闲置表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('sbUnused-unused-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        sbUnusedService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param sbUnusedDTO 设备闲置表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<SbUnusedVO>> query(SbUnusedDTO sbUnusedDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(sbUnusedService.selectPageList(sbUnusedDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param sbUnusedDTO 设备闲置表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(SbUnusedDTO sbUnusedDTO) {
+      return new R<>(sbUnusedService.getModelListByDTO(sbUnusedDTO));
+  }
+
+  /**
+     * 设备闲置表导出
+     *
+     * @param sbUnusedDTO 设备闲置表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("设备闲置表导出")
+  @PreAuthorize("@pms.hasPermission('sbUnused-unused-export')")
+  public void export(HttpServletResponse response, SbUnusedDTO sbUnusedDTO) {
+    List<SbUnused> list = sbUnusedService.getModelListByDTO(sbUnusedDTO);
+    ExcelUtil.exportResponseDict(response, ExportSbUnusedVO.class, BeanConverterUtil.copyListProperties(list, ExportSbUnusedVO.class), "设备闲置表");
+  }
+
+}

+ 141 - 0
platform-rest/src/main/java/com/platform/rest/controller/sbUnuseddetail/SbUnusedDetailController.java

@@ -0,0 +1,141 @@
+package com.platform.rest.controller.sbUnuseddetail;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.sbUnuseddetail.SbUnusedDetailDTO;
+import com.platform.dao.entity.sbUnuseddetail.SbUnusedDetail;
+import com.platform.service.sbUnuseddetail.SbUnusedDetailService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.sbUnuseddetail.ExportSbUnusedDetailVO;
+import com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO;
+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 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sbUnuseddetail/unusedDetail")
+public class SbUnusedDetailController {
+
+  private final  SbUnusedDetailService sbUnusedDetailService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<SbUnusedDetail> getById(@PathVariable("id") String id){
+      return new R<>(sbUnusedDetailService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param sbUnusedDetailDTO 闲置详情表DTO
+   * @return R
+   */
+  @SysLog("新增闲置详情表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('sbUnuseddetail-unusedDetail-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody SbUnusedDetailDTO sbUnusedDetailDTO) {
+      return new R<>(sbUnusedDetailService.saveModelByDTO(sbUnusedDetailDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param sbUnusedDetailDTO 闲置详情表DTO
+   * @return R
+   */
+  @SysLog("修改闲置详情表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sbUnuseddetail-unusedDetail-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody SbUnusedDetailDTO sbUnusedDetailDTO) {
+      sbUnusedDetailService.modModelByDTO(sbUnusedDetailDTO);
+      return new R<>();
+  }
+
+
+                                            
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除闲置详情表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('sbUnuseddetail-unusedDetail-del')")
+  public R removeById(@PathVariable String id){
+    sbUnusedDetailService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除闲置详情表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('sbUnuseddetail-unusedDetail-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        sbUnusedDetailService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param sbUnusedDetailDTO 闲置详情表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<SbUnusedDetailVO>> query(SbUnusedDetailDTO sbUnusedDetailDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(sbUnusedDetailService.selectPageList(sbUnusedDetailDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param sbUnusedDetailDTO 闲置详情表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(SbUnusedDetailDTO sbUnusedDetailDTO) {
+      return new R<>(sbUnusedDetailService.getModelListByDTO(sbUnusedDetailDTO));
+  }
+
+  /**
+     * 闲置详情表导出
+     *
+     * @param sbUnusedDetailDTO 闲置详情表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("闲置详情表导出")
+  @PreAuthorize("@pms.hasPermission('sbUnuseddetail-unusedDetail-export')")
+  public void export(HttpServletResponse response, SbUnusedDetailDTO sbUnusedDetailDTO) {
+    List<SbUnusedDetail> list = sbUnusedDetailService.getModelListByDTO(sbUnusedDetailDTO);
+    ExcelUtil.exportResponseDict(response, ExportSbUnusedDetailVO.class, BeanConverterUtil.copyListProperties(list, ExportSbUnusedDetailVO.class), "闲置详情表");
+  }
+
+}

+ 37 - 0
platform-service/src/main/java/com/platform/service/sbUnused/SbUnusedService.java

@@ -0,0 +1,37 @@
+package com.platform.service.sbUnused;
+
+import com.platform.dao.vo.query.sbUnused.SbUnusedVO;
+import com.platform.dao.dto.sbUnused.SbUnusedDTO;
+import com.platform.dao.entity.sbUnused.SbUnused;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 设备闲置表 service
+ * @Author lsq
+ * @Date 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface SbUnusedService extends IBaseService<SbUnused, SbUnusedDTO> {
+    SbUnusedVO getModelById2(String id);
+    void unusedVerify(String id,SbUnusedDTO dto);
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<SbUnusedVO> selectPageList(SbUnusedDTO record, int pageNum, int pageSize);
+
+                                                                                                                }

+ 176 - 0
platform-service/src/main/java/com/platform/service/sbUnused/impl/SbUnusedServiceImpl.java

@@ -0,0 +1,176 @@
+package com.platform.service.sbUnused.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.cache.ConfigCache;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.model.UserInfo;
+import com.platform.common.util.*;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
+import com.platform.dao.dto.repair.RepairApplicationFormDTO;
+import com.platform.dao.dto.sb.SbInfoDTO;
+import com.platform.dao.dto.sbUnuseddetail.SbUnusedDetailDTO;
+import com.platform.dao.entity.sbUnuseddetail.SbUnusedDetail;
+import com.platform.dao.enums.SbUnusedStatusEnum;
+import com.platform.dao.enums.SysConfigEnum;
+import com.platform.dao.enums.WorkplaceBacklogDetailTypeEnum;
+import com.platform.dao.enums.WorkplaceBacklogTypeEnum;
+import com.platform.dao.mapper.sbUnuseddetail.SbUnusedDetailMapper;
+import com.platform.dao.util.MessageTemplateUtil;
+import com.platform.dao.vo.query.project.ProjectVO;
+import com.platform.dao.vo.query.sbUnused.SbUnusedVO;
+import com.platform.dao.dto.sbUnused.SbUnusedDTO;
+import com.platform.dao.entity.sbUnused.SbUnused;
+import com.platform.dao.mapper.sbUnused.SbUnusedMapper;
+import com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO;
+import com.platform.service.event.WorkplaceBacklogEvent;
+import com.platform.service.sbUnused.SbUnusedService;
+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.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 设备闲置表 service 实现类
+ * @Author lsq
+ * @Date 2023-08-22 15:50:16
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("sbUnusedService")
+public class SbUnusedServiceImpl extends BaseServiceImpl<SbUnusedMapper, SbUnused, SbUnusedDTO> implements SbUnusedService {
+
+    private SbUnusedDetailMapper sbUnusedDetailMapper;
+
+    @Override
+    public SbUnusedVO getModelById2(String id) {
+
+        SbUnusedVO vo = mapper.getUnusedVO(id);
+        SbUnusedDetailDTO queryDetail = new SbUnusedDetailDTO();
+        queryDetail.setSbUnusedId(id);
+        List<SbUnusedDetailVO> sbUnusedDetailVOS = sbUnusedDetailMapper.selectList(queryDetail);
+        vo.setSbUnusedDetailVOS(sbUnusedDetailVOS);
+        return vo;
+    }
+
+    @Override
+    public void unusedVerify(String id, SbUnusedDTO dto) {
+        SbUnused unused = mapper.selectByPrimaryKey(id);
+        List<String> userIds = new ArrayList<>();
+
+        String domain = getAndCheckPcDomain();
+
+        //审核被拒,通知申请人
+        if (dto.getStatus()==SbUnusedStatusEnum.refused.getValue()){
+            userIds.add(unused.getApplyUserId());
+            String unusedUrl = domain + "sbUnused/unused?id=" + unused.getId();
+            String info = MessageTemplateUtil.getRefuseUnusedSbVmHtmlContent(unusedUrl,
+                    BeanConverterUtil.copyObjectProperties(unused,SbUnusedDTO.class));
+            sendWorkplaceAndEmailNew(null,userIds,unused.getId(),info, WorkplaceBacklogDetailTypeEnum.SB_UNUSED_VERIFY.getValue());
+        }else if (dto.getStatus()==SbUnusedStatusEnum.verifying_two.getValue()){
+            userIds.add("636c57bd3abe1415981b18ec");//何经理
+            String unusedUrl = domain + "sbUnused/unused?id=" + unused.getId();
+            String info = MessageTemplateUtil.getUnusedSbVmHtmlContent(unusedUrl,
+                    BeanConverterUtil.copyObjectProperties(unused,SbUnusedDTO.class));
+            sendWorkplaceAndEmailNew(null,userIds,unused.getId(),info, WorkplaceBacklogDetailTypeEnum.SB_UNUSED_VERIFY.getValue());
+        }else if (dto.getStatus()==SbUnusedStatusEnum.success.getValue()){
+            //何经理审核通过
+            userIds.add(unused.getApplyUserId());
+//            String unusedUrl = domain + "sbUnused/unused?no=" + unused.getNo();
+            String info = MessageTemplateUtil.getUnusedSbSuccessVmHtmlContent(
+                    BeanConverterUtil.copyObjectProperties(unused,SbUnusedDTO.class));
+            sendWorkplaceAndEmailNew(null,userIds,unused.getId(),info, WorkplaceBacklogDetailTypeEnum.SB_UNUSED_VERIFY.getValue());
+        }
+        SbUnused upd = new SbUnused();
+        upd.setId(unused.getId());
+        upd.setStatus(dto.getStatus());
+        upd.setAdvice(dto.getAdvice());
+        mapper.updateByPrimaryKeySelective(upd);
+
+    }
+
+    @Override
+    public SbUnused saveModelByDTO(SbUnusedDTO model) {
+
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        model.setApplyUserId(userInfo.getUserId());
+        model.setApplyTime(LocalDateTime.now());
+        model.setStatus(SbUnusedStatusEnum.verifying_one.getValue());
+
+        int countNum = mapper.selectCount(new SbUnused());
+        model.setNo(IdGeneratorUtils.getUnusedSbNo(countNum));
+
+        SbUnused unused = super.saveModelByDTO(model);
+        List<SbUnusedDetail> sbUnusedDetails = new ArrayList<>();
+        for (SbInfoDTO dto:model.getSbInfoDTOS()){
+            SbUnusedDetail detail = new SbUnusedDetail();
+            detail.setId(IdGeneratorUtils.getObjectId());
+            detail.setSbId(dto.getId());
+            detail.setSbName(dto.getName());
+            detail.setPositionNo(dto.getPositionNo());
+            detail.setSbNo(dto.getNo());
+            detail.setCreatedTime(LocalDateTime.now());
+            detail.setCreatedUserId(userInfo.getUserId());
+            detail.setUpdateTime(LocalDateTime.now());
+            detail.setUpdateUserId(userInfo.getUserId());
+            sbUnusedDetails.add(detail);
+        }
+        sbUnusedDetailMapper.insertListforComplex(sbUnusedDetails);
+
+        List<String> userIds = new ArrayList<>();
+        userIds.add(model.getVerityUserId());
+
+        String domain = getAndCheckPcDomain();
+        String unusedUrl = domain + "sbUnused/unused?id=" + unused.getId();
+        String info = MessageTemplateUtil.getUnusedSbVmHtmlContent(unusedUrl,
+                BeanConverterUtil.copyObjectProperties(unused,SbUnusedDTO.class));
+        sendWorkplaceAndEmailNew(null,userIds,unused.getId(),info, WorkplaceBacklogDetailTypeEnum.SB_UNUSED_VERIFY.getValue());
+        return unused;
+    }
+
+    public void sendWorkplaceAndEmailNew(List<String> mails,List<String> userIds,String repairId,String content,Integer detailType){
+        // 通过给当天值班维修人员
+        SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), detailType,
+                repairId, content, repairId, userIds, mails));
+    }
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<SbUnused> weekend = new Weekend<>(SbUnused.class);
+        WeekendCriteria<SbUnused, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbUnused::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+    public String getAndCheckPcDomain(){
+        String domain = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.SYSTEM_DOMAIN.name());
+        if (StringUtils.isBlank(domain)) {
+            throw new BusinessException("请先设置系统域名地址,系统管理-》系统参数配置-》SYSTEM_DOMAIN");
+        }
+        if (!domain.endsWith("/")) {
+            domain = domain + "/";
+        }
+        return domain;
+    }
+
+
+    @Override
+    public AbstractPageResultBean<SbUnusedVO> selectPageList(SbUnusedDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<SbUnused> selectPageInfo(SbUnusedDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                }

+ 35 - 0
platform-service/src/main/java/com/platform/service/sbUnuseddetail/SbUnusedDetailService.java

@@ -0,0 +1,35 @@
+package com.platform.service.sbUnuseddetail;
+
+import com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO;
+import com.platform.dao.dto.sbUnuseddetail.SbUnusedDetailDTO;
+import com.platform.dao.entity.sbUnuseddetail.SbUnusedDetail;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 闲置详情表 service
+ * @Author lsq
+ * @Date 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface SbUnusedDetailService extends IBaseService<SbUnusedDetail, SbUnusedDetailDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<SbUnusedDetailVO> selectPageList(SbUnusedDetailDTO record, int pageNum, int pageSize);
+
+                                                                                        }

+ 50 - 0
platform-service/src/main/java/com/platform/service/sbUnuseddetail/impl/SbUnusedDetailServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.sbUnuseddetail.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.sbUnuseddetail.SbUnusedDetailVO;
+import com.platform.dao.dto.sbUnuseddetail.SbUnusedDetailDTO;
+import com.platform.dao.entity.sbUnuseddetail.SbUnusedDetail;
+import com.platform.dao.mapper.sbUnuseddetail.SbUnusedDetailMapper;
+import com.platform.service.sbUnuseddetail.SbUnusedDetailService;
+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 2023-08-23 09:30:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("sbUnusedDetailService")
+public class SbUnusedDetailServiceImpl extends BaseServiceImpl<SbUnusedDetailMapper, SbUnusedDetail, SbUnusedDetailDTO> implements SbUnusedDetailService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<SbUnusedDetail> weekend = new Weekend<>(SbUnusedDetail.class);
+        WeekendCriteria<SbUnusedDetail, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbUnusedDetail::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<SbUnusedDetailVO> selectPageList(SbUnusedDetailDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<SbUnusedDetail> selectPageInfo(SbUnusedDetailDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                        }