admin
2024-12-16 8d26b45dd04431eec3e073078300db888fd37026
-换型bug修改
已修改8个文件
311 ■■■■ 文件已修改
jcdm-framework/src/main/java/com/jcdm/framework/config/SecurityConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/testDeviceInterface/controller/DaTestDeviceInterfaceController.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/da/testDeviceInterface/testDeviceInterface.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/SecurityConfig.java
@@ -120,6 +120,7 @@
                .antMatchers("/da/testDeviceInterface/**").permitAll()
                .antMatchers("/main/paramCollection/**").permitAll()
                .antMatchers("/bs/formulaChild/**").permitAll()
                .antMatchers("/da/testDeviceInterface/**").permitAll()
                // 除上面外的所有请求全部需要鉴权认证
                .anyRequest().authenticated()
                .and()
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
@@ -120,7 +120,10 @@
    {
        Integer stepNumber = 1;
        try {
            List<BsFormulaChildInfo> op260 = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getProcessesCode()));
            List<BsFormulaChildInfo> op260 = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
                    .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getProcessesCode())
                    .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
            );
            List<BsFormulaChildInfo> filteredList = op260.stream()
                    .filter(obj -> obj.getResults() != null && !obj.getResults().isEmpty())
                    .collect(Collectors.toList());
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java
@@ -92,4 +92,6 @@
    void preInstallOut(DaParamCollection daParamCollection);
    AjaxResult addRepairTighteningData(DaParamCollection daParamCollection);
    void jrmPushGeelycvMesFeedback(String packID, String stationCode, String productCode);
}
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;
    }
}
jcdm-ui/src/api/main/da/testDeviceInterface/testDeviceInterface.js
@@ -42,3 +42,11 @@
    method: 'delete'
  })
}
export function getPrintOfflineReportInfo(query) {
  return request({
    url: '/da/testDeviceInterface/getPrintOfflineReportInfo',
    method: 'get',
    params: query
  })
}
jcdm-ui/src/views/main/kb/heatingFilmTerminal/index.vue
@@ -1,19 +1,32 @@
<template>
  <div class="app-container">
   <el-row :gutter="5">
     <el-col :span="7">
     <el-col :span="5">
       <el-card shadow="never">
         <span class="head-font">工位编号 : {{headContent.processesCode}}</span>
       </el-card>
     </el-col>
     <el-col :span="7">
     <el-col :span="5">
       <el-card shadow="never">
         <span class="head-font">工位名称 : {{headContent.processesName}}</span>
<!--         <el-button type="primary" style="float: right" icon="el-icon-search" size="mini" @click="serialLink">串口连接</el-button>-->
<!--         <el-button @click="clearClick" style="float: right" type="danger" size="mini">清除</el-button>-->
       </el-card>
     </el-col>
     <el-col :span="10">
     <el-col :span="6">
       <el-card style="height: 57px" shadow="never">
         <span class="head-font">产品型号 : </span>
         <el-select style="width: 70%;margin-top: -10px" v-model="selectProductCode" placeholder="请选择">
           <el-option
             v-for="item in options"
             :key="item.value"
             :label="item.label"
             :value="item.value">
           </el-option>
         </el-select>
       </el-card>
     </el-col>
     <el-col :span="8">
       <el-card shadow="never">
         <span class="head-font">模组码 : {{headContent.module}}</span>
<!--         <el-input v-model="content" style="float: right;width: 150px;" placeholder="请输入内容"></el-input>-->
@@ -277,6 +290,14 @@
  name: "stationTerminal",
  data() {
    return {
      selectProductCode: 'PE01B',
      options: [{
        value: 'PE01B',
        label: 'PE01B'
      }, {
        value: 'PE01F',
        label: 'PE01F'
      }],
      carCode: '',
      showInput: false,
      onLineBinDing: false,
@@ -426,7 +447,7 @@
        scanBarcode: value,
        sfcBarcode: this.headContent.module,
        // workOrderNo: '-',
        productCode: 'PE01B',
        productCode: this.selectProductCode,
        locationCode: this.headContent.processesCode,
        collectionTime: new Date()
      }
@@ -474,7 +495,7 @@
    getListFormulaChild() {
      console.log('getListFormulaChild')
      // this.formulaChildList = []
      this.formulaChildParams.productCode = 'PE01B'
      this.formulaChildParams.productCode = this.selectProductCode
      this.formulaChildParams.processesCode = this.headContent.processesCode
      console.log(this.formulaChildParams)
      noPageListFormulaChild(this.formulaChildParams).then(response => {
@@ -521,7 +542,7 @@
    },
    clearClick(){
      const param = {
        productCode: "PE01B",
        productCode: this.selectProductCode,
        locationCode: this.headContent.processesCode,
      }
      // jrmSaveCampaignTimeParameters(param).then(response => {});
@@ -630,7 +651,7 @@
          }
          const param = {
            productCode: "PE01B",
            productCode: self.selectProductCode,
            locationCode: self.headContent.processesCode,
            productBarcode: self.headContent.module,
            inboundTime: self.workpieceInformation.inboundTime,
jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue
@@ -1,18 +1,31 @@
<template>
  <div class="app-container">
   <el-row :gutter="5">
     <el-col :span="7">
     <el-col :span="5">
       <el-card shadow="never">
         <span class="head-font">工位编号 : {{headContent.processesCode}}</span>
         <span hidden>{{headContent.inboundTime}}</span>
       </el-card>
     </el-col>
     <el-col :span="7">
     <el-col :span="5">
       <el-card shadow="never">
         <span class="head-font">工位名称 : {{headContent.processesName}}</span>
       </el-card>
     </el-col>
     <el-col :span="10">
     <el-col :span="6">
       <el-card style="height: 57px" shadow="never">
         <span class="head-font">产品型号 : </span>
         <el-select style="width: 70%;margin-top: -10px" v-model="selectProductCode" placeholder="请选择">
           <el-option
             v-for="item in options"
             :key="item.value"
             :label="item.label"
             :value="item.value">
           </el-option>
         </el-select>
       </el-card>
     </el-col>
     <el-col :span="8">
       <el-card shadow="never">
         <span class="head-font">产品序列号 : {{headContent.sfcCode}}</span>
<!--         <el-input v-model="content" style="float: right;width: 150px;" placeholder="请输入内容"></el-input>-->
@@ -214,6 +227,14 @@
  name: "stationTerminal",
  data() {
    return {
      selectProductCode: 'PE01B',
      options: [{
        value: 'PE01B',
        label: 'PE01B'
      }, {
        value: 'PE01F',
        label: 'PE01F'
      }],
      showInput: true,
      serialPortContent: '',
      // 查询参数
@@ -363,7 +384,7 @@
        scanBarcode: value,
        sfcBarcode: this.headContent.sfcCode,
        workOrderNo: this.workpieceInformation.workOrderNo,
        productCode: "PE01B",
        productCode: this.selectProductCode,
        locationCode: this.headContent.processesCode,
        collectionTime: new Date()
      }
@@ -381,7 +402,7 @@
    },
    /** 查询配方配置子信息列表 */
    getListFormulaChild() {
      this.formulaChildParams.productCode = "PE01B"
      this.formulaChildParams.productCode = this.selectProductCode
      this.formulaChildParams.processesCode = this.headContent.processesCode
      console.log(this.formulaChildParams)
      noPageListFormulaChild(this.formulaChildParams).then(response => {
@@ -415,7 +436,7 @@
    },
    clearClick(){
      const param = {
        productCode: 'PE01B',
        productCode: this.selectProductCode,
        locationCode: this.headContent.processesCode,
      }
      clearWorkpieceRelease(param).then(response => {});
@@ -436,6 +457,7 @@
    /** 查询工单列表 */
    async getList() {
      const param = {
        productCode: this.selectProductCode,
        processesCode: this.headContent.processesCode,
      }
      fistSetpNumber(param).then(response => {});
@@ -514,7 +536,7 @@
            tightenTheArray: event.data,
            paramCode: formulaChilds.paramCode,
            // workOrderNo: self.workpieceInformation.workOrderNo,
            // productCode: "1P102S",
            productCode: self.selectProductCode,
            locationCode: self.headContent.processesCode,
            productBarcode: self.headContent.sfcCode,
            spareField2: formulaChilds.spareField2,
@@ -541,10 +563,11 @@
                  self.getListFormulaChild()
                }else {
                  const param = {
                    id: formulaChilds.id,
                    locationCode: self.headContent.processesCode,
                    productBarcode: self.headContent.sfcCode,
                    inboundTime: self.headContent.inboundTime,
                    productCode: "PE01B",
                    productCode: self.selectProductCode,
                    workOrderNo: "-",
                  }
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -719,22 +719,22 @@
      this.onlineSingle = selection.length!==1
      this.offlineSingle = selection.length!==1
      if(selection.length === 0){
        this.onlineSingle = true
        this.offlineSingle = true
      }
      if(selection.length === 1){
        if(selection[0].onlineCompletionMark === '2'){
          this.onlineSingle = false
        }else {
          this.onlineSingle = true
        }
        if(selection[0].sfResult === '2'){
          this.offlineSingle = false
        }else {
          this.offlineSingle = true
        }
      }
      // if(selection.length === 0){
      //   this.onlineSingle = true
      //   this.offlineSingle = true
      // }
      // if(selection.length === 1){
      //   if(selection[0].onlineCompletionMark === '2'){
      //     this.onlineSingle = false
      //   }else {
      //     this.onlineSingle = true
      //   }
      //   if(selection[0].sfResult === '2'){
      //     this.offlineSingle = false
      //   }else {
      //     this.offlineSingle = true
      //   }
      // }
    },
    /** 新增按钮操作 */
    handleAdd() {