|
|
|
@ -10,7 +10,9 @@ import java.io.FileInputStream;
|
|
|
|
|
import java.io.FileNotFoundException;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
|
@ -26,8 +28,12 @@ import org.apache.poi.ss.usermodel.Sheet;
|
|
|
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
|
|
|
|
|
|
import com.sq.customization.bean.CustRuleBean;
|
|
|
|
|
import com.sq.customization.bean.DesignPartBean;
|
|
|
|
|
import com.sq.customization.util.ConditionChecker;
|
|
|
|
|
import com.sq.customization.util.ExcelUtil;
|
|
|
|
|
import com.sq.customization.util.ProgressCustomDialog;
|
|
|
|
|
import com.sq.customization.util.StringConditionChecker;
|
|
|
|
|
import com.teamcenter.rac.aif.AbstractAIFDialog;
|
|
|
|
|
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
|
|
|
|
|
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
|
|
|
|
@ -36,7 +42,11 @@ import com.teamcenter.rac.cme.kernel.bvr.TCComponentMfgBvrPart;
|
|
|
|
|
import com.teamcenter.rac.cme.kernel.bvr.TCComponentMfgBvrPlantBOP;
|
|
|
|
|
import com.teamcenter.rac.cme.kernel.bvr.TCComponentMfgBvrProcessLine;
|
|
|
|
|
import com.teamcenter.rac.cme.kernel.bvr.TCComponentMfgBvrProcessStation;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCComponent;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCComponentBOMLine;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCComponentDataset;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCException;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCPreferenceService;
|
|
|
|
|
import com.teamcenter.rac.kernel.TCSession;
|
|
|
|
|
import com.teamcenter.rac.stylesheet.PropertyTextField;
|
|
|
|
|
import com.teamcenter.rac.util.ButtonLayout;
|
|
|
|
@ -57,16 +67,33 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
|
|
|
|
|
private JButton cancel;
|
|
|
|
|
private JButton directory;
|
|
|
|
|
|
|
|
|
|
private Registry registry = Registry.getRegistry(AutoTransToolDialog.class);
|
|
|
|
|
// private Registry registry = Registry.getRegistry(AutoTransToolDialog.class);
|
|
|
|
|
private TCSession session;
|
|
|
|
|
private InterfaceAIFComponent target;
|
|
|
|
|
Map<String,String> no_load = new HashMap<>();
|
|
|
|
|
Map<String,TCComponentMfgBvrOperation> op_nodesignmap = new HashMap<>();
|
|
|
|
|
public AutoTransToolDialog(Frame fm,InterfaceAIFComponent target) {
|
|
|
|
|
private Map<String,String> no_load = new HashMap<>();
|
|
|
|
|
private Map<String,TCComponentMfgBvrOperation> op_nodesignmap = new HashMap<>();
|
|
|
|
|
private Map<String,DesignPartBean> DesignPartBeanMap = new HashMap<>();
|
|
|
|
|
private List<CustRuleBean> processrules = new ArrayList<>();
|
|
|
|
|
private List<CustRuleBean> autotoolrules = new ArrayList<>();
|
|
|
|
|
private List<CustRuleBean> Tightenrules = new ArrayList<>();
|
|
|
|
|
private List<CustRuleBean> KCDSrules = new ArrayList<>();
|
|
|
|
|
private List<CustRuleBean> TightenMethodrules = new ArrayList<>();
|
|
|
|
|
private List<CustRuleBean> Torquerules = new ArrayList<>();
|
|
|
|
|
private int times = 0;
|
|
|
|
|
public AutoTransToolDialog(Frame fm,InterfaceAIFComponent target,TCSession session) {
|
|
|
|
|
super(fm);
|
|
|
|
|
this.target = target;
|
|
|
|
|
this.session = session;
|
|
|
|
|
op_nodesignmap.clear();
|
|
|
|
|
no_load.clear();
|
|
|
|
|
DesignPartBeanMap.clear();
|
|
|
|
|
processrules.clear();
|
|
|
|
|
autotoolrules.clear();
|
|
|
|
|
Tightenrules.clear();
|
|
|
|
|
TightenMethodrules.clear();
|
|
|
|
|
KCDSrules.clear();
|
|
|
|
|
Torquerules.clear();
|
|
|
|
|
times = 0;
|
|
|
|
|
init();
|
|
|
|
|
}
|
|
|
|
|
private void init() {
|
|
|
|
@ -177,69 +204,95 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
|
|
|
|
|
MessageBox.post(AutoTransToolDialog.this,"文件路径不存在", "Message", MessageBox.INFORMATION);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if(isValidExcelColumn(idcol) && isValidExcelColumn(svppscol) && isValidExcelColumn(fcccol)
|
|
|
|
|
&& isValidExcelColumn(fccdescol) && isValidExcelColumn(dongtaicol) && isValidExcelColumn(kcdscol)) {
|
|
|
|
|
op_nodesignmap.clear();
|
|
|
|
|
no_load.clear();
|
|
|
|
|
int idcol2 = columnToNumber(idcol.toUpperCase());
|
|
|
|
|
int svppscol2 = columnToNumber(svppscol.toUpperCase());
|
|
|
|
|
int fcccol2 = columnToNumber(fcccol.toUpperCase());
|
|
|
|
|
int fccdescol2 = columnToNumber(fccdescol.toUpperCase());
|
|
|
|
|
int dongtaicol2 = columnToNumber(dongtaicol.toUpperCase());
|
|
|
|
|
int kcdscol2 = columnToNumber(kcdscol.toUpperCase());
|
|
|
|
|
try {
|
|
|
|
|
//读取EXCEL
|
|
|
|
|
|
|
|
|
|
//先处理选中对象层级有design的工序,获取没有design的工序
|
|
|
|
|
opBOMLineData(target);
|
|
|
|
|
if(op_nodesignmap.size() > 0) {
|
|
|
|
|
TCComponentBOMLine parent = null;
|
|
|
|
|
|
|
|
|
|
if(target instanceof TCComponentMfgBvrProcessStation) {
|
|
|
|
|
TCComponentMfgBvrProcessStation station = (TCComponentMfgBvrProcessStation) target;
|
|
|
|
|
String id = station.getProperty("bl_item_item_id");
|
|
|
|
|
no_load.put(id, id);
|
|
|
|
|
parent = station.parent();
|
|
|
|
|
}
|
|
|
|
|
else if(target instanceof TCComponentMfgBvrPlantBOP) {
|
|
|
|
|
TCComponentMfgBvrPlantBOP plant = (TCComponentMfgBvrPlantBOP) target;
|
|
|
|
|
String id = plant.getProperty("bl_item_item_id");
|
|
|
|
|
no_load.put(id, id);
|
|
|
|
|
parent = plant.parent();
|
|
|
|
|
}
|
|
|
|
|
else if(target instanceof TCComponentMfgBvrProcessLine) {
|
|
|
|
|
TCComponentMfgBvrProcessLine line = (TCComponentMfgBvrProcessLine) target;
|
|
|
|
|
String id = line.getProperty("bl_item_item_id");
|
|
|
|
|
no_load.put(id, id);
|
|
|
|
|
parent = line.parent();
|
|
|
|
|
}
|
|
|
|
|
if(parent != null) {
|
|
|
|
|
System.out.println(parent.getClass()+parent.getProperty("bl_indented_title"));
|
|
|
|
|
getparent(parent);
|
|
|
|
|
}
|
|
|
|
|
if(op_nodesignmap.size() > 0) {
|
|
|
|
|
System.out.println("整个结构没有匹配的紧固件");
|
|
|
|
|
String[] rule_pref = session.getPreferenceService().getStringArray(TCPreferenceService.TC_preference_site, "cust_rule_excel");
|
|
|
|
|
if(rule_pref == null || rule_pref.length == 0) {
|
|
|
|
|
MessageBox.post(AutoTransToolDialog.this,"请检查自定义首选项cust_rule_excel", "Message", MessageBox.INFORMATION);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
TCComponentDataset dataset = (TCComponentDataset) session.stringToComponent(rule_pref[0]);
|
|
|
|
|
File[] files = dataset.getFiles("excel");
|
|
|
|
|
if(files != null || files.length == 0 || !files[0].exists()) {
|
|
|
|
|
MessageBox.post(AutoTransToolDialog.this,"请检查自定义首选项cust_rule_excel对应的规则数据集中的文件", "Message", MessageBox.INFORMATION);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
File excelfile = files[0];
|
|
|
|
|
if(isValidExcelColumn(idcol) && isValidExcelColumn(svppscol) && isValidExcelColumn(fcccol)
|
|
|
|
|
&& isValidExcelColumn(fccdescol) && isValidExcelColumn(dongtaicol) && isValidExcelColumn(kcdscol)) {
|
|
|
|
|
op_nodesignmap.clear();
|
|
|
|
|
no_load.clear();
|
|
|
|
|
DesignPartBeanMap.clear();
|
|
|
|
|
int idcol2 = columnToNumber(idcol.toUpperCase());
|
|
|
|
|
int svppscol2 = columnToNumber(svppscol.toUpperCase());
|
|
|
|
|
int fcccol2 = columnToNumber(fcccol.toUpperCase());
|
|
|
|
|
int fccdescol2 = columnToNumber(fccdescol.toUpperCase());
|
|
|
|
|
int dongtaicol2 = columnToNumber(dongtaicol.toUpperCase());
|
|
|
|
|
int kcdscol2 = columnToNumber(kcdscol.toUpperCase());
|
|
|
|
|
Thread thread = new Thread(){
|
|
|
|
|
public void run(){
|
|
|
|
|
ProgressCustomDialog.lbStatus.setText("正在创建 ....");
|
|
|
|
|
try {
|
|
|
|
|
//读取自定义的规则表
|
|
|
|
|
if(times == 0) {
|
|
|
|
|
readRuleExcel(excelfile);
|
|
|
|
|
times = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//读取EXCEL
|
|
|
|
|
readExcel(excel,2,idcol2,svppscol2,fcccol2,fccdescol2,dongtaicol2,kcdscol2);
|
|
|
|
|
//先处理选中对象层级有design的工序,获取没有design的工序
|
|
|
|
|
opBOMLineData(target);
|
|
|
|
|
if(op_nodesignmap.size() > 0) {
|
|
|
|
|
TCComponentBOMLine parent = null;
|
|
|
|
|
|
|
|
|
|
if(target instanceof TCComponentMfgBvrProcessStation) {
|
|
|
|
|
TCComponentMfgBvrProcessStation station = (TCComponentMfgBvrProcessStation) target;
|
|
|
|
|
String id = station.getProperty("bl_item_item_id");
|
|
|
|
|
no_load.put(id, id);
|
|
|
|
|
parent = station.parent();
|
|
|
|
|
}
|
|
|
|
|
else if(target instanceof TCComponentMfgBvrPlantBOP) {
|
|
|
|
|
TCComponentMfgBvrPlantBOP plant = (TCComponentMfgBvrPlantBOP) target;
|
|
|
|
|
String id = plant.getProperty("bl_item_item_id");
|
|
|
|
|
no_load.put(id, id);
|
|
|
|
|
parent = plant.parent();
|
|
|
|
|
}
|
|
|
|
|
else if(target instanceof TCComponentMfgBvrProcessLine) {
|
|
|
|
|
TCComponentMfgBvrProcessLine line = (TCComponentMfgBvrProcessLine) target;
|
|
|
|
|
String id = line.getProperty("bl_item_item_id");
|
|
|
|
|
no_load.put(id, id);
|
|
|
|
|
parent = line.parent();
|
|
|
|
|
}
|
|
|
|
|
if(parent != null) {
|
|
|
|
|
System.out.println(parent.getClass()+parent.getProperty("bl_indented_title"));
|
|
|
|
|
getparent(parent);
|
|
|
|
|
}
|
|
|
|
|
if(op_nodesignmap.size() > 0) {
|
|
|
|
|
System.out.println("整个结构没有匹配的紧固件");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (Exception e1) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
ProgressCustomDialog.show(thread, "执行中", null, null, null);
|
|
|
|
|
|
|
|
|
|
} catch (Exception e1) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
AutoTransToolDialog.this.dispose();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
MessageBox.post(AutoTransToolDialog.this,"请填写正确的列,比如A,B,C..", "Message", MessageBox.INFORMATION);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
AutoTransToolDialog.this.dispose();
|
|
|
|
|
} catch (TCException e2) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e2.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
MessageBox.post(AutoTransToolDialog.this,"请填写正确的列,比如A,B,C..", "Message", MessageBox.INFORMATION);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
Thread thread = new Thread(){
|
|
|
|
|
public void run(){
|
|
|
|
|
ProgressCustomDialog.lbStatus.setText("正在创建 ....");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
ProgressCustomDialog.show(thread, "执行中", null, null, null);
|
|
|
|
|
|
|
|
|
|
//session.queueOperation(operation);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -282,7 +335,279 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
|
|
|
|
|
if(designchildcom instanceof TCComponentMfgBvrPart) {
|
|
|
|
|
hasdesign = true;
|
|
|
|
|
//获取design
|
|
|
|
|
|
|
|
|
|
String designid = designchildcom.getProperty("bl_item_item_id");
|
|
|
|
|
String newname = bl_rev_object_name.replaceAll("预紧", "")
|
|
|
|
|
.replaceAll("终紧", "")
|
|
|
|
|
.replaceAll("紧固", "")
|
|
|
|
|
.replaceAll("拧紧", "");
|
|
|
|
|
String key = designid+"|"+newname;
|
|
|
|
|
System.out.println("看design是否匹配:"+key);
|
|
|
|
|
if(DesignPartBeanMap.containsKey(key)) {
|
|
|
|
|
System.out.println("找到匹配的,开始匹配规则");
|
|
|
|
|
DesignPartBean bean = DesignPartBeanMap.get(key);
|
|
|
|
|
|
|
|
|
|
//优先执行特殊工艺规则和电动工具新型号规则,若无匹配全量跑后续规则
|
|
|
|
|
boolean processrule = false;
|
|
|
|
|
for(int i = 0; i< processrules.size(); i++) {
|
|
|
|
|
CustRuleBean rulebean = processrules.get(i);
|
|
|
|
|
String rule_svpps = rulebean.getSVPPS();
|
|
|
|
|
boolean is_ok = true;
|
|
|
|
|
if(rule_svpps != null && rule_svpps.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_svpps, bean.getSVPPS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_fcc = rulebean.getFCC();
|
|
|
|
|
if(rule_fcc != null && rule_fcc.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_fcc, bean.getFCC());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_dongtai = rulebean.getDongtai();
|
|
|
|
|
if(rule_dongtai != null && rule_dongtai.length() > 0) {
|
|
|
|
|
String dongtai = bean.getDongtai();
|
|
|
|
|
if(dongtai.length() > 0) {
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
boolean result = ConditionChecker.checkCondition(rule_dongtai, dongtai,"");
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rule_FCCDESC = rulebean.getFCCDES();
|
|
|
|
|
if(rule_FCCDESC != null && rule_FCCDESC.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_FCCDESC, bl_rev_object_name);
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(is_ok) {
|
|
|
|
|
//获取资源名称
|
|
|
|
|
processrule = true;
|
|
|
|
|
String resourceName = rulebean.getResourceName();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
boolean autotoolrule = false;
|
|
|
|
|
if(!processrule) {
|
|
|
|
|
//执行电动工具规则
|
|
|
|
|
for(int i = 0; i< autotoolrules.size(); i++) {
|
|
|
|
|
CustRuleBean rulebean = autotoolrules.get(i);
|
|
|
|
|
String rule_svpps = rulebean.getSVPPS();
|
|
|
|
|
boolean is_ok = true;
|
|
|
|
|
if(rule_svpps != null && rule_svpps.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_svpps, bean.getSVPPS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_fcc = rulebean.getFCC();
|
|
|
|
|
if(rule_fcc != null && rule_fcc.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_fcc, bean.getFCC());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rule_FCCDESC = rulebean.getFCCDES();
|
|
|
|
|
if(rule_FCCDESC != null && rule_FCCDESC.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_FCCDESC, bl_rev_object_name);
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(is_ok) {
|
|
|
|
|
//获取资源类型
|
|
|
|
|
autotoolrule = true;
|
|
|
|
|
String resourceType = rulebean.getResourceType();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!autotoolrule) {
|
|
|
|
|
//拧紧性质规则
|
|
|
|
|
for(int i = 0; i< Tightenrules.size(); i++) {
|
|
|
|
|
CustRuleBean rulebean = Tightenrules.get(i);
|
|
|
|
|
String rule_svpps = rulebean.getSVPPS();
|
|
|
|
|
boolean is_ok = true;
|
|
|
|
|
if(rule_svpps != null && rule_svpps.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_svpps, bean.getSVPPS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rule_FCCDESC = rulebean.getFCCDES();
|
|
|
|
|
if(rule_FCCDESC != null && rule_FCCDESC.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_FCCDESC, bl_rev_object_name);
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_dongtai = rulebean.getDongtai();
|
|
|
|
|
if(rule_dongtai != null && rule_dongtai.length() > 0) {
|
|
|
|
|
String dongtai = bean.getDongtai();
|
|
|
|
|
if(dongtai.length() > 0) {
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
boolean result = ConditionChecker.checkCondition(rule_dongtai, dongtai,"");
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(is_ok) {
|
|
|
|
|
//获取资源名称
|
|
|
|
|
String resourceType = rulebean.getResourceType();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//KCDS
|
|
|
|
|
for(int i = 0; i< KCDSrules.size(); i++) {
|
|
|
|
|
CustRuleBean rulebean = KCDSrules.get(i);
|
|
|
|
|
String rule_svpps = rulebean.getSVPPS();
|
|
|
|
|
boolean is_ok = true;
|
|
|
|
|
if(rule_svpps != null && rule_svpps.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_svpps, bean.getSVPPS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rule_FCCDESC = rulebean.getFCCDES();
|
|
|
|
|
if(rule_FCCDESC != null && rule_FCCDESC.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_FCCDESC, bl_rev_object_name);
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_KCDS = rulebean.getKCDS();
|
|
|
|
|
if(rule_KCDS != null && rule_KCDS.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_KCDS, bean.getKCDS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
if(is_ok) {
|
|
|
|
|
//获取资源类型
|
|
|
|
|
String resourceType = rulebean.getResourceType();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//拧紧方式
|
|
|
|
|
for(int i = 0; i< TightenMethodrules.size(); i++) {
|
|
|
|
|
CustRuleBean rulebean = TightenMethodrules.get(i);
|
|
|
|
|
String rule_svpps = rulebean.getSVPPS();
|
|
|
|
|
boolean is_ok = true;
|
|
|
|
|
if(rule_svpps != null && rule_svpps.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_svpps, bean.getSVPPS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rule_FCCDESC = rulebean.getFCCDES();
|
|
|
|
|
if(rule_FCCDESC != null && rule_FCCDESC.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_FCCDESC, bl_rev_object_name);
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_dongtai = rulebean.getDongtai();
|
|
|
|
|
if(rule_dongtai != null && rule_dongtai.length() > 0) {
|
|
|
|
|
String dongtai = bean.getDongtai();
|
|
|
|
|
if(dongtai.length() > 0) {
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
boolean result = ConditionChecker.checkCondition(rule_dongtai, dongtai,"");
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(is_ok) {
|
|
|
|
|
//获取资源类型
|
|
|
|
|
String resourceType = rulebean.getResourceType();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//扭矩值
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i< Torquerules.size(); i++) {
|
|
|
|
|
CustRuleBean rulebean = Torquerules.get(i);
|
|
|
|
|
String rule_svpps = rulebean.getSVPPS();
|
|
|
|
|
boolean is_ok = true;
|
|
|
|
|
if(rule_svpps != null && rule_svpps.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_svpps, bean.getSVPPS());
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rule_FCCDESC = rulebean.getFCCDES();
|
|
|
|
|
if(rule_FCCDESC != null && rule_FCCDESC.length() > 0) {
|
|
|
|
|
boolean result = StringConditionChecker.checkCondition(rule_FCCDESC, bl_rev_object_name);
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
String rule_dongtai = rulebean.getDongtai();
|
|
|
|
|
if(rule_dongtai != null && rule_dongtai.length() > 0) {
|
|
|
|
|
String dongtai = bean.getDongtai();
|
|
|
|
|
if(dongtai.length() > 0) {
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
boolean result = ConditionChecker.checkCondition(rule_dongtai, dongtai,"");
|
|
|
|
|
if(!result)
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
is_ok = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(is_ok) {
|
|
|
|
|
//获取资源类型
|
|
|
|
|
String resourceType = rulebean.getResourceType();
|
|
|
|
|
String resourceName = rulebean.getResourceName();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("未找到匹配的");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!hasdesign) {
|
|
|
|
@ -397,7 +722,185 @@ public class AutoTransToolDialog extends AbstractAIFDialog {
|
|
|
|
|
String dongtai = ExcelUtil.getStringCellValue(row.getCell(dongtaicol-1));
|
|
|
|
|
String kcds = ExcelUtil.getStringCellValue(row.getCell(kcdscol2-1));
|
|
|
|
|
System.out.println("id:"+id+" svpps:"+svpps+" fcc:"+fcc+" fccdes:"+fccdes+" dongtai:"+dongtai+" kcds:"+kcds);
|
|
|
|
|
|
|
|
|
|
String key = id + "|"+fccdes;
|
|
|
|
|
if(!DesignPartBeanMap.containsKey(key)) {
|
|
|
|
|
DesignPartBean bean = new DesignPartBean();
|
|
|
|
|
bean.setDongtai(dongtai);
|
|
|
|
|
bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setKCDS(kcds);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
DesignPartBeanMap.put(key, bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void readRuleExcel(File excelfile) {
|
|
|
|
|
Workbook work = null;
|
|
|
|
|
try(InputStream is = new FileInputStream(excelfile);){
|
|
|
|
|
if (excelfile.getAbsolutePath().endsWith(".xls"))
|
|
|
|
|
work = new HSSFWorkbook(is);
|
|
|
|
|
else {
|
|
|
|
|
work = new XSSFWorkbook(is);
|
|
|
|
|
}
|
|
|
|
|
//读取特殊工艺规则sheet
|
|
|
|
|
Sheet sheet = work.getSheet("特殊工艺规则");
|
|
|
|
|
System.out.println("特殊工艺规则");
|
|
|
|
|
if(sheet != null) {
|
|
|
|
|
int count = sheet.getPhysicalNumberOfRows();
|
|
|
|
|
for(int i = 1; i < count ;i++) {
|
|
|
|
|
Row row = sheet.getRow(i);
|
|
|
|
|
String svpps = ExcelUtil.getStringCellValue(row.getCell(1));
|
|
|
|
|
String fcc = ExcelUtil.getStringCellValue(row.getCell(2));
|
|
|
|
|
String fccdes = ExcelUtil.getStringCellValue(row.getCell(0));
|
|
|
|
|
String dongtai = ExcelUtil.getStringCellValue(row.getCell(3));
|
|
|
|
|
String resourceName = ExcelUtil.getStringCellValue(row.getCell(4));
|
|
|
|
|
System.out.println("svpps:"+svpps+" fcc:"+fcc+" fccdes:"+fccdes+" dongtai:"+dongtai+" resourceName:"+resourceName);
|
|
|
|
|
CustRuleBean bean = new CustRuleBean();
|
|
|
|
|
bean.setDongtai(dongtai);
|
|
|
|
|
bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setResourceName(resourceName);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
processrules.add(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("没有特殊工艺规则sheet页");
|
|
|
|
|
}
|
|
|
|
|
Sheet sheet2 = work.getSheet("电动工具新型号");
|
|
|
|
|
System.out.println("电动工具新型号");
|
|
|
|
|
if(sheet2 != null) {
|
|
|
|
|
int count = sheet2.getPhysicalNumberOfRows();
|
|
|
|
|
for(int i = 1; i < count ;i++) {
|
|
|
|
|
Row row = sheet2.getRow(i);
|
|
|
|
|
String svpps = ExcelUtil.getStringCellValue(row.getCell(1));
|
|
|
|
|
String fcc = ExcelUtil.getStringCellValue(row.getCell(2));
|
|
|
|
|
String fccdes = ExcelUtil.getStringCellValue(row.getCell(0));
|
|
|
|
|
String dongtai = ExcelUtil.getStringCellValue(row.getCell(3));
|
|
|
|
|
String resourceType = ExcelUtil.getStringCellValue(row.getCell(4));
|
|
|
|
|
System.out.println("svpps:"+svpps+" fcc:"+fcc+" fccdes:"+fccdes+" dongtai:"+dongtai+" resourceType:"+resourceType);
|
|
|
|
|
CustRuleBean bean = new CustRuleBean();
|
|
|
|
|
bean.setDongtai(dongtai);
|
|
|
|
|
bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setResourceType(resourceType);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
autotoolrules.add(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("没有电动工具新型号sheet页");
|
|
|
|
|
}
|
|
|
|
|
//Tightenrules
|
|
|
|
|
Sheet sheet3 = work.getSheet("拧紧性质");
|
|
|
|
|
System.out.println("拧紧性质");
|
|
|
|
|
if(sheet3 != null) {
|
|
|
|
|
int count = sheet3.getPhysicalNumberOfRows();
|
|
|
|
|
for(int i = 1; i < count ;i++) {
|
|
|
|
|
Row row = sheet3.getRow(i);
|
|
|
|
|
String svpps = ExcelUtil.getStringCellValue(row.getCell(1));
|
|
|
|
|
// String fcc = ExcelUtil.getStringCellValue(row.getCell(2));
|
|
|
|
|
String fccdes = ExcelUtil.getStringCellValue(row.getCell(0));
|
|
|
|
|
String dongtai = ExcelUtil.getStringCellValue(row.getCell(3));
|
|
|
|
|
String resourceType = ExcelUtil.getStringCellValue(row.getCell(4));
|
|
|
|
|
System.out.println("svpps:"+svpps+" fccdes:"+fccdes+" dongtai:"+dongtai+" resourceType:"+resourceType);
|
|
|
|
|
CustRuleBean bean = new CustRuleBean();
|
|
|
|
|
bean.setDongtai(dongtai);
|
|
|
|
|
// bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setResourceType(resourceType);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
Tightenrules.add(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("没有拧紧性质sheet页");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Sheet sheet4 = work.getSheet("KCDS判定");
|
|
|
|
|
System.out.println("KCDS判定");
|
|
|
|
|
if(sheet4 != null) {
|
|
|
|
|
int count = sheet4.getPhysicalNumberOfRows();
|
|
|
|
|
for(int i = 1; i < count ;i++) {
|
|
|
|
|
Row row = sheet4.getRow(i);
|
|
|
|
|
String svpps = ExcelUtil.getStringCellValue(row.getCell(1));
|
|
|
|
|
// String fcc = ExcelUtil.getStringCellValue(row.getCell(2));
|
|
|
|
|
String fccdes = ExcelUtil.getStringCellValue(row.getCell(0));
|
|
|
|
|
// String dongtai = ExcelUtil.getStringCellValue(row.getCell(3));
|
|
|
|
|
String resourceType = ExcelUtil.getStringCellValue(row.getCell(4));
|
|
|
|
|
String KCDS = ExcelUtil.getStringCellValue(row.getCell(6));
|
|
|
|
|
System.out.println("svpps:"+svpps+" fccdes:"+fccdes+" resourceType:"+resourceType+" KCDS:"+KCDS);
|
|
|
|
|
CustRuleBean bean = new CustRuleBean();
|
|
|
|
|
// bean.setDongtai(dongtai);
|
|
|
|
|
// bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setResourceType(resourceType);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
bean.setKCDS(KCDS);
|
|
|
|
|
KCDSrules.add(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("没有KCDS判定sheet页");
|
|
|
|
|
}
|
|
|
|
|
//TightenMethodrules
|
|
|
|
|
Sheet sheet5 = work.getSheet("拧紧方式");
|
|
|
|
|
System.out.println("拧紧方式");
|
|
|
|
|
if(sheet5 != null) {
|
|
|
|
|
int count = sheet5.getPhysicalNumberOfRows();
|
|
|
|
|
for(int i = 1; i < count ;i++) {
|
|
|
|
|
Row row = sheet5.getRow(i);
|
|
|
|
|
String svpps = ExcelUtil.getStringCellValue(row.getCell(1));
|
|
|
|
|
// String fcc = ExcelUtil.getStringCellValue(row.getCell(2));
|
|
|
|
|
String fccdes = ExcelUtil.getStringCellValue(row.getCell(0));
|
|
|
|
|
String dongtai = ExcelUtil.getStringCellValue(row.getCell(3));
|
|
|
|
|
String resourceType = ExcelUtil.getStringCellValue(row.getCell(4));
|
|
|
|
|
System.out.println("svpps:"+svpps+" fccdes:"+fccdes+" dongtai:"+dongtai+" resourceType:"+resourceType);
|
|
|
|
|
CustRuleBean bean = new CustRuleBean();
|
|
|
|
|
bean.setDongtai(dongtai);
|
|
|
|
|
// bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setResourceType(resourceType);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
TightenMethodrules.add(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("没有拧紧方式sheet页");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Sheet sheet6 = work.getSheet("扭矩值判定");
|
|
|
|
|
System.out.println("扭矩值判定");
|
|
|
|
|
if(sheet6 != null) {
|
|
|
|
|
int count = sheet6.getPhysicalNumberOfRows();
|
|
|
|
|
for(int i = 1; i < count ;i++) {
|
|
|
|
|
Row row = sheet6.getRow(i);
|
|
|
|
|
String svpps = ExcelUtil.getStringCellValue(row.getCell(1));
|
|
|
|
|
// String fcc = ExcelUtil.getStringCellValue(row.getCell(2));
|
|
|
|
|
String fccdes = ExcelUtil.getStringCellValue(row.getCell(0));
|
|
|
|
|
String dongtai = ExcelUtil.getStringCellValue(row.getCell(3));
|
|
|
|
|
String resourceType = ExcelUtil.getStringCellValue(row.getCell(4));
|
|
|
|
|
String resourceName = ExcelUtil.getStringCellValue(row.getCell(5));
|
|
|
|
|
System.out.println("svpps:"+svpps+" fccdes:"+fccdes+" dongtai:"+dongtai+" resourceType:"+resourceType+" resourceName:"+resourceName);
|
|
|
|
|
CustRuleBean bean = new CustRuleBean();
|
|
|
|
|
bean.setDongtai(dongtai);
|
|
|
|
|
// bean.setFCC(fcc);
|
|
|
|
|
bean.setFCCDES(fccdes);
|
|
|
|
|
bean.setResourceType(resourceType);
|
|
|
|
|
bean.setSVPPS(svpps);
|
|
|
|
|
bean.setResourceName(resourceName);
|
|
|
|
|
Torquerules.add(bean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
System.out.println("没有扭矩值判定sheet页");
|
|
|
|
|
}
|
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
|
// TODO Auto-generated catch block
|
|
|
|
|