From 5f545a51231ab4955763fd812a0d914b1d8bc561 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 27 七月 2023 20:35:34 +0800
Subject: [PATCH] PDM集成swing界面相关功能开发
---
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/R.java | 50
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java | 1207 ++++++++++++++++
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ClassifyLevel.java | 62
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/SectionObject.java | 4
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java | 27
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialogActionListener.java | 59
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CommonActionListener.java | 20
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/DescViewDialog.java | 85 +
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient3.java | 159 ++
Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties | 35
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient.java | 141 +
Source/UBCS/pom.xml | 1
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java | 164 ++
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/RealTextField.java | 54
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/VCIJComboxBox.java | 50
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TransmitTreeObject.java | 67
Source/UBCS/ubcs-codeApply/src/main/resources/properties/tt.json | 1
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ConfigUtils.java | 48
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java | 388 +++++
Source/UBCS/ubcs-codeApply/pom.xml | 64
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/AttrRangObjectWarper.java | 41
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410DialogActionListener.java | 45
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeLibTreeCellRenderer.java | 51
Source/UBCS/ubcs-service/ubcs-code/pom.xml | 8
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java | 159 ++
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java | 37
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java | 113 +
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml | 168 ++
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 51
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpUtil.java | 239 +++
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassify.java | 11
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/httpClient4.java | 134 +
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/IntegerTextField.java | 24
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410TreePanel.java | 304 ++++
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TestIntegrateFrame.java | 44
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java | 23
Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/RMDataTransmitObject.java | 160 ++
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java | 31
38 files changed, 4,329 insertions(+), 0 deletions(-)
diff --git a/Source/UBCS/pom.xml b/Source/UBCS/pom.xml
index 5757e07..9a71e3e 100644
--- a/Source/UBCS/pom.xml
+++ b/Source/UBCS/pom.xml
@@ -41,6 +41,7 @@
<module>ubcs-plugin-api</module>
<module>ubcs-service</module>
<module>ubcs-service-api</module>
+ <module>ubcs-codeApply</module>
</modules>
<dependencyManagement>
diff --git a/Source/UBCS/ubcs-codeApply/pom.xml b/Source/UBCS/ubcs-codeApply/pom.xml
new file mode 100644
index 0000000..04d6bcb
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/pom.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>UBCS</artifactId>
+ <groupId>com.vci.ubcs</groupId>
+ <version>3.0.1.RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <properties>
+ <vciplt.version>2022.RELEASE</vciplt.version>
+ <old.spring.version>3.2.0.RELEASE</old.spring.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java.version>1.8</java.version>
+ </properties>
+ <artifactId>ubcs-codeApply</artifactId>
+ <dependencies>
+ <dependency><!--VciBase鍩虹鍖�-->
+ <groupId>com.vci.platform</groupId>
+ <artifactId>VCIBase-client</artifactId>
+ <version>${vciplt.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.vci.platform</groupId>
+ <artifactId>VCIBase-common</artifactId>
+ <version>${vciplt.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.vci.ubcs</groupId>
+ <artifactId>ubcs-user-api</artifactId>
+ <version>3.0.1.RELEASE</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.vci.ubcs</groupId>
+ <artifactId>ubcs-code-api</artifactId>
+ <version>3.0.1.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.1</version>
+ </dependency>
+ </dependencies>
+ <distributionManagement>
+ <repository>
+ <id>rdc-releases</id>
+ <url>http://nexus.vci-tech.com:9000/repository/maven-releases/</url>
+ </repository>
+ <snapshotRepository>
+ <id>rdc-snapshots</id>
+ <url>http://nexus.vci-tech.com:9000/repository/maven-snapshots/</url>
+ </snapshotRepository>
+ </distributionManagement>
+</project>
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java
new file mode 100644
index 0000000..11b60ee
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java
@@ -0,0 +1,164 @@
+package com.vci.ubcs.codeapply;
+
+import com.vci.base.common.resource.CommonProperties;
+import com.vci.base.ui.swing.VCIOptionPane;
+import com.vci.base.ui.swing.VCISwingUtil;
+import com.vci.base.ui.swing.components.VCIJButton;
+import com.vci.base.ui.swing.components.VCIJDialog;
+import com.vci.base.ui.swing.components.VCIJPanel;
+import com.vci.ubcs.codeapply.utils.ConfigUtils;
+import com.vci.ubcs.system.user.entity.User;
+
+import javax.swing.*;
+import java.awt.*;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class CodeApplyFor410Dialog extends VCIJDialog {
+
+
+ private static final long serialVersionUID = -3286164100581857853L;
+ private static User userOb = new User();
+ private String userName = null;
+ private String codeValue = null;
+ private CodeApplyFor410DialogActionListener actionListener = new CodeApplyFor410DialogActionListener(this);
+ private VCIJButton okBtn = VCISwingUtil.createVCIJButton("ok", "纭", "纭", "ok.gif", actionListener);
+ private VCIJButton cancelBtn = VCISwingUtil.createVCIJButton("cancel", "鍙栨秷", "鍙栨秷", "cancel.gif", actionListener);
+ private CodeApplyPanelFor410 mainPal = null;
+ private Component parentComponet = null;
+ private Map<String, String> attrNameAndValMap = new LinkedHashMap();//瀛樺偍灞炴�у悕绉帮紙鍖呭惈鍐呴儴鍚嶇О鍜屽閮ㄥ悕绉帮級鍜屽搴旂殑鍊�
+
+ /**
+ * 瀛樺偍鍒嗙被鐨凪ap,key:鍒嗙被鍚嶇О锛寁alue锛氬垎绫诲��
+ */
+ private String clsfName = null;
+ /**
+ * 瀛樺偍灞炴�у拰鍊肩殑Map,key:灞炴�у悕绉帮紝value锛氬睘鎬у��
+ */
+ private String deptName = null;
+
+ private String[] libName = ConfigUtils.getConfigValue("410.PDM.LibCodeName").split("#");//ConfigUtils.getConfigValue("410.PDM.LibCodeName").split("#");//浠g爜椤瑰悕绉�
+
+ public CodeApplyFor410Dialog(Frame frame, String clsfName, String deptName) {
+ this(frame, "pdmUser", clsfName, deptName,new String[]{});
+ }
+ public CodeApplyFor410Dialog(JDialog dialog, String clsfName, String deptName) {
+ this(dialog, "pdmUser", clsfName, deptName,new String[]{});
+ }
+ public CodeApplyFor410Dialog(Frame frame, String userName, String clsfName, String deptName, String[] libName){
+ super(frame, true);
+ try {
+ this.setModal(true);
+ parentComponet = frame;
+ this.userName = userName;
+ this.clsfName = clsfName;
+ this.deptName = deptName;
+ //this.libName = libName;
+ init();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public CodeApplyFor410Dialog(JDialog dialog, String userName, String clsfName, String deptName, String[] libName) {
+ super(dialog, true);
+ try {
+ this.setModal(true);
+ parentComponet = dialog;
+ this.userName = userName;
+ this.clsfName = clsfName;
+ this.deptName = deptName;
+ // this.libName = libName;
+
+ init();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void initUserInfo() {
+// userOb.set("127.0.0.1");
+// userOb.setModules("TC闆嗘垚浠g爜鐢宠");
+// userOb.setUserName(userName);
+ }
+
+ public void buildDialog() {
+ Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
+ int x = dime.width/2 - 400;
+ int y = dime.height/2-400;
+ this.setLocation(x, y);
+ this.setSize(new Dimension(900, 800));
+ this.setResizable(true);
+ this.setVisible(true);
+ }
+
+
+ private void init() {
+ boolean isConnect = verifyConnect();
+ if (isConnect) {
+ try {
+ initUserInfo();
+ bulidPal();
+ }catch (Exception e){
+ showMessageBox( "鏈嶅姟鍑虹幇寮傚父锛�->"+e.getMessage());
+ }
+ } else {
+ showMessageBox("鏃犳硶杩炴帴浠g爜鏈嶅姟鍣紒");
+ }
+ }
+
+ private void bulidPal() throws Exception {
+ this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
+ this.setTitle("浠g爜鐢宠");
+ mainPal = new CodeApplyPanelFor410(this,userOb, true, clsfName, deptName,libName);
+
+ VCIJPanel btnPal = new VCIJPanel();
+ btnPal.add(okBtn);
+ btnPal.add(cancelBtn);
+
+ this.setLayout(new BorderLayout());
+ this.add(mainPal,BorderLayout.CENTER);
+ this.add(btnPal,BorderLayout.SOUTH);
+ buildDialog();
+ }
+
+ public boolean verifyConnect() {
+ try {
+// if (ClientSession.getFrameworkService() != null) {
+// return true;
+// }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ public String getApplyCode() {
+ return mainPal.getApplyCode();
+ }
+
+ public String getCodeValue() {
+ return codeValue;
+ }
+
+ public void setCodeValue(String codeValue) {
+ this.codeValue = codeValue;
+ }
+
+ public String getAttributeValue(String attribute) {
+ if(attrNameAndValMap.containsKey(attribute)) {
+ return attrNameAndValMap.get(attribute);
+ }
+ return "";
+ }
+
+ public void setAttrNameAndValMap() {
+ this.attrNameAndValMap = mainPal.getAttrNameAndValMap();
+ }
+
+ private void showMessageBox(String message) {
+ VCIOptionPane.showMessage(parentComponet, message);
+ }
+
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410DialogActionListener.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410DialogActionListener.java
new file mode 100644
index 0000000..ffdd7bb
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410DialogActionListener.java
@@ -0,0 +1,45 @@
+package com.vci.ubcs.codeapply;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.LinkedHashMap;
+
+public class CodeApplyFor410DialogActionListener implements ActionListener {
+
+ private CodeApplyFor410Dialog owner = null;
+ public CodeApplyFor410DialogActionListener(CodeApplyFor410Dialog owner){
+ this.owner = owner;
+ this.initActionMap();
+ }
+
+ private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap();
+ private void initActionMap(){
+ actionMaps.put("ok", new Runnable() { public void run() {
+ ok();
+ }});
+ actionMaps.put("cancel", new Runnable() { public void run() {
+ cancel();
+ }});
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ String key = e.getActionCommand();
+ if(actionMaps.containsKey(key)){
+ actionMaps.get(key).run();
+ }
+ }
+
+ private void ok() {
+ this.owner.setCodeValue(this.owner.getApplyCode());
+ this.owner.setAttrNameAndValMap();
+ this.owner.dispose();
+ }
+
+ private void cancel(){
+ this.owner.setCodeValue("");
+ this.owner.dispose();
+ }
+
+
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java
new file mode 100644
index 0000000..8854c9f
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java
@@ -0,0 +1,1207 @@
+package com.vci.ubcs.codeapply;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.vci.base.ui.swing.VCIOptionPane;
+import com.vci.base.ui.swing.components.*;
+import com.vci.base.ui.tree.VCIBaseTreeNode;
+import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.codeapply.object.*;
+import com.vci.ubcs.codeapply.swing.IntegerTextField;
+import com.vci.ubcs.codeapply.swing.RealTextField;
+import com.vci.ubcs.codeapply.swing.VCIJComboxBox;
+import com.vci.ubcs.codeapply.utils.ConfigUtils;
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+import com.vci.ubcs.system.user.entity.User;
+import net.bytebuddy.implementation.bytecode.Throw;
+import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
+
+import javax.swing.*;
+import javax.swing.text.JTextComponent;
+import javax.swing.tree.TreeNode;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.*;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+public class CodeApplyFor410MainPanel extends VCIJPanel {
+
+
+ //410鏂伴渶姹�
+ private final String SPECIAL_RULE_NAME="Special.rule.name";
+ private final String SPECIAL_SECTION_NAME = "Special.section.name";
+ private final String SPECIAL_CONTROL_SECTION_NAME = "Special.control.other.section.name";
+ private final String SPECIAL_SECTION_VALUE = "Special.section.val";
+
+ private final String MAX_ATTR_IN_LINE_KEY = "RMData.MaxAttrInLine";
+ private final String TEXTAREA_ENABLE_KEY = "RMData.TextArea.Enable";
+ private final String MAX_STRING_LENGTH_KEY = "RMData.MaxStringLength";
+ private final String TEXTAREA_PRE_SIZE_WIDTH = "RMData.TextArea.PreferredSize.Width";
+ private final String TEXTAREA_PRE_SIZE_HEIGHT = "RMData.TextArea.PreferredSize.Height";
+ private final String TEXTAREA_MIN_SIZE_WIDTH = "RMData.TextArea.MinimumSize.Width";
+ private final String TEXTAREA_MIN_SIZE_HEIGHT = "RMData.TextArea.MinimumSize.Height";
+ private final String TEXTAREA_MAX_SIZE_WIDTH = "RMData.TextArea.MaximumSize.Width";
+ private final String TEXTAREA_MAX_SIZE_HEIGHT = "RMData.TextArea.MaximumSize.Height";
+ // 鏄惁鍚敤灞炴�ч暱搴﹁繃闀挎椂锛岀敤TextArea鏄剧ず锛宼rue:鍚敤 false锛氫笉鍚敤锛岄粯璁ゅ�紅rue
+ private boolean isEnableTextArea = false;
+ // 鍚敤浜員extArea鍚庯紝姝extArea鐨凱referredSize銆丮inimumSize銆丮aximumSize鐨刉idth銆丠eight
+ private int textAreaPreSizeWidth = 100;
+ private int textAreaPreSizeHeight = 50;
+ private int textAreaMinSizeWidth = 100;
+ private int textAreaMinSizeHeight = 30;
+ private int textAreaMaxSizeWidth = 100;
+ private int textAreaMaxSizeHeight = 80;
+ // 鍚屼竴琛屽唴锛屾渶澶氬姞杞界殑灞炴�т釜鏁帮紝涓�琛屼负涓�缁勶紝鍗充竴缁勫唴鏈�澶氬姞杞界殑灞炴�т釜鏁帮紝榛樿鍊�2
+ private int maxAttrInLine = 2;
+ // 褰揝tring绫诲瀷鐨勫睘鎬у�肩殑闀垮害澶т簬姝ゅ�兼椂锛岃灞炴�у氨闇�瑕佺敤TextArea鏄剧ず锛屽苟鍗犵敤鏁磋锛岄粯璁ゅ��100
+ private int maxStringLength = 100;
+ private int levelPositon = -1;
+ private TransmitTreeObject transTreeObject = new TransmitTreeObject();
+ private User userObj;
+ private String deptName;
+ //瀛樺偍姣忎釜瀹為檯 鐮佹鍒楀搴旂殑鐮佹瀵硅薄
+ protected Map<Integer,CodeBasicSecVO> columnSecMap = new LinkedHashMap<Integer,CodeBasicSecVO>();
+ private LinkedHashMap<Integer, JComponent> compMaps = new LinkedHashMap<Integer, JComponent>();
+ private Map<String, JComponent> secAndComMap = new LinkedHashMap<String, JComponent>();
+
+ private Map<JComponent, JComponent> comtMap = new LinkedHashMap<JComponent, JComponent>();
+ private Map<String, VCIJComboBox> secNameAndComtMap = new LinkedHashMap<String, VCIJComboBox>();
+ private Map<Integer,String> secIndexAndNameMap = new LinkedHashMap<Integer, String>();
+ private List<JComponent> specSecList = new ArrayList<JComponent>();
+ private boolean isSpecialRuleFlag = false;
+ private String specialSectioName = "";
+ private VCIJPanel rulePal = new VCIJPanel();
+
+ private String[] specialSecVals = new String[0];
+ private RMDataTransmitObject transmitForRMData = null;
+
+ /**
+ * 灞炴�D涓庡睘鎬у搴旂殑鎺т欢涔嬮棿鐨勬槧灏凪AP
+ */
+ private LinkedHashMap<String, JComponent> attrIdToCtrlMaps = new LinkedHashMap<String, JComponent>();
+ /**
+ * 灞炴�х殑鍐呴儴鍚嶇О涓庡睘鎬у搴旂殑鎺т欢涔嬮棿鐨勬槧灏凪AP
+ */
+ private LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps = new LinkedHashMap<String, JComponent>();
+
+ /**
+ * 寮曠敤鐜涙鐮佸�间笌combox鍏冪礌浣嶇疆鐨勬槧灏凪AP
+ */
+ private LinkedHashMap<String, Integer> refSecValueToCombxindex = new LinkedHashMap<String, Integer>();
+ /**
+ * 鐮佹id涓庡垎绫荤爜娈电爜鍊兼弿杩板璞″搴旂殑鎺т欢涔嬮棿鐨勬槧灏凪AP
+ */
+ private LinkedHashMap<String, JComponent> secIdToClsfIdMap = new LinkedHashMap<String, JComponent>();
+
+ private List<VCIJTextField> textCompts = new LinkedList<VCIJTextField>();
+ /**
+ * 褰撳墠閫夋嫨鐨勫垎绫荤殑妯℃澘
+ */
+ private CodeClassifyTemplateVO currentCodeClassifyTemplateVO;
+ // 瀹為檯鐨�
+ private VCIJDialog realDialogInstance = null;
+ public CodeApplyFor410MainPanel(TransmitTreeObject transTreeObject, User userObj, CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
+ this.transTreeObject = transTreeObject;
+ this.userObj = userObj;
+ this.currentCodeClassifyTemplateVO=currentCodeClassifyTemplateVO;
+ }
+
+ public CodeApplyFor410MainPanel(TransmitTreeObject transTreeObject,User userObj,String deptName,CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
+ this.transTreeObject = transTreeObject;
+ this.userObj = userObj;
+ this.deptName = deptName;
+ this.currentCodeClassifyTemplateVO=currentCodeClassifyTemplateVO;
+ }
+
+ /**
+ *
+ * @param type, 1浠h〃鐢宠锛�2璁剧疆娴佹按
+ */
+ public void buildMainPanel(int type) {
+ try {
+ init(type);
+ if (type == 2) {
+ return;
+ }
+ this.initRMTypeTreeMaps();
+ this.initContents();
+ }catch (Exception e){
+ VCIOptionPane.showMessage(this,e.getMessage());
+ }
+ }
+ private void init(int type){
+ this.loadTextAreaEnableEnv(); //add by liujw
+ //this.loadSpecialRuleConfig();
+ CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
+ String url= ConfigUtils.getConfigValue("410.PDM.rule.url","http://127.0.0.1:36014/codeApplySwingController/getCodeRuleByClassifyFullInfo");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ Map<String,String> condtionMap=new HashMap<>();
+ condtionMap.put("codeClassId", rmType.getOid());
+ R r=HttpUtil.sendGet(url,condtionMap,new HashMap<>());
+ CodeRuleVO codeRuleVO=new CodeRuleVO();
+ if(r.isSuccess()){
+ Object object= r.getData();
+ if(object!=null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ codeRuleVO = objectMapper.readValue(object.toString(),CodeRuleVO.class);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this,r.getMsg());
+ }
+ /**鍔犺浇瑙勫垯瀵瑰簲鐨勭爜娈典俊鎭�**/
+ if(codeRuleVO!=null){
+ List<CodeBasicSecVO> codeBasicSecVOList=codeRuleVO.getSecVOList();
+ if(!CollectionUtils.isEmpty(codeBasicSecVOList) ){
+ /**鍒濆鍖栫爜娈祊anel**/
+ initSectionPanel(codeBasicSecVOList, codeRuleVO.getOid(), type);//鍒濆鍖栬鍒欑爜娈�
+ }
+ }
+ this.setLayout(new BorderLayout());
+ this.add(rulePal,BorderLayout.CENTER);
+
+ }
+ /**
+ * 瑙勫垯鐮佹涓荤晫闈�
+ * <p>Description: </p>
+ *
+ * @author Administrator
+ * @time 2012-8-7
+ * @param objs
+ * @param cRuleId
+ */
+ private void initSectionPanel(List<CodeBasicSecVO> objs, String cRuleId, int type) {
+ //寰幆鑾峰彇鍒楀悕
+ int column = 0;
+ for(int i = 0; i < objs.size(); i++) {
+ if(objs.get(i).getSecType().equals("codeserialsec")){//娴佹按鐮佹涓嶅湪TABLE閲屾樉绀�
+ if (type == 1) {
+ continue;
+ } else if (type == 2) {
+ break;
+ }
+ }
+ columnSecMap.put(column++,objs.get(i));
+ }
+ createSectionPanel(objs, type);
+ }
+ private void createSectionPanel(List<CodeBasicSecVO> secObjs, int type) {
+ /**姣忔閫夋嫨浠g爜椤瑰悗锛岃嚜鍔ㄥ姞杞借鍒欑爜娈靛拰妯℃澘灞炴�т俊鎭紝娓呴櫎鍘熸潵鐨勭爜娈典俊鎭�**/
+ rulePal.removeAll();
+ rulePal.updateUI();
+
+ /**鏍规嵁瑙勫垯鑾峰彇鐮佹淇℃伅鐣岄潰**/
+ VCIJPanel sectionPal = new VCIJPanel(new GridBagLayout());
+ GridBagConstraints c = new GridBagConstraints();
+ int x = 0;
+ int y = 0;
+ int maxAttrInLine = 1;
+ int column = 2;
+
+ List<CodeBasicSecVO> secList = new ArrayList<CodeBasicSecVO>();
+ List<VCIJComboxBox> comList = new ArrayList<VCIJComboxBox>();
+
+ compMaps.clear();
+ secAndComMap.clear();
+ secIdToClsfIdMap.clear();
+ secNameAndComtMap.clear();
+ secIndexAndNameMap.clear();
+ // 鍔犺浇鐮佹鍒楄〃
+ boolean isBreak = false;
+ for(int secIndex = 0; secIndex < secObjs.size(); secIndex += maxAttrInLine){//for1
+ for(int columnIndex = 0; columnIndex < maxAttrInLine; columnIndex++){ //for2
+ if(secIndex + columnIndex >= secObjs.size()){
+ break;
+ }
+ if(secObjs.get(secIndex).getSecType().equals("codeserialsec")){//娴佹按鐮佹涓嶅湪TABLE閲屾樉绀�
+ if (type == 1) {
+ continue;
+ } else {
+ isBreak = true;
+ break;
+ }
+ } /*else if (secObjs[secIndex].getSecType() == SectionConstant.SectionType.SECCHAR){//鏄垎闅旂
+ continue;
+ }*/
+ CodeBasicSecVO secObj = secObjs.get(secIndex+columnIndex);
+
+ VCIJLabel lbl = new VCIJLabel(secObj.getName() + "锛�");
+ lbl.setForeground(new Color(129, 0, 0));
+ JComponent compt = null;//鐮佹鍚嶇О
+
+ VCIJComboxBox cbx = new VCIJComboxBox();
+ compt = cbx;
+ secList.add(secObj);
+ comList.add(cbx);
+ compMaps.put(column, compt);
+ secNameAndComtMap.put(secObj.getName(), cbx);
+ secIndexAndNameMap.put(column, secObj.getName());
+
+ /**灞傜骇鐮佹闇�瑕佺壒娈婂鐞嗭細濡傛灉鏄眰绾х爜娈碉紝涓嬫媺妗嗕笉鑳界紪杈戯紝鏄剧ず鐨勫�兼槸閫変腑鐨勬爲鑺傜偣鐨勫垎绫诲悕绉板拰浠e彿**/
+ if(secObj.getSecType().equals ("codelevelsec")) {//灞傜骇鐮佹
+ levelPositon = column;
+ compt.setEnabled(false);
+ }
+// relationMap.put(secIndex, column);
+ secAndComMap.put(secObj.getId(), cbx);
+ column++;
+
+ c.gridx = x++;
+ c.gridy = y;
+ c.gridheight = 1;
+ c.gridwidth = 1;
+ c.weightx = 0d;
+ c.weighty = 0d;
+// c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.EAST;
+ c.insets = new Insets(1, 1, 10, 10);
+ c.ipadx = 3;
+ c.ipady = 3;
+ lbl.setPreferredSize(new Dimension(100,25));
+ sectionPal.add(lbl, c);
+
+ c.gridx = x++;
+ c.weightx = 0d;
+ c.fill = GridBagConstraints.CENTER;
+ c.anchor = GridBagConstraints.WEST;
+ compt.setPreferredSize(new Dimension(200,25));
+ sectionPal.add(compt, c);
+ //濡傛灉褰撳墠鐮佹鏄渶瑕佺壒娈婂鐞嗙殑鐮佹锛岀郴缁熻繘琛岃褰曞鐞�
+ if(isSpecialRuleFlag && specialSectioName.equals(secObj.getName())) {
+ specSecList.add(lbl);
+ specSecList.add(compt);
+ }
+ /**鍒嗙被鐮佹娣诲姞鎻忚堪淇℃伅 410鏂伴渶姹傦細鍒嗙被鐮佹鐮佸�煎鍔�'鐮佸�兼弿杩�'瀛楁 BEGIN***/
+ if(secObj.getSecType().equals("codeclassifysec")) {
+ VCIJLabel lblDesc = new VCIJLabel("鎻忚堪锛�");
+ c.gridx = x++;
+ c.weightx = 0d;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ lblDesc.setPreferredSize(new Dimension(40,25));
+ sectionPal.add(lblDesc, c);
+ VCIJTextField txtDesc = new VCIJTextField("");
+ c.gridx = x++;
+ c.weightx = 0d;
+ c.fill = GridBagConstraints.CENTER;
+ c.anchor = GridBagConstraints.WEST;
+ txtDesc.setPreferredSize(new Dimension(200,25));
+ txtDesc.setEditable(false);
+ sectionPal.add(txtDesc, c);
+ secIdToClsfIdMap.put(secObj.getId(), txtDesc);
+ //璇︾粏鎻忚堪淇℃伅鐨勬煡鐪�
+ VCIJLabel clsfDescLbl = new VCIJLabel();
+ clsfDescLbl.setText("<html><u>"+"璇︾粏鎻忚堪"+"</u><html>");
+ clsfDescLbl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+ clsfDescLbl.setForeground(Color.RED);
+
+ comtMap.put(clsfDescLbl,txtDesc);
+ clsfDescLbl.addMouseListener(new MouseAdapter() {
+ public void mouseClicked(MouseEvent e){
+ clsfValDescActionListener(e);
+ }
+ });
+ c.gridx = x++;
+ c.weightx = 0d;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+// lblDesc.setPreferredSize(new Dimension(100,25));
+ sectionPal.add(clsfDescLbl, c);
+
+ //濡傛灉褰撳墠鐮佹鏄渶瑕佺壒娈婂鐞嗙殑鐮佹锛岀郴缁熻繘琛岃褰曞鐞�
+ if(isSpecialRuleFlag && specialSectioName.equals(secObj.getName())) {
+ specSecList.add(lblDesc);
+ specSecList.add(txtDesc);
+ specSecList.add(clsfDescLbl);
+ }
+
+ }
+ /****************************END**********************************/
+
+ }// for 2
+ if (isBreak) {
+ break;
+ }
+ x = 0;
+ y += 1;
+ }// for 1
+
+ rulePal.setLayout(new BorderLayout());
+ rulePal.add(sectionPal,BorderLayout.CENTER);
+ if (type == 1) {
+ rulePal.add(createAttrPal(),BorderLayout.SOUTH);
+ }
+ initCurrentRow(secList.toArray(new CodeBasicSecVO[0]),comList.toArray(new VCIJComboxBox[0]));
+ }
+ /**鍔犺浇妯℃澘灞炴�т俊鎭潰鏉�**/
+ private VCIJPanel createAttrPal() {
+ VCIJPanel attrPal = new VCIJPanel();
+ CodeClassify rmTypeObj = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
+ /**閫夋嫨浜嗕唬鐮侀」**/
+ if(rmTypeObj != null) {
+ transmitForRMData = loadTemplateAttributes("",rmTypeObj.getId(),"");
+ /**浠g爜椤逛笅鐨勬ā鏉垮寘鍚睘鎬�**/
+ if(transmitForRMData.getTempPropObjsList().size() > 0) {
+ attrPal = createTemplateAttributePanel(transmitForRMData);
+ }
+ }
+ return attrPal;
+ }
+ private void loadSpecialRuleConfig() {
+ /******added by ligang 鏄惁鏄壒娈婅鍒欑殑鍒ゆ柇Begin******/
+ /*CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
+ RuleManagerObject ruleObj = ruleDel.getRuleManagerById(rmType.getRuleOid());
+
+ String specialRuleName = ConfigUtils.getConfigValue(SPECIAL_RULE_NAME);
+ isSpecialRuleFlag = ruleObj.getPlname().toUpperCase().equals(specialRuleName.toUpperCase()) ? true : false;
+ specialControlSecName = ConfigUtils.getConfigValue(SPECIAL_CONTROL_SECTION_NAME);
+ specialSectioName = ConfigUtils.getConfigValue(SPECIAL_SECTION_NAME);
+ specialSecVals = ConfigUtils.getConfigValue(SPECIAL_SECTION_VALUE).split(",");*/
+ /*********************End*************************/
+ }
+
+ /**
+ * 鍔犺浇鏄惁鍚敤TextArea鐜鍙傛暟
+ * <p>
+ * Description:
+ * </p>
+ * @author liujw
+ * @throws
+ * @time 2013-4-16
+ */
+ private void loadTextAreaEnableEnv() {
+ String textAreaEnable = ConfigUtils.getConfigValue(TEXTAREA_ENABLE_KEY);
+ String strAttrInLine = ConfigUtils.getConfigValue(MAX_ATTR_IN_LINE_KEY);
+ if (isNumber(strAttrInLine)) {
+ Integer iLength = Integer.valueOf(strAttrInLine);
+ if (iLength > 0) {
+ this.maxAttrInLine = iLength;
+ }
+ }
+ if (textAreaEnable.toLowerCase().equals("true")) {
+ this.isEnableTextArea = true;
+ }
+ if(this.isEnableTextArea){
+ String cfgValue = "";
+
+ cfgValue = ConfigUtils.getConfigValue(MAX_STRING_LENGTH_KEY);
+ if (isNumber(cfgValue)) {
+ Integer iLength = Integer.valueOf(cfgValue);
+ if (iLength > 0) {
+ this.maxStringLength = iLength;
+ }
+ }
+
+ cfgValue = ConfigUtils.getConfigValue(TEXTAREA_PRE_SIZE_WIDTH);
+ if (isNumber(cfgValue)) {
+ Integer iValue = Integer.valueOf(cfgValue);
+ if (iValue > 0) {
+ this.textAreaPreSizeWidth = iValue;
+ }
+ }
+
+ cfgValue = ConfigUtils.getConfigValue(TEXTAREA_PRE_SIZE_HEIGHT);
+ if (isNumber(cfgValue)) {
+ Integer iValue = Integer.valueOf(cfgValue);
+ if (iValue > 0) {
+ this.textAreaPreSizeHeight = iValue;
+ }
+ }
+
+ cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MIN_SIZE_WIDTH);
+ if (isNumber(cfgValue)) {
+ Integer iValue = Integer.valueOf(cfgValue);
+ if (iValue > 0) {
+ this.textAreaMinSizeWidth = iValue;
+ }
+ }
+
+ cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MIN_SIZE_HEIGHT);
+ if (isNumber(cfgValue)) {
+ Integer iValue = Integer.valueOf(cfgValue);
+ if (iValue > 0) {
+ this.textAreaMinSizeHeight = iValue;
+ }
+ }
+
+ cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MAX_SIZE_WIDTH);
+ if (isNumber(cfgValue)) {
+ Integer iLength = Integer.valueOf(cfgValue);
+ if (iLength > 0) {
+ this.textAreaMaxSizeWidth = iLength;
+ }
+ }
+
+ cfgValue = ConfigUtils.getConfigValue(TEXTAREA_MAX_SIZE_HEIGHT);
+ if (isNumber(cfgValue)) {
+ Integer iLength = Integer.valueOf(cfgValue);
+ if (iLength > 0) {
+ this.textAreaMaxSizeHeight = iLength;
+ }
+ }
+ }
+ }
+ /**
+ * 鍒嗙被灞傜骇娉ㄥ叆鍔熻兘鐨勫畬鍠�
+ * <p>Description: </p>
+ *
+ * @author ligang
+ * @time 2013-5-7
+ */
+ private void initContents() {
+ Iterator<String> keys = transmitForRMData.getTempPropObjsMap().keySet().iterator();
+ while(keys.hasNext()){
+ String key = keys.next();
+ CodeClassifyTemplateAttrVO tempPropObj = transmitForRMData.getTempPropObjsMap().get(key);
+ String referConfig=tempPropObj.getReferConfig();//鍙傜収閰嶇疆
+ String componentRule=tempPropObj.getComponentRule();//缁勫悎瑙勫垯
+ String innerName = tempPropObj.getId();
+ if (attrInnerNameToCtrlMaps.containsKey(innerName)) {
+ String classifyLevel = tempPropObj.getClassifyInvokeLevel();
+ String classifyInvokeAttr= tempPropObj.getClassifyInvokeAttr();
+ JComponent compt = attrInnerNameToCtrlMaps.get(innerName);
+ if(StringUtils.isNotBlank(classifyLevel)&&!classifyLevel.equals("none")&&!classifyLevel.equals("min")) {
+ compt.setEnabled(false);
+ //ClassifyLevel classifyLevelObj=new ClassifyLevel();
+ //ObjectMapper objectMapper = new ObjectMapper();
+ String value = "";
+ /*classifyLevelObj = objectMapper.readValue(classifyLevel.toString(), ClassifyLevel.class);
+ String set=classifyLevelObj.getSet();
+ String type=classifyLevelObj.getType();*/
+ if (classifyLevel.equals("min")) {
+ CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
+ if ("name".equals(classifyInvokeAttr)) {
+ value = rmType.getName();
+ } else if ("id".equals(classifyInvokeAttr)) {
+ value = rmType.getId();
+ }
+
+ } else {
+ int intLevel = Integer.parseInt(classifyLevel);
+ if (rmTypeTreeMaps.containsKey(intLevel)) {
+ CodeClassify rmType = rmTypeTreeMaps.get(intLevel);
+ if ("name".equals(classifyInvokeAttr)) {
+ value = rmType.getName();
+ } else if ("id".equals(classifyInvokeAttr)) {
+ value = rmType.getId();
+ }
+ }
+ }
+ if (compt instanceof JTextComponent) {
+ ((JTextComponent) compt).setText(value);
+ }
+ }
+ //鍙傜収閰嶇疆鐨勮缃垚鍙妯″紡
+ if(StringUtils.isNotBlank(referConfig)||StringUtils.isNotBlank(componentRule)){
+ compt.setEnabled(false);
+ }
+ }
+ }
+ }
+ /**
+ * 鍒嗙被鏍戜腑鐨勫垎绫诲璞ap
+ */
+ private LinkedHashMap<Integer, CodeClassify> rmTypeTreeMaps = new LinkedHashMap();
+
+ private void initRMTypeTreeMaps(){
+ if(transTreeObject != null){
+ TreeNode[] nodes = transTreeObject.getTreeModel().getPathToRoot(transTreeObject.getCurrentTreeNode());
+ int level = 1;
+ int start = 1;
+ for(int i = start; i < nodes.length; i++){
+ TreeNode node = nodes[i];
+ if(node instanceof VCIBaseTreeNode){
+ VCIBaseTreeNode treeNode = (VCIBaseTreeNode) node;
+ Object obj = treeNode.getObj();
+ if((treeNode.isRoot() || (obj instanceof String))){
+ //
+ }else if(obj instanceof CodeClassify){
+ CodeClassify rmType = (CodeClassify)obj;
+ rmTypeTreeMaps.put(level++, rmType);
+ }
+ }
+ }
+ }
+ }
+
+
+ /**
+ * 鍒濆鍖栦釜鐮佹鐮佸�硷紝濡傛灉鏄垎绫荤爜鍙姞杞界埗鍒嗙被鐨勫垎绫荤爜鍊硷紝瀛愬垎绫讳笉鍔犺浇
+ * @param secObjs
+ */
+ public void initCurrentRow(CodeBasicSecVO[] secObjs,VCIJComboxBox[] secCombos) {
+ SectionObject lastSecObj = null;
+ VCIJComboxBox hisCombo = null;
+ try {
+ final Map<String, String> secValMap = getSpecialValMap(specialSecVals);
+ for(int k = 0;k < secObjs.length; k++) {
+ final CodeBasicSecVO secObj = secObjs[k];
+ final VCIJComboxBox secCombo = secCombos[k];
+ if(null == secObj) {
+ return;
+ }
+ if (secObj.getSecType().equals("codeclassifysec")) {// 鏄垎绫荤爜
+ continue;
+ } else
+ // 鏄浐瀹氱爜
+ if (secObj.getSecType() .equals("codefixedsec")) {
+ /* SectionValueClientDelegate codeValDel = new SectionValueClientDelegate(userObj);
+ FixCodeValObject[] codeValObjs = codeValDel.fetchFixCodeValBySecId(secObj.getId());// 鑾峰彇璇ョ爜娈典笅鐨勬墍鏈夌爜娈电爜鍊煎璞�
+ //濡傛灉鍙湁涓�涓�硷紝鍒欑郴缁熼粯璁ら�夋嫨锛屼笉鍔犵┖鍊�
+ if(codeValObjs.length > 1 ) {
+ secCombo.addItem(new FixCodeValObject());
+ }
+ for (int i = 0; i < codeValObjs.length; i++) {
+ secCombo.addItem(codeValObjs[i]);
+ }
+ *//**褰撶郴缁熼�夋嫨鐨勬槸鎸囧畾鐮佹鍊兼椂锛岀粍鍒唬鍙风殑鐮佹绯荤粺涓嶆樉绀� Begin**//*
+ FixCodeValObject selObj = (FixCodeValObject) secCombo.getSelectedItem();
+ if(isSpecialRuleFlag && (secObj.getName().equals(specialControlSecName) && secValMap.containsKey(selObj.getValue())) || secValMap.containsKey(getControlSecSelectValue())) {
+ setComponentStatus(false);
+ }else {
+ setComponentStatus(true);
+ }
+ if (secCombo.getItemCount() > 10){
+ if (!secCombo.isFlag()){
+ secCombo.setFlag(true);
+ secCombo.getSearchBtn().setVisible(true);
+ secCombo.getSearchBtn().addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ doSearch(secCombo);
+ }
+ });
+ }
+ }else {
+ secCombo.setFlag(false);
+ secCombo.getSearchBtn().setVisible(false);
+ }*/
+
+ } else
+ // 鏄棩鏈熺爜娈�
+ if (secObj.getSecType().equals("codedatesec")) {
+ /*SectionClientDelegate secDel = new SectionClientDelegate(userObj);
+ DateSecObject dateObj = secDel.fetchDateSecById(secObj.getId());
+ String df = dateObj.getFormat();
+ SimpleDateFormat dateFormate = new SimpleDateFormat(df);
+ String curDate = dateFormate.format(Calendar.getInstance().getTime());
+ secCombo.addItem(curDate);
+ if(dateObj.getIsModify().equals("Y")){//鍙互淇敼
+ secCombo.setEditable(true);
+ }*/
+ } else
+ //鏄紩鐢ㄧ爜娈�
+ if (secObj.getSecType().equals("coderefersec")) {
+ /*RefSecObject refObj = getRefSecObj(secObj.getId());
+ DefaultComboBoxModel aModel = getRefSecComboBox(refObj);
+ secCombo.setModel(aModel);
+ if(deptName != null && !("".equals(deptName))){
+ Integer index = refSecValueToCombxindex.get(deptName);
+ if(index !=null){
+ secCombo.setSelectedIndex(index);
+ }
+ }
+
+ if (secCombo.getItemCount() > 10){
+ if (!secCombo.isFlag()){
+ secCombo.setFlag(true);
+ secCombo.getSearchBtn().setVisible(true);
+ secCombo.getSearchBtn().addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ doSearch(secCombo);
+ }
+ });
+ }
+ }else {
+ secCombo.setFlag(false);
+ secCombo.getSearchBtn().setVisible(false);
+ }
+
+ */} else
+ //灞傜骇鐮佹鐮佸�兼樉绀虹殑鏄�夋嫨鐨勪唬鐮侀」鐨勫悕绉�
+ if(secObj.getSecType().equals("coderefersec")) {
+ /*RMTypeObject rmObj = (RMTypeObject) this.transTreeObject.getCurrentTreeNode().getObj();
+ secCombo.addItem(rmObj);*/
+ } else {
+ secCombo.setEditable(true);
+ }
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ VCIOptionPane.showError(this, "鍒濆鍖栫爜娈电爜鍊煎嚭鐜伴敊璇紒");
+ }
+ }
+ /**
+ * 鍔犺浇妯℃澘鐨勫畾涔夌殑灞炴�с�佸睘鎬ф暟鎹�
+ * <p>Description: </p>
+ *
+ * @author xchao
+ * @time 2012-6-7
+ * @param libId
+ * @param classifyId
+ * @param templateId
+ * @return
+ */
+ public RMDataTransmitObject loadTemplateAttributes(String libId, String classifyId, String templateId) {
+ RMDataTransmitObject transmit=new RMDataTransmitObject();
+ transmit.setLibId(libId);
+ transmit.setClassifyId(classifyId);
+ CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
+ transmit.setRmTypeObject(rmType);
+ if(currentCodeClassifyTemplateVO!=null) {
+ transmit.setTemplateId(templateId);
+ Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName = currentCodeClassifyTemplateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+ transmit.setClassifyCode(rmType.getId());
+ transmit.setTempPropObjMapsByInnerName(tempPropObjMapsByInnerName);
+ Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap = currentCodeClassifyTemplateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getOid().toLowerCase(Locale.ROOT), t -> t));
+ transmit.setTempPropObjsMap(tempPropObjsMap);
+ transmit.setTemplateObject(currentCodeClassifyTemplateVO);
+ transmit.setTempPropObjsList(this.currentCodeClassifyTemplateVO.getAttributes());
+ }
+ return transmit;
+ }
+
+ /****
+ * 鍔犺浇浠g爜椤瑰搴旂殑妯℃澘灞炴�т俊鎭垪琛�
+ * <p>Description: </p>
+ *
+ * @author Administrator
+ * @time 2013-3-23
+ * @param transmitForRMData 锛氭ā鏉垮睘鎬�,鍒嗙被绛変俊鎭�
+ * @return
+ */
+ private VCIJPanel createTemplateAttributePanel(final RMDataTransmitObject transmitForRMData) {
+ //int maxAttrInLine = 2;
+ VCIJPanel pal = new VCIJPanel();
+ pal.setLayout(new GridBagLayout());
+ int gridx = -1;
+ int gridy = -1;
+ int gridwidth = 1;
+ double weighty = 0.0;
+ CodeClassifyTemplateAttrVO[] realAttrs = getRealAttributeObjects(transmitForRMData);
+ Map<String, String> attrMaps = getTempPropMap(transmitForRMData);
+
+ attrIdToCtrlMaps.clear();
+ attrInnerNameToCtrlMaps.clear();
+
+ for (int attrIndex = 0; attrIndex < realAttrs.length; attrIndex += maxAttrInLine) {// for1
+ gridx = 0;
+ gridy += 1;
+ boolean leastNewLine = checkLeastNewLine(attrIndex, maxAttrInLine,attrMaps,realAttrs);
+ for (int columnIndex = 0; columnIndex < maxAttrInLine; columnIndex++) { // for2
+ int index = columnIndex + attrIndex;
+ if (index >= realAttrs.length) {
+ break;
+ }
+ CodeClassifyTemplateAttrVO attrObj = realAttrs[index];
+
+ /***濡傛灉妯℃澘閰嶇疆浜嗗紩鐢ㄦā鏉匡紝灞炴�у悕绉板垪琛ㄦ坊鍔犻摼鎺ヨ繘琛屽鐞� BEGIN**/
+ //ADD BY liujw
+ VCIJLabel lbl = null;
+ if(StringUtils.isNotBlank(attrObj.getReferConfig())) {//寮曠敤妯℃澘灞炴�у��
+ lbl = new VCIJLabel("<html><u>"+(attrObj.getName() + ":")+"</u><html>");
+ lbl.setForeground(Color.MAGENTA);
+ lbl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+ lbl.setToolTipText("鐐瑰嚮姝ゅ鍔犺浇寮曠敤妯℃澘灞炴�ф暟鎹�");
+ lbl.addMouseListener(new MouseAdapter() {
+ public void mouseClicked(MouseEvent e){
+ getReferTempRMData(attrObj,attrIdToCtrlMaps,transmitForRMData.getTempPropObjsList());
+ }
+ });
+ } else if(!"".equals(attrObj.getComponentRule())) {//妯℃澘瑙勫垯鐨勭粍鍚�
+ String lblName = "鈽�"+attrObj.getName() + "鈽�:";
+ lbl = new VCIJLabel("<html><u>"+lblName+"<u></html>");
+ lbl.setForeground(Color.BLUE);
+ lbl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+ lbl.setToolTipText("鐐瑰嚮姝ゅ鑾峰彇妯℃澘瀵瑰簲瑙勫垯鐨勫��");
+ lbl.addMouseListener(new MouseAdapter() {
+ public void mouseClicked(MouseEvent e){
+ // getComptAttrValue(attrObj,attrIdToCtrlMaps,transmitForRMData.getTempPropObjsList());
+
+ }
+ });
+ } else if(attrObj.getKeyAttrFlag().equals("true")) {//鍏抽敭灞炴��
+ lbl = new VCIJLabel(attrObj.getName() + ":");
+ lbl.setForeground(new Color(255, 0, 0));
+ }
+ else {
+ lbl = new VCIJLabel(attrObj.getName() + ":");
+ lbl.setForeground(attrObj.getRequireFlag().equals("true") ? new Color(0, 120, 0) : new Color(129, 0, 0));
+ }
+ JComponent compt = createComponent(attrObj);
+ JComponent comptAddToPanel = compt;
+
+ //by liujw
+ boolean isMultiLineFlag = attrObj.getTextAreaFlag().equals("true") ? true : false;
+ if (this.isEnableTextArea && isMultiLineFlag // 鍚敤TextArea鏄剧ず澶勭悊锛屼笖灞炴�ч暱搴﹁秴杩囦竴瀹氳寖鍥�
+ && attrObj.getAttributeDataType().toUpperCase().equals("VTstring".toUpperCase()) // String绫诲瀷
+ ) {
+ VCIJTextArea textArea = new VCIJTextArea("", attrObj.getRequireFlag().equals("true"));
+ VCIJScrollPane textAreaScroll = createTextAreaScrollPane(textArea);
+ textArea.setEnabled(compt.isEnabled());
+ comptAddToPanel = textAreaScroll;
+ if(compt instanceof JTextComponent){
+ textArea.setText(((JTextComponent)compt).getText());
+ }
+ compt = textArea;
+ }
+ /**
+ * 鏂规锛歏1 灞炴�х粍浠跺姞杞姐�佹樉绀虹瓥鐣� 1銆佹瘡琛岋紙涓�缁勶級鏈�澶氭樉绀簃axAttrInLine涓睘鎬�
+ * 2銆佸鏋渋sEnableTextArea涓簍rue锛屽垯鏄惎鐢═extArea
+ * 3銆佸惎鐢═extArea鍚庯紝濡傛灉涓�缁勫唴鐨勫睘鎬э紝鍙浠绘剰涓�涓睘鎬у畾涔夌殑灞炴�ч暱搴﹀ぇ浜庢垨绛変簬maxStringLength
+ * 锛屽垯璇ョ粍鍐呯殑姣忎釜灞炴�ч兘灏嗙嫭鍗犱竴鏁磋
+ * 姝ゆ柟妗堝瓨鍦ㄧ殑闂锛氬洜涓洪櫎TextArea涔嬪鐨勫睘鎬т篃灏嗗崰鏁磋鏄剧ず锛屽鏋滀竴缁勫唴鐨勫睘鎬т釜鏁拌緝澶�
+ * 锛堝ぇ浜�2锛夋椂锛岀晫闈㈡樉绀哄眰闈笉澶紝鍙嬪ソ锛屽挨鍏舵槸杩炵画鍑虹幇澶氫釜TextArea鏃舵鐜拌薄鏇村姞鏄庢樉
+ * 鍥犳寤鸿閰嶇疆锛氬惎鐢═extArea鏃讹紝RMData.MaxAttrInLine=2锛屽嵆涓�缁勫唴鏈�澶氬姞杞戒袱涓睘鎬с��
+ */
+ // 涓�缁勮嚦灏戝瓨鍦ㄧ潃涓�涓猅extArea鏃讹紝璇ョ粍鍐呭叾瀹冨睘鎬т篃灏嗗崰鏁翠釜瀹藉害锛堢嫭鍗犱竴琛岋級锛�
+ if (leastNewLine) {
+ gridwidth = maxAttrInLine * 2;
+ gridx = 0;
+ gridy += 1;
+// weighty = 1.0;
+ weighty = 0.0;
+ } else {
+ gridwidth = 1;
+ weighty = 0.0;
+ }
+ pal.add(lbl,createGridBagConstraints(gridx, gridy, 1, 1, 0.0, 0.0,GridBagConstraints.NORTHEAST,GridBagConstraints.NONE));
+ pal.add(comptAddToPanel,createGridBagConstraints(gridx + 1, gridy, gridwidth,1, 1.0, weighty, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH));
+ // 濡傛灉杩欎竴缁勫唴涓嶅瓨鍦ㄧ潃闇�瑕佸崰鏁磋鏄剧ず鐨勶紝鍒欒绠楁í鍧愭爣
+ //gridx += 2;
+ if (!leastNewLine) {
+ gridx += 2;
+ }
+ /*********************** 鏂规锛歏1 End ***********************/
+
+ // 缂撳瓨鍚勫睘鎬у搴旂殑鎺�&缁勪欢
+ String key = attrObj.getId();
+ if (!attrIdToCtrlMaps.containsKey(key)) {
+ attrIdToCtrlMaps.put(key, compt);
+ }
+ // 瀛樺偍灞炴�у唴閮ㄥ悕绉颁笌鎺т欢鐨勫叧绯�
+ key = attrObj.getId();
+ if (!attrInnerNameToCtrlMaps.containsKey(key)) {
+ attrInnerNameToCtrlMaps.put(key, compt);
+ }
+ }// for 2
+ }// for 1
+ // 鍦ㄥ簳閮ㄦ坊鍔犱竴琛岋紝鍗犳嵁鍏ㄩ儴鐨勭┖浣欏尯鍩燂紝鍏跺畠鎺т欢鑷姩浠庡榻愬埌椤堕儴
+ pal.add(new VCIJLabel(""),createGridBagConstraints(0, gridy + 1, maxAttrInLine * 2, 1,1.0, 10.0, GridBagConstraints.NORTHWEST,GridBagConstraints.BOTH));
+ this.setTextComptList(textCompts);
+ return pal;
+ }
+ /**鏍规嵁灞炴�х粍鍚堣鍒欒幏鍙栧睘鎬х殑鍊� **/
+ //add by liujw
+ private void getComptAttrValue(CodeClassifyTemplateAttrVO attrObj, LinkedHashMap<String, JComponent> attrIdToCtrlMaps) {
+ Map<String, String> attrNameMap = new LinkedHashMap<String, String>();
+ Map<String, String> tempProMap = new LinkedHashMap<String, String>();
+
+ // 鍚勫睘鎬х殑鍐呴儴鍚嶇О
+ LinkedList<String> listInnerNames = new LinkedList<String>();
+ // 鍚勫睘鎬у搴旂殑鏁版嵁鍊�
+ LinkedList<String> listValues = new LinkedList<String>();
+ // 鍚勫睘鎬х殑绫诲瀷
+ LinkedList<String> listDataTypes = new LinkedList<String>();
+
+ Iterator<String> keys = attrIdToCtrlMaps.keySet().iterator();
+ JComponent compt = null;
+ while (keys.hasNext()) {
+ String attrOid = keys.next();
+ compt = attrIdToCtrlMaps.get(attrOid);
+ String value = "";
+ if (compt instanceof JTextComponent) {
+ value = ((JTextComponent) compt).getText();
+ } else if (compt instanceof VCIJCalendarPanel) {
+ value = ((VCIJCalendarPanel) compt).getDateString();
+ value = value == null ? "" : value;
+ } else if (compt instanceof VCIJComboBox) {
+ Object objItem = ((VCIJComboBox) compt).getSelectedItem();
+ if (objItem instanceof AttrRangObjectWarper) { // 灞炴�у彇鍊艰寖鍥�
+ value = ((AttrRangObjectWarper) objItem).getKeyValue().getValue();
+ } else if (objItem instanceof String) { // Boolean绫诲瀷鐨勪細鎻愪緵0\1閫夋嫨
+ value = (String) objItem;
+ }
+ }
+
+ // 鍏ㄩ儴楠岃瘉閫氳繃
+ listInnerNames.add(attrObj.getId());
+ listValues.add(value);
+ listDataTypes.add(attrObj.getAttributeDataType());
+
+ /**淇灞炴�у畾涔変腑'/'涓嶈兘鏀寔鐨刡ug**/
+ String attrName = attrObj.getName();
+ if(attrName.indexOf("/") != -1) {
+ attrName = attrObj.getName().replaceAll("/", "_");
+ }
+
+ attrNameMap.put(attrName, value);
+ /****************End******************/
+ tempProMap.put(attrObj.getOid(), attrObj.getId());
+ }
+ /**鏍规嵁妯℃澘涓厤缃殑灞炴�ц鍒欙紝鏍规嵁瑙勫垯瀵瑰睘鎬ф暟鎹繘琛岀粍鍚堟垨鑰呮媶鍒� BEGIN***/
+ List<CodeClassifyTemplateAttrVO> list = transmitForRMData.getTempPropObjsList();
+ for(CodeClassifyTemplateAttrVO obj : list) {
+ if(!"".equals(obj.getComponentRule())) {
+ try {
+ /**淇灞炴�у畾涔変腑'/'涓嶈兘鏀寔鐨刡ug Begin**/
+ String tempRule = obj.getComponentRule();
+ if(tempRule.indexOf("/") != -1) {
+ tempRule = obj.getComponentRule().replaceAll("/", "_");
+ }
+ String value = "";//FreeMarkerCommon.getValueByTempRule(attrNameMap,tempRule);
+ /****************End******************/
+ JComponent comp = attrInnerNameToCtrlMaps.get(tempProMap.get(obj.getOid()));
+ if(comp instanceof JTextComponent) {
+ ((JTextComponent) comp).setText(value);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+ }
+ /**
+ * 鑾峰彇鐪熷疄鐨勩�佸疄闄呯殑闇�瑕佸姞杞藉埌UI鐨勫睘鎬у垪琛�
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @author xchao
+ * @time 2012-11-6
+ * @param transmitForRMData
+ * 褰撳墠涓婁笅鏁版嵁浼犻�掑璞�
+ * @return
+ */
+ private CodeClassifyTemplateAttrVO[] getRealAttributeObjects(RMDataTransmitObject transmitForRMData) {
+ // 鍙栨ā鏉跨殑灞炴��
+ CodeClassifyTemplateAttrVO[] tempAttrs = transmitForRMData.getTempPropObjsList().toArray(new CodeClassifyTemplateAttrVO[0]);
+ LinkedList<CodeClassifyTemplateAttrVO> attrsList = new LinkedList<CodeClassifyTemplateAttrVO>();
+ // 杩涜杩囨护锛岄殣钘忕殑涓嶆樉绀猴紝浼佷笟浠g爜涓嶆樉绀猴紝鍏跺畠鐨勫厑璁稿綍鍏�
+ for (CodeClassifyTemplateAttrVO attrObj : tempAttrs) {
+ String attrId = attrObj.getOid();
+ // 鍒ゆ柇灞炴�ф槸鍚﹂殣钘忥紝闅愯棌鐨勪笉闇�瑕佹彁渚涘綍鍏ラ」
+ if (attrObj.getFormDisplayFlag().equals("false")) {
+ continue;
+ }
+ // 濡傛灉鏄唬鐮佸垪锛屽垯涔熼殣钘忥紝閫氳繃浠g爜鐢宠妗嗘灦褰曞叆
+ else if (attrObj.getId().toUpperCase().equals("id".toUpperCase())) {
+ continue;
+ }
+ attrsList.add(attrObj);
+ }
+ // 鏈夋晥鐨勩�侀渶瑕佹樉绀哄綍鍏ユ鐨勫睘鎬у垪琛�
+ CodeClassifyTemplateAttrVO[] attrs = attrsList.toArray(new CodeClassifyTemplateAttrVO[] {});
+ return attrs;
+ }
+ /**
+ * 鍒涘缓灞炴�у湪UI涓憟鐜扮殑缁勪欢
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @author xchao
+ * @time 2012-11-6
+ * @param attrObj
+ * 灞炴�у湪妯℃澘涓搴旂殑灞炴�у璞�
+ * @return
+ */
+ private JComponent createComponent(CodeClassifyTemplateAttrVO attrObj) {
+ JComponent compt = null;
+ String attrId = attrObj.getId();
+ // 鏌ュ嚭灞炴�х殑鍙栧�艰寖鍥�
+ if(StringUtils.isNotBlank(attrObj.getEnumString())||StringUtils.isNotBlank(attrObj.getEnumId())){
+ KeyValue[] keyValues = getAttrRangeObjects(attrObj.getOid());
+ // 濡傛灉瀛樺湪鍙栧�艰寖鍥达紝鍙兘浠庡彇鍊艰寖鍥撮噷閫夋嫨
+ if (keyValues.length != 0) {
+ AttrRangObjectWarper[] objs = new AttrRangObjectWarper[keyValues.length];
+ VCIJComboBox cbx = new VCIJComboBox();
+ DefaultComboBoxModel model = new DefaultComboBoxModel();
+ //瀛樺湪鍙栧�艰寖鍥达紝濡傛灉鍙互涓虹┖锛屽垯娣诲姞涓�涓┖鍊�
+ int comboBoxIndex = 1;
+ KeyValue keyValue = new KeyValue();
+ keyValue.setValue("");
+ keyValue.setKey("");
+ AttrRangObjectWarper wrapper = new AttrRangObjectWarper(keyValue);
+ model.addElement(wrapper);
+ /*** 濡傛灉妯℃澘灞炴�т笉鏄繀濉」锛屽姞鍏ョ┖鍊煎悗淇敼鏃跺姛鑳界殑瀹屽杽 **/
+ LinkedHashMap<String, Integer> specMap = new LinkedHashMap<String, Integer>();
+ for (int i = 0; i < objs.length; i++) {
+ objs[i] = new AttrRangObjectWarper(keyValues[i]);
+ model.addElement(objs[i]);
+
+ specMap.put(objs[i].toString(), comboBoxIndex++);
+ }
+ cbx.setModel(model);
+ compt = cbx;
+ }
+ } else { // 涓嶅瓨鍦ㄥ彇鍊艰寖鍥村垯鎸夌被鍨嬬敓鎴愪笉鍚岀殑鎺т欢
+ if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTBoolean)) { // Boolean绫诲瀷
+ VCIJComboBox cbx = new VCIJComboBox();
+ DefaultComboBoxModel model = new DefaultComboBoxModel();
+ model.addElement("0");
+ model.addElement("1");
+ cbx.setModel(model);
+ compt = cbx;
+ } else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDate)) { // 鏃ユ湡绫诲瀷
+ compt = new VCIJCalendarPanel("yyyy-MM-dd",
+ attrObj.getRequireFlag().equals("true"), true, false);
+ } else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDateTime)) { // 鏃ユ湡绫诲瀷
+ compt = new VCIJCalendarPanel("yyyy-MM-dd HH:mm:ss",
+ attrObj.getRequireFlag().equals("true"), true, false);
+ }else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTTime)) { // 鏃ユ湡绫诲瀷
+ compt = new VCIJCalendarPanel("HH:mm:ss",
+ attrObj.getRequireFlag().equals("true"), true, false);
+ }
+ else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTDouble)||attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTLong)) { // Real绫诲瀷
+ RealTextField txt = new RealTextField("");
+ txt.setRequired(attrObj.getRequireFlag().equals("true"));
+ compt = txt;
+ } else if (attrObj.getAttributeDataType().equals(VciFieldTypeEnum.VTInteger)) { // Integer绫诲瀷
+ IntegerTextField txt = new IntegerTextField("");
+ txt.setRequired(attrObj.getRequireFlag().equals("true"));
+ compt = txt;
+ }
+ else{
+ VCIJTextField txt = new VCIJTextField(this,attrObj.getRequireFlag().equals("true"));
+ compt = txt;
+ textCompts.add(txt);
+ }
+ boolean enabled = true;
+
+ /*// 闆嗗洟浠g爜銆侀泦鍥㈤檮鍔犵爜涓嶅彲浠ユ墜宸ュ綍鍏ユ暟鎹�
+ if (attrObj.getId().equals(Constants.GROUP_CODE_INNERNAME)|| attrObj.getInternalname().equals(Constants.GROUP_ADD_CODE_INNERNAME)) {
+ enabled = false;
+ }*/
+
+ compt.setEnabled(enabled);
+ }
+
+ return compt;
+ }
+ /****
+ * 鏍规嵁灞炴�d鑾峰彇灞炴�у彇鍊艰寖鍥寸殑鍊�
+ * <p>Description: </p>
+ *
+ * @author Administrator
+ * @time 2013-3-23
+ * @param attrId
+ * @return
+ */
+ private KeyValue[] getAttrRangeObjects(String attrId){
+ KeyValue[] res = new KeyValue[0];
+ String url= ConfigUtils.getConfigValue("410.PDM.attrKeyValue.url","http://127.0.0.1:36014/codeApplySwingController/listComboboxItems");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ Map<String,String> condtionMap=new HashMap<>();
+ condtionMap.put("oid", attrId);
+ R r=HttpUtil.sendGet(url,condtionMap,new HashMap<>());
+ List<KeyValue> keyValueList=new ArrayList<>();
+ if(r.isSuccess()){
+ Object object= r.getData();
+ if(object!=null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ keyValueList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<KeyValue>>() {
+ });
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this,r.getMsg());
+ }
+ return keyValueList.toArray(new KeyValue[]{});
+ }
+ /**
+ * 妫�鏌ラ渶瑕佸湪涓�琛屼腑鏄剧ず鐨勯偅浜涚粍浠讹紙鎺т欢锛変腑锛屾槸鍚﹁嚦灏戝瓨鍦ㄧ潃涓�涓渶瑕佹崲琛岋紙鍗犳暣琛岋級鏄剧ず鐨勭粍浠�
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @author liujw
+ * @time 2013-4-16
+ * @param attrIndex
+ * 寰幆灞炴�х殑绱㈠紩
+ * @param maxAttrInLine
+ * 闇�瑕佹崲琛屾樉绀虹殑鍒ゆ柇鏉′欢锛屽睘鎬х殑闀垮害
+ * @param realAttrs
+ * 鐪熷疄鐨勯渶瑕佸姞杞界殑灞炴�у垪琛�
+ * @return
+ */
+ private boolean checkLeastNewLine(int attrIndex, int maxAttrInLine,Map<String, String> attrMaps, CodeClassifyTemplateAttrVO[] realAttrs){
+ boolean res = false;
+ int attrsLength = realAttrs.length;
+ for(int columnIndex = 0; columnIndex < maxAttrInLine; columnIndex++){
+ int index = attrIndex + columnIndex;
+ if(index < attrsLength){
+ CodeClassifyTemplateAttrVO attrObj = realAttrs[index];
+ boolean isStringType = attrObj.getAttributeDataType().toUpperCase().equals("VTstring".toUpperCase());
+ // 鍚敤TextArea鏃舵墠杩涜鍒ゆ柇
+ if(this.isEnableTextArea && isStringType && attrMaps.size() > 0 && attrMaps.containsKey(attrObj.getId())){
+ res = true;
+ break;
+ }
+ }
+ }
+ return res;
+ }
+
+ /***鑾峰彇灞炴�фā鏉垮璞� @author liujw**/
+ private Map<String, String> getTempPropMap(RMDataTransmitObject transmitForRMData) {
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ List<CodeClassifyTemplateAttrVO> propObjs = transmitForRMData.getTempPropObjsList();
+ for(CodeClassifyTemplateAttrVO obj : propObjs) {
+ if(obj.getTextAreaFlag().equals("true")) {
+ map.put(obj.getOid(), "Y");
+ }
+ }
+ return map;
+ }
+ /**鐮佹鐮佸�兼弿杩颁俊鎭殑璇︾粏璇存槑**/
+ private void clsfValDescActionListener(MouseEvent e) {
+ VCIJTextField txt = (VCIJTextField) comtMap.get(e.getComponent());
+ DescViewDialog dialog = new DescViewDialog(this, txt.getText());
+ dialog.bulidDialog();
+ dialog.setVisible(true);
+
+ }
+ /**
+ * 鍒涘缓涓嶵extArea鐩稿叧鑱旂殑ScrollPane瀵硅薄
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @author liujw
+ * @time 2013-4-16
+ * @param txtArea
+ * VCIJTextArea
+ * @return
+ */
+ private VCIJScrollPane createTextAreaScrollPane(VCIJTextArea txtArea) {
+ txtArea.setWrapStyleWord(true);
+ txtArea.setLineWrap(true);
+ VCIJScrollPane txtScroll = new VCIJScrollPane();
+ txtScroll.getViewport().add(txtArea);
+ txtScroll.setPreferredSize(new Dimension(textAreaPreSizeWidth, textAreaPreSizeHeight));
+ txtScroll.setMinimumSize(new Dimension(textAreaMinSizeWidth, textAreaMinSizeHeight));
+ txtScroll.setMaximumSize(new Dimension(textAreaMaxSizeWidth, textAreaMaxSizeHeight));
+ txtScroll.setBorder(null);
+ return txtScroll;
+ }
+
+ /**
+ * 杩斿洖GridBagLayout甯冨眬绠$悊鐨凜onstraints瀵硅薄
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @author xchao
+ * @time 2012-11-6
+ * @param gridx
+ * @param gridy
+ * @param gridwidth
+ * @param gridheight
+ * @param weightx
+ * @param weighty
+ * @param anchor
+ * @param fill
+ * @return
+ */
+
+ private GridBagConstraints createGridBagConstraints(int gridx, int gridy,
+ int gridwidth, int gridheight, double weightx, double weighty,int anchor, int fill) {
+ int padxy = 5;
+ return new GridBagConstraints(gridx, gridy, gridwidth, gridheight,weightx, weighty, anchor, fill, new Insets(padxy, padxy, padxy,padxy), padxy, padxy);
+ }
+
+
+
+ /**
+ * 鏍规嵁寮曠敤妯℃澘鐨刬d鑾峰彇寮曠敤妯℃澘瀵硅薄鍖呭惈鐨勬暟鎹�
+ * <p>Description: </p>
+ *
+ * @author liujw
+ * @time 2012-11-29
+ * @param //referTempId 寮曠敤妯℃澘id
+ */
+ private void getReferTempRMData(final CodeClassifyTemplateAttrVO tempPropObj,final LinkedHashMap<String, JComponent> attrIdToCtrlMaps,
+ final List<CodeClassifyTemplateAttrVO> tempPropList) {
+ // 鏈┖绐楀彛璋冪敤 鏈夊彲鑳芥潵鑷袱澶�
+ // 娴佺▼浠诲姟寮曠敤
+ // 涓�鑸殑鏁版嵁褰曞叆銆佷慨鏀�
+ // 涓嶅悓鐨勬潵婧愶紝闇�瑕佺淮鎶ゅソOwner鐖�
+ VCIJDialog ownerDialog = realDialogInstance;
+ if(ownerDialog == null){
+ ownerDialog = new VCIJDialog();
+ ownerDialog.setSize(880, 500);
+ }
+ final String referTempId = tempPropObj.getReferBtmId();
+ final RMDataReferTempDialog dialog = new RMDataReferTempDialog(ownerDialog, referTempId);
+ dialog.setDialogCallback(new Runnable() {
+ @Override
+ public void run() {
+ /*LinkedList<RMDataObject> list = dialog.getRMDataMainPanel().getTablePanel().getSelectedRowObjects();
+ if(dialog.isFromTableDoubleClick()){
+ int index = dialog.getRMDataMainPanel().getTablePanel().getTable().getSelectedRow();
+ list.clear();
+ list.add(dialog.getRMDataMainPanel().getTablePanel().getTableModel().getList().get(index).getObject());
+ }
+
+ RMDataObject rmDataObj = list.get(0);//閫夋嫨鐨勫紩鐢ㄦā鏉挎暟鎹�
+ LinkedHashMap<String, Integer> innnerNamesMaps = rmDataObj.getInnerNameIndexMap();
+ String[] datas = rmDataObj.getDatas();
+ for(CodeClassifyTemplateAttrVO obj : tempPropList) {
+ if(obj.getReferTempId().equals(referTempId)) {
+ AttributeObject attrObj = getAttrObjById(obj.getReferAttrId());
+ JComponent comp = attrIdToCtrlMaps.get(obj.getId());
+ if(comp instanceof VCIJTextField) {
+ int index = innnerNamesMaps.get(attrObj.getInternalname());
+ ((VCIJTextField) comp).setText(datas[index]);
+ }else if (comp instanceof VCIJCalendarPanel) {
+ int index = innnerNamesMaps.get(attrObj.getInternalname());
+ ((VCIJCalendarPanel) comp).setDateString(datas[index]);
+ } else if (comp instanceof VCIJComboBox) {
+ int index = innnerNamesMaps.get(attrObj.getId());
+ ((VCIJComboBox) comp).setSelectedIndex(index);
+ }
+ }
+ }*/
+
+ }
+ });
+ //dialog.initDialogSize(ownerDialog.getWidth(), ownerDialog.getHeight());
+ Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
+ int x = dime.width/2 - 400;
+ int y = dime.height/2 -400;
+ dialog.setLocation(x, y);
+ dialog.setSize(new Dimension(900, 800));
+ dialog.setModal(true);
+ dialog.setVisible(true);
+ }
+
+
+ //鑾峰彇绯荤粺閰嶇疆鐨勭爜娈电爜鍊�
+ private Map<String, String> getSpecialValMap(String[] vals) {
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ for (String val : vals) {
+ map.put(val, "Y");
+ }
+ return map;
+ }
+ private boolean isNumber(String value) {
+ return Pattern.matches("[0-9]+", value);
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410TreePanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410TreePanel.java
new file mode 100644
index 0000000..a0d374a
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410TreePanel.java
@@ -0,0 +1,304 @@
+package com.vci.ubcs.codeapply;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.vci.base.ui.exception.VCIException;
+import com.vci.base.ui.swing.VCIOptionPane;
+import com.vci.base.ui.swing.components.VCIJPanel;
+import com.vci.base.ui.tree.VCIBaseTree;
+import com.vci.base.ui.tree.VCIBaseTreeModel;
+import com.vci.base.ui.tree.VCIBaseTreeNode;
+import com.vci.ubcs.codeapply.object.CodeClassify;
+import com.vci.ubcs.codeapply.object.R;
+import com.vci.ubcs.codeapply.utils.ConfigUtils;
+import com.vci.ubcs.system.user.entity.User;
+import javax.swing.event.TreeExpansionEvent;
+import javax.swing.event.TreeExpansionListener;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.tree.TreePath;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public abstract class CodeApplyFor410TreePanel extends VCIJPanel {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 3252637341L;
+ private VCIBaseTree tree = null;
+ private VCIBaseTreeModel treeModel = null;
+ private VCIBaseTreeNode rootNode = null;
+
+ private CodeClassify currentRmType = null;
+ private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
+ private User userObj = null;
+ private VCIBaseTreeNode selNode = null;
+ /**
+ * 瀛樺偍鍒嗙被鐨凪ap,key:鍒嗙被鍚嶇О锛寁alue锛氬垎绫诲��
+ */
+ private String clsfName = null;
+ // private String[] clsfVal = new String[2];
+ private String libName = "";
+ public CodeApplyFor410TreePanel(CodeClassify currentRmType, User userObj, String clsfName, String libName) {
+ this.currentRmType = currentRmType;
+ this.userObj = userObj;
+ this.clsfName = clsfName;
+ this.libName = libName;
+ if (this.libName == null) {
+ libName = "";
+ }
+ }
+
+ public void buildTreePanel(){
+ initComponents();
+ }
+
+ private void initComponents(){
+ initLeftPanel();
+ }
+
+ private void initLeftPanel() {
+ rootNode = new VCIBaseTreeNode(currentRmType.getName(), currentRmType);
+ treeModel = new VCIBaseTreeModel(rootNode);
+ tree = new VCIBaseTree(treeModel, new CodeLibTreeCellRenderer());
+ selNode = rootNode;
+ if (clsfName == null || clsfName.equals("")) {
+ loadTreeData(rootNode);
+ } else {
+ CodeClassify[] rmTypes = getRMTypeByDescAndLib();
+ int len = rmTypes.length;
+ addChildrenToParentTreeNode(currentRmType,rootNode,rmTypes, len - 2);
+ }
+
+ inittreeActions();
+ }
+
+ /**
+ * 灞曞紑鏍�
+ * <p>Description: </p>
+ *
+ * @author ligang
+ * @time 2013-5-8
+ * @param rmTypeObj
+ * @param parentNode
+ */
+ private void addChildrenToParentTreeNode(CodeClassify rmTypeObj, VCIBaseTreeNode parentNode, CodeClassify[] rmTypes, int pos){
+ String parentId = rmTypeObj.getOid();
+ CodeClassify[] libs = {};
+ libs = getChildRMTypeObjects(parentId);
+ for(CodeClassify obj : libs) {
+ VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
+ treeModel.insertNodeInto(node, parentNode, parentNode.getChildCount());
+ node.setLeaf(false);
+ node.setExpand(false);
+ if (pos < 0) {
+ continue;
+ }
+ if (checkIsSel(obj, rmTypes[pos])) {
+ selNode = node;
+ addChildrenToParentTreeNode(obj, node, rmTypes, pos - 1);
+ }
+ }
+ parentNode.setLeaf(libs.length == 0);
+ parentNode.setExpand(true);
+ if(tree != null){
+ tree.expandPath(new TreePath(selNode.getPath()));
+ tree.setSelectionPath(new TreePath(selNode.getPath()));
+ }
+ }
+
+ private void loadTreeData(VCIBaseTreeNode rootNode){
+ CodeClassify currentObj = (CodeClassify) rootNode.getObj();
+ String parentId = currentObj.getOid();
+ CodeClassify[] libs = {};
+ libs = getChildRMTypeObjects(parentId);
+ for(CodeClassify obj : libs) {
+ VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
+ rootNode.add(node);
+ node.setLeaf(false);
+ node.setExpand(false);
+ }
+ rootNode.setLeaf(libs.length == 0);
+ rootNode.setExpand(true);
+
+ tree.setSelectionPath(new TreePath(selNode));
+ tree.updateUI();
+
+
+ }
+
+ /**
+ * 鏍规嵁鍙傛暟鍒ゆ柇褰撳墠鍒嗙被鏄惁鏄�変腑鐘舵��
+ * <p>Description: </p>
+ *
+ * @author ligang
+ * @time 2013-5-8
+ * @param obj
+ * @return
+ */
+ private boolean checkIsSel(CodeClassify obj, CodeClassify selObj) {
+ if(obj.getId().equals(selObj.getId())) {
+ return true;
+ }
+ return false;
+ }
+
+
+ private void inittreeActions(){
+ tree.addTreeSelectionListener(new TreeSelectionListener() {
+ @Override
+ public void valueChanged(TreeSelectionEvent e) {
+ if(!e.isAddedPath()) return;
+ leftTree_valueChanged(e);
+ }
+ });
+ tree.addTreeExpansionListener(new TreeExpansionListener() {
+ @Override
+ public void treeExpanded(TreeExpansionEvent e) {
+ tree_treeExpanded_local(e);
+ }
+
+ @Override
+ public void treeCollapsed(TreeExpansionEvent e) {
+ }
+ });
+ }
+
+ /**
+ * 鏍规嵁鍒嗙被鎻忚堪鑾峰彇浼犲叆鍒嗙被鐨勬墍鏈夌埗鍒嗙被淇℃伅
+ * @return
+ */
+ private CodeClassify[] getRMTypeByDescAndLib() {
+ CodeClassify[] objs = new CodeClassify[]{};
+ String url= ConfigUtils.getConfigValue("410.PDM.leftdescLibNode.url","http://127.0.0.1:36014/codeApplySwingController/getRMTypeByDescAndLib");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ Map<String,String> condtionMap=new HashMap<>();
+ condtionMap.put("desc", this.clsfName);
+ condtionMap.put("codeLibName",rootNode.toString());
+
+ R r=HttpUtil.sendGet(url,condtionMap,new HashMap<>());
+ List<CodeClassify> codeClassifyList = new ArrayList<>();
+ if(r.isSuccess()){
+ Object object= r.getData();
+ if(object!=null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ codeClassifyList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassify>>() {
+ });
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this,r.getMsg());
+ }
+ return codeClassifyList.toArray(new CodeClassify[]{});
+ }
+
+ /**
+ * 鏍规嵁ID鐩存帴鑾峰彇瀛愬垎绫伙紝鏃犳潈闄愭鏌�
+ * <p>Description: </p>
+ *
+ * @author xchao
+ * @time 2013-3-20
+ * @param parentId
+ * @return
+ */
+ private CodeClassify[] getChildRMTypeObjects(String parentId){
+ String url= ConfigUtils.getConfigValue("410.PDM.leftClsfNode.url","http://127.0.0.1:36014/codeApplySwingController/selectCodeClassifyVOByParentId");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ Map<String,String> condtionMap=new HashMap<>();
+ condtionMap.put("parentId", parentId );
+ R r=HttpUtil.sendGet(url,condtionMap,new HashMap<>());
+ List<CodeClassify> codeClassifyList = new ArrayList<>();
+ if(r.isSuccess()){
+ Object object= r.getData();
+ if(object!=null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ codeClassifyList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassify>>() {
+ });
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this,r.getMsg());
+ }
+ return codeClassifyList.toArray(new CodeClassify[]{});
+ }
+ private void tree_treeExpanded_local(TreeExpansionEvent e) {
+ TreePath treePath = e.getPath();
+ VCIBaseTreeNode treeNode = (VCIBaseTreeNode)treePath.getLastPathComponent();
+ if(treeNode.isExpand()) return;
+ if(!(treeNode.getObj() instanceof CodeClassify)) return;
+ CodeClassify rmTypeObject = (CodeClassify)treeNode.getObj();
+ CodeClassify[] childs = null;
+ childs = getChildRMTypeObjects(rmTypeObject.getOid());
+ addRMTypeObjectsToParentTreeNode(childs, treeNode);
+ treeNode.setExpand(true);
+ treeNode.setLeaf(treeModel.getChildCount(treeNode) == 0);
+ }
+ private void addRMTypeObjectsToParentTreeNode(CodeClassify[] objs, VCIBaseTreeNode parentNode){
+ for(CodeClassify obj : objs){
+ VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj);
+ treeModel.insertNodeInto(node, parentNode, treeModel.getChildCount(parentNode));
+ }
+ }
+
+ private void leftTree_valueChanged(TreeSelectionEvent e) {
+ tree_valueChanged(e);
+ }
+
+ /**
+ * 閫夋嫨浜嗘爲鑺傜偣鐨勪簨浠跺鐞�
+ * <p>Description: </p>
+ *
+ * @author xchao
+ * @time 2012-5-26
+ * @param e
+ */
+ public abstract void tree_valueChanged(TreeSelectionEvent e);
+
+ public VCIBaseTree getTree() {
+ return tree;
+ }
+
+ public void setTree(VCIBaseTree tree) {
+ this.tree = tree;
+ }
+
+ public VCIBaseTreeModel getTreeModel() {
+ return treeModel;
+ }
+
+ public void setTreeModel(VCIBaseTreeModel treeModel) {
+ this.treeModel = treeModel;
+ }
+
+ public VCIBaseTreeNode getRootNode() {
+ return rootNode;
+ }
+
+ public void setRootNode(VCIBaseTreeNode rootNode) {
+ this.rootNode = rootNode;
+ }
+
+ public TransmitTreeObject getTransmitTreeObject() {
+ return transmitTreeObject;
+ }
+
+ public void setTransmitTreeObject(TransmitTreeObject transmitTreeObject) {
+ this.transmitTreeObject = transmitTreeObject;
+ }
+
+ public VCIBaseTreeNode getSelNode() {
+ return selNode;
+ }
+
+ public void setSelNode(VCIBaseTreeNode selNode) {
+ this.selNode = selNode;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java
new file mode 100644
index 0000000..1ec0baa
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java
@@ -0,0 +1,388 @@
+package com.vci.ubcs.codeapply;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.vci.base.ui.swing.VCIOptionPane;
+import com.vci.base.ui.swing.VCISwingUtil;
+import com.vci.base.ui.swing.components.*;
+import com.vci.base.ui.tree.VCIBaseTree;
+import com.vci.base.ui.tree.VCIBaseTreeModel;
+import com.vci.base.ui.tree.VCIBaseTreeNode;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+import com.vci.ubcs.codeapply.object.CodeClassify;
+import com.vci.ubcs.codeapply.object.R;
+import com.vci.ubcs.codeapply.utils.ConfigUtils;
+import com.vci.ubcs.system.user.entity.User;
+import lombok.SneakyThrows;
+import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
+
+import javax.swing.*;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.tree.TreePath;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class CodeApplyPanelFor410 extends VCIJPanel {
+
+ //鍙充晶闈㈡澘
+ private CodeApplyFor410MainPanel rightMainPanel = null;
+ private VCIJScrollPane scrollLeftTreePane = new VCIJScrollPane();
+ private VCIJSplitPane jspLeftToRight = new VCIJSplitPane(VCIJSplitPane.HORIZONTAL_SPLIT, scrollLeftTreePane, rightMainPanel);
+ private CodeApplyPanelFor410ActionListener actionListener = new CodeApplyPanelFor410ActionListener(this);
+ private VCIJButton applyBtn = VCISwingUtil.createVCIJButton("apply", "鐢宠鐮佸��", "鐢宠鐮佸��", "arrow-right.png", actionListener);
+ private VCIJButton batchApplyBtn = VCISwingUtil.createVCIJButton("batchApply", "鎵归噺瀵煎叆鐢宠", "鎵归噺瀵煎叆鐢宠", "import.gif", actionListener);
+ private VCIJButton btnSearch= VCISwingUtil.createVCIJButton("btnSearch", "鏌ヨ浠g爜", "鏌ヨ浠g爜", "search.png", actionListener);
+ private VCIJButton clearBtn = VCISwingUtil.createVCIJButton("clear", "娓呯┖灞炴��", "娓呯┖灞炴��", "search.png", actionListener);
+ private JLabel codeItemLabel = new JLabel("閫夋嫨浠g爜椤癸細");
+ private VCIJLabel applylbl = new VCIJLabel("鐢宠鐮佸�硷細");
+ public VCIJTextField applyTxt = new VCIJTextField(40);
+ private JComboBox codeItemCombo = new JComboBox();
+ private User userObj = null;;
+
+ private CodeClassifyTemplateVO currentCodeClassifyTemplateVO;
+ private boolean isIntegrate = false; //闆嗘垚鏃朵笉鏄剧ず鎵归噺鐢宠鎸夐挳
+ /**
+ * 瀛樺偍鍒嗙被鐨凪ap,key:鍒嗙被鍚嶇О锛寁alue锛氬垎绫诲��
+ */
+ private String clsfName = null;
+
+ private CodeApplyFor410Dialog owner;
+ /**
+ * 瀛樺偍灞炴�у拰鍊肩殑Map,key:灞炴�у悕绉帮紝value锛氬睘鎬у��
+ */
+ private String deptName = null;
+
+ private String[] libName = new String[]{};//浠g爜椤瑰悕绉�
+ private VCIBaseTree leftTree = null;
+ private VCIBaseTreeModel leftTreeModel = null;
+ //宸︿晶鏍�
+ private CodeApplyFor410TreePanel typeTreePanel = null;
+ private TransmitTreeObject transmitTreeObject = new TransmitTreeObject();
+ /***
+ *
+ * @param userObj
+ * @param isIntegrate
+ * @param clsfName
+ * @param deptName
+ * @param libName
+ */
+ public CodeApplyPanelFor410(CodeApplyFor410Dialog owner , User userObj, boolean isIntegrate, String clsfName, String deptName, String[] libName){
+ this.userObj = userObj;
+ this.owner =owner;
+ rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,userObj,getCurrentCodeClassifyTemplateVO());
+ this.isIntegrate = isIntegrate;
+ this.clsfName = clsfName;
+ this.deptName = deptName;
+ this.libName = libName;
+ init();
+ initActionListener();
+ }
+
+ /***
+ * 鍒濆鍖栫晫闈�
+ */
+ private void init() {
+ try {
+ this.setLayout(new BorderLayout());
+ this.add(initCodeItemPal(), BorderLayout.NORTH);
+ this.add(initMiddlePanel(), BorderLayout.CENTER);
+ this.add(initBtnPal(), BorderLayout.SOUTH);
+ this.setVisible(true);
+ }catch (Exception ex){
+ VCIOptionPane.showMessage(owner,ex.getMessage());
+ }
+ }
+ private JPanel initMiddlePanel() {
+ JPanel middlePanel = new JPanel();
+ middlePanel.setLayout(new BorderLayout());
+ JTextField jTextField1 = new JTextField();//instead of up line
+ JTextField jTextField2 = new JTextField();//instead of down line
+ jTextField1.setPreferredSize(new Dimension(63,2));
+ jTextField2.setPreferredSize(new Dimension(63,2));
+ middlePanel.add(jTextField1, BorderLayout.NORTH);
+ middlePanel.add(jTextField2, BorderLayout.SOUTH);
+
+
+ jspLeftToRight.setDividerSize(10);
+ jspLeftToRight.setContinuousLayout(true);
+ jspLeftToRight.setOneTouchExpandable(true);
+ jspLeftToRight.setDividerLocation(200);
+ initLeftPanel();
+ middlePanel.add(jspLeftToRight, BorderLayout.CENTER);
+
+ return middlePanel;
+ }
+
+ private JPanel initBtnPal() {
+ JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+ bottomPanel.add(applylbl);
+ bottomPanel.add(applyTxt);
+ applyTxt.setEditable(false);
+ bottomPanel.add(applyBtn);
+
+ if (!this.isIntegrate) {
+ bottomPanel.add(batchApplyBtn);
+ } else {
+ bottomPanel.add(btnSearch);
+ }
+ bottomPanel.add(clearBtn);
+ return bottomPanel;
+ }
+
+ /***
+ * 鍒濆鍖栦唬鐮侀」鐩�
+ * @return
+ */
+ private JPanel initCodeItemPal() {
+ VCIJPanel codeItemPal = new VCIJPanel(new FlowLayout(FlowLayout.LEFT));
+ codeItemCombo.setPreferredSize(new Dimension(200,25));
+ initCodeItemCombo();//鍒濆鍖栦唬鐮侀」涓嬫媺妗嗘暟鎹�
+ codeItemPal.add(codeItemLabel);
+ codeItemPal.add(codeItemCombo);
+ return codeItemPal;
+ }
+ /**
+ * 浠g爜椤逛簨浠讹細閫夋嫨浠g爜椤瑰悗锛岃嚜鍔ㄥ埛鏂颁唬鐮侀」涓嬪搴旂殑瑙勫垯鐮佹鍜屾ā鏉垮睘鎬т俊鎭�
+ * <p>Description: </p>
+ *
+ * @author Administrator
+ * @time 2013-3-23
+ */
+ public void initCodeItemCombo() {
+ CodeClassifyVO [] codeClassifyVOS = new CodeClassifyVO[0];
+ Map<String,String> condtionMap=new HashMap<>();
+ //condtionMap.put("parentOid",);
+
+ String url=ConfigUtils.getConfigValue("410.PDM.item.url","http://127.0.0.1:36014/codeApplySwingController/getRMLibByName");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ if(libName.length>0) {
+ condtionMap.put("libName", StringUtils.join(libName,",") );
+ }
+ R r=HttpUtil.sendGet(url,condtionMap,new HashMap<>());
+ List<CodeClassify> codeClassifyList = new ArrayList<>();
+ if(r.isSuccess()){
+ Object object= r.getData();
+ if(object!=null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ codeClassifyList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<CodeClassify>>() {
+ });
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this,r.getMsg());
+ }
+ if(!CollectionUtils.isEmpty(codeClassifyList)){
+ codeClassifyList.stream().forEach(codeClassify -> {
+ codeItemCombo.addItem(codeClassify);
+ });
+ codeItemCombo.setSelectedIndex(0);
+ }
+ initLeftPanel();
+ }
+
+ /***
+ * 鍒濆鍖栨寜閽簨浠�
+ */
+ private void initActionListener() {
+ /**浠g爜椤逛笅鎷変簨浠�**/
+ codeItemCombo.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(codeItemCombo.getSelectedIndex() == -1) {
+ return;
+ }
+ try {
+ ruleComboActionListener();
+ } catch (Exception ex) {
+ VCIOptionPane.showMessage(owner,ex.getMessage());
+ }
+ }
+ });
+
+ }
+
+ /**
+ * 澶勭悊浠g爜椤逛笅鎷変簨浠�
+ * <p>Description: </p>
+ *
+ * @author Administrator
+ * @time 2013-3-23
+ */
+ private void ruleComboActionListener() {
+ leftTree.removeAll();
+ initLeftPanel();
+ }
+ private void initLeftPanel() {
+ CodeClassify currentCodeClassify= (CodeClassify) this.codeItemCombo.getSelectedItem();
+ if(currentCodeClassify == null) {
+ return;
+ }
+ String libName=currentCodeClassify.getName();
+ String classOid=currentCodeClassify.getOid();
+ final CodeApplyPanelFor410 self = this;
+ typeTreePanel = new CodeApplyFor410TreePanel(currentCodeClassify,userObj,clsfName, libName) {
+ private static final long serialVersionUID = 8121108576137012228L;
+ @Override
+ public void tree_valueChanged(TreeSelectionEvent e) {
+ self.leftTree_valueChanged(e);
+ }
+ };
+ typeTreePanel.buildTreePanel();
+ leftTree = typeTreePanel.getTree();
+ leftTreeModel = typeTreePanel.getTreeModel();
+ transmitTreeObject.setCurrentTreeNode(typeTreePanel.getSelNode());
+ transmitTreeObject.setTree(leftTree);
+ transmitTreeObject.setTreeModel(leftTreeModel);
+ VCIJPanel rightPanel = new VCIJPanel();
+ rightPanel.setLayout(new BorderLayout());
+
+ jspLeftToRight.setRightComponent(rightPanel);
+ rightPanel.add(scrollPane, BorderLayout.CENTER);
+
+ Object obj =transmitTreeObject.getCurrentTreeNode();
+ if(obj instanceof VCIBaseTreeNode){
+ VCIBaseTreeNode vciBaseTreeNode= (VCIBaseTreeNode)obj;
+ Object node=vciBaseTreeNode.getObj();
+ if(node instanceof CodeClassify) {
+ CodeClassify codeClassify=(CodeClassify)node;
+ classOid = codeClassify.getOid();
+
+ String url = ConfigUtils.getConfigValue("410.PDM.clsfTemplate.url", "http://127.0.0.1:36014/codeApplySwingController/getUsedTemplateByClassifyOid");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ Map<String, String> condtionMap = new HashMap<>();
+ condtionMap.put("codeClassifyOid", classOid);
+ R r = HttpUtil.sendGet(url, condtionMap, new HashMap<>());
+ boolean res = false;
+ if (r.isSuccess()) {
+ //List<CodeClassifyTemplateVO> codeClassifyTemplateVOList=new ArrayList<>();
+ CodeClassifyTemplateVO codeClassifyTemplateVO = new CodeClassifyTemplateVO();
+ Object object = r.getData();
+ if (object != null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ codeClassifyTemplateVO = objectMapper.readValue(object.toString(), CodeClassifyTemplateVO.class);
+ if (codeClassifyTemplateVO != null) {
+ setCurrentCodeClassifyTemplateVO(codeClassifyTemplateVO);
+ res = true;
+ }
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this,r.getMsg());
+ }
+ initBtnStatus(res);
+ }
+ }
+ rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,userObj,deptName,getCurrentCodeClassifyTemplateVO());
+ scrollPane.setViewportView(rightMainPanel);
+ rightMainPanel.buildMainPanel(1);
+ int location = jspLeftToRight.getDividerLocation();
+ jspLeftToRight.setDividerLocation(location);
+ scrollLeftTreePane.setViewportView(leftTree);
+ leftTree.scrollPathToVisible(leftTree.getSelectionPath());
+ }
+
+ private void leftTree_valueChanged(TreeSelectionEvent e) {
+ TreePath selectedTreePath = e.getPath();
+ /**鏍¢獙 鍒ゆ柇閫夋嫨鐨勪唬鐮侀」鏄惁鍖呭惈妯℃澘 Begin**/
+ VCIBaseTreeNode selectedTreeNode = (VCIBaseTreeNode)selectedTreePath.getLastPathComponent();
+ Object obj = selectedTreeNode.getObj();
+ boolean res=false;
+ if(obj instanceof CodeClassify) {
+ CodeClassify curentCodeClassify=(CodeClassify)obj;
+ String url=ConfigUtils.getConfigValue("410.PDM.clsfTemplate.url","http://127.0.0.1:36014/codeApplySwingController/getUsedTemplateByClassifyOid");
+ /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+ Map<String,String> condtionMap=new HashMap<>();
+ condtionMap.put("codeClassifyOid",curentCodeClassify.getOid());
+ R r=HttpUtil.sendGet(url,condtionMap,new HashMap<>() );
+ if(r.isSuccess()) {
+ CodeClassifyTemplateVO codeClassifyTemplateVO=new CodeClassifyTemplateVO();
+ Object object= r.getData();
+ if(object!=null) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ codeClassifyTemplateVO = objectMapper.readValue(object.toString(), CodeClassifyTemplateVO.class);
+ if(codeClassifyTemplateVO!=null){
+ setCurrentCodeClassifyTemplateVO(codeClassifyTemplateVO);
+ res=true;
+ }
+ } catch (JsonProcessingException e1) {
+ e1.printStackTrace();
+ }
+ }
+ }else{
+ VCIOptionPane.showMessage(this.owner,r.getMsg());
+ }
+
+ }
+ initBtnStatus(res);
+ /*******************End**********************/
+ initRightDataTablePanel(selectedTreeNode);
+ }
+
+ private void initBtnStatus(boolean enable) {
+ applyBtn.setEnabled(enable);
+ batchApplyBtn.setEnabled(enable);
+ btnSearch.setEnabled(enable);
+ clearBtn.setEnabled(enable);
+ }
+ private void initRightDataTablePanel(VCIBaseTreeNode selectedTreeNode) {
+ leftTree = typeTreePanel.getTree();
+ leftTreeModel = typeTreePanel.getTreeModel();
+
+ transmitTreeObject.setTree(leftTree);
+ transmitTreeObject.setTreeModel(leftTreeModel);
+ transmitTreeObject.setCurrentTreeNode(selectedTreeNode);
+ if(selectedTreeNode.isRoot() && selectedTreeNode.getObj() instanceof String) return;
+ scrollPane = new JScrollPane();
+ rightMainPanel = new CodeApplyFor410MainPanel(transmitTreeObject,userObj,deptName,getCurrentCodeClassifyTemplateVO());
+ scrollPane.setViewportView(rightMainPanel);
+ rightMainPanel.buildMainPanel(1);
+ VCIJPanel rightPanel = new VCIJPanel();
+ rightPanel.setLayout(new BorderLayout());
+ rightPanel.add(scrollPane, BorderLayout.CENTER);
+
+ applyTxt.setText("");
+
+ jspLeftToRight.setRightComponent(rightPanel);
+ int location = jspLeftToRight.getDividerLocation();
+ jspLeftToRight.setDividerLocation(location);
+ }
+ private Map<String, String> attrNameAndValMap = new LinkedHashMap();
+ private JScrollPane scrollPane = new JScrollPane();
+
+ public Map<String, String> getAttrNameAndValMap() {
+ return attrNameAndValMap;
+ }
+
+ public void setAttrNameAndValMap(Map<String, String> attrNameAndValMap) {
+ this.attrNameAndValMap = attrNameAndValMap;
+ }
+
+ public String getApplyCode() {
+ return this.applyTxt.getText().trim();
+ }
+ public void setApplyCode(String codeVal) {
+ this.applyTxt.setText(codeVal);
+ }
+
+ public CodeClassifyTemplateVO getCurrentCodeClassifyTemplateVO() {
+ return currentCodeClassifyTemplateVO;
+ }
+
+ public void setCurrentCodeClassifyTemplateVO(CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
+ this.currentCodeClassifyTemplateVO = currentCodeClassifyTemplateVO;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java
new file mode 100644
index 0000000..a0730e9
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java
@@ -0,0 +1,37 @@
+package com.vci.ubcs.codeapply;
+
+import java.awt.event.ActionEvent;
+import java.util.LinkedHashMap;
+
+public class CodeApplyPanelFor410ActionListener extends CommonActionListener {
+ private CodeApplyPanelFor410 owner = null;
+ private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
+
+ public CodeApplyPanelFor410ActionListener(CodeApplyPanelFor410 owner){
+ this.owner = owner;
+ this.initActionMap();
+ }
+ @Override
+ public void initActionMap(){
+ actionMaps.put("batchApply", new Runnable() { public void run() {
+ //batchApply();//鎵归噺瀵煎叆鐢宠浠g爜
+ }});
+ actionMaps.put("apply", new Runnable() { public void run() {
+ //apply();//鐮佸�肩敵璇�
+ }});
+ actionMaps.put("btnSearch", new Runnable() { public void run() {
+ //search();//浠g爜鏌ヨ
+ }});
+ actionMaps.put("clear", new Runnable() { public void run() {
+ // clear();//娓呯┖灞炴��
+ }});
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ String key = e.getActionCommand();
+ if(actionMaps.containsKey(key)){
+ actionMaps.get(key).run();
+ }
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java
new file mode 100644
index 0000000..1e15362
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanelDataProvider.java
@@ -0,0 +1,27 @@
+package com.vci.ubcs.codeapply;
+
+import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider;
+import com.vci.base.ui.swing.components.table.VCIJTableNode;
+import org.apache.poi.ss.formula.functions.T;
+
+public class CodeDataMainPanelDataProvider extends AbstractVCIJTableDataProvider<T> {
+ @Override
+ public String[] getSpecialColumns() {
+ return new String[0];
+ }
+
+ @Override
+ public int getTotal() {
+ return 0;
+ }
+
+ @Override
+ public VCIJTableNode<T> getNewRowNode(T t) {
+ return null;
+ }
+
+ @Override
+ public T[] getDatas(int i, int i1) {
+ return new T[0];
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeLibTreeCellRenderer.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeLibTreeCellRenderer.java
new file mode 100644
index 0000000..1f6333a
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeLibTreeCellRenderer.java
@@ -0,0 +1,51 @@
+package com.vci.ubcs.codeapply;
+
+import com.vci.base.ui.image.bundle.BundleImage;
+import com.vci.base.ui.tree.VCIBaseTreeNode;
+import com.vci.ubcs.codeapply.object.CodeClassify;
+
+import javax.swing.*;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import java.awt.*;
+
+public class CodeLibTreeCellRenderer extends DefaultTreeCellRenderer {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public CodeLibTreeCellRenderer() {
+
+ }
+
+ public Component getTreeCellRendererComponent (
+ JTree tree,
+ Object value,
+ boolean sel,
+ boolean expanded,
+ boolean leaf,
+ int row,
+ boolean hasFocus) {
+ super.getTreeCellRendererComponent (
+ tree, value, sel,
+ expanded, leaf, row,
+ hasFocus);
+ try {
+ ToolTipManager.sharedInstance().registerComponent(tree);
+ VCIBaseTreeNode node = (VCIBaseTreeNode)value;
+ if(node.isRoot()){
+ setIcon(new BundleImage().createImageIcon ("house.png"));
+ } else if (node.getObj().equals("root")) { //鏍硅妭鐐�
+ setIcon(new BundleImage().createImageIcon ("house.png"));
+ }else if(node.getObj() instanceof CodeClassify){
+ //CodeClassify rmTypeInfo=(CodeClassify)node.getObj();
+ setIcon(new BundleImage().createImageIcon ("box.gif"));
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return this;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CommonActionListener.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CommonActionListener.java
new file mode 100644
index 0000000..5b1057b
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CommonActionListener.java
@@ -0,0 +1,20 @@
+package com.vci.ubcs.codeapply;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.LinkedHashMap;
+
+public class CommonActionListener implements ActionListener {
+ protected LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
+ public void initActionMap(){
+ //
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ String key = e.getActionCommand();
+ if(actionMaps.containsKey(key)){
+ actionMaps.get(key).run();
+ }
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/DescViewDialog.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/DescViewDialog.java
new file mode 100644
index 0000000..a88b24b
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/DescViewDialog.java
@@ -0,0 +1,85 @@
+package com.vci.ubcs.codeapply;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import com.vci.base.ui.swing.components.VCIJDialog;
+
+public class DescViewDialog extends VCIJDialog {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private JPanel topPanel;
+ private JTextArea reasonTextArea = new JTextArea(5,5);
+ private JButton cancelBtn = new JButton("鍏抽棴");
+ private String desc;
+ private CodeApplyFor410MainPanel owner = null;
+
+ public DescViewDialog(CodeApplyFor410MainPanel owner,String desc){
+// super(frame,true);
+ this.owner = owner;
+ this.desc = desc;
+ this.setModal(true);
+ }
+
+ public void bulidDialog() {
+ init ();
+ }
+
+ private void init(){
+ int width = 550,height = 250;
+ int px = (int)(this.owner.getLocationOnScreen().getX());
+ int py = (int)(this.owner.getLocationOnScreen().getY());
+ int pWidth = this.owner.getBounds().width;
+ int pHeight = this.owner.getBounds().height;
+ this.setLocation(px + (pWidth - width) / 2, py + (pHeight - height) / 2);
+
+ this.setSize(new Dimension(550, 250));
+// this.initDialogSize(600, 250);
+ this.setResizable(false);
+ this.setTitle("鐮佹鐮佸�肩殑璇︾粏鎻忚堪淇℃伅");
+
+ initUI();
+
+ JPanel bottomPanel = new JPanel();
+ bottomPanel.add(cancelBtn);
+ cancelBtn.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ close();
+ }
+ });
+ this.setLayout(new BorderLayout());
+ this.add(topPanel,BorderLayout.CENTER);
+ this.add(bottomPanel,BorderLayout.SOUTH);
+
+ }
+
+ private void close() {
+ this.setDialogResult(DialogResult.CANCEL);
+ this.setVisible(false);
+ }
+
+ private void initUI() {
+ topPanel = new JPanel();
+ topPanel.setLayout(new BorderLayout());
+ reasonTextArea.setText(desc);
+
+ reasonTextArea.setAutoscrolls(true);
+ reasonTextArea.setLineWrap(true);
+ JScrollPane scrollPanel = new JScrollPane();
+ scrollPanel.setViewportView(reasonTextArea);
+ scrollPanel.setAutoscrolls(true);
+ topPanel.add(scrollPanel,BorderLayout.CENTER);
+ }
+
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient.java
new file mode 100644
index 0000000..6348bcf
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient.java
@@ -0,0 +1,141 @@
+package com.vci.ubcs.codeapply;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+public class HttpClient {
+ public static String doGet(String httpurl) {
+ HttpURLConnection connection = null;
+ InputStream is = null;
+ BufferedReader br = null;
+ String result = null;// 杩斿洖缁撴灉瀛楃涓�
+ try {
+ // 鍒涘缓杩滅▼url杩炴帴瀵硅薄
+ URL url = new URL(httpurl);
+ // 閫氳繃杩滅▼url杩炴帴瀵硅薄鎵撳紑涓�涓繛鎺ワ紝寮鸿浆鎴恏ttpURLConnection绫�
+ connection = (HttpURLConnection) url.openConnection();
+ // 璁剧疆杩炴帴鏂瑰紡锛歡et
+ connection.setRequestMethod("GET");
+ // 璁剧疆杩炴帴涓绘満鏈嶅姟鍣ㄧ殑瓒呮椂鏃堕棿锛�15000姣
+ connection.setConnectTimeout(15000);
+ // 璁剧疆璇诲彇杩滅▼杩斿洖鐨勬暟鎹椂闂达細60000姣
+ connection.setReadTimeout(60000);
+ // 鍙戦�佽姹�
+ connection.connect();
+ // 閫氳繃connection杩炴帴锛岃幏鍙栬緭鍏ユ祦
+ if (connection.getResponseCode() == 200) {
+ is = connection.getInputStream();
+ // 灏佽杈撳叆娴乮s锛屽苟鎸囧畾瀛楃闆�
+ br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ // 瀛樻斁鏁版嵁
+ StringBuffer sbf = new StringBuffer();
+ String temp = null;
+ while ((temp = br.readLine()) != null) {
+ sbf.append(temp);
+ sbf.append("\r\n");
+ }
+ result = sbf.toString();
+ }
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 鍏抽棴璧勬簮
+ if (null != br) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != is) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ connection.disconnect();// 鍏抽棴杩滅▼杩炴帴
+ }
+ return result;
+ }
+ public static String doPost(String httpUrl, String param) {
+ HttpURLConnection connection = null;
+ InputStream is = null;
+ OutputStream os = null;
+ BufferedReader br = null;
+ String result = null;
+ try {
+ URL url = new URL(httpUrl);
+ // 閫氳繃杩滅▼url杩炴帴瀵硅薄鎵撳紑杩炴帴
+ connection = (HttpURLConnection) url.openConnection();
+ // 璁剧疆杩炴帴璇锋眰鏂瑰紡
+ connection.setRequestMethod("POST");
+ // 璁剧疆杩炴帴涓绘満鏈嶅姟鍣ㄨ秴鏃舵椂闂达細15000姣
+ connection.setConnectTimeout(15000);
+ // 璁剧疆璇诲彇涓绘満鏈嶅姟鍣ㄨ繑鍥炴暟鎹秴鏃舵椂闂达細60000姣
+ connection.setReadTimeout(60000);
+ // 榛樿鍊间负锛歠alse锛屽綋鍚戣繙绋嬫湇鍔″櫒浼犻�佹暟鎹�/鍐欐暟鎹椂锛岄渶瑕佽缃负true
+ connection.setDoOutput(true);
+ // 榛樿鍊间负锛歵rue锛屽綋鍓嶅悜杩滅▼鏈嶅姟璇诲彇鏁版嵁鏃讹紝璁剧疆涓簍rue锛岃鍙傛暟鍙湁鍙棤
+ connection.setDoInput(true);
+ // 璁剧疆浼犲叆鍙傛暟鐨勬牸寮�:璇锋眰鍙傛暟搴旇鏄� name1=value1&name2=value2 鐨勫舰寮忋��
+ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ // 璁剧疆閴存潈淇℃伅锛欰uthorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
+ connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
+ // 閫氳繃杩炴帴瀵硅薄鑾峰彇涓�涓緭鍑烘祦
+ os = connection.getOutputStream();
+ // 閫氳繃杈撳嚭娴佸璞″皢鍙傛暟鍐欏嚭鍘�/浼犺緭鍑哄幓,瀹冩槸閫氳繃瀛楄妭鏁扮粍鍐欏嚭鐨�
+ os.write(param.getBytes());
+ // 閫氳繃杩炴帴瀵硅薄鑾峰彇涓�涓緭鍏ユ祦锛屽悜杩滅▼璇诲彇
+ if (connection.getResponseCode() == 200) {
+ is = connection.getInputStream();
+ // 瀵硅緭鍏ユ祦瀵硅薄杩涜鍖呰:charset鏍规嵁宸ヤ綔椤圭洰缁勭殑瑕佹眰鏉ヨ缃�
+ br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ StringBuffer sbf = new StringBuffer();
+ String temp = null;
+ // 寰幆閬嶅巻涓�琛屼竴琛岃鍙栨暟鎹�
+ while ((temp = br.readLine()) != null) {
+ sbf.append(temp);
+ sbf.append("\r\n");
+ }
+ result = sbf.toString();
+ }
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 鍏抽棴璧勬簮
+ if (null != br) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != os) {
+ try {
+ os.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != is) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ // 鏂紑涓庤繙绋嬪湴鍧�url鐨勮繛鎺�
+ connection.disconnect();
+ }
+ return result;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient3.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient3.java
new file mode 100644
index 0000000..4fa57e8
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpClient3.java
@@ -0,0 +1,159 @@
+package com.vci.ubcs.codeapply;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+public class HttpClient3 {
+
+ public static String doGet(String url) {
+ // 杈撳叆娴�
+ InputStream is = null;
+ BufferedReader br = null;
+ String result = null;
+ // 鍒涘缓httpClient瀹炰緥
+ HttpClient httpClient = new HttpClient();
+ // 璁剧疆http杩炴帴涓绘満鏈嶅姟瓒呮椂鏃堕棿锛�15000姣
+ // 鍏堣幏鍙栬繛鎺ョ鐞嗗櫒瀵硅薄锛屽啀鑾峰彇鍙傛暟瀵硅薄,鍐嶈繘琛屽弬鏁扮殑璧嬪��
+ httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
+ // 鍒涘缓涓�涓狦et鏂规硶瀹炰緥瀵硅薄
+ GetMethod getMethod = new GetMethod(url);
+ // 璁剧疆get璇锋眰瓒呮椂涓�60000姣
+ getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
+ // 璁剧疆璇锋眰閲嶈瘯鏈哄埗锛岄粯璁ら噸璇曟鏁帮細3娆★紝鍙傛暟璁剧疆涓簍rue锛岄噸璇曟満鍒跺彲鐢紝false鐩稿弽
+ getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, true));
+ try {
+ // 鎵цGet鏂规硶
+ int statusCode = httpClient.executeMethod(getMethod);
+ // 鍒ゆ柇杩斿洖鐮�
+ if (statusCode != HttpStatus.SC_OK) {
+ // 濡傛灉鐘舵�佺爜杩斿洖鐨勪笉鏄痮k,璇存槑澶辫触浜�,鎵撳嵃閿欒淇℃伅
+ System.err.println("Method faild: " + getMethod.getStatusLine());
+ } else {
+ // 閫氳繃getMethod瀹炰緥锛岃幏鍙栬繙绋嬬殑涓�涓緭鍏ユ祦
+ is = getMethod.getResponseBodyAsStream();
+ // 鍖呰杈撳叆娴�
+ br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ StringBuffer sbf = new StringBuffer();
+ // 璇诲彇灏佽鐨勮緭鍏ユ祦
+ String temp = null;
+ while ((temp = br.readLine()) != null) {
+ sbf.append(temp).append("\r\n");
+ }
+ result = sbf.toString();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 鍏抽棴璧勬簮
+ if (null != br) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != is) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ // 閲婃斁杩炴帴
+ getMethod.releaseConnection();
+ }
+ return result;
+ }
+ public static String doPost(String url, Map<String, Object> paramMap) {
+ // 鑾峰彇杈撳叆娴�
+ InputStream is = null;
+ BufferedReader br = null;
+ String result = null;
+ // 鍒涘缓httpClient瀹炰緥瀵硅薄
+ HttpClient httpClient = new HttpClient();
+ // 璁剧疆httpClient杩炴帴涓绘満鏈嶅姟鍣ㄨ秴鏃舵椂闂达細15000姣
+ httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
+ // 鍒涘缓post璇锋眰鏂规硶瀹炰緥瀵硅薄
+ PostMethod postMethod = new PostMethod(url);
+ // 璁剧疆post璇锋眰瓒呮椂鏃堕棿
+ postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
+ NameValuePair[] nvp = null;
+ // 鍒ゆ柇鍙傛暟map闆嗗悎paramMap鏄惁涓虹┖
+ if (null != paramMap && paramMap.size() > 0) {// 涓嶄负绌�
+ // 鍒涘缓閿�煎弬鏁板璞℃暟缁勶紝澶у皬涓哄弬鏁扮殑涓暟
+ nvp = new NameValuePair[paramMap.size()];
+ // 寰幆閬嶅巻鍙傛暟闆嗗悎map
+ Set<Entry<String, Object>> entrySet = paramMap.entrySet();
+ // 鑾峰彇杩唬鍣�
+ Iterator<Entry<String, Object>> iterator = entrySet.iterator();
+ int index = 0;
+ while (iterator.hasNext()) {
+ Entry<String, Object> mapEntry = iterator.next();
+ // 浠巑apEntry涓幏鍙杒ey鍜寁alue鍒涘缓閿�煎璞″瓨鏀惧埌鏁扮粍涓�
+ try {
+ nvp[index] = new NameValuePair(mapEntry.getKey(),
+ new String(mapEntry.getValue().toString().getBytes("UTF-8"), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ index++;
+ }
+ }
+ // 鍒ゆ柇nvp鏁扮粍鏄惁涓虹┖
+ if (null != nvp && nvp.length > 0) {
+ // 灏嗗弬鏁板瓨鏀惧埌requestBody瀵硅薄涓�
+ postMethod.setRequestBody(nvp);
+ }
+ // 鎵цPOST鏂规硶
+ try {
+ int statusCode = httpClient.executeMethod(postMethod);
+ // 鍒ゆ柇鏄惁鎴愬姛
+ if (statusCode != HttpStatus.SC_OK) {
+ System.err.println("Method faild: " + postMethod.getStatusLine());
+ }
+ // 鑾峰彇杩滅▼杩斿洖鐨勬暟鎹�
+ is = postMethod.getResponseBodyAsStream();
+ // 灏佽杈撳叆娴�
+ br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ StringBuffer sbf = new StringBuffer();
+ String temp = null;
+ while ((temp = br.readLine()) != null) {
+ sbf.append(temp).append("\r\n");
+ }
+ result = sbf.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 鍏抽棴璧勬簮
+ if (null != br) {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != is) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ // 閲婃斁杩炴帴
+ postMethod.releaseConnection();
+ }
+ return result;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpUtil.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpUtil.java
new file mode 100644
index 0000000..1936cf3
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/HttpUtil.java
@@ -0,0 +1,239 @@
+package com.vci.ubcs.codeapply;
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
+import com.vci.ubcs.code.vo.webserviceModel.apply.InterParameterVO;
+import com.vci.ubcs.codeapply.object.R;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.http.*;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+public class HttpUtil {
+ private static final CloseableHttpClient httpclient = HttpClients.createDefault();
+
+ /**
+ * 鍙戦�丠ttpGet璇锋眰
+ * @param url
+ * @return
+ */
+ public static String sendGet(String url) {
+
+ HttpGet httpget = new HttpGet(url);
+ CloseableHttpResponse response = null;
+ try {
+ response = httpclient.execute(httpget);
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ String result = null;
+ try {
+ HttpEntity entity = response.getEntity();
+ if (entity != null) {
+ result = EntityUtils.toString(entity);
+ }
+ } catch (ParseException | IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ response.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return result;
+ }
+
+ /**
+ * 鍙戦�丠ttpGet甯﹀弬璇锋眰
+ * @param url
+ * @param params
+ * @return
+ */
+ public static R sendGet(String url, Map<String, String> params,Map<String,String> headers) {
+ R r=new R();
+ // 鑾峰彇杩炴帴瀹㈡埛绔伐鍏�
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ String entityStr = null;
+ CloseableHttpResponse response = null;
+ try {
+ /*
+ * 鐢变簬GET璇锋眰鐨勫弬鏁伴兘鏄嫾瑁呭湪URL鍦板潃鍚庢柟锛屾墍浠ユ垜浠鏋勫缓涓�涓猆RL锛屽甫鍙傛暟
+ */
+ URIBuilder uriBuilder = new URIBuilder(url);
+ /** 绗竴绉嶆坊鍔犲弬鏁扮殑褰㈠紡 */
+ /*uriBuilder.addParameter("name", "root");
+ uriBuilder.addParameter("password", "123456");*/
+ /** 绗簩绉嶆坊鍔犲弬鏁扮殑褰㈠紡 */
+ List<NameValuePair> list = new LinkedList<>();
+ //璁剧疆澶撮儴
+ for(Map.Entry<String,String> entry:params.entrySet()){
+ BasicNameValuePair param1 = new BasicNameValuePair(entry.getKey(), entry.getValue());
+ list.add(param1);
+ }
+ uriBuilder.setParameters(list);
+ // 鏍规嵁甯﹀弬鏁扮殑URI瀵硅薄鏋勫缓GET璇锋眰瀵硅薄
+ HttpGet httpGet = new HttpGet(uriBuilder.build());
+ /*
+ * 娣诲姞璇锋眰澶翠俊鎭�
+ */
+ if(headers!=null&&headers.size()>0) {
+ for (Map.Entry<String, String> entry : params.entrySet()) {
+ httpGet.addHeader(entry.getKey(), entry.getValue());
+ }
+ }
+ // 鎵ц璇锋眰
+ response = httpClient.execute(httpGet);
+ // 鑾峰緱鍝嶅簲鐨勫疄浣撳璞�
+ HttpEntity entity = response.getEntity();
+ // 浣跨敤Apache鎻愪緵鐨勫伐鍏风被杩涜杞崲鎴愬瓧绗︿覆
+ entityStr = EntityUtils.toString(entity, "UTF-8");
+ if(StringUtils.isNotBlank(entityStr)){
+ r = JSONObject.toJavaObject(JSONObject.parseObject(entityStr), R.class);
+ }
+ } catch (ClientProtocolException e) {
+ System.err.println("Http鍗忚鍑虹幇闂");
+ e.printStackTrace();
+ } catch (ParseException e) {
+ System.err.println("瑙f瀽閿欒");
+ e.printStackTrace();
+ } catch (URISyntaxException e) {
+ System.err.println("URI瑙f瀽寮傚父");
+ e.printStackTrace();
+ } catch (IOException e) {
+ System.err.println("IO寮傚父");
+ e.printStackTrace();
+ } finally {
+ // 閲婃斁杩炴帴
+ if (null != response) {
+ try {
+ response.close();
+ httpClient.close();
+ } catch (IOException e) {
+ System.err.println("閲婃斁杩炴帴鍑洪敊");
+ e.printStackTrace();
+ }
+ }
+ }
+ return r;
+ }
+ /**
+ * 鍙戦�丠ttpGet甯﹀弬璇锋眰
+ * @param url
+ * @param header
+ * @return
+ */
+ public static String sendGet(String url, Map<String, String> header) {
+ HttpGet httpGet = new HttpGet(url);
+
+
+ //璁剧疆澶撮儴
+ for(Map.Entry entry:header.entrySet()){
+// System.out.println(entry.getKey()+ "###########" + entry.getValue());
+ httpGet.setHeader(entry.getKey().toString(),entry.getValue().toString());
+ }
+// System.out.println(jsonObject.toString());
+
+
+// HttpGet httpget = new HttpGet(url);
+ CloseableHttpResponse response = null;
+ try {
+ response = httpclient.execute(httpGet);
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ String result = null;
+ try {
+ HttpEntity entity = response.getEntity();
+ if (entity != null) {
+ result = EntityUtils.toString(entity);
+ }
+ } catch (ParseException | IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ response.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return result;
+ }
+
+ /**
+ * 鍙戦�丠ttpPost璇锋眰锛屽弬鏁颁负map
+ * @param url
+ * @param map
+ * @return
+ */
+ public static String sendPost(String url, Map<String,String> map) {
+// JsonObject formparams = new JsonObject();
+// for (Map.Entry<String, String> entry : map.entrySet()) {
+// formparams.add(entry.getKey(), entry.getValue();
+// }
+ //json 鏍煎紡
+// UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
+ JsonObject jsonObject = new JsonObject();
+ for(Map.Entry entry:map.entrySet()){
+// System.out.println(entry.getKey()+ "###########" + entry.getValue());
+ jsonObject.addProperty(entry.getKey().toString(),entry.getValue().toString());
+ }
+// System.out.println(jsonObject.toString());
+ StringEntity entity = new StringEntity(jsonObject.toString(), Consts.UTF_8);
+ HttpPost httppost = new HttpPost(url);
+ httppost.setEntity(entity);
+ CloseableHttpResponse response = null;
+ try {
+ response = httpclient.execute(httppost);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ HttpEntity entity1 = response.getEntity();
+ String result = null;
+ try {
+ result = EntityUtils.toString(entity1);
+ } catch (ParseException | IOException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ /**
+ * 鍙戦�佷笉甯﹀弬鏁扮殑HttpPost璇锋眰
+ * @param url
+ * @return
+ */
+ public static String sendPost(String url) {
+ HttpPost httppost = new HttpPost(url);
+ CloseableHttpResponse response = null;
+ try {
+ response = httpclient.execute(httppost);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ HttpEntity entity = response.getEntity();
+ String result = null;
+ try {
+ result = EntityUtils.toString(entity);
+ } catch (ParseException | IOException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java
new file mode 100644
index 0000000..3297df7
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java
@@ -0,0 +1,159 @@
+package com.vci.ubcs.codeapply;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Frame;
+import java.awt.Toolkit;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import javax.swing.JPanel;
+import com.vci.base.ui.exception.VCIException;
+import com.vci.base.ui.swing.VCISwingUtil;
+import com.vci.base.ui.swing.components.VCIJButton;
+import com.vci.base.ui.swing.components.VCIJDialog;
+import com.vci.base.ui.swing.components.VCIJPanel;
+import com.vci.base.ui.swing.components.VCIJTable;
+import com.vci.base.ui.swing.components.table.VCIJTablePanel;
+import org.apache.poi.ss.formula.functions.T;
+
+public class RMDataReferTempDialog extends VCIJDialog {
+ private VCIJDialog rmDataAddDialog;
+ private String templateId = "";
+ private RMDataReferTempDialogActionListener actionListener = new RMDataReferTempDialogActionListener(this);
+ private VCIJButton btnOk = VCISwingUtil.createVCIJButton("ok", "纭畾", "纭畾", "accept.png", actionListener);
+ private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "鍙栨秷", "鍙栨秷", "cancel.png", actionListener);
+ private static final long serialVersionUID = 1L;
+ public RMDataReferTempDialog(VCIJDialog rmDataAddDialog,String templateId) {
+ //super(true);
+ this.rmDataAddDialog = rmDataAddDialog;
+ this.templateId = templateId;
+ init();
+ setTitle("寮曠敤妯℃澘-灞炴�ч�夋嫨");
+ //initDialogSize(rmDataAddDialog.getWidth(), rmDataAddDialog.getHeight());
+ }
+
+ private void init(){
+ this.setLayout(new BorderLayout());
+ JPanel panel = new JPanel(new FlowLayout());
+ panel.add(btnOk);
+ panel.add(btnCancel);
+
+ this.add(createRMDataMainPanel(), BorderLayout.CENTER);
+ this.add(panel,BorderLayout.SOUTH);
+
+ Dimension dime = Toolkit.getDefaultToolkit().getScreenSize().getSize();
+ int x = dime.width/6;
+ int y = dime.height/6 + 50;
+ this.setLocation(x , y);
+ this.setSize(850, 400);
+ }
+
+ private boolean fromTableDoubleClick = false;
+ public boolean isFromTableDoubleClick() {
+ return fromTableDoubleClick;
+ }
+ public void setFromTableDoubleClick(boolean fromTableDoubleClick) {
+ this.fromTableDoubleClick = fromTableDoubleClick;
+ }
+
+ private VCIJPanel createRMDataMainPanel(){
+ VCIJPanel rmDataTablePanel = new VCIJPanel();
+ if(!templateId.equals("")){
+ //rmDataTablePanel = getRMDataMainPanel("", "", templateId);
+ }
+ rmDataTablePanel.setPreferredSize(new Dimension(880,300));
+ return rmDataTablePanel;
+ }
+ private VCIJTablePanel<T> tablePanel = null;
+ private CodeDataMainPanelDataProvider dataProvider;
+ public VCIJTablePanel getRMDataMainPanel(String libId, String classifyId, String templateId) {
+ dataProvider = new CodeDataMainPanelDataProvider();
+ tablePanel = new VCIJTablePanel<T>(dataProvider);
+ //tablePanel.setCustomButtons(getCombinedButtons());
+ tablePanel.setShowExport(true);
+ tablePanel.setShowPaging(true);
+ tablePanel.setPageButtonFlowAlign(FlowLayout.CENTER);
+ tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
+ tablePanel.buildTablePanel();
+ int columnCount = tablePanel.getTable().getColumnCount();
+ tablePanel.getTable().getColumnModel().getColumn(columnCount - 2).setPreferredWidth(150);
+ tablePanel.getTable().getColumnModel().getColumn(columnCount - 4).setPreferredWidth(150);
+ /**
+ * 绂佹table琛ㄥご鎷栧姩锛岄槻姝㈢涓�鍒楃殑澶嶉�夋鍜岀浜屽垪鐨勫簭鍙锋嫋鍔ㄥ嚭闂:
+ * 鐐瑰嚮鏌愯锛岃〃鏍间腑鐨勫閫夋鐪嬩笉鍒帮紝涓旈�変腑琛ㄥご涓婄殑澶嶉�夋绯荤粺浼氭姤閿欙紱鏁版嵁淇℃伅鏄剧ず涓嶆纭��
+ * 2012-12-4 wangxl
+ */
+ tablePanel.getTable().getTableHeader().setReorderingAllowed(false);
+ tablePanel.refreshTableData();
+ VCIJTable table = tablePanel.getTable();
+ table.addMouseListener(new MouseAdapter() {
+ public void mouseClicked(MouseEvent e) {
+ if (e.getButton() == 1 && e.getClickCount() == 2) {
+ setFromTableDoubleClick(true);
+ btnOk.doClick();
+ }
+ }
+ });
+ return tablePanel;
+ }
+
+ /***鑾峰彇璧勬簮鏁版嵁鐨勪富闈㈡澘**/
+/*
+ public RMDataMainPanel getRMDataMainPanel() {
+ return rmDataMainPanel;
+ }
+*/
+ /*private RMDataTransmitObject loadTemplateAttributes(String libId, String classifyId, String templateId){
+ LinkedHashMap<String, TemplatePropertyObject> tempPropObjsMap = new LinkedHashMap<String, TemplatePropertyObject>();
+ LinkedList<TemplatePropertyObject> tempPropObjsList = new LinkedList<TemplatePropertyObject>();
+
+ LinkedHashMap<String, AttributeObject> tempAttrObjsMap = new LinkedHashMap<String, AttributeObject>();
+ LinkedList<AttributeObject> tempAttrObjsList = new LinkedList<AttributeObject>();
+
+ TemplateObject templateObject = null;
+
+ RMDataTransmitObject transmit = new RMDataTransmitObject();
+ transmit.setLibId(libId);
+ transmit.setClassifyId(classifyId);
+ transmit.setTemplateId(templateId);
+ transmit.setSpecialLib(true);//added by ligang 2012.07.04澶囦欢搴撲笉鍋氭潈闄愭牎楠�
+ try{
+ UserEntityObject userEntityObject = LogonApplication.getUserEntityObject();
+ TemplateClientDelegate tempDel = new TemplateClientDelegate(userEntityObject);
+ RMTemplateProertyClientDelegate tempPropDel = new RMTemplateProertyClientDelegate(userEntityObject);
+ AttributeClientDelegate attrDel = new AttributeClientDelegate(userEntityObject);
+// RMTypeObject rmTypeObject = new RMTypeClientDelegate(userEntityObject).getRMTypeById(classifyId);
+ RMTypeObject rmTypeObject = new RMTypeObject();
+ // 浠庤祫婧愬垎绫绘爲涓�夋嫨鐨勫搴旂殑鍒嗙被瀵硅薄
+ transmit.setRmTypeObject(rmTypeObject);
+
+ // 鑾峰彇妯℃澘瀵硅薄
+ templateObject = tempDel.getTemplateObjectById(templateId);
+ transmit.setTemplateObject(templateObject);
+
+ // 鑾峰彇妯℃澘瀹氫箟鐨勫睘鎬у璞★紙杩欎釜瀵硅薄鍖呭惈鐨勬槸灞炴�у湪妯℃澘涓槸鍚︿负鍏抽敭灞炴�с�佸彲鍚︿负绌虹瓑绛夛級
+ TemplatePropertyObject[] tempPropObjs = tempPropDel.getTempletePropertys(templateId);
+ for(TemplatePropertyObject obj : tempPropObjs){
+ tempPropObjsMap.put(obj.getAttrId(), obj);
+ tempPropObjsList.add(obj);
+ }
+ transmit.setTempPropObjsMap(tempPropObjsMap);
+ transmit.setTempPropObjsList(tempPropObjsList);
+
+ // 鑾峰彇妯℃澘瀹氫箟鐨勫睘鎬у璞″搴斿埌鐨勭湡瀹炵殑灞炴�у璞★紙绯荤粺閰嶇疆妯″潡瀹氫箟鐨勯偅浜涘睘鎬у璞★級
+ AttributeObject[] attrObjs = attrDel.fetchAttributeByTemplateId(templateId);
+ for(AttributeObject obj : attrObjs){
+ tempAttrObjsMap.put(obj.getId(), obj);
+ tempAttrObjsList.add(obj);
+ }
+ transmit.setTempAttrObjsMap(tempAttrObjsMap);
+ transmit.setTempAttrObjsList(tempAttrObjsList);
+
+ }catch(VCIException e){
+ e.printStackTrace();
+ }
+ return transmit;
+ }*/
+
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialogActionListener.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialogActionListener.java
new file mode 100644
index 0000000..d7742c9
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialogActionListener.java
@@ -0,0 +1,59 @@
+
+package com.vci.ubcs.codeapply;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.LinkedHashMap;
+import com.vci.base.ui.swing.VCIOptionPane;
+import com.vci.base.ui.swing.components.VCIJDialog.DialogResult;
+
+public class RMDataReferTempDialogActionListener implements ActionListener {
+
+ private RMDataReferTempDialog owner = null;
+ public RMDataReferTempDialogActionListener(RMDataReferTempDialog owner){
+ this.owner = owner;
+ this.initActionMap();
+ }
+
+ private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
+ private void initActionMap(){
+ actionMaps.put("ok", new Runnable() { public void run() {
+ ok();
+ }});
+ actionMaps.put("cancel", new Runnable() { public void run() {
+ cancel();
+ }});
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ String key = e.getActionCommand();
+ if(actionMaps.containsKey(key)){
+ actionMaps.get(key).run();
+ }
+ }
+
+ private void ok(){
+ if(!owner.isFromTableDoubleClick()){
+ /*LinkedList<RMDataObject> list = this.owner.getRMDataMainPanel().getTablePanel().getSelectedRowObjects();
+ if(list.size() > 1) {
+ VCIOptionPane.showMessageDialog(this.owner, "涓嶅厑璁搁�夋嫨澶氭潯鏁版嵁杩涜鎿嶄綔!");
+ return;
+ } else if(list.size() <= 0) {
+ VCIOptionPane.showMessageDialog(this.owner, "璇烽�夋嫨鏁版嵁杩涜鎿嶄綔!");
+ return;
+ }*/
+ }
+ owner.setDialogResult(DialogResult.OK);
+ close();
+ owner.getDialogCallback().run();
+ }
+
+ private void cancel(){
+ owner.setDialogResult(DialogResult.CANCEL);
+ close();
+ }
+
+ private void close(){
+ owner.setVisible(false);
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/SectionObject.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/SectionObject.java
new file mode 100644
index 0000000..beff9dc
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/SectionObject.java
@@ -0,0 +1,4 @@
+package com.vci.ubcs.codeapply;
+
+public class SectionObject {
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TestIntegrateFrame.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TestIntegrateFrame.java
new file mode 100644
index 0000000..707c812
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TestIntegrateFrame.java
@@ -0,0 +1,44 @@
+package com.vci.ubcs.codeapply;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.HashMap;
+import java.util.Map;
+
+public class TestIntegrateFrame {
+ public static JButton apply = new JButton();
+ public static JTextField text = new JTextField();
+ public static void main(String[] args) {
+ final JFrame j = new JFrame();
+ j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ JPanel p = new JPanel();
+ j.setSize(200, 200);
+ apply.setText("test");
+ apply.setSize(80, 25);
+ text.setPreferredSize(new Dimension(100,25));
+ p.add(text);
+ p.add(apply);
+ j.add(p);
+ j.setLocation(new Point(500,300));
+ j.setVisible(true);
+ apply.addActionListener(new ActionListener() {
+
+ public void actionPerformed(ActionEvent e) {
+ Map<String, String> map = new HashMap<String, String>();
+// map.put("鍘熸潗鏂欐浛鎹欢", "YUANCAILIAOTIHUANJIAN");
+// map.put("鍘熸潗鏂欓儴浠�", "1");
+// map.put("绠�鏄撶ず娉㈠櫒", "");
+ map.put("", "YCL");
+ String clsfName = "閿�";
+ String deptName = "";
+ CodeApplyFor410Dialog dialog = new CodeApplyFor410Dialog(j, clsfName,deptName);
+ String code = dialog.getCodeValue();
+ dialog.getAttributeValue("mi");
+ text.setText(code + "_" + dialog.getAttributeValue("MIDU"));
+ System.out.println("code:---"+code+"---");
+ }
+ });
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TransmitTreeObject.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TransmitTreeObject.java
new file mode 100644
index 0000000..e37044b
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/TransmitTreeObject.java
@@ -0,0 +1,67 @@
+package com.vci.ubcs.codeapply;
+
+import com.vci.base.ui.tree.VCIBaseTree;
+import com.vci.base.ui.tree.VCIBaseTreeModel;
+import com.vci.base.ui.tree.VCIBaseTreeNode;
+
+public class TransmitTreeObject {
+ private VCIBaseTreeNode currentTreeNode; //閫変腑鐨勬爲鑺傜偣
+ private VCIBaseTreeModel treeModel; // 瑕佹搷浣滅殑 treeModel
+ private VCIBaseTree tree; // 瑕佹搷浣滅殑 tree
+ private VCIBaseTreeNode lastRightClickedTreeNode;// 鏈�鍚庝竴娆″彸閿搴旂殑TreeNode
+
+ public TransmitTreeObject(){
+ super();
+ }
+
+ public TransmitTreeObject(VCIBaseTreeNode currentTreeNode,
+ VCIBaseTreeModel treeModel, VCIBaseTree tree,
+ VCIBaseTreeNode lastRightClickedTreeNode) {
+ super();
+ this.currentTreeNode = currentTreeNode;
+ this.treeModel = treeModel;
+ this.tree = tree;
+ this.lastRightClickedTreeNode = lastRightClickedTreeNode;
+ }
+
+ public VCIBaseTreeNode getCurrentTreeNode() {
+ return currentTreeNode;
+ }
+ public void setCurrentTreeNode(VCIBaseTreeNode currentTreeNode) {
+ this.currentTreeNode = currentTreeNode;
+ }
+ public VCIBaseTree getTree() {
+ return tree;
+ }
+ public void setTree(VCIBaseTree tree) {
+ this.tree = tree;
+ }
+ public VCIBaseTreeModel getTreeModel() {
+ return treeModel;
+ }
+ public void setTreeModel(VCIBaseTreeModel treeModel) {
+ this.treeModel = treeModel;
+ }
+ /**
+ * 杩斿洖 鏈�鍚庝竴娆″彸閿搴旂殑TreeNode
+ * <p>Description: </p>
+ *
+ * @author xchao
+ * @time 2012-5-21
+ * @return
+ */
+ public VCIBaseTreeNode getLastRightClickedTreeNode() {
+ return lastRightClickedTreeNode;
+ }
+ /**
+ * 璁剧疆 鏈�鍚庝竴娆″彸閿搴旂殑TreeNode
+ * <p>Description: </p>
+ *
+ * @author xchao
+ * @time 2012-5-21
+ * @param lastRightClickedTreeNode
+ */
+ public void setLastRightClickedTreeNode(VCIBaseTreeNode lastRightClickedTreeNode) {
+ this.lastRightClickedTreeNode = lastRightClickedTreeNode;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/httpClient4.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/httpClient4.java
new file mode 100644
index 0000000..9d0cc11
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/httpClient4.java
@@ -0,0 +1,134 @@
+package com.vci.ubcs.codeapply;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import org.apache.http.HttpEntity;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+public class httpClient4 {
+ public static String doGet(String url) {
+ CloseableHttpClient httpClient = null;
+ CloseableHttpResponse response = null;
+ String result = "";
+ try {
+ // 閫氳繃鍧�榛樿閰嶇疆鍒涘缓涓�涓猦ttpClient瀹炰緥
+ httpClient = HttpClients.createDefault();
+ // 鍒涘缓httpGet杩滅▼杩炴帴瀹炰緥
+ HttpGet httpGet = new HttpGet(url);
+ // 璁剧疆璇锋眰澶翠俊鎭紝閴存潈
+ httpGet.setHeader("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
+ // 璁剧疆閰嶇疆璇锋眰鍙傛暟
+ RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 杩炴帴涓绘満鏈嶅姟瓒呮椂鏃堕棿
+ .setConnectionRequestTimeout(35000)// 璇锋眰瓒呮椂鏃堕棿
+ .setSocketTimeout(60000)// 鏁版嵁璇诲彇瓒呮椂鏃堕棿
+ .build();
+ // 涓篽ttpGet瀹炰緥璁剧疆閰嶇疆
+ httpGet.setConfig(requestConfig);
+ // 鎵цget璇锋眰寰楀埌杩斿洖瀵硅薄
+ response = httpClient.execute(httpGet);
+ // 閫氳繃杩斿洖瀵硅薄鑾峰彇杩斿洖鏁版嵁
+ HttpEntity entity = response.getEntity();
+ // 閫氳繃EntityUtils涓殑toString鏂规硶灏嗙粨鏋滆浆鎹负瀛楃涓�
+ result = EntityUtils.toString(entity);
+ } catch (ClientProtocolException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 鍏抽棴璧勬簮
+ if (null != response) {
+ try {
+ response.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != httpClient) {
+ try {
+ httpClient.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return result;
+ }
+ public static String doPost(String url, Map<String, Object> paramMap) {
+ CloseableHttpClient httpClient = null;
+ CloseableHttpResponse httpResponse = null;
+ String result = "";
+ // 鍒涘缓httpClient瀹炰緥
+ httpClient = HttpClients.createDefault();
+ // 鍒涘缓httpPost杩滅▼杩炴帴瀹炰緥
+ HttpPost httpPost = new HttpPost(url);
+ // 閰嶇疆璇锋眰鍙傛暟瀹炰緥
+ RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 璁剧疆杩炴帴涓绘満鏈嶅姟瓒呮椂鏃堕棿
+ .setConnectionRequestTimeout(35000)// 璁剧疆杩炴帴璇锋眰瓒呮椂鏃堕棿
+ .setSocketTimeout(60000)// 璁剧疆璇诲彇鏁版嵁杩炴帴瓒呮椂鏃堕棿
+ .build();
+ // 涓篽ttpPost瀹炰緥璁剧疆閰嶇疆
+ httpPost.setConfig(requestConfig);
+ // 璁剧疆璇锋眰澶�
+ httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
+ // 灏佽post璇锋眰鍙傛暟
+ if (null != paramMap && paramMap.size() > 0) {
+ List<NameValuePair> nvps = new ArrayList<NameValuePair>();
+ // 閫氳繃map闆嗘垚entrySet鏂规硶鑾峰彇entity
+ Set<Entry<String, Object>> entrySet = paramMap.entrySet();
+ // 寰幆閬嶅巻锛岃幏鍙栬凯浠e櫒
+ Iterator<Entry<String, Object>> iterator = entrySet.iterator();
+ while (iterator.hasNext()) {
+ Entry<String, Object> mapEntry = iterator.next();
+ nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
+ }
+ // 涓篽ttpPost璁剧疆灏佽濂界殑璇锋眰鍙傛暟
+ try {
+ httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ }
+ try {
+ // httpClient瀵硅薄鎵цpost璇锋眰,骞惰繑鍥炲搷搴斿弬鏁板璞�
+ httpResponse = httpClient.execute(httpPost);
+ // 浠庡搷搴斿璞′腑鑾峰彇鍝嶅簲鍐呭
+ HttpEntity entity = httpResponse.getEntity();
+ result = EntityUtils.toString(entity);
+ } catch (ClientProtocolException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 鍏抽棴璧勬簮
+ if (null != httpResponse) {
+ try {
+ httpResponse.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != httpClient) {
+ try {
+ httpClient.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/AttrRangObjectWarper.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/AttrRangObjectWarper.java
new file mode 100644
index 0000000..aca1d28
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/AttrRangObjectWarper.java
@@ -0,0 +1,41 @@
+package com.vci.ubcs.codeapply.object;
+
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+
+import java.io.Serializable;
+import java.text.MessageFormat;
+
+public class AttrRangObjectWarper implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 8306930792434927633L;
+ private KeyValue keyValue = null;
+ public AttrRangObjectWarper(KeyValue keyValue){
+ this.keyValue = keyValue;
+ }
+
+ public KeyValue getKeyValue() {
+ return keyValue;
+ }
+
+ public void setKeyValue(KeyValue keyValue) {
+ this.keyValue = keyValue;
+ }
+
+ @Override
+ public String toString() {
+ String res = "";
+ String desc = keyValue.getValue();
+ String value = keyValue.getKey();
+ if("".equals(desc) && "".equals(value)) {
+ return "";
+ }else if (desc.equals("")) {
+ res = value;
+// res = MessageFormat.format("{0}({1})", value, value);
+ } else {
+ res = MessageFormat.format("{0}({1})", desc, value);
+ }
+ return res;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ClassifyLevel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ClassifyLevel.java
new file mode 100644
index 0000000..6e5aa95
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/ClassifyLevel.java
@@ -0,0 +1,62 @@
+package com.vci.ubcs.codeapply.object;
+
+public class ClassifyLevel {
+ /***
+ * 鍒嗙被浠e彿
+ */
+ private String type;
+ /**
+ * 鍚�
+ */
+ private String change;
+ /**
+ * 鏈�灏忓眰
+ */
+ private String set;
+ /**
+ * 灞傜骇
+ */
+ private int injectNum;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getChange() {
+ return change;
+ }
+
+ public void setChange(String change) {
+ this.change = change;
+ }
+
+ public String getSet() {
+ return set;
+ }
+
+ public void setSet(String set) {
+ this.set = set;
+ }
+
+ public int getInjectNum() {
+ return injectNum;
+ }
+
+ public void setInjectNum(int injectNum) {
+ this.injectNum = injectNum;
+ }
+
+ @Override
+ public String toString() {
+ return "classifyLevel{" +
+ "type='" + type + '\'' +
+ ", change='" + change + '\'' +
+ ", set='" + set + '\'' +
+ ", injectNum='" + injectNum + '\'' +
+ '}';
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassify.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassify.java
new file mode 100644
index 0000000..6249213
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeClassify.java
@@ -0,0 +1,11 @@
+package com.vci.ubcs.codeapply.object;
+
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+
+public class CodeClassify extends CodeClassifyVO {
+
+ @Override
+ public String toString() {
+ return super.getName();
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/R.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/R.java
new file mode 100644
index 0000000..a652e03
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/R.java
@@ -0,0 +1,50 @@
+package com.vci.ubcs.codeapply.object;
+
+public class R<T> {
+ private int code;
+ private boolean success;
+ private T data;
+ private String msg;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ public void setData(T data) {
+ this.data = data;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ @Override
+ public String toString() {
+ return "R{" +
+ "code=" + code +
+ ", success=" + success +
+ ", data=" + data +
+ ", msg='" + msg + '\'' +
+ '}';
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/RMDataTransmitObject.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/RMDataTransmitObject.java
new file mode 100644
index 0000000..7e13d93
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/RMDataTransmitObject.java
@@ -0,0 +1,160 @@
+package com.vci.ubcs.codeapply.object;
+
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+
+import java.util.*;
+
+public class RMDataTransmitObject {
+ // 搴揑D
+ private String libId = "";
+ // 鍒嗙被ID
+ private String classifyId = "";
+ // 鍒嗙被鐮�
+ private String classifyCode = "";
+ // 妯℃澘ID
+ private String templateId = "";
+ // 妯℃澘瀵硅薄
+ private CodeClassifyTemplateVO templateObject = null;
+ // 妯℃澘鐨勫睘鎬ч厤缃璞AP key:灞炴�D value:妯℃澘鍜屽睘鎬у畾涔夊璞�
+ private Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap = new LinkedHashMap<String, CodeClassifyTemplateAttrVO>();
+
+ /**
+ * 妯℃澘鐨勫睘鎬ч厤缃紝key:innerName, value:TemplatePropertyObject
+ */
+ private Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName = new LinkedHashMap<String, CodeClassifyTemplateAttrVO>();
+ // 妯℃澘鐨勫睘鎬ч厤缃璞IST
+ private List<CodeClassifyTemplateAttrVO> tempPropObjsList = new ArrayList<>();
+
+ // 璧勬簮鏁版嵁鎿嶄綔鏃讹紝閫夋嫨鐨勬祦绋嬪璞�
+ //private ProcessDefinitionObject processObject = null;
+
+ // 璧勬簮鏁版嵁鎿嶄綔鏃讹紝娴佺▼鐨勪换鍔″璞★紝鍦ㄦ坊鍔犺祫婧愭暟鎹椂锛屾浠诲姟瀵硅薄鏄�夋嫨鐨勬祦绋嬬殑绗竴涓换鍔★紝鍦ㄨ祫婧愭暟鎹紪杈戞垨浠庝换鍔$涓紪杈戞椂锛屾槸璇ヤ换鍔″搴旂殑浠诲姟瀵硅薄
+ //private ProcessTaskInfo processTaskInfo = null;
+
+ // 璧勬簮鏁版嵁闈㈡澘鍖哄煙锛堣〃鏍煎尯鍩燂級
+ //private RMDataMainPanel rmDataMainPanel = null;
+
+ // 璧勬簮鏁版嵁瀵瑰簲鐨勫簱鎴栧垎绫�
+ private CodeClassify rmTypeObject = null;
+
+ // 鏈�鍚庝竴娆″垱寤烘垚鍔熺殑璧勬簮鏁版嵁瀵硅薄锛�
+ //private RMDataObject lastCreatedRMDataObject = null;
+
+ // 鏈�鍚庝竴娆℃洿鏂版垚鍔熺殑璧勬簮鏁版嵁瀵硅薄
+ //private RMDataObject lastUpdateRMDataObject = null;
+
+ //璧勬簮鏁版嵁鎿嶄綔鏃讹紝娴佺▼鐨勪换鍔″璞★紝鍦ㄦ坊鍔犺祫婧愭暟鎹椂锛屾浠诲姟瀵硅薄鏄�夋嫨鐨勬祦绋嬬殑绗竴涓换鍔★紝鍦ㄨ祫婧愭暟鎹紪杈戞垨浠庝换鍔$涓紪杈戞椂锛屾槸璇ヤ换鍔″搴旂殑浠诲姟瀵硅薄
+ //private FlowInstanceInfo flowInstanceInfo = null;
+
+ // 灞炴�х殑鍙栧�艰寖鍥村垪琛� key锛氬睘鎬D value: map key锛氬睘鎬у悕绉帮紝value锛氬彇鍊艰寖鍥村��
+ private LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeNameToValueMaps = new LinkedHashMap<String, LinkedHashMap<String,String>>();
+ // 灞炴�х殑鍙栧�艰寖鍥村垪琛� key锛氬睘鎬D value: map key锛氬彇鍊艰寖鍥村�硷紝value锛氬睘鎬у悕绉�
+ private LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeValueToNameMaps = new LinkedHashMap<String, LinkedHashMap<String,String>>();
+ //鏄惁鏄笓鏈夊簱鏍囩ず
+ private boolean specialLib = false;
+ private boolean view = true;
+ public String getLibId() {
+ return libId;
+ }
+
+ public void setLibId(String libId) {
+ this.libId = libId;
+ }
+
+ public String getClassifyId() {
+ return classifyId;
+ }
+
+ public void setClassifyId(String classifyId) {
+ this.classifyId = classifyId;
+ }
+
+ public String getClassifyCode() {
+ return classifyCode;
+ }
+
+ public void setClassifyCode(String classifyCode) {
+ this.classifyCode = classifyCode;
+ }
+
+ public String getTemplateId() {
+ return templateId;
+ }
+
+ public void setTemplateId(String templateId) {
+ this.templateId = templateId;
+ }
+
+ public CodeClassifyTemplateVO getTemplateObject() {
+ return templateObject;
+ }
+
+ public void setTemplateObject(CodeClassifyTemplateVO templateObject) {
+ this.templateObject = templateObject;
+ }
+
+ public Map<String, CodeClassifyTemplateAttrVO> getTempPropObjsMap() {
+ return tempPropObjsMap;
+ }
+
+ public void setTempPropObjsMap(Map<String, CodeClassifyTemplateAttrVO> tempPropObjsMap) {
+ this.tempPropObjsMap = tempPropObjsMap;
+ }
+
+ public Map<String, CodeClassifyTemplateAttrVO> getTempPropObjMapsByInnerName() {
+ return tempPropObjMapsByInnerName;
+ }
+
+ public void setTempPropObjMapsByInnerName(Map<String, CodeClassifyTemplateAttrVO> tempPropObjMapsByInnerName) {
+ this.tempPropObjMapsByInnerName = tempPropObjMapsByInnerName;
+ }
+
+ public List<CodeClassifyTemplateAttrVO> getTempPropObjsList() {
+ return tempPropObjsList;
+ }
+
+ public void setTempPropObjsList(List<CodeClassifyTemplateAttrVO> tempPropObjsList) {
+ this.tempPropObjsList = tempPropObjsList;
+ }
+
+ public LinkedHashMap<String, LinkedHashMap<String, String>> getAttrRangeNameToValueMaps() {
+ return attrRangeNameToValueMaps;
+ }
+
+ public void setAttrRangeNameToValueMaps(LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeNameToValueMaps) {
+ this.attrRangeNameToValueMaps = attrRangeNameToValueMaps;
+ }
+
+ public LinkedHashMap<String, LinkedHashMap<String, String>> getAttrRangeValueToNameMaps() {
+ return attrRangeValueToNameMaps;
+ }
+
+ public void setAttrRangeValueToNameMaps(LinkedHashMap<String, LinkedHashMap<String, String>> attrRangeValueToNameMaps) {
+ this.attrRangeValueToNameMaps = attrRangeValueToNameMaps;
+ }
+
+ public boolean isSpecialLib() {
+ return specialLib;
+ }
+
+ public void setSpecialLib(boolean specialLib) {
+ this.specialLib = specialLib;
+ }
+
+ public boolean isView() {
+ return view;
+ }
+
+ public void setView(boolean view) {
+ this.view = view;
+ }
+
+ public CodeClassify getRmTypeObject() {
+ return rmTypeObject;
+ }
+
+ public void setRmTypeObject(CodeClassify rmTypeObject) {
+ this.rmTypeObject = rmTypeObject;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/IntegerTextField.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/IntegerTextField.java
new file mode 100644
index 0000000..5cd2260
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/IntegerTextField.java
@@ -0,0 +1,24 @@
+package com.vci.ubcs.codeapply.swing;
+
+import java.io.Serializable;
+
+import javax.swing.text.Document;
+
+import com.vci.base.ui.swing.components.NumberPlainDocument;
+import com.vci.base.ui.swing.components.VCIJTextField;
+
+public class IntegerTextField extends VCIJTextField implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 3885601645788779103L;
+ public IntegerTextField(String text){
+ super(text);
+ }
+ @Override
+ protected Document createDefaultModel(){
+ return new NumberPlainDocument(false);
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/RealTextField.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/RealTextField.java
new file mode 100644
index 0000000..80268bf
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/RealTextField.java
@@ -0,0 +1,54 @@
+package com.vci.ubcs.codeapply.swing;
+
+import com.vci.base.ui.swing.components.NumberPlainDocument;
+import com.vci.base.ui.swing.components.VCIJTextField;
+
+import javax.swing.text.Document;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+
+public class RealTextField extends VCIJTextField {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2711989168936034987L;
+
+ /**
+ *
+ */
+
+ public RealTextField(String text) {
+ super(text);
+ addKeyListener(new KeyAdapter() {
+ public void keyReleased(KeyEvent e) {
+ this_keyReleased(e);
+ }
+ });
+ }
+
+ private void this_keyReleased(KeyEvent e) {
+ String text = getText();
+ if (text.equals(""))
+ return;
+ // 鏁板�间笉鑳戒互-.鎴�.寮�澶�
+ if (text.startsWith("-.")) {
+ text = "-0." + text.substring(2);
+ } else if (text.startsWith(".")) {
+ text = "0." + text.substring(1);
+ }
+ String str = text.substring(0, text.length() - 1);
+ String last = text.substring(text.length() - 1);
+ // Real绫诲瀷鐨勮緭鍏ユ椂锛屽彧鑳藉嚭鐜颁竴涓�.
+ if (last.equals(".")) {
+ if (str.indexOf(".") > 0) {
+ text = str;
+ }
+ }
+ setText(text);
+ }
+
+ @Override
+ protected Document createDefaultModel() {
+ return new NumberPlainDocument(true);
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/VCIJComboxBox.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/VCIJComboxBox.java
new file mode 100644
index 0000000..dbb855f
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/swing/VCIJComboxBox.java
@@ -0,0 +1,50 @@
+package com.vci.ubcs.codeapply.swing;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+
+import com.vci.base.ui.swing.VCISwingUtil;
+import com.vci.base.ui.swing.components.VCIJButton;
+import com.vci.base.ui.swing.components.VCIJComboBox;
+
+public class VCIJComboxBox extends VCIJComboBox{
+
+ private static final long serialVersionUID = 1L;
+// private KJButton searchBtn = new KJButton("", "search.png");
+ private VCIJButton searchBtn = VCISwingUtil.createVCIJButton("search", "", "", "search.png", null);
+ public VCIJButton getSearchBtn() {
+ return searchBtn;
+ }
+
+ public void setSearchBtn(VCIJButton searchBtn) {
+ this.searchBtn = searchBtn;
+ }
+
+ private boolean flag = false;
+
+ public VCIJComboxBox(){
+ this.setLayout(new BorderLayout());
+ searchBtn.setVisible(false);
+ searchBtn.setPreferredSize(new Dimension(40, 30));
+ this.add(searchBtn, BorderLayout.EAST );
+
+ }
+
+// public KJButton getSearchBtn() {
+// return searchBtn;
+// }
+//
+// public void setSearchBtn(KJButton searchBtn) {
+// this.searchBtn = searchBtn;
+// }
+
+ public boolean isFlag() {
+ return flag;
+ }
+
+ public void setFlag(boolean flag) {
+ this.flag = flag;
+ }
+
+
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ConfigUtils.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ConfigUtils.java
new file mode 100644
index 0000000..5cc8f65
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ConfigUtils.java
@@ -0,0 +1,48 @@
+package com.vci.ubcs.codeapply.utils;
+import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
+import com.vci.base.common.resource.CommonProperties;
+
+/**
+ * 閰嶇疆淇℃伅缁熶竴璇诲彇绫�
+ * <p>Title: </p>
+ * <p>Description: </p>
+ * <p>Copyright: Copyright (c) 2012</p>
+ * <p>Company: VCI</p>
+ * @author xchao
+ * @time 2013-3-20
+ * @version 1.0
+ */
+public class ConfigUtils {
+
+
+ /**
+ * 鏍规嵁KEY锛屼粠杩滅▼鏈嶅姟鍣ㄧconf.properties涓厤缃��
+ * <p>Description: 鏍规嵁鏈壘鍒扮浉搴旂殑鍊硷紝鍒欒繑鍥濳EY</p>
+ *
+ * @author xchao
+ * @time 2013-3-20
+ * @param key
+ * @return
+ */
+ public static String getConfigValue(String key){
+ String res=CommonProperties.getStringProperty(key);
+ return res;
+ }
+
+ /**
+ * 鏍规嵁KEY锛屼粠杩滅▼鏈嶅姟鍣ㄧconf.properties涓厤缃��
+ * <p>Description: 鏍规嵁鏈壘鍒扮浉搴旂殑鍊硷紝鍒欒繑鍥濳EY</p>
+ *
+ * @author xchao
+ * @time 2013-3-20
+ * @param key
+ * @return
+ */
+ public static String getConfigValue(String key,String defaultValue){
+ String res=CommonProperties.getStringProperty(key);
+ if(StringUtils.isBlank(res)){
+ return defaultValue;
+ }
+ return res;
+ }
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
new file mode 100644
index 0000000..ab137d0
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
@@ -0,0 +1,35 @@
+
+
+
+#?????????????????
+# ??????????????????????????????????
+RMData.MaxAttrInLine=2
+# ?????????????TextArea???true:?? false????????true
+RMData.TextArea.Enable=true
+# ?String??????????????????????TextArea????????????100
+RMData.MaxStringLength=500
+
+# ???TextArea???TextArea?PreferredSize?MinimumSize?MaximumSize?Width?Height
+RMData.TextArea.PreferredSize.Width=100
+RMData.TextArea.PreferredSize.Height=50
+RMData.TextArea.MinimumSize.Width=100
+RMData.TextArea.MinimumSize.Height=30
+RMData.TextArea.MaximumSize.Width=100
+RMData.TextArea.MaximumSize.Height=80
+
+#PDM????????????????????????????????????????#??
+410.PDM.LibCodeName=\u7269\u54c1\#\u9644\u5f55
+#???????????
+410.PDM.item.url=http://127.0.0.1:36014/codeApplySwingController/getRMLibByName
+#???????????
+410.PDM.clsfTemplate.url=http://127.0.0.1:36014/codeApplySwingController/getUsedTemplateByClassifyOid
+
+#???????????
+410.PDM.leftClsfNode.url=http://127.0.0.1:36014/codeApplySwingController/selectCodeClassifyVOByParentId
+#
+410.PDM.leftdescLibNode.url=http://127.0.0.1:36014/codeApplySwingController/getRMTypeByDescAndLib
+
+410.PDM.rule.url=http://127.0.0.1:36014/codeApplySwingController/getCodeRuleByClassifyFullInfo
+
+410.PDM.attrKeyValue.url=http://127.0.0.1:36014/codeApplySwingController/listComboboxItems
+
diff --git a/Source/UBCS/ubcs-codeApply/src/main/resources/properties/tt.json b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/tt.json
new file mode 100644
index 0000000..3712a56
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/tt.json
@@ -0,0 +1 @@
+{"type":"鍒嗙被浠e彿","set":"鏈�灏忓眰","change":"鍚�","injectNum":4}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/pom.xml b/Source/UBCS/ubcs-service/ubcs-code/pom.xml
index abf2d37..536ad03 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/pom.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -173,6 +173,14 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>8</source>
+ <target>8</target>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java
new file mode 100644
index 0000000..864a2a9
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java
@@ -0,0 +1,113 @@
+package com.vci.ubcs.code.controller;
+
+import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
+import com.vci.ubcs.code.service.ICodeClassifyService;
+import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
+import com.vci.ubcs.code.service.MdmEngineService;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 涓婚搴撳畾涔夎〃 鎺у埗鍣�
+ *
+ * @author xiejun
+ * @since 2023-07-24
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/codeApplySwingController")
+@Api(value = "涓婚搴撳畾涔夎〃", tags = "涓婚搴撳畾涔夎〃鎺ュ彛")
+public class CodeApplySwingController {
+ /***
+ * 鍒嗙被鏈嶅姟瀵硅薄
+ */
+ private final ICodeClassifyService codeClassifyService;
+ /***
+ * 鏁版嵁鎿嶄綔鏈嶅姟瀵硅薄
+ */
+ private final MdmEngineService mdmEngineService;
+ /***
+ * 妯℃澘灞炴�ф湇鍔�
+ */
+ private final ICodeClassifyTemplateAttrService codeClstempattrService;
+ /**
+ * 鑾峰彇搴撹妭鐐逛俊鎭�
+ * @param libName 搴撹妭鐐瑰悕绉�
+ * @return 涓婚搴撳垎绫绘樉绀烘爲
+ */
+ @GetMapping("/getRMLibByName")
+ public R<List<CodeClassifyVO>> getRMLibByName(String libName) {
+ List<CodeClassifyVO> codeClassifyVOList=codeClassifyService.getRMLibByName(libName);
+ return R.data(codeClassifyVOList) ;
+ }
+
+ /***
+ * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅
+ * @param desc
+ * @param codeLibName
+ * @return
+ */
+ @GetMapping("/getRMTypeByDescAndLib")
+ public R<List<CodeClassifyVO>> getRMTypeByDescAndLib(String desc,String codeLibName) {
+ List<CodeClassifyVO> codeClassifyVOList=codeClassifyService.getRMTypeByDescAndLib(desc,codeLibName);
+ return R.data(codeClassifyVOList) ;
+ }
+
+ /**
+ * 涓婚搴撳垎绫绘爲
+ * @param parentId 鏍戝舰鏌ヨ瀵硅薄
+ * @return 涓婚搴撳垎绫绘樉绀烘爲
+ */
+ @GetMapping("/selectCodeClassifyVOByParentId")
+ public R<List<CodeClassifyVO>> selectCodeClassifyVOByParentId(String parentId) {
+ List<CodeClassifyVO> codeClassifyVOList =codeClassifyService.selectCodeClassifyVOByParentId(parentId);
+ return R.data(codeClassifyVOList);
+ }
+
+ /**
+ * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
+ * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+ * @return 妯℃澘鐨勬樉绀哄璞�
+ */
+ @GetMapping("/getUsedTemplateByClassifyOid")
+ public R<CodeClassifyTemplateVO> getUsedTemplateByClassifyOid(String codeClassifyOid){
+ CodeClassifyTemplateVO codeClassifyTemplateVO=mdmEngineService.getUsedTemplateByClassifyOid(codeClassifyOid);
+ return R.data(codeClassifyTemplateVO);
+ }
+
+ /***
+ * 鏍规摎鍒嗙被oid鑾峰彇瑙勫垯淇℃伅
+ * @param codeClassId
+ * @return
+ */
+ @GetMapping("/getCodeRuleByClassifyFullInfo")
+ public R<CodeRuleVO> getCodeRuleByClassifyFullInfo(String codeClassId){
+ CodeRuleVO codeRuleVO=new CodeRuleVO();
+ CodeClassifyFullInfoBO classifyFullInfo = codeClassifyService.getClassifyFullInfo(codeClassId);
+ if(classifyFullInfo!=null) {
+ codeRuleVO = mdmEngineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
+ }
+ return R.data(codeRuleVO);
+ }
+
+ /***
+ * 鏍规嵁灞炴�ц幏鍙栨灇涓惧��
+ * @param oid
+ * @return
+ */
+ @GetMapping("/listComboboxItems")
+ public R<List<KeyValue>> listComboboxItems(String oid){
+ List<KeyValue> keyValueList=mdmEngineService.listComboboxItems(codeClstempattrService.getObjectByOid(oid));
+ return R.data(keyValueList);
+ }
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
index 6f30181..3772ae2 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -117,4 +117,35 @@
CodeClassify selectByIdRel(@Param("oid") String oid);
+ /**
+ * 鏍规嵁鐖惰妭鐐筰d鏌ヨ褰撳墠鑺傜偣瀛愯妭鐐规暟鎹�
+ *
+ * @param parentOid 鍒嗙被鐨勪富閿�
+ * @return 鏁版嵁闆嗗悎
+ */
+ List<CodeClassify> selectCodeClassifyDOByParentId(@Param("parentOid")String parentOid,@Param("tenantId") String tenantId);
+
+ /***
+ * 鏍规嵁搴撹妭鐐瑰悕绉拌幏鍙栧垎绫�
+ * @param libNames
+ * @param lcstatus
+ * @param tenantId
+ * @return
+ */
+ List<CodeClassify> getRMLibByName(List<String> libNames,@Param("lcstatus")String lcstatus,@Param("tenantId") String tenantId);
+ /***
+ * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅
+ * @param desc
+ * @param codeLibName
+ * @return
+ */
+ List<CodeClassify> getRMTypeByDesc(@Param("desc")String desc,@Param("lcstatus")String lcstatus,@Param("tenantId") String tenantId);
+
+ /***
+ * 鏍规嵁褰撳墠鍒嗙被鑾峰彇涓婄骇鍒嗙被淇℃伅
+ * @param oid
+ * @param tenantId
+ * @return
+ */
+ List<CodeClassify> selectAllParenClassifytByOid(@Param("oid")String oid,@Param("tenantId") String tenantId);
}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
index b19bd72..78c532e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
@@ -270,4 +270,27 @@
* @return 涓暟
*/
int countChildrenByClassifyOid(String codeClassifyOid);
+
+ /***
+ * 鏍规嵁鐖惰妭鐐规煡璇笅绾у彾瀛愯妭鐐�
+ * @param parentId
+ * @return
+ */
+ List<CodeClassifyVO> selectCodeClassifyVOByParentId(String parentId);
+
+ /***
+ * 鏍规嵁搴撹妭鐐瑰悕绉拌幏鍙栧垎绫�
+ * @param libName
+ * @return
+ */
+ List<CodeClassifyVO> getRMLibByName(String libName);
+
+ /***
+ * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅
+ * @param desc
+ * @param codeLibName
+ * @return
+ */
+ List<CodeClassifyVO> getRMTypeByDescAndLib(String desc,String codeLibName);
+
}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index 16f1e3f..1f12c5a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -528,6 +528,57 @@
List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
return voList;
}
+
+ /***
+ *
+ * @param parentOid
+ * @return
+ */
+ @Override
+ public List<CodeClassifyVO> selectCodeClassifyVOByParentId(String parentOid) {
+ List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyDOByParentId(parentOid,AuthUtil.getTenantId());
+ List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
+ return voList;
+ }
+
+ /**
+ * 鏍规嵁搴撹妭鐐瑰悕绉拌幏鍙栧垎绫�
+ * @param libName
+ * @return
+ */
+ @Override
+ public List<CodeClassifyVO> getRMLibByName(String libName) {
+ List<String> libNameList=new ArrayList<>();
+ if(StringUtils.isNotBlank(libName)){
+ libNameList=VciBaseUtil.str2List(libName);
+ }
+ List<CodeClassify> doList =codeClassifyMapper.getRMLibByName(libNameList,"Enabled",AuthUtil.getTenantId());
+ List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
+ return voList;
+ }
+
+ /***
+ * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅
+ * @param desc
+ * @param codeLibName
+ * @return
+ */
+ @Override
+ public List<CodeClassifyVO> getRMTypeByDescAndLib(String desc, String codeLibName) {
+ List<CodeClassify> doList =codeClassifyMapper.getRMTypeByDesc(desc,"Enabled",AuthUtil.getTenantId());
+ if (CollectionUtils.isEmpty(doList)) {
+ return new LinkedList<CodeClassifyVO>();
+ }
+ CodeClassify codeClassify=doList.get(0);
+ List<CodeClassify> codeClassifyList=codeClassifyMapper.selectAllParenClassifytByOid(codeClassify.getOid(),AuthUtil.getTenantId());
+ CodeClassify currentLib = codeClassifyList.get(codeClassifyList.size() - 1);
+ if (!currentLib.getName().equals(codeLibName)) {
+ return new ArrayList<>();
+ }
+ List<CodeClassifyVO> voList = codeClassifyDO2VOs(codeClassifyList);
+ return voList;
+ }
+
/**
* 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
*
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index dce9452..8015984 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -319,4 +319,172 @@
WHERE PCC.OID IN (${oids})
</select>
+ <select id="selectCodeClassifyDOByParentId" resultMap="plCodeClassifyResultMap">
+ select codeclassify0.OWNER as owner,
+ codeclassify0.BTMTYPEID as btmtypeid,
+ codeclassify0.CREATOR as creator,
+ codeclassify0.CREATETIME as createtime,
+ codeclassify0.LASTMODIFIER as lastmodifier,
+ codeclassify0.DESCRIPTION as description,
+ codeclassify0.ORDERNUM as ordernum,
+ codeclassify0.CODERULEOID as coderuleoid,
+ codeclassify0.OID as oid,
+ codeclassify0.BTMNAME as btmname,
+ codeclassify0.BTMTYPENAME as btmtypename,
+ codeclassify0.CODEKEYATTRREPEATOID as codekeyattrrepeatoid,
+ codeclassify0.PARENTCODECLASSIFYOID as parentcodeclassifyoid,
+ codeclassify0.NAME as name,
+ codeclassify0.LASTMODIFYTIME as lastmodifytime,
+ codeclassify0.ID as id,
+ codeclassify0.CODERESEMBLERULEOID as coderesembleruleoid,
+ codeclassify0.LCSTATUS as lcstatus,
+ codeclassify0.TS as ts,
+ codeclassify0.TENANT_ID as tenantId ,
+ coderuleoid.name as codeRuleOidName,
+ codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName,
+ coderesembleruleoid.name as codeResembleRuleOidName
+ from pl_code_classify codeclassify0
+ left join pl_code_rule coderuleoid
+ on codeclassify0.codeRuleOid = coderuleoid.oid
+ left join pl_code_keyattrrepeat codekeyattrrepeatoid
+ on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
+ left join pl_code_resemblerule coderesembleruleoid
+ on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
+ where 1=1
+ <if test="parentOid != null and parentOid != ''">
+ and codeclassify0.parentcodeclassifyoid = #{parentOid}
+ </if>
+ <if test="parentOid == null or parentOid == ''">
+ and codeclassify0.parentcodeclassifyoid is null
+ </if>
+
+ <if test="tenantId != null and tenantId != ''">
+ codeclassify0.tenant_id = #{tenantId}
+ </if>
+ order by id asc
+ </select>
+ <select id="getRMLibByName" resultMap="plCodeClassifyResultMap">
+ select codeclassify0.OWNER as owner,
+ codeclassify0.BTMTYPEID as btmtypeid,
+ codeclassify0.CREATOR as creator,
+ codeclassify0.CREATETIME as createtime,
+ codeclassify0.LASTMODIFIER as lastmodifier,
+ codeclassify0.DESCRIPTION as description,
+ codeclassify0.ORDERNUM as ordernum,
+ codeclassify0.CODERULEOID as coderuleoid,
+ codeclassify0.OID as oid,
+ codeclassify0.BTMNAME as btmname,
+ codeclassify0.BTMTYPENAME as btmtypename,
+ codeclassify0.CODEKEYATTRREPEATOID as codekeyattrrepeatoid,
+ codeclassify0.PARENTCODECLASSIFYOID as parentcodeclassifyoid,
+ codeclassify0.NAME as name,
+ codeclassify0.LASTMODIFYTIME as lastmodifytime,
+ codeclassify0.ID as id,
+ codeclassify0.CODERESEMBLERULEOID as coderesembleruleoid,
+ codeclassify0.LCSTATUS as lcstatus,
+ codeclassify0.TS as ts,
+ codeclassify0.TENANT_ID as tenantId ,
+ coderuleoid.name as codeRuleOidName,
+ codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName,
+ coderesembleruleoid.name as codeResembleRuleOidName
+ from pl_code_classify codeclassify0
+ left join pl_code_rule coderuleoid
+ on codeclassify0.codeRuleOid = coderuleoid.oid
+ left join pl_code_keyattrrepeat codekeyattrrepeatoid
+ on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
+ left join pl_code_resemblerule coderesembleruleoid
+ on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
+ where codeclassify0.lcstatus = #{lcstatus}
+ and codeclassify0.parentcodeclassifyoid is null
+ <if test="libNames != null and ! libNames.isEmpty() and libNames.size() > 0">
+ and codeclassify0.name in
+ <foreach item="item" index="index" collection="libNames" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="tenantId != null and tenantId != ''">
+ codeclassify0.tenant_id = #{tenantId}
+ </if>
+ order by id asc
+ </select>
+
+ <select id="getRMTypeByDesc" resultMap="plCodeClassifyResultMap">
+ select codeclassify0.OWNER as owner,
+ codeclassify0.BTMTYPEID as btmtypeid,
+ codeclassify0.CREATOR as creator,
+ codeclassify0.CREATETIME as createtime,
+ codeclassify0.LASTMODIFIER as lastmodifier,
+ codeclassify0.DESCRIPTION as description,
+ codeclassify0.ORDERNUM as ordernum,
+ codeclassify0.CODERULEOID as coderuleoid,
+ codeclassify0.OID as oid,
+ codeclassify0.BTMNAME as btmname,
+ codeclassify0.BTMTYPENAME as btmtypename,
+ codeclassify0.CODEKEYATTRREPEATOID as codekeyattrrepeatoid,
+ codeclassify0.PARENTCODECLASSIFYOID as parentcodeclassifyoid,
+ codeclassify0.NAME as name,
+ codeclassify0.LASTMODIFYTIME as lastmodifytime,
+ codeclassify0.ID as id,
+ codeclassify0.CODERESEMBLERULEOID as coderesembleruleoid,
+ codeclassify0.LCSTATUS as lcstatus,
+ codeclassify0.TS as ts,
+ codeclassify0.TENANT_ID as tenantId ,
+ coderuleoid.name as codeRuleOidName,
+ codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName,
+ coderesembleruleoid.name as codeResembleRuleOidName
+ from pl_code_classify codeclassify0
+ left join pl_code_rule coderuleoid
+ on codeclassify0.codeRuleOid = coderuleoid.oid
+ left join pl_code_keyattrrepeat codekeyattrrepeatoid
+ on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
+ left join pl_code_resemblerule coderesembleruleoid
+ on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
+ where 1=1 and codeclassify0.lcstatus = #{lcstatus}
+ <if test="desc != null">
+ and codeclassify0.DESCRIPTION = #{desc}
+ </if>
+
+ <if test="tenantId != null and tenantId != ''">
+ and codeclassify0.tenant_id = #{tenantId}
+ </if>
+ order by id asc
+ </select>
+
+ <select id="selectAllParenClassifytByOid" resultMap="plCodeClassifyResultMap">
+ select codeclassify0.OWNER as owner,
+ codeclassify0.BTMTYPEID as btmtypeid,
+ codeclassify0.CREATOR as creator,
+ codeclassify0.CREATETIME as createtime,
+ codeclassify0.LASTMODIFIER as lastmodifier,
+ codeclassify0.DESCRIPTION as description,
+ codeclassify0.ORDERNUM as ordernum,
+ codeclassify0.CODERULEOID as coderuleoid,
+ codeclassify0.OID as oid,
+ codeclassify0.BTMNAME as btmname,
+ codeclassify0.BTMTYPENAME as btmtypename,
+ codeclassify0.CODEKEYATTRREPEATOID as codekeyattrrepeatoid,
+ codeclassify0.PARENTCODECLASSIFYOID as parentcodeclassifyoid,
+ codeclassify0.NAME as name,
+ codeclassify0.LASTMODIFYTIME as lastmodifytime,
+ codeclassify0.ID as id,
+ codeclassify0.CODERESEMBLERULEOID as coderesembleruleoid,
+ codeclassify0.LCSTATUS as lcstatus,
+ codeclassify0.TS as ts,
+ codeclassify0.TENANT_ID as tenantId ,
+ coderuleoid.name as codeRuleOidName,
+ codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName,
+ coderesembleruleoid.name as codeResembleRuleOidName
+ from pl_code_classify codeclassify0
+ left join pl_code_rule coderuleoid
+ on codeclassify0.codeRuleOid = coderuleoid.oid
+ left join pl_code_keyattrrepeat codekeyattrrepeatoid
+ on codeclassify0.codeKeyAttrRepeatOid = codekeyattrrepeatoid.oid
+ left join pl_code_resemblerule coderesembleruleoid
+ on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
+ start with codeclassify0.oid=#{oid}
+ <if test="tenantId != null and tenantId != ''">
+ and codeclassify0.tenant_id = #{tenantId}
+ </if>
+ connect by prior PARENTCODECLASSIFYOID = codeclassify0.oid
+ </select>
</mapper>
--
Gitblit v1.9.3