| | |
| | | import com.ycl.platform.wvp.WVPResult; |
| | | import com.ycl.system.Result; |
| | | import com.ycl.system.domain.SysConfig; |
| | | import com.ycl.system.entity.SysDictData; |
| | | import com.ycl.system.mapper.SysConfigMapper; |
| | | import com.ycl.system.mapper.SysDictDataMapper; |
| | | import com.ycl.system.mapper.SysDictTypeMapper; |
| | | import com.ycl.system.model.LoginUser; |
| | | import com.ycl.system.page.PageUtil; |
| | | import com.ycl.utils.DateUtils; |
| | |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; |
| | | private final NotifyService notifyService; |
| | | private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper; |
| | | private final TMonitorMapper monitorMapper; |
| | | private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper; |
| | | private final SysConfigMapper configMapper; |
| | | private final ServerConfig serverConfig; |
| | | private final ReportMapper reportMapper; |
| | | private final SysDictDataMapper dictDataMapper; |
| | | |
| | | @Value("${rtsp.server:http://127.0.0.1:7788}") |
| | | private String rtspServer; |
| | |
| | | Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder))); |
| | | List<WorkOrder> waitAddList = new ArrayList<>(48); |
| | | Integer updateNum = 0; |
| | | // TODO 查询是否报备过,更新故障类型 |
| | | |
| | | for (WorkOrder workOrder : workOrderList) { |
| | | WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber()); |
| | | if (Objects.nonNull(databaseWorkOrder)) { |
| | | List<WorkOrderErrorType> workOrderErrorTypeList = new LambdaQueryChainWrapper<>(workOrderErrorTypeMapper) |
| | | .select(WorkOrderErrorType::getErrorName) |
| | | .eq(WorkOrderErrorType::getWorkOrderNo, workOrder.getWorkOrderNo()) |
| | | .list(); |
| | | List<String> errorNameList = workOrderErrorTypeList.stream().map(WorkOrderErrorType::getErrorName).collect(Collectors.toList()); |
| | | String errorType = databaseWorkOrder.getErrorType(); |
| | | if (workOrder.getErrorType().equals(errorType)) { |
| | | if (errorNameList.contains(errorType)) { |
| | | // 如果,国标码、故障类型都一样,则跳过不处理 |
| | | continue; |
| | | } else { |
| | | // 错误类型不一样,就更新错误类型,并且重置工单状态为待处理 |
| | | errorType = errorType + "," + workOrder.getErrorType(); |
| | | databaseWorkOrder.setErrorType(errorType); |
| | | databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); |
| | | // 错误类型不一样,就新增一个错误类型,并且重置工单状态为待处理 |
| | | List<SysDictData> errorTypeDictList = dictDataMapper.selectDictDataByType("error_type"); |
| | | String finalErrorType = errorType; |
| | | List<SysDictData> targetErrorTypes = errorTypeDictList.stream().filter(item -> finalErrorType.equals(item.getDictValue())).collect(Collectors.toList()); |
| | | if (! CollectionUtils.isEmpty(targetErrorTypes)) { |
| | | errorType = targetErrorTypes.get(0).getDictValue(); |
| | | } |
| | | WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); |
| | | workOrderErrorType.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo()); |
| | | Date now = new Date(); |
| | | workOrderErrorType.setCreateTime(now); |
| | | workOrderErrorType.setUpdateTime(now); |
| | | workOrderErrorTypeMapper.insert(workOrderErrorType); |
| | | |
| | | databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); |
| | | databaseWorkOrder.setUpdateTime(now); |
| | | baseMapper.updateById(databaseWorkOrder); |
| | | updateNum++; |
| | | // 同时新增一个运维处理信息,表明此工单被调整 TODO |
| | | // 同时新增一个运维处理信息,表明此工单被调整 |
| | | WorkOrderYwConditionRecord ywRecord = new WorkOrderYwConditionRecord(); |
| | | ywRecord.setWorkOrderId(databaseWorkOrder.getId()); |
| | | ywRecord.setCommitUser(1); |
| | | ywRecord.setYwCondition("故障类型更新,工单状态调整为待处理"); |
| | | ywRecord.setCreateTime(new Date()); |
| | | workOrderYwConditionRecordMapper.insert(ywRecord); |
| | | } |
| | | } else { |
| | | workOrder.setCreateTime(new Date()); |
| | | workOrder.setUpdateTime(new Date()); |
| | | // // 如果报备过,使用最新报备的错误类型 |
| | | // Report report = reportMapper.checkPointReported(workOrder.getSerialNumber()); |
| | | // if (Objects.nonNull(report)) { |
| | | // workOrder.setErrorType(report.getErrorType()); |
| | | // } |
| | | waitAddList.add(workOrder); |
| | | } |
| | | } |
| | |
| | | Date now = new Date(); |
| | | entity.setCreateTime(now); |
| | | entity.setUpdateTime(now); |
| | | entity.setErrorType(String.join(",", form.getErrorType())); |
| | | List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList(); |
| | | workOrderErrorTypeMapper.insertWorkOrderErrorTypeList(workOrderErrorTypes); |
| | | if(baseMapper.insert(entity) > 0) { |
| | | return Result.ok("添加成功"); |
| | | } |
| | |
| | | workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue()); |
| | | workOrderYwConditionRecord.setYwCondition(form.getYwCondition()); |
| | | workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials()); |
| | | workOrderYwConditionRecord.setSysMsg(Boolean.FALSE); |
| | | workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); |
| | | return Result.ok("操作成功"); |
| | | } |
| | |
| | | @Override |
| | | public Result selectYwConditionByYwId(Integer id) { |
| | | List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(id); |
| | | ywConditionList.stream().forEach(item -> { |
| | | if (Objects.nonNull(item.getSysMsg()) && item.getSysMsg()) { |
| | | item.setCommitUserName("系统消息"); |
| | | } |
| | | }); |
| | | return Result.ok().data(ywConditionList); |
| | | } |
| | | |
| | |
| | | public Result page(WorkOrderQuery query) { |
| | | IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); |
| | | baseMapper.page(page, query); |
| | | page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | |
| | | public Result distributePage(DistributeWorkOrderQuery query) { |
| | | IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); |
| | | baseMapper.distributePage(page, query); |
| | | page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); |
| | | return Result.ok().data(page).total(page.getTotal()); |
| | | } |
| | | |
| | |
| | | */ |
| | | public synchronized Boolean getDistributeLock() { |
| | | if (Objects.isNull(redisCache.getCacheObject(DISTRIBUTE_LOCK_KEY))) { |
| | | redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1"); |
| | | redisCache.setCacheObject(DISTRIBUTE_LOCK_KEY, "1", 30, TimeUnit.SECONDS); |
| | | return true; |
| | | } else { |
| | | return false; |