package com.iailab.module.ansteel.coking.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.coking.dao.CokingTraceDeviationDao; import com.iailab.module.ansteel.coking.entity.CokingTraceDeviationEntity; import com.iailab.module.ansteel.coking.service.CokingTraceDeviationService; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 焦化工序影响因数偏差值 * * @author lirm ${email} * @since 1.0.0 2025-04-16 */ @Service public class CokingTraceDeviationServiceImpl implements CokingTraceDeviationService { @Autowired private CokingTraceDeviationDao cokingTraceDeviationDao; @Autowired private McsApi mcsApi; @Override public List list(Map params) { String relId = (String) params.get("relId"); String sugObj = (String) params.get("sugObj"); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("rel_id", relId) .eq(StringUtils.isNotBlank(sugObj),"sug_obj", sugObj); return cokingTraceDeviationDao.selectList(queryWrapper); } @Override public void save(List entityList) { cokingTraceDeviationDao.insert(entityList); } @Override public void saveTraceDeviation(String relId, String process, String clock, JSONObject result, String chartcode, String row, String sugObj) { List list = mcsApi.getChartParamList(chartcode); Map indexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName())); List rowKeys = new ArrayList<>(); result.forEach((key, value) -> { if (StringUtils.isNotBlank(key) && key.contains(row)) { rowKeys.add(key); } }); List entityList = new ArrayList<>(); for (String key : rowKeys) { JSONArray rowArr = JSON.parseArray(result.get(key).toString()); if (CollectionUtils.isEmpty(rowArr)) { continue; } CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity(); entity.setRelId(relId); entity.setProcess(process); entity.setClock(clock); entity.setSugObj(sugObj); entity.setInd1Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(0).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString()); entity.setInd1Unit(""); entity.setInd2Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(1).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString()); entity.setInd2Unit(""); if (rowArr.size() > 2) { entity.setFac1Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(2).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString()); entity.setFac1Unit(""); } if (rowArr.size() > 3) { entity.setFac2Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(3).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString()); entity.setFac2Unit(""); } if (rowArr.size() > 4) { entity.setFac3Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(4).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString()); entity.setFac3Unit(""); } if (rowArr.size() > 5) { entity.setFac4Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(5).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString()); entity.setFac4Unit(""); } if (rowArr.size() > 6) { entity.setFac5Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(6).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString())); entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString()); entity.setFac5Unit(""); } entityList.add(entity); } cokingTraceDeviationDao.insert(entityList); } }