From 8a5a879792a1127b9ac43f426eccb9ad0b4f8ff3 Mon Sep 17 00:00:00 2001 From: guoyh Date: Tue, 23 Nov 2021 11:18:53 +0800 Subject: [PATCH] 11.23 --- .classpath | 2 +- lib/cn.com.origin.autocode_1.0.0.jar | Bin 22026431 -> 22026441 bytes lib/cn.com.origin.autocodemanager_1.0.0.jar | Bin 935235 -> 935207 bytes plugin.xml | 69 +- .../dfl/plm/dfl003/Dfl003AIFDialog.java | 2 +- .../dfl/plm/dfl019/Dfl019Operation.java | 30 +- .../dfl/plm/dfl020/Dfl020Operation.java | 21 +- .../dfl/plm/dfl025/Dfl025Operation.java | 1 + .../dfl/plm/dfl028/Dfl028AIFDialog.java | 881 ++++++- .../connor/dfl/plm/dfl032/Dfl032Dialog.java | 64 +- .../connor/dfl/plm/dfl040/DFL038Jframe.java | 278 +- .../dfl/plm/dfl041/CreateNoemBOMDialogs.java | 3 - .../dfl/plm/forms/AddDialogApply_TZ.java | 7 +- .../dfl/plm/forms/AddDialogNotify_TZ.java | 7 +- .../plm/forms/AddDialogQuickChange_TZ.java | 7 +- .../connor/dfl/plm/forms/ChangeApplyForm.java | 1819 ++++++++----- .../connor/dfl/plm/forms/ChangeDetils.java | 14 +- .../dfl/plm/forms/ChangeNotifyForm.java | 2266 +++++++++++------ .../connor/dfl/plm/forms/QuickChangeForm.java | 1995 +++++++++------ .../connor/dfl/plm/util/ClassValueUtil.java | 2 +- 20 files changed, 4833 insertions(+), 2635 deletions(-) diff --git a/.classpath b/.classpath index 35f2133..734d2ee 100644 --- a/.classpath +++ b/.classpath @@ -92,7 +92,7 @@ + - diff --git a/lib/cn.com.origin.autocode_1.0.0.jar b/lib/cn.com.origin.autocode_1.0.0.jar index 971146d2b862f3b65826e74911224b8d395ef211..27d18de0a0f48e9d441b13c1b8fbc36c6c297142 100644 GIT binary patch delta 31940 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 Ls0n#^FhTzxirFO^ delta 31825 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 EAC)`)B>(^b diff --git a/lib/cn.com.origin.autocodemanager_1.0.0.jar b/lib/cn.com.origin.autocodemanager_1.0.0.jar index ce5cb3bfc95457c428c4c8d3a409521df1bf985e..393697f232521e15753df8d6a232c6b38dbf0551 100644 GIT binary patch delta 7675 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 delta 7729 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 diff --git a/plugin.xml b/plugin.xml index 44e00a4..5dbd8c6 100644 --- a/plugin.xml +++ b/plugin.xml @@ -232,6 +232,9 @@ + + + @@ -447,7 +450,10 @@ - + + + + @@ -507,7 +513,19 @@ - + + + + + + + + + + + + + @@ -680,7 +698,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -711,19 +758,7 @@ - - - - - - - - - - - - - + --> @@ -791,7 +826,7 @@ - + diff --git a/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java b/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java index 7315745..54949ff 100644 --- a/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java +++ b/src/com/connor/dfl/plm/dfl003/Dfl003AIFDialog.java @@ -272,7 +272,7 @@ public class Dfl003AIFDialog extends AbstractAIFDialog { e2.printStackTrace(); } jtext1.setEnabled(false); - jtext2.setEnabled(false); + jtext2.setEnabled(true); jcomname.setEnabled(false); jp2.setLayout(null); jl1.setBounds(20, 20, 30, 30); diff --git a/src/com/connor/dfl/plm/dfl019/Dfl019Operation.java b/src/com/connor/dfl/plm/dfl019/Dfl019Operation.java index ab03901..63be2da 100644 --- a/src/com/connor/dfl/plm/dfl019/Dfl019Operation.java +++ b/src/com/connor/dfl/plm/dfl019/Dfl019Operation.java @@ -361,7 +361,9 @@ public class Dfl019Operation extends AbstractAIFOperation{ if("T2_outsourceRevision".equals(type) || "T2_OutBuyPartRevision".equals(type) ||"T2_VirtualRevision".equals(type) ||"T2_EquipmentRevision".equals(type) ||"T2_SystemSchemeRevision".equals(type)) { - if("T2_outsourceRevision".equals(type)||"T2_OutBuyPartRevision".equals(type) ) { + //判断是否有状态 + if("T2_outsourceRevision".equals(type)||"T2_OutBuyPartRevision".equals(type) + ) { TCProperty tcProperty = rev.getTCProperty("release_status_list"); TCComponent[] targets = tcProperty.getReferenceValueArray(); String groupcode1 = rev.getStringProperty("t2_groupCode"); @@ -373,16 +375,20 @@ public class Dfl019Operation extends AbstractAIFOperation{ "提示", MessageBox.WARNING); return true; } - if(groupcode1.equals("")){ - MessageBox.post(rev.getStringProperty("item_id")+"该物料没有分群码!!", - "提示", MessageBox.WARNING); - return true; - } - if(sourceCode1.equals("")){ - MessageBox.post(rev.getStringProperty("item_id")+"该物料没有来源码!!", - "提示", MessageBox.WARNING); - return true; + if("T2_outsourceRevision".equals(type)||"T2_OutBuyPartRevision".equals(type) + ) { + if(groupcode1.equals("")){ + MessageBox.post(rev.getStringProperty("item_id")+"该物料没有分群码!!", + "提示", MessageBox.WARNING); + return true; + } + if(sourceCode1.equals("")){ + MessageBox.post(rev.getStringProperty("item_id")+"该物料没有来源码!!", + "提示", MessageBox.WARNING); + return true; + } } + } }else { MessageBox.post("该物料不允许传递ERP!!", @@ -830,6 +836,8 @@ public class Dfl019Operation extends AbstractAIFOperation{ String zong= tops + sss3SB.toString()+bottom; System.out.println(zong); String tempPath = System.getProperty("java.io.tmpdir"); + System.out.println("10.20temp路径======="+tempPath); + //String path = "D:\\SENDTOERPLOG\\" + fileName + ".txt"; String path = tempPath + fileName + ".txt"; File file = new File(path); if (!file.exists()) { @@ -872,6 +880,8 @@ public class Dfl019Operation extends AbstractAIFOperation{ String zong= tops + sss3SB.toString()+bottom; System.out.println(zong); String tempPath = System.getProperty("java.io.tmpdir"); + System.out.println("10.20temp路径======="+tempPath); + //String path = "D:\\SENDTOERPLOG\\" + fileName + ".txt"; String path = tempPath + fileName + ".txt"; File file = new File(path); if (!file.exists()) { diff --git a/src/com/connor/dfl/plm/dfl020/Dfl020Operation.java b/src/com/connor/dfl/plm/dfl020/Dfl020Operation.java index c5b2bf9..c882cab 100644 --- a/src/com/connor/dfl/plm/dfl020/Dfl020Operation.java +++ b/src/com/connor/dfl/plm/dfl020/Dfl020Operation.java @@ -178,6 +178,8 @@ public class Dfl020Operation extends AbstractAIFOperation{ if(comp[0] instanceof TCComponentItemRevision ) { rev = (TCComponentItemRevision) comp[0]; + String rve_id = rev.getStringProperty("current_revision_id"); + System.out.println("11.17rve_id======"+rve_id); } if(comp[0] instanceof TCComponentBOMLine ) { TCComponentBOMLine get_bom_line = (TCComponentBOMLine) comp[0]; @@ -186,8 +188,10 @@ public class Dfl020Operation extends AbstractAIFOperation{ TCProperty tcProperty1 = rev.getTCProperty("release_status_list"); TCComponent[] targets1 = tcProperty1.getReferenceValueArray(); String item_type = rev.getType(); - //限制没有发布状态的非虚拟件版本发起bom传递erp命令 -// if(!("T2_VirtualRevision".equals(item_type))) { + + + //限制没有发布状态的设备虚拟件版本发起bom传递erp命令 +// if("T2_VirtualRevision".equals(item_type)||"T2_EquipmentRevision".equals(item_type)) { // if(targets1 == null || targets1.length <= 0) { // MessageBox.post("您选中的版本对象没有发布状态","提示",MessageBox.INFORMATION); // return; @@ -253,7 +257,7 @@ public class Dfl020Operation extends AbstractAIFOperation{ TCTypeService service = session.getTypeService(); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) service.getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(item,item.getLatestItemRevision(), null, null); + TCComponentBOMLine line = view.setWindowTopLine(item,rev, null, null); AIFComponentContext[] childs = line.getChildren(); if(childs != null && childs.length > 0) { createXMLFile(line,zhangtao); @@ -286,6 +290,8 @@ public class Dfl020Operation extends AbstractAIFOperation{ //List list = new ArrayList(); StringBuilder uidSB = new StringBuilder(); + + try { getBOMValue(line,list); if(list.size() <=0) { @@ -295,7 +301,7 @@ public class Dfl020Operation extends AbstractAIFOperation{ } } catch (Exception e) { // TODO: handle exception - MessageBox.post("BOM 传递失败,请检查BOM行是否正确!!!" ,"提示",MessageBox.INFORMATION); + MessageBox.post("BOM 传递失败,请检查BOM行是否正确!!!!" ,"提示",MessageBox.INFORMATION); return; } //获取父 属性 @@ -414,6 +420,8 @@ public class Dfl020Operation extends AbstractAIFOperation{ String fileName ="BOM"+ plmls; String tempPath = System.getProperty("java.io.tmpdir"); + System.out.println("10.20temp路径======="+tempPath); + //String path = "D:\\SENDTOERPLOG\\" + fileName + ".txt"; String path = tempPath + fileName + ".txt"; File file = new File(path); @@ -531,8 +539,13 @@ public class Dfl020Operation extends AbstractAIFOperation{ list.add(fatherBean); for (int i = 0; i < childrens.length; i++) { + TCComponentBOMLine z_line = (TCComponentBOMLine)childrens[i].getComponent(); TCComponentItem item = z_line.getItem(); +// String idString = item.getStringProperty("item_id"); +// System.out.println("11.17id======"+idString); + System.out.println("11.17z_line======="+z_line); + System.out.println("11.17list======="+list); String type = item.getType(); System.out.println("type=============" + type); if (!("T2_OutBuyPart".equals(type)) && !("T2_outsource".equals(type))) diff --git a/src/com/connor/dfl/plm/dfl025/Dfl025Operation.java b/src/com/connor/dfl/plm/dfl025/Dfl025Operation.java index 6e927e5..ebede65 100644 --- a/src/com/connor/dfl/plm/dfl025/Dfl025Operation.java +++ b/src/com/connor/dfl/plm/dfl025/Dfl025Operation.java @@ -78,6 +78,7 @@ public class Dfl025Operation extends AbstractAIFOperation{ File file = ((TCComponentDataset)excel).getTcFiles()[0].getFmsFile(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");// 设置日期格式 String time = df.format(new Date()); + System.out.println("11.12======"+lattetTime+"========"+EarlyTime); String[] keys = new String[] {"创建时间晚于","创建时间早于"}; String[] values = new String[] {lattetTime,EarlyTime}; List compList = queryObject("查找系统方案", keys, values); diff --git a/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java b/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java index 0f4366f..578c964 100644 --- a/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java +++ b/src/com/connor/dfl/plm/dfl028/Dfl028AIFDialog.java @@ -1,39 +1,55 @@ package com.connor.dfl.plm.dfl028; +import java.awt.Color; import java.awt.Component; +import java.awt.Container; +import java.awt.Desktop; import java.awt.Dimension; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.BufferedWriter; import java.io.File; -import java.io.FileInputStream; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStreamWriter; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import javax.swing.JButton; import javax.swing.JCheckBox; +import javax.swing.JDialog; import javax.swing.JFileChooser; -import javax.swing.JLabel; +import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JProgressBar; import javax.swing.JTextField; import javax.swing.filechooser.FileSystemView; +import org.jacorb.idl.runtime.int_token; + import com.teamcenter.rac.aif.AbstractAIFApplication; 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.TCComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMWindow; +import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentDataset; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; -import com.teamcenter.rac.kernel.TCComponentTcFile; -import com.teamcenter.rac.kernel.TCComponentUser; +import com.teamcenter.rac.kernel.TCComponentRevisionRule; +import com.teamcenter.rac.kernel.TCComponentTcFile; import com.teamcenter.rac.kernel.TCException; -import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; -import com.teamcenter.rac.util.PropertyLayout; +import com.teamcenter.rac.util.PropertyLayout; public class Dfl028AIFDialog extends AbstractAIFDialog { private AbstractAIFApplication app; @@ -45,13 +61,26 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { private JFileChooser jFileChooser; private JButton okBut = new JButton("下载"); private JButton celBut = new JButton("取消"); - private List fmsFilelist = new ArrayList<>(); - private List hzmlist = new ArrayList<>(); - private List namelist = new ArrayList<>(); + private ArrayList fmsFilelist = new ArrayList<>(); + private ArrayList hzmlist = new ArrayList<>(); + private ArrayList namelist = new ArrayList<>(); private FileInputStream fis; private FileOutputStream fos; private JPanel btnPanel1; - + private JPanel btnPanel2; + private JPanel btnPanel3; + private String hzm; + private int iDataset=0; + private String datasetDir; + private Boolean outPartBool=false; + private JProgressBar bar; + private long fileSize=0; + private Boolean allCheck=false; + private List noFileList=new ArrayList(); + private List datasetList=new ArrayList(); + private Map pathMap=new HashMap(); + private String pathString; + ExecutorService pool = Executors.newCachedThreadPool(); public Dfl028AIFDialog(AbstractAIFApplication arg0){ this.app = arg0; this.session = (TCSession)app.getSession(); @@ -61,19 +90,30 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { @Override public void run() { //显示窗口 - init(); - - + init(); //启用查询按钮 // qryBtn.setEnabled(true); } //获取下载文件列表 - private void getload(TCComponentDataset dataset){ - try { + private void getload(TCComponentDataset dataset,String path,List list,String itemid){ + try { TCComponentTcFile[] file = dataset.getTcFiles(); - if(file == null || file.length ==0){ - MessageBox.post("数据集没有命名引用的文件,请检查!", - "WARNING",MessageBox.WARNING); + if(file == null || file.length ==0){ + if(itemid.equals("sjj")) { + String noFileString=path+"_"+dataset.getStringProperty("object_name"); + noFileList.add(noFileString); + }else { + AIFComponentContext[] itemRev = dataset.whereReferenced(); + String items=""; + for(AIFComponentContext context:itemRev) { + if(context.getComponent() instanceof TCComponentItemRevision) { + TCComponentItemRevision revision=(TCComponentItemRevision)context.getComponent(); + items=revision.getStringProperty("item_id")+"_"+revision.getStringProperty("current_revision_id"); + } + } + String noFileString=items+"_"+dataset.getStringProperty("object_name"); + noFileList.add(noFileString); + } return; }else{ for(int i=0;i", "-").replace(":", "-").replace("|","-"). + replace("\\","-").replace("*","-").replace("?","-"); + //获取文件用户下载 + File fmsFile = file[i].getFmsFile(); + hzmlist.add(hzm); + namelist.add(path+File.separator+replace); + fmsFilelist.add(fmsFile); + fileSize=fileSize+fmsFile.length(); + } } } } catch (TCException e) { @@ -102,10 +148,40 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { } } + //获取文件后缀名 +// private void gethzm(TCComponentDataset dataset) { +// try { +// //获取文件数组 +// TCComponentTcFile[] file = dataset.getTcFiles(); +// //判断数据集有没有命名引用的文件 +// if(file == null || file.length ==0){ +// MessageBox.post("数据集没有命名引用的文件,请检查!", +// "WARNING",MessageBox.WARNING); +// return; +// }else{ +// //遍历循环文件数组 +// for(int i=0;i list = new ArrayList(); Component[] jcbs = btnPanel1.getComponents();//将勾选的内容存入数组 for(Component component : jcbs) { - JCheckBox jcb = (JCheckBox) component; - if(jcb.isSelected()) { - list.add(jcb.getText()); - if("DWG".equals(jcb.getText())) { - list.add("T2_DWG"); - }else if ("STP".equals(jcb.getText())) { - list.add("TAI2_TCAI115_AISTEP"); + if(component instanceof JCheckBox) { + JCheckBox jcb = (JCheckBox) component; + if(jcb.isSelected()) { + list.add(jcb.getText()); + if("DWG".equals(jcb.getText())) { + list.add("DWG"); + list.add("dwg"); + }else if ("STP".equals(jcb.getText())) { + list.add("stp"); + }else if("PDF".equals(jcb.getText())) { + list.add("pdf"); + list.add("PDF"); + }else if("idw".equals(jcb.getText())) { + list.add("idw"); + }else if ("ipt".equals(jcb.getText())) { + list.add("ipt"); + }else if ("iam".equals(jcb.getText())) { + list.add("iam"); + }else if ("STEP".equals(jcb.getText())) { + list.add("STEP"); + list.add("step"); + } } - } - } - if(list.size() <= 0) { - list.add("T2_DWG"); - list.add("PDF"); - list.add("TAI2_TCAI115_AISTEP"); - } + } + } try { for (int i = 0; i < targets.length; i++) { if(targets[i] instanceof TCComponentBOMLine){ + List itemlist = new ArrayList(); + //执行获取零件类型的方法 + itemlist = getitemType(); + //定义bom行 TCComponentBOMLine line = (TCComponentBOMLine) targets[i]; - TCComponentItemRevision rev = line.getItemRevision(); + TCComponentItemRevision rev = line.getItemRevision(); + String objName= rev.getStringProperty("object_name"); + String replace = objName.replace("/", "-").replace("<", "-"). + replace(">", "-").replace(":", "-").replace("|","-"). + replace("\\","-").replace("*","-").replace("?","-"); + String revtype = rev.getType(); + String dataDir2 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹 + File csFile=new File(dataDir2); + //数据版本创建自己的文件夹 + String dataName = rev.getStringProperty("item_id")+"_"+ rev.getStringProperty("current_revision_id")+ + "_"+replace;//文件名 + pathString=dataDir2; + if(!csFile.exists()) { + csFile.mkdir(); + } + System.out.println("cs"+rev.toString()+list.get(0)); + String dataName2=""; + //遍历视图 去找符合条件的 文件夹已经创建 + getOutPart(rev,dataName,list); + String dataDir3 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹总成 + File csFile2=new File(dataDir3); + if(!csFile2.exists()) { + csFile2.mkdir(); + } + dataName2=dataName+File.separator+rev.getStringProperty("item_id")+"_"+ rev.getStringProperty("current_revision_id")+ + "_"+replace; TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); for (int j = 0; j < datasets.length; j++) { - String type = datasets[j].getType(); - if(list.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets[j]; - getload(dataset); + //获取数据集数组 + TCComponentDataset dataset01 = null; + if(datasets[j] instanceof TCComponentDataset) { + dataset01 = (TCComponentDataset) datasets[j]; + }else { + continue; + } + //执行获取后缀名的方法 +// gethzm(dataset01); + //执行获取零件类型的方法 + String type = dataset01.getType(); + //判断list包含hzm字符串的值 且 itemlist包含revtype的值 + if(itemlist.contains(revtype)||allCheck) { + if(datasetList.contains(type)) { + //获取数据集数据 + TCComponentDataset dataset02 = (TCComponentDataset) datasets[j]; + //执行getload方法 + getload(dataset02,dataName,list,rev.getStringProperty("item_id")); + getload(dataset02,dataName2,list,rev.getStringProperty("item_id")); + } } } for (int j = 0; j < datasets2.length; j++) { - String type = datasets2[j].getType(); - if(list.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset); + //获取数据集数组 + TCComponentDataset dataset02 = null; + if(datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + }else { + continue; + } + //执行获取后缀名的方法 +// gethzm(dataset02); + String type = dataset02.getType(); + //判断是否为所需要的零件类型 + if(itemlist.contains(revtype)||allCheck) { + if(datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; + getload(dataset,dataName,list,rev.getStringProperty("item_id")); + getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + } } } - }else if(targets[i] instanceof TCComponentItemRevision){ + } + else if(targets[i] instanceof TCComponentItemRevision){ + List itemlist = new ArrayList(); + //执行获取零件类型的方法 + itemlist = getitemType(); TCComponentItemRevision rev = (TCComponentItemRevision) targets[i]; + String revtype = rev.getType(); + String objName= rev.getStringProperty("object_name"); + String replace = objName.replace("/", "-").replace("<", "-"). + replace(">", "-").replace(":", "-").replace("|","-"). + replace("\\","-").replace("*","-").replace("?","-"); + String dataDir =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹 + + File csFile=new File(dataDir); + //数据版本创建自己的文件夹 + String dataName =rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 + String dataName2=""; + pathString=dataDir; + if(!csFile.exists()) { + csFile.mkdir(); + } + //遍历视图 去找符合条件的 文件夹已经创建 + getOutPart(rev,dataName,list); + String dataDir3 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹总成 + File csFile2=new File(dataDir3); + if(!csFile2.exists()) { + csFile2.mkdir(); + } + dataName2 =dataName+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); for (int j = 0; j < datasets.length; j++) { - String type = datasets[j].getType(); - if(list.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets[j]; - System.out.println("下载文件"); - getload(dataset); + + //获取数据集数组 + TCComponentDataset dataset02 = null; + if(datasets[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets[j]; + }else { + continue; + } + //执行获取后缀名的方法 +// gethzm(dataset02); + String type = dataset02.getType(); + //判断零件类型 + if(itemlist.contains(revtype)||allCheck) { + if(datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets[j]; + System.out.println("下载文件"); + getload(dataset,dataName,list,rev.getStringProperty("item_id")); + getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + } } } for (int j = 0; j < datasets2.length; j++) { - String type = datasets2[j].getType(); - if(list.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset); + //获取数据集数组 + TCComponentDataset dataset02 = null; + if(datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + }else { + continue; + } + //执行获取后缀名的方法 +// gethzm(dataset02); + String type = dataset02.getType(); + //判断零件类型 + if (itemlist.contains(revtype)||allCheck) { + if(datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; + getload(dataset,dataName,list,rev.getStringProperty("item_id")); + getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + } } } - }else if(targets[i] instanceof TCComponentDataset) { + }else if(targets[i] instanceof TCComponentDataset) { TCComponentDataset dataset = (TCComponentDataset) targets[i]; - getload(dataset); + String dataName=""; + String objName = dataset.getStringProperty("object_name"); + String replaceName = objName.replace("/", "-").replace("<", "-"). + replace(">", "-").replace(":", "-").replace("|","-"). + replace("\\","-").replace("*","-").replace("?","-"); + if(iDataset==0) { + dataName=jtf.getText()+File.separator+replaceName; + datasetDir=replaceName; + pathString=dataName; + File csFile=new File(dataName); + if(!csFile.exists()) { + csFile.mkdir(); + } + } + iDataset=1; + String type = dataset.getType(); +// gethzm(dataset); + if(datasetList.contains(type)) { + getload(dataset,datasetDir,list,"sjj"); + } }else if(targets[i] instanceof TCComponentItem){ + List itemlist = new ArrayList(); + //执行获取零件类型的方法 + itemlist = getitemType(); TCComponentItem item = (TCComponentItem) targets[i]; +// item.getReleasedItemRevisions(); TCComponentItemRevision rev = item.getLatestItemRevision(); + String revtype = rev.getType(); + String objName= rev.getStringProperty("object_name"); + String replace = objName.replace("/", "-").replace("<", "-"). + replace(">", "-").replace(":", "-").replace("|","-"). + replace("\\","-").replace("*","-").replace("?","-"); + String dataDir2 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹 + File csFile=new File(dataDir2); + //数据版本创建自己的文件夹 + String dataName = rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 + pathString=dataDir2; + if(!csFile.exists()) { + csFile.mkdir(); + + } + String dataName2=""; + //遍历视图 去找符合条件的 文件夹已经创建 + getOutPart(rev,dataName,list); + String dataDir3 =jtf.getText()+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//创建版本文件夹总成 + File csFile2=new File(dataDir3); + if(!csFile2.exists()) { + csFile2.mkdir(); + } + dataName2 =dataName+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+replace;//文件名 TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); for (int j = 0; j < datasets.length; j++) { - String type = datasets[j].getType(); - if(list.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets[j]; - getload(dataset); + //获取数据集数组 + TCComponentDataset dataset02 = null; + if(datasets[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets[j]; + }else { + continue; + } + //执行获取后缀名的方法 + String type = dataset02.getType(); +// gethzm(dataset02); + if(itemlist.contains(revtype)||allCheck) { + if(datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets[j]; + getload(dataset,dataName,list,rev.getStringProperty("item_id")); + getload(dataset,dataName2,list,rev.getStringProperty("item_id")); + } } } for (int j = 0; j < datasets2.length; j++) { - String type = datasets2[j].getType(); - if(list.contains(type)) { - TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; - getload(dataset); + //获取数据集数组 + TCComponentDataset dataset02 = null; + if(datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + }else { + continue; + } + //执行获取后缀名的方法 +// gethzm(dataset02); + String type = dataset02.getType(); + if(itemlist.contains(revtype)||allCheck) { + if(datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; + getload(dataset, dataName,list,rev.getStringProperty("item_id")); + getload(dataset, dataName2,list,rev.getStringProperty("item_id")); + } } } }else { @@ -304,7 +727,261 @@ public class Dfl028AIFDialog extends AbstractAIFDialog { } } catch (Exception e) { // TODO: handle exception + e.printStackTrace(); } } - + //获取零件类型 + public List getitemType() { + List itemlist = new ArrayList(); + Component[] jcbs = btnPanel2.getComponents();//将勾选的内容存入数组 + //遍历勾选的内容 + for(Component component : jcbs) { + if(component instanceof JCheckBox) { + JCheckBox jcb = (JCheckBox) component; + //判断元素是否被选中 + if(jcb.isSelected()) { + itemlist.add(jcb.getText()); + itemlist.add(jcb.getText()); + if("全部".equals(jcb.getText())) { + allCheck=true; + itemlist.add("T2_VirtualRevision"); + itemlist.add("T2_OutBuyPartRevision"); + itemlist.add("T2_outsourceRevision"); + itemlist.add("T2_EquipmentRevision"); + }else if ("外协件".equals(jcb.getText())) { + itemlist.add("T2_outsourceRevision"); + }else if ("外购件".equals(jcb.getText())) { + itemlist.add("T2_OutBuyPartRevision"); + }else if ("虚拟件".equals(jcb.getText())) { + itemlist.add("T2_VirtualRevision"); + } + } + + } + } + return itemlist; + } + public void getOutPart(TCComponentItemRevision rev ,String dir,List list) throws TCException { + //设备获取完成了 获取子键 全部 全获取 外购 判断当前 外购子键不判断 + TCComponentItem item = rev.getItem(); + List itemlist = new ArrayList(); + //执行获取零件类型的方法 + itemlist = getitemType(); + Boolean sxTj = getSxTj(); + TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeService() + .getTypeComponent("BOMWindow"); + TCComponentRevisionRule[] listAllRules = TCComponentRevisionRule.listAllRules(session); + TCComponentBOMWindow window = winType.create(null); + for(TCComponentRevisionRule rule:listAllRules) { + if(sxTj&&rule.toString().equals("Precise;Any Status;Latest Working")) { + window.setRevisionRule(rule); + }else if (!sxTj&&rule.toString().equals("Latest Working")) { + window.setRevisionRule(rule); + } + } + window.lock(); + TCComponentBOMLine topLine = window.setWindowTopLine( + item, rev, null, null); + AIFComponentContext[] children2=new AIFComponentContext[4096]; + children2=topLine.getChildren(); +// AIFComponentContext[] children = topLine.getChildren(); + for(int i=0;i listRev=new ArrayList(); +// for(TCComponent revs:revList) { +// TCComponentItemRevision revision=(TCComponentItemRevision)revs; +// TCComponent[] status = revision.getReferenceListProperty("release_status_list"); +// if(status.length!=0) { +// if(status[0].toString().equals("TCM 已发布")) { +// listRev.add(revision); +// } +// } +// } +// +// if(listRev.size()!=0) { +// latestRev=listRev.get(0); +// Date newDate=latestRev.getDateProperty("creation_date"); +// for(TCComponentItemRevision revision:listRev) { +// Date date = revision.getDateProperty("creation_date"); +// int datei = newDate.compareTo(date); +// if(datei<0) { +// newDate=date; +// latestRev=revision; +// } +// } +// } +// } catch (TCException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// return latestRev; +// } + //遍历bom视图,找出所有外协件 外购件 i判断是不是第一层外协外购 + public void getOutPartInBom(TCComponentBOMLine bomLine,Boolean sxtj,int i,List itemList, + String dir,List list,int bomNum,String dirFs) throws TCException { + TCComponentItemRevision rev = bomLine.getItemRevision(); +// if(sxtj) { +// rev=findLatesStatus(rev); +// } + String dirTop=dir; +// String revtype = rev.getStringProperty("object_type"); + String revtype= rev.getType();//真实值 + if((itemList.contains(revtype)&&bomNum==0)||allCheck||bomNum==1) { + Boolean l=revtype.equals("T2_OutBuyPartRevision")||revtype.equals("T2_outsourceRevision")||revtype.equals("ItemRevision"); + if(outPartBool&&l) { + String dirString=jtf.getText()+File.separator+dir+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); + dir=dir+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); + dirTop=dir; + File csFile=new File(dirString); + if(!csFile.exists()) { + csFile.mkdir(); + } + if(bomLine.getChildren().length!=0) { + dirString=dirString+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); + dir=dir+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); + + File csFile2=new File(dirString); + if(!csFile2.exists()) { + csFile2.mkdir(); + } + + } + if(i==0 ) { + pathMap.put("1", dir); + if(bomLine.getChildren().length!=0) { + dirString=dirString+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); + File csFile3=new File(dirString); + if(!csFile3.exists()) { + csFile3.mkdir(); + } + + dir=dir+File.separator+rev.getStringProperty("item_id")+"_"+ + rev.getStringProperty("current_revision_id")+"_"+rev.getStringProperty("object_name"); + } + }i++; + } + TCComponent[] datasets = rev.getReferenceListProperty("IMAN_specification"); + TCComponent[] datasets2 = rev.getReferenceListProperty("IMAN_Rendering"); + for (int j = 0; j < datasets.length; j++) { + //获取数据集数组 + TCComponentDataset dataset01=null; + if(datasets[j] instanceof TCComponentDataset) { + dataset01 = (TCComponentDataset) datasets[j]; + } + else { + continue; + } +// TCComponentDataset dataset01 = (TCComponentDataset) datasets[j]; + //执行获取后缀名的方法 +// gethzm(dataset01); + //执行获取零件类型的方法 + String type = dataset01.getStringProperty("object_type"); + + //判断list包含hzm字符串的值 且 itemlist包含revtype的值 + if(datasetList.contains(type)) { + //获取数据集数据 + TCComponentDataset dataset02 = null; + if(datasets[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets[j]; + }else { + continue; + } + //执行getload方法 + getload(dataset02,dir,list,rev.getStringProperty("item_id")); + //复制一份到父级 + if(!dir.equals(dirFs)) { + getload(dataset02,dirFs,list,rev.getStringProperty("item_id")); + } + if(!dir.equals(pathMap.get("1"))&& pathMap.get("1")!=null) { + getload(dataset02,pathMap.get("1"),list,rev.getStringProperty("item_id")); + } + } + } + for (int j = 0; j < datasets2.length; j++) { + //获取数据集数组 + TCComponentDataset dataset02 = null; + if(datasets2[j] instanceof TCComponentDataset) { + dataset02 = (TCComponentDataset) datasets2[j]; + }else { + continue; + } + //执行获取后缀名的方法 +// gethzm(dataset02); + //判断是否为所需要的零件类型 + String type = dataset02.getStringProperty("object_type"); + if(datasetList.contains(type)) { + TCComponentDataset dataset = (TCComponentDataset) datasets2[j]; + getload(dataset,dir,list,rev.getStringProperty("item_id")); + if(!dir.equals(dirFs)) { + getload(dataset,dirFs,list,rev.getStringProperty("item_id")); + } + if(!dir.equals(pathMap.get("1"))) { + getload(dataset02,pathMap.get("1"),list,rev.getStringProperty("item_id")); + } + } + + } + AIFComponentContext[] children = bomLine.getChildren(); + for(AIFComponentContext context:children) { + TCComponentBOMLine line=(TCComponentBOMLine)context.getComponent(); + getOutPartInBom(line,sxtj,i,itemList,dirTop,list,1,dirFs); + } + } else { + AIFComponentContext[] children = bomLine.getChildren(); + for(AIFComponentContext context:children) { + TCComponentBOMLine line=(TCComponentBOMLine)context.getComponent(); + getOutPartInBom(line,sxtj,0,itemList,dirTop,list,0,dirFs); + } + } + } + private static void updateProgress(JProgressBar copyProgressBar, int progressSize) { + copyProgressBar.setString(progressSize + "%"); + copyProgressBar.setValue(progressSize); + } + public Boolean getSxTj(){ + List tjlist = new ArrayList(); + Boolean statusBool=false; + Component[] jcbs = btnPanel3.getComponents(); + for(Component component:jcbs) { + if(component instanceof JCheckBox) { + JCheckBox jcb = (JCheckBox) component; + if(jcb.isSelected()) { + tjlist.add(jcb.getText()); + } + } + } + for(String s:tjlist) { + if(s.equals("仅下载已发布图纸")) { + statusBool=true; + } + if(s.equals("外协件/外购件打包下载")) { + outPartBool=true; + } + } + return statusBool; + } } diff --git a/src/com/connor/dfl/plm/dfl032/Dfl032Dialog.java b/src/com/connor/dfl/plm/dfl032/Dfl032Dialog.java index e093039..82cd113 100644 --- a/src/com/connor/dfl/plm/dfl032/Dfl032Dialog.java +++ b/src/com/connor/dfl/plm/dfl032/Dfl032Dialog.java @@ -95,14 +95,14 @@ public class Dfl032Dialog extends AbstractAIFDialog{ @Override public void run() { - ParseXMLUtil xml=new ParseXMLUtil(); - File file=xml.getSXX("DFL_CLASS_Xml", session); - attrList =xml.parseXMLCode(file); - if(attrList == null || attrList.size() <= 0) { - MessageBox.post("首选项DFL_CLASS_Xml未配置,请检查!", "WARNING", - MessageBox.WARNING); - return; - } +// ParseXMLUtil xml=new ParseXMLUtil(); +// File file=xml.getSXX("DFL_CLASS_Xml", session); +// attrList =xml.parseXMLCode(file); +// if(attrList == null || attrList.size() <= 0) { +// MessageBox.post("首选项DFL_CLASS_Xml未配置,请检查!", "WARNING", +// MessageBox.WARNING); +// return; +// } InterfaceAIFComponent comp = app.getTargetComponent(); String compType = comp.getType(); System.out.println("compType=============="+compType); @@ -381,19 +381,19 @@ public class Dfl032Dialog extends AbstractAIFDialog{ classPropList.add(bean); } } - for (int i = 0; i < attrList.size(); i++) { - String classValue = attrList.get(i); - if(classValue.contains(";")) { - String[] classValues = classValue.split(";"); - if(c.getId().equals(classValues[0])) { - attrName = new String [classValues.length -1]; - for (int j = 0; j < attrName.length; j++) { - attrName[j] = classValues[j+1]; - } - break; - } - } - } +// for (int i = 0; i < attrList.size(); i++) { +// String classValue = attrList.get(i); +// if(classValue.contains(";")) { +// String[] classValues = classValue.split(";"); +// if(c.getId().equals(classValues[0])) { +// attrName = new String [classValues.length -1]; +// for (int j = 0; j < attrName.length; j++) { +// attrName[j] = classValues[j+1]; +// } +// break; +// } +// } +// } String[] columnNames = new String[icsAttrS.length + 3]; columnNames[0] = "序号"; columnNames[1] = "品号"; @@ -448,18 +448,18 @@ public class Dfl032Dialog extends AbstractAIFDialog{ model.setDataVector(cellData, columnNames); //DefaultTableCellRenderer类可以绘制单元格的背景、字体颜色等功能 - DefaultTableCellRenderer backGroundColor = new DefaultTableCellRenderer(); + // DefaultTableCellRenderer backGroundColor = new DefaultTableCellRenderer(); //绘制部门列的背景为黄色 - backGroundColor.setBackground(Color.yellow); - if(attrName != null && attrName.length > 0) { - for (int i = 0; i < attrName.length; i++) { - List colList = Arrays.asList(columnNames); - if(colList.contains(attrName[i])) { - TableColumn tableColumn = qryTable.getColumn(attrName[i]); - tableColumn.setCellRenderer(backGroundColor); - } - } - } + // backGroundColor.setBackground(Color.yellow); +// if(attrName != null && attrName.length > 0) { +// for (int i = 0; i < attrName.length; i++) { +// List colList = Arrays.asList(columnNames); +// if(colList.contains(attrName[i])) { +// TableColumn tableColumn = qryTable.getColumn(attrName[i]); +// tableColumn.setCellRenderer(backGroundColor); +// } +// } +// } qryTable.getColumnModel().getColumn(0).setPreferredWidth(10); qryTable.setDefaultRenderer(Object.class, new TableCellTextAreaRenderer()); JScrollPane scrollPane=new JScrollPane(qryTable); diff --git a/src/com/connor/dfl/plm/dfl040/DFL038Jframe.java b/src/com/connor/dfl/plm/dfl040/DFL038Jframe.java index 5e890c3..015cb3f 100644 --- a/src/com/connor/dfl/plm/dfl040/DFL038Jframe.java +++ b/src/com/connor/dfl/plm/dfl040/DFL038Jframe.java @@ -61,10 +61,12 @@ import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jacorb.idl.runtime.int_token; +//import com.connor.dfl.plm.dfl038.MyComparator; import com.connor.dfl.plm.util.DataBaseControl; import com.connor.dfl.plm.util.ProgressBar; import com.connor.dfl.plm.util.ProgressBarThread; import com.lowagie.text.Row; +//import com.sun.javafx.image.IntPixelAccessor; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentQuery; @@ -142,7 +144,7 @@ public class DFL038Jframe extends JFrame { private JButton cancelButton; private JPanel centerPanel1; - private String[] title = new String[] { "产品部门", "产品名称", "变更通知单号", "产品型号", "客户名称", "更改类型", "更改原因", "图纸更改类型", "责任部门", + private String[] title = new String[] { "产品部门", "产品名称", "变更通知单号", "产品型号", "客户名称", "申请人","更改类型", "更改原因", "图纸更改类型", "责任部门", "责任人", "品号", "品名", "原版本", "现版本", "变更数量", "产品类型", "错误类型", "价格预告", "销售分类", "是否产生成本损失", "项目阶段", "料件领用分类", "图纸发至", "项目编号", "通知紧急程度", "申请时间", "账套", "流程阶段" }; @@ -480,7 +482,7 @@ public class DFL038Jframe extends JFrame { "jdbc:oracle:thin:@192.168.1.138:1521/tc12", "infodba", "infodba"); control.openDataBase(); - String colString = " F.PRODUCTDEPARTMENT,F.PRODUCTNAME,F.CHANGELISTCODE,F.PROJECTMODEL,F.CLIENTNAME,F.CHANGETYPE,F.CHANGEREASON,F.TZGGLX,F.DUTYDEPARTMENT,F.DUTYMAN,D.PH,D.PM,D.YBB,D.XBB,D.BGSL,F.PRODUCTTYPE,F.ERRORTYPE,F.PRICEBOOKING,F.SALSECLASSIFY,F.ISNOTPRODUCTLOSS,F.XMJD,F.RECEIVECLASSIFY,F.DRAWINGTO,F.PROJECTCODE,F.NOTIFYEMERGENCYPROCEDURES,F.APPLYDATE,F.ACCOUNTSET "; + String colString = " F.PRODUCTDEPARTMENT,F.PRODUCTNAME,F.CHANGELISTCODE,F.PROJECTMODEL,F.CLIENTNAME,F.APPLYNAME,F.CHANGETYPE,F.CHANGEREASON,F.TZGGLX,F.DUTYDEPARTMENT,F.DUTYMAN,D.PH,D.PM,D.YBB,D.XBB,D.BGSL,F.PRODUCTTYPE,F.ERRORTYPE,F.PRICEBOOKING,F.SALSECLASSIFY,F.ISNOTPRODUCTLOSS,F.XMJD,F.RECEIVECLASSIFY,F.DRAWINGTO,F.PROJECTCODE,F.NOTIFYEMERGENCYPROCEDURES,F.APPLYDATE,F.ACCOUNTSET "; // 获取需要判断的列 @@ -491,21 +493,24 @@ public class DFL038Jframe extends JFrame { + " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('" + startTime + "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('" - + endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions+" order by F.PRODUCTDEPARTMENT,F.APPLYDATE"; + + endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions + + " order by F.PRODUCTDEPARTMENT,F.APPLYDATE"; if (depart == null || depart.trim().equals("")) { - sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON " + leftConditions - + " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND " + sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON " + + leftConditions + " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND " + " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('" + startTime + "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('" - + endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions+" order by F.PRODUCTDEPARTMENT,F.APPLYDATE"; + + endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions + + " order by F.PRODUCTDEPARTMENT,F.APPLYDATE"; } else if (depart != null && "全部".equals(depart)) { - sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON " + leftConditions - + " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND " + sql1 = "select " + colString + " from DFL_CHANGEFORM F LEFT OUTER JOIN DFL_CHANGEDETAILS D ON " + + leftConditions + " (F.OBJECTCODE like'ECN%' or F.OBJECTCODE like'QECN%') " + " AND " + " F.APPLYDATE IS NOT NULL AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') >= to_date('" + startTime + "','yyyy-MM-dd HH24:mi:ss') AND to_date(F.applydate,'yyyy-MM-dd HH24:mi:ss') <= to_date('" - + endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions+" order by F.PRODUCTDEPARTMENT,F.APPLYDATE"; + + endTime + "','yyyy-MM-dd HH24:mi:ss') " + conditions + + " order by F.PRODUCTDEPARTMENT,F.APPLYDATE"; } System.out.println(sql1); @@ -584,11 +589,11 @@ public class DFL038Jframe extends JFrame { i++; XSSFRow Row = sheet2.createRow(i); String changeFormId = dbQuery.getString(3); - if (changeFormId!=null && !changeFormId.equals(lastChangeFormId)) { + if (changeFormId != null && !changeFormId.equals(lastChangeFormId)) { List queryObject = queryObject("零组件 ID", new String[] { "零组件 ID" }, new String[] { changeFormId }); System.out.println(changeFormId); - if (queryObject!=null && queryObject.size() > 0) { + if (queryObject != null && queryObject.size() > 0) { TCComponent component = queryObject.get(0); AIFComponentContext[] versions = component.getChildren("revision_list"); TCComponent versionComponent = (TCComponent) versions[0].getComponent(); @@ -623,8 +628,11 @@ public class DFL038Jframe extends JFrame { } Set set = new HashSet(); + int db2 = 0; + while (dbQuery2.next()) { set.add(dbQuery2.getString(3)); + db2++; } dbQuery2.first(); dbQuery2.previous(); @@ -636,7 +644,7 @@ public class DFL038Jframe extends JFrame { // Collections.sort(list,new MyComparator()); Collections.sort(list); - + // 创建列头 XSSFRow[] rows = new XSSFRow[list.size()]; @@ -663,30 +671,19 @@ public class DFL038Jframe extends JFrame { createCell.setCellValue(0); } } - - System.out.println(dbQuery2.getRow()+"--1--"+changeType.length); + + System.out.println(dbQuery2.getRow() + "--1--" + changeType.length); int[][] CTN = new int[list.size()][changeType.length]; - - String year = list.get(0).substring(0,4); - int lastRN = list.size()+1; - + int[] countNum = null; + int countYear = 0; + String year = list.get(0).substring(0, 4); + int rowY = 0; + int lastRN = list.size() + 1; + int current = 0; while (dbQuery2.next()) { + current++; for (int j = 0; j < list.size(); j++) { -// System.out.println(year+"-----2------"+rows[j].getCell(0).getStringCellValue().substring(0,4)); -// if(!year.equals(rows[j].getCell(0).getStringCellValue().substring(0,4))) { -// System.out.println(year); -// year = rows[j].getCell(0).getStringCellValue().substring(0,4); -// System.out.println("after"+year); -// XSSFRow row = sheet1.createRow(lastRN++); -// row.createCell(0).setCellValue("合计:"); -// for(int o=0;o"+(null==cell)); + System.out.println("CTN[CTN.length-1]=>"+(null==CTN[CTN.length-1])); + System.out.println("CTN[CTN.length-1][o]=>"+CTN[CTN.length-1][o]); + System.out.println("countNum[o]=>"+countNum[o]); + cell.setCellValue(CTN[CTN.length-1][o]-countNum[o]); } - XSSFCell createCell = row.createCell(changeType.length+1); - createCell.setCellStyle(cellStyle); - createCell.setCellValue(getArrayCount(CTN[j-1])-getArrayCount(lastYearDetail)); - lastYearDetail = CTN[j-1]; + cell = row.createCell(changeType.length + 1); + cell.setCellStyle(cellStyle); + cell.setCellValue(getArrayCount(CTN[CTN.length-1])-getArrayCount(countNum)); } - yearNum++; - break; - } - -// System.out.println(year+"-----2------"+rows[j].getCell(0).getStringCellValue().substring(0,4)); - if(!year.equals(rows[j].getCell(0).getStringCellValue().substring(0,4))) { - System.out.println(year); - year = rows[j].getCell(0).getStringCellValue().substring(0,4); - System.out.println("after"+year); - sheet1.shiftRows(j+1, lastRN++, 1, true, false); - XSSFRow row = sheet1.createRow(j+1); - XSSFCell createCell2 = row.createCell(0); - createCell2.setCellStyle(cellStyle); - createCell2.setCellValue("合计:"); - if(lastYearDetail ==null) { - for(int o=0;o0&&sb.charAt(sb.length()-1)!=';') { sb.append(";"); } + sb.append(list.get(i)); +// if(i < list.size()-1) { +// sb.append(";"); +// } } //changeform.model1.setValueAt(proid, 8, 1); diff --git a/src/com/connor/dfl/plm/forms/AddDialogNotify_TZ.java b/src/com/connor/dfl/plm/forms/AddDialogNotify_TZ.java index e1afa29..a1ef7fd 100644 --- a/src/com/connor/dfl/plm/forms/AddDialogNotify_TZ.java +++ b/src/com/connor/dfl/plm/forms/AddDialogNotify_TZ.java @@ -100,10 +100,13 @@ public class AddDialogNotify_TZ extends AbstractAIFDialog { if(!("".equals(s.trim()))) { sb.append(";"); } - sb.append(list.get(i)); - if(i < list.size()-1) { + if(sb.length()>0&&sb.charAt(sb.length()-1)!=';') { sb.append(";"); } + sb.append(list.get(i)); +// if(i < list.size()-1) { +// sb.append(";"); +// } } //changeform.model1.setValueAt(proid, 8, 1); diff --git a/src/com/connor/dfl/plm/forms/AddDialogQuickChange_TZ.java b/src/com/connor/dfl/plm/forms/AddDialogQuickChange_TZ.java index 4e9c799..d6f7974 100644 --- a/src/com/connor/dfl/plm/forms/AddDialogQuickChange_TZ.java +++ b/src/com/connor/dfl/plm/forms/AddDialogQuickChange_TZ.java @@ -442,10 +442,13 @@ public class AddDialogQuickChange_TZ extends AbstractAIFDialog { if(!("".equals(s.trim()))) { sb.append(";"); } - sb.append(list.get(i)); - if(i < list.size()-1) { + if(sb.length()>0&&sb.charAt(sb.length()-1)!=';') { sb.append(";"); } + sb.append(list.get(i)); +// if(i < list.size()-1) { +// sb.append(";"); +// } } //changeform.model1.setValueAt(proid, 8, 1); diff --git a/src/com/connor/dfl/plm/forms/ChangeApplyForm.java b/src/com/connor/dfl/plm/forms/ChangeApplyForm.java index 3bcb060..91ca784 100644 --- a/src/com/connor/dfl/plm/forms/ChangeApplyForm.java +++ b/src/com/connor/dfl/plm/forms/ChangeApplyForm.java @@ -1,12 +1,21 @@ package com.connor.dfl.plm.forms; + import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; +import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -16,6 +25,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,12 +46,18 @@ import javax.swing.SwingConstants; import javax.swing.border.LineBorder; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; +import javax.swing.table.JTableHeader; import javax.swing.table.TableCellEditor; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRichTextString; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; - +import com.connor.dfl.plm.dfl044.DataBaseControl2; import com.connor.dfl.plm.table.CTMap; import com.connor.dfl.plm.table.CTable; import com.connor.dfl.plm.util.DateChooser; @@ -49,8 +65,12 @@ import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.commands.open.OpenFormDialog; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentDatasetType; import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentGroup; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemType; @@ -63,11 +83,10 @@ import com.teamcenter.rac.util.DateButton; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; - -public class ChangeApplyForm extends AbstractRendering { +public class ChangeApplyForm extends AbstractRendering { private TCComponentForm form; private TCSession session; - AbstractAIFApplication app= AIFUtility.getCurrentApplication(); + AbstractAIFApplication app = AIFUtility.getCurrentApplication(); private InterfaceAIFComponent targetComp = app.getTargetComponent(); private TCComponentItemType itemType; public ChangeApplyForm selfform; @@ -76,44 +95,45 @@ public class ChangeApplyForm extends AbstractRendering { private MyTable table2; String pid = ""; + private JScrollPane tablePanel2; + private JScrollPane scrollPane; - // Project_Code pc = new Project_Code(); + // Project_Code pc = new Project_Code(); public List hadList; - //private CTMap model1, model2; + // private CTMap model1, model2; private CTMap model1; DefaultTableModel model2; private String name; - + private String objname; + private String zhangtao; + private String cangku; private JButton addButton; private JButton delButton; - + private DataBaseControl2 data; private JButton addProjectBtn; - private JComboBox ChangeTypeBox;//更改类型 - private JComboBox ProductTypecBox;//产品类型 - private JComboBox ErrorTypeBox;//错误类型 - private JComboBox DutyDepartmentBox;//责任部门 - private JComboBox SalesClassifyBox;//销售分类 - private JComboBox EmergencyNotifyBox;//通知紧急程度 - private JComboBox ProductDepartmentBox;//产品部门 - private JComboBox DrawingChangeTypeBox;//图纸更改类型 - private JComboBox IsNotProductLossBox;//是否产生成本损失 - private JComboBox ReceiveClassifyBox;//料件领用分类 - private JComboBox WAPYJBox;//未制品意见 - private JComboBox ZZYJBox;//在制意见 - private JComboBox SSYJBox;//生产意见 - private JComboBox CLYJBox;//处理意见 - - - - - //时间 + private JComboBox ChangeTypeBox;// 更改类型 + private JComboBox ProductTypecBox;// 产品类型 + private JComboBox ErrorTypeBox;// 错误类型 + private JComboBox DutyDepartmentBox;// 责任部门 + private JComboBox SalesClassifyBox;// 销售分类 + private JComboBox EmergencyNotifyBox;// 通知紧急程度 + private JComboBox ProductDepartmentBox;// 产品部门 + private JComboBox DrawingChangeTypeBox;// 图纸更改类型 + private JComboBox IsNotProductLossBox;// 是否产生成本损失 + private JComboBox ReceiveClassifyBox;// 料件领用分类 + private JComboBox WAPYJBox;// 未制品意见 + private JComboBox ZZYJBox;// 在制意见 + private JComboBox SSYJBox;// 生产意见 + private JComboBox CLYJBox;// 处理意见 + + // 时间 public DefaultComboBoxModel jsrBoxModel; String projectid; - //private JComboBox projectCode;//项目编号 + // private JComboBox projectCode;//项目编号 static String time; int rows1 = 1; String applyname; @@ -134,48 +154,70 @@ public class ChangeApplyForm extends AbstractRendering { private String projectCode; private String affectedPart; - - //存放table2中的数据,保存到数据库中使用 + // 存放table2中的数据,保存到数据库中使用 List changedeList = new ArrayList(); - - - - - - - - public ChangeApplyForm() throws Exception { + public ChangeApplyForm() throws Exception { } - - public ChangeApplyForm(TCComponent arg0) throws Exception { super(arg0); form = (TCComponentForm) arg0; this.session = ((TCSession) app.getSession()); + //获取数据库连接地址 + this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + //获取首选项信息 + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + if (BOMZT == null || BOMZT.length <= 0 ) { + MessageBox.post("首选项DFL2_ZHANGTAO_WAREHOUSE未配置,请联系管理员!!", + "错误", MessageBox.ERROR); + return; + } + TCComponentGroup group = session.getCurrentGroup(); + try { + String group_name = group.getStringProperty("display_name"); + System.out.println("11.04group_name=============="+group_name); + if(group_name.contains(".")) { + String[] names = group_name.split("\\."); + if(names != null && names.length >=2) { + for (int i = 0; i < BOMZT.length; i++) { + if(BOMZT[i].contains(";")) { + String[] zts = BOMZT[i].split(";"); + if(names[names.length-2].equals(zts[0])) { + this.zhangtao = zts[1]; + System.out.println("11.04账套======"+zhangtao); + this.cangku = zts[2]; + System.out.println("11.04仓库======"+cangku); + break; + } + } + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } this.selfform = this; - loadRendering(); + loadRendering(); } - String[] stringArray = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL2_SQL_Connect"); + String[] stringArray = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL2_SQL_Connect"); - private String url = "jdbc:oracle:thin:@//"+stringArray[0];// + private String url = "jdbc:oracle:thin:@//" + stringArray[0];// - private String user = stringArray[1];// + private String user = stringArray[1];// - private String password = stringArray[2];// + private String password = stringArray[2];// - private Connection conn = null;// + private Connection conn = null;// - private PreparedStatement pre = null;// + private PreparedStatement pre = null;// - private ResultSet result = null;// + private ResultSet result = null;// - - - public Connection ConnectionFun() throws SQLException { + public Connection ConnectionFun() throws SQLException { try { System.out.println(url); @@ -184,19 +226,16 @@ public class ChangeApplyForm extends AbstractRendering { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("驱动加载成功"); } catch (ClassNotFoundException e) { - System.out.println("驱动加载失败"); + System.out.println("驱动加载失败"); } - conn=DriverManager.getConnection(url,user,password); + conn = DriverManager.getConnection(url, user, password); System.out.println("数据库连接成功"); return conn; - } - - @Override public void loadRendering() throws TCException { try { @@ -207,247 +246,239 @@ public class ChangeApplyForm extends AbstractRendering { } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); - } - } - private void initUI() throws TCException, SQLException { + } + } + private void initUI() throws TCException, SQLException { this.hadList = new ArrayList(); String[] change_type_stringArrays = session.getPreferenceService().getStringValues("DFL_Form_ChangeType"); - if (change_type_stringArrays == null || change_type_stringArrays.length <= 0 ) { - MessageBox.post("首选项DFL_Form_ChangeType未配置,请联系管理员!!", - "错误", MessageBox.ERROR); + if (change_type_stringArrays == null || change_type_stringArrays.length <= 0) { + MessageBox.post("首选项DFL_Form_ChangeType未配置,请联系管理员!!", "错误", MessageBox.ERROR); return; } - //更改类型 + // 更改类型 ChangeTypeBox = new JComboBox(); - for(int change_type_number = 0;change_type_number=2) { - groupname = buisnisDivisions[buisnisDivisions.length-2]; + if (buisnisDivisions.length >= 2) { + groupname = buisnisDivisions[buisnisDivisions.length - 2]; } table1.setValueAt("申请人", 0, 0); - table1.setValueAt(applyname, 0,1); + table1.setValueAt(applyname, 0, 1); table1.setValueAt("申请变更单号", 0, 2); - System.out.println("申请变更单号 "+my_item_id); + System.out.println("申请变更单号 " + my_item_id); table1.setValueAt(my_item_id, 0, 3); - table1.setValueAt("申请时间", 0, 4); table1.setValueAt(applyDate, 0, 5); table1.setValueAt("产品名称", 1, 0); table1.setValueAt(productname, 1, 1); - table1.setValueAt("产品型号", 1, 2); table1.setValueAt(productmodel, 1, 3); - - table1.setValueAt("客户名称", 1, 4); table1.setValueAt(clientname, 1, 5); - table1.setValueAt("仓库编号", 2, 0);// + String[] stringArray_warehouse = ((TCSession) app.getSession()).getPreferenceService() + .getStringValues("DFL_Form_WarehouseCode"); - String[] stringArray_warehouse = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL_Form_WarehouseCode"); - - - if (stringArray_warehouse == null || stringArray_warehouse.length <= 0 ) { - MessageBox.post("首选项DFL_Form_WarehouseCode未配置,请联系管理员!!", - "错误", MessageBox.ERROR); + if (stringArray_warehouse == null || stringArray_warehouse.length <= 0) { + MessageBox.post("首选项DFL_Form_WarehouseCode未配置,请联系管理员!!", "错误", MessageBox.ERROR); return; - } - - - String warehouse = ""; + } + String warehouse = ""; - for(int z = 0 ;z 0) { List list = new ArrayList(); @@ -719,12 +743,15 @@ public class ChangeApplyForm extends AbstractRendering { } table2.setValueAt(objectname, table2.getSelectedRow(), 2); - table2.setComboCell(table2.getSelectedRow(), 3, new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); - table2.setComboCell(table2.getSelectedRow(), 4, new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); - table2.setComboCell(table2.getSelectedRow(), 9, new DefaultCellEditor(WAPYJBox)); - table2.setComboCell(table2.getSelectedRow(), 11, new DefaultCellEditor(ZZYJBox)); - table2.setComboCell(table2.getSelectedRow(), 13, new DefaultCellEditor(SSYJBox)); - table2.setComboCell(table2.getSelectedRow(), 15, new DefaultCellEditor(CLYJBox)); + table2.setComboCell(table2.getSelectedRow(), 3, + new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); + table2.setComboCell(table2.getSelectedRow(), 4, + new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); + table2.setComboCell(table2.getSelectedRow(), 10, new DefaultCellEditor(WAPYJBox)); + table2.setComboCell(table2.getSelectedRow(), 12, new DefaultCellEditor(ZZYJBox)); + table2.setComboCell(table2.getSelectedRow(), 14, new DefaultCellEditor(SSYJBox)); + table2.setValueAt(kucun, table2.getSelectedRow(), 15); + table2.setComboCell(table2.getSelectedRow(), 16, new DefaultCellEditor(CLYJBox)); } else { javax.swing.JOptionPane.showMessageDialog(null, "输入品号有误或该品写没有版本", "系统提示", @@ -735,7 +762,7 @@ public class ChangeApplyForm extends AbstractRendering { } } } catch (Exception e) { - System.out.println("eeee="+e.getMessage()); + System.out.println("eeee=" + e.getMessage()); e.printStackTrace(); } Vector rowVector = (Vector) dataVector.elementAt(row); @@ -745,31 +772,22 @@ public class ChangeApplyForm extends AbstractRendering { } }; - - - table2 = new MyTable() { @Override public boolean isCellEditable(int row, int column) { - if(column == 0) { - return false; + if (column == 0) { + return false; } return true; } }; - - table2.setModel(model2); // table2.setColumnModel(getColumn(table2, new int[] { 40, 90, 60, 50,50,50,50, 70, 75,75,70,70, 60, 70,60,70 })); - table2.setColumnModel(getColumn(table2, new int[] { 90, 180, 180, 180,180,180,180, 180, 180,180,180,180, 180, 180,180,180 })); + table2.setColumnModel(getColumn(table2, new int[] { 60, 150, 260, 70,70,70,70, 70,260, 90,90,70,70, 70, 70,70,150 })); // table2.setColumnModel(getColumn(table2, new int[] { 90, 90, 90, 90,90,90,90, 90, 90,90,90,90, 90, 90,90,90 })); - table2.setRowHeight(35); - - - - + table2.setRowHeight(50); tcr = new DefaultTableCellRenderer(); tcr.setHorizontalAlignment(SwingConstants.CENTER); @@ -780,69 +798,90 @@ public class ChangeApplyForm extends AbstractRendering { table2.setDefaultRenderer(Object.class, tcr); table2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + addButton = new JButton(" 添加 "); + delButton = new JButton(" 删除 "); - addButton = new JButton("添加"); - delButton = new JButton("删除"); - - List listdetils = getChangeDetail(name); - if(listdetils.size()>0) { + List listdetils = getChangeDetail(name); + if (listdetils.size() > 0) { - for(int j = 0;j< listdetils.size();j++) { + for (int j = 0; j < listdetils.size(); j++) { model2.addRow(new String[] { Integer.toString(rows1++) }); - - ChangeDetils cd = (ChangeDetils) listdetils.get(j); - System.out.println("%%%%%%%%%%%%%"+cd.getPH()); + ChangeDetils cd = (ChangeDetils) listdetils.get(j); + System.out.println("%%%%%%%%%%%%%" + cd.getPH()); System.out.println(cd.getObjectCode()); int count = table2.getRowCount(); - System.out.println("==============="+count); + System.out.println("===============" + count); - table2.setValueAt( cd.getPH(),j, 1); + table2.setValueAt(cd.getPH(), j, 1); table2.setValueAt(cd.getPM(), j, 2); table2.setValueAt(cd.getYBB(), j, 3); table2.setValueAt(cd.getXBB(), j, 4); - table2.setValueAt(cd.getYSL() , j, 5); + table2.setValueAt(cd.getYSL(), j, 5); table2.setValueAt(cd.getXSL(), j, 6); table2.setValueAt(cd.getBGSL(), j, 7); - table2.setValueAt(cd.getWZPSL(), j, 8); - table2.setValueAt(cd.getWZPUJ(), j, 9); - table2.setValueAt(cd.getZZSL(), j, 10); - table2.setValueAt(cd.getZZYJ(), j, 11); - table2.setValueAt(cd.getSCSL(), j, 12); - table2.setValueAt(cd.getSSYJ(), j, 13); - table2.setValueAt(cd.getCKSL(), j, 14); - table2.setValueAt(cd.getCLYJ() , j, 15); - + table2.setValueAt(cd.getGGSM(), j, 8); + + table2.setValueAt(cd.getWZPSL(), j, 9); + table2.setValueAt(cd.getWZPUJ(), j, 10); + table2.setValueAt(cd.getZZSL(), j, 11); + table2.setValueAt(cd.getZZYJ(), j, 12); + table2.setValueAt(cd.getSCSL(), j, 13); + table2.setValueAt(cd.getSSYJ(), j, 14); + table2.setValueAt(cd.getCKSL(), j, 15); + table2.setValueAt(cd.getCLYJ(), j, 16); + + table2.setComboCell(j, 10, new DefaultCellEditor(WAPYJBox)); + table2.setComboCell(j, 12, new DefaultCellEditor(ZZYJBox)); + table2.setComboCell(j, 14, new DefaultCellEditor(SSYJBox)); + table2.setComboCell(j, 16, new DefaultCellEditor(CLYJBox)); } } - - addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { + table2.setComboCell(rows1-1, 10, new DefaultCellEditor(WAPYJBox)); + table2.setComboCell(rows1-1, 12, new DefaultCellEditor(ZZYJBox)); + table2.setComboCell(rows1-1, 14, new DefaultCellEditor(SSYJBox)); + table2.setComboCell(rows1-1, 16, new DefaultCellEditor(CLYJBox)); model2.addRow(new String[] { Integer.toString(rows1++) }); // Object[] rowData = new Object[] {"","","","","","","","","",WAPYJBox,"",ZZYJBox,"","","",""}; // model2.addRow(rowData); + if (rows1 > 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), count)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), 300)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } } }); delButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int sRow = table2.getSelectedRow(); - if(sRow == -1) { + if (sRow == -1) { javax.swing.JOptionPane.showMessageDialog(null, "请选中后移除", "系统提示", javax.swing.JOptionPane.WARNING_MESSAGE); return; } - //List list =getChangeDetail(name); + // List list =getChangeDetail(name); int[] sRows = table2.getSelectedRows(); - int p ; - for (int j = sRows.length-1; j >=0 ; j--) { + int p; + for (int j = sRows.length - 1; j >= 0; j--) { String PH = (String) model2.getValueAt(sRows[j], 1); - System.out.println("=============品号"+PH); + System.out.println("=============品号" + PH); delChangedetil(name, PH); model2.removeRow(table2.getSelectedRow()); for (int i = sRows[j]; i < table2.getRowCount(); i++) { @@ -851,185 +890,676 @@ public class ChangeApplyForm extends AbstractRendering { rows1--; } + if (rows1 > 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), count)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), 300)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } } }); JPanel tablePanel1 = new JPanel(); tablePanel1.add(table1); tablePanel1.setPreferredSize(new Dimension(1600, 700)); - JScrollPane tablePanel2 = new JScrollPane(table2); + tablePanel2 = new JScrollPane(table2); tablePanel2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); - tablePanel2.setPreferredSize(new Dimension(1600, 300)); + if (rows1 > 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension(1600, count)); + } else { + tablePanel2.setPreferredSize(new Dimension(1600, 300)); + } JPanel buttonPanel = new JPanel(new PropertyLayout()); - buttonPanel.add("1.1.left.top",addButton); - buttonPanel.add("2.1.left.top",delButton); + buttonPanel.add("1.1.left.top", addButton); + buttonPanel.add("2.1.left.top", delButton); JPanel buttonPanel0 = new JPanel(new PropertyLayout()); - buttonPanel0.add("1.1.left.top",new JLabel(" ")); - buttonPanel0.add("2.1.left.top",new JLabel(" ")); - buttonPanel0.add("3.1.left.top",new JLabel(" ")); - buttonPanel0.add("4.1.left.top",new JLabel(" ")); - buttonPanel0.add("5.1.left.top",new JLabel(" ")); - buttonPanel0.add("6.1.left.top",new JLabel(" ")); - buttonPanel0.add("7.1.left.top",new JLabel(" ")); - buttonPanel0.add("8.1.left.top",new JLabel(" ")); - buttonPanel0.add("9.1.left.top",new JLabel(" ")); - buttonPanel0.add("10.1.left.top",new JLabel(" ")); - buttonPanel0.add("11.1.left.top",new JLabel(" ")); - buttonPanel0.add("12.1.left.top",new JLabel(" ")); - buttonPanel0.add("13.1.left.top",new JLabel(" ")); - buttonPanel0.add("14.1.left.top",new JLabel(" ")); - buttonPanel0.add("15.1.left.top",new JLabel(" ")); - buttonPanel0.add("16.1.left.top",btn_tzfz); - buttonPanel0.add("17.1.left.top",new JLabel(" ")); - buttonPanel0.add("18.1.left.top",new JLabel(" ")); - buttonPanel0.add("19.1.left.top",new JLabel(" ")); - // buttonPanel0.add("20.1.left.top",btn); - buttonPanel0.add("20.1.left.top",new JLabel(" ")); - buttonPanel0.add("21.1.left.top",new JLabel(" ")); - buttonPanel0.add("22.1.left.top",zt_btn); - buttonPanel0.add("23.1.left.top",new JLabel(" ")); - buttonPanel0.add("24.1.left.top",new JLabel(" ")); - buttonPanel0.add("25.1.left.top",new JLabel(" ")); - + buttonPanel0.add("1.1.left.top", new JLabel(" ")); + buttonPanel0.add("2.1.left.top", new JLabel(" ")); + buttonPanel0.add("3.1.left.top", new JLabel(" ")); + buttonPanel0.add("4.1.left.top", new JLabel(" ")); + buttonPanel0.add("5.1.left.top", new JLabel(" ")); + buttonPanel0.add("6.1.left.top", new JLabel(" ")); + buttonPanel0.add("7.1.left.top", new JLabel(" ")); + buttonPanel0.add("8.1.left.top", new JLabel(" ")); + buttonPanel0.add("9.1.left.top", new JLabel(" ")); + buttonPanel0.add("10.1.left.top", new JLabel(" ")); + buttonPanel0.add("11.1.left.top", new JLabel(" ")); + buttonPanel0.add("12.1.left.top", new JLabel(" ")); + buttonPanel0.add("13.1.left.top", new JLabel(" ")); + buttonPanel0.add("14.1.left.top", new JLabel(" ")); + buttonPanel0.add("15.1.left.top", new JLabel(" ")); + buttonPanel0.add("16.1.left.top", btn_tzfz); + buttonPanel0.add("17.1.left.top", new JLabel(" ")); +// buttonPanel0.add("18.1.left.top", new JLabel(" ")); + buttonPanel0.add("18.1.left.top",btn); + buttonPanel0.add("19.1.left.top", new JLabel(" ")); + buttonPanel0.add("20.1.left.top", new JLabel(" ")); + buttonPanel0.add("21.1.left.top", new JLabel(" ")); + buttonPanel0.add("22.1.left.top", zt_btn); + buttonPanel0.add("23.1.left.top", new JLabel(" ")); + buttonPanel0.add("24.1.left.top", new JLabel(" ")); + buttonPanel0.add("25.1.left.top", new JLabel(" ")); JPanel rootPanel = new JPanel(new PropertyLayout()); JLabel detailsLable = new JLabel("更改明细"); detailsLable.setFont(new Font("宋体", 1, 14)); + rootPanel.add("1.1.center.top", titleLable); + rootPanel.add("2.1.left.top", tablePanel1); + rootPanel.add("2.2.left.top", buttonPanel0); - rootPanel.add("1.1.center.top",titleLable); - rootPanel.add("2.1.left.top",tablePanel1); - rootPanel.add("2.2.left.top",buttonPanel0); - + // rootPanel.add("2.2.left.top",showCalendarPanel); - //rootPanel.add("2.2.left.top",showCalendarPanel); + rootPanel.add("3.1.left.top", detailsLable); + JPanel test = new JPanel(new PropertyLayout()); + test.add("1.1.left.top", tablePanel2); + test.add("1.2.left.top", buttonPanel); - rootPanel.add("3.1.left.top",detailsLable); + JPanel mainPanel = new JPanel(new BorderLayout()); + mainPanel.add(rootPanel, BorderLayout.NORTH); + mainPanel.add(test, BorderLayout.WEST); - rootPanel.add("4.1.left.top",tablePanel2); - rootPanel.add("4.2.left.top",buttonPanel); - - //this.setPreferredSize(new Dimension(1820, 1000)); + // this.setPreferredSize(new Dimension(1820, 1000)); this.setSize(1600, 1300); - this.setLayout(new BorderLayout()); - JScrollPane scrollPane = new JScrollPane(rootPanel); + scrollPane = new JScrollPane(mainPanel); scrollPane.getVerticalScrollBar().setUnitIncrement(20); - this.add(scrollPane,BorderLayout.CENTER); + this.add(scrollPane, BorderLayout.CENTER); this.setBackground(Color.WHITE); + + this.addComponentListener(new ComponentListener() { + + @Override + public void componentShown(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void componentResized(ComponentEvent e) { + // TODO Auto-generated method stub + Component component2 = e.getComponent(); + int width3 = component2.getWidth(); + if (width3 < 1711) { + tablePanel2.setPreferredSize(new Dimension(1600, (int) tablePanel2.getPreferredSize().getHeight())); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize( + new Dimension((width3 - 1711) + 1600, (int) tablePanel2.getPreferredSize().getHeight())); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } + + } + + @Override + public void componentMoved(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void componentHidden(ComponentEvent e) { + // TODO Auto-generated method stub + + } + }); + this.setVisible(true); } @Override public void saveRendering() { + if(model1.getValueAt(0, 5)==null||model1.getValueAt(4, 1)==null) { + MessageBox.post("申请时间与更改类型为必填项","",MessageBox.ERROR); + } delChangeForm(name); ChangeOrderBean bn = new ChangeOrderBean(); bn.setObjectCode(name); - bn.setApplyName(model1.getValueAt(0, 1) == null ? "" :model1.getValueAt(0, 1).toString()); - bn.setApplyDate(model1.getValueAt(0, 5) == null ? "" :model1.getValueAt(0, 5).toString()); - bn.setProjectCode(model1.getValueAt(8, 1) == null ? "" :model1.getValueAt(8, 1).toString()); - bn.setClientNae(model1.getValueAt(1, 5) == null ? "" :model1.getValueAt(1, 5).toString()); - bn.setProductDepartment(model1.getValueAt(3, 1) == null ? "" :model1.getValueAt(3, 1).toString()); - bn.setProductName(model1.getValueAt(1, 1) == null ? "" :model1.getValueAt(1, 1).toString()); - bn.setProjectModel(model1.getValueAt(1, 3) == null ? "" :model1.getValueAt(1, 3).toString()); - //受影响的设备 - bn.setAffectedPart(model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString()); - - bn.setChangeType(model1.getValueAt(4, 1) == null ? "" :model1.getValueAt(4, 1).toString()); - bn.setProductType(model1.getValueAt(4, 3) == null ? "" :model1.getValueAt(4, 3).toString()); - bn.setErrorType(model1.getValueAt(4, 5) == null ? "" :model1.getValueAt(4, 5).toString()); - bn.setDutyDepartment(model1.getValueAt(3, 3) == null ? "" :model1.getValueAt(3, 3).toString()); - bn.setDutyMan(model1.getValueAt(3, 5) == null ? "" :model1.getValueAt(3, 5).toString()); - //更改原因 - bn.setChangeReason(model1.getValueAt(9, 1) == null ? "" :model1.getValueAt(9, 1).toString()); - - bn.setSalseClassify(model1.getValueAt(5, 3) == null ? "" :model1.getValueAt(5, 3).toString()); - - bn.setPriceBooking(model1.getValueAt(5, 1) == null ? "" :model1.getValueAt(5, 1).toString()); - - bn.setIsNotProductLoss(model1.getValueAt(5, 5) == null ? "" :model1.getValueAt(5, 5).toString()); - bn.setReceiveClassify(model1.getValueAt(7, 3) == null ? "" :model1.getValueAt(7, 3).toString()); - bn.setWarehouseCode(model1.getValueAt(2, 1) == null ? "" :model1.getValueAt(2, 1).toString()); - //通知紧急程度 - bn.setNotifyEmergencyProcedures(model1.getValueAt(2, 3) == null ? "" :model1.getValueAt(2, 3).toString()); - - bn.setDrawingTo(model1.getValueAt(7, 5) == null ? "" :model1.getValueAt(7, 5).toString()); - - bn.setChangeListCode(model1.getValueAt(0, 3) == null ? "" :model1.getValueAt(0, 3).toString()); - bn.setTZChangeType(model1.getValueAt(2, 5) == null ? "" :model1.getValueAt(2, 5).toString()); + bn.setApplyName(model1.getValueAt(0, 1) == null ? "" : model1.getValueAt(0, 1).toString()); + bn.setApplyDate(model1.getValueAt(0, 5) == null ? "" : model1.getValueAt(0, 5).toString()); + bn.setProjectCode(model1.getValueAt(8, 1) == null ? "" : model1.getValueAt(8, 1).toString()); + bn.setClientNae(model1.getValueAt(1, 5) == null ? "" : model1.getValueAt(1, 5).toString()); + bn.setProductDepartment(model1.getValueAt(3, 1) == null ? "" : model1.getValueAt(3, 1).toString()); + bn.setProductName(model1.getValueAt(1, 1) == null ? "" : model1.getValueAt(1, 1).toString()); + bn.setProjectModel(model1.getValueAt(1, 3) == null ? "" : model1.getValueAt(1, 3).toString()); + // 受影响的设备 + bn.setAffectedPart(model1.getValueAt(6, 1) == null ? "" : model1.getValueAt(6, 1).toString()); + + bn.setChangeType(model1.getValueAt(4, 1) == null ? "" : model1.getValueAt(4, 1).toString()); + bn.setProductType(model1.getValueAt(4, 3) == null ? "" : model1.getValueAt(4, 3).toString()); + bn.setErrorType(model1.getValueAt(4, 5) == null ? "" : model1.getValueAt(4, 5).toString()); + bn.setDutyDepartment(model1.getValueAt(3, 3) == null ? "" : model1.getValueAt(3, 3).toString()); + bn.setDutyMan(model1.getValueAt(3, 5) == null ? "" : model1.getValueAt(3, 5).toString()); + // 更改原因 + bn.setChangeReason(model1.getValueAt(9, 1) == null ? "" : model1.getValueAt(9, 1).toString()); + + bn.setSalseClassify(model1.getValueAt(5, 3) == null ? "" : model1.getValueAt(5, 3).toString()); + + bn.setPriceBooking(model1.getValueAt(5, 1) == null ? "" : model1.getValueAt(5, 1).toString()); + + bn.setIsNotProductLoss(model1.getValueAt(5, 5) == null ? "" : model1.getValueAt(5, 5).toString()); + bn.setReceiveClassify(model1.getValueAt(7, 3) == null ? "" : model1.getValueAt(7, 3).toString()); + bn.setWarehouseCode(model1.getValueAt(2, 1) == null ? "" : model1.getValueAt(2, 1).toString()); + // 通知紧急程度 + bn.setNotifyEmergencyProcedures(model1.getValueAt(2, 3) == null ? "" : model1.getValueAt(2, 3).toString()); + + bn.setDrawingTo(model1.getValueAt(7, 5) == null ? "" : model1.getValueAt(7, 5).toString()); + + bn.setChangeListCode(model1.getValueAt(0, 3) == null ? "" : model1.getValueAt(0, 3).toString()); + bn.setTZChangeType(model1.getValueAt(2, 5) == null ? "" : model1.getValueAt(2, 5).toString()); bn.setSUOSU_ProductDepartment(" "); - //model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString() - //公司账套 - bn.setAccountSet(model1.getValueAt(10, 1) == null ? "" :model1.getValueAt(10, 1).toString()); + // model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString() + // 公司账套 + bn.setAccountSet(model1.getValueAt(10, 1) == null ? "" : model1.getValueAt(10, 1).toString()); - bn.setProjectState(model1.getValueAt(7, 1) == null ? "" :model1.getValueAt(7, 1).toString()); + bn.setProjectState(model1.getValueAt(7, 1) == null ? "" : model1.getValueAt(7, 1).toString()); insertMes(bn); - - - - - //=================================================================== - - + // =================================================================== delAllChangedetil(name); - for(int cdss = 0 ; cdss changeMesg, + List changeDetils, String model) throws IOException, FileNotFoundException { + // 引用文件模板 + InputStream modeFile = ChangeNotifyForm.class.getResourceAsStream(model); + // 创建XSSFWorkbook对象(excel的文档对象) + XSSFWorkbook wb; + wb = new XSSFWorkbook(modeFile); + XSSFSheet sheet = wb.getSheetAt(0); +// XSSFRow row1 = sheet.getRow(startRow); +// XSSFCell cell1 = row1.getCell(0); +// XSSFCellStyle style = cell1.getCellStyle(); + if (changeMesg != null && changeMesg.size() > 0) { + ChangeOrderBean cob = changeMesg.get(0); + String sqr = cob.getApplyName(); + String sqsj = cob.getApplyDate(); + String xmbh = cob.getProjectCode(); + String khmc = cob.getClientNae(); + String cpbm = cob.getProductDepartment(); + String cpmc = cob.getProductName(); + String cpxh = cob.getProjectModel(); + String gglx = cob.getChangeType(); + String cplx = cob.getProductType(); + String tzgglx = cob.getTZChangeType(); + String cwlx = cob.getErrorType(); + String zrbm = cob.getDutyDepartment(); + String zrr = cob.getDutyMan(); + String ggyy = cob.getChangeReason(); + String ssfl = cob.getSalseClassify(); + String jgyg = cob.getPriceBooking(); + String sfcscbss = cob.getIsNotProductLoss(); + String ljlyfl = cob.getReceiveClassify(); + String ckbh = cob.getWarehouseCode(); + String zt = cob.getAccountSet(); + String tzjjcd = cob.getNotifyEmergencyProcedures(); + String tzfz = cob.getDrawingTo(); + String syxdsbhlbj = cob.getAffectedPart(); + String xmjd = cob.getProjectState(); + String bgtzdh = cob.getChangeListCode(); + + XSSFRow row = sheet.getRow(0); + XSSFCell cell = row.getCell(0); + XSSFRichTextString richTextString = new XSSFRichTextString(name +"-"+ objname); + cell.setCellValue(richTextString); + + row = sheet.getRow(1); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(sqr); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(bgtzdh); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(sqsj); + cell.setCellValue(richTextString); + + row = sheet.getRow(2); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(cpmc); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(cpxh); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(khmc); + cell.setCellValue(richTextString); + + row = sheet.getRow(3); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(ckbh); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(tzjjcd); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(tzgglx); + cell.setCellValue(richTextString); + + row = sheet.getRow(4); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(cpbm); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(zrbm); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(zrr); + cell.setCellValue(richTextString); + + row = sheet.getRow(5); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(gglx); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(cplx); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(cwlx); + cell.setCellValue(richTextString); + + row = sheet.getRow(6); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(jgyg); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(ssfl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(sfcscbss); + cell.setCellValue(richTextString); + + row = sheet.getRow(7); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(syxdsbhlbj); + cell.setCellValue(richTextString); + + row = sheet.getRow(8); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(xmjd); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(ljlyfl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(tzfz); + cell.setCellValue(richTextString); + + row = sheet.getRow(9); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(xmbh); + cell.setCellValue(richTextString); + + row = sheet.getRow(10); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(ggyy); + cell.setCellValue(richTextString); + + row = sheet.getRow(11); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(zt); + cell.setCellValue(richTextString); + } + + if (changeDetils != null && changeDetils.size() > 0) { + for (int i = 0; i < changeDetils.size(); i++) { + XSSFRow row = sheet.getRow(i + 16); + if (row == null) { + row = sheet.createRow(i + 16); + } + ChangeDetils changeDetil = changeDetils.get(i); + String ph = changeDetil.getPH(); + String pm = changeDetil.getPM(); + String ybb = changeDetil.getYBB(); + String xbb = changeDetil.getXBB(); + String ysl = changeDetil.getYSL(); + String xsl = changeDetil.getXSL(); + String bgsl = changeDetil.getBGSL(); + String ggsm = changeDetil.getGGSM(); + String wzpsl = changeDetil.getWZPSL(); + String wzpuj = changeDetil.getWZPUJ(); + String zzsl = changeDetil.getZZSL(); + String zzyj = changeDetil.getZZYJ(); + String scsl = changeDetil.getSCSL(); + String ssyj = changeDetil.getSSYJ(); + String cksl = changeDetil.getCKSL(); + String clyj = changeDetil.getCLYJ(); + + XSSFCell cell = row.getCell(0); + if (cell == null) { + cell = row.createCell(0); + + } + XSSFRichTextString richTextString = new XSSFRichTextString(i + 1 + ""); + cell.setCellValue(richTextString); + + cell = row.getCell(1); + if (cell == null) { + cell = row.createCell(1); + + } + richTextString = new XSSFRichTextString(ph); + cell.setCellValue(richTextString); + + cell = row.getCell(2); + if (cell == null) { + cell = row.createCell(2); + + } + richTextString = new XSSFRichTextString(pm); + cell.setCellValue(richTextString); + + cell = row.getCell(3); + if (cell == null) { + cell = row.createCell(3); + + } + richTextString = new XSSFRichTextString(ybb); + cell.setCellValue(richTextString); + + cell = row.getCell(4); + if (cell == null) { + cell = row.createCell(4); + + } + richTextString = new XSSFRichTextString(xbb); + cell.setCellValue(richTextString); + + cell = row.getCell(5); + if (cell == null) { + cell = row.createCell(5); + + } + richTextString = new XSSFRichTextString(ysl); + cell.setCellValue(richTextString); + + cell = row.getCell(6); + if (cell == null) { + cell = row.createCell(6); + + } + richTextString = new XSSFRichTextString(xsl); + cell.setCellValue(richTextString); + + cell = row.getCell(7); + if (cell == null) { + cell = row.createCell(7); + + } + richTextString = new XSSFRichTextString(bgsl); + cell.setCellValue(richTextString); + + cell = row.getCell(8); + if (cell == null) { + cell = row.createCell(8); + + } + richTextString = new XSSFRichTextString(ggsm); + cell.setCellValue(richTextString); + + cell = row.getCell(9); + if (cell == null) { + cell = row.createCell(9); + + } + richTextString = new XSSFRichTextString(wzpsl); + cell.setCellValue(richTextString); + + cell = row.getCell(10); + if (cell == null) { + cell = row.createCell(10); + + } + richTextString = new XSSFRichTextString(wzpuj); + cell.setCellValue(richTextString); + + cell = row.getCell(11); + if (cell == null) { + cell = row.createCell(11); + } + richTextString = new XSSFRichTextString(zzsl); + cell.setCellValue(richTextString); + + cell = row.getCell(12); + if (cell == null) { + cell = row.createCell(12); + + } + richTextString = new XSSFRichTextString(zzyj); + cell.setCellValue(richTextString); + + cell = row.getCell(13); + if (cell == null) { + cell = row.createCell(13); + } + richTextString = new XSSFRichTextString(scsl); + cell.setCellValue(richTextString); - //获取变更单信息 + cell = row.getCell(14); + if (cell == null) { + cell = row.createCell(14); + + } + richTextString = new XSSFRichTextString(ssyj); + cell.setCellValue(richTextString); + + cell = row.getCell(15); + if (cell == null) { + cell = row.createCell(15); + + } + richTextString = new XSSFRichTextString(cksl); + cell.setCellValue(richTextString); + + cell = row.getCell(16); + if (cell == null) { + cell = row.createCell(16); + + } + richTextString = new XSSFRichTextString(clyj); + cell.setCellValue(richTextString); + } + } + + // 判断是否存在目录. 不存在则创建 + isChartPathExist(filepath); + // 输出Excel文件 + // FileOutputStream output = new FileOutputStream(filepath + "\\" + filename); + FileOutputStream output = new FileOutputStream(new File(filepath + "\\" + filename)); + wb.write(output); + + output.close(); + modeFile.close(); + } + + private void isChartPathExist(String dirPath) { + File file = new File(dirPath); + if (!file.exists()) { + file.mkdirs(); + } + } + + + + // 获取变更单信息 private List getChangeMesg(String id) { List list = new ArrayList(); ChangeOrderBean bn = new ChangeOrderBean(); ResultSet r = null; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEFORM where objectCode=?";// try { con = ConnectionFun(); - stmt=con.prepareStatement(sql); - stmt.setString(1,id); - r=stmt.executeQuery(); - while(r.next()){ + stmt = con.prepareStatement(sql); + stmt.setString(1, id); + r = stmt.executeQuery(); + while (r.next()) { bn.setObjectCode(r.getString(1)); bn.setApplyName(r.getString(2)); bn.setApplyDate(r.getString(3)); @@ -1062,9 +1592,9 @@ public class ChangeApplyForm extends AbstractRendering { list.add(bn); } - }catch (SQLException e) { + } catch (SQLException e) { e.printStackTrace(); - }finally{ + } finally { try { r.close(); stmt.close(); @@ -1075,24 +1605,21 @@ public class ChangeApplyForm extends AbstractRendering { } return list; - } - - - + } public List getChangeDetail(String id) { List list = new ArrayList(); ResultSet r = null; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEDETAILS where objectCode=?";// try { con = ConnectionFun(); - stmt=con.prepareStatement(sql); - stmt.setString(1,id); - r=stmt.executeQuery(); - while(r.next()){ + stmt = con.prepareStatement(sql); + stmt.setString(1, id); + r = stmt.executeQuery(); + while (r.next()) { ChangeDetils cd = new ChangeDetils(); System.out.println(r.getString(1)); cd.setObjectCode(r.getString(1)); @@ -1111,11 +1638,12 @@ public class ChangeApplyForm extends AbstractRendering { cd.setSSYJ(r.getString(14)); cd.setCKSL(r.getString(15)); cd.setCLYJ(r.getString(16)); + cd.setGGSM(r.getString(17)); list.add(cd); } - }catch (SQLException e) { + } catch (SQLException e) { e.printStackTrace(); - }finally{ + } finally { try { r.close(); stmt.close(); @@ -1125,122 +1653,108 @@ public class ChangeApplyForm extends AbstractRendering { } } - return list; } - - - - - public void setValue() { System.out.println("加载数据"); - List list = getChangeMesg(name); -System.out.println("list.size=================="+list.size()); - if(list.size() > 0) { - ChangeOrderBean bn = (ChangeOrderBean) list.get(list.size()-1); + List list = getChangeMesg(name); + System.out.println("list.size==================" + list.size()); + if (list.size() > 0) { + ChangeOrderBean bn = (ChangeOrderBean) list.get(list.size() - 1); System.out.println(bn.getApplyName()); - table1.setValueAt(bn.getApplyName(),0, 1); - table1.setValueAt(bn.getApplyDate(),0, 5); - table1.setValueAt(bn.getProjectCode(),8, 1); - table1.setValueAt(bn.getClientNae(),1, 5); - table1.setValueAt(bn.getProductDepartment(),3, 1); - table1.setValueAt(bn.getProductName(),1, 1); - table1.setValueAt(bn.getProjectModel(),1, 3); - //受影响的零部件 - table1.setValueAt(bn.getAffectedPart(),6, 1); - - table1.setValueAt(bn.getChangeType(),4, 1); - table1.setValueAt(bn.getProductType(),4, 3); - table1.setValueAt(bn.getErrorType(),4, 5); - table1.setValueAt(bn.getDutyDepartment(),3, 3); - table1.setValueAt(bn.getDutyMan(),3, 5); - table1.setValueAt(bn.getChangeReason(),9, 1); - table1.setValueAt(bn.getSalseClassify(),5, 3); - table1.setValueAt(bn.getPriceBooking(),5, 1); - table1.setValueAt(bn.getIsNotProductLoss(),5, 5); - table1.setValueAt(bn.getReceiveClassify(),7, 3); - table1.setValueAt(bn.getWarehouseCode(),2, 1); - - //账套 - table1.setValueAt(bn.getAccountSet(),10, 1); - //通知紧急程度 - table1.setValueAt(bn.getNotifyEmergencyProcedures(),2, 3); - - table1.setValueAt(bn.getDrawingTo(),7, 5); - - table1.setValueAt(bn.getChangeListCode(),0, 3); - table1.setValueAt(bn.getTZChangeType(),2, 5); - // table1.setValueAt(bn.getSUOSU_ProductDepartment(),6, 1); - table1.setValueAt(bn.getProjectState(),7, 1); - - - //table2 添加行加入数 + table1.setValueAt(bn.getApplyName(), 0, 1); + table1.setValueAt(bn.getApplyDate(), 0, 5); + table1.setValueAt(bn.getProjectCode(), 8, 1); + table1.setValueAt(bn.getClientNae(), 1, 5); + table1.setValueAt(bn.getProductDepartment(), 3, 1); + table1.setValueAt(bn.getProductName(), 1, 1); + table1.setValueAt(bn.getProjectModel(), 1, 3); + // 受影响的零部件 + table1.setValueAt(bn.getAffectedPart(), 6, 1); + + table1.setValueAt(bn.getChangeType(), 4, 1); + table1.setValueAt(bn.getProductType(), 4, 3); + table1.setValueAt(bn.getErrorType(), 4, 5); + table1.setValueAt(bn.getDutyDepartment(), 3, 3); + table1.setValueAt(bn.getDutyMan(), 3, 5); + table1.setValueAt(bn.getChangeReason(), 9, 1); + table1.setValueAt(bn.getSalseClassify(), 5, 3); + table1.setValueAt(bn.getPriceBooking(), 5, 1); + table1.setValueAt(bn.getIsNotProductLoss(), 5, 5); + table1.setValueAt(bn.getReceiveClassify(), 7, 3); + table1.setValueAt(bn.getWarehouseCode(), 2, 1); + + // 账套 + table1.setValueAt(bn.getAccountSet(), 10, 1); + // 通知紧急程度 + table1.setValueAt(bn.getNotifyEmergencyProcedures(), 2, 3); + + table1.setValueAt(bn.getDrawingTo(), 7, 5); + + table1.setValueAt(bn.getChangeListCode(), 0, 3); + table1.setValueAt(bn.getTZChangeType(), 2, 5); + // table1.setValueAt(bn.getSUOSU_ProductDepartment(),6, 1); + table1.setValueAt(bn.getProjectState(), 7, 1); + + // table2 添加行加入数 } - - // List listsss = getChangeDetail(name); - // System.out.println(listsss.size()); - // if(listsss.size()>0) { - // // - // } - // } - - - - + // List listsss = getChangeDetail(name); + // System.out.println(listsss.size()); + // if(listsss.size()>0) { + // // + // } + // } } - - //保存时提交到数据库 + // 保存时提交到数据库 public void insertMes(ChangeOrderBean bn) { Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "insert into DFL_CHANGEFORM values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - stmt.setString(1,bn.getObjectCode()); - stmt.setString(2,bn.getApplyName()); - stmt.setString(3,bn.getApplyDate()); - stmt.setString(4,bn.getProjectCode()); - stmt.setString(5,bn.getClientNae()); - stmt.setString(6,bn.getProductDepartment()); - stmt.setString(7,bn.getProductName()); + stmt.setString(1, bn.getObjectCode()); + stmt.setString(2, bn.getApplyName()); + stmt.setString(3, bn.getApplyDate()); + stmt.setString(4, bn.getProjectCode()); + stmt.setString(5, bn.getClientNae()); + stmt.setString(6, bn.getProductDepartment()); + stmt.setString(7, bn.getProductName()); - stmt.setString(8,bn.getProjectModel()); - stmt.setString(9,bn.getAffectedPart()); - stmt.setString(10,bn.getChangeType()); - stmt.setString(11,bn.getProductType()); + stmt.setString(8, bn.getProjectModel()); + stmt.setString(9, bn.getAffectedPart()); + stmt.setString(10, bn.getChangeType()); + stmt.setString(11, bn.getProductType()); + stmt.setString(12, bn.getErrorType()); + stmt.setString(13, bn.getDutyDepartment()); + stmt.setString(14, bn.getDutyMan()); - stmt.setString(12,bn.getErrorType()); - stmt.setString(13,bn.getDutyDepartment()); - stmt.setString(14,bn.getDutyMan()); + stmt.setString(15, bn.getChangeReason()); - stmt.setString(15,bn.getChangeReason()); + stmt.setString(16, bn.getSalseClassify()); - stmt.setString(16,bn.getSalseClassify()); + stmt.setString(17, bn.getPriceBooking()); - stmt.setString(17,bn.getPriceBooking()); + stmt.setString(18, bn.getIsNotProductLoss()); + stmt.setString(19, bn.getReceiveClassify()); + stmt.setString(20, bn.getWarehouseCode()); + stmt.setString(21, bn.getAccountSet()); - stmt.setString(18,bn.getIsNotProductLoss()); - stmt.setString(19,bn.getReceiveClassify()); - stmt.setString(20,bn.getWarehouseCode()); - stmt.setString(21,bn.getAccountSet()); + stmt.setString(22, bn.getNotifyEmergencyProcedures()); + stmt.setString(23, bn.getDrawingTo()); + stmt.setString(24, bn.getChangeListCode()); - stmt.setString(22,bn.getNotifyEmergencyProcedures()); - stmt.setString(23,bn.getDrawingTo()); - stmt.setString(24,bn.getChangeListCode()); - - stmt.setString(25,bn.getTZChangeType()); - stmt.setString(26,bn.getSUOSU_ProductDepartment()); - stmt.setString(27,bn.getProjectState()); - stmt.executeUpdate() ; + stmt.setString(25, bn.getTZChangeType()); + stmt.setString(26, bn.getSUOSU_ProductDepartment()); + stmt.setString(27, bn.getProjectState()); + stmt.executeUpdate(); System.out.println("数据插入数据库完成"); } catch (Exception ex) { @@ -1254,43 +1768,37 @@ System.out.println("list.size=================="+list.size()); } } - } - - - - /** - * 插入更改明细 + * 插入更改明细 */ - - public void insertChangeDetailsMes(ChangeDetils cd) { Connection con = null; - PreparedStatement stmt=null; - String sql = "insert into DFL_CHANGEDETAILS values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + PreparedStatement stmt = null; + String sql = "insert into DFL_CHANGEDETAILS values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - stmt.setString(1,cd.getObjectCode()); - stmt.setString(2,cd.getPH()); - stmt.setString(3,cd.getPM()); - stmt.setString(4,cd.getYBB()); - stmt.setString(5,cd.getXBB()); - stmt.setString(6,cd.getYSL()); - stmt.setString(7,cd.getXSL()); - stmt.setString(8,cd.getBGSL()); - stmt.setString(9,cd.getWZPSL()); - stmt.setString(10,cd.getWZPUJ()); - stmt.setString(11,cd.getZZSL()); - stmt.setString(12,cd.getZZYJ()); - stmt.setString(13,cd.getSCSL()); - stmt.setString(14,cd.getSSYJ()); - stmt.setString(15,cd.getCKSL()); - stmt.setString(16,cd.getCLYJ()); - stmt.executeUpdate() ; + stmt.setString(1, cd.getObjectCode()); + stmt.setString(2, cd.getPH()); + stmt.setString(3, cd.getPM()); + stmt.setString(4, cd.getYBB()); + stmt.setString(5, cd.getXBB()); + stmt.setString(6, cd.getYSL()); + stmt.setString(7, cd.getXSL()); + stmt.setString(8, cd.getBGSL()); + stmt.setString(9, cd.getWZPSL()); + stmt.setString(10, cd.getWZPUJ()); + stmt.setString(11, cd.getZZSL()); + stmt.setString(12, cd.getZZYJ()); + stmt.setString(13, cd.getSCSL()); + stmt.setString(14, cd.getSSYJ()); + stmt.setString(15, cd.getCKSL()); + stmt.setString(16, cd.getCLYJ()); + stmt.setString(17, cd.getGGSM()); + stmt.executeUpdate(); System.out.println("数据插入数据库完成"); } catch (Exception ex) { ex.printStackTrace(); @@ -1303,9 +1811,9 @@ System.out.println("list.size=================="+list.size()); } } - } + } - //删除时间 + // 删除时间 public void del_date() { Connection con = null; String sql = "delete from dfl_changetime"; @@ -1326,9 +1834,6 @@ System.out.println("list.size=================="+list.size()); } } - - - public void delChangeForm(String id) { Connection con = null; String sql = "delete from dfl_changeform where objectCode=?"; @@ -1336,7 +1841,7 @@ System.out.println("list.size=================="+list.size()); try { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); + prepStmt.setString(1, id); prepStmt.executeUpdate(); System.out.println("数据库删除成功"); } catch (Exception ex) { @@ -1350,13 +1855,7 @@ System.out.println("list.size=================="+list.size()); } } - - - - - - - public void delChangedetil(String id ,String ph) { + public void delChangedetil(String id, String ph) { Connection con = null; String sql = "delete from DFL_CHANGEDETAILS where objectCode=? and PH = ?"; System.out.println(sql); @@ -1364,12 +1863,12 @@ System.out.println("list.size=================="+list.size()); con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); - prepStmt.setString(2,ph); + prepStmt.setString(1, id); + prepStmt.setString(2, ph); prepStmt.executeUpdate(); - // Statement stmt=conn.createStatement();//创建Statement对象 - // stmt.executeUpdate(sql);//执行sql语句 + // Statement stmt=conn.createStatement();//创建Statement对象 + // stmt.executeUpdate(sql);//执行sql语句 System.out.println("数据库删除成功"); } catch (Exception ex) { ex.printStackTrace(); @@ -1380,15 +1879,11 @@ System.out.println("list.size=================="+list.size()); ex.printStackTrace(); } - } - } - - - public void delAllChangedetil(String id ) { + public void delAllChangedetil(String id) { Connection con = null; String sql = "delete from DFL_CHANGEDETAILS where objectCode=?"; System.out.println(sql); @@ -1396,12 +1891,12 @@ System.out.println("list.size=================="+list.size()); con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); + prepStmt.setString(1, id); prepStmt.executeUpdate(); - // Statement stmt=conn.createStatement();//创建Statement对象 - // stmt.executeUpdate(sql);//执行sql语句 + // Statement stmt=conn.createStatement();//创建Statement对象 + // stmt.executeUpdate(sql);//执行sql语句 System.out.println("数据库删除成功"); } catch (Exception ex) { ex.printStackTrace(); @@ -1412,31 +1907,25 @@ System.out.println("list.size=================="+list.size()); ex.printStackTrace(); } - } - } - - - - - //查找数据库中是都有该对象 + // 查找数据库中是都有该对象 public int ifcountform(String id) { int i = 0; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEFORM where objectCode=?"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - ResultSet rs=null; - stmt.setString(1,id); - rs=stmt.executeQuery(); - while(rs.next()) { - i=i+1; + ResultSet rs = null; + stmt.setString(1, id); + rs = stmt.executeQuery(); + while (rs.next()) { + i = i + 1; } @@ -1452,20 +1941,21 @@ System.out.println("list.size=================="+list.size()); } return i; } - //统计数量 + + // 统计数量 public int ifcountdetial(String id) { int i = 0; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEDETAILS where objectCode=?"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - ResultSet rs=null; - stmt.setString(1,id); - rs=stmt.executeQuery(); - while(rs.next()) { - i=i+1; + ResultSet rs = null; + stmt.setString(1, id); + rs = stmt.executeQuery(); + while (rs.next()) { + i = i + 1; } @@ -1482,10 +1972,6 @@ System.out.println("list.size=================="+list.size()); return i; } - - - - /** * JTable设置列宽 */ @@ -1498,9 +1984,6 @@ System.out.println("list.size=================="+list.size()); return columns; } - - - class MyButtonEditor extends DefaultCellEditor { protected DateButton button; @@ -1522,8 +2005,6 @@ System.out.println("list.size=================="+list.size()); } } - - class MyTable extends JTable { int myRow = -1, myCol = -1; TableCellEditor myEditor; @@ -1548,7 +2029,19 @@ System.out.println("list.size=================="+list.size()); } } } - + //连接数据库查询库存 + private String StockResult (String itemid) { + String Stock = null; + String sql = null; + sql = "select sum(img10) from " +zhangtao + ".img_file where img01='"+itemid+"' and img02='"+cangku+"' and img02<>'Z1' "; + try { + Stock = data.getRecord(sql); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return Stock; + } /** * 通过查询构建器查询项目对象 * @@ -1578,6 +2071,4 @@ System.out.println("list.size=================="+list.size()); } } - - } diff --git a/src/com/connor/dfl/plm/forms/ChangeDetils.java b/src/com/connor/dfl/plm/forms/ChangeDetils.java index 300cdc5..bd9abfe 100644 --- a/src/com/connor/dfl/plm/forms/ChangeDetils.java +++ b/src/com/connor/dfl/plm/forms/ChangeDetils.java @@ -1,5 +1,7 @@ package com.connor.dfl.plm.forms; +import org.jacorb.idl.runtime.int_token; + /** * * @author 孙毅 @@ -14,6 +16,7 @@ public class ChangeDetils { private String YSL; private String XSL; private String BGSL; + private String GGSM; private String WZPSL; private String WZPUJ; private String ZZSL; @@ -30,7 +33,7 @@ public class ChangeDetils { public ChangeDetils() { } - public ChangeDetils(String objtctCode,String pH, String pM, String yBB, String xBB, String ySL, String xSL, String bGSL, String wZPSL, + public ChangeDetils(String objtctCode,String pH, String pM, String yBB, String xBB, String ySL, String xSL, String bGSL,String gGSM, String wZPSL, String wZPUJ, String zZSL, String zZYJ, String sCSL, String sSYJ, String cKSL, String cLYJ) { this.objectCode= objtctCode; this.PH = pH; @@ -40,6 +43,7 @@ public class ChangeDetils { this.YSL = ySL; this.XSL = xSL; this.BGSL = bGSL; + this.GGSM = gGSM; this.WZPSL = wZPSL; this.WZPUJ = wZPUJ; this.ZZSL = zZSL; @@ -94,11 +98,19 @@ public class ChangeDetils { XSL = xSL; } public String getBGSL() { + return BGSL; } public void setBGSL(String bGSL) { + BGSL = bGSL; } + public String getGGSM() { + return GGSM; + } + public void setGGSM(String gGSM) { + GGSM = gGSM; + } public String getWZPSL() { return WZPSL; } diff --git a/src/com/connor/dfl/plm/forms/ChangeNotifyForm.java b/src/com/connor/dfl/plm/forms/ChangeNotifyForm.java index 49b7748..c5a7e0a 100644 --- a/src/com/connor/dfl/plm/forms/ChangeNotifyForm.java +++ b/src/com/connor/dfl/plm/forms/ChangeNotifyForm.java @@ -1,13 +1,24 @@ package com.connor.dfl.plm.forms; + import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; +import java.awt.FlowLayout; import java.awt.Font; +import java.awt.GridLayout; +import java.awt.LayoutManager; import java.awt.Point; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -18,6 +29,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.Enumeration; import java.util.EventObject; import java.util.HashMap; import java.util.List; @@ -42,22 +54,36 @@ import javax.swing.border.LineBorder; import javax.swing.event.CellEditorListener; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; +import javax.swing.table.JTableHeader; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFRichTextString; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.jacorb.idl.runtime.int_token; - +import com.connor.dfl.plm.dfl044.DataBaseControl2; import com.connor.dfl.plm.table.CTMap; import com.connor.dfl.plm.table.CTable; import com.connor.dfl.plm.util.DateChooser; +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import com.teamcenter.rac.aif.AbstractAIFApplication; +import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.commands.open.OpenFormDialog; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentDatasetType; import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentGroup; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemType; @@ -73,11 +99,12 @@ import com.teamcenter.rac.util.DateButton; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; +//import sun.net.www.content.image.jpeg; -public class ChangeNotifyForm extends AbstractRendering { +public class ChangeNotifyForm extends AbstractRendering { private TCComponentForm form; private TCSession session; - AbstractAIFApplication app= AIFUtility.getCurrentApplication(); + AbstractAIFApplication app = AIFUtility.getCurrentApplication(); private InterfaceAIFComponent targetComp = app.getTargetComponent(); private TCComponentItemType itemType; private ChangeNotifyForm selfform; @@ -85,112 +112,140 @@ public class ChangeNotifyForm extends AbstractRendering { CTable table1; private MyTable table2; - //private CTMap model1, model2; + private JScrollPane scrollPane; + private JScrollPane tablePanel2; + + private ChangeNotifyForm fu = this; + private final double MINWIDTH = 1700d; + private final double MINHEIGHT = 700d; + + // private CTMap model1, model2; private CTMap model1; DefaultTableModel model2; private String name; + private String objname; private String masterName; - + private String zhangtao; + private String cangku; private JButton addButton; private JButton delButton; - private JComboBox ChangeTypeBox;//更改类型 - private JComboBox ProductTypecBox;//产品类型 + private JComboBox ChangeTypeBox;// 更改类型 + private JComboBox ProductTypecBox;// 产品类型 private JComboBox ErrorTypeBox; private JComboBox DutyDepartmentBox; - private JComboBox SalesClassifyBox;//销售分类 - private JComboBox EmergencyNotifyBox;//通知紧急程度 - private JComboBox ProductDepartmentBox;//产品部门 - private JComboBox DrawingChangeTypeBox;//图纸更改类型 - private JComboBox IsNotProductLossBox;//是否产生成本损失 - private JComboBox ReceiveClassifyBox;//料件领用分类 - private JComboBox WAPYJBox;//未制品意见 - private JComboBox ZZYJBox;//在制意见 - private JComboBox SSYJBox;//生产意见 - private JComboBox CLYJBox;//处理意见 - - //时间 + private JComboBox SalesClassifyBox;// 销售分类 + private JComboBox EmergencyNotifyBox;// 通知紧急程度 + private JComboBox ProductDepartmentBox;// 产品部门 + private JComboBox DrawingChangeTypeBox;// 图纸更改类型 + private JComboBox IsNotProductLossBox;// 是否产生成本损失 + private JComboBox ReceiveClassifyBox;// 料件领用分类 + private JComboBox WAPYJBox;// 未制品意见 + private JComboBox ZZYJBox;// 在制意见 + private JComboBox SSYJBox;// 生产意见 + private JComboBox CLYJBox;// 处理意见 + private DataBaseControl2 data; + // 时间 public DefaultComboBoxModel jsrBoxModel; - - - - //private JComboBox projectCode;//项目编号 + // private JComboBox projectCode;//项目编号 static String time; int rows1 = 1; private String applyname; private String my_item_id; - - - - //存放table2中的数据,保存到数据库中使用 + // 存放table2中的数据,保存到数据库中使用 List changedeList = new ArrayList(); - - - - private String applyName ;//申请人 - private String applyDate;//申请时间 - private String projectCode ;//项目编号 - private String clientNae ;//客户名称 - private String productDepartment ;//所属产品部 - // private String productCode;//产品编号 - private String productName ;//产品名称 - private String projectModel ;//产品型号 - private String affectedPart ;//受影响的设备/零部件 - private String changeType ;//更改类型 - private String productType ;//产品类型 - private String errorType;//错误类型 - private String dutyDepartment ;//责任部门 - private String dutyMan ;//责任人 - private String changeReason;//更改原因 - private String salseClassify ;//销售分类 - private String priceBooking ;//价格预售 - // private String change;//更改明细 - private String isNotProductLoss ;//是否产生产品损失 - private String receiveClassify ;//料件领用分类 - private String warehouseCode ;//厂库编号 - private String accountSet ;//账套 - private String NotifyEmergencyProcedures;//通知紧急程序 - private String drawingTo ;//图纸发至 - private String ChangeListCode;//变更单号 - private String TZChangeType ; - private String SUOSU_productdepartment ; - private String projectState ; - - - - + private String applyName;// 申请人 + private String applyDate;// 申请时间 + private String projectCode;// 项目编号 + private String clientNae;// 客户名称 + private String productDepartment;// 所属产品部 + // private String productCode;//产品编号 + private String productName;// 产品名称 + private String projectModel;// 产品型号 + private String affectedPart;// 受影响的设备/零部件 + private String changeType;// 更改类型 + private String productType;// 产品类型 + private String errorType;// 错误类型 + private String dutyDepartment;// 责任部门 + private String dutyMan;// 责任人 + private String changeReason;// 更改原因 + private String salseClassify;// 销售分类 + private String priceBooking;// 价格预售 + // private String change;//更改明细 + private String isNotProductLoss;// 是否产生产品损失 + private String receiveClassify;// 料件领用分类 + private String warehouseCode;// 厂库编号 + private String accountSet;// 账套 + private String NotifyEmergencyProcedures;// 通知紧急程序 + private String drawingTo;// 图纸发至 + private String ChangeListCode;// 变更单号 + private String TZChangeType; + private String SUOSU_productdepartment; + private String projectState; public ChangeNotifyForm(TCComponent arg0) throws Exception { super(arg0); form = (TCComponentForm) arg0; this.session = ((TCSession) app.getSession()); + //获取数据库连接地址 + this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + //获取首选项信息 + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + if (BOMZT == null || BOMZT.length <= 0 ) { + MessageBox.post("首选项DFL2_ZHANGTAO_WAREHOUSE未配置,请联系管理员!!", + "错误", MessageBox.ERROR); + return; + } + TCComponentGroup group = session.getCurrentGroup(); + try { + String group_name = group.getStringProperty("display_name"); + System.out.println("11.04group_name=============="+group_name); + if(group_name.contains(".")) { + String[] names = group_name.split("\\."); + if(names != null && names.length >=2) { + for (int i = 0; i < BOMZT.length; i++) { + if(BOMZT[i].contains(";")) { + String[] zts = BOMZT[i].split(";"); + if(names[names.length-2].equals(zts[0])) { + this.zhangtao = zts[1]; + System.out.println("11.04账套======"+zhangtao); + this.cangku = zts[2]; + System.out.println("11.04仓库======"+cangku); + break; + } + } + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } this.selfform = this; - loadRendering(); + loadRendering(); } - String[] stringArray = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL2_SQL_Connect"); - - private String url = "jdbc:oracle:thin:@//"+stringArray[0];// - - private String user = stringArray[1];// + String[] stringArray = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL2_SQL_Connect"); - private String password = stringArray[2];// + private String url = "jdbc:oracle:thin:@//" + stringArray[0];// - private Connection conn = null;// + private String user = stringArray[1];// - private PreparedStatement pre = null;// + private String password = stringArray[2];// - private ResultSet result = null;// + private Connection conn = null;// + private PreparedStatement pre = null;// + private ResultSet result = null;// - public Connection ConnectionFun() throws SQLException { + public Connection ConnectionFun() throws SQLException { try { System.out.println(url); @@ -199,19 +254,16 @@ public class ChangeNotifyForm extends AbstractRendering { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("驱动加载成功"); } catch (ClassNotFoundException e) { - System.out.println("驱动加载失败"); + System.out.println("驱动加载失败"); } - conn=DriverManager.getConnection(url,user,password); + conn = DriverManager.getConnection(url, user, password); System.out.println("数据库连接成功"); return conn; - } - - @Override public void loadRendering() throws TCException { try { @@ -222,339 +274,323 @@ public class ChangeNotifyForm extends AbstractRendering { } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); - } - } + } + } + private void initUI() throws TCException, SQLException { - // private JComboBox ChangeTypeBox; - // private JComboBox ProductTypecBox; - // private JComboBox ErrorTypeBox; - // private JComboBox DutyDepartmentBox; - // private JComboBox SalesClassifyBox; - // private JCheckBox EmergencyNotifyBox; - // public DefaultComboBoxModel jsrBoxModel; + // private JComboBox ChangeTypeBox; + // private JComboBox ProductTypecBox; + // private JComboBox ErrorTypeBox; + // private JComboBox DutyDepartmentBox; + // private JComboBox SalesClassifyBox; + // private JCheckBox EmergencyNotifyBox; + // public DefaultComboBoxModel jsrBoxModel; - - - //更改类型 + // 更改类型 String[] change_type_stringArrays = session.getPreferenceService().getStringValues("DFL_Form_ChangeType"); - if (change_type_stringArrays == null || change_type_stringArrays.length <= 0 ) { - MessageBox.post("首选项DFL_Form_ChangeType未配置,请联系管理员!!", - "错误", MessageBox.ERROR); + if (change_type_stringArrays == null || change_type_stringArrays.length <= 0) { + MessageBox.post("首选项DFL_Form_ChangeType未配置,请联系管理员!!", "错误", MessageBox.ERROR); return; } - //更改类型 + // 更改类型 ChangeTypeBox = new JComboBox(); - for(int change_type_number = 0;change_type_number0) { - ChangeOrderBean cb = (ChangeOrderBean) applyformlist.get(applyformlist.size()-1); - - applyName = cb.getApplyName();//申请人 - //applyDate = cb.getApplyDate();//申请时间 - projectCode = cb.getProjectCode();//项目编号 - clientNae = cb.getClientNae() ;//客户名称 - productDepartment = cb.getProductDepartment();//所属产品部 - // String productCode;//产品编号 - productName = cb.getProductName();//产品名称 - projectModel = cb.getProjectModel();//产品型号 - affectedPart = cb.getAffectedPart();//受影响的设备/零部件 - changeType = cb.getChangeType();//更改类型 - productType = cb.getProductType();//产品类型 - errorType = cb.getErrorType();//错误类型 - dutyDepartment = cb.getDutyDepartment();//责任部门 - dutyMan = cb.getDutyMan();//责任人 - changeReason = cb.getChangeReason();//更改原因 - salseClassify = cb.getSalseClassify();//销售分类 - priceBooking = cb.getPriceBooking();//价格预售 - // change;//更改明细 - isNotProductLoss = cb.getIsNotProductLoss();//是否产生产品损失 - receiveClassify = cb.getReceiveClassify();//料件领用分类 - warehouseCode = cb.getWarehouseCode();//厂库编号 - accountSet = cb.getAccountSet();//账套 - NotifyEmergencyProcedures = cb.getNotifyEmergencyProcedures();//通知紧急程序 - drawingTo = cb.getDrawingTo();//图纸发至 - ChangeListCode = cb.getChangeListCode();//变更单号 + String apply_name = rev.getStringProperty("t2_CustomerName"); + System.out.println("===================" + apply_name); + + // 获取变更申请单单号,通过单号将共有属性从数据库中取出来,显示在变更通知单上 + List applyformlist = getChangeMesg(apply_name); + System.out.println("申请变更更的object——length" + applyformlist); + + if (applyformlist.size() > 0) { + ChangeOrderBean cb = (ChangeOrderBean) applyformlist.get(applyformlist.size() - 1); + + applyName = cb.getApplyName();// 申请人 + // applyDate = cb.getApplyDate();//申请时间 + projectCode = cb.getProjectCode();// 项目编号 + clientNae = cb.getClientNae();// 客户名称 + productDepartment = cb.getProductDepartment();// 所属产品部 + // String productCode;//产品编号 + productName = cb.getProductName();// 产品名称 + projectModel = cb.getProjectModel();// 产品型号 + affectedPart = cb.getAffectedPart();// 受影响的设备/零部件 + changeType = cb.getChangeType();// 更改类型 + productType = cb.getProductType();// 产品类型 + errorType = cb.getErrorType();// 错误类型 + dutyDepartment = cb.getDutyDepartment();// 责任部门 + dutyMan = cb.getDutyMan();// 责任人 + changeReason = cb.getChangeReason();// 更改原因 + salseClassify = cb.getSalseClassify();// 销售分类 + priceBooking = cb.getPriceBooking();// 价格预售 + // change;//更改明细 + isNotProductLoss = cb.getIsNotProductLoss();// 是否产生产品损失 + receiveClassify = cb.getReceiveClassify();// 料件领用分类 + warehouseCode = cb.getWarehouseCode();// 厂库编号 + accountSet = cb.getAccountSet();// 账套 + NotifyEmergencyProcedures = cb.getNotifyEmergencyProcedures();// 通知紧急程序 + drawingTo = cb.getDrawingTo();// 图纸发至 + ChangeListCode = cb.getChangeListCode();// 变更单号 TZChangeType = cb.getTZChangeType(); SUOSU_productdepartment = cb.getSUOSU_ProductDepartment(); projectState = cb.getProjectState(); @@ -563,27 +599,17 @@ public class ChangeNotifyForm extends AbstractRendering { } } - //lcomp - - + // lcomp - - - - - - - - String titleName =masterName+"变更通知单" ; + String titleName = masterName + "变更通知单"; JLabel titleLable = new JLabel(titleName); titleLable.setFont(new Font("宋体", 1, 16)); - model1 = new CTMap(11, 6) { public void setValueAt(Object value, int row, int column) { - if(row ==0 && column ==1) { - if(value == null) { + if (row == 0 && column == 1) { + if (value == null) { return; } @@ -596,141 +622,121 @@ public class ChangeNotifyForm extends AbstractRendering { }; - model1.combine(new int[]{8}, new int[] {1,2,3,4,5}); - model1.combine(new int[]{9}, new int[] {1,2,3,4,5}); - model1.combine(new int[]{10}, new int[] {1,2,3,4,5}); - model1.combine(new int[]{6}, new int[] {1,2,3,4,5}); + model1.combine(new int[] { 8 }, new int[] { 1, 2, 3, 4, 5 }); + model1.combine(new int[] { 9 }, new int[] { 1, 2, 3, 4, 5 }); + model1.combine(new int[] { 10 }, new int[] { 1, 2, 3, 4, 5 }); + model1.combine(new int[] { 6 }, new int[] { 1, 2, 3, 4, 5 }); table1 = new CTable(model1) { @Override public boolean isCellEditable(int row, int column) { - if(column == 0&&row<8 || column ==2&&row<8 || column==4&&row<8 ) { + if (column == 0 && row < 8 || column == 2 && row < 8 || column == 4 && row < 8) { return false; } - if(column == 0 && row ==6) { + if (column == 0 && row == 6) { return false; } - if(column == 0 && row ==8) { + if (column == 0 && row == 8) { return false; } - if(column == 0 && row ==9) { + if (column == 0 && row == 9) { return false; } - if(column == 0 && row ==10) { + if (column == 0 && row == 10) { return false; } + +// if (column == 5 && row == 7) { +// return false; +// +// } +// if (column == 1 && row == 10) { +// return false; +// +// } + + return true; } }; - // table1.setCombo(2, 1, new DefaultCellEditor(cBox3)); - + // table1.setCombo(2, 1, new DefaultCellEditor(cBox3)); + String groupnames = session.getGroup().getStringProperty("display_name"); + String[] buisnisDivisions = groupnames.split("\\."); + String groupname = ""; - String groupnames = session.getGroup().getStringProperty("display_name"); - String [] buisnisDivisions= groupnames.split("\\."); - String groupname =""; - - if(buisnisDivisions.length>=2) { - groupname = buisnisDivisions[buisnisDivisions.length-2]; - - } - + if (buisnisDivisions.length >= 2) { + groupname = buisnisDivisions[buisnisDivisions.length - 2]; + } table1.setValueAt("申请人", 0, 0); - table1.setValueAt(applyname, 0,1); - + table1.setValueAt(applyname, 0, 1); table1.setValueAt("变更通知单号", 0, 2); table1.setValueAt(my_item_id, 0, 3); table1.setValueAt("申请时间", 0, 4); - - + table1.setValueAt(applyDate, 0, 5); table1.setValueAt("产品名称", 1, 0); table1.setValueAt(productName, 1, 1); - table1.setValueAt("产品型号", 1, 2); table1.setValueAt(projectModel, 1, 3); - - table1.setValueAt("客户名称", 1, 4); table1.setValueAt(clientNae, 1, 5); - table1.setValueAt("仓库编号", 2, 0);// - - - String[] stringArray_warehouse = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL_Form_WarehouseCode"); - String warehouse = ""; - for(int z = 0 ;z 0) { List list = new ArrayList(); @@ -896,13 +877,15 @@ public class ChangeNotifyForm extends AbstractRendering { System.out.println("版本===" + rev[i]); } table2.setValueAt(objectname, table2.getSelectedRow(), 2); - table2.setComboCell(table2.getSelectedRow(), 3, new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); - table2.setComboCell(table2.getSelectedRow(), 4, new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); - table2.setComboCell(table2.getSelectedRow(), 9, new DefaultCellEditor(WAPYJBox)); - table2.setComboCell(table2.getSelectedRow(), 11, new DefaultCellEditor(ZZYJBox)); - table2.setComboCell(table2.getSelectedRow(), 13, new DefaultCellEditor(SSYJBox)); - table2.setComboCell(table2.getSelectedRow(), 15, new DefaultCellEditor(CLYJBox)); - + table2.setComboCell(table2.getSelectedRow(), 3, + new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); + table2.setComboCell(table2.getSelectedRow(), 4, + new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); + table2.setComboCell(table2.getSelectedRow(), 10, new DefaultCellEditor(WAPYJBox)); + table2.setComboCell(table2.getSelectedRow(), 12, new DefaultCellEditor(ZZYJBox)); + table2.setComboCell(table2.getSelectedRow(), 14, new DefaultCellEditor(SSYJBox)); + table2.setValueAt(kucun, table2.getSelectedRow(), 15); + table2.setComboCell(table2.getSelectedRow(), 16, new DefaultCellEditor(CLYJBox)); } else { javax.swing.JOptionPane.showMessageDialog(null, "输入品号有误或该品写没有版本", "系统提示", @@ -913,7 +896,7 @@ public class ChangeNotifyForm extends AbstractRendering { } } } catch (Exception e) { - System.out.println("eeee="+e.getMessage()); + System.out.println("eeee=" + e.getMessage()); e.printStackTrace(); } Vector rowVector = (Vector) dataVector.elementAt(row); @@ -923,28 +906,21 @@ public class ChangeNotifyForm extends AbstractRendering { } }; - table2 = new MyTable() { @Override public boolean isCellEditable(int row, int column) { - if(column == 0) { - return false; + if (column == 0) { + return false; } return true; } }; - - table2.setModel(model2); - table2.setColumnModel(getColumn(table2, new int[] { 90, 180, 180, 180,180,180,180, 180, 180,180,180,180, 180, 180,180,180 })); + table2.setColumnModel(getColumn(table2, new int[] { 60, 150, 260, 70,70,70,70, 70,260, 90,90,70,70, 70, 70,70,150})); table2.setRowHeight(50); - - - - tcr = new DefaultTableCellRenderer(); tcr.setHorizontalAlignment(SwingConstants.CENTER); table1.setBorder(new LineBorder(Color.BLACK)); @@ -953,108 +929,131 @@ public class ChangeNotifyForm extends AbstractRendering { table2.setDefaultRenderer(Object.class, tcr); table2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + addButton = new JButton(" 添加 "); + delButton = new JButton(" 删除 "); - addButton = new JButton("添加"); - delButton = new JButton("删除"); - - List listdetils = getChangeDetail(masterName); - if(listdetils.size()>0) { + List listdetils = getChangeDetail(masterName); + if (listdetils.size() > 0) { - for(int j = 0;j< listdetils.size();j++) { + for (int j = 0; j < listdetils.size(); j++) { model2.addRow(new String[] { Integer.toString(rows1++) }); - //int i =1; - //for(int j =0 ;j 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), count)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), 300)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } } }); delButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int sRow = table2.getSelectedRow(); - if(sRow == -1) { + if (sRow == -1) { javax.swing.JOptionPane.showMessageDialog(null, "请选中后移除", "系统提示", javax.swing.JOptionPane.WARNING_MESSAGE); return; } - //List list =getChangeDetail(name); + // List list =getChangeDetail(name); int[] sRows = table2.getSelectedRows(); - int p ; - for (int j = sRows.length-1; j >=0 ; j--) { + int p; + for (int j = sRows.length - 1; j >= 0; j--) { String PH = (String) model2.getValueAt(sRows[j], 1); - System.out.println("=============品号"+PH); + System.out.println("=============品号" + PH); delChangedetil(masterName, PH); - // Connection con = null; + // Connection con = null; // - // String sql = "delete from DFL_CHANGEDETAILS where PH=?"; - // System.out.println(sql); - // try { - // con = ConnectionFun(); - // PreparedStatement prepStmt = conn.prepareStatement(sql); - // prepStmt.setString(1,PH); - // prepStmt.executeUpdate(); - // // - // int result =prepStmt.executeUpdate();// 返回值代表收到影响的行数 - // if(result>0) { - // System.out.println("删除成功"); - // }else { - // System.out.println("删除失败"); - // } - // // + // String sql = "delete from DFL_CHANGEDETAILS where PH=?"; + // System.out.println(sql); + // try { + // con = ConnectionFun(); + // PreparedStatement prepStmt = conn.prepareStatement(sql); + // prepStmt.setString(1,PH); + // prepStmt.executeUpdate(); + // // + // int result =prepStmt.executeUpdate();// 返回值代表收到影响的行数 + // if(result>0) { + // System.out.println("删除成功"); + // }else { + // System.out.println("删除失败"); + // } + // // // - // //p=prepStmt.executeUpdate(); + // //p=prepStmt.executeUpdate(); // // // - // // Statement stmt=conn.createStatement();//创建Statement对象 - // // stmt.executeUpdate(sql);//执行sql语句 - // System.out.println("数据库删除成功"); - // } catch (Exception ex) { - // ex.printStackTrace(); - // } finally { - // try { - // con.close(); - // } catch (Exception ex) { - // ex.printStackTrace(); - // } - // } - - // for(int k=0 ;k 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), count)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), 300)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } } }); - - - JPanel buttonPanel0 = new JPanel(new PropertyLayout()); - buttonPanel0.add("1.1.left.top",new JLabel(" ")); - buttonPanel0.add("2.1.left.top",new JLabel(" ")); - buttonPanel0.add("3.1.left.top",new JLabel(" ")); - buttonPanel0.add("4.1.left.top",new JLabel(" ")); - buttonPanel0.add("5.1.left.top",new JLabel(" ")); - buttonPanel0.add("6.1.left.top",new JLabel(" ")); - buttonPanel0.add("7.1.left.top",new JLabel(" ")); - buttonPanel0.add("8.1.left.top",new JLabel(" ")); - buttonPanel0.add("9.1.left.top",new JLabel(" ")); - buttonPanel0.add("10.1.left.top",new JLabel(" ")); - buttonPanel0.add("11.1.left.top",new JLabel(" ")); - buttonPanel0.add("12.1.left.top",new JLabel(" ")); - buttonPanel0.add("13.1.left.top",new JLabel(" ")); - buttonPanel0.add("14.1.left.top",new JLabel(" ")); - buttonPanel0.add("15.1.left.top",new JLabel(" ")); - buttonPanel0.add("16.1.left.top",btn_tzfz); - buttonPanel0.add("17.1.left.top",new JLabel(" ")); - buttonPanel0.add("18.1.left.top",new JLabel(" ")); - buttonPanel0.add("19.1.left.top",new JLabel(" ")); -// buttonPanel0.add("20.1.left.top",btn); - buttonPanel0.add("20.1.left.top",new JLabel(" ")); - buttonPanel0.add("21.1.left.top",new JLabel(" ")); - buttonPanel0.add("22.1.left.top",zt_btn); - buttonPanel0.add("23.1.left.top",new JLabel(" ")); - buttonPanel0.add("24.1.left.top",new JLabel(" ")); - buttonPanel0.add("25.1.left.top",new JLabel(" ")); - - + buttonPanel0.add("1.1.left.top", new JLabel(" ")); + buttonPanel0.add("2.1.left.top", new JLabel(" ")); + buttonPanel0.add("3.1.left.top", new JLabel(" ")); + buttonPanel0.add("4.1.left.top", new JLabel(" ")); + buttonPanel0.add("5.1.left.top", new JLabel(" ")); + buttonPanel0.add("6.1.left.top", new JLabel(" ")); + buttonPanel0.add("7.1.left.top", new JLabel(" ")); + buttonPanel0.add("8.1.left.top", new JLabel(" ")); + buttonPanel0.add("9.1.left.top", new JLabel(" ")); + buttonPanel0.add("10.1.left.top", new JLabel(" ")); + buttonPanel0.add("11.1.left.top", new JLabel(" ")); + buttonPanel0.add("12.1.left.top", new JLabel(" ")); + buttonPanel0.add("13.1.left.top", new JLabel(" ")); + buttonPanel0.add("14.1.left.top", new JLabel(" ")); + buttonPanel0.add("15.1.left.top", new JLabel(" ")); + buttonPanel0.add("16.1.left.top", btn_tzfz); + buttonPanel0.add("17.1.left.top", new JLabel(" ")); +// buttonPanel0.add("18.1.left.top", new JLabel(" ")); + buttonPanel0.add("18.1.left.top",btn); + buttonPanel0.add("19.1.left.top", new JLabel(" ")); + buttonPanel0.add("20.1.left.top", new JLabel(" ")); + buttonPanel0.add("21.1.left.top", new JLabel(" ")); + buttonPanel0.add("22.1.left.top", zt_btn); + buttonPanel0.add("23.1.left.top", new JLabel(" ")); + buttonPanel0.add("24.1.left.top", new JLabel(" ")); + buttonPanel0.add("25.1.left.top", new JLabel(" ")); JPanel tablePanel1 = new JPanel(); tablePanel1.add(table1); tablePanel1.setPreferredSize(new Dimension(1600, 700)); - // JPanel showCalendarPanel = new JPanel(); - // showCalendarPanel.add("1.1.left.top",showCalenderButten); + // JPanel showCalendarPanel = new JPanel(); + // showCalendarPanel.add("1.1.left.top",showCalenderButten); - - - JScrollPane tablePanel2 = new JScrollPane(table2); +// JPanel tablePanel2 = new JPanel(); +// tablePanel2.add(table2); + tablePanel2 = new JScrollPane(table2); tablePanel2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); - tablePanel2.setPreferredSize(new Dimension(1600, 300)); - + if (rows1 > 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension(1600, count)); + } else { + tablePanel2.setPreferredSize(new Dimension(1600, 300)); + } JPanel buttonPanel = new JPanel(new PropertyLayout()); - buttonPanel.add("1.1.left.top",addButton); - buttonPanel.add("2.1.left.top",delButton); - - + buttonPanel.add("1.1.left.top", addButton); + buttonPanel.add("2.1.left.top", delButton); JPanel rootPanel = new JPanel(new PropertyLayout()); JLabel detailsLable = new JLabel("更改明细"); detailsLable.setFont(new Font("宋体", 1, 14)); + rootPanel.add("1.1.center.top", titleLable); + rootPanel.add("2.1.left.top", tablePanel1); + rootPanel.add("2.2.left.top", buttonPanel0); + // rootPanel.add("2.2.left.top",showCalendarPanel); - rootPanel.add("1.1.center.top",titleLable); - rootPanel.add("2.1.left.top",tablePanel1); - rootPanel.add("2.2.left.top",buttonPanel0); - //rootPanel.add("2.2.left.top",showCalendarPanel); - - - rootPanel.add("3.1.left.top",detailsLable); + rootPanel.add("3.1.left.top", detailsLable); + JPanel test = new JPanel(new PropertyLayout()); + test.add("1.1.left.top", tablePanel2); + test.add("1.2.left.top", buttonPanel); - rootPanel.add("4.1.left.top",tablePanel2); - rootPanel.add("4.2.left.top",buttonPanel); + JPanel mainPanel = new JPanel(new BorderLayout()); + mainPanel.add(rootPanel, BorderLayout.NORTH); + mainPanel.add(test, BorderLayout.CENTER); this.setSize(1600, 1300); +// this.setPreferredSize(new Dimension(1600,1000)); + this.setLayout(new BorderLayout()); - JScrollPane scrollPane = new JScrollPane(rootPanel); + scrollPane = new JScrollPane(mainPanel); scrollPane.getVerticalScrollBar().setUnitIncrement(20); - this.add(scrollPane,BorderLayout.CENTER); + scrollPane.setPreferredSize(new Dimension((int) mainPanel.getPreferredSize().getWidth(), + (int) mainPanel.getPreferredSize().getHeight())); +// System.out.println("scWid:"+scrollPane.getPreferredSize().getWidth()); +// System.out.println("scHei:"+scrollPane.getPreferredSize().getHeight()); + this.add(scrollPane, BorderLayout.CENTER); this.setBackground(Color.WHITE); +// this.setPreferredSize(new Dimension((int) scrollPane.getPreferredSize().getWidth(), +// (int) scrollPane.getPreferredSize().getHeight())); + this.addComponentListener(new ComponentListener() { - this.setVisible(true); - } + @Override + public void componentShown(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void componentResized(ComponentEvent e) { + // TODO Auto-generated method stub + Component component2 = e.getComponent(); + int width3 = component2.getWidth(); + if (width3 < 1711) { + tablePanel2.setPreferredSize(new Dimension(1600, (int) tablePanel2.getPreferredSize().getHeight())); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize( + new Dimension((width3 - 1711) + 1600, (int) tablePanel2.getPreferredSize().getHeight())); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } + + } + + @Override + public void componentMoved(ComponentEvent e) { + // TODO Auto-generated method stub + } + @Override + public void componentHidden(ComponentEvent e) { + // TODO Auto-generated method stub + + } + }); + this.setVisible(true); + } @Override public void saveRendering() { + if(model1.getValueAt(0, 5)==null||model1.getValueAt(4, 1)==null) { + MessageBox.post("申请时间与更改类型为必填项","",MessageBox.ERROR); + } delChangeForm(masterName); ChangeOrderBean bn = new ChangeOrderBean(); bn.setObjectCode(masterName); - bn.setApplyName(model1.getValueAt(0, 1) == null ? "" :model1.getValueAt(0, 1).toString()); - bn.setApplyDate(model1.getValueAt(0, 5) == null ? "" :model1.getValueAt(0, 5).toString()); - bn.setProjectCode(model1.getValueAt(8, 1) == null ? "" :model1.getValueAt(8, 1).toString()); - bn.setClientNae(model1.getValueAt(1, 5) == null ? "" :model1.getValueAt(1, 5).toString()); - bn.setProductDepartment(model1.getValueAt(3, 1) == null ? "" :model1.getValueAt(3, 1).toString()); - bn.setProductName(model1.getValueAt(1, 1) == null ? "" :model1.getValueAt(1, 1).toString()); - bn.setProjectModel(model1.getValueAt(1, 3) == null ? "" :model1.getValueAt(1, 3).toString()); - //受影响的设备 - bn.setAffectedPart(model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString()); - - bn.setChangeType(model1.getValueAt(4, 1) == null ? "" :model1.getValueAt(4, 1).toString()); - bn.setProductType(model1.getValueAt(4, 3) == null ? "" :model1.getValueAt(4, 3).toString()); - bn.setErrorType(model1.getValueAt(4, 5) == null ? "" :model1.getValueAt(4, 5).toString()); - bn.setDutyDepartment(model1.getValueAt(3, 3) == null ? "" :model1.getValueAt(3, 3).toString()); - bn.setDutyMan(model1.getValueAt(3, 5) == null ? "" :model1.getValueAt(3, 5).toString()); - //更改原因 - bn.setChangeReason(model1.getValueAt(9, 1) == null ? "" :model1.getValueAt(9, 1).toString()); - - bn.setSalseClassify(model1.getValueAt(5, 3) == null ? "" :model1.getValueAt(5, 3).toString()); - bn.setPriceBooking(model1.getValueAt(5, 1) == null ? "" :model1.getValueAt(5, 1).toString()); - bn.setIsNotProductLoss(model1.getValueAt(5, 5) == null ? "" :model1.getValueAt(5, 5).toString()); - bn.setReceiveClassify(model1.getValueAt(7, 3) == null ? "" :model1.getValueAt(7, 3).toString()); - bn.setWarehouseCode(model1.getValueAt(2, 1) == null ? "" :model1.getValueAt(2, 1).toString()); - //通知紧急程度 - bn.setNotifyEmergencyProcedures(model1.getValueAt(2, 3) == null ? "" :model1.getValueAt(2, 3).toString()); - - bn.setDrawingTo(model1.getValueAt(7, 5) == null ? "" :model1.getValueAt(7, 5).toString()); - - bn.setChangeListCode(model1.getValueAt(0, 3) == null ? "" :model1.getValueAt(0, 3).toString()); - bn.setTZChangeType(model1.getValueAt(2, 5) == null ? "" :model1.getValueAt(2, 5).toString()); + bn.setApplyName(model1.getValueAt(0, 1) == null ? "" : model1.getValueAt(0, 1).toString()); + bn.setApplyDate(model1.getValueAt(0, 5) == null ? "" : model1.getValueAt(0, 5).toString()); + bn.setProjectCode(model1.getValueAt(8, 1) == null ? "" : model1.getValueAt(8, 1).toString()); + bn.setClientNae(model1.getValueAt(1, 5) == null ? "" : model1.getValueAt(1, 5).toString()); + bn.setProductDepartment(model1.getValueAt(3, 1) == null ? "" : model1.getValueAt(3, 1).toString()); + bn.setProductName(model1.getValueAt(1, 1) == null ? "" : model1.getValueAt(1, 1).toString()); + bn.setProjectModel(model1.getValueAt(1, 3) == null ? "" : model1.getValueAt(1, 3).toString()); + // 受影响的设备 + bn.setAffectedPart(model1.getValueAt(6, 1) == null ? "" : model1.getValueAt(6, 1).toString()); + + bn.setChangeType(model1.getValueAt(4, 1) == null ? "" : model1.getValueAt(4, 1).toString()); + bn.setProductType(model1.getValueAt(4, 3) == null ? "" : model1.getValueAt(4, 3).toString()); + bn.setErrorType(model1.getValueAt(4, 5) == null ? "" : model1.getValueAt(4, 5).toString()); + bn.setDutyDepartment(model1.getValueAt(3, 3) == null ? "" : model1.getValueAt(3, 3).toString()); + bn.setDutyMan(model1.getValueAt(3, 5) == null ? "" : model1.getValueAt(3, 5).toString()); + // 更改原因 + bn.setChangeReason(model1.getValueAt(9, 1) == null ? "" : model1.getValueAt(9, 1).toString()); + + bn.setSalseClassify(model1.getValueAt(5, 3) == null ? "" : model1.getValueAt(5, 3).toString()); + bn.setPriceBooking(model1.getValueAt(5, 1) == null ? "" : model1.getValueAt(5, 1).toString()); + bn.setIsNotProductLoss(model1.getValueAt(5, 5) == null ? "" : model1.getValueAt(5, 5).toString()); + bn.setReceiveClassify(model1.getValueAt(7, 3) == null ? "" : model1.getValueAt(7, 3).toString()); + bn.setWarehouseCode(model1.getValueAt(2, 1) == null ? "" : model1.getValueAt(2, 1).toString()); + // 通知紧急程度 + bn.setNotifyEmergencyProcedures(model1.getValueAt(2, 3) == null ? "" : model1.getValueAt(2, 3).toString()); + + bn.setDrawingTo(model1.getValueAt(7, 5) == null ? "" : model1.getValueAt(7, 5).toString()); + + bn.setChangeListCode(model1.getValueAt(0, 3) == null ? "" : model1.getValueAt(0, 3).toString()); + bn.setTZChangeType(model1.getValueAt(2, 5) == null ? "" : model1.getValueAt(2, 5).toString()); bn.setSUOSU_ProductDepartment(""); - //model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString() + // model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString() - //公司账套 - bn.setAccountSet(model1.getValueAt(10, 1) == null ? "" :model1.getValueAt(10, 1).toString()); + // 公司账套 + bn.setAccountSet(model1.getValueAt(10, 1) == null ? "" : model1.getValueAt(10, 1).toString()); - bn.setProjectState(model1.getValueAt(7, 1) == null ? "" :model1.getValueAt(7, 1).toString()); + bn.setProjectState(model1.getValueAt(7, 1) == null ? "" : model1.getValueAt(7, 1).toString()); insertMes(bn); - - - //=================================================================== - - - - + // =================================================================== delAllChangedetil(masterName); - for(int cdss = 0 ; cdss changeMesg, + List changeDetils, String model) throws IOException, FileNotFoundException { + // 引用文件模板 + InputStream modeFile = ChangeNotifyForm.class.getResourceAsStream(model); + // 创建XSSFWorkbook对象(excel的文档对象) + XSSFWorkbook wb; + wb = new XSSFWorkbook(modeFile); + XSSFSheet sheet = wb.getSheetAt(0); +// XSSFRow row1 = sheet.getRow(startRow); +// XSSFCell cell1 = row1.getCell(0); +// XSSFCellStyle style = cell1.getCellStyle(); + if (changeMesg != null && changeMesg.size() > 0) { + ChangeOrderBean cob = changeMesg.get(0); + String sqr = cob.getApplyName(); + String sqsj = cob.getApplyDate(); + String xmbh = cob.getProjectCode(); + String khmc = cob.getClientNae(); + String cpbm = cob.getProductDepartment(); + String cpmc = cob.getProductName(); + String cpxh = cob.getProjectModel(); + String gglx = cob.getChangeType(); + String cplx = cob.getProductType(); + String tzgglx = cob.getTZChangeType(); + String cwlx = cob.getErrorType(); + String zrbm = cob.getDutyDepartment(); + String zrr = cob.getDutyMan(); + String ggyy = cob.getChangeReason(); + String ssfl = cob.getSalseClassify(); + String jgyg = cob.getPriceBooking(); + String sfcscbss = cob.getIsNotProductLoss(); + String ljlyfl = cob.getReceiveClassify(); + String ckbh = cob.getWarehouseCode(); + String zt = cob.getAccountSet(); + String tzjjcd = cob.getNotifyEmergencyProcedures(); + String tzfz = cob.getDrawingTo(); + String syxdsbhlbj = cob.getAffectedPart(); + String xmjd = cob.getProjectState(); + String bgtzdh = cob.getChangeListCode(); + + XSSFRow row = sheet.getRow(0); + XSSFCell cell = row.getCell(0); + XSSFRichTextString richTextString = new XSSFRichTextString(masterName + "-"+objname); + cell.setCellValue(richTextString); + + row = sheet.getRow(1); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(sqr); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(bgtzdh); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(sqsj); + cell.setCellValue(richTextString); + + row = sheet.getRow(2); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(cpmc); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(cpxh); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(khmc); + cell.setCellValue(richTextString); + + row = sheet.getRow(3); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(ckbh); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(tzjjcd); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(tzgglx); + cell.setCellValue(richTextString); + + row = sheet.getRow(4); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(cpbm); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(zrbm); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(zrr); + cell.setCellValue(richTextString); + + row = sheet.getRow(5); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(gglx); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(cplx); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(cwlx); + cell.setCellValue(richTextString); + + row = sheet.getRow(6); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(jgyg); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(ssfl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(sfcscbss); + cell.setCellValue(richTextString); + + row = sheet.getRow(7); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(syxdsbhlbj); + cell.setCellValue(richTextString); + + row = sheet.getRow(8); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(xmjd); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(ljlyfl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(tzfz); + cell.setCellValue(richTextString); + + row = sheet.getRow(9); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(xmbh); + cell.setCellValue(richTextString); + + row = sheet.getRow(10); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(ggyy); + cell.setCellValue(richTextString); + + row = sheet.getRow(11); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(zt); + cell.setCellValue(richTextString); + } - // public List getselectTime() { - // List list = new ArrayList(); - // DateBean db = new DateBean(); - // ResultSet r = null; - // Connection con = null; - // PreparedStatement stmt=null; - // String sql = "select * from dfl_changetime"; - // try { - // con = ConnectionFun(); - // stmt=con.prepareStatement(sql); - // - // r=stmt.executeQuery(); - // while(r.next()){ - // db.setDate(r.getString(1)); - // - // list.add(db); - // } - // }catch (SQLException e) { - // e.printStackTrace(); - // }finally{ - // try { - // r.close(); - // stmt.close(); - // con.close(); - // } catch (SQLException e) { - // e.printStackTrace(); - // } - // } - // - // - // return list; - // } - // - // - // - // + if (changeDetils != null && changeDetils.size() > 0) { + for (int i = 0; i < changeDetils.size(); i++) { + XSSFRow row = sheet.getRow(i + 16); + if (row == null) { + row = sheet.createRow(i + 16); + } + ChangeDetils changeDetil = changeDetils.get(i); + String ph = changeDetil.getPH(); + String pm = changeDetil.getPM(); + String ybb = changeDetil.getYBB(); + String xbb = changeDetil.getXBB(); + String ysl = changeDetil.getYSL(); + String xsl = changeDetil.getXSL(); + String bgsl = changeDetil.getBGSL(); + String ggsm = changeDetil.getGGSM(); + String wzpsl = changeDetil.getWZPSL(); + String wzpuj = changeDetil.getWZPUJ(); + String zzsl = changeDetil.getZZSL(); + String zzyj = changeDetil.getZZYJ(); + String scsl = changeDetil.getSCSL(); + String ssyj = changeDetil.getSSYJ(); + String cksl = changeDetil.getCKSL(); + String clyj = changeDetil.getCLYJ(); + + XSSFCell cell = row.getCell(0); + if (cell == null) { + cell = row.createCell(0); + + } + XSSFRichTextString richTextString = new XSSFRichTextString(i + 1 + ""); + cell.setCellValue(richTextString); + + cell = row.getCell(1); + if (cell == null) { + cell = row.createCell(1); + + } + richTextString = new XSSFRichTextString(ph); + cell.setCellValue(richTextString); + + cell = row.getCell(2); + if (cell == null) { + cell = row.createCell(2); + + } + richTextString = new XSSFRichTextString(pm); + cell.setCellValue(richTextString); + + cell = row.getCell(3); + if (cell == null) { + cell = row.createCell(3); + + } + richTextString = new XSSFRichTextString(ybb); + cell.setCellValue(richTextString); + + cell = row.getCell(4); + if (cell == null) { + cell = row.createCell(4); + + } + richTextString = new XSSFRichTextString(xbb); + cell.setCellValue(richTextString); + + cell = row.getCell(5); + if (cell == null) { + cell = row.createCell(5); + + } + richTextString = new XSSFRichTextString(ysl); + cell.setCellValue(richTextString); + + cell = row.getCell(6); + if (cell == null) { + cell = row.createCell(6); + + } + richTextString = new XSSFRichTextString(xsl); + cell.setCellValue(richTextString); + + cell = row.getCell(7); + if (cell == null) { + cell = row.createCell(7); + + } + richTextString = new XSSFRichTextString(bgsl); + cell.setCellValue(richTextString); + + cell = row.getCell(8); + if (cell == null) { + cell = row.createCell(8); + + } + richTextString = new XSSFRichTextString(ggsm); + cell.setCellValue(richTextString); + + cell = row.getCell(9); + if (cell == null) { + cell = row.createCell(9); + + } + richTextString = new XSSFRichTextString(wzpsl); + cell.setCellValue(richTextString); + cell = row.getCell(10); + if (cell == null) { + cell = row.createCell(10); + } + richTextString = new XSSFRichTextString(wzpuj); + cell.setCellValue(richTextString); + cell = row.getCell(11); + if (cell == null) { + cell = row.createCell(11); + } + richTextString = new XSSFRichTextString(zzsl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + if (cell == null) { + cell = row.createCell(12); + } + richTextString = new XSSFRichTextString(zzyj); + cell.setCellValue(richTextString); + cell = row.getCell(13); + if (cell == null) { + cell = row.createCell(13); + } + richTextString = new XSSFRichTextString(scsl); + cell.setCellValue(richTextString); + cell = row.getCell(14); + if (cell == null) { + cell = row.createCell(14); + } + richTextString = new XSSFRichTextString(ssyj); + cell.setCellValue(richTextString); + cell = row.getCell(15); + if (cell == null) { + cell = row.createCell(15); + } + richTextString = new XSSFRichTextString(cksl); + cell.setCellValue(richTextString); + + cell = row.getCell(16); + if (cell == null) { + cell = row.createCell(16); + + } + richTextString = new XSSFRichTextString(clyj); + cell.setCellValue(richTextString); + } + } + // 判断是否存在目录. 不存在则创建 + isChartPathExist(filepath); + // 输出Excel文件 + // FileOutputStream output = new FileOutputStream(filepath + "\\" + filename); + FileOutputStream output = new FileOutputStream(new File(filepath + "\\" + filename)); + wb.write(output); - //获取变更单信息 + output.close(); + modeFile.close(); + } + + private void isChartPathExist(String dirPath) { + File file = new File(dirPath); + if (!file.exists()) { + file.mkdirs(); + } + } + + private void changeRevProperty(ChangeOrderBean bn) { + String changeType = bn.getChangeType(); + String receiveClassify = bn.getReceiveClassify(); + String drawingTo = bn.getDrawingTo(); + String[] split = drawingTo.split(";"); + List list = null; + if(split!=null&&split.length>0) { + list = Arrays.asList(split); + + } + + if("设计错误-错下".equals(changeType)) { + changeType = "SJCW"; + }else if("设计错误-漏下".equals(changeType)) { + changeType = "SJCWLX"; + }else if("设计错误-新增".equals(changeType)) { + changeType = "SJCWXZ"; + }else if("设计优化-呆滞使用".equals(changeType)){ + changeType = "SJYH"; + }else if("设计优化-备货转订单".equals(changeType)){ + changeType = "SJYHBH"; + }else if("设计优化-标准化升级".equals(changeType)){ + changeType = "SJYHSJ"; + }else if("内部方案更改-方案错误".equals(changeType)){ + changeType = "NBFAGG"; + }else if("内部方案更改-方案遗漏".equals(changeType)){ + changeType = "NBFAGGYL"; + }else if("内部方案更改-方案优化".equals(changeType)){ + changeType = "NBFAGGYH"; + }else if("内部方案更改-小额保外".equals(changeType)){ + changeType = "NBFAGGBW"; + }else if("内部方案更改-新增".equals(changeType)){ + changeType = "NBFAGGXZ"; + }else if("方案更改-方案错误".equals(changeType)){ + changeType = "FAGG"; + }else if("方案更改-方案遗漏".equals(changeType)){ + changeType = "FAGGYL"; + }else if("方案更改-方案优化".equals(changeType)){ + changeType = "FAGGYH"; + }else if("方案更改-方案新增".equals(changeType)){ + changeType = "FAGGXZ"; + }else if("采购更改-品牌变更".equals(changeType)){ + changeType = "CGGG"; + }else if("采购更改-品号变更".equals(changeType)){ + changeType = "CGGGPH"; + }else if("采购更改-库存补差".equals(changeType)){ + changeType = "CGGGKC"; + }else if("销售更改".equals(changeType)){ + changeType = "XSGG"; + }else if("销售更改-任务书变更".equals(changeType)){ + changeType = "XSGGBG"; + } + + if("内部-厂内制造".equals(receiveClassify)) { + receiveClassify = "CNZZ"; + }else if("内部-厂内FAT整改".equals(receiveClassify)){ + receiveClassify = "CNFAT"; + }else if("外部-厂外SAT".equals(receiveClassify)){ + receiveClassify = "CWSAT"; + }else if("服务-保内".equals(receiveClassify)){ + receiveClassify = "FWBN"; + }else if("服务-保外".equals(receiveClassify)){ + receiveClassify = "FWBW"; + } + + String wk = null; + String cg = null; + if(list!=null) { + if(list.contains("物控")) { + wk = "Yes"; + }else { + wk = "No"; + } + + if(list.contains("采购")) { + cg = "Yes"; + }else { + cg = "No"; + } + + }else { + if("物控".equals(drawingTo)) { + wk = "Yes"; + }else { + wk = "No"; + } + + if("采购".equals(drawingTo)) { + cg = "Yes"; + }else { + cg = "No"; + } + } + + TCComponent component = (TCComponent)targetComp; + AIFComponentContext[] whereReferenced; + try { + whereReferenced = component.whereReferenced(); + if(whereReferenced!=null&&whereReferenced.length>0) { + for(AIFComponentContext acc: whereReferenced) { + TCComponent comp =(TCComponent)acc.getComponent(); + if(comp instanceof TCComponentItemRevision) { + TCComponentItemRevision rev = (TCComponentItemRevision)comp; + rev.setStringProperty("t2_ecnchangetype", changeType); + rev.setStringProperty("t2_pickingclassification", receiveClassify); + rev.setStringProperty("t2_wukong", wk); + rev.setStringProperty("t2_caigou", cg); + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + + + + + + // public List getselectTime() { + // List list = new ArrayList(); + // DateBean db = new DateBean(); + // ResultSet r = null; + // Connection con = null; + // PreparedStatement stmt=null; + // String sql = "select * from dfl_changetime"; + // try { + // con = ConnectionFun(); + // stmt=con.prepareStatement(sql); + // + // r=stmt.executeQuery(); + // while(r.next()){ + // db.setDate(r.getString(1)); + // + // list.add(db); + // } + // }catch (SQLException e) { + // e.printStackTrace(); + // }finally{ + // try { + // r.close(); + // stmt.close(); + // con.close(); + // } catch (SQLException e) { + // e.printStackTrace(); + // } + // } + // + // + // return list; + // } + // + // + // + // + + // 获取变更单信息 private List getChangeMesg(String id) { List list = new ArrayList(); ChangeOrderBean bn = new ChangeOrderBean(); ResultSet r = null; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEFORM where objectCode=?";// try { con = ConnectionFun(); - stmt=con.prepareStatement(sql); - stmt.setString(1,id); - r=stmt.executeQuery(); - while(r.next()){ + stmt = con.prepareStatement(sql); + stmt.setString(1, id); + r = stmt.executeQuery(); + while (r.next()) { bn.setObjectCode(r.getString(1)); bn.setApplyName(r.getString(2)); bn.setApplyDate(r.getString(3)); @@ -1336,9 +1931,9 @@ public class ChangeNotifyForm extends AbstractRendering { list.add(bn); } - }catch (SQLException e) { + } catch (SQLException e) { e.printStackTrace(); - }finally{ + } finally { try { r.close(); stmt.close(); @@ -1349,21 +1944,21 @@ public class ChangeNotifyForm extends AbstractRendering { } return list; - } + } public List getChangeDetail(String id) { List list = new ArrayList(); ResultSet r = null; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEDETAILS where objectCode=?";// try { con = ConnectionFun(); - stmt=con.prepareStatement(sql); - stmt.setString(1,id); - r=stmt.executeQuery(); - while(r.next()){ + stmt = con.prepareStatement(sql); + stmt.setString(1, id); + r = stmt.executeQuery(); + while (r.next()) { ChangeDetils cd = new ChangeDetils(); System.out.println(r.getString(1)); cd.setObjectCode(r.getString(1)); @@ -1382,11 +1977,12 @@ public class ChangeNotifyForm extends AbstractRendering { cd.setSSYJ(r.getString(14)); cd.setCKSL(r.getString(15)); cd.setCLYJ(r.getString(16)); + cd.setGGSM(r.getString(17)); list.add(cd); } - }catch (SQLException e) { + } catch (SQLException e) { e.printStackTrace(); - }finally{ + } finally { try { r.close(); stmt.close(); @@ -1396,112 +1992,101 @@ public class ChangeNotifyForm extends AbstractRendering { } } - return list; } - - - - - public void setValue() { System.out.println("加载数据"); List list = getChangeMesg(masterName); - System.out.println("masterName=============="+masterName); - if(list.size() > 0) { - ChangeOrderBean bn = (ChangeOrderBean) list.get(list.size()-1); + System.out.println("masterName==============" + masterName); + if (list.size() > 0) { + ChangeOrderBean bn = (ChangeOrderBean) list.get(list.size() - 1); System.out.println(bn.getApplyName()); - table1.setValueAt(bn.getApplyName(),0, 1); - table1.setValueAt(bn.getApplyDate(),0, 5); - table1.setValueAt(bn.getProjectCode(),8, 1); - table1.setValueAt(bn.getClientNae(),1, 5); - table1.setValueAt(bn.getProductDepartment(),3, 1); - table1.setValueAt(bn.getProductName(),1, 1); - table1.setValueAt(bn.getProjectModel(),1, 3); - //受影响的零部件 - table1.setValueAt(bn.getAffectedPart(),6, 1); - - table1.setValueAt(bn.getChangeType(),4, 1); - table1.setValueAt(bn.getProductType(),4, 3); - table1.setValueAt(bn.getErrorType(),4, 5); - table1.setValueAt(bn.getDutyDepartment(),3, 3); - table1.setValueAt(bn.getDutyMan(),3, 5); - table1.setValueAt(bn.getChangeReason(),9, 1); - table1.setValueAt(bn.getSalseClassify(),5, 3); - table1.setValueAt(bn.getPriceBooking(),5, 1); - table1.setValueAt(bn.getIsNotProductLoss(),5, 5); - table1.setValueAt(bn.getReceiveClassify(),7, 3); - table1.setValueAt(bn.getWarehouseCode(),2, 1); - - //账套 - table1.setValueAt(bn.getAccountSet(),10, 1); - //通知紧急程度 - table1.setValueAt(bn.getNotifyEmergencyProcedures(),2, 3); - - table1.setValueAt(bn.getDrawingTo(),7, 5); - - table1.setValueAt(bn.getChangeListCode(),0, 3); - table1.setValueAt(bn.getTZChangeType(),2, 5); - //table1.setValueAt(bn.getSUOSU_ProductDepartment(),6, 1); - table1.setValueAt(bn.getProjectState(),7, 1); - - - //table2 添加行加入数 + table1.setValueAt(bn.getApplyName(), 0, 1); + table1.setValueAt(bn.getApplyDate(), 0, 5); + table1.setValueAt(bn.getProjectCode(), 8, 1); + table1.setValueAt(bn.getClientNae(), 1, 5); + table1.setValueAt(bn.getProductDepartment(), 3, 1); + table1.setValueAt(bn.getProductName(), 1, 1); + table1.setValueAt(bn.getProjectModel(), 1, 3); + // 受影响的零部件 + table1.setValueAt(bn.getAffectedPart(), 6, 1); + + table1.setValueAt(bn.getChangeType(), 4, 1); + table1.setValueAt(bn.getProductType(), 4, 3); + table1.setValueAt(bn.getErrorType(), 4, 5); + table1.setValueAt(bn.getDutyDepartment(), 3, 3); + table1.setValueAt(bn.getDutyMan(), 3, 5); + table1.setValueAt(bn.getChangeReason(), 9, 1); + table1.setValueAt(bn.getSalseClassify(), 5, 3); + table1.setValueAt(bn.getPriceBooking(), 5, 1); + table1.setValueAt(bn.getIsNotProductLoss(), 5, 5); + table1.setValueAt(bn.getReceiveClassify(), 7, 3); + table1.setValueAt(bn.getWarehouseCode(), 2, 1); + + // 账套 + table1.setValueAt(bn.getAccountSet(), 10, 1); + // 通知紧急程度 + table1.setValueAt(bn.getNotifyEmergencyProcedures(), 2, 3); + + table1.setValueAt(bn.getDrawingTo(), 7, 5); + + table1.setValueAt(bn.getChangeListCode(), 0, 3); + table1.setValueAt(bn.getTZChangeType(), 2, 5); + // table1.setValueAt(bn.getSUOSU_ProductDepartment(),6, 1); + table1.setValueAt(bn.getProjectState(), 7, 1); + + // table2 添加行加入数 } - - } - - //保存时提交到数据库 + // 保存时提交到数据库 public void insertMes(ChangeOrderBean bn) { Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "insert into DFL_CHANGEFORM values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - stmt.setString(1,bn.getObjectCode()); - stmt.setString(2,bn.getApplyName()); - stmt.setString(3,bn.getApplyDate()); - stmt.setString(4,bn.getProjectCode()); - stmt.setString(5,bn.getClientNae()); - stmt.setString(6,bn.getProductDepartment()); - stmt.setString(7,bn.getProductName()); - - stmt.setString(8,bn.getProjectModel()); - stmt.setString(9,bn.getAffectedPart()); - stmt.setString(10,bn.getChangeType()); - stmt.setString(11,bn.getProductType()); + stmt.setString(1, bn.getObjectCode()); + stmt.setString(2, bn.getApplyName()); + stmt.setString(3, bn.getApplyDate()); + stmt.setString(4, bn.getProjectCode()); + stmt.setString(5, bn.getClientNae()); + stmt.setString(6, bn.getProductDepartment()); + stmt.setString(7, bn.getProductName()); + stmt.setString(8, bn.getProjectModel()); + stmt.setString(9, bn.getAffectedPart()); + stmt.setString(10, bn.getChangeType()); + stmt.setString(11, bn.getProductType()); - stmt.setString(12,bn.getErrorType()); - stmt.setString(13,bn.getDutyDepartment()); - stmt.setString(14,bn.getDutyMan()); + stmt.setString(12, bn.getErrorType()); + stmt.setString(13, bn.getDutyDepartment()); + stmt.setString(14, bn.getDutyMan()); - stmt.setString(15,bn.getChangeReason()); + stmt.setString(15, bn.getChangeReason()); - stmt.setString(16,bn.getSalseClassify()); + stmt.setString(16, bn.getSalseClassify()); - stmt.setString(17,bn.getPriceBooking()); + stmt.setString(17, bn.getPriceBooking()); - stmt.setString(18,bn.getIsNotProductLoss()); - stmt.setString(19,bn.getReceiveClassify()); - stmt.setString(20,bn.getWarehouseCode()); - stmt.setString(21,bn.getAccountSet()); + stmt.setString(18, bn.getIsNotProductLoss()); + stmt.setString(19, bn.getReceiveClassify()); + stmt.setString(20, bn.getWarehouseCode()); + stmt.setString(21, bn.getAccountSet()); - stmt.setString(22,bn.getNotifyEmergencyProcedures()); - stmt.setString(23,bn.getDrawingTo()); - stmt.setString(24,bn.getChangeListCode()); + stmt.setString(22, bn.getNotifyEmergencyProcedures()); + stmt.setString(23, bn.getDrawingTo()); + stmt.setString(24, bn.getChangeListCode()); - stmt.setString(25,bn.getTZChangeType()); - stmt.setString(26,bn.getSUOSU_ProductDepartment()); - stmt.setString(27,bn.getProjectState()); - stmt.executeUpdate() ; + stmt.setString(25, bn.getTZChangeType()); + stmt.setString(26, bn.getSUOSU_ProductDepartment()); + stmt.setString(27, bn.getProjectState()); + stmt.executeUpdate(); System.out.println("数据插入数据库完成"); } catch (Exception ex) { @@ -1515,42 +2100,38 @@ public class ChangeNotifyForm extends AbstractRendering { } } - } - - - /** - * 插入更改明细 + * 插入更改明细 */ - - public void insertChangeDetailsMes(ChangeDetils cd) { Connection con = null; - PreparedStatement stmt=null; - String sql = "insert into DFL_CHANGEDETAILS values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + PreparedStatement stmt = null; + String sql = "insert into DFL_CHANGEDETAILS values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - stmt.setString(1,cd.getObjectCode()); - stmt.setString(2,cd.getPH()); - stmt.setString(3,cd.getPM()); - stmt.setString(4,cd.getYBB()); - stmt.setString(5,cd.getXBB()); - stmt.setString(6,cd.getYSL()); - stmt.setString(7,cd.getXSL()); - stmt.setString(8,cd.getBGSL()); - stmt.setString(9,cd.getWZPSL()); - stmt.setString(10,cd.getWZPUJ()); - stmt.setString(11,cd.getZZSL()); - stmt.setString(12,cd.getZZYJ()); - stmt.setString(13,cd.getSCSL()); - stmt.setString(14,cd.getSSYJ()); - stmt.setString(15,cd.getCKSL()); - stmt.setString(16,cd.getCLYJ()); - stmt.executeUpdate() ; + stmt.setString(1, cd.getObjectCode()); + stmt.setString(2, cd.getPH()); + stmt.setString(3, cd.getPM()); + stmt.setString(4, cd.getYBB()); + stmt.setString(5, cd.getXBB()); + stmt.setString(6, cd.getYSL()); + stmt.setString(7, cd.getXSL()); + stmt.setString(8, cd.getBGSL()); + stmt.setString(9, cd.getWZPSL()); + stmt.setString(10, cd.getWZPUJ()); + stmt.setString(11, cd.getZZSL()); + stmt.setString(12, cd.getZZYJ()); + stmt.setString(13, cd.getSCSL()); + stmt.setString(14, cd.getSSYJ()); + stmt.setString(15, cd.getCKSL()); + stmt.setString(16, cd.getCLYJ()); + stmt.setString(17, cd.getGGSM()); + System.out.println(sql); + stmt.executeUpdate(); System.out.println("数据插入数据库完成"); } catch (Exception ex) { ex.printStackTrace(); @@ -1563,10 +2144,7 @@ public class ChangeNotifyForm extends AbstractRendering { } } - - } - - + } public void delChangeForm(String id) { Connection con = null; @@ -1575,7 +2153,7 @@ public class ChangeNotifyForm extends AbstractRendering { try { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); + prepStmt.setString(1, id); prepStmt.executeUpdate(); System.out.println("数据库删除成功"); } catch (Exception ex) { @@ -1589,8 +2167,7 @@ public class ChangeNotifyForm extends AbstractRendering { } } - - public void delChangedetil(String id ,String ph) { + public void delChangedetil(String id, String ph) { Connection con = null; String sql = "delete from DFL_CHANGEDETAILS where objectCode=? and PH = ?"; System.out.println(sql); @@ -1598,12 +2175,12 @@ public class ChangeNotifyForm extends AbstractRendering { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); - prepStmt.setString(2,ph); + prepStmt.setString(1, id); + prepStmt.setString(2, ph); prepStmt.executeUpdate(); - // Statement stmt=conn.createStatement();//创建Statement对象 - // stmt.executeUpdate(sql);//执行sql语句 + // Statement stmt=conn.createStatement();//创建Statement对象 + // stmt.executeUpdate(sql);//执行sql语句 System.out.println("数据库删除成功"); } catch (Exception ex) { ex.printStackTrace(); @@ -1614,14 +2191,10 @@ public class ChangeNotifyForm extends AbstractRendering { ex.printStackTrace(); } - } } - - - - public void delAllChangedetil(String id ) { + public void delAllChangedetil(String id) { Connection con = null; String sql = "delete from DFL_CHANGEDETAILS where objectCode=?"; System.out.println(sql); @@ -1629,12 +2202,12 @@ public class ChangeNotifyForm extends AbstractRendering { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); + prepStmt.setString(1, id); prepStmt.executeUpdate(); - // Statement stmt=conn.createStatement();//创建Statement对象 - // stmt.executeUpdate(sql);//执行sql语句 + // Statement stmt=conn.createStatement();//创建Statement对象 + // stmt.executeUpdate(sql);//执行sql语句 System.out.println("数据库删除成功"); } catch (Exception ex) { ex.printStackTrace(); @@ -1645,26 +2218,24 @@ public class ChangeNotifyForm extends AbstractRendering { ex.printStackTrace(); } - } } - - //查找数据库中是都有该对象 + // 查找数据库中是都有该对象 public int ifcountform(String id) { int i = 0; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEFORM where objectCode=?"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - ResultSet rs=null; - stmt.setString(1,id); - rs=stmt.executeQuery(); - while(rs.next()) { - i=i+1; + ResultSet rs = null; + stmt.setString(1, id); + rs = stmt.executeQuery(); + while (rs.next()) { + i = i + 1; } @@ -1680,20 +2251,21 @@ public class ChangeNotifyForm extends AbstractRendering { } return i; } - //统计数量 + + // 统计数量 public int ifcountdetial(String id) { int i = 0; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEDETAILS where objectCode=?"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - ResultSet rs=null; - stmt.setString(1,id); - rs=stmt.executeQuery(); - while(rs.next()) { - i=i+1; + ResultSet rs = null; + stmt.setString(1, id); + rs = stmt.executeQuery(); + while (rs.next()) { + i = i + 1; } } catch (Exception ex) { @@ -1709,10 +2281,6 @@ public class ChangeNotifyForm extends AbstractRendering { return i; } - - - - /** * JTable设置列宽 */ @@ -1725,9 +2293,6 @@ public class ChangeNotifyForm extends AbstractRendering { return columns; } - - - class MyButtonEditor extends DefaultCellEditor { protected DateButton button; @@ -1749,7 +2314,6 @@ public class ChangeNotifyForm extends AbstractRendering { } } - class MyTable extends JTable { int myRow = -1, myCol = -1; TableCellEditor myEditor; @@ -1774,7 +2338,19 @@ public class ChangeNotifyForm extends AbstractRendering { } } } - + //连接数据库查询库存 + private String StockResult (String itemid) { + String Stock = null; + String sql = null; + sql = "select sum(img10) from " +zhangtao + ".img_file where img01='"+itemid+"' and img02='"+cangku+"' and img02<>'Z1' "; + try { + Stock = data.getRecord(sql); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return Stock; + } /** * 通过查询构建器查询项目对象 * @@ -1804,6 +2380,4 @@ public class ChangeNotifyForm extends AbstractRendering { } } - - } diff --git a/src/com/connor/dfl/plm/forms/QuickChangeForm.java b/src/com/connor/dfl/plm/forms/QuickChangeForm.java index eedb5bc..5cedea6 100644 --- a/src/com/connor/dfl/plm/forms/QuickChangeForm.java +++ b/src/com/connor/dfl/plm/forms/QuickChangeForm.java @@ -1,4 +1,5 @@ package com.connor.dfl.plm.forms; + import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; @@ -7,7 +8,13 @@ import java.awt.Font; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -18,6 +25,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.Enumeration; import java.util.EventObject; import java.util.HashMap; import java.util.List; @@ -42,12 +50,19 @@ import javax.swing.border.LineBorder; import javax.swing.event.CellEditorListener; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; +import javax.swing.table.JTableHeader; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRichTextString; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import com.connor.dfl.plm.dfl044.DataBaseControl2; import com.connor.dfl.plm.table.CTMap; import com.connor.dfl.plm.table.CTable; import com.connor.dfl.plm.util.DateChooser; @@ -56,7 +71,10 @@ import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentDatasetType; import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentGroup; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemType; @@ -72,11 +90,10 @@ import com.teamcenter.rac.util.DateButton; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; - -public class QuickChangeForm extends AbstractRendering { +public class QuickChangeForm extends AbstractRendering { private TCComponentForm form; private TCSession session; - AbstractAIFApplication app= AIFUtility.getCurrentApplication(); + AbstractAIFApplication app = AIFUtility.getCurrentApplication(); private InterfaceAIFComponent targetComp = app.getTargetComponent(); private TCComponentItemType itemType; private QuickChangeForm selfform; @@ -84,12 +101,17 @@ public class QuickChangeForm extends AbstractRendering { CTable table1; private MyTable table2; - //private CTMap model1, model2; + private JScrollPane tablePanel2; + private JScrollPane scrollPane; + + // private CTMap model1, model2; private CTMap model1; DefaultTableModel model2; private String name; - + private String objname; + private String zhangtao; + private String cangku; private JButton addButton; private JButton delButton; @@ -99,23 +121,20 @@ public class QuickChangeForm extends AbstractRendering { private JComboBox DutyDepartmentBox; private JComboBox SalesClassifyBox; private JComboBox EmergencyNotifyBox; - private JComboBox ProductDepartmentBox;//产品部门 - private JComboBox DrawingChangeTypeBox;//图纸更改类型 - private JComboBox IsNotProductLossBox;//是否产生成本损失 - private JComboBox ReceiveClassifyBox;//料件领用分类 - private JComboBox WAPYJBox;//未制品意见 - private JComboBox ZZYJBox;//在制意见 - private JComboBox SSYJBox;//生产意见 - private JComboBox CLYJBox;//处理意见 - - //时间 + private JComboBox ProductDepartmentBox;// 产品部门 + private JComboBox DrawingChangeTypeBox;// 图纸更改类型 + private JComboBox IsNotProductLossBox;// 是否产生成本损失 + private JComboBox ReceiveClassifyBox;// 料件领用分类 + private JComboBox WAPYJBox;// 未制品意见 + private JComboBox ZZYJBox;// 在制意见 + private JComboBox SSYJBox;// 生产意见 + private JComboBox CLYJBox;// 处理意见 + private DataBaseControl2 data; + // 时间 public DefaultComboBoxModel jsrBoxModel; - - - - //private JComboBox projectCode;//项目编号 + // private JComboBox projectCode;//项目编号 static String time; int rows1 = 1; private String applyname; @@ -132,43 +151,67 @@ public class QuickChangeForm extends AbstractRendering { private String type; private String projectState; - - //存放table2中的数据,保存到数据库中使用 + // 存放table2中的数据,保存到数据库中使用 List changedeList = new ArrayList(); - - - - - - - - public QuickChangeForm(TCComponent arg0) throws Exception { super(arg0); form = (TCComponentForm) arg0; this.session = ((TCSession) app.getSession()); + //获取数据库连接地址 + this.data = new DataBaseControl2(session,"DFL2_ERP_SQL_Connect"); + //获取首选项信息 + String[] BOMZT = session.getPreferenceService().getStringValues("DFL2_ZHANGTAO_WAREHOUSE"); + if (BOMZT == null || BOMZT.length <= 0 ) { + MessageBox.post("首选项DFL2_ZHANGTAO_WAREHOUSE未配置,请联系管理员!!", + "错误", MessageBox.ERROR); + return; + } + TCComponentGroup group = session.getCurrentGroup(); + try { + String group_name = group.getStringProperty("display_name"); + System.out.println("11.04group_name=============="+group_name); + if(group_name.contains(".")) { + String[] names = group_name.split("\\."); + if(names != null && names.length >=2) { + for (int i = 0; i < BOMZT.length; i++) { + if(BOMZT[i].contains(";")) { + String[] zts = BOMZT[i].split(";"); + if(names[names.length-2].equals(zts[0])) { + this.zhangtao = zts[1]; + System.out.println("11.04账套======"+zhangtao); + this.cangku = zts[2]; + System.out.println("11.04仓库======"+cangku); + break; + } + } + } + } + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } this.selfform = this; - loadRendering(); + loadRendering(); + } - String[] stringArray = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL2_SQL_Connect"); - - private String url = "jdbc:oracle:thin:@//"+stringArray[0];// - - private String user = stringArray[1];// + String[] stringArray = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL2_SQL_Connect"); - private String password = stringArray[2];// + private String url = "jdbc:oracle:thin:@//" + stringArray[0];// - private Connection conn = null;// + private String user = stringArray[1];// - private PreparedStatement pre = null;// + private String password = stringArray[2];// - private ResultSet result = null;// + private Connection conn = null;// + private PreparedStatement pre = null;// + private ResultSet result = null;// - public Connection ConnectionFun() throws SQLException { + public Connection ConnectionFun() throws SQLException { try { System.out.println(url); @@ -177,19 +220,16 @@ public class QuickChangeForm extends AbstractRendering { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("驱动加载成功"); } catch (ClassNotFoundException e) { - System.out.println("驱动加载失败"); + System.out.println("驱动加载失败"); } - conn=DriverManager.getConnection(url,user,password); + conn = DriverManager.getConnection(url, user, password); System.out.println("数据库连接成功"); return conn; - } - - @Override public void loadRendering() throws TCException { try { @@ -200,316 +240,294 @@ public class QuickChangeForm extends AbstractRendering { } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); - } - } - private void initUI() throws TCException, SQLException { + } + } + private void initUI() throws TCException, SQLException { - //更改类型 + // 更改类型 String[] change_type_stringArrays = session.getPreferenceService().getStringValues("DFL_Form_ChangeType"); - if (change_type_stringArrays == null || change_type_stringArrays.length <= 0 ) { - MessageBox.post("首选项DFL_Form_ChangeType未配置,请联系管理员!!", - "错误", MessageBox.ERROR); + if (change_type_stringArrays == null || change_type_stringArrays.length <= 0) { + MessageBox.post("首选项DFL_Form_ChangeType未配置,请联系管理员!!", "错误", MessageBox.ERROR); return; } - //更改类型 + // 更改类型 ChangeTypeBox = new JComboBox(); - for(int change_type_number = 0;change_type_number=2) { - groupname = buisnisDivisions[buisnisDivisions.length-2]; + if (buisnisDivisions.length >= 2) { + groupname = buisnisDivisions[buisnisDivisions.length - 2]; } - table1.setValueAt("申请人", 0, 0); - table1.setValueAt(applyname, 0,1); + table1.setValueAt(applyname, 0, 1); table1.setValueAt("快速变更单号", 0, 2); table1.setValueAt(my_item_id, 0, 3); - - table1.setValueAt("申请时间", 0, 4); table1.setValueAt("产品名称", 1, 0); table1.setValueAt(productname, 1, 1); - table1.setValueAt("产品型号", 1, 2); table1.setValueAt(productmodel, 1, 3); - - table1.setValueAt("客户名称", 1, 4); table1.setValueAt(clientname, 1, 5); - table1.setValueAt("仓库编号", 2, 0);// - String[] stringArray_warehouse = ((TCSession) app.getSession()).getPreferenceService().getStringValues("DFL_Form_WarehouseCode"); - String warehouse = ""; - for(int z = 0 ;z0) { - // DateBean dbs=(DateBean) ll.get(ll.size()-1); - // table1.setValueAt(dbs.getDate(),0, 5); - // del_date(); - // flag = false; - // } - // } - // - // } - - - - // String[] keys = new String[] { "ID" }; - // TCComponentUser user = session.getUser(); - // String user_id = user.getStringProperty("user_id"); - // String[] values = new String[] { user_id }; - // List compList = queryObject("基于用户的项目", keys, values); - // if (compList != null && compList.size() > 0) { - // for (int i = 0; i < compList.size(); i++) { - // TCComponent comp1 = compList.get(i); - // if (comp1 instanceof TCComponentProject) { - // TCComponentProject project = (TCComponentProject) comp1; - // try { - // String id = project.getStringProperty("project_id"); - // projectCode.addItem(id); - // } catch (TCException e1) { - // // TODO Auto-generated catch block - // e1.printStackTrace(); - // } - // } - // } - // } - - - - - - - //更改类型 - table1.setCombo(4,1,new DefaultCellEditor(ChangeTypeBox)); - //产品类型 - table1.setCombo(4,3,new DefaultCellEditor(ProductTypecBox)); - //错误类型 - table1.setCombo(4,5,new DefaultCellEditor(ErrorTypeBox)); - //销售分类 - table1.setCombo(5,3,new DefaultCellEditor(SalesClassifyBox)); - //责任部门 - //table1.setCombo(3,3,new DefaultCellEditor(DutyDepartmentBox)); - //紧急程度通知 - table1.setCombo(2,3,new DefaultCellEditor(EmergencyNotifyBox)); - //时间 - //产品部门 - table1.setCombo(3,1,new DefaultCellEditor(ProductDepartmentBox)); - //图纸更改类型 - table1.setCombo(2,5,new DefaultCellEditor(DrawingChangeTypeBox)); - //是否产生成本损失 - table1.setCombo(5,5,new DefaultCellEditor(IsNotProductLossBox)); - //料件领用分类 - table1.setCombo(7,3,new DefaultCellEditor(ReceiveClassifyBox)); - //table1.setCombo(0,5,new DefaultCellEditor(datetime)); - - - - - //table1.setCombo(8, 1, new DefaultCellEditor(projectCode)); + table1.setCombo(0, 5, new DefaultCellEditor(showDate1)); + // table1.setValueAt(showCalenderButten.getText(),0, 5); + // + // + // showDate2 = new JTextField(time); + // dateChooser1.register(showDate1); + // dateChooser2.register(showDate2); + + // MyThread myThread=new MyThread(); + // myThread.start(); + // boolean flag = true; + // while(flag) { + // if(myThread.isAlive()==false) { + // List ll = new ArrayList(); + // ll = getselectTime(); + // if(ll.size()>0) { + // DateBean dbs=(DateBean) ll.get(ll.size()-1); + // table1.setValueAt(dbs.getDate(),0, 5); + // del_date(); + // flag = false; + // } + // } + // + // } + + // String[] keys = new String[] { "ID" }; + // TCComponentUser user = session.getUser(); + // String user_id = user.getStringProperty("user_id"); + // String[] values = new String[] { user_id }; + // List compList = queryObject("基于用户的项目", keys, values); + // if (compList != null && compList.size() > 0) { + // for (int i = 0; i < compList.size(); i++) { + // TCComponent comp1 = compList.get(i); + // if (comp1 instanceof TCComponentProject) { + // TCComponentProject project = (TCComponentProject) comp1; + // try { + // String id = project.getStringProperty("project_id"); + // projectCode.addItem(id); + // } catch (TCException e1) { + // // TODO Auto-generated catch block + // e1.printStackTrace(); + // } + // } + // } + // } + + // 更改类型 + table1.setCombo(4, 1, new DefaultCellEditor(ChangeTypeBox)); + // 产品类型 + table1.setCombo(4, 3, new DefaultCellEditor(ProductTypecBox)); + // 错误类型 + table1.setCombo(4, 5, new DefaultCellEditor(ErrorTypeBox)); + // 销售分类 + table1.setCombo(5, 3, new DefaultCellEditor(SalesClassifyBox)); + // 责任部门 + // table1.setCombo(3,3,new DefaultCellEditor(DutyDepartmentBox)); + // 紧急程度通知 + table1.setCombo(2, 3, new DefaultCellEditor(EmergencyNotifyBox)); + // 时间 + // 产品部门 + table1.setCombo(3, 1, new DefaultCellEditor(ProductDepartmentBox)); + // 图纸更改类型 + table1.setCombo(2, 5, new DefaultCellEditor(DrawingChangeTypeBox)); + // 是否产生成本损失 + table1.setCombo(5, 5, new DefaultCellEditor(IsNotProductLossBox)); + // 料件领用分类 + table1.setCombo(7, 3, new DefaultCellEditor(ReceiveClassifyBox)); + // table1.setCombo(0,5,new DefaultCellEditor(datetime)); + + // table1.setCombo(8, 1, new DefaultCellEditor(projectCode)); table1.getColumnModel().getColumn(0).setPreferredWidth(130); table1.getColumnModel().getColumn(1).setPreferredWidth(400); @@ -820,23 +800,20 @@ public class QuickChangeForm extends AbstractRendering { table1.setRowHeight(9, 100); table1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + model2 = new DefaultTableModel(null, new String[] { "序号", "品号", "品名", "原版本", "现版本", "原数量", "现数量", "变更数量", + "更改说明", "未制品数量", "未制品意见", "在制数量", "在制意见", "生产数量", "生产意见", "仓库数量", "处理意见" }) { - - - - - - - - model2 = new DefaultTableModel(null, new String[] {"序号","品号","品名","原版本","现版本","原数量","现数量","变更数量","未制品数量","未制品意见","在制数量","在制意见","生产数量","生产意见","仓库数量","处理意见"}) { - - public void setValueAt(Object value, int row, int col){ - try { + public void setValueAt(Object value, int row, int col) { + try { if (row == table2.getSelectedRow() && col == 1) { + System.out.println("执行到该位置==============================="); String val = value.toString(); itemType = (TCComponentItemType) session.getTypeComponent("Item"); TCComponentItem item = itemType.find(val); String objectname = item.getStringProperty("object_name"); + String itemid = item.getStringProperty("item_id"); + String kucun = StockResult (itemid); + System.out.println("11.09id====="+itemid+"====11.09库存====="+kucun); TCComponent[] allRev = item.getRelatedComponents("revision_list"); if (allRev.length > 0) { List list = new ArrayList(); @@ -859,15 +836,19 @@ public class QuickChangeForm extends AbstractRendering { System.out.println("版本===" + rev[i]); } table2.setValueAt(objectname, table2.getSelectedRow(), 2); - table2.setComboCell(table2.getSelectedRow(), 3, new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); - table2.setComboCell(table2.getSelectedRow(), 4, new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); - table2.setComboCell(table2.getSelectedRow(), 9, new DefaultCellEditor(WAPYJBox)); - table2.setComboCell(table2.getSelectedRow(), 11, new DefaultCellEditor(ZZYJBox)); - table2.setComboCell(table2.getSelectedRow(), 13, new DefaultCellEditor(SSYJBox)); - table2.setComboCell(table2.getSelectedRow(), 15, new DefaultCellEditor(CLYJBox)); + table2.setComboCell(table2.getSelectedRow(), 3, + new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); + table2.setComboCell(table2.getSelectedRow(), 4, + new com.connor.dfl.plm.table.MyComboBoxEditor2(rev)); + table2.setComboCell(table2.getSelectedRow(), 10, new DefaultCellEditor(WAPYJBox)); + table2.setComboCell(table2.getSelectedRow(), 12, new DefaultCellEditor(ZZYJBox)); + table2.setComboCell(table2.getSelectedRow(), 14, new DefaultCellEditor(SSYJBox)); + table2.setValueAt(kucun, table2.getSelectedRow(), 15); + table2.setComboCell(table2.getSelectedRow(), 16, new DefaultCellEditor(CLYJBox)); + } else { - javax.swing.JOptionPane.showMessageDialog(null, "输入品号有误或该品写没有版本", "系统提示", + javax.swing.JOptionPane.showMessageDialog(null, "输入品号有误或该品号没有版本", "系统提示", javax.swing.JOptionPane.WARNING_MESSAGE); setValueAt("", table2.getSelectedRow(), 2); @@ -875,7 +856,7 @@ public class QuickChangeForm extends AbstractRendering { } } } catch (Exception e) { - System.out.println("eeee="+e.getMessage()); + System.out.println("eeee=" + e.getMessage()); e.printStackTrace(); } Vector rowVector = (Vector) dataVector.elementAt(row); @@ -885,28 +866,21 @@ public class QuickChangeForm extends AbstractRendering { } }; - table2 = new MyTable() { @Override public boolean isCellEditable(int row, int column) { - if(column == 0) { - return false; + if (column == 0) { + return false; } return true; } }; - - table2.setModel(model2); - table2.setColumnModel(getColumn(table2, new int[] { 90, 180, 180, 180,180,180,180, 180, 180,180,180,180, 180, 180,180,180 })); + table2.setColumnModel(getColumn(table2, new int[] { 60, 150, 260, 70,70,70,70, 70,260, 90,90,70,70, 70, 70,70,150})); table2.setRowHeight(50); - - - - tcr = new DefaultTableCellRenderer(); tcr.setHorizontalAlignment(SwingConstants.CENTER); table1.setBorder(new LineBorder(Color.BLACK)); @@ -915,107 +889,131 @@ public class QuickChangeForm extends AbstractRendering { table2.setDefaultRenderer(Object.class, tcr); table2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + addButton = new JButton(" 添加 "); + delButton = new JButton(" 删除 "); - addButton = new JButton("添加"); - delButton = new JButton("删除"); - - List listdetils = getChangeDetail(name); - if(listdetils.size()>0) { + List listdetils = getChangeDetail(name); + if (listdetils.size() > 0) { - for(int j = 0;j< listdetils.size();j++) { + for (int j = 0; j < listdetils.size(); j++) { model2.addRow(new String[] { Integer.toString(rows1++) }); - //int i =1; - //for(int j =0 ;j 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), count)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), 300)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } } }); delButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int sRow = table2.getSelectedRow(); - if(sRow == -1) { + if (sRow == -1) { javax.swing.JOptionPane.showMessageDialog(null, "请选中后移除", "系统提示", javax.swing.JOptionPane.WARNING_MESSAGE); return; } - //List list =getChangeDetail(name); + // List list =getChangeDetail(name); int[] sRows = table2.getSelectedRows(); - int p ; - for (int j = sRows.length-1; j >=0 ; j--) { + int p; + for (int j = sRows.length - 1; j >= 0; j--) { String PH = (String) model2.getValueAt(sRows[j], 1); - System.out.println("=============品号"+PH); + System.out.println("=============品号" + PH); delChangedetil(name, PH); - // Connection con = null; + // Connection con = null; // - // String sql = "delete from DFL_CHANGEDETAILS where PH=?"; - // System.out.println(sql); - // try { - // con = ConnectionFun(); - // PreparedStatement prepStmt = conn.prepareStatement(sql); - // prepStmt.setString(1,PH); - // prepStmt.executeUpdate(); - // // - // int result =prepStmt.executeUpdate();// 返回值代表收到影响的行数 - // if(result>0) { - // System.out.println("删除成功"); - // }else { - // System.out.println("删除失败"); - // } - // // + // String sql = "delete from DFL_CHANGEDETAILS where PH=?"; + // System.out.println(sql); + // try { + // con = ConnectionFun(); + // PreparedStatement prepStmt = conn.prepareStatement(sql); + // prepStmt.setString(1,PH); + // prepStmt.executeUpdate(); + // // + // int result =prepStmt.executeUpdate();// 返回值代表收到影响的行数 + // if(result>0) { + // System.out.println("删除成功"); + // }else { + // System.out.println("删除失败"); + // } + // // // - // //p=prepStmt.executeUpdate(); + // //p=prepStmt.executeUpdate(); // // // - // // Statement stmt=conn.createStatement();//创建Statement对象 - // // stmt.executeUpdate(sql);//执行sql语句 - // System.out.println("数据库删除成功"); - // } catch (Exception ex) { - // ex.printStackTrace(); - // } finally { - // try { - // con.close(); - // } catch (Exception ex) { - // ex.printStackTrace(); - // } - // } - - // for(int k=0 ;k 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), count)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize(new Dimension((int) tablePanel2.getPreferredSize().getWidth(), 300)); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } } }); - - - JPanel tablePanel1 = new JPanel(); tablePanel1.add(table1); tablePanel1.setPreferredSize(new Dimension(1600, 700)); - // JPanel showCalendarPanel = new JPanel(); - // showCalendarPanel.add("1.1.left.top",showCalenderButten); - - + // JPanel showCalendarPanel = new JPanel(); + // showCalendarPanel.add("1.1.left.top",showCalenderButten); - JScrollPane tablePanel2 = new JScrollPane(table2); + tablePanel2 = new JScrollPane(table2); tablePanel2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); - tablePanel2.setPreferredSize(new Dimension(1600, 300)); + if (rows1 > 6) { + int count = rows1 - 6; + count = 300 + count * 50; + tablePanel2.setPreferredSize(new Dimension(1600, count)); + } else { + tablePanel2.setPreferredSize(new Dimension(1600, 300)); + } JPanel buttonPanel = new JPanel(new PropertyLayout()); - buttonPanel.add("1.1.left.top",addButton); - buttonPanel.add("2.1.left.top",delButton); + buttonPanel.add("1.1.left.top", addButton); + buttonPanel.add("2.1.left.top", delButton); + JPanel buttonPanel0 = new JPanel(new PropertyLayout()); + buttonPanel0.add("1.1.left.top", new JLabel(" ")); + buttonPanel0.add("2.1.left.top", new JLabel(" ")); + buttonPanel0.add("3.1.left.top", new JLabel(" ")); + buttonPanel0.add("4.1.left.top", new JLabel(" ")); + buttonPanel0.add("5.1.left.top", new JLabel(" ")); + buttonPanel0.add("6.1.left.top", new JLabel(" ")); + buttonPanel0.add("7.1.left.top", new JLabel(" ")); + buttonPanel0.add("8.1.left.top", new JLabel(" ")); + buttonPanel0.add("9.1.left.top", new JLabel(" ")); + buttonPanel0.add("10.1.left.top", new JLabel(" ")); + buttonPanel0.add("11.1.left.top", new JLabel(" ")); + buttonPanel0.add("12.1.left.top", new JLabel(" ")); + buttonPanel0.add("13.1.left.top", new JLabel(" ")); + buttonPanel0.add("14.1.left.top", new JLabel(" ")); + buttonPanel0.add("15.1.left.top", new JLabel(" ")); + buttonPanel0.add("16.1.left.top", btn_tzfz); + buttonPanel0.add("17.1.left.top", new JLabel(" ")); + buttonPanel0.add("18.1.left.top", btn); + buttonPanel0.add("19.1.left.top", new JLabel(" ")); + + buttonPanel0.add("20.1.left.top", new JLabel(" ")); + buttonPanel0.add("21.1.left.top", new JLabel(" ")); + buttonPanel0.add("22.1.left.top", zt_btn); + buttonPanel0.add("23.1.left.top", new JLabel(" ")); + buttonPanel0.add("24.1.left.top", new JLabel(" ")); + buttonPanel0.add("25.1.left.top", new JLabel(" ")); + JPanel rootPanel = new JPanel(new PropertyLayout()); + JLabel detailsLable = new JLabel("更改明细"); + detailsLable.setFont(new Font("宋体", 1, 14)); - JPanel buttonPanel0 = new JPanel(new PropertyLayout()); - buttonPanel0.add("1.1.left.top",new JLabel(" ")); - buttonPanel0.add("2.1.left.top",new JLabel(" ")); - buttonPanel0.add("3.1.left.top",new JLabel(" ")); - buttonPanel0.add("4.1.left.top",new JLabel(" ")); - buttonPanel0.add("5.1.left.top",new JLabel(" ")); - buttonPanel0.add("6.1.left.top",new JLabel(" ")); - buttonPanel0.add("7.1.left.top",new JLabel(" ")); - buttonPanel0.add("8.1.left.top",new JLabel(" ")); - buttonPanel0.add("9.1.left.top",new JLabel(" ")); - buttonPanel0.add("10.1.left.top",new JLabel(" ")); - buttonPanel0.add("11.1.left.top",new JLabel(" ")); - buttonPanel0.add("12.1.left.top",new JLabel(" ")); - buttonPanel0.add("13.1.left.top",new JLabel(" ")); - buttonPanel0.add("14.1.left.top",new JLabel(" ")); - buttonPanel0.add("15.1.left.top",new JLabel(" ")); - buttonPanel0.add("16.1.left.top",btn_tzfz); - buttonPanel0.add("17.1.left.top",new JLabel(" ")); - buttonPanel0.add("18.1.left.top",new JLabel(" ")); - buttonPanel0.add("19.1.left.top",btn); - - buttonPanel0.add("20.1.left.top",new JLabel(" ")); - buttonPanel0.add("21.1.left.top",new JLabel(" ")); - buttonPanel0.add("22.1.left.top",zt_btn); - buttonPanel0.add("23.1.left.top",new JLabel(" ")); - buttonPanel0.add("24.1.left.top",new JLabel(" ")); - buttonPanel0.add("25.1.left.top",new JLabel(" ")); + rootPanel.add("1.1.center.top", titleLable); + rootPanel.add("2.1.left.top", tablePanel1); + rootPanel.add("2.2.left.top", buttonPanel0); + // rootPanel.add("2.2.left.top",showCalendarPanel); + rootPanel.add("3.1.left.top", detailsLable); + JPanel test = new JPanel(new PropertyLayout()); + test.add("1.1.left.top", tablePanel2); + test.add("1.2.left.top", buttonPanel); + JPanel mainPanel = new JPanel(new BorderLayout()); + mainPanel.add(rootPanel, BorderLayout.NORTH); + mainPanel.add(test, BorderLayout.WEST); + this.setSize(1600, 1300); + this.setLayout(new BorderLayout()); + scrollPane = new JScrollPane(mainPanel); + scrollPane.getVerticalScrollBar().setUnitIncrement(20); + this.add(scrollPane, BorderLayout.CENTER); + this.setBackground(Color.WHITE); - JPanel rootPanel = new JPanel(new PropertyLayout()); + this.addComponentListener(new ComponentListener() { - JLabel detailsLable = new JLabel("更改明细"); - detailsLable.setFont(new Font("宋体", 1, 14)); + @Override + public void componentShown(ComponentEvent e) { + // TODO Auto-generated method stub + } - rootPanel.add("1.1.center.top",titleLable); - rootPanel.add("2.1.left.top",tablePanel1); - rootPanel.add("2.2.left.top",buttonPanel0); - //rootPanel.add("2.2.left.top",showCalendarPanel); + @Override + public void componentResized(ComponentEvent e) { + // TODO Auto-generated method stub + Component component2 = e.getComponent(); + int width3 = component2.getWidth(); + if (width3 < 1711) { + tablePanel2.setPreferredSize(new Dimension(1600, (int) tablePanel2.getPreferredSize().getHeight())); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } else { + tablePanel2.setPreferredSize( + new Dimension((width3 - 1711) + 1600, (int) tablePanel2.getPreferredSize().getHeight())); + tablePanel2.revalidate(); + tablePanel2.repaint(); + scrollPane.revalidate(); + scrollPane.repaint(); + } + } - rootPanel.add("3.1.left.top",detailsLable); + @Override + public void componentMoved(ComponentEvent e) { + // TODO Auto-generated method stub - rootPanel.add("4.1.left.top",tablePanel2); - rootPanel.add("4.2.left.top",buttonPanel); + } + @Override + public void componentHidden(ComponentEvent e) { + // TODO Auto-generated method stub + } + }); - this.setSize(1600, 1300); - this.setLayout(new BorderLayout()); - JScrollPane scrollPane = new JScrollPane(rootPanel); - scrollPane.getVerticalScrollBar().setUnitIncrement(20); - this.add(scrollPane,BorderLayout.CENTER); - this.setBackground(Color.WHITE); this.setVisible(true); } @Override public void saveRendering() { + if(model1.getValueAt(0, 5)==null||model1.getValueAt(4, 1)==null) { + MessageBox.post("申请时间与更改类型为必填项","",MessageBox.ERROR); + } delChangeForm(name); ChangeOrderBean bn = new ChangeOrderBean(); bn.setObjectCode(name); - bn.setApplyName(model1.getValueAt(0, 1) == null ? "" :model1.getValueAt(0, 1).toString()); - bn.setApplyDate(model1.getValueAt(0, 5) == null ? "" :model1.getValueAt(0, 5).toString()); - bn.setProjectCode(model1.getValueAt(8, 1) == null ? "" :model1.getValueAt(8, 1).toString()); - bn.setClientNae(model1.getValueAt(1, 5) == null ? "" :model1.getValueAt(1, 5).toString()); - bn.setProductDepartment(model1.getValueAt(3, 1) == null ? "" :model1.getValueAt(3, 1).toString()); - bn.setProductName(model1.getValueAt(1, 1) == null ? "" :model1.getValueAt(1, 1).toString()); - bn.setProjectModel(model1.getValueAt(1, 3) == null ? "" :model1.getValueAt(1, 3).toString()); - //受影响的设备 - bn.setAffectedPart(model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString()); - - - - bn.setChangeType(model1.getValueAt(4, 1) == null ? "" :model1.getValueAt(4, 1).toString()); - bn.setProductType(model1.getValueAt(4, 3) == null ? "" :model1.getValueAt(4, 3).toString()); - bn.setErrorType(model1.getValueAt(4, 5) == null ? "" :model1.getValueAt(4, 5).toString()); - bn.setDutyDepartment(model1.getValueAt(3, 3) == null ? "" :model1.getValueAt(3, 3).toString()); - bn.setDutyMan(model1.getValueAt(3, 5) == null ? "" :model1.getValueAt(3, 5).toString()); - //更改原因 - bn.setChangeReason(model1.getValueAt(9, 1) == null ? "" :model1.getValueAt(9, 1).toString()); - - bn.setSalseClassify(model1.getValueAt(5, 3) == null ? "" :model1.getValueAt(5, 3).toString()); - bn.setPriceBooking(model1.getValueAt(5, 1) == null ? "" :model1.getValueAt(5, 1).toString()); - bn.setIsNotProductLoss(model1.getValueAt(5, 5) == null ? "" :model1.getValueAt(5, 5).toString()); - bn.setReceiveClassify(model1.getValueAt(7, 3) == null ? "" :model1.getValueAt(7, 3).toString()); - bn.setWarehouseCode(model1.getValueAt(2, 1) == null ? "" :model1.getValueAt(2, 1).toString()); - //通知紧急程度 - bn.setNotifyEmergencyProcedures(model1.getValueAt(2, 3) == null ? "" :model1.getValueAt(2, 3).toString()); - - bn.setDrawingTo(model1.getValueAt(7, 5) == null ? "" :model1.getValueAt(7, 5).toString()); - - bn.setChangeListCode(model1.getValueAt(0, 3) == null ? "" :model1.getValueAt(0, 3).toString()); - bn.setTZChangeType(model1.getValueAt(2, 5) == null ? "" :model1.getValueAt(2, 5).toString()); + bn.setApplyName(model1.getValueAt(0, 1) == null ? "" : model1.getValueAt(0, 1).toString()); + bn.setApplyDate(model1.getValueAt(0, 5) == null ? "" : model1.getValueAt(0, 5).toString()); + bn.setProjectCode(model1.getValueAt(8, 1) == null ? "" : model1.getValueAt(8, 1).toString()); + bn.setClientNae(model1.getValueAt(1, 5) == null ? "" : model1.getValueAt(1, 5).toString()); + bn.setProductDepartment(model1.getValueAt(3, 1) == null ? "" : model1.getValueAt(3, 1).toString()); + bn.setProductName(model1.getValueAt(1, 1) == null ? "" : model1.getValueAt(1, 1).toString()); + bn.setProjectModel(model1.getValueAt(1, 3) == null ? "" : model1.getValueAt(1, 3).toString()); + // 受影响的设备 + bn.setAffectedPart(model1.getValueAt(6, 1) == null ? "" : model1.getValueAt(6, 1).toString()); + + bn.setChangeType(model1.getValueAt(4, 1) == null ? "" : model1.getValueAt(4, 1).toString()); + bn.setProductType(model1.getValueAt(4, 3) == null ? "" : model1.getValueAt(4, 3).toString()); + bn.setErrorType(model1.getValueAt(4, 5) == null ? "" : model1.getValueAt(4, 5).toString()); + bn.setDutyDepartment(model1.getValueAt(3, 3) == null ? "" : model1.getValueAt(3, 3).toString()); + bn.setDutyMan(model1.getValueAt(3, 5) == null ? "" : model1.getValueAt(3, 5).toString()); + // 更改原因 + bn.setChangeReason(model1.getValueAt(9, 1) == null ? "" : model1.getValueAt(9, 1).toString()); + + bn.setSalseClassify(model1.getValueAt(5, 3) == null ? "" : model1.getValueAt(5, 3).toString()); + bn.setPriceBooking(model1.getValueAt(5, 1) == null ? "" : model1.getValueAt(5, 1).toString()); + bn.setIsNotProductLoss(model1.getValueAt(5, 5) == null ? "" : model1.getValueAt(5, 5).toString()); + bn.setReceiveClassify(model1.getValueAt(7, 3) == null ? "" : model1.getValueAt(7, 3).toString()); + bn.setWarehouseCode(model1.getValueAt(2, 1) == null ? "" : model1.getValueAt(2, 1).toString()); + // 通知紧急程度 + bn.setNotifyEmergencyProcedures(model1.getValueAt(2, 3) == null ? "" : model1.getValueAt(2, 3).toString()); + + bn.setDrawingTo(model1.getValueAt(7, 5) == null ? "" : model1.getValueAt(7, 5).toString()); + + bn.setChangeListCode(model1.getValueAt(0, 3) == null ? "" : model1.getValueAt(0, 3).toString()); + bn.setTZChangeType(model1.getValueAt(2, 5) == null ? "" : model1.getValueAt(2, 5).toString()); bn.setSUOSU_ProductDepartment(""); - //model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString() + // model1.getValueAt(6, 1) == null ? "" :model1.getValueAt(6, 1).toString() - //公司账套 - bn.setAccountSet(model1.getValueAt(10, 1) == null ? "" :model1.getValueAt(10, 1).toString()); + // 公司账套 + bn.setAccountSet(model1.getValueAt(10, 1) == null ? "" : model1.getValueAt(10, 1).toString()); - bn.setProjectState(model1.getValueAt(7, 1) == null ? "" :model1.getValueAt(7, 1).toString()); + bn.setProjectState(model1.getValueAt(7, 1) == null ? "" : model1.getValueAt(7, 1).toString()); insertMes(bn); - - - - - - //=================================================================== - + // =================================================================== delAllChangedetil(name); - for(int cdss = 0 ; cdss changeMesg, + List changeDetils, String model) throws IOException, FileNotFoundException { + // 引用文件模板 + InputStream modeFile = ChangeNotifyForm.class.getResourceAsStream(model); + // 创建XSSFWorkbook对象(excel的文档对象) + XSSFWorkbook wb; + wb = new XSSFWorkbook(modeFile); + XSSFSheet sheet = wb.getSheetAt(0); +// XSSFRow row1 = sheet.getRow(startRow); +// XSSFCell cell1 = row1.getCell(0); +// XSSFCellStyle style = cell1.getCellStyle(); + if (changeMesg != null && changeMesg.size() > 0) { + ChangeOrderBean cob = changeMesg.get(0); + String sqr = cob.getApplyName(); + String sqsj = cob.getApplyDate(); + String xmbh = cob.getProjectCode(); + String khmc = cob.getClientNae(); + String cpbm = cob.getProductDepartment(); + String cpmc = cob.getProductName(); + String cpxh = cob.getProjectModel(); + String gglx = cob.getChangeType(); + String cplx = cob.getProductType(); + String tzgglx = cob.getTZChangeType(); + String cwlx = cob.getErrorType(); + String zrbm = cob.getDutyDepartment(); + String zrr = cob.getDutyMan(); + String ggyy = cob.getChangeReason(); + String ssfl = cob.getSalseClassify(); + String jgyg = cob.getPriceBooking(); + String sfcscbss = cob.getIsNotProductLoss(); + String ljlyfl = cob.getReceiveClassify(); + String ckbh = cob.getWarehouseCode(); + String zt = cob.getAccountSet(); + String tzjjcd = cob.getNotifyEmergencyProcedures(); + String tzfz = cob.getDrawingTo(); + String syxdsbhlbj = cob.getAffectedPart(); + String xmjd = cob.getProjectState(); + String bgtzdh = cob.getChangeListCode(); + + XSSFRow row = sheet.getRow(0); + XSSFCell cell = row.getCell(0); + XSSFRichTextString richTextString = new XSSFRichTextString(name + "-"+objname); + cell.setCellValue(richTextString); + + row = sheet.getRow(1); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(sqr); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(bgtzdh); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(sqsj); + cell.setCellValue(richTextString); + + row = sheet.getRow(2); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(cpmc); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(cpxh); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(khmc); + cell.setCellValue(richTextString); + + row = sheet.getRow(3); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(ckbh); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(tzjjcd); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(tzgglx); + cell.setCellValue(richTextString); + + row = sheet.getRow(4); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(cpbm); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(zrbm); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(zrr); + cell.setCellValue(richTextString); + + row = sheet.getRow(5); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(gglx); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(cplx); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(cwlx); + cell.setCellValue(richTextString); + + row = sheet.getRow(6); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(jgyg); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(ssfl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(sfcscbss); + cell.setCellValue(richTextString); + + row = sheet.getRow(7); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(syxdsbhlbj); + cell.setCellValue(richTextString); + + row = sheet.getRow(8); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(xmjd); + cell.setCellValue(richTextString); + cell = row.getCell(6); + richTextString = new XSSFRichTextString(ljlyfl); + cell.setCellValue(richTextString); + cell = row.getCell(12); + richTextString = new XSSFRichTextString(tzfz); + cell.setCellValue(richTextString); + + row = sheet.getRow(9); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(xmbh); + cell.setCellValue(richTextString); + + row = sheet.getRow(10); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(ggyy); + cell.setCellValue(richTextString); + + row = sheet.getRow(11); + cell = row.getCell(2); + richTextString = new XSSFRichTextString(zt); + cell.setCellValue(richTextString); + } + if (changeDetils != null && changeDetils.size() > 0) { + for (int i = 0; i < changeDetils.size(); i++) { + XSSFRow row = sheet.getRow(i + 16); + if (row == null) { + row = sheet.createRow(i + 16); + } + ChangeDetils changeDetil = changeDetils.get(i); + String ph = changeDetil.getPH(); + String pm = changeDetil.getPM(); + String ybb = changeDetil.getYBB(); + String xbb = changeDetil.getXBB(); + String ysl = changeDetil.getYSL(); + String xsl = changeDetil.getXSL(); + String bgsl = changeDetil.getBGSL(); + String ggsm = changeDetil.getGGSM(); + String wzpsl = changeDetil.getWZPSL(); + String wzpuj = changeDetil.getWZPUJ(); + String zzsl = changeDetil.getZZSL(); + String zzyj = changeDetil.getZZYJ(); + String scsl = changeDetil.getSCSL(); + String ssyj = changeDetil.getSSYJ(); + String cksl = changeDetil.getCKSL(); + String clyj = changeDetil.getCLYJ(); + + XSSFCell cell = row.getCell(0); + if (cell == null) { + cell = row.createCell(0); + } + XSSFRichTextString richTextString = new XSSFRichTextString(i + 1 + ""); + cell.setCellValue(richTextString); + cell = row.getCell(1); + if (cell == null) { + cell = row.createCell(1); + } + richTextString = new XSSFRichTextString(ph); + cell.setCellValue(richTextString); + cell = row.getCell(2); + if (cell == null) { + cell = row.createCell(2); + } + richTextString = new XSSFRichTextString(pm); + cell.setCellValue(richTextString); + cell = row.getCell(3); + if (cell == null) { + cell = row.createCell(3); + } + richTextString = new XSSFRichTextString(ybb); + cell.setCellValue(richTextString); + cell = row.getCell(4); + if (cell == null) { + cell = row.createCell(4); + } + richTextString = new XSSFRichTextString(xbb); + cell.setCellValue(richTextString); + cell = row.getCell(5); + if (cell == null) { + cell = row.createCell(5); + } + richTextString = new XSSFRichTextString(ysl); + cell.setCellValue(richTextString); + cell = row.getCell(6); + if (cell == null) { + cell = row.createCell(6); + } + richTextString = new XSSFRichTextString(xsl); + cell.setCellValue(richTextString); + + cell = row.getCell(7); + if (cell == null) { + cell = row.createCell(7); + } + richTextString = new XSSFRichTextString(bgsl); + cell.setCellValue(richTextString); + cell = row.getCell(8); + if (cell == null) { + cell = row.createCell(8); + + } + richTextString = new XSSFRichTextString(ggsm); + cell.setCellValue(richTextString); - //获取变更单信息 + cell = row.getCell(9); + if (cell == null) { + cell = row.createCell(9); + + } + richTextString = new XSSFRichTextString(wzpsl); + cell.setCellValue(richTextString); + + cell = row.getCell(10); + if (cell == null) { + cell = row.createCell(10); + + } + richTextString = new XSSFRichTextString(wzpuj); + cell.setCellValue(richTextString); + + cell = row.getCell(11); + if (cell == null) { + cell = row.createCell(11); + + } + richTextString = new XSSFRichTextString(zzsl); + cell.setCellValue(richTextString); + + cell = row.getCell(12); + if (cell == null) { + cell = row.createCell(12); + + } + richTextString = new XSSFRichTextString(zzyj); + cell.setCellValue(richTextString); + + cell = row.getCell(13); + if (cell == null) { + cell = row.createCell(13); + + } + richTextString = new XSSFRichTextString(scsl); + cell.setCellValue(richTextString); + + cell = row.getCell(14); + if (cell == null) { + cell = row.createCell(14); + + } + richTextString = new XSSFRichTextString(ssyj); + cell.setCellValue(richTextString); + + cell = row.getCell(15); + if (cell == null) { + cell = row.createCell(15); + + } + richTextString = new XSSFRichTextString(cksl); + cell.setCellValue(richTextString); + + cell = row.getCell(16); + if (cell == null) { + cell = row.createCell(16); + + } + richTextString = new XSSFRichTextString(clyj); + cell.setCellValue(richTextString); + } + } + + // 判断是否存在目录. 不存在则创建 + isChartPathExist(filepath); + // 输出Excel文件 + // FileOutputStream output = new FileOutputStream(filepath + "\\" + filename); + FileOutputStream output = new FileOutputStream(new File(filepath + "\\" + filename)); + wb.write(output); + + output.close(); + modeFile.close(); + } + + private void isChartPathExist(String dirPath) { + File file = new File(dirPath); + if (!file.exists()) { + file.mkdirs(); + } + } + + + + // 获取变更单信息 private List getChangeMesg(String id) { List list = new ArrayList(); ChangeOrderBean bn = new ChangeOrderBean(); ResultSet r = null; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEFORM where objectCode=?";// try { con = ConnectionFun(); - stmt=con.prepareStatement(sql); - stmt.setString(1,id); - r=stmt.executeQuery(); - while(r.next()){ + stmt = con.prepareStatement(sql); + stmt.setString(1, id); + r = stmt.executeQuery(); + while (r.next()) { bn.setObjectCode(r.getString(1)); bn.setApplyName(r.getString(2)); bn.setApplyDate(r.getString(3)); @@ -1256,17 +1713,17 @@ public class QuickChangeForm extends AbstractRendering { bn.setWarehouseCode(r.getString(20)); bn.setAccountSet(r.getString(21)); bn.setNotifyEmergencyProcedures(r.getString(22)); - bn.setDrawingTo(r.getString(27)); + bn.setDrawingTo(r.getString(23)); bn.setChangeListCode(r.getString(24)); bn.setTZChangeType(r.getString(25)); bn.setSUOSU_ProductDepartment(r.getString(26)); - bn.setProjectState(r.getString(23)); + bn.setProjectState(r.getString(27)); list.add(bn); } - }catch (SQLException e) { + } catch (SQLException e) { e.printStackTrace(); - }finally{ + } finally { try { r.close(); stmt.close(); @@ -1277,24 +1734,21 @@ public class QuickChangeForm extends AbstractRendering { } return list; - } - - - + } public List getChangeDetail(String id) { List list = new ArrayList(); ResultSet r = null; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEDETAILS where objectCode=?";// try { con = ConnectionFun(); - stmt=con.prepareStatement(sql); - stmt.setString(1,id); - r=stmt.executeQuery(); - while(r.next()){ + stmt = con.prepareStatement(sql); + stmt.setString(1, id); + r = stmt.executeQuery(); + while (r.next()) { ChangeDetils cd = new ChangeDetils(); System.out.println(r.getString(1)); cd.setObjectCode(r.getString(1)); @@ -1313,11 +1767,12 @@ public class QuickChangeForm extends AbstractRendering { cd.setSSYJ(r.getString(14)); cd.setCKSL(r.getString(15)); cd.setCLYJ(r.getString(16)); + cd.setGGSM(r.getString(17)); list.add(cd); } - }catch (SQLException e) { + } catch (SQLException e) { e.printStackTrace(); - }finally{ + } finally { try { r.close(); stmt.close(); @@ -1327,104 +1782,96 @@ public class QuickChangeForm extends AbstractRendering { } } - return list; } - - - - - public void setValue() { System.out.println("加载数据"); - List list = getChangeMesg(name); - if(list.size() > 0) { - ChangeOrderBean bn = (ChangeOrderBean) list.get(list.size()-1); + List list = getChangeMesg(name); + if (list.size() > 0) { + ChangeOrderBean bn = (ChangeOrderBean) list.get(list.size() - 1); System.out.println(bn.getApplyName()); - table1.setValueAt(bn.getApplyName(),0, 1); - table1.setValueAt(bn.getApplyDate(),0, 5); - table1.setValueAt(bn.getProjectCode(),8, 1); - table1.setValueAt(bn.getClientNae(),1, 5); - table1.setValueAt(bn.getProductDepartment(),3, 1); - table1.setValueAt(bn.getProductName(),1, 1); - table1.setValueAt(bn.getProjectModel(),1, 3); - //受影响的零部件 - table1.setValueAt(bn.getAffectedPart(),6, 1); - - table1.setValueAt(bn.getChangeType(),4, 1); - table1.setValueAt(bn.getProductType(),4, 3); - table1.setValueAt(bn.getErrorType(),4, 5); - table1.setValueAt(bn.getDutyDepartment(),3, 3); - table1.setValueAt(bn.getDutyMan(),3, 5); - table1.setValueAt(bn.getChangeReason(),9, 1); - table1.setValueAt(bn.getSalseClassify(),5, 3); - table1.setValueAt(bn.getPriceBooking(),5, 1); - table1.setValueAt(bn.getIsNotProductLoss(),5, 5); - table1.setValueAt(bn.getReceiveClassify(),7, 3); - table1.setValueAt(bn.getWarehouseCode(),2, 1); - //账套 - table1.setValueAt(bn.getAccountSet(),10, 1); - //通知紧急程度 - table1.setValueAt(bn.getNotifyEmergencyProcedures(),2, 3); - - table1.setValueAt(bn.getDrawingTo(),7, 1); - - table1.setValueAt(bn.getChangeListCode(),0, 3); - table1.setValueAt(bn.getTZChangeType(),2, 5); - //table1.setValueAt(bn.getSUOSU_ProductDepartment(),6, 1); - table1.setValueAt(bn.getProjectState(),7, 5); - //table2 添加行加入数 + table1.setValueAt(bn.getApplyName(), 0, 1); + table1.setValueAt(bn.getApplyDate(), 0, 5); + table1.setValueAt(bn.getProjectCode(), 8, 1); + table1.setValueAt(bn.getClientNae(), 1, 5); + table1.setValueAt(bn.getProductDepartment(), 3, 1); + table1.setValueAt(bn.getProductName(), 1, 1); + table1.setValueAt(bn.getProjectModel(), 1, 3); + // 受影响的零部件 + table1.setValueAt(bn.getAffectedPart(), 6, 1); + + table1.setValueAt(bn.getChangeType(), 4, 1); + table1.setValueAt(bn.getProductType(), 4, 3); + table1.setValueAt(bn.getErrorType(), 4, 5); + table1.setValueAt(bn.getDutyDepartment(), 3, 3); + table1.setValueAt(bn.getDutyMan(), 3, 5); + table1.setValueAt(bn.getChangeReason(), 9, 1); + table1.setValueAt(bn.getSalseClassify(), 5, 3); + table1.setValueAt(bn.getPriceBooking(), 5, 1); + table1.setValueAt(bn.getIsNotProductLoss(), 5, 5); + table1.setValueAt(bn.getReceiveClassify(), 7, 3); + table1.setValueAt(bn.getWarehouseCode(), 2, 1); + // 账套 + table1.setValueAt(bn.getAccountSet(), 10, 1); + // 通知紧急程度 + table1.setValueAt(bn.getNotifyEmergencyProcedures(), 2, 3); + + table1.setValueAt(bn.getDrawingTo(), 7, 1); + + table1.setValueAt(bn.getChangeListCode(), 0, 3); + table1.setValueAt(bn.getTZChangeType(), 2, 5); + // table1.setValueAt(bn.getSUOSU_ProductDepartment(),6, 1); + table1.setValueAt(bn.getProjectState(), 7, 5); + // table2 添加行加入数 } } - - //保存时提交到数据库 + // 保存时提交到数据库 public void insertMes(ChangeOrderBean bn) { Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "insert into DFL_CHANGEFORM values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - stmt.setString(1,bn.getObjectCode()); - stmt.setString(2,bn.getApplyName()); - stmt.setString(3,bn.getApplyDate()); - stmt.setString(4,bn.getProjectCode()); - stmt.setString(5,bn.getClientNae()); - stmt.setString(6,bn.getProductDepartment()); - stmt.setString(7,bn.getProductName()); - - stmt.setString(8,bn.getProjectModel()); - stmt.setString(9,bn.getAffectedPart()); - stmt.setString(10,bn.getChangeType()); - stmt.setString(11,bn.getProductType()); + stmt.setString(1, bn.getObjectCode()); + stmt.setString(2, bn.getApplyName()); + stmt.setString(3, bn.getApplyDate()); + stmt.setString(4, bn.getProjectCode()); + stmt.setString(5, bn.getClientNae()); + stmt.setString(6, bn.getProductDepartment()); + stmt.setString(7, bn.getProductName()); + stmt.setString(8, bn.getProjectModel()); + stmt.setString(9, bn.getAffectedPart()); + stmt.setString(10, bn.getChangeType()); + stmt.setString(11, bn.getProductType()); - stmt.setString(12,bn.getErrorType()); - stmt.setString(13,bn.getDutyDepartment()); - stmt.setString(14,bn.getDutyMan()); + stmt.setString(12, bn.getErrorType()); + stmt.setString(13, bn.getDutyDepartment()); + stmt.setString(14, bn.getDutyMan()); - stmt.setString(15,bn.getChangeReason()); + stmt.setString(15, bn.getChangeReason()); - stmt.setString(16,bn.getSalseClassify()); + stmt.setString(16, bn.getSalseClassify()); - stmt.setString(17,bn.getPriceBooking()); + stmt.setString(17, bn.getPriceBooking()); - stmt.setString(18,bn.getIsNotProductLoss()); - stmt.setString(19,bn.getReceiveClassify()); - stmt.setString(20,bn.getWarehouseCode()); - stmt.setString(21,bn.getAccountSet()); + stmt.setString(18, bn.getIsNotProductLoss()); + stmt.setString(19, bn.getReceiveClassify()); + stmt.setString(20, bn.getWarehouseCode()); + stmt.setString(21, bn.getAccountSet()); - stmt.setString(22,bn.getNotifyEmergencyProcedures()); - stmt.setString(23,bn.getDrawingTo()); - stmt.setString(24,bn.getChangeListCode()); + stmt.setString(22, bn.getNotifyEmergencyProcedures()); + stmt.setString(23, bn.getDrawingTo()); + stmt.setString(24, bn.getChangeListCode()); - stmt.setString(25,bn.getTZChangeType()); - stmt.setString(26,bn.getSUOSU_ProductDepartment()); - stmt.setString(27,bn.getProjectState()); - stmt.executeUpdate() ; + stmt.setString(25, bn.getTZChangeType()); + stmt.setString(26, bn.getSUOSU_ProductDepartment()); + stmt.setString(27, bn.getProjectState()); + stmt.executeUpdate(); System.out.println("数据插入数据库完成"); } catch (Exception ex) { @@ -1438,43 +1885,37 @@ public class QuickChangeForm extends AbstractRendering { } } - } - - - - /** - * 插入更改明细 + * 插入更改明细 */ - - public void insertChangeDetailsMes(ChangeDetils cd) { Connection con = null; - PreparedStatement stmt=null; - String sql = "insert into DFL_CHANGEDETAILS values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + PreparedStatement stmt = null; + String sql = "insert into DFL_CHANGEDETAILS values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - stmt.setString(1,cd.getObjectCode()); - stmt.setString(2,cd.getPH()); - stmt.setString(3,cd.getPM()); - stmt.setString(4,cd.getYBB()); - stmt.setString(5,cd.getXBB()); - stmt.setString(6,cd.getYSL()); - stmt.setString(7,cd.getXSL()); - stmt.setString(8,cd.getBGSL()); - stmt.setString(9,cd.getWZPSL()); - stmt.setString(10,cd.getWZPUJ()); - stmt.setString(11,cd.getZZSL()); - stmt.setString(12,cd.getZZYJ()); - stmt.setString(13,cd.getSCSL()); - stmt.setString(14,cd.getSSYJ()); - stmt.setString(15,cd.getCKSL()); - stmt.setString(16,cd.getCLYJ()); - stmt.executeUpdate() ; + stmt.setString(1, cd.getObjectCode()); + stmt.setString(2, cd.getPH()); + stmt.setString(3, cd.getPM()); + stmt.setString(4, cd.getYBB()); + stmt.setString(5, cd.getXBB()); + stmt.setString(6, cd.getYSL()); + stmt.setString(7, cd.getXSL()); + stmt.setString(8, cd.getBGSL()); + stmt.setString(9, cd.getWZPSL()); + stmt.setString(10, cd.getWZPUJ()); + stmt.setString(11, cd.getZZSL()); + stmt.setString(12, cd.getZZYJ()); + stmt.setString(13, cd.getSCSL()); + stmt.setString(14, cd.getSSYJ()); + stmt.setString(15, cd.getCKSL()); + stmt.setString(16, cd.getCLYJ()); + stmt.setString(17, cd.getGGSM()); + stmt.executeUpdate(); System.out.println("数据插入数据库完成"); } catch (Exception ex) { ex.printStackTrace(); @@ -1487,10 +1928,9 @@ public class QuickChangeForm extends AbstractRendering { } } + } - } - - //删除时间 + // 删除时间 public void del_date() { Connection con = null; String sql = "delete from dfl_changetime"; @@ -1511,9 +1951,6 @@ public class QuickChangeForm extends AbstractRendering { } } - - - public void delChangeForm(String id) { Connection con = null; String sql = "delete from dfl_changeform where objectCode=?"; @@ -1521,7 +1958,7 @@ public class QuickChangeForm extends AbstractRendering { try { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); + prepStmt.setString(1, id); prepStmt.executeUpdate(); System.out.println("数据库删除成功"); } catch (Exception ex) { @@ -1535,13 +1972,7 @@ public class QuickChangeForm extends AbstractRendering { } } - - - - - - - public void delChangedetil(String id ,String ph) { + public void delChangedetil(String id, String ph) { Connection con = null; String sql = "delete from DFL_CHANGEDETAILS where objectCode=? and PH = ?"; System.out.println(sql); @@ -1549,12 +1980,12 @@ public class QuickChangeForm extends AbstractRendering { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); - prepStmt.setString(2,ph); + prepStmt.setString(1, id); + prepStmt.setString(2, ph); prepStmt.executeUpdate(); - // Statement stmt=conn.createStatement();//创建Statement对象 - // stmt.executeUpdate(sql);//执行sql语句 + // Statement stmt=conn.createStatement();//创建Statement对象 + // stmt.executeUpdate(sql);//执行sql语句 System.out.println("数据库删除成功"); } catch (Exception ex) { ex.printStackTrace(); @@ -1565,15 +1996,11 @@ public class QuickChangeForm extends AbstractRendering { ex.printStackTrace(); } - } - } - - - public void delAllChangedetil(String id ) { + public void delAllChangedetil(String id) { Connection con = null; String sql = "delete from DFL_CHANGEDETAILS where objectCode=?"; System.out.println(sql); @@ -1581,12 +2008,12 @@ public class QuickChangeForm extends AbstractRendering { con = ConnectionFun(); PreparedStatement prepStmt = conn.prepareStatement(sql); - prepStmt.setString(1,id); + prepStmt.setString(1, id); prepStmt.executeUpdate(); - // Statement stmt=conn.createStatement();//创建Statement对象 - // stmt.executeUpdate(sql);//执行sql语句 + // Statement stmt=conn.createStatement();//创建Statement对象 + // stmt.executeUpdate(sql);//执行sql语句 System.out.println("数据库删除成功"); } catch (Exception ex) { ex.printStackTrace(); @@ -1597,31 +2024,25 @@ public class QuickChangeForm extends AbstractRendering { ex.printStackTrace(); } - } - } - - - - - //查找数据库中是都有该对象 + // 查找数据库中是都有该对象 public int ifcountform(String id) { int i = 0; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEFORM where objectCode=?"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - ResultSet rs=null; - stmt.setString(1,id); - rs=stmt.executeQuery(); - while(rs.next()) { - i=i+1; + ResultSet rs = null; + stmt.setString(1, id); + rs = stmt.executeQuery(); + while (rs.next()) { + i = i + 1; } @@ -1637,20 +2058,21 @@ public class QuickChangeForm extends AbstractRendering { } return i; } - //统计数量 + + // 统计数量 public int ifcountdetial(String id) { int i = 0; Connection con = null; - PreparedStatement stmt=null; + PreparedStatement stmt = null; String sql = "select * from DFL_CHANGEDETAILS where objectCode=?"; try { con = ConnectionFun(); stmt = con.prepareStatement(sql); - ResultSet rs=null; - stmt.setString(1,id); - rs=stmt.executeQuery(); - while(rs.next()) { - i=i+1; + ResultSet rs = null; + stmt.setString(1, id); + rs = stmt.executeQuery(); + while (rs.next()) { + i = i + 1; } @@ -1667,10 +2089,6 @@ public class QuickChangeForm extends AbstractRendering { return i; } - - - - /** * JTable设置列宽 */ @@ -1683,9 +2101,6 @@ public class QuickChangeForm extends AbstractRendering { return columns; } - - - class MyButtonEditor extends DefaultCellEditor { protected DateButton button; @@ -1707,8 +2122,6 @@ public class QuickChangeForm extends AbstractRendering { } } - - class MyTable extends JTable { int myRow = -1, myCol = -1; TableCellEditor myEditor; @@ -1733,7 +2146,19 @@ public class QuickChangeForm extends AbstractRendering { } } } - + //连接数据库查询库存 + private String StockResult (String itemid) { + String Stock = null; + String sql = null; + sql = "select sum(img10) from " +zhangtao + ".img_file where img01='"+itemid+"' and img02='"+cangku+"' and img02<>'Z1' "; + try { + Stock = data.getRecord(sql); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return Stock; + } /** * 通过查询构建器查询项目对象 * @@ -1763,6 +2188,4 @@ public class QuickChangeForm extends AbstractRendering { } } - - } diff --git a/src/com/connor/dfl/plm/util/ClassValueUtil.java b/src/com/connor/dfl/plm/util/ClassValueUtil.java index 4dbf6ff..ab7e6d4 100644 --- a/src/com/connor/dfl/plm/util/ClassValueUtil.java +++ b/src/com/connor/dfl/plm/util/ClassValueUtil.java @@ -83,7 +83,7 @@ public class ClassValueUtil { String kaitou1 = attrName.substring(0,2); //前两个字是否为规格 if("规格".equals(kaitou1)) { - valueBean.setSpec(value); + valueBean.setSpec(lovValue); } } else if(attrName.contains("订货码")){