From f75edad6e73e63e6159b2612b3aa518370ec56ac Mon Sep 17 00:00:00 2001 From: "lidy@connor.net.cn" Date: Fri, 5 Jul 2024 14:10:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA/=E7=BC=96=E8=BE=91=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E9=80=9A=E7=9F=A5=E5=8D=951=E3=80=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=B6=E9=97=B4=E7=9A=84=E5=BF=85=E5=A1=AB=E6=A3=80?= =?UTF-8?q?=E6=9F=A52=E3=80=81OA=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E4=BA=BA=E9=80=89=E6=8B=A9=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- com.connor.chint.wuhan/plugin.xml | 1 - .../chint/plm/createEcn/ChooseUuidDialog.java | 120 ++++++++++++++++++ .../plm/createEcn/CreateEcnController.java | 79 ++++++++---- 3 files changed, 171 insertions(+), 29 deletions(-) create mode 100644 com.connor.chint.wuhan/src/com/chint/plm/createEcn/ChooseUuidDialog.java diff --git a/com.connor.chint.wuhan/plugin.xml b/com.connor.chint.wuhan/plugin.xml index 8c22fb6..ad54599 100644 --- a/com.connor.chint.wuhan/plugin.xml +++ b/com.connor.chint.wuhan/plugin.xml @@ -684,7 +684,6 @@ - diff --git a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/ChooseUuidDialog.java b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/ChooseUuidDialog.java new file mode 100644 index 0000000..d33401f --- /dev/null +++ b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/ChooseUuidDialog.java @@ -0,0 +1,120 @@ +package com.chint.plm.createEcn; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.List; + +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableColumnModel; + +import com.teamcenter.rac.aif.AbstractAIFDialog; +import com.teamcenter.rac.util.MessageBox; + +import javafx.scene.control.TableView; + +public class ChooseUuidDialog extends AbstractAIFDialog { + /** + * + */ + private static final long serialVersionUID = 1L; + private JTable impTable; + private DefaultTableModel impModel; + private JButton okBtn; + private JButton cancelBtn; + private TableView refTable; + private String[][] datas; + private List refTableBeans; + private int[] rows; + + public ChooseUuidDialog(CreateEcnFrame parent, TableView refTable, String[][] datas, int[] rows, List refTableBeans) { + super(parent, true); + + this.refTable = refTable; + this.datas = datas; + this.refTableBeans = refTableBeans; + this.rows = rows; + + String[] header = { "姓名", "所属部门", "邮箱", "长工号", "短工号" }; + impModel = new DefaultTableModel(header, 0); + impTable = new JTable(impModel) { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + int[] width = { 100, 850, 200, 100, 100 }; + impModel.setDataVector(datas, header); + impTable.getTableHeader().setReorderingAllowed(false); // 设置列不可移动,否则会发生类型转换错误(第三列) + impTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + impTable.setRowHeight(23); + TableColumnModel colModel = impTable.getColumnModel(); + for (int i = 0; i < width.length; i++) { + colModel.getColumn(i).setPreferredWidth(width[i]); + } + JPanel panel = new JPanel(new FlowLayout()); + okBtn = new JButton("确定"); + cancelBtn = new JButton("取消"); + panel.add(okBtn); + panel.add(cancelBtn); + + addActionListener(); + + this.setLayout(new BorderLayout()); + this.add(BorderLayout.CENTER, new JScrollPane(impTable)); + this.add(BorderLayout.SOUTH, panel); + this.setPreferredSize(new Dimension(1400, 400)); + Dimension screen = getToolkit().getScreenSize(); + setLocation((screen.width - getSize().width) / 2, (screen.height - getSize().height) / 2); + setAlwaysOnTop(true); + this.setAlwaysOnTop(true); + + } + + public void run(){ + showDialog(); + } + + private void addActionListener() { + //final Shell dialog = shell; + okBtn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + int row = impTable.getSelectedRow(); + if(row < 0) { + MessageBox.post("请选择行", "", MessageBox.WARNING); + return; + } + for (int i = rows[0]; i < rows[1]; i++) { + refTableBeans.get(i).setUserUUid("" + datas[row][5]); + refTableBeans.get(i).setUserPane("" + datas[row][0]); + } + refTable.refresh(); + dispose(); + } + }); + + cancelBtn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent arg0) { + for (int i = rows[0]; i < rows[1]; i++) { + refTableBeans.get(i).setUserUUid(""); + refTableBeans.get(i).setUserPane(""); + } + refTable.refresh(); + dispose(); + } + }); + } +} \ No newline at end of file diff --git a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java index 5c844aa..2cb4cb7 100644 --- a/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java +++ b/com.connor.chint.wuhan/src/com/chint/plm/createEcn/CreateEcnController.java @@ -11,9 +11,7 @@ import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.httpclient.util.URIUtil; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; @@ -231,6 +229,15 @@ public class CreateEcnController extends KFXPanelController { alert.showAndWait(); return; } + String date = changeDate.getEditor().getText(); + if(date == null || date.isEmpty()) { + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("提示"); + alert.setHeaderText("更改实施日期不允许为空"); + //alert.setContentText("导入完成"); + alert.showAndWait(); + return; + } String changeName = "临时更改通知单"; if (rb_formalChange.isSelected()) { changeName = "正式更改通知单"; @@ -1151,16 +1158,33 @@ public class CreateEcnController extends KFXPanelController { String userVal = refTableBeans.get(start).getUserVal(); String encodeQuery = URIUtil.encodeQuery(userVal); System.out.println("setOnAction" + encodeQuery); - Map 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(); - }); + String[][] datas = getUserItemOA(encodeQuery); + if(datas == null || datas.length == 0) + return; + if(datas.length == 1) { + Platform.runLater(() -> { + for (int i = start; i < end; i++) { + refTableBeans.get(i).setUserUUid(datas[0][5]); + refTableBeans.get(i).setUserPane(userVal); + } + refTable.refresh(); + }); + }else { + new ChooseUuidDialog(frame, refTable, datas, new int[] { start, end }, refTableBeans).showDialog(); + } + +// Map userItemMap = getUserItemOA(encodeQuery); +// System.out.println("userItemMap" + userItemMap); +// Platform.runLater(() -> { +// for (int i = start; i < end; i++) { +// String next = userItemMap.keySet().iterator().next(); +// System.out.println(i + "===" + next + ">>>" + userItemMap.get(next)); +// refTableBeans.get(i).setUserUUid(userItemMap.get(next)); +// refTableBeans.get(i).setUserPane(userVal); +// } +// System.out.println("setOnAction" + encodeQuery); +// refTable.refresh(); +// }); } catch (Exception e1) { // Auto-generated catch block @@ -1175,9 +1199,8 @@ public class CreateEcnController extends KFXPanelController { * @throws Exception * @function 调用OA接口获取用户的9位ID */ - private Map getUserItemOA(String name) throws Exception {//TODO 调用OA接口 + private String[][] getUserItemOA(String name) throws Exception {//TODO 调用OA接口 OkHttpClient client = new OkHttpClient(); - Map emailMap = new HashMap<>(); String url = session.getPreferenceService().getStringValues("CHINT_OAUserID_RUL")[0]; System.out.println("url==>" + url); @@ -1198,28 +1221,28 @@ public class CreateEcnController extends KFXPanelController { Element rootElement = document.getRootElement(); String type = rootElement.elementText("TYPE"); String message = rootElement.elementText("MESSAGE"); + String[][] datas = null; if (type.equals("S")) { + Element element = rootElement.element("items"); @SuppressWarnings("unchecked") - List elements = rootElement.elements("items"); - - for (Element element : elements) { - Element userItemCs = element.element("EH_HR_UserItems_CS"); - String email = userItemCs.elementText("Email"); - String status = userItemCs.elementText("ObjectID"); - emailMap.put(email, status); - } - if (emailMap.size() > 0) { - - } else { -// String key = emailMap.keySet().iterator().next(); -// return emailMap.get(key); + List elements = element.elements("EH_HR_UserItems_CS"); + datas = new String[elements.size()][6]; + for (int i = 0; i < elements.size(); i++) { +// Element userItemCs = element.element("EH_HR_UserItems_CS"); + Element userItemCs = elements.get(i); + datas[i][0] = userItemCs.elementText("Name"); + datas[i][1] = userItemCs.elementText("DepName"); + datas[i][2] = userItemCs.elementText("Email"); + datas[i][3] = userItemCs.elementText("Code"); + datas[i][4] = userItemCs.elementText("SourceID"); + datas[i][5] = userItemCs.elementText("ObjectID"); } } else { MessageBox.post("指派失败:" + message, "提示", 2); } // Element element = body.element("MT_MATERIAL_BOP_REQ"); // Element INTERGRATIONLIST = element.addElement("INTERGRATIONLIST"); - return emailMap; + return datas; } // 最大化