xiongchao 3 년 전
부모
커밋
287aeb1452

+ 0 - 1
platform-common/src/main/java/com/platform/common/util/DateUtils.java

@@ -291,7 +291,6 @@ public class DateUtils {
     }
 
     public static String getDurationMinutesStr(LocalDateTime startTime, LocalDateTime  endTime ){
-        Duration duration = Duration.between(startTime,endTime);
         return String.valueOf(getDurationMinutes(startTime,endTime ));
     }
 

+ 9 - 1
platform-dao/src/main/java/com/platform/dao/enums/SysRoleCodeEnum.java

@@ -70,9 +70,17 @@ public enum SysRoleCodeEnum {
      */
     XMB_XMJL,
     /**
-     * 分公司机台
+     * 机台
      */
     Opreator,
+    /**
+     * 维修人员
+     */
+    Maintenance,
+    /**
+     * 维修主管
+     */
+    MM,
     /**
      * 分公司设备主管
      */

+ 4 - 4
platform-dao/src/main/java/com/platform/dao/util/CustomExcelImportUtil.java

@@ -457,14 +457,14 @@ public class CustomExcelImportUtil {
     public static void main(String[] args) throws IOException, InvalidFormatException {
         //String path = "C:\\Users\\cyz\\Downloads\\老版维保计划\\noperson";
         //File dirFile = new File("C:\\Users\\cyz\\Downloads\\老版维保计划\\noperson");
-        String[] files = {"C:\\Users\\cyz\\\\Downloads\\2021.8.27 保养初始时间导入 desma.xls"};
+        String[] files = {"C:\\Users\\cyz\\\\Downloads\\2021.9.14 保养标准 保养时间 去除指定.xls"};
         for(String fileStr:files){
             System.out.println(fileStr);
             InputStream inputstream = new FileInputStream(fileStr);
             LocalDateTime now = LocalDateTime.now();
             //List<SbInfoVO> list = importSbInfoList(inputstream);
             List<CheckStandard> list = importCheckStandardListByUpdate(inputstream);
-           list.forEach(item -> {
+            list.forEach(item -> {
                 System.out.println(item.toString());
             });
             System.out.println("处理数量:" + list.size());
@@ -1050,8 +1050,8 @@ public class CustomExcelImportUtil {
                 }else  if(periodType.equals("台时")){
                     record.setPeriodType(CheckPlanPeriodTypeEnum.TAISHI.getValue());
                 }
-                String lastDate = row.getCell(11).getStringCellValue().trim();
-                String nextDate = row.getCell(12).getStringCellValue().trim();
+                String lastDate = getCellValue(row.getCell(11));
+                String nextDate = getCellValue(row.getCell(12));
                 if(StringUtils.isNotBlank(lastDate)){
                     record.setLastDate(DateUtils.strToLocalDate(lastDate, DateUtils.PATTERN_YMD));
                 }

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

@@ -5,6 +5,7 @@
         application.*,
         user.real_name as userName,
         user2.real_name as repairUserName,
+        user3.real_name as checkUserName,
         sb.name as sbName,part.name as partName,
         sb.no as sbNo, sb.cph as sbCph, sb.model_id as modelId,
         error.name as repairErrorTypeName
@@ -16,6 +17,7 @@
         from t_repair_application_form application
         left join t_sys_user user on application.user_id = user.user_id
         left join t_sys_user user2 on application.repair_user_id = user2.user_id
+        left join t_sys_user user3 on application.check_user_id = user3.user_id
         left join t_sb_info sb on application.sb_id = sb.id
         left join t_error_type error on application.repair_error_type_id = error.id
         left join t_part_info part on application.part_id = part.id
@@ -87,6 +89,7 @@
         from t_repair_application_form application
         left join t_sys_user user on application.user_id = user.user_id
         left join t_sys_user user2 on application.repair_user_id = user2.user_id
+        left join t_sys_user user3 on application.check_user_id = user3.user_id
         left join t_sb_info sb on application.sb_id = sb.id
         left join t_part_info part on application.part_id = part.id
         left join t_error_type error on application.repair_error_type_id = error.id

+ 26 - 7
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -393,6 +393,20 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
             throw new BusinessException("该状态不允许接收任务");
         }
         UserInfo userInfo = SecurityUtils.getUser().getUserInfo();
+        SbInfo sbInfo = sbInfoService.getModelById(applicationForm.getSbId());
+        if(sbInfo == null){
+            throw new BusinessException("设备不存在,无法接收");
+        }
+        if(sbInfo.getRepairUser() == null){
+            throw new BusinessException("设备的第一维修人未设置,无法接受任务");
+        }
+        if(sbInfo.getRepairUserSecond() == null){
+            throw new BusinessException("设备的第二维修人未设置,无法接受任务");
+        }
+
+        if (!sbInfo.getRepairUser().equals(userInfo.getUserId()) && !sbInfo.getRepairUserSecond().equals(userInfo.getUserId())) {
+            throw new BusinessException("您不是该设备的第一维修人或第二维修人,无法接受任务");
+        }
         applicationForm.setRepairUserId(userInfo.getUserId());
         applicationForm.setStatus(RepairApplicationFormStatusEnum.PROCESSING.getValue());
         if(applicationForm.getRepairStartTime() == null){
@@ -478,7 +492,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         if(applicationForm.getRepairEndTime() == null){
             applicationForm.setRepairEndTime(LocalDateTime.now());
         }
-        applicationForm.setRepairMinutes(DateUtils.getDurationMinutesStr(applicationForm.getRepairEndTime(), applicationForm.getRepairStartTime()));
+        applicationForm.setRepairMinutes(DateUtils.getDurationMinutesStr(applicationForm.getRepairStartTime(), applicationForm.getRepairEndTime()));
         // 根据配置判断维修是否超时
         String hourFirstStr = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_OVERTIME_MINUTE_FIRST.name());
         int hourFirst = 180;// 默认3小时,180分钟
@@ -529,6 +543,8 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
      * 给领导发邮件,领导通过邮件跳转到审核页面
      * 判断接收人是设备的第一维修人,如果是要提交给第二维修人进行审核,这个时候维修单状态不变。
      * 如果是第二维修人,则直接提报给牛工进行审核即可。
+     *
+     * TODO: 统一发给牛工,以免出问题,只审批一次,后面在完善2级审批的流程
      * @param id :
      */
     @Override
@@ -544,10 +560,12 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         // 第一维修人发给第二维系人验收,第二维修人发给牛工验收
         SysUserVO userVO = null;
         String checkUserId = null;
-        if(applicationForm.getRepairUserId().equals(sbInfoVO.getRepairUser())){
+
+        // // 有可能维修人不是本设备绑定的维修人,则统一给牛工
+      /*  if(applicationForm.getRepairUserId().equals(sbInfoVO.getRepairUser())){
             applicationForm.setCheckUserId(sbInfoVO.getRepairUserSecond());
             userVO = BeanConverterUtil.copyObjectProperties(userMapper.selectByPrimaryKey(sbInfoVO.getRepairUserSecond()), SysUserVO.class);
-        }else{
+        }else{*/
             SysUserDTO query = new SysUserDTO();
             query.setRoleCode(SysRoleCodeEnum.REPAIR_EXAMINE.name());
             List<SysUserVO> users = userMapper.selectDeptRoleUser(query);
@@ -557,7 +575,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 throw new BusinessException("审核角色:REPAIR_EXAMINE未绑定用户,REPAIR_EXAMINE为维修单最终验收人,请设置用户");
             }
             applicationForm.setCheckUserId(userVO.getUserId());
-        }
+        /*}*/
 
         super.modModelByPrimaryKey(applicationForm);
 
@@ -592,7 +610,8 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         info.setStatus(SbInfoStatusEnum.IN_USE.getValue());
         sbInfoService.modModelByPrimaryKey(info);
 
-        if(applicationForm.getCheckUserId().equals(info.getRepairUserSecond())){
+        // 如果接收人是第一维修人,则验收提交给第二维修人,如果接收人是第二维修人,则直接提交给牛工,牛工审核就结束了
+        /*if(applicationForm.getCheckUserId().equals(info.getRepairUserSecond())){
             SysUserVO userVO = null;
             SysUserDTO query = new SysUserDTO();
             query.setRoleCode(SysRoleCodeEnum.REPAIR_EXAMINE.name());
@@ -616,10 +635,10 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
             SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.REPAIR.getValue(), WorkplaceBacklogDetailTypeEnum.REPAIR_EXAMINE.getValue(),
                     applicationForm.getId(), MessageTemplateUtil.getFreemarkerHtmlContentCheck(repairUrl,BeanConverterUtil.copyObjectProperties(applicationForm, RepairApplicationFormDTO.class), BeanConverterUtil.copyObjectProperties(info, SbInfoVO.class)),
                     applicationForm.getId(), ListUtils.newArrayList(userVO.getUserId()), ListUtils.newArrayList(userVO.getEmail())));
-        }else{
+        }else{*/
             applicationForm.setCheckEndTime(LocalDateTime.now());
             applicationForm.setStatus(RepairApplicationFormStatusEnum.FINISHED.getValue());
-        }
+        // }
         applicationForm.setUpdateTime(applicationForm.getCheckEndTime());
         super.modModelByPrimaryKey(applicationForm);
     }

+ 3 - 2
platform-service/src/main/java/com/platform/service/wechat/util/WeChatMessageUtil.java

@@ -33,7 +33,8 @@ public class WeChatMessageUtil {
                     systemName = "设备管理系统";
                 }
                 WechatTemplateRequest loginRequest = WechatTemplateRequestBuilder.
-                        getLoginRequest("http://h5.demo.qykh2009.com/", "ckoOKCyzY4cMBznwhfabNwpVBLK3cqxQdvEnAeV-Nwk",
+                        getLoginRequest("http://h5.demo.qykh2009.com/",
+                                "ckoOKCyzY4cMBznwhfabNwpVBLK3cqxQdvEnAeV-Nwk",
                                 openId,
                                 new String[]{"尊敬的用户【" + realName + "】您好,您已正常登录系统!", userName, systemName,
                                         DateUtils.dateToString(LocalDateTime.now()),
@@ -46,4 +47,4 @@ public class WeChatMessageUtil {
         }
     }
 
-}
+}