鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
3 天以前 aa6e10d480e9380804a7c1d4b1eec75b2fd2b560
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java
@@ -6,9 +6,13 @@
import com.iailab.module.ansteel.coking.service.CokingProcessConfService;
import com.iailab.module.ansteel.coking.service.CokingProdDayService;
import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
import com.iailab.module.data.api.arc.ArcDataApi;
import com.iailab.module.data.api.arc.dto.ApiArcDataDTO;
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.ApiPointValueDTO;
import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,7 +20,10 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
/**
 * 生成焦化日前生产信息
@@ -39,6 +46,8 @@
    @Resource
    private DataPointApi dataPointApi;
    @Resource
    private ArcDataApi arcDataApi;
    @Resource
    private IndItemApi indItemApi;
@@ -74,10 +83,16 @@
                String value = "";
                switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) {
                    case DATAPOINT:
                        List<String> points = new ArrayList<>();
                        points.add(conf.getPointNo());
                        Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points);
                        value = pointsRealValue.get(conf.getPointNo()).toString();
                        ApiPointValueQueryDTO queryDTO = new ApiPointValueQueryDTO();
                        queryDTO.setPointNo(conf.getPointNo());
                        Calendar calendar1 = Calendar.getInstance();
                        queryDTO.setEnd(calendar1.getTime());
                        calendar1.add(Calendar.DAY_OF_YEAR,-1);
                        queryDTO.setStart(calendar1.getTime());
                        List<ApiPointValueDTO> values = dataPointApi.queryPointHistoryValue(queryDTO);
                        if (!CollectionUtils.isEmpty(values)) {
                            value = String.valueOf(values.get(values.size() - 1).getV());
                        }
                        break;
                    case IND:
                        List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo());
@@ -85,11 +100,20 @@
                            value = indValues.get(indValues.size() - 1).getDataValue().toString();
                        }
                        break;
                    case ARC:
                        ApiArcDataDTO apiArcDataDTO = arcDataApi.queryArcLastValue(conf.getPointNo());
                        if (apiArcDataDTO != null) {
                            value = apiArcDataDTO.getArcValue().toString();
                        }
                        break;
                   default:
                        break;
                }
                this.saveProdDay(conf, value, clock);
                if (StringUtils.isBlank(value)) {
                    value = "-2";
                }
                saveProdDay(conf, value, clock, conf.getIndCode());
            }
        } catch (Exception ex) {
            logger.error("RunCokingProdDayTask运行异常");
@@ -99,14 +123,15 @@
    }
    private void saveProdDay(CokingProcessConfEntity conf, String value, String clock) {
        CokingProdDayEntity cokingProdDayEntity = new CokingProdDayEntity();
        cokingProdDayEntity.setInfoType(conf.getInfoType());
        cokingProdDayEntity.setSort(conf.getSort());
        cokingProdDayEntity.setIndName(conf.getIndName());
        cokingProdDayEntity.setIndUnit(conf.getIndUnit());
        cokingProdDayEntity.setIndValue(value);
        cokingProdDayEntity.setClock(clock);
        cokingProdDayService.save(cokingProdDayEntity);
    private void saveProdDay(CokingProcessConfEntity conf, String value, String clock, String indCode) {
        CokingProdDayEntity entity = new CokingProdDayEntity();
        entity.setInfoType(conf.getInfoType());
        entity.setSort(conf.getSort());
        entity.setIndCode(indCode);
        entity.setIndName(conf.getIndName());
        entity.setIndUnit(conf.getIndUnit());
        entity.setIndValue(value);
        entity.setClock(clock);
        cokingProdDayService.save(entity);
    }
}