From 3f07ab2e03e501ae55d1d1b0d031daf50c8e13e5 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期二, 10 十二月 2024 17:27:44 +0800 Subject: [PATCH] common依赖排除父类 --- iailab-xmc-pms-biz/src/main/java/com/iailab/module/pms/coalquality/modules/analysis/service/impl/CoalWashCurvesChartServiceImpl.java | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 168 insertions(+), 0 deletions(-) diff --git a/iailab-xmc-pms-biz/src/main/java/com/iailab/module/pms/coalquality/modules/analysis/service/impl/CoalWashCurvesChartServiceImpl.java b/iailab-xmc-pms-biz/src/main/java/com/iailab/module/pms/coalquality/modules/analysis/service/impl/CoalWashCurvesChartServiceImpl.java new file mode 100644 index 0000000..326b4e0 --- /dev/null +++ b/iailab-xmc-pms-biz/src/main/java/com/iailab/module/pms/coalquality/modules/analysis/service/impl/CoalWashCurvesChartServiceImpl.java @@ -0,0 +1,168 @@ +package com.iailab.module.pms.coalquality.modules.analysis.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.framework.tenant.core.aop.TenantIgnore; +import com.iailab.module.pms.coalquality.common.enums.FcfaType; +import com.iailab.module.pms.coalquality.modules.analysis.dao.CoalWashCurvesChartDao; +import com.iailab.module.pms.coalquality.modules.analysis.dto.CoalWashCurvesChartDTO; +import com.iailab.module.pms.coalquality.modules.analysis.entity.CoalWashCurvesChartEntity; +import com.iailab.module.pms.coalquality.modules.analysis.service.CoalWashCurvesChartService; +import com.iailab.module.pms.coalquality.modules.analysis.service.CoalWashCurvesDetService; +import com.mathworks.toolbox.javabuilder.MWCellArray; +import com.mathworks.toolbox.javabuilder.MWNumericArray; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import washabilityCurve20230915.WashCurve; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 可选性曲线图 + * + * @author PanZhibao + * @Description + * @createTime 2023年01月19日 23:25:00 + */ +@Service +public class CoalWashCurvesChartServiceImpl extends BaseServiceImpl<CoalWashCurvesChartDao, CoalWashCurvesChartEntity> + implements CoalWashCurvesChartService { + + @Autowired + private CoalWashCurvesDetService coalWashCurvesDetService; + + private final String CURVES_TYPE_FITTING = "1"; + + @Override + @TenantIgnore + public CoalWashCurvesChartDTO getByCurvesId(String curvesId) { + CoalWashCurvesChartEntity entity = baseDao.selectOne(new QueryWrapper<CoalWashCurvesChartEntity>().eq("curves_id", curvesId)); + return ConvertUtils.sourceToTarget(entity, CoalWashCurvesChartDTO.class); + } + + @Override + @TenantIgnore + public void update(CoalWashCurvesChartDTO dto) { + baseDao.delete(new QueryWrapper<CoalWashCurvesChartEntity>().eq("curves_id", dto.getCurvesId())); + CoalWashCurvesChartEntity entity = ConvertUtils.sourceToTarget(dto, CoalWashCurvesChartEntity.class); + insert(entity); + } + + @Override + public CoalWashCurvesChartDTO draw(CoalWashCurvesChartDTO dto) { + + String curvesType = dto.getCurvesType(); + Map<String, Object> drawParams = coalWashCurvesDetService.getDrawParams(dto.getCurvesId()); + + try { + double[] densitySrcData = new double[]{1.3, 1.4, 1.5, 1.6, 1.8}; + if(FcfaType.THREE.getCode().equals(dto.getFcfa())) { + densitySrcData = new double[]{1.4, 1.8}; + } + + double[][] floatSrcData = (double[][]) drawParams.get("floatSrcData"); + double[][] densityScopeSrcData = (double[][]) drawParams.get("densityScopeSrcData"); + double[] coeffSrcData = {}; + + WashCurve wc = new WashCurve(); + Object[] allResult = wc.washabilityCurve(2, densitySrcData, floatSrcData, densityScopeSrcData, Integer.parseInt(curvesType), coeffSrcData); + MWNumericArray temp = (MWNumericArray) allResult[0]; + double[][] coefficient = (double[][]) temp.toDoubleArray(); + MWCellArray temp1 = (MWCellArray) allResult[1]; + double[][] test1 = (double[][]) temp1.get(1); + double[] xAxis1 = test1[0]; + double[][] test2 = (double[][]) temp1.get(2); + double[] xAxis2 = test2[0]; + double[][] test3 = (double[][]) temp1.get(3); + //double[] floatVue = test3[0]; + double[][] test4 = (double[][]) temp1.get(4); + double[] cellVue = test4[0]; + double[][] test5 = (double[][]) temp1.get(5); + // double[] sinkVue = test5[0]; + double[][] test6 = (double[][]) temp1.get(6); + double[] densityDataResult = test6[0]; + double[][] test7 = (double[][]) temp1.get(7); + double[] densityScopeData = test7[0]; + double[][] floatPoint = (double[][]) temp1.get(8); + double[][] densePoint = (double[][]) temp1.get(9); + double[][] denseScopePoint = (double[][]) temp1.get(10); + + List<Double> xAxis1List = new ArrayList<>(); + for(int i = 0; i < xAxis1.length; i ++) { + xAxis1List.add(new BigDecimal(xAxis1[i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + List<Double> xAxis2List = new ArrayList<>(); + for(int i = 0; i < xAxis2.length; i ++) { + xAxis2List.add(new BigDecimal(xAxis2[i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + List<Double> floatVue = new ArrayList<>(); + for(int i = 0; i < test3[0].length; i ++) { + floatVue.add(new BigDecimal(test3[0][i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + List<Double> sinkVue = new ArrayList<>(); + for(int i = 0; i < test5[0].length; i ++) { + sinkVue.add(new BigDecimal(test5[0][i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + List<Double> cellVueList = new ArrayList<>(); + for(int i = 0; i < cellVue.length; i ++) { + cellVueList.add(new BigDecimal(cellVue[i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + List<Double> densityDataList = new ArrayList<>(); + for(int i = 0; i < densityDataResult.length; i ++) { + densityDataList.add(new BigDecimal(densityDataResult[i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + Map<Integer, Integer> emptyDs = new HashMap<>(); + if (CURVES_TYPE_FITTING.equals(curvesType)) { + int k = 0; + for (int i = 0; i < (densityDataResult.length - 1); i++ ) { + if (densityDataResult[i] != 0) { + k = i - 1; + break; + } + } + if (k <= 0) { + k = 15; + } + + for (int j = 0; j < k + 10; j++) { + emptyDs.put(j, j); + } + } + + List<Double> densityScopeList = new ArrayList<>(); + for(int i = 0; i < densityScopeData.length; i ++) { + if (emptyDs.containsKey(i)) { + densityScopeList.add(null); + continue; + } + densityScopeList.add(new BigDecimal(densityScopeData[i]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + dto.setDensitySrcData(JSONObject.toJSONString(densitySrcData)); + dto.setFloatSrcData(JSONObject.toJSONString(floatSrcData)); + dto.setDensityScopeSrcData(JSONObject.toJSONString(densityScopeSrcData)); + dto.setCoeffSrcData(JSONObject.toJSONString(coeffSrcData)); + + dto.setXAxisData1(JSONObject.toJSONString(xAxis1List)); + dto.setXAxisData2(JSONObject.toJSONString(xAxis2List)); + dto.setFloatPointData(JSONObject.toJSONString(floatPoint)); + dto.setDensityPointData(JSONObject.toJSONString(densePoint)); + dto.setDensityScopePointData(JSONObject.toJSONString(denseScopePoint)); + dto.setCellData(JSONObject.toJSONString(cellVueList)); + dto.setDensityData(JSONObject.toJSONString(densityDataList)); + dto.setDensityScopeData(JSONObject.toJSONString(densityScopeList)); + dto.setFloatData(JSONObject.toJSONString(floatVue)); + dto.setSinkData(JSONObject.toJSONString(sinkVue)); + this.update(dto); + return dto; + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } +} -- Gitblit v1.9.3