Ver código fonte

报修完善

xiongchao 3 anos atrás
pai
commit
bce5ebfa6c

+ 1 - 5
platform-common/src/main/java/com/platform/common/constant/RedisKeyConstants.java

@@ -34,12 +34,8 @@ public class RedisKeyConstants {
      */
     public static final String EXPIRE_BUSINESS_KEY_REPAIR_STEP_FIRST = "business_repair_step_first";
     /**
-     * 过期监控业务前缀-报修过期监听-第二阶段-推送给
+     * 过期监控业务前缀-报修过期监听-第二阶段-推送给
      */
     public static final String EXPIRE_BUSINESS_KEY_REPAIR_STEP_SECOND = "business_repair_step_second";
-    /**
-     * 过期监控业务前缀-报修过期监听-第三阶段-推送给牛
-     */
-    public static final String EXPIRE_BUSINESS_KEY_REPAIR_STEP_THIRD = "business_repair_step_third";
 
 }

+ 19 - 9
platform-dao/src/main/java/com/platform/dao/vo/export/check/ExportCheckStandardVO.java

@@ -32,52 +32,62 @@ public class ExportCheckStandardVO implements Serializable {
      */
     @Excel(name = "设备名称", orderNum = "3")
     private String sbName;
+    /**
+     * 设备等级
+     */
+    @Excel(name = "设备等级", orderNum = "4", dicCode="SBINFO_LEVEL")
+    private Integer sbLevel;
+    /**
+     * 设备第一维修人
+     */
+    @Excel(name = "设备第一维修人", orderNum = "5")
+    private String repairUserName;
     /**
    * 标准名称
    */
-  @Excel(name = "标准名称", orderNum = "4")
+  @Excel(name = "标准名称", orderNum = "6")
   private String name;
     /**
    * 编码
    */
-  @Excel(name = "编码", orderNum = "5")
+  @Excel(name = "编码", orderNum = "7")
   private String no;
 
     /**
    * 要求
    */
-  @Excel(name = "要求", orderNum = "6")
+  @Excel(name = "要求", orderNum = "8")
   private String requirement;
 
     /**
    * 备注
    */
-  @Excel(name = "备注", orderNum = "7")
+  @Excel(name = "备注", orderNum = "9")
   private String remark;
     /**
      * 计划周期
      */
-    @Excel(name = "计划周期", orderNum = "8")
+    @Excel(name = "计划周期", orderNum = "10")
     private Integer period;
     /**
      * 周期类型
      */
-    @Excel(name = "周期类型", orderNum = "9", dicCode="CHECK_PLAN_PERIOD_TYPE")
+    @Excel(name = "周期类型", orderNum = "11", dicCode="CHECK_PLAN_PERIOD_TYPE")
     private Integer periodType;
     /**
      * 上次实际执行日期
      */
-    @Excel(name = "上次实际执行日期", orderNum = "10")
+    @Excel(name = "上次实际执行日期", orderNum = "12")
     private LocalDate lastDate;
     /**
      * 下次预计执行日期
      */
-    @Excel(name = "下次预计执行日期", orderNum = "11")
+    @Excel(name = "下次预计执行日期", orderNum = "13")
     private LocalDate nextDate;
     /**
      * 执行人方式(1使用人、2维修人、3指定人)
      */
-    @Excel(name = "执行人方式", orderNum = "12")
+    @Excel(name = "执行人方式", orderNum = "14")
     private Integer checkUserType;
 
 }

+ 13 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/check/CheckStandardVO.java

@@ -5,6 +5,7 @@ import com.platform.common.bean.DataScope;
 import com.platform.dao.dto.check.CheckStandardSpareDTO;
 import com.platform.dao.entity.check.CheckStandardParam;
 import com.platform.dao.entity.upms.SysFile;
+import com.platform.office.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -45,6 +46,18 @@ public class CheckStandardVO extends BaseVO implements Serializable{
      * 设备新号
      */
     private String sbNo;
+    /**
+     * 设备等级
+     */
+    private Integer sbLevel;
+    /**
+     * 设备第一维修人
+     */
+    private String repairUser;
+    /**
+     * 设备第一维修人
+     */
+    private String repairUserName;
     /**
      * 项目id
      */

+ 4 - 1
platform-dao/src/main/resources/mapper/check/CheckStandardMapper.xml

@@ -133,7 +133,10 @@ checkstandard.last_date,
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.check.CheckStandardDTO"
             resultType="com.platform.dao.vo.query.check.CheckStandardVO">
-        select checkstandard.*, sbInfo.name as sbName, sbInfo.no as sbNo, partInfo.name as partName
+        select checkstandard.*, sbInfo.name as sbName, sbInfo.no as sbNo,
+        sbInfo.level as sbLevel,
+        sbInfo.repair_user as repairUser
+        partInfo.name as partName
         from t_check_standard as checkstandard
         LEFT JOIN t_sb_info sbInfo on checkstandard.sb_id = sbInfo.id
         LEFT JOIN t_part_info partInfo on checkstandard.part = partInfo.id

+ 3 - 3
platform-rest/src/main/java/com/platform/rest/controller/check/CheckJobController.java

@@ -65,7 +65,7 @@ public class CheckJobController {
    */
   @SysLog("修改点检任务")
   @PutMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('check-spot-jobs-edit') or @pms.hasPermission('check-polling-jobs-edit')")
+  @PreAuthorize("@pms.hasPermission('check-polling-jobs-edit')")
   public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CheckJobDTO checkJobDTO) {
       checkJobService.modModelByDTO(checkJobDTO);
       return new R<>();
@@ -167,7 +167,7 @@ public class CheckJobController {
    */
   @SysLog("接收点检任务")
   @PutMapping("/execute")
-  @PreAuthorize("@pms.hasPermission('check-spot-jobs-edit') or @pms.hasPermission('check-polling-jobs-edit')")
+  @PreAuthorize("@pms.hasPermission('check-polling-jobs-edit')")
   public R executeJob(@Validated({UpdateGroup.class}) @RequestBody CheckJobDTO checkJobDTO) {
     checkJobService.executeJob(checkJobDTO.getId());
     return new R<>();
@@ -181,7 +181,7 @@ public class CheckJobController {
    */
   @SysLog("完成点检任务")
   @PutMapping("/finish")
-  @PreAuthorize("@pms.hasPermission('check-spot-jobs-edit') or @pms.hasPermission('check-polling-jobs-edit')")
+  @PreAuthorize("@pms.hasPermission('check-polling-jobs-edit')")
   public R finishJob(@Validated({UpdateGroup.class}) @RequestBody CheckJobDTO checkJobDTO) {
     checkJobService.finishJob(checkJobDTO);
     return new R<>();

+ 0 - 32
platform-rest/src/main/resources/templates/repairEmailThird.ftl

@@ -1,32 +0,0 @@
-<div>维修三级上报预警通知</div>
-<div>有新的报修单第一维修主管超时未接单,等待您的处理:
-    <table border="1">
-        <tr>
-            <td>维修单号</td>
-            <td>${no}</td>
-        </tr>
-        <tr>
-            <td>设备名称</td>
-            <td>${sbName}</td>
-        </tr>
-        <tr>
-            <td>设备编号</td>
-            <td>${sbNo}</td>
-        </tr>
-        <tr>
-            <td>设备使用位置</td>
-            <td>${sbCph}</td>
-        </tr>
-        <tr>
-            <td>报修人</td>
-            <td>${actualUser}</td>
-        </tr>
-        <tr>
-            <td>故障描述</td>
-            <td>${repairDesc}</td>
-        </tr>
-    </table>
-</div>
-<div>
-    <a href="${url}">点击链接跳转处理报修单</a>
-</div>

+ 14 - 4
platform-service/src/main/java/com/platform/service/check/impl/CheckStandardServiceImpl.java

@@ -81,16 +81,17 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
     private final SysUserMapper sysUserMapper;
 
     private final SbInfoMapper sbInfoMapper;
+
     @Override
     public boolean cascadingDeleteByKey(String id) {
         int result = mapper.deleteByPrimaryKey(id);
         Weekend<CheckProjectStandardRelation> weekend = new Weekend<>(CheckProjectStandardRelation.class);
-        weekend.weekendCriteria().andEqualTo(CheckProjectStandardRelation::getStandardId,id);
+        weekend.weekendCriteria().andEqualTo(CheckProjectStandardRelation::getStandardId, id);
         relationMapper.deleteByExample(weekend);
 
         // 删除标准参数
         Weekend<CheckStandardParam> checkStandardParamWeekend = new Weekend<>(CheckStandardParam.class);
-        checkStandardParamWeekend.weekendCriteria().andEqualTo(CheckStandardParam::getStandardId,id);
+        checkStandardParamWeekend.weekendCriteria().andEqualTo(CheckStandardParam::getStandardId, id);
         paramMapper.deleteByExample(weekend);
         return true;
     }
@@ -116,8 +117,17 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
     }
 
     @Override
-    public List<CheckStandardVO> selectList( CheckStandardDTO record) {
-        return mapper.selectList(record);
+    public List<CheckStandardVO> selectList(CheckStandardDTO record) {
+        List<CheckStandardVO> voList = mapper.selectList(record);
+        List<SysUser> userList = sysUserMapper.selectAll();
+        for (CheckStandardVO checkStandardVO : voList) {
+            for (SysUser user : userList) {
+                if (checkStandardVO.getRepairUser() != null && checkStandardVO.getRepairUser().equals(user.getUserId())) {
+                    checkStandardVO.setRepairUserName(user.getRealName());
+                }
+            }
+        }
+        return voList;
     }
 
     @Override

+ 3 - 23
platform-service/src/main/java/com/platform/service/redis/impl/RedisTaskService.java

@@ -105,29 +105,9 @@ public class RedisTaskService extends KeyExpirationEventMessageListener {
             return;
         }
 
-        // 发送给第一维修主管,通过角色来查询
+        // 发送给牛工,通过角色来查询
         if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_SECOND)){
-            logger.info("处理第二阶段过期,发送消息给吴");
-            List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
-            List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
-            if (CollectionUtil.isEmpty(filterUsers)) {
-                filterUsers = userList.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZG.getValue())).collect(Collectors.toList());
-            }
-            if (CollectionUtil.isEmpty(filterUsers)) {
-                logger.info("处理第二阶段过期,维修主管身份未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
-            }else{
-                SysUser user = filterUsers.get(0);
-                // 通过给当天值班维修人员
-                sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailSecond.ftl");
-            }
-            // redis登记3级监控
-            RedisUtils.setString(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_THIRD + RedisKeyConstants.EXPIRE_BUSINESS_SEP + repairId,repairId,minute, TimeUnit.MINUTES);
-            return;
-        }
-
-        // 发送给第二维修主管
-        if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_THIRD)){
-            logger.info("处理第三阶段过期,发送消息给牛");
+            logger.info("处理第二阶段过期,发送消息给牛");
             List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
             List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
             if (CollectionUtil.isEmpty(filterUsers)) {
@@ -139,7 +119,7 @@ public class RedisTaskService extends KeyExpirationEventMessageListener {
             }else{
                 SysUser user = filterUsers.get(0);
                 // 通过给当天值班维修人员
-                sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailThird.ftl");
+                sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailSecond.ftl");
             }
             return;
         }

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

@@ -386,7 +386,9 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         }
         applicationForm.setRepairUserId(SecurityUtils.getUserInfo().getUserId());
         applicationForm.setStatus(RepairApplicationFormStatusEnum.PROCESSING.getValue());
-        applicationForm.setRepairStartTime(LocalDateTime.now());
+        if(applicationForm.getRepairStartTime() == null){
+            applicationForm.setRepairStartTime(LocalDateTime.now());
+        }
         applicationForm.setUpdateTime(LocalDateTime.now());
         super.modModelByPrimaryKey(applicationForm);
 
@@ -502,7 +504,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
 
     /**
      * 完成为待验收状态,此时需要再次编辑维修内容,最终提交审核
-     *
+     * 完成同时将设备状态为使用中
      * @param dto
      */
     @Override
@@ -514,7 +516,11 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         RepairForm repairForm = new RepairForm();
         repairForm.setId(dto.getId());
         applicationForm.setStatus(RepairApplicationFormStatusEnum.WAIT_SUBMIT.getValue());
-        applicationForm.setRepairEndTime(LocalDateTime.now());
+
+        // 驳回重新完成的,不用更新这个时间,驳回应该状态是完成待审核,不需要重新维修
+        if(applicationForm.getRepairEndTime() == null){
+            applicationForm.setRepairEndTime(LocalDateTime.now());
+        }
         applicationForm.setRepairMinutes(DateUtils.dateDiff(applicationForm.getRepairEndTime(), applicationForm.getRepairStartTime()));
 
         applicationForm.setRepairContent(dto.getRepairContent());
@@ -544,6 +550,12 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
             sysFileMapper.insertListforComplex(list);
         }
         super.modModelByPrimaryKey(applicationForm);
+
+        // 更新设备状态为使用中
+        SbInfo sbInfo = sbInfoService.getModelById(applicationForm.getSbId());
+        sbInfo.setStatus(SbInfoStatusEnum.IN_USE.getValue());
+        sbInfoService.modModelByPrimaryKey(sbInfo);
+
         /*String userId = applicationForm.getUserId();
         applicationForm.setCheckUserId(userId);*/
         /*// 维修人自己发起报修自己验收
@@ -596,6 +608,11 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 applicationForm.getId(), ListUtils.newArrayList(applicationForm.getRepairUserId()), ListUtils.newArrayList(noticeUser.getEmail())));*/
     }
 
+    /**
+     * 验收是主管验收,驳回到待审核状态
+     *
+     * @param dto
+     */
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void returnRepair(RepairApplicationFormDTO dto) {