From fd63bc99fd3083eaa6bf786f64461be82ff3ad7b Mon Sep 17 00:00:00 2001 From: lijh Date: Wed, 25 Dec 2024 18:01:03 +0800 Subject: [PATCH] 20241225 --- src/com/langtech/plm/bg/QDRWDialog.java | 680 +++++++++++------- .../langtech/plm/bg/QDRWTableColorRender.java | 24 +- 2 files changed, 437 insertions(+), 267 deletions(-) diff --git a/src/com/langtech/plm/bg/QDRWDialog.java b/src/com/langtech/plm/bg/QDRWDialog.java index 5444270..fbb2b1a 100644 --- a/src/com/langtech/plm/bg/QDRWDialog.java +++ b/src/com/langtech/plm/bg/QDRWDialog.java @@ -69,7 +69,10 @@ import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentListOfValues; import com.teamcenter.rac.kernel.TCComponentListOfValuesType; +import com.teamcenter.rac.kernel.TCComponentProcessType; import com.teamcenter.rac.kernel.TCComponentProject; +import com.teamcenter.rac.kernel.TCComponentTaskTemplate; +import com.teamcenter.rac.kernel.TCComponentTaskTemplateType; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; @@ -92,7 +95,8 @@ public class QDRWDialog extends JFrame implements ActionListener { private LinkedHashMap lovPositionMap = new LinkedHashMap(); private LinkedHashMap positionFieldMap = new LinkedHashMap(); private LinkedHashMap widtheMap = new LinkedHashMap(); - //public static final int[] HEADERWIDTH = new int[] { 50, 100, 200, 200, 100, 100, 80, 80, 100, 150, 150, 150, 150,150, 150, 150, 150, 150, 150 }; + // public static final int[] HEADERWIDTH = new int[] { 50, 100, 200, 200, 100, + // 100, 80, 80, 100, 150, 150, 150, 150,150, 150, 150, 150, 150, 150 }; private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); private DefaultTableModel dtm1; private JComboBox cfdJComboBox = new JComboBox(); @@ -111,10 +115,9 @@ public class QDRWDialog extends JFrame implements ActionListener { private ArrayList canWriteColume = new ArrayList(); private ArrayList sqlField; private QDRWTableColorRender QDRWTableColorRender; - LinkedHashMap>>> valueMap; - - - public QDRWDialog(TCSession session,String pref,String taskName) { + LinkedHashMap>>> valueMap; + private Connection conn = null; + public QDRWDialog(TCSession session, String pref, String taskName) { // TODO Auto-generated constructor stub this.session = session; this.pref = pref; @@ -129,72 +132,66 @@ public class QDRWDialog extends JFrame implements ActionListener { String[] prefs = session.getPreferenceService().getStringValues(pref); if (prefs == null || prefs.length <= 0) { - MessageBox.post("首选项“"+pref+"”未配置!", "提示 ", MessageBox.INFORMATION); + MessageBox.post("首选项“" + pref + "”未配置!", "提示 ", MessageBox.INFORMATION); return; } - - + String[] split2 = prefs[0].split(";"); + for (int j = 0; j < split2.length; j++) { + String[] split3 = split2[j].split("="); + positionFieldMap.put(split3[0], j); + if (split3.length == 3) { + + if (split3[1].contains("#")) { + String[] split = split3[1].split("#"); + fieldsMap.put(split3[0], split[1]); + colorMap.put(j + 1, split3[0]); + } else { + fieldsMap.put(split3[0], split3[1]); + } + if (split3[2].contains("%")) { + String[] split4 = split3[2].split("%"); + widtheMap.put(j + 1, Integer.parseInt(split4[0])); + canWriteColume.add(j); + } else { + widtheMap.put(j + 1, Integer.parseInt(split3[2])); + } - String[] split2 = prefs[0].split(";"); - for (int j = 0; j < split2.length; j++) { - String[] split3 = split2[j].split("="); - positionFieldMap.put(split3[0],j); - if(split3.length == 3) { - - if(split3[1].contains("#")) { - String[] split = split3[1].split("#"); - fieldsMap.put(split3[0],split[1]); - colorMap.put(j+1,split3[0]); - }else { - fieldsMap.put(split3[0],split3[1]); - } - if(split3[2].contains("%")) { - String[] split4 = split3[2].split("%"); - widtheMap.put(j+1, Integer.parseInt(split4[0])); - canWriteColume.add(j); - }else { - widtheMap.put(j+1, Integer.parseInt(split3[2])); - } - - } - - - else if(split3.length == 4) { - fieldsMap.put(split3[0],split3[1]); - System.out.println("split3[2]========"+split3[2]); - if(split3[2].contains("%")) { - String[] split4 = split3[2].split("%"); - widtheMap.put(j, Integer.parseInt(split4[0])); - System.out.println("split4[0]========"+split4[0]); - canWriteColume.add(j); - }else { - widtheMap.put(j, Integer.parseInt(split3[2])); - } - lovPositionMap.put(j,split3[3]); - } - - - - } + } + + else if (split3.length == 4) { + fieldsMap.put(split3[0], split3[1]); + // System.out.println("split3[2]========" + split3[2]); + if (split3[2].contains("%")) { + String[] split4 = split3[2].split("%"); + widtheMap.put(j, Integer.parseInt(split4[0])); + // System.out.println("split4[0]========" + split4[0]); + canWriteColume.add(j); + } else { + widtheMap.put(j, Integer.parseInt(split3[2])); + } + lovPositionMap.put(j, split3[3]); + } + + } + + System.out.println("canWriteColume=====" + canWriteColume.size()); + System.out.println("fieldsMap=====" + fieldsMap); + System.out.println("positionMap=====" + lovPositionMap); + System.out.println("widtheMap=====" + widtheMap); + Collection valuesCollection = fieldsMap.values(); + // 创建一个新的列表来保存所有的值 + List valuesList = new ArrayList<>(valuesCollection); + + // 在列表的第一个位置插入新的 String 值 + valuesList.add(0, ""); + + // 如果需要,可以将列表转回集合 + Collection updatedValuesCollection = valuesList; + // 将集合转换为数组 + header = updatedValuesCollection.toArray(new String[0]); + System.out.println("header===============" + header.length); - System.out.println("canWriteColume====="+canWriteColume.size()); - System.out.println("fieldsMap====="+fieldsMap); - System.out.println("positionMap====="+lovPositionMap); - System.out.println("widtheMap====="+widtheMap); - Collection valuesCollection = fieldsMap.values(); - // 创建一个新的列表来保存所有的值 - List valuesList = new ArrayList<>(valuesCollection); - - // 在列表的第一个位置插入新的 String 值 - valuesList.add(0, ""); - - // 如果需要,可以将列表转回集合 - Collection updatedValuesCollection = valuesList; - // 将集合转换为数组 - header = updatedValuesCollection.toArray(new String[0]); - System.out.println("header==============="+header.length); - JPanel topPanel = getTopPanel(); JScrollPane pane = getTablePanel(); @@ -216,7 +213,7 @@ public class QDRWDialog extends JFrame implements ActionListener { // int y = (int) screensize.getHeight() / 2 - window.getHeight() / 2; this.setLocationRelativeTo(null); - //设置列宽 + // 设置列宽 TableColumnModel colModel = table.getColumnModel(); for (Entry map : widtheMap.entrySet()) { colModel.getColumn(map.getKey()).setPreferredWidth(map.getValue()); @@ -224,7 +221,6 @@ public class QDRWDialog extends JFrame implements ActionListener { } - public void createActionEvent() { this.ssButton.addActionListener(this); this.ckButton.addActionListener(this); @@ -237,7 +233,7 @@ public class QDRWDialog extends JFrame implements ActionListener { // TODO Auto-generated method stub JPanel topPanel = new JPanel(); topPanel.setLayout(new PropertyLayout()); - + jhksB = new DateButton(null, "yyyy-MM-dd", false, false, false); jhksB.setDate("未设置日期"); jhksS = new DateButton(null, "yyyy-MM-dd", false, false, false); @@ -247,35 +243,35 @@ public class QDRWDialog extends JFrame implements ActionListener { jhwcS = new DateButton(null, "yyyy-MM-dd", false, false, false); jhwcS.setDate("未设置日期"); topPanel.add("1.1.left.center", new JLabel("ID ")); - topPanel.add("1.2.left.center",idField); + topPanel.add("1.2.left.center", idField); topPanel.add("1.3.left.center", new JLabel(" 计划开始早于 ")); - topPanel.add("1.4.left.center",jhksB); + topPanel.add("1.4.left.center", jhksB); topPanel.add("1.5.left.center", new JLabel(" 计划开始晚于 ")); - topPanel.add("1.6.left.center",jhksS); + topPanel.add("1.6.left.center", jhksS); topPanel.add("1.7.left.center", new JLabel(" 计划完成早于 ")); - topPanel.add("1.8.left.center",jhwcB); + topPanel.add("1.8.left.center", jhwcB); topPanel.add("1.9.left.center", new JLabel(" 计划完成晚于 ")); - topPanel.add("1.10.left.center",jhwcS); + topPanel.add("1.10.left.center", jhwcS); topPanel.add("2.1.left.center", new JLabel(" ")); return topPanel; } // 查询部分 - private JPanel getBottomPanel() { - // TODO Auto-generated method stub - JPanel bottomPanel = new JPanel(); - bottomPanel.setLayout(new PropertyLayout()); - bottomPanel.add("1.1.left.center", new JLabel(" ")); - bottomPanel.add("1.2.left.center", ssButton); - bottomPanel.add("1.3.left.center", new JLabel(" ")); - bottomPanel.add("1.4.left.center", ckButton); - bottomPanel.add("1.5.left.center", new JLabel(" ")); - bottomPanel.add("1.6.left.center", qrqdButton); - bottomPanel.add("1.7.left.center", new JLabel(" ")); - bottomPanel.add("1.8.left.center", gbButton); - return bottomPanel; - } - + private JPanel getBottomPanel() { + // TODO Auto-generated method stub + JPanel bottomPanel = new JPanel(); + bottomPanel.setLayout(new PropertyLayout()); + bottomPanel.add("1.1.left.center", new JLabel(" ")); + bottomPanel.add("1.2.left.center", ssButton); + bottomPanel.add("1.3.left.center", new JLabel(" ")); + bottomPanel.add("1.4.left.center", ckButton); + bottomPanel.add("1.5.left.center", new JLabel(" ")); + bottomPanel.add("1.6.left.center", qrqdButton); + bottomPanel.add("1.7.left.center", new JLabel(" ")); + bottomPanel.add("1.8.left.center", gbButton); + return bottomPanel; + } + private JScrollPane getTablePanel() { // TODO Auto-generated method stub table = getjTable(null, null, header, null, false); @@ -284,9 +280,9 @@ public class QDRWDialog extends JFrame implements ActionListener { table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表格的自动调整模式为关闭自动调整 // table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//设置JTable的列宽随着列表内容的大小进行调整 // table.setPreferredSize(new Dimension(1200,400)); - // 设置自定义渲染器 + // 设置自定义渲染器 QDRWTableColorRender = new QDRWTableColorRender(); - table.setDefaultRenderer(Object.class, QDRWTableColorRender); + table.setDefaultRenderer(Object.class, QDRWTableColorRender); JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); table.getTableHeader().setDefaultRenderer(new CheckHeaderCellRenderer(table)); @@ -304,7 +300,7 @@ public class QDRWDialog extends JFrame implements ActionListener { // } // table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox)); // } - + SwingUtilities.invokeLater(new Runnable() { public void run() { // 添加鼠标监听器 @@ -316,22 +312,20 @@ public class QDRWDialog extends JFrame implements ActionListener { int selectColumn = table.getTableHeader().columnAtPoint(e.getPoint()); int selectedRow = table.rowAtPoint(e.getPoint()); - if (selectColumn == 0){ - Object valueAt = table.getValueAt(selectedRow, selectColumn); - if (valueAt.toString().equals("1")) { - table.setValueAt("0", selectedRow, selectColumn); - } else { - table.setValueAt("1", selectedRow, selectColumn); - } + if (selectColumn == 0) { + Object valueAt = table.getValueAt(selectedRow, selectColumn); + if (valueAt.toString().equals("1")) { + table.setValueAt("0", selectedRow, selectColumn); + } else { + table.setValueAt("1", selectedRow, selectColumn); + } } } } }); } }); - - - + pane.setPreferredSize(new Dimension(1800, 850)); pane.setViewportView(table);// 为scrollPane指定显示对象为table return pane; @@ -377,9 +371,9 @@ public class QDRWDialog extends JFrame implements ActionListener { dtm1 = new DefaultTableModel(values, titleNames) { @Override public boolean isCellEditable(int row, int column) { - if(column == 0) { + if (column == 0) { return true; - }else { + } else { return false; } } @@ -396,101 +390,199 @@ public class QDRWDialog extends JFrame implements ActionListener { if (source.equals(this.gbButton)) { dispose(); - } - else if(source.equals(this.ckButton)){ + } else if (source.equals(this.ckButton)) { int selectedRow = table.getSelectedRow(); - if(selectedRow < 0) { + if (selectedRow < 0) { MessageBox.post("请选择某一行!", "提示", 2); } - String selectId = (String)table.getValueAt(selectedRow,0); - String selectType = (String)table.getValueAt(selectedRow,1); + String selectId = (String) table.getValueAt(selectedRow, 1); + String selectType = (String) table.getValueAt(selectedRow, 2); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { - new QDRWRWFPDialog(session,selectType,selectId); - //d.setModal(true); + new QDRWRWFPDialog(session, selectType, selectId); + // d.setModal(true); } catch (Exception e) { e.printStackTrace(); } } }); - }else if(source.equals(this.qrqdButton)){ + } else if (source.equals(this.qrqdButton)) { + + String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2"); + + if (value == null || value.length == 0) { + MessageBox.post("首选项LD_dbinfo2配置有误,请检查。", "提示", 2); + return; + } else { + Collections.addAll(dateConnList, value); + } + conn = getConn(); + int count = 0; for (int i = 0; i < table.getRowCount(); i++) { if (table.getValueAt(i, 0).toString().equals("1")) { - boolean isProsess = false; + String id = table.getValueAt(i, 1).toString(); + TCComponentItemRevision rev = null; + try { + + System.out.println("id============="+id); + TCComponent[] tcComponentsById = getTCComponentsById(session,id); + + if(tcComponentsById != null && tcComponentsById.length > 0) { + System.out.println("tcComponentsById.length============="+tcComponentsById.length); + TCComponentItem item = (TCComponentItem)tcComponentsById[0]; + rev = item.getLatestItemRevision(); + } + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + LinkedHashMap>> linkedHashMap = valueMap.get(id); - for (Entry map : colorMap.entrySet()) { - String prefValue = map.getValue(); - String[] split = prefValue.split("\\."); - - } + for (Entry map : colorMap.entrySet()) { + boolean isProsess = false; + String prefValue = map.getValue(); + String[] split = prefValue.split("\\."); + ArrayList> arrayList = linkedHashMap.get(split[0]); + String RWXDSJ = ""; + String QQRW = ""; + String SFSJGG = ""; + String GGPSNR = ""; + for (int j = 0; j < arrayList.size(); j++) { + + if (arrayList.get(j).containsKey("RWXDSJ")) { + RWXDSJ = arrayList.get(j).get("RWXDSJ"); + } + if (arrayList.get(j).containsKey("QQRW")) { + QQRW = arrayList.get(j).get("QQRW"); + } + if (arrayList.get(j).containsKey("SFSJGG")) { + SFSJGG = arrayList.get(j).get("SFSJGG"); + } + + if (arrayList.get(j).containsKey("GGPSNR")) { + GGPSNR = arrayList.get(j).get("GGPSNR"); + } + } + System.out.println("RWXDSJ======="+RWXDSJ); + System.out.println("QQRW======="+QQRW); + System.out.println("SFSJGG======="+SFSJGG); + + if (RWXDSJ == null || RWXDSJ.isEmpty()) { + if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("否")) { + isProsess = true; + } else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是") + && (QQRW == null || QQRW.isEmpty())) { + isProsess = true; + } else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是") + && (QQRW != null && !QQRW.isEmpty())) { + // 找前驱任务 + ArrayList judgeList = new ArrayList(); + dgRW(linkedHashMap, QQRW,judgeList); + if(judgeList.size() == 0) { + isProsess = true; + } + } + } + + System.out.println("taskName========="+taskName); + System.out.println("isProsess========"+isProsess); + if(isProsess && taskName != null && !taskName.isEmpty() && rev != null) { + + try { + + CreateProcess(session,rev,taskName,GGPSNR,split[0],id); + + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + } + count++; } - } - + } + if (count == 0) { MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION); + if(conn != null) { + try { + conn.close(); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } return; } - }else if(source.equals(this.ssButton)){ + if(conn != null) { + try { + conn.close(); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + MessageBox.post("启动完成!", "提示 ", MessageBox.INFORMATION); + } else if (source.equals(this.ssButton)) { table.removeAll(); dtm1.setRowCount(0); String condition = ""; String ids = idField.getText(); - + String jhksBStr = jhksB.getText(); String jhksSStr = jhksS.getText(); String jhwcBStr = jhwcB.getText(); String jhwcSStr = jhwcS.getText(); - System.out.println("jhksBStr======="+jhksBStr); - - if(!jhksBStr.contains("未设置")) { - condition += "and JHKS >= '"+ jhksBStr +"' "; + System.out.println("jhksBStr=======" + jhksBStr); + + if (!jhksBStr.contains("未设置")) { + condition += "and JHKS >= '" + jhksBStr + "' "; } - - if(!jhksSStr.contains("未设置")) { - condition += "and JHKS <= '"+ jhksSStr +"' "; + + if (!jhksSStr.contains("未设置")) { + condition += "and JHKS <= '" + jhksSStr + "' "; } - - if(!jhwcBStr.contains("未设置")) { - condition += "and JHJS >= '"+ jhwcBStr +"' "; + + if (!jhwcBStr.contains("未设置")) { + condition += "and JHJS >= '" + jhwcBStr + "' "; } - - if(!jhwcSStr.contains("未设置")) { - condition += "and JHJS <= '"+ jhwcSStr +"' "; + + if (!jhwcSStr.contains("未设置")) { + condition += "and JHJS <= '" + jhwcSStr + "' "; } - - - - if(ids == null || ids.isEmpty()) { + + if (ids == null || ids.isEmpty()) { MessageBox.post("请填写条件!", "提示", 2); return; } - - if(ids != null && !ids.isEmpty()) { - if(ids.contains(";")) { + + if (ids != null && !ids.isEmpty()) { + if (ids.contains(";")) { String[] split = ids.split(";"); StringBuilder sqlIn = new StringBuilder(); sqlIn.append("("); for (int i = 0; i < split.length; i++) { - sqlIn.append("'"+split[i] +"',"); + sqlIn.append("'" + split[i] + "',"); } - //去掉最后一个, + // 去掉最后一个, sqlIn.setLength(sqlIn.length() - 1); sqlIn.append(")"); - System.out.println("sqlIn======================"+sqlIn.toString()); - condition += "and ID IN "+sqlIn.toString(); - }else { - condition += "and ID='"+ids+"' "; + System.out.println("sqlIn======================" + sqlIn.toString()); + condition += "and ID IN " + sqlIn.toString(); + } else { + condition += "and ID='" + ids + "' "; } } - - + String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2"); if (value == null || value.length == 0) { @@ -508,86 +600,88 @@ public class QDRWDialog extends JFrame implements ActionListener { sqlField.add(split[1]); } fieldsSql = fieldsSql.substring(0, fieldsSql.length() - 1); - System.out.println("fieldsSql=========="+fieldsSql); - System.out.println("condition==================="+condition); - String sqlIdString = "SELECT ID FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+condition; - System.out.println("sqlIdString========="+sqlIdString); - Connection conn = getConn(); + System.out.println("fieldsSql==========" + fieldsSql); + //System.out.println("condition===================" + condition); + String sqlIdString = "SELECT ID FROM LY_CHANGETASSKFORM_DETAILS where 1=1 " + condition; + System.out.println("sqlIdString=========" + sqlIdString); + conn = getConn(); PreparedStatement stmt = null; String selectIds = ""; String lastCondition = ""; - //查ID - try{ + // 查ID + try { stmt = conn.prepareStatement(sqlIdString); ResultSet result = stmt.executeQuery(); while (result.next()) { String id = result.getString("ID"); - if(!selectIds.contains(id)) { - selectIds+=id+";"; - } + if (!selectIds.contains(id)) { + selectIds += id + ";"; } - - if(selectIds != null && !selectIds.isEmpty()) { - if(selectIds.contains(";")) { + } + + if (selectIds != null && !selectIds.isEmpty()) { + if (selectIds.contains(";")) { String[] split = selectIds.split(";"); StringBuilder sqlIn = new StringBuilder(); sqlIn.append("("); for (int i = 0; i < split.length; i++) { - sqlIn.append("'"+split[i] +"',"); + sqlIn.append("'" + split[i] + "',"); } - //去掉最后一个, + // 去掉最后一个, sqlIn.setLength(sqlIn.length() - 1); sqlIn.append(")"); - System.out.println("sqlIn======================"+sqlIn.toString()); - lastCondition += "and ID IN "+sqlIn.toString(); - }else { - lastCondition += "and ID='"+ids+"' "; + //System.out.println("sqlIn======================" + sqlIn.toString()); + lastCondition += "and ID IN " + sqlIn.toString(); + } else { + lastCondition += "and ID='" + ids + "' "; } } } catch (SQLException e1) { e1.printStackTrace(); } - - - //存数据的map - valueMap = new LinkedHashMap>>>(); - //String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+lastCondition; - String sqlString = "SELECT * FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+lastCondition; - - System.out.println("sqlString======"+sqlString); - try{ + + // 存数据的map + valueMap = new LinkedHashMap>>>(); + // String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS + // where 1=1 "+lastCondition; + String sqlString = "SELECT * FROM LY_CHANGETASSKFORM_DETAILS where 1=1 " + lastCondition; + + System.out.println("sqlString======" + sqlString); + try { stmt = conn.prepareStatement(sqlString); ResultSet result = stmt.executeQuery(); ResultSetMetaData metaData = result.getMetaData(); - int columnCount = metaData.getColumnCount(); + int columnCount = metaData.getColumnCount(); while (result.next()) { String id = result.getString("ID"); String xh = result.getString("XH"); LinkedHashMap>> tempMap1 = null; - if(valueMap.containsKey(id)) { + if (valueMap.containsKey(id)) { tempMap1 = valueMap.get(id); - }else { - tempMap1 = new LinkedHashMap>>(); + } else { + tempMap1 = new LinkedHashMap>>(); } ArrayList> tempList = new ArrayList>(); - for (int i = 1; i <= columnCount; i++) { - // 获取列名 - String columnName = metaData.getColumnName(i); // 获取实际的列名 - - // 获取列的值 - String columnValue = result.getString(i); // 使用 getObject() 获取列的值 - LinkedHashMap fieldMap = new LinkedHashMap(); - fieldMap.put(columnName,columnValue == null? columnValue : validateAndFormatDate(columnValue)); - tempList.add(fieldMap); - } - - tempMap1.put(xh,tempList); - valueMap.put(id,tempMap1); + for (int i = 1; i <= columnCount; i++) { + // 获取列名 + String columnName = metaData.getColumnName(i); // 获取实际的列名 + + // 获取列的值 + String columnValue = result.getString(i); // 使用 getObject() 获取列的值 + LinkedHashMap fieldMap = new LinkedHashMap(); + fieldMap.put(columnName, + columnValue == null ? columnValue : validateAndFormatDate(columnValue)); + tempList.add(fieldMap); + } + + tempMap1.put(xh, tempList); + valueMap.put(id, tempMap1); } - System.out.println(valueMap.toString()); + //System.out.println(valueMap.toString()); QDRWTableColorRender.valueMap = valueMap; QDRWTableColorRender.colorMap = colorMap; - for (Entry>>> map : valueMap.entrySet()) { + for (Entry>>> map : valueMap + .entrySet()) { ArrayList tableList = new ArrayList(); tableList.add("0"); for (Entry tempMap : fieldsMap.entrySet()) { @@ -595,70 +689,69 @@ public class QDRWDialog extends JFrame implements ActionListener { String[] split = pref.split("\\."); LinkedHashMap>> value2 = map.getValue(); ArrayList> arrayList = value2.get(split[0]); - if(arrayList != null) { + if (arrayList != null) { for (int i = 0; i < arrayList.size(); i++) { LinkedHashMap linkedHashMap = arrayList.get(i); - if(linkedHashMap.containsKey(split[1])) { + if (linkedHashMap.containsKey(split[1])) { tableList.add(linkedHashMap.get(split[1])); } } } - + } dtm1.addRow(tableList.toArray(new Object[0])); } } catch (SQLException e1) { e1.printStackTrace(); } - + try { - if(stmt != null) { + if (stmt != null) { stmt.close(); } - if(conn != null) { + if (conn != null) { conn.close(); } - - + } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } - + } // 获取数据库连接 - public static Connection getConn() { - Connection conn = null; - try { - conn = DbPool.getConnection(dateConnList.get(0), dateConnList.get(1)); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return conn; + public static Connection getConn() { + Connection conn = null; + try { + conn = DbPool.getConnection(dateConnList.get(0), dateConnList.get(1)); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); } - - public String validateAndFormatDate(String input) { - // 定义输入和输出的日期格式 - DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"); - DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - - try { - // 尝试解析输入的日期时间字符串 - LocalDateTime dateTime = LocalDateTime.parse(input, inputFormatter); - - // 转换为只包含日期的LocalDate对象 - LocalDate date = dateTime.toLocalDate(); - - // 格式化结果日期为字符串 - return date.format(outputFormatter); - } catch (DateTimeParseException e) { - // 如果解析失败,说明输入不符合指定格式,返回原始字符串 - return input; - } - } + return conn; + } + + public String validateAndFormatDate(String input) { + // 定义输入和输出的日期格式 + DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + try { + // 尝试解析输入的日期时间字符串 + LocalDateTime dateTime = LocalDateTime.parse(input, inputFormatter); + + // 转换为只包含日期的LocalDate对象 + LocalDate date = dateTime.toLocalDate(); + + // 格式化结果日期为字符串 + return date.format(outputFormatter); + } catch (DateTimeParseException e) { + // 如果解析失败,说明输入不符合指定格式,返回原始字符串 + return input; + } + } // // 自定义渲染器 // static class CustomColorRenderer extends DefaultTableCellRenderer { @@ -726,30 +819,107 @@ public class QDRWDialog extends JFrame implements ActionListener { // } // } // - - public boolean dgRW(LinkedHashMap>> linkedHashMap,String xh) { - ArrayList> arrayList = linkedHashMap.get(xh); - for (int i = 0; i < arrayList.size(); i++) { - String RWXDSJ = ""; - String SJWCSJ= ""; - String QQRW = ""; - if(arrayList.get(i).containsKey("RWXDSJ")) { - RWXDSJ = arrayList.get(i).get("RWXDSJ"); + + public void dgRW(LinkedHashMap>> linkedHashMap, String xhs, + ArrayList judgeList) { + + if (xhs.contains(",")) { + String[] split = xhs.split(","); + for (int z = 0; z < split.length; z++) { + + ArrayList> arrayList = linkedHashMap.get(split[z]); + String SJWCSJ = ""; + String SFSJGG = ""; + String QQRW = ""; + for (int i = 0; i < arrayList.size(); i++) { + + if (arrayList.get(i).containsKey("SFSJGG")) { + SFSJGG = arrayList.get(i).get("SFSJGG"); } - if(arrayList.get(i).containsKey("SJWCSJ")) { + if (arrayList.get(i).containsKey("SJWCSJ")) { SJWCSJ = arrayList.get(i).get("SJWCSJ"); } - if(arrayList.get(i).containsKey("QQRW")) { + if (arrayList.get(i).containsKey("QQRW")) { QQRW = arrayList.get(i).get("QQRW"); } - if((RWXDSJ == null || RWXDSJ.isEmpty()) && (SJWCSJ == null || SJWCSJ.isEmpty()) && ) { - - }else { - return true; + + } + System.out.println("---SJWCSJ=======" + SFSJGG); + System.out.println("---SFSJGG=======" + SFSJGG); + System.out.println("---QQRW=======" + SFSJGG); + if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是")) { + if (SJWCSJ == null || SJWCSJ.isEmpty()) { + judgeList.add(0); } - - } - - return false; - } + } else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("否") && QQRW != null + && !QQRW.isEmpty()) { + dgRW(linkedHashMap, QQRW, judgeList); + } + + } + } else { + ArrayList> arrayList = linkedHashMap.get(xhs); + String SJWCSJ = ""; + String SFSJGG = ""; + String QQRW = ""; + for (int i = 0; i < arrayList.size(); i++) { + + if (arrayList.get(i).containsKey("SFSJGG")) { + SFSJGG = arrayList.get(i).get("SFSJGG"); + } + if (arrayList.get(i).containsKey("SJWCSJ")) { + SJWCSJ = arrayList.get(i).get("SJWCSJ"); + } + if (arrayList.get(i).containsKey("QQRW")) { + QQRW = arrayList.get(i).get("QQRW"); + } + + } + System.out.println("---SJWCSJ=======" + SJWCSJ); + System.out.println("---SFSJGG=======" + SFSJGG); + System.out.println("---QQRW=======" + QQRW); + if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("是")) { + if (SJWCSJ == null || SJWCSJ.isEmpty()) { + judgeList.add(0); + } + } else if (SFSJGG != null && !SFSJGG.isEmpty() && SFSJGG.equals("否") && QQRW != null && !QQRW.isEmpty()) { + dgRW(linkedHashMap, QQRW, judgeList); + } + } + } + + public void CreateProcess(TCSession session, TCComponent target, String processName, String rwmc,String xh,String id) + throws TCException { + try { + TCComponentProcessType processType = (TCComponentProcessType) session.getTypeComponent("Job"); + TCComponentTaskTemplateType taskTemplateType = (TCComponentTaskTemplateType) session + .getTypeComponent("EPMTaskTemplate"); + TCComponentTaskTemplate taskTemplate = taskTemplateType.find(processName, 0); + if (taskTemplate != null) { + String name = target.getProperty("object_string"); + TCComponent create = processType.create(processName + ":" + name + "_" + rwmc, "", taskTemplate, + new TCComponent[] { target }, new int[] { 1 }); + //System.out.println("uid===================" + create.getUid()); + //System.out.println("type==" + create.getType()); + //System.out.println("type==" + create.getStringProperty("object_type")); + + String updateSql = "update LY_CHANGETASSKFORM_DETAILS set WFUID = '"+create.getUid()+"' where ID = '"+id+"' and XH = '"+xh+"'"; + try { + PreparedStatement prepareStatement = conn.prepareStatement(updateSql); + boolean execute = prepareStatement.execute(); + System.out.println("execute=="+execute+"|updateSql===="+updateSql); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } catch (TCException var7) { + var7.printStackTrace(); + throw var7; + } + } + + public static TCComponent[] getTCComponentsById(TCSession session, String id) throws Exception { + return session.search("零组件...", new String[] { "零组件 ID" }, new String[] { id }); + } } \ No newline at end of file diff --git a/src/com/langtech/plm/bg/QDRWTableColorRender.java b/src/com/langtech/plm/bg/QDRWTableColorRender.java index 5f4bb60..29bc7ea 100644 --- a/src/com/langtech/plm/bg/QDRWTableColorRender.java +++ b/src/com/langtech/plm/bg/QDRWTableColorRender.java @@ -22,16 +22,16 @@ public class QDRWTableColorRender extends TableColorRender { String id = (String)table.getValueAt(row, 1); LinkedHashMap>> linkedHashMap = valueMap.get(id); - System.out.println("colorMap======"+colorMap.toString()); + //System.out.println("colorMap======"+colorMap.toString()); for (Entry map : colorMap.entrySet()) { Integer columnColor = map.getKey(); if(column == columnColor) { - System.out.println("columnColor========"+columnColor); + //System.out.println("columnColor========"+columnColor); String prefValue = map.getValue(); String[] split = prefValue.split("\\."); ArrayList> arrayList = linkedHashMap.get(split[0]); String sjwcsj = ""; - String jhks = ""; + String RWXDSJ = ""; String jhjs = ""; for (int i = 0; i < arrayList.size(); i++) { @@ -39,28 +39,28 @@ public class QDRWTableColorRender extends TableColorRender { if(arrayList.get(i).containsKey("SJWCSJ")) { sjwcsj = arrayList.get(i).get("SJWCSJ"); } - if(arrayList.get(i).containsKey("JHKS")) { - jhks = arrayList.get(i).get("JHKS"); + if(arrayList.get(i).containsKey("RWXDSJ")) { + RWXDSJ = arrayList.get(i).get("RWXDSJ"); } if(arrayList.get(i).containsKey("JHJS")) { jhjs = arrayList.get(i).get("JHJS"); } } - System.out.println("sjwcsj========"+sjwcsj); - System.out.println("jhks========"+jhks); - System.out.println("jhjs========"+jhjs); + //System.out.println("sjwcsj========"+sjwcsj); + //System.out.println("jhks========"+jhks); + //System.out.println("jhjs========"+jhjs); if(sjwcsj != null && !sjwcsj.isEmpty()) { renderer.setBackground(Color.GREEN); }else { - if(jhjs != null && !jhjs.isEmpty() && jhks != null && !jhks.isEmpty()) { + if(jhjs != null && !jhjs.isEmpty() && RWXDSJ != null && !RWXDSJ.isEmpty()) { if(isNotAfterCurrentDate(jhjs)) { renderer.setBackground(Color.RED); - System.out.println("row==="+row+"===column==="+column); + // System.out.println("row==="+row+"===column==="+column); }else { //setBackground(Color.YELLOW); - renderer.setBackground(Color.YELLOW); + renderer.setBackground(Color.GRAY); } } } @@ -86,7 +86,7 @@ public class QDRWTableColorRender extends TableColorRender { } catch (DateTimeParseException e) { // 处理解析异常 - System.out.println("Invalid date format: " + e.getMessage()); + System.out.println("Invalid date format: " + e.getMessage()); return false; // 或者你也可以选择抛出异常,或者根据需求做其他处理 } }