|  | @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.framework.common.pojo.PageResult;
 |  |  import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 |  |  import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 |  |  import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
											
												
													
														|  | 
 |  | +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 |  |  import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
 |  |  import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 |  |  import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 | 
											
										
											
												
													
														|  | @@ -24,6 +25,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper;
 |  |  import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
 |  |  import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.pms.message.PmsMessage;
 |  |  import cn.iocoder.yudao.module.pms.message.PmsMessage;
 | 
											
												
													
														|  | 
 |  | +import cn.iocoder.yudao.module.pms.service.IotDeviceService;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.pms.service.iotdeviceperson.IotDevicePersonService;
 |  |  import cn.iocoder.yudao.module.pms.service.iotdeviceperson.IotDevicePersonService;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 |  |  import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 | 
											
												
													
														|  |  import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 |  |  import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 | 
											
										
											
												
													
														|  | @@ -61,6 +63,7 @@ import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_FAILURE_RE
 | 
											
												
													
														|  |  @Validated
 |  |  @Validated
 | 
											
												
													
														|  |  public class IotFailureReportServiceImpl implements IotFailureReportService {
 |  |  public class IotFailureReportServiceImpl implements IotFailureReportService {
 | 
											
												
													
														|  |      public static final String PROCESS_KEY = "failure-report";
 |  |      public static final String PROCESS_KEY = "failure-report";
 | 
											
												
													
														|  | 
 |  | +    public static final String RH_PROCESS_KEY = "rh-failure-report";
 | 
											
												
													
														|  |      @Resource
 |  |      @Resource
 | 
											
												
													
														|  |      private IotFailureReportMapper iotFailureReportMapper;
 |  |      private IotFailureReportMapper iotFailureReportMapper;
 | 
											
												
													
														|  |      @Resource
 |  |      @Resource
 | 
											
										
											
												
													
														|  | @@ -85,6 +88,8 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
 | 
											
												
													
														|  |      private PmsMessage pmsMessage;
 |  |      private PmsMessage pmsMessage;
 | 
											
												
													
														|  |      @Autowired
 |  |      @Autowired
 | 
											
												
													
														|  |      private IotDevicePersonService iotDevicePersonService;
 |  |      private IotDevicePersonService iotDevicePersonService;
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private IotDeviceService iotDeviceService;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class)
 |  |      @Transactional(rollbackFor = Exception.class)
 | 
											
										
											
												
													
														|  | @@ -99,7 +104,14 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
 | 
											
												
													
														|  |                  //生成工单
 |  |                  //生成工单
 | 
											
												
													
														|  |                  IotMaintainDO iotMaintainDO = new IotMaintainDO();
 |  |                  IotMaintainDO iotMaintainDO = new IotMaintainDO();
 | 
											
												
													
														|  |                  BeanUtils.copyProperties(failureReportDO, iotMaintainDO);
 |  |                  BeanUtils.copyProperties(failureReportDO, iotMaintainDO);
 | 
											
												
													
														|  | -                iotMaintainDO.setStatus("tx");
 |  | 
 | 
											
												
													
														|  | 
 |  | +                //判断是否是瑞恒,如果是瑞恒的话先更新状态为维修人员填写
 | 
											
												
													
														|  | 
 |  | +                String deviceCompany = iotDeviceService.getDeviceCompany(failureReportDO.getDeviceId());
 | 
											
												
													
														|  | 
 |  | +                if ("rh".equals(deviceCompany)) {
 | 
											
												
													
														|  | 
 |  | +                    iotMaintainDO.setStatus("personnel");
 | 
											
												
													
														|  | 
 |  | +                    iotMaintainDO.setType("");
 | 
											
												
													
														|  | 
 |  | +                } else {
 | 
											
												
													
														|  | 
 |  | +                    iotMaintainDO.setStatus("tx");
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  |                  iotMaintainDO.setPic(null);
 |  |                  iotMaintainDO.setPic(null);
 | 
											
												
													
														|  |                  //iotMaintainDO.setAuditStatus(0);
 |  |                  //iotMaintainDO.setAuditStatus(0);
 | 
											
												
													
														|  |                  iotMaintainDO.setAuditStatus(null);
 |  |                  iotMaintainDO.setAuditStatus(null);
 | 
											
										
											
												
													
														|  | @@ -171,11 +183,19 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
 | 
											
												
													
														|  |          for (String s : iotFailureReportDO.getApprovalId().split(",")) {
 |  |          for (String s : iotFailureReportDO.getApprovalId().split(",")) {
 | 
											
												
													
														|  |              approvalIds.add(Long.parseLong(s));
 |  |              approvalIds.add(Long.parseLong(s));
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        assigness.put("failure_approval", approvalIds);
 |  | 
 | 
											
												
													
														|  |          Map<String, Object> variable = new HashMap<>();
 |  |          Map<String, Object> variable = new HashMap<>();
 | 
											
												
													
														|  | -        variable.put("continue", "0");
 |  | 
 | 
											
												
													
														|  | -        String processInstanceId = processInstanceApi.createProcessInstance(SecurityFrameworkUtils.getLoginUserId(),
 |  | 
 | 
											
												
													
														|  | -                new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY).setBusinessKey(String.valueOf(id)).setStartUserSelectAssignees(assigness).setVariables(variable));
 |  | 
 | 
											
												
													
														|  | 
 |  | +        String deviceCompany = iotDeviceService.getDeviceCompany(iotFailureReportDO.getDeviceId());
 | 
											
												
													
														|  | 
 |  | +        String processInstanceId;
 | 
											
												
													
														|  | 
 |  | +        if ("rh".equals(deviceCompany)) {
 | 
											
												
													
														|  | 
 |  | +            assigness.put("rh_failure_approval", approvalIds);
 | 
											
												
													
														|  | 
 |  | +            processInstanceId = processInstanceApi.createProcessInstance(SecurityFrameworkUtils.getLoginUserId(),
 | 
											
												
													
														|  | 
 |  | +                    new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(RH_PROCESS_KEY).setBusinessKey(String.valueOf(id)).setStartUserSelectAssignees(assigness).setVariables(variable));
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            assigness.put("failure_approval", approvalIds);
 | 
											
												
													
														|  | 
 |  | +            variable.put("continue", "0");
 | 
											
												
													
														|  | 
 |  | +            processInstanceId = processInstanceApi.createProcessInstance(SecurityFrameworkUtils.getLoginUserId(),
 | 
											
												
													
														|  | 
 |  | +                    new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY).setBusinessKey(String.valueOf(id)).setStartUserSelectAssignees(assigness).setVariables(variable));
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |          // 将流程实例id 更新到 供应商主数据表
 |  |          // 将流程实例id 更新到 供应商主数据表
 | 
											
												
													
														|  |          iotFailureReportMapper.updateById(new IotFailureReportDO().setId(id).setProcessInstanceId(processInstanceId).setAuditStatus(FailureAuditStatusEnum.PROCESS.getStatus()));
 |  |          iotFailureReportMapper.updateById(new IotFailureReportDO().setId(id).setProcessInstanceId(processInstanceId).setAuditStatus(FailureAuditStatusEnum.PROCESS.getStatus()));
 | 
											
												
													
														|  |          return processInstanceId;
 |  |          return processInstanceId;
 | 
											
										
											
												
													
														|  | @@ -191,7 +211,7 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
 | 
											
												
													
														|  |          if (Objects.isNull(iotDeviceDO)) {
 |  |          if (Objects.isNull(iotDeviceDO)) {
 | 
											
												
													
														|  |              throw new ServiceException();
 |  |              throw new ServiceException();
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        iotFailureReport.setFailureName(iotDeviceDO.getDeviceCode()+iotDeviceDO.getDeviceName()+DateUtil.format(new Date(), "yyMMdd"));
 |  | 
 | 
											
												
													
														|  | 
 |  | +        iotFailureReport.setFailureName(iotDeviceDO.getDeviceCode()+iotDeviceDO.getDeviceName()+DateUtil.format(new Date(), "yyMMddHHmm"));
 | 
											
												
													
														|  |          iotFailureReport.setDeviceName(iotDeviceDO.getDeviceName());
 |  |          iotFailureReport.setDeviceName(iotDeviceDO.getDeviceName());
 | 
											
												
													
														|  |          iotFailureReport.setDeleted(false);
 |  |          iotFailureReport.setDeleted(false);
 | 
											
												
													
														|  |          if (iotFailureReport.getIfDeal()) {
 |  |          if (iotFailureReport.getIfDeal()) {
 | 
											
										
											
												
													
														|  | @@ -277,6 +297,7 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  | 
 |  | +    @DataPermission(enable = false)
 | 
											
												
													
														|  |      public IotFailureReportDO getIotFailureReport(Long id) {
 |  |      public IotFailureReportDO getIotFailureReport(Long id) {
 | 
											
												
													
														|  |          return iotFailureReportMapper.selectById(id);
 |  |          return iotFailureReportMapper.selectById(id);
 | 
											
												
													
														|  |      }
 |  |      }
 |