ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderAuditingForm.java
@@ -1,8 +1,10 @@ package com.ycl.platform.domain.form; import com.ycl.platform.base.AbsForm; import com.ycl.system.domain.group.Update; import enumeration.general.WorkOrderStatusEnum; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; /** @@ -17,7 +19,7 @@ /** * 审核结果 */ @NotBlank(message = "审核结果不能为空") @NotNull(message = "审核结果不能为空", groups = {Update.class}) private WorkOrderStatusEnum auditingResult; /** ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderBatchAuditingForm.java
@@ -1,8 +1,10 @@ package com.ycl.platform.domain.form; import com.ycl.system.domain.group.Update; import enumeration.general.WorkOrderStatusEnum; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.util.List; @@ -19,7 +21,7 @@ /** * 审核结果 */ @NotBlank(message = "审核结果不能为空") @NotNull(message = "审核结果不能为空", groups = {Update.class}) private WorkOrderStatusEnum auditingResult; /** @@ -30,7 +32,7 @@ /** * 工单编号 */ @NotEmpty(message = "工单不能为空") private List<String> workOrderNos; @NotEmpty(message = "请先勾选需要审核的工单", groups = {Update.class}) private List<String> workOrderNumbers; } ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -82,19 +82,21 @@ @PutMapping("/yw-condition") @ApiOperation(value = "运维情况", notes = "运维情况") public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWConditionForm form) { public Result ywCondition(@RequestBody @Validated WorkOrderYWConditionForm form) { return workOrderService.ywCondition(form); } //现在没用 @PutMapping("/yw-result") @ApiOperation(value = "运维结果", notes = "运维结果") public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWResultForm form) { public Result ywResult(@RequestBody @Validated WorkOrderYWResultForm form) { return workOrderService.ywResult(form); } //现在没用 @PutMapping("/check-result") @ApiOperation(value = "检测结果", notes = "检测结果") public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderCheckResultForm form) { public Result ywCheckResult(@RequestBody @Validated WorkOrderCheckResultForm form) { return workOrderService.checkResult(form); } @@ -105,12 +107,12 @@ return workOrderService.removeById(id); } @DeleteMapping("/batch") @ApiOperation(value = "批量删除", notes = "批量删除") @PreAuthorize("@ss.hasPermi('work:order:remove')") public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { return workOrderService.remove(ids); } // @DeleteMapping("/batch") // @ApiOperation(value = "批量删除", notes = "批量删除") // @PreAuthorize("@ss.hasPermi('work:order:remove')") // public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { // return workOrderService.remove(ids); // } @PostMapping("/page") @ApiOperation(value = "分页", notes = "分页") @@ -241,7 +243,7 @@ */ @DeleteMapping("/batchDelete") @PreAuthorize("@ss.hasPermi('work:order:delete')") @ApiOperation(value = "批量删除工单白名单", notes = "批量删除工单白名单") @ApiOperation(value = "批量删除工单", notes = "批量删除工单") public Result batchDeleteWorkOrder(@RequestBody List<String> workOrderNos) { return workOrderService.batchDeleteWorkOrder(workOrderNos); } ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -108,17 +108,19 @@ item.setOnlineStr("未知"); } List<Date> offLineTime = item.getOffLineTime(); //后续可以改成配置的离线次数(提取前n次,n为配置的离线次数) SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if(CollectionUtils.isNotEmpty(offLineTime) && offLineTime.size()>1){ offLineTime = offLineTime.subList(0,1); if(!CollectionUtils.isEmpty(offLineTime)) { //后续可以改成配置的离线次数(提取前n次,n为配置的离线次数) SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (offLineTime.size() > 1) { offLineTime = offLineTime.subList(0, 2); } List<String> dateStr = new ArrayList<>(); for (Date date : offLineTime) { String formatDate = format.format(date); dateStr.add(formatDate); } item.setOffLineTimeStr(dateStr); } List<String> dateStr = new ArrayList<>(); for (Date date : offLineTime) { String formatDate = format.format(date); dateStr.add(formatDate); } item.setOffLineTimeStr(dateStr); }); params.setDeptTag(-1); params.setDeviceType(1); ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -425,9 +425,9 @@ @Transactional(rollbackFor = Exception.class) public Result batchAuditing(WorkOrderBatchAuditingForm form) { //根据工单编号获取工单 List<WorkOrder> list = baseMapper.selectByNos(form.getWorkOrderNos()); List<WorkOrder> list = baseMapper.selectByNos(form.getWorkOrderNumbers()); if (list.isEmpty()) { return Result.error("没有工单可以审核"); return Result.error("没有待审核工单"); } List<String> workOrderNoList = list.stream().map(WorkOrder::getWorkOrderNo).collect(Collectors.toList()); List<String> serialNumbers = list.stream().map(WorkOrder::getSerialNumber).toList(); @@ -572,7 +572,17 @@ public Result removeById(String id) { WorkOrder workOrder = baseMapper.selectById(id); String workOrderNo = workOrder.getWorkOrderNo(); workOrderDistributeRecordMapper.deleteByWorkOrder(workOrderNo); //删除工单审核记录 workOrderAuditingRecordMapper.delete(new QueryWrapper<WorkOrderAuditingRecord>().eq("work_order_no", workOrderNo)); //删除工单图片记录 workOrderCheckImgMapper.delete(new QueryWrapper<WorkOrderCheckImg>().eq("work_order_no", workOrderNo)); //删除工单下发记录 workOrderDistributeRecordMapper.delete(new QueryWrapper<WorkOrderDistributeRecord>().eq("work_order_no", workOrderNo)); //删除工单故障类型 workOrderErrorTypeMapper.delete(new QueryWrapper<WorkOrderErrorType>().eq("work_order_no", workOrderNo)); //删除工单情况记录 workOrderYwConditionRecordMapper.delete(new QueryWrapper<WorkOrderYwConditionRecord>().eq("work_order_no", workOrderNo)); if (baseMapper.deleteById(id) > 0) { return Result.ok("删除成功"); } ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -189,6 +189,15 @@ } // 先查出设备IP集合,剔除掉在线情况是未知的,并且只检测正在考核的设备避免多余工单 List<TMonitorResult> monitorList = monitorMapper.getDistinctIP(); //补充错误时间点 Query onlineQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); Map<String, TMonitorResult> mongoMap = mongoTemplate.find(onlineQuery, TMonitorResult.class).stream().collect(Collectors.toMap(TMonitorResult::getNo, Function.identity())); for (TMonitorResult result : monitorList) { TMonitorResult mongoData = mongoMap.get(result.getNo()); if(mongoData!=null){ result.setOffLineTime(mongoData.getOffLineTime()); } } List<TMonitorResult> dataList = new ArrayList<>(48); Integer time = times; List<CompletableFuture<TMonitorResult>> futureList = monitorList.stream() @@ -214,6 +223,10 @@ monitor.setPingOnline(Boolean.FALSE); monitor.setCheckCount(checkTimes); monitor.setOffLineCount(offLineTimes); List<Date> offLineTime = monitor.getOffLineTime(); if(CollectionUtils.isEmpty(offLineTime)) offLineTime = new ArrayList<>(); offLineTime.add(new Date()); monitor.setOffLineTime(offLineTime); if (monitor.getOffLineCount() >= time) { WorkOrder workOrder = new WorkOrder(); workOrder.setSerialNumber(monitor.getNo()); @@ -321,13 +334,13 @@ }).collect(Collectors.toList()); monitorMapper.updateOnline(willUpdateList); //离线生成工单,一个ip只生成一个工单 List<VideoOnlineResult> workOrders = (List<VideoOnlineResult>) records.stream() List<VideoOnlineResult> workOrders = new ArrayList<>(records.stream() .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())) .collect(Collectors.toMap( VideoOnlineResult::getIpAddr, Function.identity(), (existing, replacement) -> existing // 如果遇到相同的 IP,保留第一个(existing) )).values(); )).values()); uyErrorTypeCheckService.videoOnlineCheck(workOrders); } else { log.error("点位在线结果数据为空{}", data); ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -438,12 +438,10 @@ from t_work_order wo <where> wo.deleted = 0 and wo.status = 'YW_HANDLE' <if test="workOrderNos != null and workOrderNos.size() > 0"> wo.work_order_no in <foreach collection="workOrderNos" open="(" separator="," close=")" item="workOrderNo"> #{workOrderNo} </foreach> </if> and wo.work_order_no in <foreach collection="workOrderNos" open="(" separator="," close=")" item="workOrderNo"> #{workOrderNo} </foreach> </where> </select> </mapper>