admin
2024-12-17 75f1ced619b49f354addc1cf8fa1ca320b25edd4
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java
@@ -1,5 +1,9 @@
package com.jcdm.main.da.paramCollection.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
@@ -7,14 +11,25 @@
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.main.bs.formulaChild.domain.PrintOfflineReportInfo;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
import com.jcdm.main.da.testDeviceInterface.domain.DaTestDeviceInterface;
import com.jcdm.main.da.testDeviceInterface.service.IDaTestDeviceInterfaceService;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 设备产品过程参数采集Controller
@@ -29,6 +44,241 @@
    @Autowired
    private IDaParamCollectionService daParamCollectionService;
    @Autowired
    private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
    @Autowired
    private IOmProductionOrdeInfoService omProductionOrdeInfoService;
    /**
     * 查询设备产品过程参数采集列表
     */
    @GetMapping("/getPrintOfflineReportInfo")
    public AjaxResult getPrintOfflineReportInfo(DaParamCollection daParamCollection)
    {
        String result = "S";
        PrintOfflineReportInfo info = new PrintOfflineReportInfo();
        OmProductionOrdeInfo orderInfo = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, daParamCollection.getProductNum()));
        info.setProductCode(orderInfo.getProductCode());
        DaParamCollection OP130_InsulationResistance1 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_InsulationResistance1").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam18(OP130_InsulationResistance1.getParamValue());
        DaParamCollection OP030_DifferenceProduct2_3 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP030_DifferenceProduct2_3").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP030_DifferenceProduct1_3 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP030_DifferenceProduct1_3").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP030_DifferenceProduct1_2 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP030_DifferenceProduct1_2").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam19(OP030_DifferenceProduct2_3.getParamValue()+","+OP030_DifferenceProduct1_3.getParamValue()+","+OP030_DifferenceProduct1_2.getParamValue());
        DaParamCollection OP130_InsulationResistance2 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_InsulationResistance2").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam20(OP130_InsulationResistance2.getParamValue());
        DaParamCollection OP130_TemperatureControlledWinding = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_TemperatureControlledWinding").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam21(OP130_TemperatureControlledWinding.getParamValue());
        DaParamCollection OP130_WarmTransmission = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_WarmTransmission").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam22(OP130_WarmTransmission.getParamValue());
        DaParamCollection OP130_InsulationResistance3 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_InsulationResistance3").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam23(OP130_InsulationResistance3.getParamValue());
        DaParamCollection OP130_Casing = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_Casing").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam24(OP130_Casing.getParamValue());
        DaParamCollection OP130_GroundWithstandVoltage = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_GroundWithstandVoltage").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam25(OP130_GroundWithstandVoltage.getParamValue());
        DaParamCollection OP130_RotaryResistanceValue3 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_RotaryResistanceValue3").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP130_RotaryResistanceValue2 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_RotaryResistanceValue2").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP130_RotaryResistanceValue1 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_RotaryResistanceValue1").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam26(OP130_RotaryResistanceValue3.getParamValue()+","+OP130_RotaryResistanceValue2.getParamValue()+","+OP130_RotaryResistanceValue1.getParamValue());
        DaParamCollection OP130_ThreePhaseResistance3 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_ThreePhaseResistance3").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP130_BalanceDegree2 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_ThreePhaseResistance2").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP130_BalanceDegree1 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_ThreePhaseResistance1").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam27(getParam27(OP130_ThreePhaseResistance3.getParamValue()+","+OP130_BalanceDegree2.getParamValue()+","+OP130_BalanceDegree1.getParamValue()));
        DaParamCollection OP130_28_BalanceDegree1 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_BalanceDegree1").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP130_28_BalanceDegree2 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_BalanceDegree2").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        DaParamCollection OP130_28_BalanceDegree3 = daParamCollectionService.getOne(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP130_BalanceDegree3").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        info.setParam28(getParam28(OP130_28_BalanceDegree1.getParamValue()+","+OP130_28_BalanceDegree2.getParamValue()+","+OP130_28_BalanceDegree3.getParamValue()));
        info.setParam29(getParam29(daParamCollection.getProductNum()));
        List<DaParamCollection> OP030_RotationDirection = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP030_RotationDirection").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP030_RotationDirection)){
            //1√ 2×
            String paramValue = OP030_RotationDirection.get(OP030_RotationDirection.size() - 1).getParamValue();
            if(paramValue.equals("1")){
                info.setParam30("√");
            }else if(paramValue.equals("2")){
                info.setParam30("❌");
            }else {
                info.setParam30("未知");
            }
        }else {
            result = "F";
        }
        List<DaParamCollection> OP230_GroundingMohm = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP230_GroundingMohm").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP230_GroundingMohm)){
            //取小数点后两位 mΩ
            String paramValue = OP230_GroundingMohm.get(OP230_GroundingMohm.size() - 1).getParamValue();
            info.setParam31(paramValue.substring(0, 4)+"mΩ");
        }else {
            result = "F";
        }
        List<DaParamCollection> OP220_Divulge1 = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP220_Divulge1").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP220_Divulge1)){
            info.setParam32(OP220_Divulge1.get(OP220_Divulge1.size()-1).getParamValue());
        }else {
            result = "F";
        }
        List<DaParamCollection> OP220_Divulge2 = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP220_Divulge2").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP220_Divulge2)){
            info.setParam33(OP220_Divulge2.get(OP220_Divulge2.size()-1).getParamValue());
        }else {
            result = "F";
        }
        List<DaParamCollection> OP230_WithstanduUA = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP230_WithstanduUA").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP230_WithstanduUA)){
            DaParamCollection daParamCollection1 = OP230_WithstanduUA.get(OP230_WithstanduUA.size() - 1);
            String paramValue = daParamCollection1.getParamValue();
            info.setParam34(OP230_WithstanduUA.get(OP230_WithstanduUA.size()-1).getParamValue()+"uA");
        }else {
            result = "F";
        }
        List<DaParamCollection> OP230_InsulationMohm = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP230_InsulationMohm").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP230_InsulationMohm)){
            info.setParam35(OP230_InsulationMohm.get(OP230_InsulationMohm.size()-1).getParamValue());
        }else {
            result = "F";
        }
        List<DaParamCollection> OP120_2_RotatingAngle = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getParamCode, "OP120-2_RotatingAngle").eq(DaParamCollection::getSfcCode,daParamCollection.getProductNum()));
        if(ObjectUtil.isNotEmpty(OP120_2_RotatingAngle)){
            info.setParam36(OP120_2_RotatingAngle.get(OP120_2_RotatingAngle.size()-1).getParamValue());
        }else {
            result = "F";
        }
        info.setParam37(getParam37(daParamCollection.getProductNum()));
//        info.setParam18(">500");
//        info.setParam19("0.3%,0%,0.5%");
//        info.setParam20(">600");
//        info.setParam21(">700");
//        info.setParam22("0.22");
//        info.setParam23("362");
//        info.setParam24("8.18");
//        info.setParam25("0.1");
//        info.setParam26("21.53,42.33,42.19");
//        info.setParam27("49.20,49.34,49.15");
//        info.setParam28("0.061%,0.163%,0.223%");
//        info.setParam29("35.1,35.0,35.1");
//        info.setParam30("√");
//        info.setParam31("0.0041");
//        info.setParam32("3.06");
//        info.setParam33("o.48");
//        info.setParam34("4.7uA");
//        info.setParam35("562.1");
//        info.setParam36("-137.1");
//        info.setParam37("√");
        info.setInspectionDate(getInspectionDate());
        info.setReviewerDate(getReviewerDate());
        info.setProductNum(daParamCollection.getProductNum().substring(13,26));
        System.out.println(info);
        return AjaxResult.success(info);
    }
    public String getParam37(String productNum){
        productNum = productNum.substring(13,26);
        List<DaTestDeviceInterface> one = daTestDeviceInterfaceService.list(new LambdaQueryWrapper<DaTestDeviceInterface>().like(DaTestDeviceInterface::getProductNum, productNum).eq(DaTestDeviceInterface::getStationCode,"OP240"));
        JSONArray jsonArray = new JSONArray(one.get(one.size()-1).getCheckList());
        JSONObject item = jsonArray.getJSONObject(1);
        return item.getStr("itemValue");
    }
    public String getParam29(String productNum){
        List<DaTestDeviceInterface> one = daTestDeviceInterfaceService.list(new LambdaQueryWrapper<DaTestDeviceInterface>().eq(DaTestDeviceInterface::getProductNum, productNum).eq(DaTestDeviceInterface::getStationCode,"OP150"));
        JSONArray jsonArray = new JSONArray(one.get(one.size()-1).getCheckList());
        JSONObject itemU = jsonArray.getJSONObject(0);
        JSONObject itemV = jsonArray.getJSONObject(1);
        JSONObject itemW = jsonArray.getJSONObject(2);
        return itemU.getStr("itemValue")+","+itemV.getStr("itemValue")+","+itemW.getStr("itemValue");
    }
    public static String getInspectionDate(){
        // 获取当前日期
        LocalDate today = LocalDate.now();
        // 定义日期格式(年.月.日)
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M.d");
        // 格式化当前日期
        return today.format(formatter);
    }
    public static String getReviewerDate(){
        // 获取当前日期
        LocalDate today = LocalDate.now();
        // 定义日期格式(年.月.日)
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        // 格式化当前日期
        return today.format(formatter);
    }
    public static void main(String[] args) {
        String param27 = "49.260002,49.122525,49.06235235";
        String param28 = "0.163,0.061,0.224";
        // 按逗号分割字符串
        String[] parts = param27.split(",");
        // 创建一个 DecimalFormat 实例,用于格式化数字
        DecimalFormat df = new DecimalFormat("#.00");
        // 遍历分割后的数组,并格式化每个元素
//        for (String part : parts) {
//            double value = Double.parseDouble(part);
//            String formattedValue = df.format(value);
//            System.out.println(formattedValue);
//        }
        String result = Arrays.stream(parts)
                .map(part -> df.format(Double.parseDouble(part)))
                .collect(Collectors.joining(","));
        System.out.println(result);
        System.out.println(getParam28(param28));
    }
    public static String getParam28(String input) {
        // 分割字符串
        String[] parts = input.split(",");
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < parts.length; i++) {
            // 在每个部分后面加上 %
            sb.append(parts[i]).append("%");
            if (i < parts.length - 1) {
                sb.append(",");
            }
        }
        return sb.toString();
    }
    public String getParam27(String param){
        String[] parts = param.split(",");
        DecimalFormat df = new DecimalFormat("#.00");
        String result = Arrays.stream(parts)
                .map(part -> df.format(Double.parseDouble(part)))
                .collect(Collectors.joining(","));
        return result;
    }
    /**
     * 查询设备产品过程参数采集列表
     */