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<CokingTraceDeviationEntity> list(Map<String, Object> params) {
|
String relId = (String) params.get("relId");
|
String sugObj = (String) params.get("sugObj");
|
|
QueryWrapper<CokingTraceDeviationEntity> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("rel_id", relId)
|
.eq(StringUtils.isNotBlank(sugObj),"sug_obj", sugObj);
|
return cokingTraceDeviationDao.selectList(queryWrapper);
|
}
|
|
@Override
|
public void save(List<CokingTraceDeviationEntity> entityList) {
|
cokingTraceDeviationDao.insert(entityList);
|
}
|
|
@Override
|
public void saveTraceDeviation(String relId, String process, String clock, JSONObject result, String chartcode, String row, String sugObj) {
|
List<ChartParamDTO> list = mcsApi.getChartParamList(chartcode);
|
Map<String, String> indexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName()));
|
|
List<String> rowKeys = new ArrayList<>();
|
result.forEach((key, value) -> {
|
if (StringUtils.isNotBlank(key) && key.contains(row)) {
|
rowKeys.add(key);
|
}
|
|
});
|
|
List<CokingTraceDeviationEntity> 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);
|
}
|
}
|