Parcourir la source

关闭维修工单,无需上传维修方案

3254194295 il y a 1 an
Parent
commit
5355c87238

+ 8 - 0
platform-rest/src/main/java/com/platform/rest/controller/repair/RepairApplicationFormController.java

@@ -395,6 +395,14 @@ public class RepairApplicationFormController {
         return new R<>();
     }
 
+    @SysLog("关闭工单(不需要上传维修方案)")
+    @PutMapping("/close/repair")
+    public R closeRepair2(@RequestBody RepairApplicationFormDTO applicationFormDTO) {
+        RepairStrategyFactory.getStrategy(applicationFormDTO.getCategory()).closeRepairOnly(applicationFormDTO);
+        return new R<>();
+    }
+
+
     @SysLog("回退工单")
     @PutMapping("/back/repair")
     public R backRepair(@RequestBody RepairApplicationFormDTO applicationFormDTO) {

+ 2 - 0
platform-service/src/main/java/com/platform/service/repair/strategy/RepairBaseStrategy.java

@@ -96,6 +96,8 @@ public interface RepairBaseStrategy {
      */
     RepairApplicationFormDTO closeRepair(RepairApplicationFormDTO dto);
 
+    RepairApplicationFormDTO closeRepairOnly(RepairApplicationFormDTO dto);
+
     /**
      * 经理审核报修
      * @param model

+ 9 - 0
platform-service/src/main/java/com/platform/service/repair/strategy/impl/AllocateRepairBaseStrategy.java

@@ -318,6 +318,15 @@ public class AllocateRepairBaseStrategy extends AbstractRepairBaseStrategy {
         return null;
     }
 
+    @Override
+    public RepairApplicationFormDTO closeRepairOnly(RepairApplicationFormDTO dto) {
+        RepairApplicationForm updForm = new RepairApplicationForm();
+        updForm.setId(dto.getId());
+        updForm.setStatus(RepairApplicationFormStatusEnum.MM_REPAIR_CLOSE.getValue());
+        repairApplicationFormMapper.updateByPrimaryKey(updForm);
+        return null;
+    }
+
     @Override
     public void verifyRepairByMM(RepairApplicationFormDTO model) {
 

+ 5 - 0
platform-service/src/main/java/com/platform/service/repair/strategy/impl/BaseRepairBaseStrategy.java

@@ -197,6 +197,11 @@ public class BaseRepairBaseStrategy extends AbstractRepairBaseStrategy {
         return null;
     }
 
+    @Override
+    public RepairApplicationFormDTO closeRepairOnly(RepairApplicationFormDTO dto) {
+        return null;
+    }
+
     @Override
     public void verifyRepairByMM(RepairApplicationFormDTO model) {
 

+ 5 - 0
platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanPlanRepairStrategy.java

@@ -508,6 +508,11 @@ public class LongYanPlanRepairStrategy extends AbstractRepairBaseStrategy {
         return null;
     }
 
+    @Override
+    public RepairApplicationFormDTO closeRepairOnly(RepairApplicationFormDTO dto) {
+        return null;
+    }
+
     /**
      * 经理审核报修
      * @param model

+ 22 - 0
platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanRepairStrategy.java

@@ -794,6 +794,28 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
         return null;
     }
 
+    @Override
+    public RepairApplicationFormDTO closeRepairOnly(RepairApplicationFormDTO dto) {
+        // 判断是否具有关闭工单权限
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        if(userInfo.getSuperAdmin() == 0){
+            String roles = getCurrentRoles();
+            if(!roles.contains(SysRoleCodeEnum.REPAIR_MANAGE.name()) && !roles.contains(SysRoleCodeEnum.MM.name())){
+                throw new DeniedException("不具备关闭工单权限");
+            }
+        }
+        RepairApplicationForm queryForm = repairApplicationFormMapper.selectById(dto.getId());
+        // 修改工单状态
+        RepairApplicationForm form = new RepairApplicationForm();
+        form.setId(dto.getId());
+        form.setStatus(RepairApplicationFormStatusEnum.MM_REPAIR_CLOSE.getValue());
+        repairApplicationFormMapper.updateByPrimaryKeySelective(form);
+        // 通知区域负责人
+        SysUserVO vo = sysUserService.selectUserVO(queryForm.getReportLeaderId());
+        sendMessageToReportLeader(queryForm,vo,CommonConstants.MM_CLOSE_REPAIR);
+        return null;
+    }
+
     @Override
     public void verifyRepairByMM(RepairApplicationFormDTO model) {