| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -86,6 +86,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					private PropertyTextField FCCDEStext;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					private PropertyTextField dongtaitext;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					private PropertyTextField KCDStext;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					private PropertyTextField operationTypetext;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					private JButton ok;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					private JButton cancel;
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -178,26 +179,32 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						KCDStext.setRequired(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						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.setColumns(30);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						text.setRequired(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						text.setEnabled(false);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						northPane.add("7.2",text);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						northPane.add("8.2",text);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						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.setColumns(30);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dirtext.setRequired(true);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						dirtext.setEnabled(false);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						northPane.add("8.2",dirtext);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						northPane.add("9.2",dirtext);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						directory2 = new JButton("...");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						northPane.add("8.3",directory2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						northPane.add("9.3",directory2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						JPanel southpanel = new JPanel(new ButtonLayout());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						ok = new JButton("确定");
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -262,6 +269,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									String fccdescol = FCCDEStext.getText();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									String dongtaicol = dongtaitext.getText();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									String kcdscol = KCDStext.getText();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									String operationTypecol = operationTypetext.getText();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									final File excel = new File(path);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(!excel.exists()) {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -361,7 +369,9 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										final File standardpartfile = cust_standardpart_excelfiles[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										final File sleevefile = cust_sleeve_excelfiles[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(isValidExcelColumn(idcol) && isValidExcelColumn(svppscol) && isValidExcelColumn(fcccol)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												&& isValidExcelColumn(fccdescol) && isValidExcelColumn(dongtaicol) && isValidExcelColumn(kcdscol)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												&& isValidExcelColumn(fccdescol) && isValidExcelColumn(dongtaicol) && isValidExcelColumn(kcdscol)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												&& isValidExcelColumn(operationTypecol)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											op_nodesignmap.clear();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											no_load.clear();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											DesignPartBeanMap.clear();
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -383,6 +393,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											final int fccdescol2 = columnToNumber(fccdescol.toUpperCase());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											final int dongtaicol2 = columnToNumber(dongtaicol.toUpperCase());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											final int kcdscol2 = columnToNumber(kcdscol.toUpperCase());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											final int operationTypecol2 = columnToNumber(operationTypecol.toUpperCase());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											Thread thread = new Thread(){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												public void run(){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													ProgressCustomDialog.lbStatus.setText("正在创建 ....");
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -406,7 +417,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											            headerRow.createCell(6).setCellValue("头部尺寸");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											            headerRow.createCell(7).setCellValue("工具组合");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											            headerRow.createCell(8).setCellValue("工具");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											            headerRow.createCell(9).setCellValue("工具套筒");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											            headerRow.createCell(9).setCellValue("套筒");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														//读取自定义的表
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														readRuleExcel(excelfile);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														readElectricfile(electricfile,1);
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -417,7 +428,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														readsleevefile(sleevefile,1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														row_num = 1;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														//读取EXCEL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														readExcel(excel,2,idcol2,svppscol2,fcccol2,fccdescol2,dongtaicol2,kcdscol2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														readExcel(excel,2,idcol2,svppscol2,fcccol2,fccdescol2,dongtaicol2,kcdscol2,operationTypecol2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														//先处理选中对象层级有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();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -594,10 +605,20 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												String niuju = "";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												String dongtai = bean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//									if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//										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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															niuju = split[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															System.out.println("BOM 扭矩:"+niuju);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												}
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -630,10 +651,19 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													String rule_dongtai = rulebean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//											if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//												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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	niuju = split[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	if(!result)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		is_ok = false;
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -736,45 +766,59 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															String resourceType = rulebean.getResourceType();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															System.out.println("匹配上电动工具,资源型号:"+resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															if(eleTool.containsKey(resourceType)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																System.out.println("后续和套筒匹配");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																List<ToolBean> tools = eleTool.get(resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																for(ToolBean tool:tools) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	String range = tool.getRange();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	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);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//													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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													Set<String> commonKeys = null;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													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<>();
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -798,8 +842,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//														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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        													if(!result)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -901,8 +954,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															String rule_dongtai = rulebean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//														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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        													if(!result)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -960,8 +1022,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															String rule_dongtai = rulebean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
															if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//														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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        													if(!result)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1012,12 +1083,14 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														// 将所有 Map 放入一个列表
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//								        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 中也有的键
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												        commonKeys.retainAll(KCDSexcelname.keySet());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												        commonKeys.retainAll(TightenMethodexcelname.keySet());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												        commonKeys.retainAll(Torqueexcelname.keySet());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											        System.out.println("四个 Map 都有的 key: " + commonKeys);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													//读取工具excel数据
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													for(String name:commonKeys) {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1195,6 +1268,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													if(SleeveMap.containsKey(key2)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														System.out.println("找到匹配");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														Cell all_cell = row.createCell(7);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														Cell tool_cell = row.createCell(8);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														Cell tong_cell = row.createCell(9);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														String all = "";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														List<SleeveBean> SleeveBeans = SleeveMap.get(key2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
														for(SleeveBean sleevebean:SleeveBeans) {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1219,6 +1294,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			has = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			all = all+resourcetype+"+"+resourceType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			tool_cell.setCellValue(resourcetype);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			tong_cell.setCellValue(resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	}
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1226,6 +1303,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		all = all+resourcetype+"+"+resourceType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		tool_cell.setCellValue(resourcetype);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		tong_cell.setCellValue(resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		has = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																		break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																	}
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1495,10 +1574,20 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								String niuju = "";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								String dongtai = bean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    									if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    										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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											niuju = split[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											System.out.println("BOM 扭矩:"+niuju);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    							        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								}
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1531,10 +1620,19 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									String rule_dongtai = rulebean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    											if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    												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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													niuju = split[0];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													if(!result)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														is_ok = false;
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1637,45 +1735,59 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											String resourceType = rulebean.getResourceType();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											System.out.println("匹配上电动工具,资源型号:"+resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											if(eleTool.containsKey(resourceType)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												System.out.println("后续和套筒匹配");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												List<ToolBean> tools = eleTool.get(resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												for(ToolBean tool:tools) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													String range = tool.getRange();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													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);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    													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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									Set<String> commonKeys = null;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									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<>();
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1699,8 +1811,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    														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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            													if(!result)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1802,8 +1923,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											String rule_dongtai = rulebean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    														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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            													if(!result)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1861,8 +1991,17 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											String rule_dongtai = rulebean.getDongtai();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    											if(rule_dongtai != null && rule_dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												if(dongtai.length() > 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    												if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													String[] split = dongtai.split("N.M", -1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    													if(dongtai.contains("N.M")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    														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) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            													boolean result = ConditionChecker.checkCondition(rule_dongtai, split[1], split[0]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            													if(!result)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1913,12 +2052,14 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										// 将所有 Map 放入一个列表
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//    								        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 中也有的键
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								        commonKeys.retainAll(KCDSexcelname.keySet());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								        commonKeys.retainAll(TightenMethodexcelname.keySet());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    								        commonKeys.retainAll(Torqueexcelname.keySet());
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    							        System.out.println("四个 Map 都有的 key: " + commonKeys);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									//读取工具excel数据
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									for(String name:commonKeys) {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -2096,6 +2237,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    									if(SleeveMap.containsKey(key2)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										System.out.println("找到匹配");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										Cell all_cell = row.createCell(7);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										Cell tool_cell = row.createCell(8);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										Cell tong_cell = row.createCell(9);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										String all = "";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										List<SleeveBean> SleeveBeans = SleeveMap.get(key2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    										for(SleeveBean sleevebean:SleeveBeans) {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -2120,6 +2263,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    															System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    															has = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    															all = all+resourcetype+"+"+resourceType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    															tool_cell.setCellValue(resourcetype);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    															tong_cell.setCellValue(resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    															break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													}
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -2127,6 +2272,8 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														System.out.println("工具匹配上套筒,工具的输出尺寸:"+outsize+" 套筒输入尺寸:"+inputsize+" 长度:"+length +" 资源类型:"+resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														all = all+resourcetype+"+"+resourceType;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														tool_cell.setCellValue(resourcetype);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
																			tong_cell.setCellValue(resourceType);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														has = true;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    														break;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    													}
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -2371,7 +2518,7 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//		}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				//	}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    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>>() {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -2383,13 +2530,16 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                String fccdes = rowData.get(fccdescol2-1) != null ? rowData.get(fccdescol2-1) : "";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                String kcds = rowData.get(kcdscol2-1) != null ? rowData.get(kcdscol2-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;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (!DesignPartBeanMap.containsKey(key)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (!"D".equalsIgnoreCase(operationType.trim()) && !DesignPartBeanMap.containsKey(key)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    DesignPartBean bean = new DesignPartBean();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    // 设置值,确保不会为 null
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    bean.setDongtai(dongtai);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    bean.setFCC(fcc);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    if(fccdes.contains("-")) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    	fccdes = fccdes.substring(fccdes.indexOf("-")+1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    bean.setFCCDES(fccdes);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    bean.setKCDS(kcds);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    bean.setSVPPS(svpps);
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |