修改创建ECN

no-bomasyn
陈翼晖 1 year ago
parent 9f6038cca3
commit e70a1244e5

@ -25,14 +25,16 @@
<command name="校对表填写" id="com.connor.chint.yunpi.command.TestCommand"/><!-- -->
<command name="系统版本V1.11" id="com.connor.chint.sap2.projectTest.VersionCommandWh"/>
<command name="工装需求管理" id="com.connor.plm.GZXQHandler"/>
<command name="生成更改差异文件" id="com.chint.plm.createbomdifference.BomCompareComd"/>
<command name="一键提取图纸" id="com.chint.plm.extractdraw.ExtractDrawComd"/>
<command name="成本单管理" id="com.connor.plm.CostListManagement"/>
<command name="标准工序传递MOM" id="com.connor.plm.sendGXToMOM"/>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler commandId="com.chint.plm.createbomdifference.BomCompareComd" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.chint.plm.extractdraw.ExtractDrawComd" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.chint.plm.SearchSapResult.SearchSapResultComd" class="com.connor.chint.yunpi.KHandler"/>
<handler commandId="com.connor.chint.yunpi.command.TestCommand" class="com.connor.chint.yunpi.KHandler"/><!---->
<handler commandId="com.chint.plm.createEcn.CreateEcnCommond" class="com.connor.chint.yunpi.KHandler"/>
@ -65,6 +67,28 @@
</menuContribution>
<menuContribution locationURI="menu:com.connor.chint.sap2.menu.whgc?after=additions">
<!-- <command commandId = "com.chint.plm.createbomdifference.BomCompareComd" id = "com.chint.plm.createbomdifference.BomCompareComd">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.chint.plm.createbomdifference.BomCompareComd">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>-->
<command commandId = "com.connor.plm.CostListManagement" id = "com.connor.plm.CostListManagement">
<visibleWhen>
<and>
@ -452,6 +476,27 @@
</and>
</visibleWhen>
</command>
<command commandId = "com.chint.plm.extractdraw.ExtractDrawComd" id = "com.chint.plm.extractdraw.ExtractDrawComd">
<visibleWhen>
<and>
<or>
<reference definitionId="com.teamcenter.rac.ui.inMainPerspective"/>
<reference definitionId="com.teamcenter.rac.pse.inMainView"/>
</or>
<with
variable="rac_command_suppression">
<not>
<iterate
operator="or">
<equals
value="com.chint.plm.extractdraw.ExtractDrawComd">
</equals>
</iterate>
</not>
</with>
</and>
</visibleWhen>
</command>
<command commandId = "com.connor.chint.sap2.projectTest.VersionCommandWh" id = "com.connor.chint.sap2.projectTest.VersionCommandWh">
<visibleWhen>

@ -221,7 +221,7 @@ public class DetailsController {
Util.setCellValue(row1.getCell(7), 7, row1, detailsBean.getCreateTime());// BOM创建时间
Util.setCellValue(row1.getCell(8), 8, row1, detailsBean.getReturnDate());// BOM同步日期
Util.setCellValue(row1.getCell(9), 9, row1, detailsBean.getReturnTime());// BOM同步时间
Util.setCellValue(row1.getCell(9), 9, row1, detailsBean.getPlmStatus());// PLM״̬
Util.setCellValue(row1.getCell(10), 10, row1, detailsBean.getPlmStatus());// PLM״̬
}
}
// 桌面

@ -94,10 +94,10 @@ public class Test {
return val;
}
public static void main(String[] args) {
String drawNo = "1ZDB510000X";
String pattern = "1ZDB5*0000X";
System.out.println( pattern.replaceAll("\\*", ".*"));
System.out.println(Pattern.matches(pattern.replaceAll("\\*", ".*"), drawNo));
// String drawNo = "1ZDB510000X";
// String pattern = "1ZDB5*0000X";
// System.out.println( pattern.replaceAll("\\*", ".*"));
// System.out.println(Pattern.matches(pattern.replaceAll("\\*", ".*"), drawNo));
// Object[] options = {"ÊÇ","·ñ"};
// String ma = "^1ZDB5.*\\d{1,}1000X.*";
//
@ -114,11 +114,15 @@ public class Test {
// System.out.println(builder.toString());
// String substring = builder.substring(0, builder.length() - 1);
// System.out.println(substring.toString());
String itemId = "1ZDB51000X-A-00089";
String substring = itemId.substring(0,itemId.lastIndexOf("-"));
String substring2 = itemId.substring(itemId.lastIndexOf("-")+1);
System.out.println(substring);
System.out.println(substring2);
String itemId = "1ZDB51000X";
String itemId2 = "1ZDB51000X-01-000024";
String itemId3 = "1ZDB51000X-000024";
System.out.println(Pattern.matches(itemId+"-\\d{6}$", itemId3));
System.out.println(Pattern.matches(itemId+"-\\d{6}$", itemId2));
// String substring = itemId.substring(0,itemId.lastIndexOf("-"));
// String substring2 = itemId.substring(itemId.lastIndexOf("-")+1);
// System.out.println(substring);
// System.out.println(substring2);
// List<List<String>> bb = new ArrayList<List<String>>();
// List<String> b = new ArrayList<String>();
// b.add("1");

@ -18,6 +18,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.httpclient.util.URIUtil;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
@ -57,6 +58,7 @@ import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
import edu.emory.mathcs.backport.java.util.Arrays;
import javafx.application.Platform;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
@ -282,49 +284,49 @@ public class CreateEcnController extends KFXPanelController {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "1", refTableBean.getDepart(), String.valueOf(i + 1),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
for (int i = 7; i < 11; i++) {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "2", refTableBean.getDepart(), String.valueOf(i - 6),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
for (int i = 11; i < 15; i++) {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "3", refTableBean.getDepart(), String.valueOf(i - 10),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
for (int i = 15; i < 19; i++) {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "4", refTableBean.getDepart(), String.valueOf(i - 14),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
for (int i = 19; i < 24; i++) {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "5", refTableBean.getDepart(), String.valueOf(i - 18),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
for (int i = 24; i < 27; i++) {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "6", refTableBean.getDepart(), String.valueOf(i - 23),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
for (int i = 27; i < 28; i++) {
RefTableBean refTableBean = items.get(i);
String result = refTableBean.getShYes().isSelected() ? "是" : "否";
SqlUtil.write(new String[] { endCode, "7", refTableBean.getDepart(), String.valueOf(i - 26),
refTableBean.getMessage(), result, refTableBean.getUserVal(),
refTableBean.getMessage(), result, refTableBean.getUserVal() + ";" + refTableBean.getUserUUid(),
refTableBean.getCompDate().getText(), refTableBean.getMark().getText() }, insertSql);
}
} catch (Exception e) {
@ -662,9 +664,13 @@ public class CreateEcnController extends KFXPanelController {
RefTableBean refTableBean = items.get(i);
refTableBean.setCompDate(read.getString("pctime"));
refTableBean.setMark(read.getString("remark"));
refTableBean.setUserPane(read.getString("principal"));
String principal = read.getString("principal");
String[] split = principal.split(";");
if (split.length >= 2) {
refTableBean.setUserUUid(split[1]);
}
refTableBean.setUserPane(split[0]);
String result = read.getString("result");
System.out.println("refTableSql==>" + read.getString("principal"));
if (result.equals("否")) {
refTableBean.setShNo(true);
}
@ -927,14 +933,13 @@ public class CreateEcnController extends KFXPanelController {
private void addAssignAction(List<RefTableBean> refTableBeans) {
// TODO Auto-generated method stub
Button userBtn = refTableBeans.get(0).getUserBtn();
String userVal = refTableBeans.get(0).getUserVal();
assignBtnAction(userBtn, 0, 7, userVal, refTableBeans);
assignBtnAction(refTableBeans.get(7).getUserBtn(), 7, 11, refTableBeans.get(7).getUserVal(), refTableBeans);
assignBtnAction(refTableBeans.get(11).getUserBtn(), 11, 15, refTableBeans.get(11).getUserVal(), refTableBeans);
assignBtnAction(refTableBeans.get(15).getUserBtn(), 15, 19, refTableBeans.get(15).getUserVal(), refTableBeans);
assignBtnAction(refTableBeans.get(19).getUserBtn(), 19, 24, refTableBeans.get(19).getUserVal(), refTableBeans);
assignBtnAction(refTableBeans.get(24).getUserBtn(), 24, 27, refTableBeans.get(24).getUserVal(), refTableBeans);
assignBtnAction(refTableBeans.get(27).getUserBtn(), 27, 28, refTableBeans.get(27).getUserVal(), refTableBeans);
assignBtnAction(userBtn, 0, 7, refTableBeans);
assignBtnAction(refTableBeans.get(7).getUserBtn(), 7, 11, refTableBeans);
assignBtnAction(refTableBeans.get(11).getUserBtn(), 11, 15, refTableBeans);
assignBtnAction(refTableBeans.get(15).getUserBtn(), 15, 19, refTableBeans);
assignBtnAction(refTableBeans.get(19).getUserBtn(), 19, 24, refTableBeans);
assignBtnAction(refTableBeans.get(24).getUserBtn(), 24, 27, refTableBeans);
assignBtnAction(refTableBeans.get(27).getUserBtn(), 27, 28, refTableBeans);
}
/**
@ -945,14 +950,24 @@ public class CreateEcnController extends KFXPanelController {
* @param refTableBeans
* @function
*/
private void assignBtnAction(Button userBtn, int start, int end, String userVal, List<RefTableBean> refTableBeans) {
private void assignBtnAction(Button userBtn, int start, int end, List<RefTableBean> refTableBeans) {
// TODO Auto-generated method stub
userBtn.setOnAction(e -> {
try {
Map<String, String> userItemMap = getUserItemOA(userVal);
for (int i = start; i < end; i++) {
refTableBeans.get(i).setUserPane(userItemMap.keySet().iterator().next());
}
String userVal = refTableBeans.get(start).getUserVal();
String encodeQuery = URIUtil.encodeQuery(userVal);
System.out.println("setOnAction" + encodeQuery);
Map<String, String> userItemMap = getUserItemOA(encodeQuery);
Platform.runLater(() -> {
for (int i = start; i < end; i++) {
String next = userItemMap.keySet().iterator().next();
refTableBeans.get(i).setUserUUid(userItemMap.get(next));
refTableBeans.get(i).setUserPane(userVal);
}
System.out.println("setOnAction" + encodeQuery);
refTable.refresh();
});
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
@ -970,19 +985,20 @@ public class CreateEcnController extends KFXPanelController {
OkHttpClient client = new OkHttpClient();
Map<String, String> emailMap = new HashMap<>();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "Name=" + name + "&Email=");
RequestBody body = RequestBody.create(mediaType, "Email=&Name=" + name);
Request request = new Request.Builder()
.url("http://10.207.0.245:8012/Portal/Webservices/EH/EH_Q_BPM_Two_Service.asmx/GetUserItems")
.method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();
Response response = client.newCall(request).execute();
String string = response.body().string();
System.out.println("xml==>" + string);
Document document = DocumentHelper.parseText(string);
Element rootElement = document.getRootElement();
String type = rootElement.elementText("TYPE");
String message = rootElement.elementText("MESSAGE");
if (type.equals("S")) {
List<Element> elements = rootElement.elements("items");
for (Element element : elements) {
Element userItemCs = element.element("EH_HR_UserItems_CS");
String email = userItemCs.elementText("Email");

@ -22,7 +22,13 @@ public class RefTableBean {
protected Object userPane;
private TextField userText;
private Button userBtn;
private String userUUid; //记录OA回传的用户UUID
public String getUserUUid() {
return userUUid;
}
public void setUserUUid(String userUUid) {
this.userUUid = userUUid;
}
public Button getUserBtn() {
return userBtn;
}
@ -41,6 +47,7 @@ public class RefTableBean {
SimpleStringProperty userProp = (SimpleStringProperty) userPane;
return userProp.get();
}
System.out.println("userText.getText()===>"+userText.getText());
return userText.getText();
}
public void setUserPane(String val) {

@ -34,6 +34,11 @@ import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.MessageBox;
public class Util {
public static final String ZT_PROP_PBOM = "zt2_ifpbom";
public static final String ZT_VAL_PBOM = "P";
public static final String ZT_DESIGN_TYPE = "ZT2_Design3DRevision";
public static final String REPRESENTATION_FOR = "representation_for";
public static final String ZT_MATERIAL_NO = "zt2_MaterialNo";
public Connection connect(Connection conn, TCSession session) {
String[] database = session.getPreferenceService().getStringValues("database_tc");
String JdbcDriverClass = "oracle.jdbc.driver.OracleDriver";
@ -56,7 +61,23 @@ public class Util {
return conn;
}
/**
* @param string
* @return Unicode±àÂë
* @function ÖÐÎÄתUnicode
*/
public static String unicodeEncode(String string) {
char[] utfBytes = string.toCharArray();
String unicodeBytes = "";
for (int i = 0; i < utfBytes.length; i++) {
String hexB = Integer.toHexString(utfBytes[i]);
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "\\u" + hexB;
}
return unicodeBytes;
}
/**
*
* @param session

@ -22,104 +22,116 @@ import com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSData
//import io.minio.MinioClient;
public class BomToSapUtil {
//BOM全展开, Map返回的内容是 BOM行的UID和对应的子行
public static Map<String, ExpandPSData[]> getBomLineTreeNodeSOA(TCComponentBOMLine bomLine) {
// BOM全展开, Map返回的内容是 BOM行的UID和对应的子行
public static Map<String, ExpandPSData[]> getBomLineTreeNodeSOA(TCComponentBOMLine bomLine) {
// List<String> bomLineNodes = list;
//预定义BOM父子对map及ItemRev map
Map<String, ExpandPSData[]> bomLineMap = new HashMap();
try {
TCComponentItemRevision object = bomLine.getItemRevision();
String object_type = object.getType();
// 预定义BOM父子对map及ItemRev map
Map<String, ExpandPSData[]> bomLineMap = new HashMap();
try {
TCComponentItemRevision object = bomLine.getItemRevision();
String object_type = object.getType();
// if (!sparePartRevision.equals(object_type)) {
// 调用SOA方法批量展开BOM
com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService.getService(RACUIUtil.getTCSession());
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
levelInfo.parentBomLines = new TCComponentBOMLine[] {bomLine}; //输入顶层BOMLine对象
levelInfo.excludeFilter="None";
levelPref.expItemRev = false;
levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
//使用以下方法展开完整的BOM行
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService.expandPSAllLevels(levelInfo, levelPref);
if (levelResp.output.length > 0){
//将BOM构建成uid父子对关系
for (ExpandPSAllLevelsOutput data : levelResp.output) {
ExpandPSData[] children = data.children;
TCComponentBOMLine parentBomLine = (TCComponentBOMLine) data.parent.bomLine;
bomLineMap.put(parentBomLine.getUid(), children);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return bomLineMap;
}
public static List<TCComponentBOMLine> listBoms(TCComponentBOMLine bomLine) {
// 调用SOA方法批量展开BOM
com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService
.getService(RACUIUtil.getTCSession());
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
levelInfo.parentBomLines = new TCComponentBOMLine[] { bomLine }; // 输入顶层BOMLine对象
levelInfo.excludeFilter = "None";
levelPref.expItemRev = false;
levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
// 使用以下方法展开完整的BOM行
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService
.expandPSAllLevels(levelInfo, levelPref);
if (levelResp.output.length > 0) {
// 将BOM构建成uid父子对关系
for (ExpandPSAllLevelsOutput data : levelResp.output) {
ExpandPSData[] children = data.children;
TCComponentBOMLine parentBomLine = (TCComponentBOMLine) data.parent.bomLine;
bomLineMap.put(parentBomLine.getUid(), children);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return bomLineMap;
}
public static List<TCComponentBOMLine> listBoms(TCComponentBOMLine bomLine) {
// List<String> bomLineNodes = list;
//预定义BOM父子对map及ItemRev map
List<TCComponentBOMLine> listBoms = new ArrayList<>();
try {
TCComponentItemRevision object = bomLine.getItemRevision();
String object_type = object.getType();
com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService.getService(RACUIUtil.getTCSession());
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
levelInfo.parentBomLines = new TCComponentBOMLine[] {bomLine}; //输入顶层BOMLine对象
levelInfo.excludeFilter="None";
levelPref.expItemRev = false;
levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
//使用以下方法展开完整的BOM行
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService.expandPSAllLevels(levelInfo, levelPref);
if (levelResp.output.length > 0){
//将BOM构建成uid父子对关系
for (ExpandPSAllLevelsOutput data : levelResp.output) {
TCComponentBOMLine parentBomLine = (TCComponentBOMLine) data.parent.bomLine;
listBoms.add(parentBomLine);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listBoms;
}
public static List<TCComponentItemRevision> getBomLineTreeNodeSOA2(TCComponentBOMLine bomLine) {
// 预定义BOM父子对map及ItemRev map
List<TCComponentBOMLine> listBoms = new ArrayList<>();
try {
TCComponentItemRevision object = bomLine.getItemRevision();
String object_type = object.getType();
com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService
.getService(RACUIUtil.getTCSession());
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
levelInfo.parentBomLines = new TCComponentBOMLine[] { bomLine }; // 输入顶层BOMLine对象
levelInfo.excludeFilter = "None";
levelPref.expItemRev = false;
levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
// 使用以下方法展开完整的BOM行
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService
.expandPSAllLevels(levelInfo, levelPref);
if (levelResp.output.length > 0) {
// 将BOM构建成uid父子对关系
for (ExpandPSAllLevelsOutput data : levelResp.output) {
TCComponentBOMLine parentBomLine = (TCComponentBOMLine) data.parent.bomLine;
listBoms.add(parentBomLine);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listBoms;
}
/**
* @param bomLine
* @return BOM
* @function BOM
*/
public static List<TCComponentItemRevision> getBomLineTreeNodeSOA2(TCComponentBOMLine bomLine) {
// List<String> bomLineNodes = list;
//预定义BOM父子对map及ItemRev map
List<TCComponentItemRevision> bomLineMap = new ArrayList<TCComponentItemRevision>();
Map<String, TCComponentItemRevision> bomLineItemRevMap = new HashMap();
try {
TCComponentItemRevision object = bomLine.getItemRevision();
String object_type = object.getType();
// 预定义BOM父子对map及ItemRev map
List<TCComponentItemRevision> bomLineMap = new ArrayList<TCComponentItemRevision>();
Map<String, TCComponentItemRevision> bomLineItemRevMap = new HashMap();
try {
TCComponentItemRevision object = bomLine.getItemRevision();
String object_type = object.getType();
// if (!sparePartRevision.equals(object_type)) {
// 调用SOA方法批量展开BOM
com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService.getService(RACUIUtil.getTCSession());
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
levelInfo.parentBomLines = new TCComponentBOMLine[] {bomLine}; //输入顶层BOMLine对象
levelInfo.excludeFilter="None";
levelPref.expItemRev = false;
levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
//使用以下方法展开完整的BOM行
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService.expandPSAllLevels(levelInfo, levelPref);
if (levelResp.output.length > 0){
//将BOM构建成uid父子对关系
for (ExpandPSAllLevelsOutput data : levelResp.output) {
ExpandPSData[] children = data.children;
for(ExpandPSData child:children) {
TCComponentItemRevision itemRevOfBOMLine = child.itemRevOfBOMLine;
if(!bomLineMap.contains(itemRevOfBOMLine)) {
bomLineMap.add(itemRevOfBOMLine);
}
}
// 调用SOA方法批量展开BOM
com.teamcenter.services.rac.cad._2007_01.StructureManagement structureService = com.teamcenter.services.rac.cad.StructureManagementService
.getService(RACUIUtil.getTCSession());
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo levelInfo = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsInfo();
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref levelPref = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsPref();
levelInfo.parentBomLines = new TCComponentBOMLine[] { bomLine }; // 输入顶层BOMLine对象
levelInfo.excludeFilter = "None";
levelPref.expItemRev = false;
levelPref.info = new com.teamcenter.services.rac.cad._2007_01.StructureManagement.RelationAndTypesFilter[0];
// 使用以下方法展开完整的BOM行
com.teamcenter.services.rac.cad._2007_01.StructureManagement.ExpandPSAllLevelsResponse levelResp = structureService
.expandPSAllLevels(levelInfo, levelPref);
if (levelResp.output.length > 0) {
// 将BOM构建成uid父子对关系
for (ExpandPSAllLevelsOutput data : levelResp.output) {
ExpandPSData[] children = data.children;
for (ExpandPSData child : children) {
TCComponentItemRevision itemRevOfBOMLine = child.itemRevOfBOMLine;
if (!bomLineMap.contains(itemRevOfBOMLine)) {
bomLineMap.add(itemRevOfBOMLine);
}
}
// TCComponentBOMLine parentBomLine = (TCComponentBOMLine) data.parent.bomLine;
// bomLineMap.put(parentBomLine.getUid(), children);
}
//将BOMLine对应的版本对象构建成uid对照map
}
// 将BOMLine对应的版本对象构建成uid对照map
// for(int i=0;i<levelResp.serviceData.sizeOfPlainObjects();i++){
// TCComponent obj = (TCComponent) levelResp.serviceData.getPlainObject(i);
// TCComponentItemRevision itemrev = null;
@ -129,8 +141,8 @@ public class BomToSapUtil {
////// bomLineItemRevMap.put(itemrev.getUid(),itemrev);
//// }
// }
//继续补充过滤和添加bomLineNodes
}
// 继续补充过滤和添加bomLineNodes
}
// }
// else{
// //ÅúÁ¿»ñÈ¡ÊôÐÔ·½·¨
@ -142,13 +154,14 @@ public class BomToSapUtil {
// String bomLineName = object_name + "-" + object_no + "-" + mate_code;
// bomLineNodes.add(bomLineName);
// }
} catch (Exception e) {
e.printStackTrace();
}
return bomLineMap;
}
public static void browse2(String url) throws Exception {
} catch (Exception e) {
e.printStackTrace();
}
return bomLineMap;
}
public static void browse2(String url) throws Exception {
Desktop desktop = Desktop.getDesktop();
if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(url);

@ -299,20 +299,16 @@ public class BomSendSapKjController {
new SAPMessageUtil("", "DBOM转EBOM存在异常物料,请检查:\n" + call.toString()).show();
}else {
MessageBox.post("BOM数据推送完成..","提示",2);
if(comp!=null) {
comp.setVisible(false);
}
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(comp!=null) {
comp.setVisible(false);
}
}
}
// if(flag) {
// MessageBox.post("BOM数据推送完成..","提示",2);
// }
} catch (Exception e) {
// TODO Auto-generated catch block

Loading…
Cancel
Save