| | |
| | | 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; |
| | |
| | | { |
| | | @Autowired |
| | | private IDaTestDeviceInterfaceService daTestDeviceInterfaceService; |
| | | |
| | | @Autowired |
| | | private IDaParamCollectionService daParamCollectionService; |
| | | |
| | | /** |
| | | * 查询测试设备接口数据列表 |
| | |
| | | { |
| | | 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; |
| | | } |
| | | } |