| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -86,6 +86,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private PropertyTextField FCCDEStext;
 | 
					 | 
					 | 
					 | 
						private PropertyTextField FCCDEStext;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private PropertyTextField dongtaitext;
 | 
					 | 
					 | 
					 | 
						private PropertyTextField dongtaitext;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private PropertyTextField KCDStext;
 | 
					 | 
					 | 
					 | 
						private PropertyTextField KCDStext;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						private PropertyTextField operationTypetext;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						
 | 
					 | 
					 | 
					 | 
						
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private JButton ok;
 | 
					 | 
					 | 
					 | 
						private JButton ok;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						private JButton cancel;
 | 
					 | 
					 | 
					 | 
						private JButton cancel;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -178,26 +179,32 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							KCDStext.setRequired(true);
 | 
					 | 
					 | 
					 | 
							KCDStext.setRequired(true);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("6.2",KCDStext);
 | 
					 | 
					 | 
					 | 
							northPane.add("6.2",KCDStext);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							northPane.add("7.1.left",new JLabel("操作类型:"));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							operationTypetext = new PropertyTextField();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							operationTypetext.setColumns(30);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							operationTypetext.setRequired(true);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							northPane.add("7.2",operationTypetext);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("7.1.left",new JLabel("数据文件:"));
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							northPane.add("8.1.left",new JLabel("数据文件:"));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							text = new PropertyTextField();
 | 
					 | 
					 | 
					 | 
							text = new PropertyTextField();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							text.setColumns(30);
 | 
					 | 
					 | 
					 | 
							text.setColumns(30);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							text.setRequired(true);
 | 
					 | 
					 | 
					 | 
							text.setRequired(true);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							text.setEnabled(false);
 | 
					 | 
					 | 
					 | 
							text.setEnabled(false);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("7.2",text);
 | 
					 | 
					 | 
					 | 
							northPane.add("8.2",text);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							directory = new JButton("...");
 | 
					 | 
					 | 
					 | 
							directory = new JButton("...");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("7.3",directory);
 | 
					 | 
					 | 
					 | 
							northPane.add("8.3",directory);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("8.1.left",new JLabel("导出路径:"));
 | 
					 | 
					 | 
					 | 
							northPane.add("9.1.left",new JLabel("导出路径:"));
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							dirtext = new PropertyTextField();
 | 
					 | 
					 | 
					 | 
							dirtext = new PropertyTextField();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							dirtext.setColumns(30);
 | 
					 | 
					 | 
					 | 
							dirtext.setColumns(30);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							dirtext.setRequired(true);
 | 
					 | 
					 | 
					 | 
							dirtext.setRequired(true);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							dirtext.setEnabled(false);
 | 
					 | 
					 | 
					 | 
							dirtext.setEnabled(false);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("8.2",dirtext);
 | 
					 | 
					 | 
					 | 
							northPane.add("9.2",dirtext);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							directory2 = new JButton("...");
 | 
					 | 
					 | 
					 | 
							directory2 = new JButton("...");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							northPane.add("8.3",directory2);
 | 
					 | 
					 | 
					 | 
							northPane.add("9.3",directory2);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							
 | 
					 | 
					 | 
					 | 
							
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							JPanel southpanel = new JPanel(new ButtonLayout());
 | 
					 | 
					 | 
					 | 
							JPanel southpanel = new JPanel(new ButtonLayout());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ok = new JButton("确定");
 | 
					 | 
					 | 
					 | 
							ok = new JButton("确定");
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -262,6 +269,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										String fccdescol = FCCDEStext.getText();
 | 
					 | 
					 | 
					 | 
										String fccdescol = FCCDEStext.getText();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										String dongtaicol = dongtaitext.getText();
 | 
					 | 
					 | 
					 | 
										String dongtaicol = dongtaitext.getText();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										String kcdscol = KCDStext.getText();
 | 
					 | 
					 | 
					 | 
										String kcdscol = KCDStext.getText();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
										String operationTypecol = operationTypetext.getText();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										
 | 
					 | 
					 | 
					 | 
										
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										final File excel = new File(path);
 | 
					 | 
					 | 
					 | 
										final File excel = new File(path);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										if(!excel.exists()) {
 | 
					 | 
					 | 
					 | 
										if(!excel.exists()) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -361,7 +369,9 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											final File standardpartfile = cust_standardpart_excelfiles[0];
 | 
					 | 
					 | 
					 | 
											final File standardpartfile = cust_standardpart_excelfiles[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											final File sleevefile = cust_sleeve_excelfiles[0];
 | 
					 | 
					 | 
					 | 
											final File sleevefile = cust_sleeve_excelfiles[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											if(isValidExcelColumn(idcol) && isValidExcelColumn(svppscol) && isValidExcelColumn(fcccol)
 | 
					 | 
					 | 
					 | 
											if(isValidExcelColumn(idcol) && isValidExcelColumn(svppscol) && isValidExcelColumn(fcccol)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													&& isValidExcelColumn(fccdescol) && isValidExcelColumn(dongtaicol) && isValidExcelColumn(kcdscol)) {
 | 
					 | 
					 | 
					 | 
													&& isValidExcelColumn(fccdescol) && isValidExcelColumn(dongtaicol) && isValidExcelColumn(kcdscol)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
													&& isValidExcelColumn(operationTypecol)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
													) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												op_nodesignmap.clear();
 | 
					 | 
					 | 
					 | 
												op_nodesignmap.clear();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												no_load.clear();
 | 
					 | 
					 | 
					 | 
												no_load.clear();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												DesignPartBeanMap.clear();
 | 
					 | 
					 | 
					 | 
												DesignPartBeanMap.clear();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -383,6 +393,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												final int fccdescol2 = columnToNumber(fccdescol.toUpperCase());
 | 
					 | 
					 | 
					 | 
												final int fccdescol2 = columnToNumber(fccdescol.toUpperCase());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												final int dongtaicol2 = columnToNumber(dongtaicol.toUpperCase());
 | 
					 | 
					 | 
					 | 
												final int dongtaicol2 = columnToNumber(dongtaicol.toUpperCase());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												final int kcdscol2 = columnToNumber(kcdscol.toUpperCase());
 | 
					 | 
					 | 
					 | 
												final int kcdscol2 = columnToNumber(kcdscol.toUpperCase());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
												final int operationTypecol2 = columnToNumber(operationTypecol.toUpperCase());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												Thread thread = new Thread(){
 | 
					 | 
					 | 
					 | 
												Thread thread = new Thread(){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													public void run(){
 | 
					 | 
					 | 
					 | 
													public void run(){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														ProgressCustomDialog.lbStatus.setText("正在创建 ....");
 | 
					 | 
					 | 
					 | 
														ProgressCustomDialog.lbStatus.setText("正在创建 ....");
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -406,7 +417,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												            headerRow.createCell(6).setCellValue("头部尺寸");
 | 
					 | 
					 | 
					 | 
												            headerRow.createCell(6).setCellValue("头部尺寸");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												            headerRow.createCell(7).setCellValue("工具组合");
 | 
					 | 
					 | 
					 | 
												            headerRow.createCell(7).setCellValue("工具组合");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												            headerRow.createCell(8).setCellValue("工具");
 | 
					 | 
					 | 
					 | 
												            headerRow.createCell(8).setCellValue("工具");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												            headerRow.createCell(9).setCellValue("工具套筒");
 | 
					 | 
					 | 
					 | 
												            headerRow.createCell(9).setCellValue("套筒");
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															//读取自定义的表
 | 
					 | 
					 | 
					 | 
															//读取自定义的表
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															readRuleExcel(excelfile);
 | 
					 | 
					 | 
					 | 
															readRuleExcel(excelfile);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															readElectricfile(electricfile,1);
 | 
					 | 
					 | 
					 | 
															readElectricfile(electricfile,1);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -417,7 +428,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															readsleevefile(sleevefile,1);
 | 
					 | 
					 | 
					 | 
															readsleevefile(sleevefile,1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															row_num = 1;
 | 
					 | 
					 | 
					 | 
															row_num = 1;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															//读取EXCEL
 | 
					 | 
					 | 
					 | 
															//读取EXCEL
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															readExcel(excel,2,idcol2,svppscol2,fcccol2,fccdescol2,dongtaicol2,kcdscol2);
 | 
					 | 
					 | 
					 | 
															readExcel(excel,2,idcol2,svppscol2,fcccol2,fccdescol2,dongtaicol2,kcdscol2,operationTypecol2);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															//先处理选中对象层级有design的工序,获取没有design的工序
 | 
					 | 
					 | 
					 | 
															//先处理选中对象层级有design的工序,获取没有design的工序
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															
 | 
					 | 
					 | 
					 | 
															
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															
 | 
					 | 
					 | 
					 | 
															
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -480,7 +491,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														
 | 
					 | 
					 | 
					 | 
														
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													}
 | 
					 | 
					 | 
					 | 
													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												};
 | 
					 | 
					 | 
					 | 
												};
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												ProgressCustomDialog.show(thread, "执行中", null, null, null);
 | 
					 | 
					 | 
					 | 
												ProgressCustomDialog.show(thread, "执行中", "执行结束", null, null);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												
 | 
					 | 
					 | 
					 | 
												
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												AutoTransToolDialog.this.dispose();
 | 
					 | 
					 | 
					 | 
												AutoTransToolDialog.this.dispose();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											}
 | 
					 | 
					 | 
					 | 
											}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -594,10 +605,20 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													String niuju = "";
 | 
					 | 
					 | 
					 | 
													String niuju = "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													String dongtai = bean.getDongtai();
 | 
					 | 
					 | 
					 | 
													String dongtai = bean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
													if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//									if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//										String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															if(split!= null && split.length == 2) {
 | 
					 | 
					 | 
					 | 
					//										if(split!= null && split.length == 2) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//											niuju = split[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//										}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//									}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														System.out.println("dongtai:"+dongtai);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														if (dongtai.matches(".*(?i)(NM|N.M|N·M).*")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
												            // 使用正则表达式分隔符 NM, N.M, N·M(不区分大小写)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															System.out.println("使用正则表达式分隔符 NM, N.M, N·M(不区分大小写)");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
												            String[] split = dongtai.split("(?i)NM|N.M|N·M",-1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
												            if(split!= null && split.length ==2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																niuju = split[0];
 | 
					 | 
					 | 
					 | 
																niuju = split[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																System.out.println("BOM 扭矩:"+niuju);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															}
 | 
					 | 
					 | 
					 | 
															}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												        }
 | 
					 | 
					 | 
					 | 
												        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													}
 | 
					 | 
					 | 
					 | 
													}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -630,10 +651,19 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														String rule_dongtai = rulebean.getDongtai();
 | 
					 | 
					 | 
					 | 
														String rule_dongtai = rulebean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
														if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
															if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//											if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//												String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//												if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													niuju = split[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//												}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//											}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																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) {
 | 
					 | 
					 | 
					 | 
														            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		niuju = split[0];
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
																		boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		if(!result)
 | 
					 | 
					 | 
					 | 
																		if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			is_ok = false;
 | 
					 | 
					 | 
					 | 
																			is_ok = false;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -736,45 +766,59 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																String resourceType = rulebean.getResourceType();
 | 
					 | 
					 | 
					 | 
																String resourceType = rulebean.getResourceType();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																System.out.println("匹配上电动工具,资源型号:"+resourceType);
 | 
					 | 
					 | 
					 | 
																System.out.println("匹配上电动工具,资源型号:"+resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																if(eleTool.containsKey(resourceType)) {
 | 
					 | 
					 | 
					 | 
																if(eleTool.containsKey(resourceType)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																	System.out.println("后续和套筒匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	List<ToolBean> tools = eleTool.get(resourceType);
 | 
					 | 
					 | 
					 | 
																	List<ToolBean> tools = eleTool.get(resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	for(ToolBean tool:tools) {
 | 
					 | 
					 | 
					 | 
																	for(ToolBean tool:tools) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		String range = tool.getRange();
 | 
					 | 
					 | 
					 | 
																		String range = tool.getRange();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		String outSize = tool.getOutSize();
 | 
					 | 
					 | 
					 | 
																		String outSize = tool.getOutSize();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		boolean isWithinRange = false;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		if(range!= null && range.length() > 0 && niuju != null && niuju.length() > 0) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			range = range.replace("|", "-");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			String newrange = RangeCalculator.adjustRange(range);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		
 | 
					 | 
					 | 
					 | 
																		
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			String newniuju = niuju;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			if(bl_rev_object_name.contains("预紧")) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				newniuju = RangeAdjuster.adjustRange(niuju);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			System.out.print("判断BOM表中扭矩是否符合:"+niuju+"新扭矩:"+newniuju+" 扭矩范围:"+range+" 新扭矩范围:"+newrange+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" ");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			isWithinRange = RangChecker.isWithinRange(newniuju, newrange);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			if(isWithinRange) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				System.out.println("新扭矩和新扭矩范围匹配");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			else {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				System.out.println("新扭矩和新扭矩范围不匹配");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		else if((range == null || range.length() == 0) && (niuju == null || niuju.length() == 0)) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			System.out.print("判断BOM表中扭矩是否符合:"+niuju+" 扭矩范围:"+range+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" 匹配扭矩");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			isWithinRange = true;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		if(isWithinRange) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			System.out.println("后续和套筒匹配");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		Tool.computeIfAbsent(resourceType, key2 -> new ArrayList<>()).add(tool);
 | 
					 | 
					 | 
					 | 
																		Tool.computeIfAbsent(resourceType, key2 -> new ArrayList<>()).add(tool);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													boolean isWithinRange = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													if(range!= null && range.length() > 0 && niuju != null && niuju.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														range = range.replace("|", "-");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														String newrange = RangeCalculator.adjustRange(range);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														String newniuju = niuju;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														if(bl_rev_object_name.contains("预紧")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															newniuju = RangeAdjuster.adjustRange(niuju);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														System.out.print("判断BOM表中扭矩是否符合:"+niuju+"新扭矩:"+newniuju+" 扭矩范围:"+range+" 新扭矩范围:"+newrange+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" ");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														isWithinRange = RangChecker.isWithinRange(newniuju, newrange);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														if(isWithinRange) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															System.out.println("新扭矩和新扭矩范围匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															System.out.println("新扭矩和新扭矩范围不匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													else if((range == null || range.length() == 0) && (niuju == null || niuju.length() == 0)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														System.out.print("判断BOM表中扭矩是否符合:"+niuju+" 扭矩范围:"+range+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" 匹配扭矩");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														isWithinRange = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													if(isWithinRange) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														System.out.println("后续和套筒匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														Tool.computeIfAbsent(resourceType, key2 -> new ArrayList<>()).add(tool);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																		
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	}
 | 
					 | 
					 | 
					 | 
																	}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																}
 | 
					 | 
					 | 
					 | 
																}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																	System.out.println("没有电动工具和套筒匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																}
 | 
					 | 
					 | 
					 | 
																}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															}
 | 
					 | 
					 | 
					 | 
															}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														}
 | 
					 | 
					 | 
					 | 
														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													}
 | 
					 | 
					 | 
					 | 
													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													
 | 
					 | 
					 | 
					 | 
													
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													if(!autotoolrule) {
 | 
					 | 
					 | 
					 | 
													if(!autotoolrule) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														
 | 
					 | 
					 | 
					 | 
														Set<String> commonKeys = null;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														Map<String,String> resourcename = new HashMap<>();
 | 
					 | 
					 | 
					 | 
														Map<String,String> resourcename = new HashMap<>();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														if(bl_rev_object_name.contains("预紧")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															commonKeys= new HashSet<>();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															commonKeys.add("电池工具");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															resourcename.put("枪式电池枪", "枪式电池枪");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															//拧紧性质规则
 | 
					 | 
					 | 
					 | 
															//拧紧性质规则
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															//看读取哪个表
 | 
					 | 
					 | 
					 | 
															//看读取哪个表
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															Map<String,Integer> Tightenexcelname = new HashMap<>();
 | 
					 | 
					 | 
					 | 
															Map<String,Integer> Tightenexcelname = new HashMap<>();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -798,8 +842,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
																if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	
 | 
					 | 
					 | 
					 | 
																	
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
																	if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//													if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//														String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//																is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																		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) {
 | 
					 | 
					 | 
					 | 
					        									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        													if(!result)
 | 
					 | 
					 | 
					 | 
					        													if(!result)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -901,8 +954,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																String rule_dongtai = rulebean.getDongtai();
 | 
					 | 
					 | 
					 | 
																String rule_dongtai = rulebean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
																if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
																	if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//													if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//														String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//																is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																		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) {
 | 
					 | 
					 | 
					 | 
					        									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        													if(!result)
 | 
					 | 
					 | 
					 | 
					        													if(!result)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -960,8 +1022,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																String rule_dongtai = rulebean.getDongtai();
 | 
					 | 
					 | 
					 | 
																String rule_dongtai = rulebean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
																if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
																	if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																	if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//													if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//														String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//															if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//																is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																		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) {
 | 
					 | 
					 | 
					 | 
					        									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        													if(!result)
 | 
					 | 
					 | 
					 | 
					        													if(!result)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1012,12 +1083,14 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															}
 | 
					 | 
					 | 
					 | 
															}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															// 将所有 Map 放入一个列表
 | 
					 | 
					 | 
					 | 
															// 将所有 Map 放入一个列表
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//								        List<Map<String, Integer>> maps = Arrays.asList(Tightenexcelname, KCDSexcelname, TightenMethodexcelname, Torqueexcelname);
 | 
					 | 
					 | 
					 | 
					//								        List<Map<String, Integer>> maps = Arrays.asList(Tightenexcelname, KCDSexcelname, TightenMethodexcelname, Torqueexcelname);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												        Set<String> commonKeys = new HashSet<>(Tightenexcelname.keySet());
 | 
					 | 
					 | 
					 | 
													        commonKeys = new HashSet<>(Tightenexcelname.keySet());
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													        
 | 
					 | 
					 | 
					 | 
													        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													        // 保留 map2、map3、map4 中也有的键
 | 
					 | 
					 | 
					 | 
													        // 保留 map2、map3、map4 中也有的键
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													        commonKeys.retainAll(KCDSexcelname.keySet());
 | 
					 | 
					 | 
					 | 
													        commonKeys.retainAll(KCDSexcelname.keySet());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													        commonKeys.retainAll(TightenMethodexcelname.keySet());
 | 
					 | 
					 | 
					 | 
													        commonKeys.retainAll(TightenMethodexcelname.keySet());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
													        commonKeys.retainAll(Torqueexcelname.keySet());
 | 
					 | 
					 | 
					 | 
													        commonKeys.retainAll(Torqueexcelname.keySet());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
														
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
												        System.out.println("四个 Map 都有的 key: " + commonKeys);
 | 
					 | 
					 | 
					 | 
												        System.out.println("四个 Map 都有的 key: " + commonKeys);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														//读取工具excel数据
 | 
					 | 
					 | 
					 | 
														//读取工具excel数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														for(String name:commonKeys) {
 | 
					 | 
					 | 
					 | 
														for(String name:commonKeys) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1195,6 +1268,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
														if(SleeveMap.containsKey(key2)) {
 | 
					 | 
					 | 
					 | 
														if(SleeveMap.containsKey(key2)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															System.out.println("找到匹配");
 | 
					 | 
					 | 
					 | 
															System.out.println("找到匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															Cell all_cell = row.createCell(7);
 | 
					 | 
					 | 
					 | 
															Cell all_cell = row.createCell(7);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															Cell tool_cell = row.createCell(8);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
															Cell tong_cell = row.createCell(9);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															String all = "";
 | 
					 | 
					 | 
					 | 
															String all = "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															List<SleeveBean> SleeveBeans = SleeveMap.get(key2);
 | 
					 | 
					 | 
					 | 
															List<SleeveBean> SleeveBeans = SleeveMap.get(key2);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
															for(SleeveBean sleevebean:SleeveBeans) {
 | 
					 | 
					 | 
					 | 
															for(SleeveBean sleevebean:SleeveBeans) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1219,6 +1294,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
					 | 
					 | 
					 | 
																				System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				has = true;
 | 
					 | 
					 | 
					 | 
																				has = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				all = all+resourcetype+"+"+resourceType;
 | 
					 | 
					 | 
					 | 
																				all = all+resourcetype+"+"+resourceType;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																				tool_cell.setCellValue(resourcetype);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																				tong_cell.setCellValue(resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																				break;
 | 
					 | 
					 | 
					 | 
																				break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			}
 | 
					 | 
					 | 
					 | 
																			}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		}
 | 
					 | 
					 | 
					 | 
																		}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1226,6 +1303,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
					 | 
					 | 
					 | 
																			System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			
 | 
					 | 
					 | 
					 | 
																			
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			all = all+resourcetype+"+"+resourceType;
 | 
					 | 
					 | 
					 | 
																			all = all+resourcetype+"+"+resourceType;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																			tool_cell.setCellValue(resourcetype);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																			tong_cell.setCellValue(resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			has = true;
 | 
					 | 
					 | 
					 | 
																			has = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																			break;
 | 
					 | 
					 | 
					 | 
																			break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
																		}
 | 
					 | 
					 | 
					 | 
																		}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1495,10 +1574,20 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								String niuju = "";
 | 
					 | 
					 | 
					 | 
					    								String niuju = "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								String dongtai = bean.getDongtai();
 | 
					 | 
					 | 
					 | 
					    								String dongtai = bean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    								if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//    									if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//    										String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    										if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    											niuju = split[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    										}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    									}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									System.out.println("dongtai:"+dongtai);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									if (dongtai.matches(".*(?i)(NM|N.M|N·M).*")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    							            // 使用正则表达式分隔符 NM, N.M, N·M(不区分大小写)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										System.out.println("使用正则表达式分隔符 NM, N.M, N·M(不区分大小写)");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    							            String[] split = dongtai.split("(?i)NM|N.M|N·M",-1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    							            if(split!= null && split.length == 2) {
 | 
					 | 
					 | 
					 | 
					    							            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											niuju = split[0];
 | 
					 | 
					 | 
					 | 
					    											niuju = split[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    											System.out.println("BOM 扭矩:"+niuju);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										}
 | 
					 | 
					 | 
					 | 
					    										}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    							        }
 | 
					 | 
					 | 
					 | 
					    							        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								}
 | 
					 | 
					 | 
					 | 
					    								}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1531,10 +1620,19 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									String rule_dongtai = rulebean.getDongtai();
 | 
					 | 
					 | 
					 | 
					    									String rule_dongtai = rulebean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    									if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    										if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//    											if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//    												String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    												if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													niuju = split[0];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    												}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    											}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    											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) {
 | 
					 | 
					 | 
					 | 
					    									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													niuju = split[0];
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					    													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													if(!result)
 | 
					 | 
					 | 
					 | 
					    													if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														is_ok = false;
 | 
					 | 
					 | 
					 | 
					    														is_ok = false;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1637,45 +1735,59 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											String resourceType = rulebean.getResourceType();
 | 
					 | 
					 | 
					 | 
					    											String resourceType = rulebean.getResourceType();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											System.out.println("匹配上电动工具,资源型号:"+resourceType);
 | 
					 | 
					 | 
					 | 
					    											System.out.println("匹配上电动工具,资源型号:"+resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											if(eleTool.containsKey(resourceType)) {
 | 
					 | 
					 | 
					 | 
					    											if(eleTool.containsKey(resourceType)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    												System.out.println("后续和套筒匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												List<ToolBean> tools = eleTool.get(resourceType);
 | 
					 | 
					 | 
					 | 
					    												List<ToolBean> tools = eleTool.get(resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												for(ToolBean tool:tools) {
 | 
					 | 
					 | 
					 | 
					    												for(ToolBean tool:tools) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													String range = tool.getRange();
 | 
					 | 
					 | 
					 | 
					    													String range = tool.getRange();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													String outSize = tool.getOutSize();
 | 
					 | 
					 | 
					 | 
					    													String outSize = tool.getOutSize();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													boolean isWithinRange = false;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													if(range!= null && range.length() > 0 && niuju != null && niuju.length() > 0) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														range = range.replace("|", "-");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														String newrange = RangeCalculator.adjustRange(range);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													
 | 
					 | 
					 | 
					 | 
					    													
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														String newniuju = niuju;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														if(bl_rev_object_name.contains("预紧")) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															newniuju = RangeAdjuster.adjustRange(niuju);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														System.out.print("判断BOM表中扭矩是否符合:"+niuju+"新扭矩:"+newniuju+" 扭矩范围:"+range+" 新扭矩范围:"+newrange+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" ");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														isWithinRange = RangChecker.isWithinRange(newniuju, newrange);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														if(isWithinRange) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															System.out.println("新扭矩和新扭矩范围匹配");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														else {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															System.out.println("新扭矩和新扭矩范围不匹配");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													else if((range == null || range.length() == 0) && (niuju == null || niuju.length() == 0)) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														System.out.print("判断BOM表中扭矩是否符合:"+niuju+" 扭矩范围:"+range+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" 匹配扭矩");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														isWithinRange = true;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													}
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													if(isWithinRange) {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														System.out.println("后续和套筒匹配");
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													Tool.computeIfAbsent(resourceType, key2 -> new ArrayList<>()).add(tool);
 | 
					 | 
					 | 
					 | 
					    													Tool.computeIfAbsent(resourceType, key2 -> new ArrayList<>()).add(tool);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													boolean isWithinRange = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													if(range!= null && range.length() > 0 && niuju != null && niuju.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														range = range.replace("|", "-");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														String newrange = RangeCalculator.adjustRange(range);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														String newniuju = niuju;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														if(bl_rev_object_name.contains("预紧")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															newniuju = RangeAdjuster.adjustRange(niuju);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														System.out.print("判断BOM表中扭矩是否符合:"+niuju+"新扭矩:"+newniuju+" 扭矩范围:"+range+" 新扭矩范围:"+newrange+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" ");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														isWithinRange = RangChecker.isWithinRange(newniuju, newrange);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														if(isWithinRange) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															System.out.println("新扭矩和新扭矩范围匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															System.out.println("新扭矩和新扭矩范围不匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													else if((range == null || range.length() == 0) && (niuju == null || niuju.length() == 0)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														System.out.print("判断BOM表中扭矩是否符合:"+niuju+" 扭矩范围:"+range+" 资源型号:"+resourceType+" 输出尺寸:"+outSize+" 匹配扭矩");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														isWithinRange = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													if(isWithinRange) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														System.out.println("后续和套筒匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														Tool.computeIfAbsent(resourceType, key2 -> new ArrayList<>()).add(tool);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    													
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												}
 | 
					 | 
					 | 
					 | 
					    												}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											}
 | 
					 | 
					 | 
					 | 
					    											}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    											else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    												System.out.println("没有电动工具和套筒匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											}
 | 
					 | 
					 | 
					 | 
					    											}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										}
 | 
					 | 
					 | 
					 | 
					    										}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									}
 | 
					 | 
					 | 
					 | 
					    									}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								}
 | 
					 | 
					 | 
					 | 
					    								}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								
 | 
					 | 
					 | 
					 | 
					    								
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								if(!autotoolrule) {
 | 
					 | 
					 | 
					 | 
					    								if(!autotoolrule) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									
 | 
					 | 
					 | 
					 | 
					    									Set<String> commonKeys = null;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									Map<String,String> resourcename = new HashMap<>();
 | 
					 | 
					 | 
					 | 
					    									Map<String,String> resourcename = new HashMap<>();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									if(bl_rev_object_name.contains("预紧")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										commonKeys= new HashSet<>();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										commonKeys.add("电池工具");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										resourcename.put("枪式电池枪", "枪式电池枪");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									else {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										//拧紧性质规则
 | 
					 | 
					 | 
					 | 
					    										//拧紧性质规则
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										//看读取哪个表
 | 
					 | 
					 | 
					 | 
					    										//看读取哪个表
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										Map<String,Integer> Tightenexcelname = new HashMap<>();
 | 
					 | 
					 | 
					 | 
					    										Map<String,Integer> Tightenexcelname = new HashMap<>();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1699,8 +1811,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												
 | 
					 | 
					 | 
					 | 
					    												
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    												if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//    													if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//    														String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    																is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    													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) {
 | 
					 | 
					 | 
					 | 
					            									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            													if(!result)
 | 
					 | 
					 | 
					 | 
					            													if(!result)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1802,8 +1923,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											String rule_dongtai = rulebean.getDongtai();
 | 
					 | 
					 | 
					 | 
					    											String rule_dongtai = rulebean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    												if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//    													if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//    														String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    																is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    													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) {
 | 
					 | 
					 | 
					 | 
					            									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            													if(!result)
 | 
					 | 
					 | 
					 | 
					            													if(!result)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1861,8 +1991,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											String rule_dongtai = rulebean.getDongtai();
 | 
					 | 
					 | 
					 | 
					    											String rule_dongtai = rulebean.getDongtai();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												if(dongtai.length() > 0) {
 | 
					 | 
					 | 
					 | 
					    												if(dongtai.length() > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    												if(dongtai.contains("N.M")) {
 | 
					 | 
					 | 
					 | 
					//    													if(dongtai.contains("N.M")) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													String[] split = dongtai.split("N.M", -1);
 | 
					 | 
					 | 
					 | 
					//    														String[] split = dongtai.split("N.M", -1);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    															if(!result)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    																is_ok = false;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					//    													}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    													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) {
 | 
					 | 
					 | 
					 | 
					            									            if(split!= null && split.length == 2) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
					 | 
					 | 
					 | 
					            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            													if(!result)
 | 
					 | 
					 | 
					 | 
					            													if(!result)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1913,12 +2052,14 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										}
 | 
					 | 
					 | 
					 | 
					    										}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										// 将所有 Map 放入一个列表
 | 
					 | 
					 | 
					 | 
					    										// 将所有 Map 放入一个列表
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//    								        List<Map<String, Integer>> maps = Arrays.asList(Tightenexcelname, KCDSexcelname, TightenMethodexcelname, Torqueexcelname);
 | 
					 | 
					 | 
					 | 
					//    								        List<Map<String, Integer>> maps = Arrays.asList(Tightenexcelname, KCDSexcelname, TightenMethodexcelname, Torqueexcelname);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    							        Set<String> commonKeys = new HashSet<>(Tightenexcelname.keySet());
 | 
					 | 
					 | 
					 | 
					    								        commonKeys = new HashSet<>(Tightenexcelname.keySet());
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								        
 | 
					 | 
					 | 
					 | 
					    								        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								        // 保留 map2、map3、map4 中也有的键
 | 
					 | 
					 | 
					 | 
					    								        // 保留 map2、map3、map4 中也有的键
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								        commonKeys.retainAll(KCDSexcelname.keySet());
 | 
					 | 
					 | 
					 | 
					    								        commonKeys.retainAll(KCDSexcelname.keySet());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								        commonKeys.retainAll(TightenMethodexcelname.keySet());
 | 
					 | 
					 | 
					 | 
					    								        commonKeys.retainAll(TightenMethodexcelname.keySet());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    								        commonKeys.retainAll(Torqueexcelname.keySet());
 | 
					 | 
					 | 
					 | 
					    								        commonKeys.retainAll(Torqueexcelname.keySet());
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    									
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    							        System.out.println("四个 Map 都有的 key: " + commonKeys);
 | 
					 | 
					 | 
					 | 
					    							        System.out.println("四个 Map 都有的 key: " + commonKeys);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									//读取工具excel数据
 | 
					 | 
					 | 
					 | 
					    									//读取工具excel数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									for(String name:commonKeys) {
 | 
					 | 
					 | 
					 | 
					    									for(String name:commonKeys) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2096,6 +2237,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    									if(SleeveMap.containsKey(key2)) {
 | 
					 | 
					 | 
					 | 
					    									if(SleeveMap.containsKey(key2)) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										System.out.println("找到匹配");
 | 
					 | 
					 | 
					 | 
					    										System.out.println("找到匹配");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										Cell all_cell = row.createCell(7);
 | 
					 | 
					 | 
					 | 
					    										Cell all_cell = row.createCell(7);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										Cell tool_cell = row.createCell(8);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    										Cell tong_cell = row.createCell(9);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										String all = "";
 | 
					 | 
					 | 
					 | 
					    										String all = "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										List<SleeveBean> SleeveBeans = SleeveMap.get(key2);
 | 
					 | 
					 | 
					 | 
					    										List<SleeveBean> SleeveBeans = SleeveMap.get(key2);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    										for(SleeveBean sleevebean:SleeveBeans) {
 | 
					 | 
					 | 
					 | 
					    										for(SleeveBean sleevebean:SleeveBeans) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2120,6 +2263,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
					 | 
					 | 
					 | 
					    															System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															has = true;
 | 
					 | 
					 | 
					 | 
					    															has = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															all = all+resourcetype+"+"+resourceType;
 | 
					 | 
					 | 
					 | 
					    															all = all+resourcetype+"+"+resourceType;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    															tool_cell.setCellValue(resourcetype);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    															tong_cell.setCellValue(resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    															break;
 | 
					 | 
					 | 
					 | 
					    															break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														}
 | 
					 | 
					 | 
					 | 
					    														}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													}
 | 
					 | 
					 | 
					 | 
					    													}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2127,6 +2272,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
					 | 
					 | 
					 | 
					    														System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														
 | 
					 | 
					 | 
					 | 
					    														
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														all = all+resourcetype+"+"+resourceType;
 | 
					 | 
					 | 
					 | 
					    														all = all+resourcetype+"+"+resourceType;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    														tool_cell.setCellValue(resourcetype);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
																				tong_cell.setCellValue(resourceType);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														has = true;
 | 
					 | 
					 | 
					 | 
					    														has = true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    														break;
 | 
					 | 
					 | 
					 | 
					    														break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    													}
 | 
					 | 
					 | 
					 | 
					    													}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2371,7 +2518,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//		}
 | 
					 | 
					 | 
					 | 
					//		}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//	}
 | 
					 | 
					 | 
					 | 
					//	}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private void readExcel(File excelfile,int start_rownum,int idcol2,int svppscol2,int fcccol2
 | 
					 | 
					 | 
					 | 
					    private void readExcel(File excelfile,int start_rownum,int idcol2,int svppscol2,int fcccol2
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								,int fccdescol2,int dongtaicol,int kcdscol2) {
 | 
					 | 
					 | 
					 | 
								,int fccdescol2,int dongtaicol,int kcdscol2,int operationTypecol2) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    	// 自定义监听器
 | 
					 | 
					 | 
					 | 
					    	// 自定义监听器
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        AnalysisEventListener<Map<Integer, String>> listener = new AnalysisEventListener<Map<Integer, String>>() {
 | 
					 | 
					 | 
					 | 
					        AnalysisEventListener<Map<Integer, String>> listener = new AnalysisEventListener<Map<Integer, String>>() {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2383,13 +2530,16 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String fccdes = rowData.get(fccdescol2-1) != null ? rowData.get(fccdescol2-1) : "";
 | 
					 | 
					 | 
					 | 
					                String fccdes = rowData.get(fccdescol2-1) != null ? rowData.get(fccdescol2-1) : "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String kcds = rowData.get(kcdscol2-1) != null ? rowData.get(kcdscol2-1) : "";
 | 
					 | 
					 | 
					 | 
					                String kcds = rowData.get(kcdscol2-1) != null ? rowData.get(kcdscol2-1) : "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String svpps = rowData.get(svppscol2-1) != null ? rowData.get(svppscol2-1) : "";
 | 
					 | 
					 | 
					 | 
					                String svpps = rowData.get(svppscol2-1) != null ? rowData.get(svppscol2-1) : "";
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					                String operationType = rowData.get(operationTypecol2-1) != null ? rowData.get(operationTypecol2-1) : "";
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                String key = id;
 | 
					 | 
					 | 
					 | 
					                String key = id;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (!DesignPartBeanMap.containsKey(key)) {
 | 
					 | 
					 | 
					 | 
					                if (!"D".equalsIgnoreCase(operationType.trim()) && !DesignPartBeanMap.containsKey(key)) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    DesignPartBean bean = new DesignPartBean();
 | 
					 | 
					 | 
					 | 
					                    DesignPartBean bean = new DesignPartBean();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    // 设置值,确保不会为 null
 | 
					 | 
					 | 
					 | 
					                    // 设置值,确保不会为 null
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    bean.setDongtai(dongtai);
 | 
					 | 
					 | 
					 | 
					                    bean.setDongtai(dongtai);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    bean.setFCC(fcc);
 | 
					 | 
					 | 
					 | 
					                    bean.setFCC(fcc);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if(fccdes.contains("-")) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    	fccdes = fccdes.substring(fccdes.indexOf("-")+1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    bean.setFCCDES(fccdes);
 | 
					 | 
					 | 
					 | 
					                    bean.setFCCDES(fccdes);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    bean.setKCDS(kcds);
 | 
					 | 
					 | 
					 | 
					                    bean.setKCDS(kcds);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    bean.setSVPPS(svpps);
 | 
					 | 
					 | 
					 | 
					                    bean.setSVPPS(svpps);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |