1.电动工具新型号直接输出资源,直接获取该工具的输出尺寸,匹配套筒

2.执行完特殊工艺规则及电动工具新型号两个规则后,优先判定工序名称是否包含预紧,若包含,选用电池工具,直接进入扭矩值判定,不用执行excel中后续规则
3.此界面增加一行。【操作类型】,填写BOM表中对应列,获取BOM表中数据时,过滤掉【操作类型】为“D”的数据
4.若FFC中文描述里有“-”,则取-后的文字进行模糊查询
5.若动态扭矩未A±B时,如60±5,用60执行扭矩值判定规则 扭矩值填写规范 增加N.M NM N·M 不区分大小写··
main
xuezhou 1 week ago
parent 32a871c418
commit 7661cdd74d

@ -97,9 +97,11 @@ public class ConditionChecker {
double end = Double.parseDouble(parts[1].trim());
return new double[]{start, end};
} else if (range.contains("±")) {
String[] parts = range.split("±");
double center = Double.parseDouble(parts[0].trim());
double delta = Double.parseDouble(parts[1].trim());
// double delta = Double.parseDouble(parts[1].trim());
double delta = 0;
return new double[]{center - delta, center + delta};
}
} catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {

@ -1,5 +1,14 @@
package com.sq.customization.util;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.sq.customization.bean.DesignPartBean;
public class RangeAdjuster {
public static String adjustRange(String range) {
if (range == null || range.trim().isEmpty()) {
@ -75,12 +84,61 @@ public class RangeAdjuster {
return range; // 不支持的格式,返回原字符串
}
}
private static void readExcel(File excelfile,int start_rownum,int idcol2,int dongtaicol) {
// 自定义监听器
AnalysisEventListener<Map<Integer, String>> listener = new AnalysisEventListener<Map<Integer, String>>() {
@Override
public void invoke(Map<Integer, String> rowData, AnalysisContext context) {
String id = rowData.get(idcol2-1) != null ? rowData.get(idcol2-1) : "";
String dongtai = rowData.get(dongtaicol-1) != null ? rowData.get(dongtaicol-1) : "";
String key = id;
System.out.println(id+dongtai);
if (!DesignPartBeanMap.containsKey(key)) {
DesignPartBean bean = new DesignPartBean();
// 设置值,确保不会为 null
if (dongtai.matches(".*(?i)(NM|N.M|N·M).*")) {
// 使用正则表达式分隔符 NM, N.M, N·M不区分大小写
System.out.println(dongtai);
String[] split = dongtai.split("(?i)NM|N.M|N·M",-1);
System.out.println(split.length);
}
DesignPartBeanMap.put(key, bean);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
System.out.println("读取完成,共 " + DesignPartBeanMap.size() + " 行数据");
}
};
// 执行读取
EasyExcel.read(excelfile, listener)
.sheet(0) // 指定 sheet 索引
.headRowNumber(start_rownum) // 从第0行开始读取包含标题行则设为1
.doRead();
}
private static Map<String,DesignPartBean> DesignPartBeanMap = new HashMap<>();
public static void main(String[] args) {
// 测试用例
String[] tests = {"3±1", "1-4", "1-", "-4", ""};
for (String test : tests) {
System.out.println("Input: " + test + " -> Output: " + adjustRange(test));
// String[] tests = {"3±1", "1-4", "1-", "-4", ""};
// for (String test : tests) {
// System.out.println("Input: " + test + " -> Output: " + adjustRange(test));
// }
DesignPartBeanMap.clear();
File file = new File("C:\\Users\\Administrator\\Desktop\\123.xlsx");
readExcel(file,2,13,682);
// for(String id:DesignPartBeanMap.keySet()) {
//
// }
String dongtai = "123±1N.M";
if (dongtai.matches(".*(?i)(NM|N.M|N·M).*")) {
// 使用正则表达式分隔符 NM, N.M, N·M不区分大小写
String[] split = dongtai.split("(?i)NM|N.M|N·M",-1);
if(split!= null && split.length == 2) {
System.out.println(split[0]);
}
}
}
}

Loading…
Cancel
Save