package com.iailab.module.ansteel.coking.service.impl; import cn.hutool.core.bean.BeanUtil; 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.*; 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, String jsonString, String sugObj) { JSONArray jsonArray = JSON.parseArray(jsonString); List entityList = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Map values = new HashMap<>(); // 指标 for (int index = 1; index <= 2; index++) { String indexKey = "index" + index; if (jsonObject.containsKey(indexKey)) { String nameValue = jsonObject.getString(indexKey); if (StringUtils.isBlank(nameValue)) { continue; } String[] split = nameValue.split(" "); String name = split[0]; String value = split[1]; values.put("ind" + index + "Name",name); values.put("ind" + index + "Value",value); } } // 影响因素 for (int index = 1; index <= 20; index++) { String factorKey = "factor" + index; if (jsonObject.containsKey(factorKey)) { String nameValue = jsonObject.getString(factorKey); if (StringUtils.isBlank(nameValue)) { continue; } String[] split = nameValue.split(" "); String name = split[0]; String value = split[1]; values.put("fac" + index + "Name",name); values.put("fac" + index + "Value",value); } } CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity(); BeanUtil.fillBeanWithMap(values,entity,true); entity.setRelId(relId); entity.setProcess(process); entity.setClock(clock); entity.setSugObj(sugObj); entity.setCreateDate(new Date()); entityList.add(entity); } cokingTraceDeviationDao.insert(entityList); } }