guarantee-lsq 1 anno fa
parent
commit
837f1ba762

+ 1 - 0
platform-common/src/main/java/com/platform/common/constant/CommonConstants.java

@@ -293,6 +293,7 @@ public interface CommonConstants {
     String CALL_REPAIR_FINISH = "5";
     String REPORT_REPAIR = "6";  // 主管派单
     String PRODUCE_REFUSED_MANAGER = "7";  // 内部报修,生产拒绝消息
+    String REPAIR_VERIFY_USER = "8";  // 报修审核
 
     String CALL_REPAIR_NOTICE_PLAN = "11"; // 内部报修单
     // 维修审核

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

@@ -496,4 +496,9 @@ public class RepairApplicationFormDTO extends BaseDTO implements Serializable {
      */
     private Integer repairFormType;
 
+    /**
+     * 报修审核意见
+     */
+    private String verifyRepairRemark;
+
 }

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

@@ -356,4 +356,9 @@ public class RepairApplicationForm implements Serializable {
      * 1 维修 2 技改 3 项目
      */
     private Integer repairFormType;
+
+    /**
+     * 报修审核意见
+     */
+    private String verifyRepairRemark;
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/enums/RepairApplicationFormStatusEnum.java

@@ -105,6 +105,10 @@ public enum RepairApplicationFormStatusEnum {
      * 报修撤回
      */
     CALLER_REPAIR_CANCEL(23),
+    /**
+     * 报修待审
+     */
+    REPAIR_VERIFYING(24),
     ;
     private final Integer value;
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/enums/SysRoleCodeEnum.java

@@ -187,6 +187,10 @@ public enum SysRoleCodeEnum {
      * 生产工程师
      */
     SCB,
+    /**
+     * 报修审核人
+     */
+    REPAIR_VERIFY_USER,
     ;
 
 }

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/vo/repair/RepairApplicationFormVO.java

@@ -482,4 +482,9 @@ public class RepairApplicationFormVO extends BaseVO implements Serializable {
      */
     private Integer repairFormType;
 
+    /**
+     * 报修审核意见
+     */
+    private String verifyRepairRemark;
+
 }

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

@@ -697,4 +697,17 @@ public class RepairApplicationFormController {
     public R countRepairReport(RepairApplicationFormDTO model) {
         return new R<>(repairApplicationFormService.countNumByDept(model));
     }
+
+    /**
+     * 报修审批
+     * @param repairFormDTO 维修单DTO
+     * @return R
+     */
+    @SysLog("修改维修单时间")
+    @PutMapping("/repair/verify")
+    @PreAuthorize("@pms.hasPermission('repair-application-forms-verify')")
+    public R repairVerify(@Validated({UpdateGroup.class}) @RequestBody RepairApplicationFormDTO repairFormDTO) {
+        RepairStrategyFactory.getStrategy(repairFormDTO.getCategory()).handleCallRepair(repairFormDTO);
+        return new R<>();
+    }
 }

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

@@ -145,4 +145,10 @@ public interface RepairBaseStrategy {
      * @param model
      */
     void nonPlanToPlan(RepairApplicationFormDTO model);
+
+    /**
+     * 报修审核
+     * @param model
+     */
+    void handleCallRepair(RepairApplicationFormDTO model);
 }

+ 66 - 7
platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanRepairStrategy.java

@@ -90,21 +90,27 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
             throw new DeniedException("送修部门不能为空!");
         }
         form.setRepairDeptId(repairDeptId); // 存储维修部门ID
-        List<SysUserVO> sysUserVOList = getRepairMangers(repairDeptId,null,SysRoleCodeEnum.REPAIR_MANAGE.name());
-        if(sysUserVOList == null || sysUserVOList.size() ==0){
-            throw new DeniedException("该维修部门,没有工程师,请确认!");
-        }
         // 报修人
         form.setActualUser(SecurityUtils.getUserInfo().getUsername());
         form.setUserId(SecurityUtils.getUserInfo().getUserId());
         // 区域负责人
         form.setReportLeaderId(getReportLeaderId(model.getSbId()));
-        form.setStatus(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
+        form.setStatus(RepairApplicationFormStatusEnum.REPAIR_VERIFYING.getValue()); // 维修待审
+        //form.setStatus(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
         repairApplicationFormMapper.insert(form);
         // 记录维修状态跟踪
         addRepairStatusRecord(form,"报修");
-        // 给相关的工程师推送信息
+        // 给生产的审核人员发送审核消息
+        List<SysUserVO> sysUserVOList = getRepairMangers(null,null,SysRoleCodeEnum.REPAIR_VERIFY_USER.name());
+        if(sysUserVOList == null || sysUserVOList.size() ==0){
+            throw new DeniedException("报修没有审核人,请确认!");
+        }
+        sendMessageToRepairManger(form,sysUserVOList,CommonConstants.CALL_REPAIR_NOTICE);
         // 给生产工程师和区域负责人发信息
+        /*List<SysUserVO> sysUserVOList = getRepairMangers(repairDeptId,null,SysRoleCodeEnum.REPAIR_MANAGE.name());
+        if(sysUserVOList == null || sysUserVOList.size() ==0){
+            throw new DeniedException("该维修部门,没有工程师,请确认!");
+        }
         List<SysUserVO> mmScb = ListUtils.newArrayList();
         sysUserVOList.forEach(item->{
             mmScb.add(item);
@@ -128,7 +134,7 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
             if(StringUtils.isNotBlank(everyWhereUsers)){
                 sendMessageToRepairManger(form,getUserVOs(everyWhereUsers.trim()),CommonConstants.CALL_REPAIR_NOTICE);
             }
-        }
+        }*/
         // 生产票证数据
         generateTicketData(form);
         return form;
@@ -807,6 +813,55 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
         sendMessageToProducer(model,CommonConstants.SB_NON_PLAN_TO_PLAN,users);
     }
 
+    @Override
+    public void handleCallRepair(RepairApplicationFormDTO model) {
+        RepairApplicationForm queryForm = repairApplicationFormMapper.selectById(model.getId());
+        if(queryForm == null){
+            throw new DeniedException("审核的报修单不存在");
+        }
+        RepairApplicationForm updForm = new RepairApplicationForm();
+        updForm.setId(model.getId());
+        if(model.getStatus() == RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue()){
+            // 通过报修
+            updForm.setStatus(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
+        }else if(model.getStatus() == RepairApplicationFormStatusEnum.CALLER_REPAIR_CANCEL.getValue()){
+            updForm.setStatus(RepairApplicationFormStatusEnum.CALLER_REPAIR_CANCEL.getValue());
+        }else {
+            throw new DeniedException("提交状态值非法");
+        }
+        updForm.setVerifyRepairRemark(model.getVerifyRepairRemark());
+        // 给生产工程师和区域负责人发信息
+        List<SysUserVO> sysUserVOList = getRepairMangers(queryForm.getRepairDeptId(),null,SysRoleCodeEnum.REPAIR_MANAGE.name());
+        if(sysUserVOList == null || sysUserVOList.size() ==0){
+            throw new DeniedException("该维修部门,没有工程师,请确认!");
+        }
+        List<SysUserVO> mmScb = ListUtils.newArrayList();
+        sysUserVOList.forEach(item->{
+            mmScb.add(item);
+        });
+        sysUserVOList = getRepairMangers(null,null,SysRoleCodeEnum.MM.name());
+        if(sysUserVOList != null && sysUserVOList.size() > 0){
+            sysUserVOList.forEach(item->{
+                mmScb.add(item);
+            });
+        }
+        sysUserVOList = getRepairMangers(null,null,SysRoleCodeEnum.SCB.name());
+        if(sysUserVOList != null && sysUserVOList.size() > 0){
+            sysUserVOList.forEach(item->{
+                mmScb.add(item);
+            });
+        }
+        repairApplicationFormMapper.updateByPrimaryKeySelective(updForm);
+        sendMessageToRepairManger(queryForm,mmScb,CommonConstants.CALL_REPAIR_NOTICE);
+        // 给值班人员发送消息
+        if(isSendMessage()){
+            String everyWhereUsers = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_TWENTY_FOUR_USER.name());
+            if(StringUtils.isNotBlank(everyWhereUsers)){
+                sendMessageToRepairManger(queryForm,getUserVOs(everyWhereUsers.trim()),CommonConstants.CALL_REPAIR_NOTICE);
+            }
+        }
+    }
+
     @Override
     public void recoverRepair(RepairApplicationFormDTO model) {
         // 判断是否具有权限
@@ -1319,6 +1374,10 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
                 values = new String[]{"维修主管派单消息!",form.getNo(),sbInfo.getName(),form.getContent(),form.getSbCph(),"请知悉"};
                 detailType = WorkplaceBacklogDetailTypeEnum.REPAIR_REPORT_LEADER_TRANSFER.getValue();
                 break;
+            case CommonConstants.REPAIR_VERIFY_USER:
+                values = new String[]{"报修待审消息!",form.getNo(),sbInfo.getName(),form.getContent(),form.getSbCph(),"请知悉"};
+                detailType = WorkplaceBacklogDetailTypeEnum.REPAIR_APPLICATION.getValue();
+                break;
         }
         Map<String,List<String>> maps = getPushReceivers(userVOs);
         // 1、站内信