| | |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | List<WorkOrderVO> getHandleTimeList(@Param("workOrderNos")List<String> workOrderNos); |
| | | |
| | | WorkOrderDetailVO detailByNoButNoDistributeRecord(String workOrderNo); |
| | | |
| | | List<WorkOrderVO> distributeList(Date startDate, Date endDate); |
| | | } |
| | |
| | | import org.bytedeco.javacv.FFmpegFrameGrabber; |
| | | |
| | | import java.io.IOException; |
| | | import java.time.LocalDate; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | */ |
| | | Result distributePage(DistributeWorkOrderQuery query); |
| | | |
| | | List<WorkOrderVO> distributeList(Date startDate, Date endDate); |
| | | /** |
| | | * 快速下发 |
| | | * @param data |
| | |
| | | import enumeration.general.WorkOrderStatusEnum; |
| | | import lombok.Data; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | @Slf4j |
| | | public class UYErrorTypeCheckServiceImpl implements UYErrorTypeCheckService { |
| | | |
| | | private final WorkOrderService workOrderService; |
| | |
| | | ywThresholdService.check(YwThreadConstants.Video_DiffTime, timeDiff, item.getDeviceNo(), ywThresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CLOCK_SKEW.getValue()); |
| | | return workOrder; |
| | | }).collect(Collectors.toList()); |
| | | |
| | | log.error("osdCheck获得插入工单:{}",workOrderList); |
| | | workOrderService.innerAddWorkOrder(workOrderList); |
| | | } |
| | | |
| | |
| | | import pojo.CascadeOption; |
| | | import utils.file.FileUtils; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<WorkOrderVO> distributeList(Date startDate, Date endDate){ |
| | | return baseMapper.distributeList(startDate,endDate); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Result distributeFast(DistributeWorkOrderVO data) { |
| | | // 获取当前时间 |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Result selectedIdsDistribute(DistributeWorkOrderQuery query) { |
| | |
| | | import com.ycl.platform.domain.entity.TMonitor; |
| | | import com.ycl.platform.domain.param.HK.*; |
| | | import com.ycl.platform.domain.result.HK.*; |
| | | import com.ycl.platform.domain.result.UY.MonitorQualifyResult; |
| | | import com.ycl.platform.domain.result.UY.VideoOnlineResult; |
| | | import com.ycl.platform.domain.vo.UpdateOnlineVO; |
| | | import com.ycl.platform.mapper.CheckIndexCarMapper; |
| | | import com.ycl.platform.mapper.CheckIndexFaceMapper; |
| | | import com.ycl.platform.mapper.TMonitorMapper; |
| | | import com.ycl.platform.mapper.WorkOrderMapper; |
| | | import com.ycl.platform.service.*; |
| | | import com.ycl.utils.DateUtils; |
| | | import constant.ApiConstants; |
| | |
| | | } |
| | | } |
| | | log.error("打印hkResultLabels:{}",hkResultLabels); |
| | | |
| | | } |
| | | } |
| | | if (faceLabelId == null || carLabelId == null){ |
| | |
| | | //以批次id为key 放入 JSONObject对象 |
| | | map.put(Integer.valueOf(batchIdKey),batch); |
| | | //批次id 下 各区信息集合 |
| | | log.error("打印出data内容中批次id:{},以及对应的结果info:{}",batchIdKey,batch); |
| | | } |
| | | //获得最大的键值 |
| | | Optional<Integer> maxKey = map.keySet().stream() |
| | |
| | | //批次id 下 各区信息集合 |
| | | log.error("打印出省厅人脸data内容中批次id:{},以及对应的结果info:{}",batchIdKey,batch); |
| | | } |
| | | //获得最大的键值 |
| | | //获得最大的键值 |
| | | Optional<Integer> maxKey = map.keySet().stream() |
| | | .max(Integer::compareTo); |
| | | if (maxKey.isPresent()) { |
| | |
| | | Map<String,List<HkResultInfo>> provincialGroupedByAreaName = provincialList.stream() |
| | | .collect(Collectors.groupingBy(HkResultInfo::getAreaCode)); |
| | | for (Map.Entry<String, List<HkResultInfo>> entry : provincialGroupedByAreaName.entrySet()) { |
| | | log.error("最新批次内省厅数据:{}",provincialGroupedByAreaName.get(entry.getKey()).size()); |
| | | log.error("最新批次内省厅size:{}",provincialGroupedByAreaName.get(entry.getKey())); |
| | | CheckIndexCar car = new CheckIndexCar(); |
| | | CheckIndexFace face = new CheckIndexFace(); |
| | | score3Index(provincialGroupedByAreaName.get(entry.getKey()), car, face,entry.getKey()); |
| | |
| | | monitorList.add(monitor); |
| | | ywPointList.add(point); |
| | | } |
| | | log.error("同步mongo新ywpoint数据{}",ywPointList); |
| | | |
| | | //添加老数据 |
| | | List<String> numbers = CollectionUtils.isEmpty(monitorList) ? new ArrayList<>() : monitorList.stream().map(TMonitor::getSerialNumber).collect(Collectors.toList()); |
| | | monitorVOMap.forEach((key, value) -> { |
| | |
| | | ywPointList.add(value); |
| | | } |
| | | }); |
| | | log.error("同步mongo新加旧ywpoint数据{}",ywPointList); |
| | | |
| | | log.info("result集合{},设备集合{},点位集合{}", oneMachineFileResults.size(), monitorList.size(), ywPointList.size()); |
| | | //插入数据库 |
| | | if (!CollectionUtils.isEmpty(monitorList)) { |
| | |
| | | .map(TMonitorResult::getWorkOrder) |
| | | .collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(workOrderList)) { |
| | | log.error("pointOnline获得插入工单:{}",workOrderList); |
| | | workOrderService.innerAddWorkOrder(workOrderList); |
| | | } |
| | | log.info("点位在线监测完成"); |
| | |
| | | package com.ycl.task; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.ycl.platform.domain.entity.WorkOrder; |
| | | import com.ycl.platform.domain.query.DistributeWorkOrderQuery; |
| | | import com.ycl.platform.domain.vo.WorkOrderVO; |
| | | import com.ycl.platform.domain.vo.YwPointJobVO; |
| | | import com.ycl.platform.mapper.WorkOrderMapper; |
| | | import com.ycl.platform.service.WorkOrderService; |
| | | import com.ycl.system.domain.SysConfig; |
| | | import com.ycl.system.mapper.SysConfigMapper; |
| | | import com.ycl.utils.DateUtils; |
| | |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | @Component("workOrderTask") |
| | | public class WorkOrderTask { |
| | | |
| | | private final WorkOrderService workOrderService; |
| | | private final WorkOrderMapper workOrderMapper; |
| | | private final SysConfigMapper configMapper; |
| | | |
| | |
| | | workOrderMapper.updateById(wo); |
| | | } |
| | | } |
| | | |
| | | public static List<String> errType = new ArrayList<>(List.of("OSD","ABNORMALPIC","DEVICEOFFLINE")); |
| | | //工单下发定时任务, 工单因为更新导致 状态变为待下发,根据错误类型将需要直接下发工单 |
| | | //离线,图形异常,osd错误 |
| | | public void workOrderDistribute(){ |
| | | //查询今日待下发工单 |
| | | Date now = new Date(); |
| | | Date startDate = DateUtils.getDayStart(now); |
| | | Date endDate = DateUtils.getDayEnd(now); |
| | | //获得今日工单 |
| | | List<WorkOrderVO> list = workOrderService.distributeList(startDate,endDate); |
| | | List<String> worderNos = new ArrayList<>(); |
| | | for (WorkOrderVO workOrderVO : list){ |
| | | for (String errType : workOrderVO.getErrorTypeList()){ |
| | | if (WorkOrderTask.errType.contains(errType)){ |
| | | //判断工单是否包含errType中的错误类型 |
| | | worderNos.add(workOrderVO.getWorkOrderNo()); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | DistributeWorkOrderQuery distributeWorkOrderQuery = new DistributeWorkOrderQuery(); |
| | | distributeWorkOrderQuery.setWorkOrderNOList(worderNos); |
| | | //下发接口 |
| | | workOrderService.selectedIdsDistribute(distributeWorkOrderQuery); |
| | | } |
| | | } |
| | |
| | | p.yw_person_name |
| | | ORDER BY wo.work_order_no DESC |
| | | </select> |
| | | <select id="distributeList" resultMap="com.ycl.platform.domain.vo.WorkOrderVO"> |
| | | SELECT |
| | | wo.id,wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, wo.yw_handle_time, wo.yw_result, |
| | | wo.yw_check_result, wo.overtime, wo.deduct, |
| | | u.unit_name, |
| | | p.yw_person_name, |
| | | yp.serial_number, |
| | | yp.important_tag, |
| | | yp.important_command_image_tag, |
| | | odr.create_time as distributeTime, |
| | | su.nick_name as realName, |
| | | tm.name as source, |
| | | GROUP_CONCAT(DISTINCT da.dict_label ORDER BY da.dict_label SEPARATOR '、') AS errorType |
| | | FROM |
| | | t_work_order wo |
| | | INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number |
| | | INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0 |
| | | INNER JOIN t_yw_unit u ON wo.unit_id = u.id and u.deleted = 0 |
| | | INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no |
| | | INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' |
| | | LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id and p.deleted = 0 |
| | | LEFT JOIN t_work_order_distribute_record odr ON odr.work_order_no = wo.work_order_no AND odr.deleted = 0 |
| | | LEFT JOIN sys_user su ON su.user_id = odr.user_id |
| | | WHERE |
| | | wo.deleted = 0 |
| | | AND wo.create_time BETWEEN #{startDate} AND #{endDate} |
| | | GROUP BY |
| | | wo.id, wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, tm.name, wo.yw_handle_time, |
| | | wo.yw_result, wo.yw_check_result, wo.overtime, wo.deduct, |
| | | u.unit_name, |
| | | p.yw_person_name, |
| | | yp.important_tag, |
| | | yp.important_command_image_tag, |
| | | odr.create_time, |
| | | su.nick_name |
| | | ORDER BY wo.create_time DESC |
| | | </select> |
| | | |
| | | <select id="distributePage" resultType="com.ycl.platform.domain.vo.WorkOrderVO"> |
| | | SELECT |
| | | wo.id,wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, wo.yw_handle_time, wo.yw_result, |