|
@@ -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);
|
|
|
}
|