| | |
| | | import com.iailab.framework.common.util.date.DateUtils; |
| | | import com.iailab.module.ansteel.coking.entity.CokingOverviewEntity; |
| | | import com.iailab.module.ansteel.coking.entity.CokingProcessConfEntity; |
| | | import com.iailab.module.ansteel.coking.entity.CokingTraceChartEntity; |
| | | import com.iailab.module.ansteel.coking.entity.CokingTraceReportEntity; |
| | | import com.iailab.module.ansteel.coking.service.CokingOverviewService; |
| | | import com.iailab.module.ansteel.coking.service.CokingProcessConfService; |
| | | import com.iailab.module.ansteel.coking.service.CokingTraceChartService; |
| | | import com.iailab.module.ansteel.coking.service.CokingTraceReportService; |
| | | import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum; |
| | | import com.iailab.module.ansteel.common.enums.ProcessTypeEnum; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * 备煤工序-概况 |
| | |
| | | private IndItemApi indItemApi; |
| | | @Resource |
| | | private CokingTraceReportService cokingTraceReportService; |
| | | @Resource |
| | | private CokingTraceChartService cokingTraceChartService; |
| | | |
| | | @Override |
| | | public void run(String processTypes) { |
| | |
| | | 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.add(Calendar.DAY_OF_YEAR, -1); |
| | | String clock = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); |
| | | // 插入溯源报告 |
| | | // 溯源报告 |
| | | CokingTraceReportEntity reportEntity = new CokingTraceReportEntity(); |
| | | String relId = UUID.randomUUID().toString(); |
| | | reportEntity.setId(relId); |
| | |
| | | reportEntity.setClock(clock); |
| | | cokingTraceReportService.save(reportEntity); |
| | | |
| | | // 按照子工序类型分组 |
| | | Map<String, List<CokingProcessConfEntity>> processTypeMap = list.stream().collect(Collectors.groupingBy(CokingProcessConfEntity::getExt2)); |
| | | // 整体情况 |
| | | // 筛选info_type = 2,按照子工序类型分组 |
| | | Map<String, List<CokingProcessConfEntity>> processTypeMap = list.stream().filter(e -> e.getInfoType().equals("2")).collect(Collectors.groupingBy(CokingProcessConfEntity::getExt2)); |
| | | // 结果 <子工序类型,<数据key,数据value>> |
| | | List<CokingOverviewEntity> result = new ArrayList<>(processTypeMap.size()); |
| | | |
| | |
| | | result.add(overviewEntity); |
| | | } |
| | | cokingOverviewService.insert(result); |
| | | |
| | | // 指标运行趋势 |
| | | List<CokingProcessConfEntity> indRunTrend = list.stream().filter(e -> e.getInfoType().equals("1")).collect(Collectors.toList()); |
| | | List<CokingTraceChartEntity> cokingTraceChartEntityList = new ArrayList<>(indRunTrend.size()); |
| | | indRunTrend.forEach(e -> { |
| | | CokingTraceChartEntity cokingTraceChartEntity = new CokingTraceChartEntity(); |
| | | cokingTraceChartEntity.setRelId(relId); |
| | | cokingTraceChartEntity.setName(e.getIndName()); |
| | | cokingTraceChartEntity.setClock(clock); |
| | | cokingTraceChartEntity.setDataNo(e.getPointNo()); |
| | | cokingTraceChartEntity.setDataType(e.getDataType()); |
| | | |
| | | cokingTraceChartEntity.setEndTime(calendar.getTime()); |
| | | if (e.getExt2().equals("month")) { |
| | | calendar.add(Calendar.MONTH,-1 * Integer.parseInt(e.getExt1())); |
| | | } else if (e.getExt2().equals("day")) { |
| | | calendar.add(Calendar.DAY_OF_YEAR,-1 * Integer.parseInt(e.getExt1())); |
| | | } |
| | | cokingTraceChartEntity.setStartTime(calendar.getTime()); |
| | | cokingTraceChartEntity.setCreateDate(new Date()); |
| | | cokingTraceChartEntityList.add(cokingTraceChartEntity); |
| | | }); |
| | | cokingTraceChartService.insert(cokingTraceChartEntityList); |
| | | |
| | | } |
| | | } catch (Exception ex) { |
| | | logger.error("runCokingOverviewTask运行异常"); |