Merge pull request '1、变更界面,影响分析责任人,清空人员后,点击指派,增加弹框:请输入用户名' (#19) from ldy into main

Reviewed-on: http://yunpi.tpddns.cn:3000/ZT_CODE/chint_wuhan/pulls/19
main
李冬阳 11 months ago
commit 736c63cb9d

@ -97,7 +97,9 @@ public class ChooseUuidDialog extends AbstractAIFDialog {
return; return;
} }
for (int i = rows[0]; i < rows[1]; i++) { for (int i = rows[0]; i < rows[1]; i++) {
//TODO lidy20240716更改通知单影响分析 指派人员之前记录用户uid现在记录域名即接口中EMail字段并截取@前的内容
refTableBeans.get(i).setUserUUid("" + datas[row][5]); refTableBeans.get(i).setUserUUid("" + datas[row][5]);
// refTableBeans.get(i).setUserUUid("" + datas[row][2].substring(0, datas[row][2].indexOf("@")));
refTableBeans.get(i).setUserPane("" + datas[row][0]); refTableBeans.get(i).setUserPane("" + datas[row][0]);
} }
refTable.refresh(); refTable.refresh();

@ -201,11 +201,7 @@ public class CreateEcnController extends KFXPanelController {
private void createClick(ActionEvent event) throws Exception { private void createClick(ActionEvent event) throws Exception {
if (ecnId.getText().isEmpty()) { if (ecnId.getText().isEmpty()) {
// MessageBox.post("请先指派变更单ID", "提示", MessageBox.ERROR); // MessageBox.post("请先指派变更单ID", "提示", MessageBox.ERROR);
Alert alert = new Alert(AlertType.INFORMATION); showAlertBox("请先指派变更单ID", "提示", AlertType.INFORMATION);
alert.setTitle("提示");
alert.setHeaderText("请先指派变更单ID");
//alert.setContentText("导入完成");
alert.showAndWait();
return; return;
} }
//TODO lidy20240520检查“影响分析”中的责任人列是否都为空值。如果是则不允许创建 //TODO lidy20240520检查“影响分析”中的责任人列是否都为空值。如果是则不允许创建
@ -222,20 +218,12 @@ public class CreateEcnController extends KFXPanelController {
} }
if(check) { if(check) {
// MessageBox.post("当前变更单没有选择会签人,请选择会签人", "提示", MessageBox.ERROR); // MessageBox.post("当前变更单没有选择会签人,请选择会签人", "提示", MessageBox.ERROR);
Alert alert = new Alert(AlertType.INFORMATION); showAlertBox("当前变更单没有选择会签人,请选择会签人", "提示", AlertType.INFORMATION);
alert.setTitle("提示");
alert.setHeaderText("当前变更单没有选择会签人,请选择会签人");
//alert.setContentText("导入完成");
alert.showAndWait();
return; return;
} }
String date = changeDate.getEditor().getText(); String date = changeDate.getEditor().getText();
if(date == null || date.isEmpty()) { if(date == null || date.isEmpty()) {
Alert alert = new Alert(AlertType.INFORMATION); showAlertBox("更改实施日期不允许为空", "提示", AlertType.INFORMATION);
alert.setTitle("提示");
alert.setHeaderText("更改实施日期不允许为空");
//alert.setContentText("导入完成");
alert.showAndWait();
return; return;
} }
String changeName = "临时更改通知单"; String changeName = "临时更改通知单";
@ -382,11 +370,7 @@ public class CreateEcnController extends KFXPanelController {
frame.dispose(); frame.dispose();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Alert alert = new Alert(AlertType.ERROR); showAlertBox("" + e.getMessage(), "错误", AlertType.ERROR);
//alert.setTitle("信息");
//alert.setHeaderText("这是一个信息对话框");
alert.setContentText("" + e.getMessage());
alert.showAndWait();
} finally { } finally {
SqlUtil.freeAll(); SqlUtil.freeAll();
} }
@ -399,7 +383,7 @@ public class CreateEcnController extends KFXPanelController {
* @param changeName excel * @param changeName excel
*/ */
private void createOrReplace(TCComponentDataset dataset, File file, String changeName) { private void createOrReplace(TCComponentDataset dataset, File file, String changeName) {
//TODO 20240227大幅修改excel // 20240227大幅修改excel
FileInputStream fis = null; FileInputStream fis = null;
FileOutputStream fos = null; FileOutputStream fos = null;
try { try {
@ -862,6 +846,9 @@ public class CreateEcnController extends KFXPanelController {
if (split.length >= 2) { if (split.length >= 2) {
refTableBean.setUserUUid(split[1]); refTableBean.setUserUUid(split[1]);
} }
if(split[0].equals("null"))
refTableBean.setUserPane("");
else
refTableBean.setUserPane(split[0]); refTableBean.setUserPane(split[0]);
String result = read.getString("result"); String result = read.getString("result");
if (result.equals("否")) { if (result.equals("否")) {
@ -1016,7 +1003,7 @@ public class CreateEcnController extends KFXPanelController {
tc_wipTreat.prefWidthProperty().bind(tableView.widthProperty().multiply(0.10)); tc_wipTreat.prefWidthProperty().bind(tableView.widthProperty().multiply(0.10));
tableView.setRowFactory(tv -> { tableView.setRowFactory(tv -> {
//TODO 设置行高 // 设置行高
TableRow<EcnBean> row = new TableRow<>(); TableRow<EcnBean> row = new TableRow<>();
row.setPrefHeight(100); row.setPrefHeight(100);
return row; return row;
@ -1156,6 +1143,10 @@ public class CreateEcnController extends KFXPanelController {
userBtn.setOnAction(e -> { userBtn.setOnAction(e -> {
try { try {
String userVal = refTableBeans.get(start).getUserVal(); String userVal = refTableBeans.get(start).getUserVal();
if(userVal == null || userVal.isEmpty() || userVal.equals("null")) {
showAlertBox("请输入用户名", "提示", AlertType.INFORMATION);
return;
}
String encodeQuery = URIUtil.encodeQuery(userVal); String encodeQuery = URIUtil.encodeQuery(userVal);
System.out.println("setOnAction" + encodeQuery); System.out.println("setOnAction" + encodeQuery);
String[][] datas = getUserItemOA(encodeQuery); String[][] datas = getUserItemOA(encodeQuery);
@ -1164,7 +1155,9 @@ public class CreateEcnController extends KFXPanelController {
if(datas.length == 1) { if(datas.length == 1) {
Platform.runLater(() -> { Platform.runLater(() -> {
for (int i = start; i < end; i++) { for (int i = start; i < end; i++) {
//TODO lidy20240716更改通知单影响分析 指派人员之前记录用户uid现在记录域名即接口中EMail字段并截取@前的内容
refTableBeans.get(i).setUserUUid(datas[0][5]); refTableBeans.get(i).setUserUUid(datas[0][5]);
// refTableBeans.get(i).setUserUUid(datas[0][2].substring(0, datas[0][2].indexOf("@")));
refTableBeans.get(i).setUserPane(userVal); refTableBeans.get(i).setUserPane(userVal);
} }
refTable.refresh(); refTable.refresh();
@ -1189,6 +1182,7 @@ public class CreateEcnController extends KFXPanelController {
} catch (Exception e1) { } catch (Exception e1) {
// Auto-generated catch block // Auto-generated catch block
e1.printStackTrace(); e1.printStackTrace();
showAlertBox("指派失败:" + e1, "提示", AlertType.ERROR);
} }
}); });
} }
@ -1199,7 +1193,7 @@ public class CreateEcnController extends KFXPanelController {
* @throws Exception * @throws Exception
* @function OA9ID * @function OA9ID
*/ */
private String[][] getUserItemOA(String name) throws Exception {//TODO 调用OA接口 private String[][] getUserItemOA(String name) throws Exception {// 调用OA接口
OkHttpClient client = new OkHttpClient(); OkHttpClient client = new OkHttpClient();
String url = session.getPreferenceService().getStringValues("CHINT_OAUserID_RUL")[0]; String url = session.getPreferenceService().getStringValues("CHINT_OAUserID_RUL")[0];
System.out.println("url==>" + url); System.out.println("url==>" + url);
@ -1238,7 +1232,8 @@ public class CreateEcnController extends KFXPanelController {
datas[i][5] = userItemCs.elementText("ObjectID"); datas[i][5] = userItemCs.elementText("ObjectID");
} }
} else { } else {
MessageBox.post("指派失败:" + message, "提示", 2); // MessageBox.post("指派失败:" + message, "提示", 2);
showAlertBox("指派失败:" + message, "提示", AlertType.ERROR);
} }
// Element element = body.element("MT_MATERIAL_BOP_REQ"); // Element element = body.element("MT_MATERIAL_BOP_REQ");
// Element INTERGRATIONLIST = element.addElement("INTERGRATIONLIST"); // Element INTERGRATIONLIST = element.addElement("INTERGRATIONLIST");
@ -1399,5 +1394,18 @@ public class CreateEcnController extends KFXPanelController {
} }
} }
/**
* javafx
*
* @param msg
* @param title
* @param type
*/
private void showAlertBox(String msg, String title, AlertType type) {
Alert alert = new Alert(type);
alert.setTitle(title);
alert.setHeaderText(msg);
//alert.setContentText("导入完成");
alert.showAndWait();
}
} }

@ -3,12 +3,8 @@ package com.chint.plm.createEcn;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ChangeListener; import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue; import javafx.beans.value.ObservableValue;
import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.CheckBox; import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane; import javafx.scene.layout.FlowPane;
@ -51,6 +47,8 @@ public class RefTableBean {
return userText.getText(); return userText.getText();
} }
public void setUserPane(String val) { public void setUserPane(String val) {
if(val == null)
return;
if (userPane instanceof SimpleStringProperty) { if (userPane instanceof SimpleStringProperty) {
SimpleStringProperty userProp = (SimpleStringProperty) userPane; SimpleStringProperty userProp = (SimpleStringProperty) userPane;
userProp.setValue(val); userProp.setValue(val);

@ -253,10 +253,19 @@ public class KjController {
//遍历获取BOM新ID //遍历获取BOM新ID
List<TCComponentBOMLine> useLines = new ArrayList<TCComponentBOMLine>(); List<TCComponentBOMLine> useLines = new ArrayList<TCComponentBOMLine>();
createId(kjBomLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 1); createId(kjBomLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 1);
System.out.println(kjIdMap.toString()); System.out.println("kjIdMap==>" + kjIdMap.toString());
System.out.println("builder==>" + builder.toString());
if(builder.length() > 0) { if(builder.length() > 0) {
// MessageBox.post(builder.toString(), "提示",2); // MessageBox.post(builder.toString(), "提示",2);
String[] msgs = builder.toString().split("");
builder.setLength(0);
for(int i = 0; i < msgs.length; i++) {
builder.append(msgs[i]).append("");
if(i % 4 == 3) {
builder.append("\n");
}
}
Object[] options = { "是", "否" }; Object[] options = { "是", "否" };
comp.setVisible(false); comp.setVisible(false);
builder.append("是否要继续生成."); builder.append("是否要继续生成.");
@ -272,33 +281,41 @@ public class KjController {
//开始克隆BOM //开始克隆BOM
cloneOrUpdate(session, kjBomLine, copyLines, useLines); cloneOrUpdate(session, kjBomLine, copyLines, useLines);
//添加到文件夹 //添加到文件夹
System.out.println("oldkjIdMap==>" + oldkjIdMap.toString());
for(TCComponentItemRevision rev : oldkjIdMap.keySet()) { for(TCComponentItemRevision rev : oldkjIdMap.keySet()) {
TCComponentItem find = oldkjIdMap.get(rev); TCComponentItem find = oldkjIdMap.get(rev);
String id = find.getProperty("item_id"); String id = find.getProperty("item_id");
String[] split = id.split("-"); String[] split = id.split("-");
System.out.println("id==>" + id); System.out.println("id1==>" + id);
if(fMap.containsKey(split[0])) { if(fMap.containsKey(split[0])) {
TCComponentFolder tcComponentFolder = fMap.get(split[0]); TCComponentFolder tcComponentFolder = fMap.get(split[0]);
try { try {
tcComponentFolder.add("contents", find); tcComponentFolder.add("contents", find);
}catch(Exception e) { }catch(Exception e) {
if(!e.getMessage().contains("存在于目标文件夹中"))
e.printStackTrace();
} }
} }
} }
System.out.println("nameUser==>" + nameUser.toString()); System.out.println("nameUser==>" + nameUser.toString());
System.out.println("fMap==>"+nameUser.toString()); System.out.println("fMap==>" + fMap.toString());
for(TCComponentItemRevision rev : kjIdMap.keySet()) { for(TCComponentItemRevision rev : kjIdMap.keySet()) {
String id = kjIdMap.get(rev); String id = kjIdMap.get(rev);
TCComponentItem find = ccomponentitemtype.findItems(id)[0]; TCComponentItem[] finds = ccomponentitemtype.findItems(id);
if(finds == null || finds.length == 0) {
System.out.println(id + "对象未找到");
continue;
}
TCComponentItem find = finds[0];
String[] split = id.split("-"); String[] split = id.split("-");
System.out.println("id==>"+split[0]); System.out.println("id2==>" + split[0]);
if(fMap.containsKey(split[0])) { if(fMap.containsKey(split[0])) {
TCComponentFolder tcComponentFolder = fMap.get(split[0]); TCComponentFolder tcComponentFolder = fMap.get(split[0]);
try { try {
tcComponentFolder.add("contents", find); tcComponentFolder.add("contents", find);
}catch(Exception e) { }catch(Exception e) {
if(!e.getMessage().contains("存在于目标文件夹中"))
e.printStackTrace();
} }
} }
if(nameUser.containsKey(split[0])) { if(nameUser.containsKey(split[0])) {
@ -325,9 +342,14 @@ public class KjController {
} }
TCComponentBOMLine newTopline = window.setWindowTopLine(find, find.getLatestItemRevision(),null, null); TCComponentBOMLine newTopline = window.setWindowTopLine(find, find.getLatestItemRevision(),null, null);
//如果存在已经有的框架BOM对象遍历BOM然后替换再进行下面操作 //如果存在已经有的框架BOM对象遍历BOM然后替换再进行下面操作
System.out.println(byqCCPFromProject.toString()); System.out.println("byqCCPFromProject==>" + byqCCPFromProject.toString());
if(byqCCPFromProject.size()>0) { if(byqCCPFromProject.size()>0) {
try {
find.getLatestItemRevision().add("representation_for", byqCCPFromProject); find.getLatestItemRevision().add("representation_for", byqCCPFromProject);
}catch(Exception e) {
if(!e.getMessage().contains("存在于目标文件夹中"))
e.printStackTrace();
}
} }
List<ClassProperty> propList = new ArrayList<ClassProperty>(); List<ClassProperty> propList = new ArrayList<ClassProperty>();
sendToClass(find.getUid(), "ICM230101", objectToJson(propList)); sendToClass(find.getUid(), "ICM230101", objectToJson(propList));
@ -346,6 +368,8 @@ public class KjController {
TCComponentBOMLine qgdBomline = window2.setWindowTopLine(tqqgdItem, tqqgdItem.getLatestItemRevision(), null, null); TCComponentBOMLine qgdBomline = window2.setWindowTopLine(tqqgdItem, tqqgdItem.getLatestItemRevision(), null, null);
AIFComponentContext[] children = qgdBomline.getChildren(); AIFComponentContext[] children = qgdBomline.getChildren();
//遍历物料提前请购单 根据备注添加BOM到对应位置 //遍历物料提前请购单 根据备注添加BOM到对应位置
//TODO lidy20240710创建框架BOM中功能中的从提前请购组件BOM中抓取成分搭建进生成的框架BOM
//需要将抓取的物料明细在复制后增加注释信息BOM行属性数据来源bl_occ_zt2_wlsource写入“提前请购单”
for(int i = 0; i < children.length; i++) { for(int i = 0; i < children.length; i++) {
TCComponentBOMLine wlLine = (TCComponentBOMLine) children[i].getComponent(); TCComponentBOMLine wlLine = (TCComponentBOMLine) children[i].getComponent();
TCComponentItem item = wlLine.getItem(); TCComponentItem item = wlLine.getItem();
@ -359,16 +383,23 @@ public class KjController {
System.out.println(objName + "gg"); System.out.println(objName + "gg");
if(!object_name.equals("") && bomBeans.contains(new BomBean(object_name))) { if(!object_name.equals("") && bomBeans.contains(new BomBean(object_name))) {
BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean(object_name))); BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean(object_name)));
bomBean.bomLine.add(wlLine2, false); if(checkSource(bomBean.bomLine, wlLine2))
continue;
bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "提前请购单");
bomBean.bomLine.save(); bomBean.bomLine.save();
}else if(object_name.equals("") && objName.contains("硅钢条料")) { }else if(object_name.equals("") && objName.contains("硅钢条料")) {
if(bomBeans.contains(new BomBean("硅钢片"))) { if(bomBeans.contains(new BomBean("硅钢片"))) {
BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("硅钢片"))); BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("硅钢片")));
bomBean.bomLine.add(wlLine2, false); if(checkSource(bomBean.bomLine, wlLine2))
continue;
bomBean.bomLine.add(wlLine2, false).setProperty("bl_occ_zt2_wlsource", "提前请购单");
bomBean.bomLine.save(); bomBean.bomLine.save();
} }
}else { }else {
if(checkSource(newTopline, wlLine2))
continue;
TCComponentBOMLine add = newTopline.add(wlLine2, false); TCComponentBOMLine add = newTopline.add(wlLine2, false);
add.setProperty("bl_occ_zt2_wlsource", "提前请购单");
System.out.println(add); System.out.println(add);
newTopline.save(); newTopline.save();
} }
@ -379,17 +410,24 @@ public class KjController {
String objName = wlLine.getItem().getProperty("object_name"); String objName = wlLine.getItem().getProperty("object_name");
if(!object_name.equals("") && bomBeans.contains(new BomBean(object_name))) { if(!object_name.equals("") && bomBeans.contains(new BomBean(object_name))) {
BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean(object_name))); BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean(object_name)));
bomBean.bomLine.add(wlLine, false); if(checkSource(bomBean.bomLine, wlLine))
continue;
bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "提前请购单");
bomBean.bomLine.save(); bomBean.bomLine.save();
}else if(object_name.equals("") && objName.equals("硅钢条料")) { }else if(object_name.equals("") && objName.equals("硅钢条料")) {
if(bomBeans.contains(new BomBean("硅钢片"))) { if(bomBeans.contains(new BomBean("硅钢片"))) {
BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("硅钢片"))); BomBean bomBean = bomBeans.get(bomBeans.indexOf(new BomBean("硅钢片")));
bomBean.bomLine.add(wlLine, false); if(checkSource(bomBean.bomLine, wlLine))
continue;
bomBean.bomLine.add(wlLine, false).setProperty("bl_occ_zt2_wlsource", "提前请购单");
bomBean.bomLine.save(); bomBean.bomLine.save();
} }
} }
else { else {
if(checkSource(newTopline, wlLine))
continue;
TCComponentBOMLine add = newTopline.add(wlLine, false); TCComponentBOMLine add = newTopline.add(wlLine, false);
add.setProperty("bl_occ_zt2_wlsource", "提前请购单");
System.out.println(add); System.out.println(add);
newTopline.save(); newTopline.save();
} }
@ -410,7 +448,7 @@ public class KjController {
TCAccessControlService accessControlService = session.getTCAccessControlService(); TCAccessControlService accessControlService = session.getTCAccessControlService();
TCComponentUser user = session.getUser(); TCComponentUser user = session.getUser();
accessControlService.grantPrivilege(dataset, user, new String[]{"WRITE","READ"}); accessControlService.grantPrivilege(dataset, user, new String[]{"WRITE","READ"});
KUtil.setByPass(false); // KUtil.setByPass(false);
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@ -529,13 +567,15 @@ public class KjController {
if(cRev.getType().contains("ZT2_Design3D")) { if(cRev.getType().contains("ZT2_Design3D")) {
String item_id = cRev.getProperty("item_id"); String item_id = cRev.getProperty("item_id");
String replaceAll = item_id.replaceAll(kjBs, projectDh); String replaceAll = item_id.replaceAll(kjBs, projectDh);
if(type == 0) { /*if(type == 0) {
useLines.add(cLine); useLines.add(cLine);
oldkjIdMap.put(cRev, cLine.getItem());
createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 0); createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 0);
}else { }else {
}*/
TCComponentItem[] finds = ccomponentitemtype.findItems(replaceAll); TCComponentItem[] finds = ccomponentitemtype.findItems(replaceAll);
if(finds != null && finds.length > 0) { if(finds != null && finds.length > 0) {
builder.append("µ±Ç°IDÒѾ­´æÔÚ:").append(replaceAll).append("\n"); builder.append("当前ID已经存在:").append(replaceAll).append("");
findMap.put(item_id, finds[0]); findMap.put(item_id, finds[0]);
useLines.add(cLine); useLines.add(cLine);
oldkjIdMap.put(cRev, finds[0]); oldkjIdMap.put(cRev, finds[0]);
@ -544,7 +584,6 @@ public class KjController {
kjIdMap.put(cRev, replaceAll); kjIdMap.put(cRev, replaceAll);
createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 1); createId(cLine, bomLineTreeNodeSOA, builder, ccomponentitemtype, findMap, useLines, 1);
} }
}
}else { }else {
copyLines.add(cLine); copyLines.add(cLine);
} }
@ -552,7 +591,7 @@ public class KjController {
} }
//批量复制 //批量复制
private void cloneOrUpdate(TCSession session, TCComponentBOMLine puid, private void cloneOrUpdate(TCSession session, TCComponentBOMLine parentLine,
List<TCComponentBOMLine> bomLines, List<TCComponentBOMLine> useLines) { List<TCComponentBOMLine> bomLines, List<TCComponentBOMLine> useLines) {
com.teamcenter.services.rac.structuremanagement.StructureService service = com.teamcenter.services.rac.structuremanagement.StructureService service =
com.teamcenter.services.rac.structuremanagement.StructureService.getService(session); com.teamcenter.services.rac.structuremanagement.StructureService.getService(session);
@ -571,17 +610,19 @@ public class KjController {
projectInfo.assign = false; projectInfo.assign = false;
projectInfo.validate = false; projectInfo.validate = false;
infos[0].projects = projectInfo; infos[0].projects = projectInfo;
TCComponentRevisionRule revisionRule = puid.window().getRevisionRule(); TCComponentRevisionRule revisionRule = parentLine.window().getRevisionRule();
infos[0].revRule = revisionRule; infos[0].revRule = revisionRule;
TCComponentItemRevision[] revs = new TCComponentItemRevision[] { puid.getItemRevision() }; TCComponentItemRevision[] revs = new TCComponentItemRevision[] { parentLine.getItemRevision() };
infos[0].topItemRevs = revs; infos[0].topItemRevs = revs;
System.out.println("Save class Partial bomLine -- " + bomLines.size()); System.out.println("Save class Partial bomLine -- " + bomLines.size());
List<CloneStructureSaveAsIn> saveList = new ArrayList<CloneStructureSaveAsIn>(); List<CloneStructureSaveAsIn> saveList = new ArrayList<CloneStructureSaveAsIn>();
for(TCComponentBOMLine subLine : bomLines) { for(TCComponentBOMLine subLine : bomLines) {
CloneStructureSaveAsIn dataMap = null; // for(int i = 0; i < bomLines.size(); i++) {
// TCComponentBOMLine subLine = bomLines.get(i);
TCComponentItem item = subLine.getItem(); TCComponentItem item = subLine.getItem();
CloneStructureSaveAsIn dataMap = null;
if(item.getType().equals("ZT2_Design3D")) { if(item.getType().equals("ZT2_Design3D")) {
// subLine.replace // subLine.replace
dataMap = getDataMap(subLine, 0, session); dataMap = getDataMap(subLine, 0, session);
@ -600,7 +641,7 @@ public class KjController {
infos[0].dataMap = array; infos[0].dataMap = array;
naming.autogen = true; naming.autogen = true;
infos[0].defaultName = naming; infos[0].defaultName = naming;
infos[0].topLines = new TCComponentBOMLine[] { puid }; infos[0].topLines = new TCComponentBOMLine[] { parentLine };
// TCComponentBOMLine.get // TCComponentBOMLine.get
// puid.getr // puid.getr
} catch (Exception e1) { } catch (Exception e1) {
@ -620,26 +661,26 @@ public class KjController {
System.out.println("Save class Partial Error -- " + cloneStructure.serviceData.sizeOfUpdatedObjects()); System.out.println("Save class Partial Error -- " + cloneStructure.serviceData.sizeOfUpdatedObjects());
if(cloneStructure.serviceData.sizeOfUpdatedObjects()>0) { if(cloneStructure.serviceData.sizeOfUpdatedObjects()>0) {
TCComponent updatedObject = cloneStructure.serviceData.getUpdatedObject(0); TCComponent updatedObject = cloneStructure.serviceData.getUpdatedObject(0);
System.out.println(session.componentToString(updatedObject)); System.out.println(session.componentToString(updatedObject) + " >> " + updatedObject);
} }
for(int i = 0; i < cloneStructure.serviceData.sizeOfCreatedObjects(); i++) { // for(int i = 0; i < cloneStructure.serviceData.sizeOfCreatedObjects(); i++) {
TCComponent plainObject = cloneStructure.serviceData.getCreatedObject(i); // TCComponent plainObject = cloneStructure.serviceData.getCreatedObject(i);
System.out.println(session.componentToString(plainObject)); // System.out.println(session.componentToString(plainObject));
} // }
for(int i = 0; i < cloneStructure.serviceData.sizeOfPlainObjects(); i++) { // for(int i = 0; i < cloneStructure.serviceData.sizeOfPlainObjects(); i++) {
TCComponent plainObject = cloneStructure.serviceData.getPlainObject(i); // TCComponent plainObject = cloneStructure.serviceData.getPlainObject(i);
System.out.println(session.componentToString(plainObject)); // System.out.println(session.componentToString(plainObject));
} // }
} catch (Exception e) { } catch (Exception e) {
// Auto-generated catch block // Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
} }
private CloneStructureSaveAsIn getDataMap(TCComponentBOMLine child, int type, TCSession session) throws Exception { private CloneStructureSaveAsIn getDataMap(TCComponentBOMLine child, int type, TCSession session) throws Exception {
TCComponentItemRevision rev = child.getItemRevision(); TCComponentItemRevision rev = child.getItemRevision();
com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureSaveAsIn dataMap = CloneStructureSaveAsIn dataMap = new CloneStructureSaveAsIn();
new com.teamcenter.services.rac.structuremanagement._2014_10.Structure.CloneStructureSaveAsIn();
Map<String, String[]> newItemRevinfo = new HashMap<>(); Map<String, String[]> newItemRevinfo = new HashMap<>();
dataMap.cloneOperationType = type; dataMap.cloneOperationType = type;
// dataMap.newItemRevinfo = // dataMap.newItemRevinfo =
@ -687,4 +728,21 @@ public class KjController {
dataMap.newItemRevinfo = newItemRevinfo; dataMap.newItemRevinfo = newItemRevinfo;
return dataMap; return dataMap;
} }
/**
* BOMBOMBOMBOMBOM
*
* @param parent
* @param target
* @return BOMtrue
* @throws Exception
*/
private boolean checkSource(TCComponentBOMLine parent, TCComponentBOMLine target) throws Exception {
String id = target.getProperty("bl_item_item_id");
for(AIFComponentContext c : parent.getChildren()) {
TCComponentBOMLine child = (TCComponentBOMLine) c.getComponent();
if(child.getProperty("bl_item_item_id").equals(id) && child.getProperty("bl_occ_zt2_wlsource").equals("提前请购单"))
return true;
}
return false;
}
} }

@ -133,5 +133,21 @@ public class BOMDifCellEditor extends AbstractCellEditor implements TableCellEdi
return null; return null;
} }
/**
*
* @param index
* @param add truefalse
*/
public void changeRow(int index, boolean add) {
if(add) {
JComboBox<String> jcom = new JComboBox<String>();
JTextField jtf = new JTextField();
jcom_subclass.add(index, jcom);
jtf_subclass.add(index, jtf);
}else {
jcom_subclass.remove(index);
jtf_subclass.remove(index);
}
}
} }

@ -25,6 +25,8 @@ import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelEvent;
@ -38,6 +40,7 @@ import com.connor.chint.sap2.util.KUtil;
import com.connor.chint.sap2.util.ProgressBar; import com.connor.chint.sap2.util.ProgressBar;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.AbstractAIFDialog;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.ListOfValuesInfo; import com.teamcenter.rac.kernel.ListOfValuesInfo;
import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponent;
@ -57,11 +60,13 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
private static final long serialVersionUID = 1190944518442503011L; private static final long serialVersionUID = 1190944518442503011L;
public static final String[] HEADER = { "序号", "更改类别", "父件物料编码", "父件物料描述", "旧物料编码", "旧物料描述", "旧物料数量", "新物料编码", public static final String[] HEADER = { "序号", "更改类别", "父件物料编码", "父件物料描述", "旧物料编码", "旧物料描述", "旧物料数量", "新物料编码",
"新物料描述", "新物料数量", "原因大类", "原因小类", "处理类型" }; "新物料描述", "新物料数量", "原因大类", "原因小类", "处理类型", "差异来源" };
public static final int[] HEADERWIDTH = new int[] { 50, 80, 120, 220, 120, 180, 80, 120, 180, 80, 100, 100, 100 }; public static final int[] HEADERWIDTH = new int[] { 50, 80, 120, 220, 120, 180, 80, 120, 180, 80, 100, 100, 100, 80 };
private AbstractAIFApplication app; private AbstractAIFApplication app;
private TCSession session; private TCSession session;
private JButton btn_add = new JButton("增加行");
private JButton btn_del = new JButton("删除行");
private final JButton btn_ok = new JButton("确定"); private final JButton btn_ok = new JButton("确定");
private final JButton btn_cel = new JButton("取消"); private final JButton btn_cel = new JButton("取消");
@ -81,8 +86,9 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
private Map<String, String> map_class = new HashMap<>(8); // 大类 private Map<String, String> map_class = new HashMap<>(8); // 大类
private Map<String, String> map_subclass = new HashMap<>(64); // 小类 private Map<String, String> map_subclass = new HashMap<>(64); // 小类
private BOMDifCellEditor cellEditor;
// 多选编辑 // 多选编辑
JPanel selectPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); private JPanel selectPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
private JComboBox<String> box_class = new JComboBox<String>(); private JComboBox<String> box_class = new JComboBox<String>();
private JComboBox<String> box_subClass = new JComboBox<String>(); private JComboBox<String> box_subClass = new JComboBox<String>();
private JComboBox<String> box_processType = new JComboBox<String>(); private JComboBox<String> box_processType = new JComboBox<String>();
@ -100,8 +106,8 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
private void initUI() { private void initUI() {
this.setTitle("BOM差异表"); this.setTitle("BOM差异表");
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.setPreferredSize(new Dimension(1400, 400)); this.setPreferredSize(new Dimension(1400, 600));
this.setMinimumSize(new Dimension(1300, 300)); this.setMinimumSize(new Dimension(1300, 500));
this.add(BorderLayout.NORTH, getSelectPanel()); this.add(BorderLayout.NORTH, getSelectPanel());
this.add(BorderLayout.CENTER, getTablePanel()); this.add(BorderLayout.CENTER, getTablePanel());
this.add(BorderLayout.SOUTH, getButtonPanel()); this.add(BorderLayout.SOUTH, getButtonPanel());
@ -363,7 +369,11 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
@Override @Override
public boolean isCellEditable(int row, int column) { public boolean isCellEditable(int row, int column) {
// Auto-generated method stub // Auto-generated method stub
if (column > 9) { if (column == 13) {
return false;
} else if (column > 9) {
return true;
} else if(column != 0 && getValueAt(row, 13).equals("手工增加")) {
return true; return true;
} }
return false; return false;
@ -396,10 +406,9 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
jcm_reason.addItem(list.get(i).getKey()); jcm_reason.addItem(list.get(i).getKey());
box_class.addItem(list.get(i).getKey()); box_class.addItem(list.get(i).getKey());
} }
t_part.getColumnModel().getColumn(10).setCellEditor(new DefaultCellEditor(jcm_reason)); colModel.getColumn(10).setCellEditor(new DefaultCellEditor(jcm_reason));
t_part.getModel().addTableModelListener(new TableModelListener() { t_part.getModel().addTableModelListener(new TableModelListener() {
@Override @Override
public void tableChanged(TableModelEvent e) { public void tableChanged(TableModelEvent e) {
int col = e.getColumn(); int col = e.getColumn();
@ -413,6 +422,13 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
} }
} }
}); });
//TODO 更改类别列为下拉框
Object[] values = map_indexs.keySet().toArray();
JComboBox<String> changeType = new JComboBox<String>();
changeType.addItem("");
for(Object s : values)
changeType.addItem(s.toString());
colModel.getColumn(1).setCellEditor(new DefaultCellEditor(changeType));
System.out.println("processType:" + processType); System.out.println("processType:" + processType);
if (processType.size() > 0) { if (processType.size() > 0) {
@ -426,12 +442,71 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
} }
Collections.sort(list2); Collections.sort(list2);
JComboBox<String> jcom_Type = new JComboBox<String>(list2.toArray(new String[size])); JComboBox<String> jcom_Type = new JComboBox<String>(list2.toArray(new String[size]));
t_part.getColumnModel().getColumn(12).setCellEditor(new DefaultCellEditor(jcom_Type)); colModel.getColumn(12).setCellEditor(new DefaultCellEditor(jcom_Type));
for (String processType : list2) { for (String processType : list2) {
box_processType.addItem(processType); box_processType.addItem(processType);
} }
} }
for(int i = 0; i < t_part.getColumnCount(); i++) {
if(i == 2 || i == 4 || i == 7) {
//输入父件物料编码、旧物料编码、新物料编码后,物料描述通过查询自动填写
TableCellEditor descEditor = new DefaultCellEditor(new JTextField());
descEditor.addCellEditorListener(new CellEditorListener() {
public void editingStopped(ChangeEvent e) {
// 编辑完成后的操作
try {
int row = t_part.getSelectedRow(), col = t_part.getSelectedColumn();
String val = "" + ((TableCellEditor)e.getSource()).getCellEditorValue();
System.out.println("编辑完成: " + row + "," + col + "==" + val);
HashMap<String, String> fields = new HashMap<>();
fields.put("materialno", val);
AIFComponentContext[] parts = KUtil.query(session, "chint_query_material", fields).toArray();
if(parts.length == 0)
return;
TCComponentItemRevision part = (TCComponentItemRevision) parts[0].getComponent();
t_part.setValueAt(part.getProperty("object_desc"), row, col + 1);
}catch(Exception e1) {
e1.printStackTrace();
MessageBox.post(CreateBOMDifferenceDialogWh.this, "错误:" + e1, "警告", MessageBox.ERROR);
}
}
public void editingCanceled(ChangeEvent e) {
// 编辑取消后的操作
System.out.println("编辑取消: " + t_part.getSelectedRow() + "," + t_part.getSelectedColumn() + "==" + ((TableCellEditor)e.getSource()).getCellEditorValue());
}
});
colModel.getColumn(i).setCellEditor(descEditor);
}else if(i == 6 || i == 9) {
TableCellEditor descEditor = new DefaultCellEditor(new JTextField());
descEditor.addCellEditorListener(new CellEditorListener() {
public void editingStopped(ChangeEvent e) {
// 编辑完成后的操作
int row = t_part.getSelectedRow(), col = t_part.getSelectedColumn();
TableCellEditor editor = ((TableCellEditor)e.getSource());
try {
String val = "" + editor.getCellEditorValue();
System.out.println("编辑完成: " + row + "," + col + "==" + val);
Double.parseDouble("" + val);
if(val.contains("d") || val.contains("D")) {
MessageBox.post(CreateBOMDifferenceDialogWh.this, "物料数量填写不符合要求", "错误", MessageBox.ERROR);
// t_part.setValueAt(e.toString(), row, col);
}
} catch (NumberFormatException e1) {
MessageBox.post(CreateBOMDifferenceDialogWh.this, "物料数量填写不符合要求", "错误", MessageBox.ERROR);
// t_part.setValueAt(e.toString(), row, col);
}
}
public void editingCanceled(ChangeEvent e) {
// 编辑取消后的操作
System.out.println("编辑取消: " + t_part.getSelectedRow() + "," + t_part.getSelectedColumn() + "==" + ((TableCellEditor)e.getSource()).getCellEditorValue());
}
});
colModel.getColumn(i).setCellEditor(descEditor);
}else if(i != 1 && i != 10 && i != 11 && i != 12) {
colModel.getColumn(i).setCellEditor(new DefaultCellEditor(new JTextField()));
}
}
JScrollPane scroll = new JScrollPane(t_part); JScrollPane scroll = new JScrollPane(t_part);
panel.add(BorderLayout.CENTER, scroll); panel.add(BorderLayout.CENTER, scroll);
@ -439,18 +514,56 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
} }
private JPanel getButtonPanel() { private JPanel getButtonPanel() {
JPanel south = new JPanel(new BorderLayout());
JPanel panel = new JPanel(new FlowLayout()); JPanel panel = new JPanel(new FlowLayout());
panel.add(btn_add);
panel.add(btn_del);
panel.add(btn_ok); panel.add(btn_ok);
for (int i = 0; i < 4; i++) { // for (int i = 0; i < 4; i++) {
panel.add(new JLabel(" ")); // panel.add(new JLabel(" "));
} // }
panel.add(btn_cel); panel.add(btn_cel);
return panel; south.add(BorderLayout.WEST, new JLabel("<html>物料数量变更:只能是当前物料数量由**减少到**<br>物料新增:当前物料数量由**增加了**个 <br>物料删除物料从BOM中全部移除</html>"));
south.add(BorderLayout.CENTER, panel);
return south;
} }
private void addListener() { private void addListener() {
btn_cel.addActionListener(new ActionListener() { //TODO
btn_add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int[] rows = t_part.getSelectedRows();
if(rows.length == 0) {
tm_part.addRow(new Object[] { 0, "", "", "", "", "", "", "", "", "", "", "", "", "手工增加" });
cellEditor.changeRow(t_part.getRowCount() - 1, true);
}else {
int row = rows[rows.length - 1] + 1;
tm_part.insertRow(row, new Object[] { 0, "", "", "", "", "", "", "", "", "", "", "", "", "手工增加" });
cellEditor.changeRow(row, true);
}
refrashNo(t_part);
}
});
btn_del.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int[] rows = t_part.getSelectedRows();
if(rows.length == 0) {
MessageBox.post("请选择要删除的行", "", MessageBox.WARNING);
return;
}
for(int i = rows.length - 1; i >= 0; i--) {
if(!t_part.getValueAt(rows[i], 13).equals("手工增加"))
continue;
tm_part.removeRow(rows[i]);
cellEditor.changeRow(rows[i], false);
}
refrashNo(t_part);
}
});
btn_cel.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// Auto-generated method stub // Auto-generated method stub
@ -459,7 +572,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
}); });
// 点击OK 则将界面显示数据写入zt2_BOMEC,并挂载到更改通知单对象下 // 点击OK 则将界面显示数据写入zt2_BOMEC,并挂载到更改通知单对象下
btn_ok.addActionListener(new ActionListener() { btn_ok.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
new Thread(new Runnable() { new Thread(new Runnable() {
@ -469,6 +581,32 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
KUtil.stopTableEditing(t_part); KUtil.stopTableEditing(t_part);
// 组织数据 // 组织数据
try { try {
//删除空行
int last = HEADER.length - 1;
for(int i = t_part.getRowCount() - 1; i >= 0; i--) {
if(t_part.getValueAt(i, last).equals("自动生成"))
continue;
try {
if(!isEmpty(t_part.getValueAt(i, 4)))
Double.parseDouble("" + t_part.getValueAt(i, 6));
if(!isEmpty(t_part.getValueAt(i, 7)))
Double.parseDouble("" + t_part.getValueAt(i, 9));
} catch (NumberFormatException e) {
throw new Exception("物料数量填写不符合要求");
}
boolean del = true;
for(int j = 1; j < last; j++) {
if(!isEmpty(t_part.getValueAt(i, j))) {
del = false;
break;
}
}
if(del) {
tm_part.removeRow(i);
}
}
refrashNo(t_part);
createBOMEC(t_part.getRowCount()); createBOMEC(t_part.getRowCount());
btn_ok.setEnabled(false); btn_ok.setEnabled(false);
MessageBox.post("BOM差异表生成成功", "", 2); MessageBox.post("BOM差异表生成成功", "", 2);
@ -477,13 +615,11 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
e.printStackTrace(); e.printStackTrace();
MessageBox.post("BOM差异表生成失败:" + e.getMessage(), "", 2); MessageBox.post("BOM差异表生成失败:" + e.getMessage(), "", 2);
} }
} }
}).start(); }).start();
} }
}); });
t_part.getSelectionModel().addListSelectionListener(new ListSelectionListener() { t_part.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override @Override
public void valueChanged(ListSelectionEvent e) { public void valueChanged(ListSelectionEvent e) {
if (t_part.getSelectedRowCount() >= 2) { if (t_part.getSelectedRowCount() >= 2) {
@ -494,10 +630,8 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
} }
}); });
box_class.addItemListener(new ItemListener() { box_class.addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(ItemEvent e) { public void itemStateChanged(ItemEvent e) {
// 使Table编辑失去焦点 // 使Table编辑失去焦点
TableCellEditor tableCellEditor = t_part.getCellEditor(); TableCellEditor tableCellEditor = t_part.getCellEditor();
if (tableCellEditor != null) { if (tableCellEditor != null) {
@ -515,7 +649,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
private void setSubClassBoxValue() { private void setSubClassBoxValue() {
if (selectClassItemString != "") { if (selectClassItemString != "") {
field_subClass.setVisible(false); field_subClass.setVisible(false);
box_subClass.setVisible(true); box_subClass.setVisible(true);
box_subClass.removeAllItems(); box_subClass.removeAllItems();
@ -524,7 +657,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
for (String item : subClassMap.keySet()) { for (String item : subClassMap.keySet()) {
box_subClass.addItem(item); box_subClass.addItem(item);
} }
} else { } else {
field_subClass.setVisible(true); field_subClass.setVisible(true);
box_subClass.setVisible(false); box_subClass.setVisible(false);
@ -543,7 +675,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
}); });
box_subClass.addItemListener(new ItemListener() { box_subClass.addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(ItemEvent e) { public void itemStateChanged(ItemEvent e) {
// 使Table编辑失去焦点 // 使Table编辑失去焦点
@ -559,7 +690,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
setTableSubClassCellValue(); setTableSubClassCellValue();
selectSubClassItemString = null; selectSubClassItemString = null;
} }
} }
private void setTableSubClassCellValue() { private void setTableSubClassCellValue() {
@ -567,11 +697,9 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
for (int index : selectRowsIndex) { for (int index : selectRowsIndex) {
t_part.setValueAt(selectSubClassItemString, index, 11); t_part.setValueAt(selectSubClassItemString, index, 11);
} }
} }
}); });
box_processType.addItemListener(new ItemListener() { box_processType.addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(ItemEvent e) { public void itemStateChanged(ItemEvent e) {
// 使Table编辑失去焦点 // 使Table编辑失去焦点
@ -587,7 +715,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
setTableSubClassCellValue(); setTableSubClassCellValue();
selectProcessTypeItemString = null; selectProcessTypeItemString = null;
} }
} }
private void setTableSubClassCellValue() { private void setTableSubClassCellValue() {
@ -595,7 +722,6 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
for (int index : selectRowsIndex) { for (int index : selectRowsIndex) {
t_part.setValueAt(selectProcessTypeItemString, index, 12); t_part.setValueAt(selectProcessTypeItemString, index, 12);
} }
} }
}); });
@ -618,7 +744,7 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
} }
System.out.println("form uid:" + form.getUid()); System.out.println("form uid:" + form.getUid());
List<String> list = new ArrayList<>(rowCout); List<String> list = new ArrayList<>(rowCout);
for (int i = 0; i < 13; i++) { for (int i = 0; i < HEADER.length; i++) {
String[] values = KUtil.getColumnValues(rowCout, i, list, t_part).toArray(new String[rowCout]); String[] values = KUtil.getColumnValues(rowCout, i, list, t_part).toArray(new String[rowCout]);
System.out.println("设置值:" + "zt2_property" + (i + 1) + ";" + Arrays.toString(values)); System.out.println("设置值:" + "zt2_property" + (i + 1) + ";" + Arrays.toString(values));
switch (i) { switch (i) {
@ -697,5 +823,23 @@ public class CreateBOMDifferenceDialogWh extends AbstractAIFDialog {
// //
// return revs; // return revs;
// } // }
/**
*
*
* @param val
* @return
*/
public static boolean isEmpty(Object val) {
return val == null || ("" + val).isEmpty();
}
/**
*
*
*/
public static void refrashNo(JTable t_part) {
for(int i = 0; i < t_part.getRowCount(); i++) {
t_part.setValueAt(i + 1, i, 0);
}
}
} }

@ -5,6 +5,7 @@ import com.connor.chint.sap2.util.SAPMessageUtilFram;
import com.connor.chint.sap2.util.SAPUtil; import com.connor.chint.sap2.util.SAPUtil;
import com.connor.chint.yunpi.KCommand; import com.connor.chint.yunpi.KCommand;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine; import com.teamcenter.rac.kernel.TCComponentBOMLine;
@ -76,6 +77,14 @@ public class EbomToPCommand extends KCommand {
if(!call.toString().equals("succ")) { if(!call.toString().equals("succ")) {
new SAPMessageUtilFram("", "EBOM转PBOM存在异常物料,请检查:\n" + call.toString()).show(); new SAPMessageUtilFram("", "EBOM转PBOM存在异常物料,请检查:\n" + call.toString()).show();
}else { }else {
//lidy20240716刷新图纸最新版本的物料伪文件夹
AIFComponentContext[] designs = rev.getChildren("TC_Is_Represented_By")[0].getComponent().getChildren();
if(designs.length > 0) {
TCComponentItemRevision design = ((TCComponentItemRevision) designs[0].getComponent()).getItem().getLatestItemRevision();
TCComponent folder = (TCComponent) design.getChildren("representation_for")[0].getComponent();
folder.refresh();
design.refresh();
}
MessageBox.post("EBOM转PBOM完成","提示",2); MessageBox.post("EBOM转PBOM完成","提示",2);
} }
} catch (Exception e) { } catch (Exception e) {

Loading…
Cancel
Save