@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>chint_wuhan</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -0,0 +1,4 @@
|
||||
/com/
|
||||
/mes/
|
||||
/nc/
|
||||
/plm/
|
@ -0,0 +1,260 @@
|
||||
package com.connor.chint.yunpi.command;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
//import com.connor.chint.sap2.sap.SAPPushBOMBean;
|
||||
//import com.connor.chint.sap2.sap_by.SAPZZDialogController;
|
||||
import com.teamcenter.rac.aif.kernel.AIFComponentContext;
|
||||
import com.teamcenter.rac.kernel.TCComponent;
|
||||
import com.teamcenter.rac.kernel.TCComponentItem;
|
||||
import com.teamcenter.rac.kernel.TCComponentItemRevision;
|
||||
import com.teamcenter.rac.kernel.TCException;
|
||||
|
||||
public class ZxjcBean extends SAPPushBOMBean {
|
||||
public static final String TYPE_FACTNO = "ZT2_FactoryNo";
|
||||
public static final String REL_PART_FACTNO = "ZT2_FactoryNumber";
|
||||
private int index;
|
||||
public TCComponentItemRevision part;
|
||||
public TCComponentItem factoryNo;
|
||||
public TCComponentItemRevision zzDesignRev = null;
|
||||
public TCComponent[] factoryNos;
|
||||
public String materialNo;
|
||||
//出厂编号
|
||||
public String ccbh;
|
||||
public String getCcbh() {
|
||||
return ccbh;
|
||||
}
|
||||
|
||||
public void setCcbh(String ccbh) {
|
||||
this.ccbh = ccbh;
|
||||
}
|
||||
|
||||
public TCComponentItemRevision getZzDesignRev() {
|
||||
return zzDesignRev;
|
||||
}
|
||||
|
||||
public void setZzDesignRev(TCComponentItemRevision zzDesignRev) {
|
||||
this.zzDesignRev = zzDesignRev;
|
||||
}
|
||||
public String getMaterialNo() {
|
||||
return materialNo;
|
||||
}
|
||||
|
||||
public void setMaterialNo(String materialNo) {
|
||||
this.materialNo = materialNo;
|
||||
}
|
||||
public int getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
public void setIndex(int index) {
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public ZxjcBean(TCComponentItemRevision part, int index) {
|
||||
this.index = index;
|
||||
this.part = part;
|
||||
try {
|
||||
getZZDesign(this.part);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
public ZxjcBean(TCComponentItemRevision part, int index,String dy) {
|
||||
this.index = index;
|
||||
this.part = part;
|
||||
// try {
|
||||
// getZZDesign(this.part);
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
private TCComponentItemRevision getZZDesign(TCComponentItemRevision part) throws Exception {
|
||||
try {
|
||||
TCComponent[] facts = part.getRelatedComponents(REL_PART_FACTNO);
|
||||
int len = facts.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
String type = facts[i].getType();
|
||||
System.out.println(">> 找到子对象:" + facts[i] + "|" + type);
|
||||
if (TYPE_FACTNO.equals(type)) {
|
||||
// factNo = facts[i].getStringProperty("item_id");//出厂编码
|
||||
this.factoryNo = (TCComponentItem) facts[i];
|
||||
AIFComponentContext contexts[] = factoryNo.whereReferencedByTypeRelation(
|
||||
new String[] { "ZT2_Design3DRevision" }, new String[] { "ZT2_FactoryNumber" });
|
||||
Map<TCComponentItem, List<TCComponentItemRevision>> items2 = new HashMap<TCComponentItem, List<TCComponentItemRevision>>(
|
||||
10);
|
||||
for (int j = 0; j < contexts.length; j++) {
|
||||
String type2 = contexts[j].getComponent().getType();
|
||||
String name = contexts[j].getComponent().getProperty("object_name");
|
||||
System.out.println(contexts[j] + "->type:" + type2);
|
||||
// if (name.contains("总装")) { // || name.contains("变压器")
|
||||
TCComponentItemRevision pRev = (TCComponentItemRevision) contexts[j].getComponent();
|
||||
TCComponentItem item = pRev.getItem();
|
||||
if (items2.containsKey(item)) {
|
||||
items2.get(item).add(pRev);
|
||||
} else {
|
||||
List<TCComponentItemRevision> revs = new ArrayList<TCComponentItemRevision>();
|
||||
revs.add(pRev);
|
||||
items2.put(item, revs);
|
||||
}
|
||||
/*
|
||||
* zzDesignRev =(TCComponentItemRevision) contexts[j].getComponent();
|
||||
* if(isLastRev(zzDesignRev)) { //zztydh =
|
||||
* contexts[j].getComponent().getProperty("item_id"); break; } zzDesignRev=null;
|
||||
*/
|
||||
// }
|
||||
}
|
||||
if (items2.size() > 0) {
|
||||
List<TCComponentItemRevision> cZZRevs = new ArrayList<TCComponentItemRevision>();
|
||||
addLastRevisions(items2, cZZRevs);
|
||||
if (cZZRevs.size() > 0) {
|
||||
zzDesignRev = cZZRevs.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (TCException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void addLastRevisions(Map<TCComponentItem, List<TCComponentItemRevision>> items,
|
||||
List<TCComponentItemRevision> cParts) throws TCException {
|
||||
Iterator<Entry<TCComponentItem, List<TCComponentItemRevision>>> iterator = items.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Entry<TCComponentItem, List<TCComponentItemRevision>> it = iterator.next();
|
||||
List<TCComponentItemRevision> revs = it.getValue();
|
||||
// System.out.println("item["+it.getKey()+"]已发布版本个数:"+revs.size());
|
||||
if (revs.size() == 1) {
|
||||
cParts.add(revs.get(0));
|
||||
continue;
|
||||
}
|
||||
if (revs.size() > 1) {
|
||||
TCComponentItemRevision max_Rev = null;
|
||||
String s = "";
|
||||
;
|
||||
int index = -1;
|
||||
for (int j = 0, len2 = revs.size(); j < len2; j++) {
|
||||
String item_id = revs.get(j).getProperty("item_revision_id");
|
||||
if (s.isEmpty()) {
|
||||
s = item_id;
|
||||
max_Rev = revs.get(j);
|
||||
for (int k = 0; k < s.length(); k++) {
|
||||
if (s.charAt(k) >= '0' && s.charAt(k) <= '9') {
|
||||
index = k;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
String temp = item_id;
|
||||
if (index != -1) {
|
||||
if (temp.substring(0, index).compareTo(s.substring(0, index)) > 0) {
|
||||
s = temp;
|
||||
max_Rev = revs.get(j);
|
||||
} else if (temp.substring(0, index).compareTo(s.substring(0, index)) == 0) {
|
||||
String s1 = s.substring(index);
|
||||
String temp1 = temp.substring(index);
|
||||
int min = Math.min(s1.length(), temp1.length());
|
||||
for (int k = 0; k < min; k++) {
|
||||
if (temp1.charAt(k) > s1.charAt(k)) {
|
||||
s = temp;
|
||||
max_Rev = revs.get(j);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (temp1.length() > min) {
|
||||
s = temp;
|
||||
max_Rev = revs.get(j);
|
||||
}
|
||||
|
||||
}
|
||||
} else if (temp.compareTo(s) > 0) {
|
||||
s = temp;
|
||||
max_Rev = revs.get(j);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
cParts.add(max_Rev);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Object[] getRowDataZxjc() throws Exception {
|
||||
String name = part.getStringProperty("object_name");
|
||||
TCComponent[] facts = part.getRelatedComponents(REL_PART_FACTNO);
|
||||
int len = facts == null ? 0 : facts.length;
|
||||
System.out.println("获取出厂编号:" + part);
|
||||
String factNo = "";
|
||||
for (int i = 0; i < len; i++) {
|
||||
String type = facts[i].getType();
|
||||
System.out.println(">> 找到子对象:" + facts[i] + "|" + type);
|
||||
factoryNos = facts;
|
||||
if (TYPE_FACTNO.equals(type)) {
|
||||
factNo = facts[i].getStringProperty("item_id");
|
||||
this.factoryNo = (TCComponentItem) facts[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
//获取图纸id
|
||||
String tzid = "";
|
||||
TCComponent tzRev = part.getRelatedComponent("TC_Is_Represented_By");
|
||||
if(tzRev != null) {
|
||||
tzid = tzRev.getStringProperty("item_id");
|
||||
}
|
||||
|
||||
//获取产成品数量
|
||||
String zt2_Quantity = part.getStringProperty("zt2_Quantity");
|
||||
String zt2_site = part.getStringProperty("zt2_Site");
|
||||
String zt2_tankNo = part.getStringProperty("zt2_TankNo");
|
||||
// return new Object[] {true,index,zt2_site,zt2_tankNo,name,this,factNo};
|
||||
return new Object[] { true, index, zt2_site, zt2_tankNo, name, this, factNo,tzid,zt2_Quantity};
|
||||
}
|
||||
|
||||
|
||||
public Object[] getZYKGRowData() throws Exception {
|
||||
String name = part.getStringProperty("object_name");
|
||||
String zt2_site = part.getStringProperty("zt2_Site");
|
||||
String zt2_tankNo = part.getStringProperty("zt2_TankNo");
|
||||
System.out.println("->" + Arrays.toString(new Object[] { true, index, zt2_site, zt2_tankNo, name, this,
|
||||
getZt2_SapBomState(), getUserName(), getZDATE() }));
|
||||
return new Object[] { true, index, zt2_site, zt2_tankNo, name, this, getZt2_SapBomState(), getUserName(),
|
||||
getZDATE() };
|
||||
// return new Object[] {true,index,zt2_site,zt2_tankNo,name,this};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
try {
|
||||
return part == null ? "" : part.getStringProperty("zt2_MaterialNo");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public TCComponentItemRevision getPart() {
|
||||
return part;
|
||||
}
|
||||
|
||||
public void setPart(TCComponentItemRevision part) {
|
||||
this.part = part;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,154 @@
|
||||
package com.connor.chint.yunpi.command;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.swing.AbstractCellEditor;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.table.TableCellEditor;
|
||||
import javax.swing.text.JTextComponent;
|
||||
|
||||
import com.connor.chint.sap2.util.KUtil;
|
||||
import com.connor.chint.sap2.util.POIUtil;
|
||||
import com.connor.chint.sap2.util.ProgressBar;
|
||||
import com.teamcenter.rac.util.MessageBox;
|
||||
|
||||
public class ZxjcCellEditor extends AbstractCellEditor implements TableCellEditor {
|
||||
|
||||
private static final long serialVersionUID = -5118171189856914639L;
|
||||
private JTable t_part;
|
||||
private JTextComponent jtf;
|
||||
private ZxjcFram dialog;
|
||||
|
||||
|
||||
public ZxjcCellEditor(ZxjcFram dialog) {
|
||||
this.dialog = dialog;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getCellEditorValue() {
|
||||
jtf.selectAll();
|
||||
return jtf.getText();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
|
||||
jtf = new JTextField();
|
||||
t_part = table;
|
||||
jtf.setText("");
|
||||
final int selectRow = row;
|
||||
final int col = column;
|
||||
final String dh = (String) table.getValueAt(row, 2);
|
||||
ProgressBar pb = new ProgressBar(dialog, new Dimension(300, 50));
|
||||
try {
|
||||
|
||||
if (value != null) {
|
||||
jtf.setText(String.valueOf(value));
|
||||
jtf.selectAll();
|
||||
|
||||
if (column == 1) {
|
||||
jtf.setEditable(false);
|
||||
}
|
||||
|
||||
|
||||
jtf.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
|
||||
int code = e.getKeyCode();
|
||||
int i = jtf.getCaretPosition();
|
||||
final String text = jtf.getText();
|
||||
if (code == KeyEvent.VK_LEFT) {
|
||||
System.out.println("触发修改2");
|
||||
if (KUtil.isEmpty(text) || i == 0) {
|
||||
switch (col) {
|
||||
case 2:
|
||||
if (selectRow > 0) {
|
||||
setTableEditting(selectRow - 1, 7);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
Pattern pattern = Pattern.compile("[0-9]*");
|
||||
if (!pattern.matcher(text).matches() || POIUtil.getIntValue(text) < 1) {
|
||||
MessageBox.post(dialog, "第" + (selectRow + 1) + "行数量请输入正整数", "", 2);
|
||||
} else {
|
||||
setTableEditting(selectRow, 3);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 7:
|
||||
setTableEditting(selectRow, col - 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (code == KeyEvent.VK_RIGHT) {
|
||||
// 没有文本的时候 或者光标在最右边的时候
|
||||
if (KUtil.isEmpty(text) || i == text.length()) {
|
||||
switch (col) {
|
||||
case 3:
|
||||
setTableEditting(selectRow, 6);
|
||||
break;
|
||||
case 7:
|
||||
if (selectRow != t_part.getRowCount() - 1 && selectRow > 0) {
|
||||
setTableEditting(selectRow + 1, 2);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
setTableEditting(selectRow, col + 1);
|
||||
break;
|
||||
case 6:
|
||||
// String value = (String) t_part.getValueAt(selectRow, col);
|
||||
Pattern pattern = Pattern.compile("[0-9]*");
|
||||
if (!pattern.matcher(text).matches() || POIUtil.getIntValue(text) < 1) {
|
||||
MessageBox.post(dialog, "第" + (selectRow + 1) + "行数量请输入正整数", "", 2);
|
||||
} else {
|
||||
setTableEditting(selectRow, col + 1);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
pb.disposeDialog();
|
||||
e.printStackTrace();
|
||||
MessageBox.post(dialog, "异常:" + e.getMessage(), "", 2);
|
||||
return null;
|
||||
}
|
||||
|
||||
return jtf;
|
||||
}
|
||||
|
||||
public void setTableEditting(int row, int col) {
|
||||
// t_part.clearSelection();
|
||||
t_part.changeSelection(row, col, false, false);
|
||||
t_part.editCellAt(row, col, null);
|
||||
// System.out.println("第一次:"+edit_row+";"+edit_col);
|
||||
Component editor = t_part.getEditorComponent();
|
||||
if (editor != null) {
|
||||
// editor.requestFocusInWindow();
|
||||
editor.requestFocus();
|
||||
Component c = editor.getComponentAt(0, 0);
|
||||
if (c != null && c instanceof JTextComponent) {
|
||||
JTextComponent jtc = (JTextComponent) c;
|
||||
String value = jtc.getText();
|
||||
|
||||
if (!KUtil.isEmpty(value)) {
|
||||
jtc.setCaretPosition(value.length());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.connor.chint.yunpi.command;
|
||||
|
||||
import com.connor.chint.yunpi.KCommand;
|
||||
import com.teamcenter.rac.aif.AbstractAIFApplication;
|
||||
|
||||
public class ZxjcCommand extends KCommand {
|
||||
|
||||
public ZxjcCommand(AbstractAIFApplication app, String commandId, String actionInfo) {
|
||||
super(app, commandId, actionInfo);
|
||||
|
||||
try {
|
||||
|
||||
this.setRunnable(new ZxjcFram(app));
|
||||
}catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue