Browse Source

Merge remote-tracking branch 'origin/master'

xiongchao 4 years ago
parent
commit
030a459ae9
17 changed files with 813 additions and 36 deletions
  1. 14 0
      platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java
  2. 66 0
      platform-dao/src/main/java/com/platform/dao/dto/repair/RepairReasonDTO.java
  3. 14 0
      platform-dao/src/main/java/com/platform/dao/entity/repair/RepairApplicationForm.java
  4. 61 0
      platform-dao/src/main/java/com/platform/dao/entity/repair/RepairReason.java
  5. 24 0
      platform-dao/src/main/java/com/platform/dao/enums/RepairApplicationFormTypeEnum.java
  6. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/repair/RepairReasonMapper.java
  7. 63 0
      platform-dao/src/main/java/com/platform/dao/vo/export/repair/ExportRepairReasonVO.java
  8. 56 0
      platform-dao/src/main/java/com/platform/dao/vo/query/repair/RepairReasonVO.java
  9. 16 2
      platform-dao/src/main/java/com/platform/dao/vo/repair/RepairApplicationFormVO.java
  10. 6 0
      platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml
  11. 60 0
      platform-dao/src/main/resources/mapper/repair/RepairReasonMapper.xml
  12. 139 0
      platform-rest/src/main/java/com/platform/rest/controller/repair/RepairReasonController.java
  13. 60 0
      platform-rest/src/test/java/com/test/TestPython.java
  14. 45 0
      platform-rest/src/test/java/com/test/TestZhibo.java
  15. 34 0
      platform-service/src/main/java/com/platform/service/repair/RepairReasonService.java
  16. 81 34
      platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java
  17. 48 0
      platform-service/src/main/java/com/platform/service/repair/impl/RepairReasonServiceImpl.java

+ 14 - 0
platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java

@@ -229,4 +229,18 @@ public class RepairApplicationFormDTO extends BaseDTO implements Serializable {
     private List<SysFile> checkFileList;
 
     private String actualUser;
+
+    /**
+     * 主维修单号
+     */
+    private String mainRepairId;
+
+    /**
+     * 委外类别
+     */
+    private Integer outType;
+    /**
+     * 类型
+     */
+    private Integer type;
 }

+ 66 - 0
platform-dao/src/main/java/com/platform/dao/dto/repair/RepairReasonDTO.java

@@ -0,0 +1,66 @@
+package com.platform.dao.dto.repair;
+
+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 chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RepairReasonDTO extends BaseDTO implements Serializable {
+
+      /**
+     * 主键
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 编号
+     */
+          private String no;
+          /**
+     * 维修编号ID
+     */
+          private String repairId;
+          /**
+     * 分析时间
+     */
+        private LocalDate analyzeTime;
+      /**
+       * 分析时间开始
+       */
+      private LocalDate analyzeTimeStart;
+      /**
+       * 分析时间结束
+       */
+      private LocalDate analyzeTimeEnd;
+          /**
+     * 问题描述
+     */
+          private String problemDesc;
+          /**
+     * 原因分析
+     */
+          private String reasonAnalysis;
+          /**
+     * 改进措施
+     */
+          private String improveMeasure;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 14 - 0
platform-dao/src/main/java/com/platform/dao/entity/repair/RepairApplicationForm.java

@@ -171,6 +171,20 @@ public class RepairApplicationForm implements Serializable {
     private String updateUserId;
 
     private String actualUser;
+
+    /**
+     * 主维修单号
+     */
+    private String mainRepairId;
+
+    /**
+     * 委外类别
+     */
+    private Integer outType;
+    /**
+     * 类型
+     */
+    private Integer type;
     /**
      * 报修人
      */

+ 61 - 0
platform-dao/src/main/java/com/platform/dao/entity/repair/RepairReason.java

@@ -0,0 +1,61 @@
+package com.platform.dao.entity.repair;
+
+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 chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_repair_reason")
+public class RepairReason implements Serializable{
+
+    /**
+     * 主键
+     */
+        @Id
+    private String id;
+    /**
+     * 编号
+     */
+    private String no;
+    /**
+     * 维修编号ID
+     */
+    private String repairId;
+    /**
+     * 分析时间
+     */
+    private LocalDate analyzeTime;
+    /**
+     * 问题描述
+     */
+    private String problemDesc;
+    /**
+     * 原因分析
+     */
+    private String reasonAnalysis;
+    /**
+     * 改进措施
+     */
+    private String improveMeasure;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 24 - 0
platform-dao/src/main/java/com/platform/dao/enums/RepairApplicationFormTypeEnum.java

@@ -0,0 +1,24 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 维修类别枚举
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2020,安徽阡陌网络科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum RepairApplicationFormTypeEnum {
+    /**
+     * 内部
+     */
+    IN(1),
+    /**
+     * 委外
+     */
+    OUT(2);
+    private final Integer value;
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/repair/RepairReasonMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.repair;
+
+import com.platform.dao.dto.repair.RepairReasonDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.repair.RepairReason;
+import com.platform.dao.vo.query.repair.RepairReasonVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 维修原因 mapper
+ * @Author chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface RepairReasonMapper extends MyMapper<RepairReason> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<RepairReasonVO> selectList(RepairReasonDTO dto);
+
+}

+ 63 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/repair/ExportRepairReasonVO.java

@@ -0,0 +1,63 @@
+package com.platform.dao.vo.export.repair;
+
+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 chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportRepairReasonVO implements Serializable {
+
+    /**
+   * 主键
+   */
+  @Excel(name = "主键", orderNum = "1")
+  private String id;
+
+    /**
+   * 编号
+   */
+  @Excel(name = "编号", orderNum = "2")
+  private String no;
+
+    /**
+   * 维修编号ID
+   */
+  @Excel(name = "维修编号ID", orderNum = "3")
+  private String repairId;
+
+    /**
+   * 分析时间
+   */
+  @Excel(name = "分析时间", orderNum = "4")
+  private LocalDateTime analyzeTime;
+
+    /**
+   * 问题描述
+   */
+  @Excel(name = "问题描述", orderNum = "5")
+  private String problemDesc;
+
+    /**
+   * 原因分析
+   */
+  @Excel(name = "原因分析", orderNum = "6")
+  private String reasonAnalysis;
+
+    /**
+   * 改进措施
+   */
+  @Excel(name = "改进措施", orderNum = "7")
+  private String improveMeasure;
+
+  
+}

+ 56 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/repair/RepairReasonVO.java

@@ -0,0 +1,56 @@
+package com.platform.dao.vo.query.repair;
+
+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 chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class RepairReasonVO extends BaseVO implements Serializable{
+
+    /**
+     * 主键
+     */
+private String id;
+    /**
+     * 编号
+     */
+private String no;
+    /**
+     * 维修编号ID
+     */
+private String repairId;
+    /**
+     * 分析时间
+     */
+private LocalDate analyzeTime;
+    /**
+     * 问题描述
+     */
+private String problemDesc;
+    /**
+     * 原因分析
+     */
+private String reasonAnalysis;
+    /**
+     * 改进措施
+     */
+private String improveMeasure;
+
+
+
+}

+ 16 - 2
platform-dao/src/main/java/com/platform/dao/vo/repair/RepairApplicationFormVO.java

@@ -225,11 +225,25 @@ public class RepairApplicationFormVO extends BaseVO implements Serializable {
     /**
      * 维修图片
      */
-    private List<SysFile>  repairFileList;
+    private List<SysFile> repairFileList;
     /**
      * 验收图片
      */
-    private List<SysFile>  checkFileList;
+    private List<SysFile> checkFileList;
 
     private String actualUser;
+
+    /**
+     * 主维修单号
+     */
+    private String mainRepairId;
+
+    /**
+     * 委外类别
+     */
+    private Integer outType;
+    /**
+     * 类型
+     */
+    private Integer type;
 }

+ 6 - 0
platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml

@@ -30,6 +30,12 @@
             <if test="sbId != null and sbId != ''">
                 and application.sb_id = #{sbId}
             </if>
+            <if test="mainRepairId != null and mainRepairId != ''">
+                and application.main_repair_id = #{mainRepairId}
+            </if>
+            <if test="outType != null and outType != ''">
+                and application.out_type = #{outType}
+            </if>
             <if test="userId != null and userId != ''">
                 and application.user_id = #{userId}
             </if>

+ 60 - 0
platform-dao/src/main/resources/mapper/repair/RepairReasonMapper.xml

@@ -0,0 +1,60 @@
+<?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.repair.RepairReasonMapper">
+    <sql id="Base_Column_List">
+                             repairReason.id,
+                                     repairReason.no,
+                                     repairReason.repair_id,
+                                     repairReason.analyze_time,
+                                     repairReason.problem_desc,
+                                     repairReason.reason_analysis,
+                                     repairReason.improve_measure
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         repairReason.no,
+                                     repairReason.repair_id,
+                                     repairReason.analyze_time,
+                                     repairReason.problem_desc,
+                                     repairReason.reason_analysis,
+                                     repairReason.improve_measure
+                                </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and repairReason.id = #{id}
+                </if>
+                                                <if test="no != null and no != ''">
+                    and repairReason.no = #{no}
+                </if>
+                                                <if test="repairId != null and repairId != ''">
+                    and repairReason.repair_id = #{repairId}
+                </if>
+                                                <if test="analyzeTimeStart != null">
+                    and repairReason.analyze_time <![CDATA[>=]]>; #{analyzeTimeStart}
+                </if>
+                <if test="analyzeTimeEnd != null">
+                    and repairReason.analyze_time <![CDATA[<=]]> #{analyzeTimeEnd}
+                </if>
+                <if test="analyzeTime != null">
+                    and repairReason.analyze_time = #{analyzeTime}
+                </if>
+                                                <if test="problemDesc != null">
+                    and repairReason.problem_desc = #{problemDesc}
+                </if>
+                                                <if test="reasonAnalysis != null">
+                    and repairReason.reason_analysis = #{reasonAnalysis}
+                </if>
+                                                <if test="improveMeasure != null">
+                    and repairReason.improve_measure = #{improveMeasure}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and repairReason.id like concat(concat('%',#{keyword}),'%')
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.repair.RepairReasonDTO" resultType="com.platform.dao.vo.query.repair.RepairReasonVO">
+        select repairReason.*
+        from t_repair_reason as repairReason
+        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 139 - 0
platform-rest/src/main/java/com/platform/rest/controller/repair/RepairReasonController.java

@@ -0,0 +1,139 @@
+package com.platform.rest.controller.repair;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.repair.RepairReasonDTO;
+import com.platform.dao.entity.repair.RepairReason;
+import com.platform.service.repair.RepairReasonService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.repair.ExportRepairReasonVO;
+import com.platform.dao.vo.query.repair.RepairReasonVO;
+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 chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/repair/repair-reasons")
+public class RepairReasonController {
+
+  private final  RepairReasonService repairReasonService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<RepairReason> getById(@PathVariable("id") String id){
+      return new R<>(repairReasonService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param repairReasonDTO 维修原因DTO
+   * @return R
+   */
+  @SysLog("新增维修原因")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('repair-repair-reasons-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody RepairReasonDTO repairReasonDTO) {
+      return new R<>(repairReasonService.saveModelByDTO(repairReasonDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param repairReasonDTO 维修原因DTO
+   * @return R
+   */
+  @SysLog("修改维修原因")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('repair-repair-reasons-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RepairReasonDTO repairReasonDTO) {
+      repairReasonService.modModelByDTO(repairReasonDTO);
+      return new R<>();
+  }
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除维修原因")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('repair-repair-reasons-del')")
+  public R removeById(@PathVariable String id){
+    repairReasonService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除维修原因")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('repair-repair-reasons-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        repairReasonService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param repairReasonDTO 维修原因DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<RepairReasonVO>> query(RepairReasonDTO repairReasonDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(repairReasonService.selectPageList(repairReasonDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param repairReasonDTO 维修原因DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(RepairReasonDTO repairReasonDTO) {
+      return new R<>(repairReasonService.getModelListByDTO(repairReasonDTO));
+  }
+
+  /**
+     * 维修原因导出
+     *
+     * @param repairReasonDTO 维修原因DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("维修原因导出")
+  @PreAuthorize("@pms.hasPermission('repair-repair-reasons-export')")
+  public void export(HttpServletResponse response, RepairReasonDTO repairReasonDTO) {
+    List<RepairReason> list = repairReasonService.getModelListByDTO(repairReasonDTO);
+    ExcelUtil.exportResponseDict(response, ExportRepairReasonVO.class, BeanConverterUtil.copyListProperties(list, ExportRepairReasonVO.class), "维修原因");
+  }
+
+}

+ 60 - 0
platform-rest/src/test/java/com/test/TestPython.java

@@ -0,0 +1,60 @@
+package com.test;
+
+import org.python.core.*;
+import org.python.util.PythonInterpreter;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Properties;
+
+/**
+ * @Description ${DESCRIPTION}
+ * @Author chenyuehu
+ * @Date 2021/4/25
+ * @Version Copyright (c) 2020,安徽图知天下大数据科技有限公司 All rights reserved.
+ */
+public class TestPython {
+
+    public static void main(String[] args) throws IOException, InterruptedException {
+//        Properties props = new Properties();
+//        props.put("python.home", "D:\\software\\Python\\Python37-32\\Lib");
+//        props.put("python.console.encoding", "UTF-8"); // Used to prevent: console: Failed to install '': java.nio.charset.UnsupportedCharsetException: cp0.
+//        props.put("python.security.respectJavaAccessibility", "false"); //don't respect java accessibility, so that we can access protected members on subclasses
+//        props.put("python.import.site", "false");
+//        Properties preprops = System.getProperties();
+//        PythonInterpreter.initialize(preprops, props, new String[0]);
+//
+//        PythonInterpreter interpreter = new PythonInterpreter();
+//        interpreter.exec("import requests");
+////        interpreter.exec("sys.path.append('D:/software/Python/Python37-32/Lib')");//jython自己的
+//        interpreter.exec("sys.path.append('D:/software/Python/Python37-32/Lib/site-packages')");//jython自己的
+//        interpreter.execfile("F:\\gitee\\real-url\\douyin.py");
+//        PyFunction url = interpreter.get("get_real_url", PyFunction.class);
+//
+//        PyObject pyobj = url.__call__(new PyString("https://v.douyin.com/ekxYCb2/"));
+//        System.out.println("anwser = " + pyobj.toString());
+//        interpreter.close();
+
+        Process pr = Runtime.getRuntime().exec("python F:\\gitee\\real-url\\douyin2.py https://v.douyin.com/ekxYCb2/ 3");
+
+//获取python文件运行后的输出
+
+        BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
+
+        String line;
+
+        while ((line = in.readLine()) != null) {
+
+            System.out.println(line);
+
+        }
+
+        in.close();
+
+        pr.waitFor();
+
+        System.out.println("sucecss!");
+
+    }
+}

+ 45 - 0
platform-rest/src/test/java/com/test/TestZhibo.java

@@ -0,0 +1,45 @@
+package com.test;
+
+import com.platform.common.util.HttpUtil;
+
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @Description ${DESCRIPTION}
+ * @Author chenyuehu
+ * @Date 2021/4/25
+ * @Version Copyright (c) 2020,安徽图知天下大数据科技有限公司 All rights reserved.
+ */
+public class TestZhibo {
+
+    public static void main(String[] args) throws IOException {
+        long startTime = System.currentTimeMillis();
+        System.out.println("开始:" + startTime);
+        String result = HttpUtil.get("https://v.douyin.com/ekxYCb2/");
+        Pattern r = Pattern.compile("\"hls_pull_url\":\"(.*?m3u8)");
+        Matcher m = r.matcher(result);
+        if (m.find()) {
+            System.out.println("Found value m3u8: " + m.group(1));
+        } else {
+            System.out.println("NO MATCH");
+        }
+        r = Pattern.compile("\"rtmp_pull_url\":\"(.*?\\.flv)");
+        m = r.matcher(result);
+        if (m.find()) {
+            System.out.println("Found value flv2: " + m.group(1));
+        } else {
+            System.out.println("NO MATCH");
+        }
+//        int start = result.indexOf("\"flv_pull_url\":{\"FULL_HD1\":\"") + 28;
+//        int end = result.indexOf(".flv", start) + 4;
+//        System.out.println(result.substring(start, end));
+//        start = result.indexOf("\"hls_pull_url\":\"") + 16;
+//        end = result.indexOf(".m3u8", start) + 5;
+//        System.out.println(result.substring(start, end));
+//        long endTime = System.currentTimeMillis();
+//        System.out.println("结束:" + endTime);
+//        System.out.println("耗时:" + (endTime - startTime) + "ms");
+    }
+}

+ 34 - 0
platform-service/src/main/java/com/platform/service/repair/RepairReasonService.java

@@ -0,0 +1,34 @@
+package com.platform.service.repair;
+
+import com.platform.dao.vo.query.repair.RepairReasonVO;
+import com.platform.dao.dto.repair.RepairReasonDTO;
+import com.platform.dao.entity.repair.RepairReason;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 维修原因 service
+ * @Author chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface RepairReasonService extends IBaseService<RepairReason, RepairReasonDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<RepairReasonVO> selectPageList(RepairReasonDTO record, int pageNum, int pageSize);
+}

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

@@ -171,36 +171,51 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public RepairApplicationForm saveModelByDTO(RepairApplicationFormDTO model) {
+        Integer type = model.getType();
+        if (type == null) {
+            type = 1;
+            model.setType(type);
+        }
         Weekend<RepairApplicationForm> weekend = new Weekend<>(RepairApplicationForm.class);
-        weekend.weekendCriteria().andIsNotNull(RepairApplicationForm::getId);
+        weekend.weekendCriteria().andIsNotNull(RepairApplicationForm::getId).andEqualTo(RepairApplicationForm::getType, model.getType());
         int count = mapper.selectCountByExample(weekend);
         UserInfo userInfo = SecurityUtils.getUserInfo();
         model.setUserId(userInfo.getUserId());
         //model.setCheckUserId(userInfo.getUserId());
         // 查询对应的维修人,保存维修单
-        SbInfoVO sb = sbInfoService.getById(model.getSbId());
-
-        // 保存报修单
-        model.setModelId(sb.getModelId());
-        model.setNo(IdGeneratorUtils.getRepairApplicaitonFormNo(++count));
-        model.setStatus(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
+        String sbId = model.getSbId();
+        if (StringUtils.isNotEmpty(sbId)) {
+            SbInfoVO sb = sbInfoService.getById(sbId);
+            // 保存报修单
+            model.setModelId(sb.getModelId());
+            if (sb.getStatus().intValue() == SbInfoStatusEnum.IN_MAINTAIN.getValue()) {
+                throw new BusinessException("设备已经在维修中,请等待维修完成, sbId" + model.getSbId());
+            }
+            // 如果选择了设备停机,则要修改设备状态
+            if (model.getNeedStop().intValue() == RepairApplicationFormStopEnum.STOP.getValue()) {
+                SbInfo info = new SbInfo();
+                info.setId(sb.getId());
+                info.setStatus(SbInfoStatusEnum.IN_MAINTAIN.getValue());
+                sbInfoService.modModelByPrimaryKey(info);
+            }
+            if (sb.getUseGroup() == null) {
+                throw new BusinessException("找不到设备对应的使用工作组,无法指派维修单,请先设置设备的归属组,sbId" + model.getSbId());
+            }
+        }
+        model.setNo(type == 1 ? IdGeneratorUtils.getRepairApplicaitonFormNo(++count) : model.getNo());
+        String repairUserId = model.getRepairUserId();
+        model.setStatus(StringUtils.isNotEmpty(repairUserId) ? RepairApplicationFormStatusEnum.ALLOCATED.getValue() : RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
         model.setApplyTime(LocalDateTime.now());
         model.setCreatedTime(model.getApplyTime());
         model.setUpdateTime(model.getApplyTime());
-        if (sb.getStatus().intValue() == SbInfoStatusEnum.IN_MAINTAIN.getValue()) {
-            throw new BusinessException("设备已经在维修中,请等待维修完成, sbId" + model.getSbId());
-        }
 
-        // 如果选择了设备停机,则要修改设备状态
-        if (model.getNeedStop().intValue() == RepairApplicationFormStopEnum.STOP.getValue()) {
-            SbInfo info = new SbInfo();
-            info.setId(sb.getId());
-            info.setStatus(SbInfoStatusEnum.IN_MAINTAIN.getValue());
-            sbInfoService.modModelByPrimaryKey(info);
-        }
-        if (sb.getUseGroup() == null) {
-            throw new BusinessException("找不到设备对应的使用工作组,无法指派维修单,请先设置设备的归属组,sbId" + model.getSbId());
+        // 关联维修单
+        String mainRepairId = model.getMainRepairId();
+        if (StringUtils.isNotEmpty(mainRepairId)) {
+            //TODO
         }
+
+
 //        List<SysUserVO> userList = sysUserService.selectDeptManager(sb.getUseGroup(), SysDeptManagerType.REPAIR.getValue());
 //        if (userList == null || userList.size() == 0) {
 //            throw new BusinessException("找不到设备对应的维修员,无法指派维修单,请先设置设备的归属组,sbId" + model.getSbId());
@@ -211,22 +226,33 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         model.setId(IdGeneratorUtils.getObjectId());
         this.saveFile(model);
         RepairApplicationForm form = super.saveModelHaveCreateInfo(model);
-
-        List<SysUser> users = sysUserService.getRepairUser(new SysUserDTO());
-        List<SysUser> filterUsers = users.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
-        if (CollectionUtil.isEmpty(filterUsers)) {
-            filterUsers = users.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZG.getValue())).collect(Collectors.toList());
-        }
         List<String> userIds = new ArrayList<>();
         List<String> mails = new ArrayList<>();
-        filterUsers.forEach(item -> {
-            userIds.add(item.getUserId());
-            mails.add(item.getEmail());
-        });
-        // 通过给当天值班维修人员
-        SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), WorkplaceBacklogDetailTypeEnum.REPAIR_APPLICATION.getValue(),
-                model.getId(), MessageTemplateUtil.getRepairApplicationForReceive(model.getNo()),
-                model.getId(), userIds, mails));
+        if (StringUtils.isEmpty(repairUserId)) {
+            List<SysUser> users = sysUserService.getRepairUser(new SysUserDTO());
+            List<SysUser> filterUsers = users.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
+            if (CollectionUtil.isEmpty(filterUsers)) {
+                filterUsers = users.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZG.getValue())).collect(Collectors.toList());
+            }
+            filterUsers.forEach(item -> {
+                userIds.add(item.getUserId());
+                mails.add(item.getEmail());
+            });
+            // 通过给当天值班维修人员
+            SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), WorkplaceBacklogDetailTypeEnum.REPAIR_APPLICATION.getValue(),
+                    model.getId(), MessageTemplateUtil.getRepairApplicationForReceive(model.getNo()),
+                    model.getId(), userIds, mails));
+        } else {
+            SysUserVO user = sysUserService.selectUserVO(repairUserId);
+            userIds.add(repairUserId);
+            mails.add(user.getEmail());
+            // 通过给当天值班维修人员
+            SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), WorkplaceBacklogDetailTypeEnum.REPAIR_APPLICATION.getValue(),
+                    model.getId(), MessageTemplateUtil.getRepairDispatch(model.getNo()),
+                    model.getId(), userIds, mails));
+        }
+
+
         return form;
     }
 
@@ -344,7 +370,6 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void finish(RepairApplicationFormDTO dto) {
-        UserInfo userInfo = SecurityUtils.getUserInfo();
 
         // 1. 将维修单的状态修改未待验收
         RepairApplicationForm applicationForm = mapper.selectById(dto.getId());
@@ -356,9 +381,31 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         applicationForm.setRepairMinutes(DateUtils.dateDiff(applicationForm.getRepairEndTime(), applicationForm.getRepairStartTime()));
         applicationForm.setCheckStartTime(applicationForm.getRepairEndTime());
         applicationForm.setRepairContent(dto.getRepairContent());
+        applicationForm.setNeedStop(dto.getNeedStop());
+        applicationForm.setLevel(dto.getLevel());
+        applicationForm.setRepairContent(dto.getRepairContent());
         applicationForm.setRepairErrorTypeId(dto.getRepairErrorTypeId());
         applicationForm.setUpdateTime(LocalDateTime.now());
 
+
+        Weekend<SysFile> weekend = new Weekend<>(SysFile.class);
+        weekend.weekendCriteria().andEqualTo(SysFile::getTargetId, dto.getId());
+        weekend.weekendCriteria().andEqualTo(SysFile::getType, SysFileTypeEnum.REPAIR_REPAIR_IMGS.getValue());
+        sysFileMapper.deleteByExample(weekend);
+        List<SysFile> repairFileList = dto.getRepairFileList();
+        List<SysFile> list = ListUtils.newArrayList();
+        if (CollectionUtil.isNotEmpty(repairFileList)) {
+            repairFileList.forEach(item -> {
+                item.setType(SysFileTypeEnum.REPAIR_REPAIR_IMGS.getValue());
+                item.setId(IdGeneratorUtils.getObjectId());
+                item.setTargetId(dto.getId());
+                list.add(item);
+            });
+        }
+        if (CollectionUtil.isNotEmpty(list)) {
+            sysFileMapper.insertListforComplex(list);
+        }
+
 //        // 获取部门的项目部
 //        SysDeptVO natureDept = UserUtil.getUserNatureDept(DeptNatureEnum.XIANG_MU_BU, userInfo);
 //        // 获取项目部设备主管

+ 48 - 0
platform-service/src/main/java/com/platform/service/repair/impl/RepairReasonServiceImpl.java

@@ -0,0 +1,48 @@
+package com.platform.service.repair.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.repair.RepairReasonVO;
+import com.platform.dao.dto.repair.RepairReasonDTO;
+import com.platform.dao.entity.repair.RepairReason;
+import com.platform.dao.mapper.repair.RepairReasonMapper;
+import com.platform.service.repair.RepairReasonService;
+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 chenyuehu
+ * @Date 2021-05-03 12:36:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("repairReasonService")
+public class RepairReasonServiceImpl extends BaseServiceImpl<RepairReasonMapper, RepairReason, RepairReasonDTO> implements RepairReasonService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<RepairReason> weekend = new Weekend<>(RepairReason.class);
+        WeekendCriteria<RepairReason, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(RepairReason::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<RepairReasonVO> selectPageList(RepairReasonDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<RepairReason> selectPageInfo(RepairReasonDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+}