| | |
| | | import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; |
| | | import org.jeecg.modules.eam.constant.*; |
| | | import org.jeecg.modules.eam.dto.EamRepairOrderDto; |
| | | import org.jeecg.modules.eam.dto.EamRepairOrderExport; |
| | | import org.jeecg.modules.eam.entity.EamEquipment; |
| | | import org.jeecg.modules.eam.entity.EamRepairOrder; |
| | | import org.jeecg.modules.eam.entity.EamRepairPerson; |
| | |
| | | import org.jeecg.modules.flowable.apithird.service.FlowCommonService; |
| | | import org.jeecg.modules.flowable.service.IFlowDefinitionService; |
| | | import org.jeecg.modules.flowable.service.IFlowTaskService; |
| | | import org.jeecg.modules.flowable.util.TimeUtil; |
| | | import org.jeecg.modules.system.entity.BaseFactory; |
| | | import org.jeecg.modules.system.entity.BaseFactoryUser; |
| | | import org.jeecg.modules.system.service.IBaseFactoryService; |
| | |
| | | } |
| | | BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder); |
| | | eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | this.updateById(eamRepairOrder); |
| | | eamRepairOrder.setActualEndTime(new Date()); |
| | | //计算维修时间与故障时间 |
| | | Date startTime; |
| | | Date endTime; |
| | | //维修结束时间-维修开始时间=维修时长 |
| | | startTime=eamRepairOrder.getActualStartTime(); |
| | | endTime=eamRepairOrder.getActualEndTime(); |
| | | eamRepairOrder.setRepairDuration(TimeUtil.howLong(startTime,endTime,2)); |
| | | //维修结束时间-故障报修时间=故障时长 |
| | | EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId()); |
| | | if (eamReportRepair==null){ |
| | | return false; |
| | | } |
| | | startTime=eamReportRepair.getFaultStartTime(); |
| | | endTime=eamRepairOrder.getActualEndTime(); |
| | | eamRepairOrder.setFaultDuration(TimeUtil.howLong(startTime,endTime,2)); |
| | | eamRepairOrder.setFaultStartTime(new Date()); |
| | | this.updateById(eamRepairOrder); |
| | | eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | eamReportRepairService.updateById(eamReportRepair); |
| | | List<EamRepairPerson> eamRepairPersonList=new ArrayList<>(); |
| | |
| | | } |
| | | if (StrUtil.isEmpty(eamRepairOrder.getRepairCode())) { |
| | | throw new RuntimeException("工单编号为空"); |
| | | } |
| | | if (eamRepairOrder.getActualStartTime()==null){ |
| | | throw new RuntimeException("维修开始时间为空"); |
| | | } |
| | | if (eamRepairOrder.getActualEndTime()==null){ |
| | | throw new RuntimeException("维修结束时间为空"); |
| | | } |
| | | if (StrUtil.isEmpty(eamRepairOrder.getFaultReason())){ |
| | | throw new RuntimeException("故障原因为空"); |
| | |
| | | return eamRepairOrderResponse; |
| | | } |
| | | |
| | | /** |
| | | * 维修工单导出 |
| | | * @param eamRepairOrderQuery |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<EamRepairOrderExport> exportList(EamRepairOrderQuery eamRepairOrderQuery){ |
| | | QueryWrapper<EamRepairOrderExport> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); |
| | | //用户数据权限 |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (sysUser == null) { |
| | | return new ArrayList<>(); |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据中心过滤设备 |
| | | List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService. |
| | | list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId())); |
| | | if (!CollectionUtils.isEmpty(baseFactoryUserList)) { |
| | | Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); |
| | | Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); |
| | | queryWrapper.in("e.factory_org_code", factoryCode); |
| | | } else { |
| | | return new ArrayList<>(); |
| | | } |
| | | } |
| | | //查询条件过滤 |
| | | if (eamRepairOrderQuery != null) { |
| | | if (StringUtils.isNotBlank(eamRepairOrderQuery.getEquipmentId())) { |
| | | queryWrapper.eq("wmo.equipment_id", eamRepairOrderQuery.getEquipmentId()); |
| | | } |
| | | if (StringUtils.isNotBlank(eamRepairOrderQuery.getEquipmentCode())) { |
| | | queryWrapper.like("e.equipment_code", eamRepairOrderQuery.getEquipmentCode()); |
| | | } |
| | | if (StringUtils.isNotBlank(eamRepairOrderQuery.getEquipmentName())) { |
| | | queryWrapper.like("e.equipment_name", eamRepairOrderQuery.getEquipmentName()); |
| | | } |
| | | if (StringUtils.isNotBlank(eamRepairOrderQuery.getRepairStatus())) { |
| | | queryWrapper.eq("wmo.repair_status", eamRepairOrderQuery.getRepairStatus()); |
| | | } |
| | | if (StringUtils.isNotBlank(eamRepairOrderQuery.getRepairCode())) { |
| | | queryWrapper.like("wmo.repair_code", eamRepairOrderQuery.getRepairCode()); |
| | | } |
| | | //排序 |
| | | if (StringUtils.isNotBlank(eamRepairOrderQuery.getColumn()) && StringUtils.isNotBlank(eamRepairOrderQuery.getOrder())) { |
| | | String column = eamRepairOrderQuery.getColumn(); |
| | | if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { |
| | | column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); |
| | | } |
| | | if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamRepairOrderQuery.getOrder())) { |
| | | queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column)); |
| | | } else { |
| | | queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column)); |
| | | } |
| | | } else { |
| | | queryWrapper.orderByDesc("wmo.create_time"); |
| | | } |
| | | } else { |
| | | queryWrapper.orderByDesc("wmo.create_time"); |
| | | } |
| | | return this.baseMapper.queryExportList(queryWrapper); |
| | | |
| | | } |
| | | |
| | | private boolean claimTask(String taskId, LoginUser user) { |
| | | Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); |
| | | if (task == null) { |