fuliqi
2024-12-25 7fa07718de92093c6315c5cb37bbc8dd7cdafa3c
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -13,6 +13,7 @@
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.vo.*;
import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
import com.ycl.platform.domain.vo.screen.WorkOrderRegionVO;
@@ -78,6 +79,8 @@
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
    private final YwPointService ywPointService;
    private final TMonitorMapper monitorMapper;
    private final DynamicColumnMapper dynamicColumnMapper;
    private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
    private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
    private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
@@ -1113,6 +1116,12 @@
        return Result.ok().data(workOrder);
    }
    /**
     * 工单导出的逻辑
     * 标签:同一个ip标签合在一起,针对离线工单(ip相同就不会生成工单),方便运维处理
     * @param query
     * @return
     */
    @Override
    public List<WorkOrderVO> export(WorkOrderExportQuery query) {
        if (query.getUnitId() == null) {
@@ -1120,8 +1129,62 @@
        }
        if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00");
        if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59");
        return baseMapper.export(query);
        List<WorkOrderVO> export = baseMapper.export(query);
        if(CollectionUtils.isEmpty(export)) return new ArrayList<WorkOrderVO>();
        List<String> ips = export.stream().map(WorkOrderVO::getIp).collect(Collectors.toList());
        //查出相同ip的设备、并查出标签
        List<TMonitorResult> monitorVOS = monitorMapper.getByIp(ips);
        //获取动态列数据
        List<Integer> pointIds = monitorVOS.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
        List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
        //补充动态列数据
        if (!CollectionUtils.isEmpty(dynamics)) {
            Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId));
            for (TMonitorResult tMonitorResult : monitorVOS) {
                Integer pointId = tMonitorResult.getPointId();
                tMonitorResult.setDynamicColumnList(map.get(pointId));
            }
        }
        export.forEach(result->{
            StringBuilder dynamicTag = new StringBuilder("");
            Boolean provinceTagVideo = false;
            Boolean provinceTagCar = false;
            Boolean provinceTagFace = false;
            Boolean importantTag = false;
            Boolean importantCommandImageTag = false;
            Boolean deptTag = false;
            List<String> dynamicTags = new ArrayList<>();
            for (TMonitorResult tagVO : monitorVOS) {
                if(tagVO.getIp().equals(result.getIp())){
                    if(tagVO.getProvinceTagVideo()) provinceTagVideo = true;
                    if(tagVO.getProvinceTagCar()) provinceTagCar = true;
                    if(tagVO.getProvinceTagFace()) provinceTagFace = true;
                    if(tagVO.getImportantTag()) importantTag = true;
                    if(tagVO.getImportantCommandImageTag()) importantCommandImageTag = true;
                    if(tagVO.getDeptTag()) deptTag = true;
                    //动态列处理加在标签里
                    if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) {
                        List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList();
                        for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
                            if(!dynamicTags.contains(dynamicColumnVO.getColumnValue())) dynamicTags.add(dynamicColumnVO.getColumnValue());
                        }
                    }
                }
            }
            for (String tag : dynamicTags) {
                dynamicTag.append(tag).append("、");
            }
            StringBuilder tag = new StringBuilder("" + (provinceTagVideo ? "省厅视频、" : "")+(provinceTagCar ? "省厅车辆、" : "")+(provinceTagFace ? "省厅人脸、" : "") + (importantTag ? "重点点位、" : "") + (importantCommandImageTag ? "重点指挥图像、" : "") + (deptTag ? "部级、" : ""));
            if (tag.toString().endsWith("、")) {
                tag = new StringBuilder(tag.substring(0, tag.length() - 1));
            }
            if (dynamicTag.toString().endsWith("、")) {
                dynamicTag = new StringBuilder(dynamicTag.substring(0, dynamicTag.length() - 1));
            }
            result.setTag(tag.toString());
            result.setDynamicTag(dynamicTag.toString());
        });
        return export;
    }
    /**