对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.data.api.ind.IndItemApi; |
| | | import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO; |
| | | import com.iailab.module.data.api.point.DataPointApi; |
| | | import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO; |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.ChartParamDTO; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDate; |
| | | import java.time.YearMonth; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 蒸汽评价指标(汽耗率) |
| | | * |
| | | * @author Jay |
| | | */ |
| | | @Component("saveIndDataToPointDataTask") |
| | | public class SaveIndDataToPointDataTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private DataPointApi dataPointApi; |
| | | |
| | | @Autowired |
| | | private IndItemApi indItemApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("SaveIndDataToPointDataTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | //获取当前月天数 |
| | | LocalDate today = LocalDate.now(); |
| | | // 使用YearMonth来获取当前年份和月份的天数 |
| | | YearMonth yearMonth = YearMonth.of(today.getYear(), today.getMonthValue()); |
| | | int lengthOfMonth = yearMonth.lengthOfMonth(); |
| | | List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(params); |
| | | chartParamList.forEach(chartParam -> { |
| | | List<ApiIndItemValueDTO> indItemlist = indItemApi.queryIndItemDefaultValue(chartParam.getParamCode()); |
| | | if (indItemlist != null && indItemlist.size() > 0) { |
| | | ApiPointValueWriteDTO apiPointValueWriteDTO = new ApiPointValueWriteDTO(); |
| | | apiPointValueWriteDTO.setPointNo(chartParam.getParamValue()); |
| | | BigDecimal indValue = (BigDecimal) indItemlist.get(0).getDataValue(); |
| | | BigDecimal pointValue = indValue.divide(new BigDecimal(lengthOfMonth), 3, RoundingMode.HALF_UP); |
| | | apiPointValueWriteDTO.setValue(pointValue); |
| | | dataPointApi.writePointRealValue(apiPointValueWriteDTO); |
| | | } |
| | | }); |
| | | |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("SaveIndDataToPointDataTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("SaveIndDataToPointDataTask运行完成"); |
| | | } |
| | | } |