鞍钢鲅鱼圈能源管控系统后端代码
liriming
2025-05-28 c2b2bfa99317d44afbeceba5230cb9f1ef0fd032
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelBMTask.java
@@ -3,6 +3,8 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.ansteel.coking.entity.CokingTraceChartEntity;
import com.iailab.module.ansteel.coking.entity.CokingTraceConfEntity;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.TraceProcessTypeEnum;
@@ -12,10 +14,10 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Calendar;
import java.util.Date;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 备煤工序异常溯源
@@ -45,6 +47,10 @@
    @Autowired
    private CokingTraceChartService cokingTraceChartService;
    @Autowired
    private CokingTraceConfService cokingTraceConfService;
    @Autowired
    private McsApi mcsApi;
@@ -94,16 +100,20 @@
            Date startDate = calendar.getTime();
            String clock = DateUtils.format(startDate);
            // 调用模型
     /*       MdkScheduleReqDTO dto = new MdkScheduleReqDTO();
            dto.setScheduleTime(calendar.getTime());
            dto.setScheduleCode(params);
            MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto);
            logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO);
            Map<String, Object> result = mdkScheduleRespDTO.getResult();
            calendar.add(Calendar.DAY_OF_YEAR, 1);
            calendar.add(Calendar.MINUTE, -3);
            Date collectStartDate = calendar.getTime();
            JSONObject jsonObject = new JSONObject(result);
            JSONObject result2 = (JSONObject) JSON.toJSON(jsonObject.get("result"));*/
            // 调用模型
//            MdkScheduleReqDTO dto = new MdkScheduleReqDTO();
//            dto.setScheduleTime(calendar.getTime());
//            dto.setScheduleCode(params);
//            MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto);
//            logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO);
//
//            Map<String, Object> tResult = mdkScheduleRespDTO.getResult();
//            JSONObject result = new JSONObject(tResult);
//            logger.info("result===" +  JSONObject.toJSONString(result));
            JSONObject jsonObject = JSONObject.parseObject(jsonStr);
            JSONObject result = (JSONObject) JSON.toJSON(jsonObject.get("result"));
@@ -116,22 +126,23 @@
            // 保存报告
            String analyDate = DateUtils.format(startDate);
            String analyContent = clock + " " + result.getString("coalHomeIndexInfo");
            String content = result.getString(total);
            String relId = cokingTraceReportService.save(process, reportName, analyDate, clock, analyContent);
            // 保存一级分析指标
            cokingAnalyIndService.saveAnalyInd(relId, process, analyDate, analyContent);
            // 保存优化建议
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, total, SugObj);
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, content, SugObj);
            // 保存偏差值
            cokingTraceDeviationService.saveTraceDeviation(relId, process, clock, result, CommonConstant.COKE_INDEX_CHARTCODE, row, SugObj);
            // 保存溯源指标
            cokingTraceIndService.saveTraceInd(relId, indType, clock);
            cokingTraceIndService.saveTraceInd(relId, indType, clock, collectStartDate, endDate);
            // 保存溯源折线图
            cokingTraceChartService.save(relId, clock, indType, startDate, endDate);
            save(relId, clock, indType, startDate, endDate);
        } catch (Exception ex) {
            logger.error("RunCokingTraceModelBMTask运行异常");
@@ -139,4 +150,61 @@
        }
        logger.info("RunCokingTraceModelBMTask运行完成");
    }
    public void save(String relId, String clock, String indType, Date startDate, Date endDate) {
        logger.info("查询需要保存chart的配置");
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        Date monthStartDate = calendar.getTime();
        Map<String, Object> map = new HashMap<>();
        map.put("indType", indType);
        map.put("ext1", "chart");
        map.put("ext2", "chart2");
        List<CokingTraceConfEntity> list = cokingTraceConfService.list(map);
        if (CollectionUtils.isEmpty(list)) {
            return;
        }
        logger.info("list.size={}", list.size());
        List<CokingTraceChartEntity> entityList = new ArrayList<>();
        List<CokingTraceConfEntity> listMin = list.stream().filter(e -> e.getExt1().equals("chart")).collect(Collectors.toList());
        logger.info("listMin===", JSON.toJSON(listMin).toString());
        listMin.forEach(value -> {
            CokingTraceChartEntity cokingTraceChartEntity = new CokingTraceChartEntity();
            cokingTraceChartEntity.setRelId(relId);
            cokingTraceChartEntity.setName(value.getIndName());
            cokingTraceChartEntity.setClock(clock);
            cokingTraceChartEntity.setDataType(value.getDataType());
            cokingTraceChartEntity.setDataNo(value.getPointNo());
            cokingTraceChartEntity.setStartTime(startDate);
            cokingTraceChartEntity.setEndTime(endDate);
            cokingTraceChartEntity.setCreateDate(new Date());
            entityList.add(cokingTraceChartEntity);
        });
        List<CokingTraceConfEntity> listMonth = list.stream().filter(e -> e.getExt2().equals("chart2")).collect(Collectors.toList());
        logger.info("listMonth===", JSON.toJSON(listMonth).toString());
        listMonth.forEach(value -> {
            CokingTraceChartEntity cokingTraceChartEntity = new CokingTraceChartEntity();
            cokingTraceChartEntity.setRelId(relId);
            cokingTraceChartEntity.setName(value.getIndName());
            cokingTraceChartEntity.setClock(clock);
            cokingTraceChartEntity.setDataType(value.getDataType());
            cokingTraceChartEntity.setDataNo(value.getPointNo());
            cokingTraceChartEntity.setStartTime(monthStartDate);
            cokingTraceChartEntity.setEndTime(endDate);
            cokingTraceChartEntity.setCreateDate(new Date());
            entityList.add(cokingTraceChartEntity);
        });
        cokingTraceChartService.insert(entityList);
    }
}