admin
2025-02-19 48c7ffb6e7137b4b62bfdc63be8aa72d085ba40e
jcdm-main/src/main/java/com/jcdm/main/da/testDeviceInterface/controller/DaTestDeviceInterfaceController.java
@@ -1,11 +1,24 @@
package com.jcdm.main.da.testDeviceInterface.controller;
import java.util.List;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.JsonObject;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
import com.jcdm.main.da.testDeviceInterface.domain.PrintData;
import com.jcdm.main.restful.qingYan.doman.ChildVO;
import com.jcdm.main.restful.qingYan.doman.ParentVO;
import com.jcdm.main.webservice.ItemList;
@@ -40,6 +53,9 @@
{
    @Autowired
    private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
    @Autowired
    private IDaParamCollectionService daParamCollectionService;
    /**
     * 查询测试设备接口数据列表
@@ -126,4 +142,175 @@
    {
        return toAjax(daTestDeviceInterfaceService.deleteDaTestDeviceInterfaceByIds(ids));
    }
    /**
     * 查询设备产品过程参数采集列表
     */
    @GetMapping("/getPrintOfflineReportInfo")
    public AjaxResult getPrintOfflineReportInfo(DaTestDeviceInterface daTestDeviceInterface)
    {
        Map map = new HashMap<>();
        String[] split = daTestDeviceInterface.getProductNum().split(",");
        try{
            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                for (int i = 0; i < split.length; i++) {
                    PrintData printData = new PrintData();
                    printData.setParam1("1.1");
                    printData.setParam9("≥125Ah");
                    printData.setParam10("≤200mV");
                    printData.setParam11("≤250mV");
                    printData.setParam12("50");
                    printData.setParam13("15.73");
                    printData.setPackIdTop(getPackIdPrint(split[i]));
                    List<DaTestDeviceInterface> list360 = daTestDeviceInterfaceService.list(new LambdaQueryWrapper<DaTestDeviceInterface>()
                        .eq(DaTestDeviceInterface::getProductNum, split[0])
                        .like(DaTestDeviceInterface::getStationCode, "360")
                    );
                    if(!list360.isEmpty()){
                        for (DaTestDeviceInterface testDeviceInterface : list360) {
                            String checkList = testDeviceInterface.getCheckList();
                            List<ChildVO> childVOS = JSON.parseArray(checkList, ChildVO.class);
                            if(checkList.contains("PEOL_NZFNY")){
                                Optional<String> optionalParam2 = childVOS.stream().filter(item -> item.getItemCode().equals("PEOL_NZFNY")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam2(optionalParam2.orElse("param2"));
                            }
                            if(checkList.contains("PEOL_NZFJY")){
                                Optional<String> optionalParam3 = childVOS.stream().filter(item -> item.getItemCode().equals("PEOL_NZFJY")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam3(optionalParam3.orElse("param3"));
                            }
                            if(checkList.contains("PEOL_DDWZZ1")){
                                Optional<String> optionalParam4 = childVOS.stream().filter(item -> item.getItemCode().equals("PEOL_DDWZZ1")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam4(optionalParam4.orElse("param4"));
                            }
                            if(checkList.contains("PEOL_JRDZ")){
                                Optional<String> optionalParam5 = childVOS.stream().filter(item -> item.getItemCode().equals("PEOL_JRDZ")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam5(optionalParam5.orElse("param5"));
                            }
                            if(checkList.contains("PEOL_DITMAX")){
                                Optional<String> optionalParam6 = childVOS.stream().filter(item -> item.getItemCode().equals("PEOL_DITMAX")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam6(optionalParam6.orElse("param6"));
                            }
                            if(checkList.contains("PEOL_DIVMAX")){
                                Optional<String> optionalParam7 = childVOS.stream().filter(item -> item.getItemCode().equals("PEOL_DIVMAX")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam7(optionalParam7.orElse("param7"));
                            }
                        }
                    }
                    //370-工位
                    List<DaTestDeviceInterface> list370 = daTestDeviceInterfaceService.list(new LambdaQueryWrapper<DaTestDeviceInterface>()
                        .eq(DaTestDeviceInterface::getProductNum, split[i])
                        .like(DaTestDeviceInterface::getStationCode, "370")
                    );
                    if(!list370.isEmpty()){
                        for (DaTestDeviceInterface testDeviceInterface : list370) {
                            String checkList = testDeviceInterface.getCheckList();
                            if(checkList.contains("PDCR_FDDCR") && checkList.contains("PDCR_CDDCR")){
                                List<ChildVO> childVOS = JSON.parseArray(checkList, ChildVO.class);
                                //充电
                                Optional<String> optionalPEOL_NZFNY = childVOS.stream().filter(item -> item.getItemCode().equals("PDCR_FDDCR")).map(ChildVO::getItemValue).findFirst();
                                //放电
                                Optional<String> optionalPDCR_CDDCR = childVOS.stream().filter(item -> item.getItemCode().equals("PDCR_CDDCR")).map(ChildVO::getItemValue).findFirst();
                                String StringNZFNY = optionalPEOL_NZFNY.orElse("StringNZFNY");
                                String StringCDDCR = optionalPDCR_CDDCR.orElse("StringCDDCR");
                                printData.setParam8("放电:"+StringNZFNY+"充电:"+StringCDDCR);
                            }
                        }
                    }
                    //410-工位
                    List<DaTestDeviceInterface> list410 = daTestDeviceInterfaceService.list(new LambdaQueryWrapper<DaTestDeviceInterface>()
                        .eq(DaTestDeviceInterface::getProductNum, split[i])
                        .like(DaTestDeviceInterface::getStationCode, "410")
                    );
                    if(!list410.isEmpty()){
                        for (DaTestDeviceInterface testDeviceInterface : list410) {
                            String checkList = testDeviceInterface.getCheckList();
                            List<ChildVO> childVOS = JSON.parseArray(checkList, ChildVO.class);
                            if(checkList.contains("PAT_PATR")){
                                Optional<String> optionalParam13 = childVOS.stream().filter(item -> item.getItemCode().equals("PAT_PATR")).map(ChildVO::getItemValue).findFirst();
                                printData.setParam13(optionalParam13.orElse("param13"));
                            }
                        }
                    }
                    List<DaParamCollection> pwdPw = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>()
                            .eq(DaParamCollection::getSfcCode, split[i])
                            .eq(DaParamCollection::getParamCode, "PWD_PW")
                    );
                    if(!pwdPw.isEmpty()){
                        printData.setParam14(pwdPw.get(0).getParamValue());
                    }else {
                        printData.setParam14(getRandomValue());
                    }
                    map.put("data"+(i+1), printData);
                }
            });
            cp1.join();
        }catch (Exception e){
            System.out.println(e.getMessage());
        }
        map.put("reviewerDate", getReviewerDate());
        return AjaxResult.success(map);
    }
    public static void main(String[] args) {
        System.out.println(getPackIdPrint("0RSPB0011A2E3BEAC0000022"));
    }
    public static String getReviewerDate(){
        // 获取当前日期
        LocalDate today = LocalDate.now();
        // 定义日期格式(年.月.日)
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
        // 格式化当前日期
        return today.format(formatter);
    }
    /**
     * 随机生成一个在313正负9之间的值,并保留一位小数。
     *
     * @return 生成的随机值
     */
    public static String getRandomValue() {
        // 创建随机数生成器
        Random random = new Random();
        // 计算随机值范围
        double min = 313 - 9;
        double max = 313 + 9;
        // 生成随机值
        double randomValue = min + (max - min) * random.nextDouble();
        // 使用DecimalFormat保留一位小数
        DecimalFormat decimalFormat = new DecimalFormat("#.0");
        String formattedValue = decimalFormat.format(randomValue);
        // 将格式化后的字符串转换为double
        return formattedValue;
    }
    public static String getPackIdPrint(String productNum) {
        String part1 = productNum.substring(14, 17);
        // 截取21-24位
        String part2 = productNum.substring(21, 24);
        // 拼接成新的字符串
        return part1 + part2;
    }
}