From 4187374bbae66190e7eca6f42cc5e61cfae1637f Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期六, 12 八月 2023 13:33:18 +0800
Subject: [PATCH] PDM集成swing界面相关功能开发

---
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java                                 |   96 +++
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410MainPanel.java                       |  628 +++++++++++++++++--
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ListUtil.java                                 |  172 +++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml                         |    2 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchMainPanel.java                 |   88 ++
 Source/UBCS/ubcs-codeApply/src/test/java/tt.json                                                                    |   44 +
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java                               |    2 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java                               |    3 
 Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties                                            |    2 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410Dialog.java                          |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/FormulaServiceImpl.java             |    2 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeDataObject.java                          |    4 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchDialog.java                    |  168 +++++
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410.java                           |   16 
 Source/UBCS/ubcs-codeApply/pom.xml                                                                                  |    5 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java |   11 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java               |   64 +-
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/RMDataReferTempDialog.java                          |   11 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyPanelFor410ActionListener.java             |  146 ++++
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java             |   12 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplySwingController.java         |   75 ++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java            |    2 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/DataGrid.java                                |  115 +++
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchProvider.java                  |  116 +++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java          |    6 
 Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java                              |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/ComponentRule.java                    |   32 +
 27 files changed, 1,674 insertions(+), 154 deletions(-)

diff --git a/Source/UBCS/ubcs-codeApply/pom.xml b/Source/UBCS/ubcs-codeApply/pom.xml
index 04d6bcb..28cb216 100644
--- a/Source/UBCS/ubcs-codeApply/pom.xml
+++ b/Source/UBCS/ubcs-codeApply/pom.xml
@@ -50,6 +50,11 @@
         <artifactId>commons-collections4</artifactId>
         <version>4.1</version>
         </dependency>
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils-core</artifactId>
+            <version>1.8.3</version>
+        </dependency>
     </dependencies>
     <distributionManagement>
         <repository>
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java
index b4c284b..5aeab8e 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java
@@ -1,7 +1,5 @@
 package com.vci.ubcs.codeapply;
 
-import com.vci.base.ui.swing.VCISwingUtil;
-import com.vci.base.ui.swing.components.VCIJButton;
 import com.vci.base.ui.swing.components.VCIJLabel;
 import com.vci.base.ui.swing.components.VCIJPanel;
 import com.vci.base.ui.swing.components.VCIJTextField;
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
index 11b60ee..0694d38 100644
--- 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
@@ -47,6 +47,7 @@
 	}
 	public CodeApplyFor410Dialog(Frame frame, String userName, String clsfName, String deptName, String[] libName){
 		super(frame, true);
+		VCISwingUtil.setClientMainFrame(frame);
 		try {
 			this.setModal(true);
 			parentComponet = frame;
@@ -62,6 +63,7 @@
 
 	public CodeApplyFor410Dialog(JDialog dialog, String userName, String clsfName, String deptName, String[] libName) {
 		super(dialog, true);
+		VCISwingUtil.setClientMainFrame(new Frame());
 		try {
 			this.setModal(true);
 			parentComponet = dialog;
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
index fbcbe95..d4bffac 100644
--- 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
@@ -1,10 +1,12 @@
 package com.vci.ubcs.codeapply;
 
+import com.alibaba.fastjson.JSONObject;
 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.corba.common.VCIError;
 import com.vci.ubcs.code.vo.pagemodel.*;
 import com.vci.ubcs.codeapply.object.*;
 import com.vci.ubcs.codeapply.swing.IntegerTextField;
@@ -17,6 +19,7 @@
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import com.vci.ubcs.system.user.entity.User;
+import io.swagger.models.auth.In;
 import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
 import org.apache.commons.collections4.CollectionUtils;
 
@@ -28,6 +31,7 @@
 import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.List;
@@ -81,10 +85,11 @@
 	private boolean isSpecialRuleFlag = false;
 	private String specialSectioName = "";
 	private VCIJPanel rulePal = new VCIJPanel();
-
+	private StringBuffer tempStr= new StringBuffer();//鍙彉鐮佹鐨勫��;
+	private  String  levelRes="";
 	private String[] specialSecVals = new String[0];
 	private RMDataTransmitObject transmitForRMData = null;
-
+	private CodeRuleVO codeRuleVO=null;
 	/**
 	 * 灞炴�D涓庡睘鎬у搴旂殑鎺т欢涔嬮棿鐨勬槧灏凪AP
 	 */
@@ -148,7 +153,7 @@
 		Map<String,String> condtionMap=new HashMap<>();
 		condtionMap.put("codeClassId", rmType.getOid());
 		R r= HttpUtil.sendGet(url+"/getCodeRuleByClassifyFullInfo",condtionMap,new HashMap<>());
-		CodeRuleVO codeRuleVO=new CodeRuleVO();
+		codeRuleVO=new CodeRuleVO();
 		if(r.isSuccess()){
 			Object object= r.getData();
 			if(object!=null) {
@@ -667,6 +672,17 @@
 				} else
 						//鏄紩鐢ㄧ爜娈�
 					if (secObj.getSecType().equals("coderefersec")) {
+
+						if (!secCombo.isFlag()){
+							secCombo.setFlag(true);
+							secCombo.getSearchBtn().setVisible(true);
+							secCombo.getSearchBtn().addActionListener(new ActionListener() {
+								@Override
+								public void actionPerformed(ActionEvent e) {
+									doSearch(secCombo,secObj);
+								}
+							});
+						}
 					/*RefSecObject refObj = getRefSecObj(secObj.getId());
 					DefaultComboBoxModel aModel = getRefSecComboBox(refObj);
 					secCombo.setModel(aModel);
@@ -695,7 +711,7 @@
 
 				*/} else
 					//灞傜骇鐮佹鐮佸�兼樉绀虹殑鏄�夋嫨鐨勪唬鐮侀」鐨勫悕绉�
-					if(secObj.getSecType().equals("coderefersec")) {
+					if(secObj.getSecType().equals("codelevelsec")) {
 						CodeClassify rmObj = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
 						secCombo.addItem(rmObj);
 					} else {
@@ -722,12 +738,12 @@
 		RMDataTransmitObject transmit=new RMDataTransmitObject();
 		transmit.setLibId(libId);
 		transmit.setClassifyId(classifyId);
-		CodeClassify rmType = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
-		transmit.setRmTypeObject(rmType);
+		CodeClassify codeClassify = (CodeClassify) this.transTreeObject.getCurrentTreeNode().getObj();
+		transmit.setRmTypeObject(codeClassify);
 		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.setClassifyCode(codeClassify.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);
@@ -792,7 +808,7 @@
 					lbl.setToolTipText("鐐瑰嚮姝ゅ鑾峰彇妯℃澘瀵瑰簲瑙勫垯鐨勫��");
 					lbl.addMouseListener(new MouseAdapter() {
 						public void mouseClicked(MouseEvent e){
-						//	getComptAttrValue(attrObj,attrIdToCtrlMaps,transmitForRMData.getTempPropObjsList());
+						getComptAttrValue(attrObj,attrIdToCtrlMaps);
 
 						}
 					});
@@ -866,77 +882,6 @@
 		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鐨勫睘鎬у垪琛�
@@ -1201,16 +1146,56 @@
 		return new GridBagConstraints(gridx, gridy, gridwidth, gridheight,weightx, weighty, anchor, fill, new Insets(padxy, padxy, padxy,padxy), padxy, padxy);
 	}
 
+	/**鏍规嵁灞炴�х粍鍚堣鍒欒幏鍙栧睘鎬х殑鍊� **/
+	private void getComptAttrValue( CodeClassifyTemplateAttrVO  tempPropObj, LinkedHashMap<String, JComponent> attrIdToCtrlMaps) {
+		Map<String,String> dataMap=new HashMap<>();
+		Map<String,String> condtionMap=new HashMap<>();
+		attrIdToCtrlMaps.forEach((key,compt)->{
+			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;
+				}
+			}
+			dataMap.put(key,value);
+			condtionMap.put("dataMap["+key+"]",value);
+		});
+		condtionMap.put("componentRuleValue",tempPropObj.getComponentRule());
+		R r= HttpUtil.sendGet(url+"/getValueByFormula",condtionMap,new HashMap<>());
+		String value="";
+		if(r.isSuccess()){
+			value= r.getData().toString();
+			if(attrIdToCtrlMaps.containsKey(tempPropObj.getId())){
+				JComponent comp = attrInnerNameToCtrlMaps.get(tempPropObj.getId());
+				if(comp instanceof JTextComponent) {
+					((JTextComponent) comp).setText(value);
+				}
+			}
+			Object object= r.getData();
+			if(object!=null) {
+				value= object.toString();
 
-
-	/**
-	 * 鏍规嵁寮曠敤妯℃澘鐨刬d鑾峰彇寮曠敤妯℃澘瀵硅薄鍖呭惈鐨勬暟鎹�
-	 * <p>Description: </p>
-	 *
-	 * @author liujw
-	 * @time 2012-11-29
-	 * @param //referTempId 寮曠敤妯℃澘id
-	 */
+			}
+		}else{
+			VCIOptionPane.showMessage(this,r.getMsg());
+		}
+	}
+		/**
+		 * 鏍规嵁寮曠敤妯℃澘鐨刬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) {
 		// 鏈┖绐楀彛璋冪敤 鏈夊彲鑳芥潵鑷袱澶�
@@ -1223,7 +1208,11 @@
 			ownerDialog.setSize(880, 500);
 		}*/
 		//final String referTempId = tempPropObj.getReferBtmId();
-		final RMDataReferTempDialog dialog = new RMDataReferTempDialog(this,tempPropObj);
+		if(StringUtils.isBlank(tempPropObj.getReferConfig())){
+			VCIOptionPane.showMessage(this,"鍙傜収閰嶇疆淇℃伅涓嶆纭�,璇锋牳瀵癸紒");
+			return;
+		}
+		final RMDataReferTempDialog dialog = new RMDataReferTempDialog(this,tempPropObj.getReferConfig());
 		dialog.setDialogCallback(new Runnable() {
 			@Override
 			public void run() {
@@ -1268,6 +1257,435 @@
 		dialog.setVisible(true);
 	}
 
+	private void doSearch(VCIJComboxBox comboxBox,CodeBasicSecVO secObj){
+		if(StringUtils.isBlank(secObj.getReferConfig())){
+			VCIOptionPane.showMessage(this,"鍙傜収閰嶇疆淇℃伅涓嶆纭�,璇锋牳瀵癸紒");
+			return;
+		}
+		final RMDataReferTempDialog dialog = new RMDataReferTempDialog(this,secObj.getReferConfig());
+		dialog.setDialogCallback(new Runnable() {
+			@Override
+			public void run() {
+				KeyValue keyValue=new KeyValue();
+				keyValue= dialog.getKeyValue();
+				//for(CodeClassifyTemplateAttrVO obj : tempPropList) {
+				if (keyValue != null) {
+					AttrRangObjectWarper wrapper = new AttrRangObjectWarper(keyValue);
+					comboxBox.getModel().setSelectedItem(wrapper);
+				}
+			}
+		});
+		//dialog.initDialogSize(ownerDialog.getWidth(), ownerDialog.getHeight());
+		Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
+		int x = dime.width/2 - 400;
+		int y = dime.height/2 -300;
+		dialog.setLocation(x, y);
+		dialog.setSize(new Dimension(900, 600));
+		dialog.setModal(true);
+		dialog.setVisible(true);
+
+	}
+
+	/**
+	 * 妫�鏌ョ敵璇风爜鍊肩殑鏁版嵁濉啓鏄惁瀹屾暣
+	 * 1.妫�鏌ュ悇涓爜娈电殑鍊兼槸鍚﹀凡缁忓~鍐�
+	 * 2.濡傛灉鏈夋棩鏈熺爜娈碉紝骞朵笖鏃ユ湡鐮佹鐨勫�间负鍙慨鏀癸紝闇�鏍¢獙淇敼鍚庣殑鏃ユ湡鐨勬牸寮忔槸鍚︾鍚�
+	 * @return
+	 */
+	public boolean checkIsAllowed(){
+		Iterator<Integer> ite = compMaps.keySet().iterator();
+		JComponent compt = null;
+		/**鏍¢獙1锛氭鏌ュ悇涓爜娈电殑鍊兼槸鍚﹀凡缁忓~鍐欏畬鎴�**/
+		while(ite.hasNext()) {
+			int k = ite.next();
+			//濡傛灉鏄眰绾х爜锛岃烦鍑轰笉杩涜鍒ゆ柇
+			if(k == levelPositon) {
+				continue;
+			}
+			compt = compMaps.get(k);
+			if(compt instanceof VCIJComboBox) {
+				Object obj = ((VCIJComboBox) compt).getSelectedItem();
+				if(obj == null || "".equals(obj)) {
+					VCIOptionPane.showMessageDialog(this, "璇峰皢淇℃伅濉啓瀹屾暣锛�");
+					return false;
+				}
+			}
+		}
+
+		int len = columnSecMap.size();
+		for (int i = 0; i < len; i++) {
+			CodeBasicSecVO secObj = columnSecMap.get(i);
+			String cType = secObj.getSecType();
+			/**鏍¢獙2锛氬鏋滄湁鏃ユ湡鐮佹锛屽苟涓旀棩鏈熺爜娈电殑鍊间负鍙慨鏀癸紝闇�鏍¢獙淇敼鍚庣殑鏃ユ湡鐨勬牸寮忔槸鍚︾鍚�**/
+			if (cType.equals("codedatesec")) {
+				String df =secObj.getCodeDateFormatStr();
+				SimpleDateFormat dateFormate = new SimpleDateFormat(df);
+				//String curDate = dateFormate.format(Calendar.getInstance().getTime());
+				dateFormate.setLenient(false);//璁剧疆涓ユ牸鏍¢獙
+				String dateStr = (String) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
+				try {
+					dateFormate.parse(dateStr);
+				} catch (ParseException e) {
+					VCIOptionPane.showMessageDialog(this, "淇敼鍚庣殑鏃ユ湡鏍煎紡璺熸棩鏈熺爜娈佃缃殑鏍煎紡涓嶅尮閰嶏紝璇蜂慨鏀癸紒");
+					return false;
+				}
+				/**鏍¢獙涓夛細鍙彉鐮佹鐨勬牎楠�**/
+			} else if (cType .equals( "codevariablesec")) {
+				 tempStr = new StringBuffer();
+				String codeSecLength =secObj.getCodeSecLength();
+				int secLen= Integer.parseInt(codeSecLength);
+				//鍙栧嚭鐢ㄦ埛杈撳叆鐨勫��
+				String varStr = (String) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
+				if(varStr.length() >secLen){
+					VCIOptionPane.showMessageDialog(this, "杈撳叆鐨勫彲鍙樼爜鍊艰秴鍑轰簡璇ョ爜娈电殑瀹氫箟闀垮害"+codeSecLength+"璇蜂慨鏀�");
+					return false;
+				}
+				//濡傛灉鏄浐瀹氶暱搴︼紝鍒欓渶瑕佽�冭檻濉厖鍜岃ˉ浣�
+//				if(varObj.getLenType() == SectionConstant.SectionLengthType.VARLEN) {
+				if(varStr.length() < secLen) {//娌℃湁杈惧埌鏈�澶ч暱搴�
+					if(secObj.getCodeFillType().equals("L")) {//濡傛灉闇�瑕佸乏濉厖
+						tempStr = new StringBuffer();
+						for(int j=0;j<secLen - varStr.length();j++) {
+							tempStr.append(secObj.getCodeFillSeparator());
+						}
+						tempStr.append(varStr);
+					} else if(secObj.getCodeFillType().equals("R")) {//濡傛灉闇�瑕佸彸濉厖
+						tempStr = new StringBuffer();
+						tempStr.append(varStr);
+						for(int j=0;j<secLen- varStr.length();j++) {
+							tempStr.append(secObj.getCodeFillSeparator());
+						}
+					} else {
+						tempStr = new StringBuffer();
+						tempStr.append(varStr);
+					}
+				} else {
+					tempStr = new StringBuffer();
+					tempStr.append(varStr);
+				}
+//				}
+				/**灞傜骇鐮佹鐨勬牎楠�**/
+			} else if (cType.equals("codelevelsec")) {
+				Integer levelVal= secObj.getCodeLevelValue();
+				levelRes = getRuleLevelCodeFromTree(secObj.getCodeLevelValue());
+				if("".equals(levelRes)) {
+//					setBuildingHasError(true);
+					if(secObj.getCodeLevelType().equals("min")) {
+						VCIOptionPane.showError(this, "褰撳墠缂栫爜椤硅鍒欎腑鍖呭惈灞傜骇鐮佹锛屽苟涓斿眰绾ц缃负鏈�灏忓眰锛岄�夋嫨鐨勫綋鍓嶈妭鐐瑰寘鍚瓙鑺傜偣锛屼笉鍏佽鍦ㄥ綋鍓嶅垎绫讳笅杩涜鐮佸�肩敵璇凤紒");
+					}else {
+						VCIOptionPane.showError(this, "璇疯嚦灏戝湪绗� " + levelVal + "灞傦紙鍒嗙被锛夋坊鍔犳暟鎹紒锛堢紪鐮侀」鑺傜偣涓嶇畻)" +
+							"\n锛堟敞鎰忥細濡傛灉绠椾笂缂栫爜椤硅妭鐐癸紝鍒欒嚦灏戝簲璇ュ湪绗� " + (levelVal + 1) + " 灞傦紙鍒嗙被锛夋坊鍔犳暟鎹紒锛�");
+					}
+
+					return false;
+				}
+			} else if(cType  .equals("codeclassifysec")) {//鍒嗙被鐮佹鐮佸�兼坊鍔犱簡绌哄�硷紝闇�瑕佺壒娈婂垽鏂竴涓�
+				// update by xchao 2013.07.09
+//				ClsfCodeValObject obj = (ClsfCodeValObject) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
+				// 鍒嗙被鐮佺爜鍊间负绌烘椂锛屼篃鍙互鐢宠缂栫爜
+//				if("".equals(obj.getValue())) {
+//					VCIOptionPane.showMessageDialog(this, "璇烽�夋嫨鐮佹锛�"+secObj.getName()+" 瀵瑰簲鐨勭爜鍊�");
+//					return false;
+//				}
+			} else if(cType .equals( "codefixedsec")) {//鍥哄畾鐮佹鐮佸�兼坊鍔犱簡绌哄�硷紝闇�瑕佺壒娈婂垽鏂竴涓�
+				CodeFixedValueVO obj = (CodeFixedValueVO) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
+				if("".equals(obj.getId())) {
+					VCIOptionPane.showMessageDialog(this, "璇烽�夋嫨鐮佹锛�"+secObj.getName()+" 瀵瑰簲鐨勭爜鍊�");
+					return false;
+				}
+			} else if(cType.equals("coderefersec")) {//寮曠敤鐮佹鐮佸�兼坊鍔犱簡绌哄�硷紝闇�瑕佺壒娈婂垽鏂竴涓�
+				KeyValue keyValue = ((AttrRangObjectWarper)((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem()).getKeyValue();
+				if(keyValue!=null&&("".equals(keyValue.getValue()))) {
+					VCIOptionPane.showMessageDialog(this, "璇烽�夋嫨鐮佹锛�"+secObj.getName()+" 瀵瑰簲鐨勭爜鍊�");
+					return false;
+				}
+			}
+		}
+
+		return true;
+	}
+	private LinkedList<VCIBaseTreeNode> parentTreeNodeListDesc = new LinkedList<VCIBaseTreeNode>();
+	private LinkedList<VCIBaseTreeNode> parentTreeNodeListAsc = new LinkedList<VCIBaseTreeNode>();
+	private String getRuleLevelCodeFromTree(int level){
+		String res = null;
+		TransmitTreeObject CodeClassifyTreeObj = this.transTreeObject;
+		if(CodeClassifyTreeObj != null){
+			VCIBaseTreeNode node = CodeClassifyTreeObj.getCurrentTreeNode();
+			parentTreeNodeListDesc.clear();
+			//姣忔杩涜鐢宠鏃堕兘閲嶆柊鍒濆鍖栧瓨鍌ㄦ爲缁撴瀯鐨勫璞�
+			parentTreeNodeListAsc.clear();
+			calcParentTreeNode(node);
+			for(int i = parentTreeNodeListDesc.size() - 1; i >=0; i--){
+				parentTreeNodeListAsc.add(parentTreeNodeListDesc.get(i));
+			}
+			/***鏍¢獙锛氱敵璇风爜鍊兼椂锛屽眰绾х殑澶勭悊 level = 0 鏍囩ず浠绘剰灞傦紝level = 99 鏍囩ず鏈�灏忓眰  ,鍏跺畠鎸囨寚瀹氬眰BEGIN**/
+			if(level == 0) {
+				res = ((CodeClassify)node.getObj()).getId();
+				/***level == 99 骞朵笖鏄彾瀛愯妭鐐规椂锛屾墠鍏佽杩涜缂栫爜鐢宠**/
+			} else if(level == 99) {
+				if(checkIsHasSonCodeClassify(node)) {
+					res = ((CodeClassify)node.getObj()).getId();
+				}else {
+					res = "";
+				}
+			} else if(level == 99 && !checkIsHasSonCodeClassify(node)){
+				res = "";
+			} else if(parentTreeNodeListAsc.size() > level + 1) {
+				VCIBaseTreeNode levelNode = parentTreeNodeListAsc.get(level + 1);
+				CodeClassify codeClassify = (CodeClassify) levelNode.getObj();
+				res = codeClassify.getId();
+			} else {
+				res = "";
+			}
+			/**************************************END**********************************/
+		}
+		return res;
+	}
+	/**
+	 * 妫�鏌ラ�夋嫨鐨勫綋鍓嶅垎绫绘槸鍚︽湁瀛愬垎绫�
+	 * <p>Description: </p>
+	 *
+	 * @author Administrator
+	 * @time 2013-4-10
+	 * @return
+	 */
+	public boolean checkIsHasSonCodeClassify(VCIBaseTreeNode node) {
+		int count = 0;
+		if(node.isExpand()) {
+			count = node.getChildCount();
+		} else {
+			//鍒欓渶瑕佸幓鏌ヨ涓嬮潰鐨勬槸鍚﹀瓨鍦�
+			CodeClassify codeClassify = (CodeClassify) node.getObj();
+			codeClassify.getOid();
+			Map<String,String> condtionMap=new HashMap<>();
+			condtionMap.put("codeClassId", codeClassify.getOid());
+			R r= HttpUtil.sendGet(url+"/countChildrenByClassifyOid",condtionMap,new HashMap<>());
+			if(r.isSuccess()){
+				Object object= r.getData();
+				count=(int)object;
+			}
+		}
+		if(count <= 0) {
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * 鎻愪緵璋冪敤鑰呰幏鍙栧悇涓爜娈电殑鎷兼帴鍊�
+	 * <p>Description: </p>
+	 *
+	 * @author xf
+	 * @time 2012-5-28
+	 * @return
+	 */
+	public List<KeyValue> getSectionValues(){
+		List<KeyValue> keyValueList=new ArrayList<>();
+		if(getCodeRuleVO()!=null) {
+			List<CodeBasicSecVO> codeBasicSecVOList = this.getCodeRuleVO().getSecVOList();
+			if (!CollectionUtils.isEmpty(codeBasicSecVOList)) {
+				for (int i = 0; i < codeBasicSecVOList.size(); i++) {
+					CodeBasicSecVO secObj=codeBasicSecVOList.get(i);
+					KeyValue keyValue = new KeyValue();
+					String cVal = "";
+					String secObjOid = secObj.getOid();
+					String secType = secObj.getSecType();
+					/***濡傛灉绯荤粺閫夋嫨鐨勬槸鐗规畩瑙勫垯锛屽嵆宸ヨ鍥炬牱浠g爜瑙勫垯锛岀粍鍒唬鍙风爜娈佃嚜鍔ㄨ缃负绌�**Begin***/
+					if (isSpecialRuleFlag && secObj.getName().equals(specialSectioName)) {
+						cVal = "";
+						/**********************************End************************/
+					} else if (secType.equals("codedatesec")) {//鏃ユ湡鐮佹鐨勫��
+						cVal = (String) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem();
+					} else if (secType.equals("codevariablesec")) {//鍙彉鐮佹鐨勫��
+//						cVal = (String) ((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem();
+						cVal = tempStr.toString();
+					} else if (secType.equals("codeclassifysec")) {//鍒嗙被鐮佹鐮佸��
+						cVal = ((CodeClassifyValue) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem()).getOid();
+					} else if (secType.equals( "codefixedsec")) {//鍥哄畾鐮佹鐮佸��
+						cVal = ((CodeFixedValueVO) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem()).getId();
+					} else if (secType.equals("coderefersec")) {//寮曠敤鐮佹鐮佸��
+//					cVal = ((CodeValueObject)((VCIJComboBox)secAndComMap.get(secObj.getId())).getSelectedItem()).getPlcodeval();
+						KeyValue newKeyValue = ((AttrRangObjectWarper) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem()).getKeyValue();
+						cVal=newKeyValue.getValue();
+					/*} else if (secType == SectionConstant.SectionType.SECCHAR) {//鍒嗛殧绗�
+						cVal = secObj.getName();*/
+					} else if (secType.equals("codelevelsec")) {//灞傜骇鐮佹
+						cVal = levelRes;
+					} else if (secType.equals("codeserialsec")) {
+							continue;
+					} else {
+						cVal = (String) ((VCIJComboBox) secAndComMap.get(secObj.getId())).getSelectedItem();
+					}
+					keyValue.setKey(secObjOid);
+					keyValue.setValue(cVal);
+					keyValueList.add(keyValue);
+				}
+			}
+		}
+		return keyValueList;
+	}
+	/**
+	 * 鏍¢獙妯℃澘灞炴�т俊鎭槸鍚︽纭�
+	 * <p>Description: </p>
+	 *
+	 * @author Administrator
+	 * @time 2013-3-23
+	 * @return
+	 */
+	public String[][] checkInputValues() {
+		Map<String, String> attrNameMap = new LinkedHashMap<String, String>();
+		Map<String, String> tempProMap = new LinkedHashMap<String, String>();
+
+		// 鍚勫睘鎬х殑鍐呴儴鍚嶇О
+		LinkedList<String> listInnerNames = new LinkedList<String>();
+		// 瀛樺偍灞炴�х殑澶栭儴鍚嶇О
+		LinkedList<String> listOutNames = new LinkedList<String>();
+		// 鍚勫睘鎬у搴旂殑鏁版嵁鍊�
+		LinkedList<String> listValues = new LinkedList<String>();
+		// 鍚勫睘鎬х殑绫诲瀷
+		LinkedList<String> listDataTypes = new LinkedList<String>();
+		Map<String,CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOMap=transmitForRMData.getTempPropObjsList().stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
+		Iterator<String> keys = attrIdToCtrlMaps.keySet().iterator();
+		JComponent compt = null;
+		JComponent firstCompt = null;
+		while (keys.hasNext()) {
+			String attrOid = keys.next();
+			compt = attrIdToCtrlMaps.get(attrOid);
+			String value = "";
+			CodeClassifyTemplateAttrVO propObj = codeClassifyTemplateAttrVOMap.get(attrOid);
+
+			boolean isExistError = false;
+			String message = "";
+
+			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;
+				}
+			}
+
+			boolean checkNullInput = true;
+			if (checkNullInput) {
+				// 妫�鏌ュ睘鎬ф槸鍚﹀彲浠ヤ负绌� isNull=0 琛ㄧず涓嶈兘涓虹┖锛宨sNull=1琛ㄧず鍙互涓虹┖
+				if ("true".equals(propObj.getRequireFlag())) {// 涓嶈兘涓虹┖鏃堕渶瑕佸垽鏂緭鍏ョ殑鍊兼槸鍚︿负绌�
+					if ((value == null) || (value != null && value.trim().length() == 0)) {
+						isExistError = true;
+						compt.requestFocus();
+						message = propObj.getName() + " 涓嶈兘涓虹┖锛岃閲嶆柊杈撳叆锛�";
+					}
+				}
+				// 鏍¢獙闀垮害
+				else if ((value != null && !value.equals(""))
+					&& value.length() > Integer.valueOf(propObj.getControlLength())
+					&& !(propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDate)||
+					propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDateTime))
+				) {
+					isExistError = true;
+					compt.requestFocus();
+					message = propObj.getName() + " 鐨勫睘鎬у��  " + value
+						+ " 鐨勯暱搴︿笉鑳借秴杩�" + propObj.getControlLength();
+				}
+
+				// 妫�鏌ヨ緭鍏ョ殑鍊兼槸鍚︽弧瓒冲睘鎬ф牎楠岃鍒欙紙濡傛灉瀛樺湪锛�
+				if (!isExistError && !propObj.getComponentRule().equals("")) { // 瀛樺湪鐫�灞炴�ф牎楠岃鍒�
+					// 鏃ユ湡绫诲瀷鐨勪笉妫�鏌ュ睘鎬ф牎楠岃鍒�
+//					if (propObj.getAttributeDataType().toUpperCase().equals(Constants.DATA_TYPE_DATE)|| (compt instanceof VCIJComboBox)) {
+//						// 涓嶅仛妫�鏌�
+//					} else {
+//						initAllAttrRuleMaps();
+//						// 鍋氭鏌�
+//						if (!value.equals("") && allAttrRulesMap.containsKey(propObj.getAttrRuleId())) {
+//							// TODO 璋冪敤灞炴�ф牎楠岃鍒欑殑鎺ュ彛锛屾牎楠屽綋鍓嶈緭鍏ョ殑鍊兼槸鍚︽弧瓒宠鍒欐潯浠�
+//							AttrRuleObject attrRuleObj = allAttrRulesMap.get(attrObj.getAttrRuleId());
+//							String regex = attrRuleObj.getRule();
+//							Pattern p = Pattern.compile(regex);
+//							if (!p.matcher(value).matches()) {
+//								// 涓嶅尮閰�
+//
+//								isExistError = true;
+//								compt.requestFocus();
+//								message = attrObj.getName() + "鐨勮緭鍏ュ�� " + value
+//									+ " 涓嶆弧瓒宠灞炴�у畾涔夌殑鏍¢獙瑙勫垯  \n\n" + ""
+//									+ attrRuleObj.getRuleName() + "锛歕t"
+//									+ attrRuleObj.getRule() + "\n\n"
+//									+ "璇烽噸鏂拌緭鍏ワ紒";
+//							}
+//						}
+//					}
+				}
+			}
+
+			// 鏄惁瀛樺湪閿欒
+			if (isExistError) {
+				//setErrorMessageFlag(true);
+				listInnerNames.clear();
+				listOutNames.clear();
+				listValues.clear();
+				listDataTypes.clear();
+				VCIOptionPane.showMessage(this, message);
+				break;
+			} else {
+				//setErrorMessageFlag(false);
+				// 濡傛灉鏄棩鏈熺被鍨嬶紝涓斿睘鎬у彲绌猴紝鍙堟病鏈夐�夋嫨鏃ユ湡鍊硷紝鍒欑粰涓粯璁ゅ��
+				if (value == null && propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDate)) {
+					SimpleDateFormat sdfDateAndTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+					value = sdfDateAndTime.format(new Date());
+				}else if(value == null&&propObj.getAttributeDataType().toUpperCase().equals(VciFieldTypeEnum.VTDateTime)){
+					SimpleDateFormat sdfDateAndTime = new SimpleDateFormat("HH:mm:ss");
+					value = sdfDateAndTime.format(new Date());
+				}
+				// 鍏ㄩ儴楠岃瘉閫氳繃
+				value = value.trim();
+				listInnerNames.add(propObj.getId());
+				listOutNames.add(propObj.getName());
+				listValues.add(value);
+				if(propObj.getAttributeDataType().equals(VciFieldTypeEnum.VTFilePath)){
+					listDataTypes.add("String");
+				}else{
+					listDataTypes.add(propObj.getAttributeDataType());
+				}
+
+				attrNameMap.put(propObj.getName(), value);
+				tempProMap.put(propObj.getId(), propObj.getId());
+
+			}
+			// update by xchao 2012.07.11
+			if (firstCompt == null) {
+				firstCompt = compt;
+			}
+		}// end while(keys.hadNext())
+
+
+		LinkedList<String[]> res = new LinkedList<String[]>();
+
+		res.add(listInnerNames.toArray(new String[] {}));
+		res.add(listValues.toArray(new String[] {}));
+		res.add(listDataTypes.toArray(new String[] {}));
+		res.add(listOutNames.toArray(new String[]{}));
+		return res.toArray(new String[][] {});
+	}
+
+	private void calcParentTreeNode(VCIBaseTreeNode node){
+		parentTreeNodeListDesc.add(node);
+		if(node.getParent() != null){
+			calcParentTreeNode((VCIBaseTreeNode)node.getParent());
+		} else{
+			// 鏍硅妭鐐�
+			// 鏉ヨ嚜涓撶敤搴擄紙甯﹀垎绫绘樉绀虹殑锛�
+			// 鐢变簬涓撶敤搴擄紙甯﹀垎绫绘樉绀虹殑锛夊皢搴撹妭鐐瑰悜涓婃彁鍗囦簡涓�绾э紝搴撹妭鐐瑰氨鏄牴鑺傜偣
+			// 鍥犳涓轰繚鎸佺粺璁★紝鏂逛究鏍规嵁灞傜骇鍙栧垎绫荤爜锛堜唬鍙凤級锛屽湪姝ゅ皢鍘熷洜鐨勬牴娣诲姞鍒伴泦鍚�
+			if(node.getObj() instanceof CodeClassify){
+				parentTreeNodeListDesc.add(new VCIBaseTreeNode("鎵�鏈夎祫婧愭暟鎹�", "root"));
+			}
+		}
+	}
 
 	//鑾峰彇绯荤粺閰嶇疆鐨勭爜娈电爜鍊�
 	private Map<String, String> getSpecialValMap(String[] vals) {
@@ -1280,4 +1698,36 @@
 	private boolean isNumber(String value) {
 		return Pattern.matches("[0-9]+", value);
 	}
+
+	public LinkedHashMap<String, JComponent> getAttrIdToCtrlMaps() {
+		return attrIdToCtrlMaps;
+	}
+
+	public void setAttrIdToCtrlMaps(LinkedHashMap<String, JComponent> attrIdToCtrlMaps) {
+		this.attrIdToCtrlMaps = attrIdToCtrlMaps;
+	}
+
+	public LinkedHashMap<String, JComponent> getAttrInnerNameToCtrlMaps() {
+		return attrInnerNameToCtrlMaps;
+	}
+
+	public void setAttrInnerNameToCtrlMaps(LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps) {
+		this.attrInnerNameToCtrlMaps = attrInnerNameToCtrlMaps;
+	}
+
+	public TransmitTreeObject getTransTreeObject() {
+		return transTreeObject;
+	}
+
+	public void setTransTreeObject(TransmitTreeObject transTreeObject) {
+		this.transTreeObject = transTreeObject;
+	}
+
+	public CodeRuleVO getCodeRuleVO() {
+		return codeRuleVO;
+	}
+
+	public void setCodeRuleVO(CodeRuleVO codeRuleVO) {
+		this.codeRuleVO = codeRuleVO;
+	}
 }
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchDialog.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchDialog.java
new file mode 100644
index 0000000..fdfd4bd
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchDialog.java
@@ -0,0 +1,168 @@
+package com.vci.ubcs.codeapply;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.LinkedList;
+
+
+
+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.swing.components.table.VCIJTablePanel;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.codeapply.object.BaseModel;
+import com.vci.ubcs.codeapply.object.CodeClassify;
+
+public class CodeApplyFor410SearchDialog extends VCIJDialog {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+	private CodeApplyPanelFor410 ownerPanel;
+	private VCIJLabel codeName = new VCIJLabel("浠g爜锛�");
+	private VCIJTextField  txtCodeName = new VCIJTextField(false);
+	private VCIJButton btnSearch= VCISwingUtil.createVCIJButton("btnSearch", "鏌ヨ", "鏌ヨ", "search.png", null);
+	private VCIJButton btnOk = VCISwingUtil.createVCIJButton("replace", "纭畾", "纭畾", "ok.gif",null);
+	private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "鍙栨秷", "鍙栨秷", "cancel.gif",null);
+	private String strName = "";
+	private String str = "";
+	public CodeApplyFor410SearchDialog(CodeApplyPanelFor410 ownerPanel){
+		//super(LogonApplication.frame,true);
+		this.ownerPanel = ownerPanel;
+		this.setTitle("鏌ヨ浠g爜");
+		Dimension dime = Toolkit.getDefaultToolkit().getScreenSize();
+		int x = dime.width/2 - 300;
+		int y = dime.height/2 - 300;
+		this.setLocation(x, y);
+		this.setSize(new Dimension(700, 600));
+		init();
+		setModal(true);
+		setVisible(true);
+	}
+	private LinkedList<VCIJButton> selfCustomButtons = new LinkedList<VCIJButton>();
+	{
+		selfCustomButtons.add(btnOk);
+		selfCustomButtons.add(btnCancel);
+	}
+
+	public void init(){
+		setLayout(new BorderLayout());
+		add(nothPanel(),BorderLayout.NORTH);
+		add(createCenterTPanel(), BorderLayout.CENTER);
+		cancel();
+	}
+	private VCIJPanel nothPanel(){
+		VCIJPanel pal = new VCIJPanel();
+		VCIJPanel nothPanel = new VCIJPanel();
+		nothPanel.setLayout(null);
+		nothPanel.setPreferredSize(new Dimension(300,40));
+		codeName.setBounds(10, 5, 60, 28);
+		txtCodeName.setBounds(70, 5, 200, 28);
+		btnSearch.setBounds(300, 5, 80, 25);
+		nothPanel.add(codeName);
+		nothPanel.add(txtCodeName);
+		nothPanel.add(btnSearch);
+		pal.setLayout(new BorderLayout());
+		pal.add(nothPanel);
+		pal.setVisible(true);
+		return pal;
+	}
+	private CodeApplyFor410SearchMainPanel codeDataMainPanel=null;
+	private VCIJPanel createCenterTPanel(){
+		codeDataMainPanel=new CodeApplyFor410SearchMainPanel();
+		CodeApplyFor410SearchProvider  dataProvider=new CodeApplyFor410SearchProvider(this);
+		codeDataMainPanel.setDataProvider(dataProvider);
+		codeDataMainPanel.setCustomTopPanel(nothPanel());
+		codeDataMainPanel.buildPanel();
+		VCIJTable table = codeDataMainPanel.getTablePanel().getTable();
+		table.addMouseListener(new MouseAdapter() {
+			public void mouseClicked(MouseEvent e) {
+				if (e.getButton() == 1 && e.getClickCount() == 2) {
+					btnOk.doClick();
+				}
+			}
+		});
+		return codeDataMainPanel;
+	}
+
+
+	public VCIJTablePanel<BaseModel> getPanel() {
+		return codeDataMainPanel.getTablePanel();
+	}
+	/**
+	 * 鎸夐挳浜嬩欢
+	 */
+	public void cancel(){
+		btnCancel.addActionListener(new ActionListener() {
+			@Override
+		public void actionPerformed(ActionEvent e) {
+			// TODO Auto-generated method stub
+			 btn_Cancel();	//鍙栨秷
+			}
+		});
+		btnSearch.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent arg0) {
+				searchButton_action();//鏌ヨ
+			}
+		});
+		btnOk.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent arg0) {
+				okButton_action();//纭畾
+			}
+		});
+	}
+	public void okButton_action(){
+		int len = codeDataMainPanel.getTablePanel().getSelectedRowObjects().size();
+		if (len==0) {
+			VCIOptionPane.showMessage(this, "璇峰厛閫夋嫨瑕佹搷浣滅殑鏁版嵁");
+			return;
+		}else if (len>1) {
+			VCIOptionPane.showMessage(this, "涓�娆″彧鑳介�夋嫨涓�鏉℃暟鎹繘琛屾搷浣�");
+			return;
+		}
+		LinkedList<BaseModel> list = codeDataMainPanel.getTablePanel().getSelectedRowObjects();
+		for (BaseModel object : list) {
+			str = object.getId();
+			setStr(str);
+		}
+		this.dispose();
+	}
+
+	public void searchButton_action(){
+		strName = txtCodeName.getText();
+		setStrName(strName);
+		codeDataMainPanel.getTablePanel().refreshTableData();
+	}
+
+	public CodeApplyPanelFor410 getOwnerPanel() {
+		return ownerPanel;
+	}
+
+	public void setOwnerPanel(CodeApplyPanelFor410 ownerPanel) {
+		this.ownerPanel = ownerPanel;
+	}
+
+	public String getStr() {
+		return str;
+	}
+	public void setStr(String str) {
+		this.str = str;
+	}
+	public String getStrName() {
+		return strName;
+	}
+	public void setStrName(String strName) {
+		this.strName = strName;
+	}
+	public void btn_Cancel(){
+		this.dispose();
+	}
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchMainPanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchMainPanel.java
new file mode 100644
index 0000000..34c0ac4
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchMainPanel.java
@@ -0,0 +1,88 @@
+package com.vci.ubcs.codeapply;
+
+import com.vci.base.ui.swing.VCISwingUtil;
+import com.vci.base.ui.swing.components.VCIJPanel;
+import com.vci.base.ui.swing.components.table.AbstractVCIJTableDataProvider;
+import com.vci.base.ui.swing.components.table.VCIJTablePanel;
+import com.vci.ubcs.codeapply.object.BaseModel;
+
+import java.awt.*;
+
+public class CodeApplyFor410SearchMainPanel  extends VCIJPanel {
+	/**
+	 * 鑷畾涔夐《閮ㄦ帶浠跺尯鍩�
+	 */
+	private VCIJPanel customTopPanel = null;
+	public void buildPanel(){
+		this.init();
+	}
+	private void init(){
+		initComponents();
+	}
+
+	private void initComponents(){
+		setLayout(new BorderLayout());
+		add(createNorthBaseAttrsPanel(), BorderLayout.NORTH);
+		add(createCenterDataTablePanel(), BorderLayout.CENTER);
+	}
+
+	private VCIJPanel createNorthBaseAttrsPanel(){
+		VCIJPanel palRes = new VCIJPanel(new BorderLayout());
+		if(getCustomTopPanel() != null) {
+			palRes.add(getCustomTopPanel(), BorderLayout.CENTER);
+		}
+		return palRes;
+	}
+
+	/**
+	 * 鏍规嵁绫诲瀷鏄剧ずtable
+	 */
+	private VCIJTablePanel<BaseModel> tablePanel = null;
+	private AbstractVCIJTableDataProvider<BaseModel> dataProvider = null;
+	private VCIJPanel createCenterDataTablePanel() {
+		tablePanel = new VCIJTablePanel<BaseModel>(dataProvider);
+		//tablePanel.setCustomButtons(getCombinedButtons());
+
+		tablePanel.setShowExport(true);
+		tablePanel.setShowPaging(true);
+		tablePanel.setShowProgressBar(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();
+		return tablePanel;
+	}
+
+	public VCIJPanel getCustomTopPanel() {
+		return customTopPanel;
+	}
+
+	public void setCustomTopPanel(VCIJPanel customTopPanel) {
+		this.customTopPanel = customTopPanel;
+	}
+
+	public VCIJTablePanel<BaseModel> getTablePanel() {
+		return tablePanel;
+	}
+
+	public void setTablePanel(VCIJTablePanel<BaseModel> tablePanel) {
+		this.tablePanel = tablePanel;
+	}
+
+	public AbstractVCIJTableDataProvider<BaseModel> getDataProvider() {
+		return dataProvider;
+	}
+
+	public void setDataProvider(AbstractVCIJTableDataProvider<BaseModel> dataProvider) {
+		this.dataProvider = dataProvider;
+	}
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchProvider.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchProvider.java
new file mode 100644
index 0000000..be21536
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeApplyFor410SearchProvider.java
@@ -0,0 +1,116 @@
+package com.vci.ubcs.codeapply;
+
+import java.util.*;
+import com.alibaba.cloud.commons.lang.StringUtils;
+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.table.AbstractVCIJTableDataProvider;
+import com.vci.base.ui.swing.components.table.VCIJTableNode;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.codeapply.object.*;
+import com.vci.ubcs.codeapply.utils.ConfigUtils;
+import com.vci.ubcs.codeapply.utils.HttpUtil;
+import com.vci.ubcs.codeapply.utils.ListUtil;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.apache.commons.collections4.CollectionUtils;
+
+public class CodeApplyFor410SearchProvider extends AbstractVCIJTableDataProvider<BaseModel> {
+	private String[] fields = {};
+	private boolean view = true;
+	private String codeName;
+	LinkedList<String> fieldList = new LinkedList<String>();
+	private CodeApplyFor410SearchDialog dialog = null;
+	private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
+	public CodeApplyFor410SearchProvider(CodeApplyFor410SearchDialog dialog){
+		this.dialog = dialog;
+	}
+
+
+	@Override
+	public String[] getSpecialColumns() {
+		LinkedList<String> nameList = new LinkedList<String>();
+		CodeClassifyTemplateVO codeClassifyTemplateVO=this.dialog.getOwnerPanel().getCurrentCodeClassifyTemplateVO();
+		if(codeClassifyTemplateVO!=null){
+			if(!CollectionUtils.isEmpty(codeClassifyTemplateVO.getAttributes())){
+				codeClassifyTemplateVO.getAttributes().stream().forEach(codeClassifyTemplateAttrVO -> {
+					fieldList.add(codeClassifyTemplateAttrVO.getId());
+					nameList.add(codeClassifyTemplateAttrVO.getName());
+				});
+			}
+		}
+		fields = fieldList.toArray(new String[]{});
+		return nameList.toArray(new String[]{});
+	}
+
+	@Override
+	public int getTotal() {
+		// TODO Auto-generated method stub
+		return this.total;
+	}
+	@Override
+	public VCIJTableNode<BaseModel> getNewRowNode(BaseModel dataObj) {
+		Map<String,String> dataMap= dataObj.getData();
+		Map<String, String> defaultDataMap= VciBaseUtil.objectToMapString(dataObj);
+		defaultDataMap.putAll(dataMap);
+		VCIJTableNode<BaseModel> res = new VCIJTableNode<BaseModel>(dataObj);
+		int i=dataColumnStartIndex;
+		String data="";
+		for (String field:fields){
+			if(defaultDataMap.containsKey(field+"_text")){
+				 data=defaultDataMap.getOrDefault(field+"_text","");
+			}else if(defaultDataMap.containsKey(field+"Text")){
+				data=defaultDataMap.getOrDefault(field+"Text","");
+			}else{
+				data=defaultDataMap.getOrDefault(field,"");
+			}
+
+			res.setPropertyValue(getColumns()[i++], data);
+		}
+		return res;
+	}
+
+	@Override
+	public BaseModel[] getDatas(int pageIndex, int pageSize) {
+		DataGrid dataGrid=new DataGrid();
+		try{
+			CodeClassifyTemplateVO codeClassifyTemplateVO=this.dialog.getOwnerPanel().getCurrentCodeClassifyTemplateVO();
+			CodeClassify codeClassify = (CodeClassify) this.dialog.getOwnerPanel().getRightMainPanel().getTransTreeObject().getCurrentTreeNode().getObj();
+			Map<String,String> condtionMap=new HashMap<>();
+			condtionMap.put("codeClassifyOid",codeClassify.getOid());
+			condtionMap.put("templateOid",codeClassifyTemplateVO.getOid());
+			condtionMap.put("page",pageIndex+"");
+			condtionMap.put("limit",pageSize+"");
+			if(StringUtils.isNotBlank(this.dialog.getStrName())){
+				condtionMap.put("conditionMap[id]",this.dialog.getStrName());
+			}
+			//condtionMap.put("conditionMap[lcStatus]","Released");
+			R r= HttpUtil.sendGet(url+"/gridTableDataByClassifyOid",condtionMap,new HashMap<>());
+			if(r.isSuccess()){
+				Object object= r.getData();
+				if(object!=null) {
+					ObjectMapper objectMapper = new ObjectMapper();
+					dataGrid = objectMapper.readValue(object.toString(), DataGrid.class);
+				}
+			}else{
+				VCIOptionPane.showMessage(this.dialog,r.getMsg());
+			}
+		} catch (
+		JsonProcessingException e) {
+			e.printStackTrace();
+		}
+		this.total= new Long(dataGrid.getTotal()).intValue();
+		List<Map>  dataList= dataGrid.getData();
+		List<BaseModel> hostInfos=new ArrayList<>();
+		//List<BaseModel> hostInfos=	ListUtil.listMapParseListObj(dataList, BaseModel.class);
+		dataList.stream().forEach(map->{
+			BaseModel baseModel=ListUtil.mapParseJavaBean(map,BaseModel.class);
+			baseModel.setData(map);
+			hostInfos.add(baseModel);
+		});
+
+		//List<BaseModel> hostInfos = (List<BaseModel>) dataList.stream().map(entity -> JSONUtil.toBean(JSONUtil.parseObj(entity), BaseModel.class)).collect(Collectors.toList());
+
+		return hostInfos.toArray(new BaseModel[]{});
+	}
+}
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
index 26c2c58..a2e756b 100644
--- 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
@@ -388,4 +388,20 @@
 	public void setCurrentCodeClassifyTemplateVO(CodeClassifyTemplateVO currentCodeClassifyTemplateVO) {
 		this.currentCodeClassifyTemplateVO = currentCodeClassifyTemplateVO;
 	}
+
+	public CodeApplyFor410MainPanel getRightMainPanel() {
+		return rightMainPanel;
+	}
+
+	public void setRightMainPanel(CodeApplyFor410MainPanel rightMainPanel) {
+		this.rightMainPanel = rightMainPanel;
+	}
+
+	public TransmitTreeObject getTransmitTreeObject() {
+		return transmitTreeObject;
+	}
+
+	public void setTransmitTreeObject(TransmitTreeObject transmitTreeObject) {
+		this.transmitTreeObject = transmitTreeObject;
+	}
 }
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
index a0730e9..1801ffa 100644
--- 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
@@ -1,12 +1,31 @@
 package com.vci.ubcs.codeapply;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.fastjson.JSONObject;
+import com.vci.base.ui.swing.VCIOptionPane;
+import com.vci.base.ui.swing.components.VCIJComboBox;
+import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.dto.CodeOrderSecDTO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+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.codeapply.utils.HttpUtil;
+import com.vci.ubcs.starter.web.pagemodel.KeyValue;
+import org.apache.commons.collections4.CollectionUtils;
+
+import javax.swing.*;
+import javax.swing.text.JTextComponent;
+import javax.swing.tree.TreePath;
 import java.awt.event.ActionEvent;
-import java.util.LinkedHashMap;
+import java.util.*;
 
 public class CodeApplyPanelFor410ActionListener extends CommonActionListener {
 	private CodeApplyPanelFor410 owner = null;
 	private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
-
+	boolean codeAlreadExist = false;
+	private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController");
 	public CodeApplyPanelFor410ActionListener(CodeApplyPanelFor410 owner){
 		this.owner = owner;
 		this.initActionMap();
@@ -17,14 +36,16 @@
 			//batchApply();//鎵归噺瀵煎叆鐢宠浠g爜
 		}});
 		actionMaps.put("apply", new Runnable() { public void run() {
-			//apply();//鐮佸�肩敵璇�
+			apply();//鐮佸�肩敵璇�
 		}});
 		actionMaps.put("btnSearch", new Runnable() { public void run() {
-			//search();//浠g爜鏌ヨ
+			search();//浠g爜鏌ヨ
 		}});
 		actionMaps.put("clear", new Runnable() { public void run() {
-		//	clear();//娓呯┖灞炴��
+			clear();//娓呯┖灞炴��
 		}});
+
+
 	}
 
 	@Override
@@ -34,4 +55,119 @@
 			actionMaps.get(key).run();
 		}
 	}
+	private void apply() {
+		codeAlreadExist = false;
+		if(null == this.owner.getTransmitTreeObject().getCurrentTreeNode()) {
+			return;
+		}
+		CodeClassify codeClassify = (CodeClassify) this.owner.getTransmitTreeObject().getCurrentTreeNode().getObj();
+		if(codeClassify == null || "".equals(codeClassify.getOid())){
+			VCIOptionPane.showMessage(this.owner, "璇烽�夋嫨缂栫爜椤瑰垎绫伙紒");
+			return;
+		}
+		CodeClassifyTemplateVO codeClassifyTemplateVO = this.owner.getCurrentCodeClassifyTemplateVO();
+		if(codeClassifyTemplateVO!=null&&"".equals(codeClassifyTemplateVO.getOid())) {
+			VCIOptionPane.showMessageDialog(this.owner, "浠g爜椤规病鏈夐厤缃ā鏉�,涓嶅厑璁哥敵璇�!");
+			return;
+		}
+		CodeRuleVO codeRuleVO= this.owner.getRightMainPanel().getCodeRuleVO();
+		/**閫夋嫨鐨勫垎绫绘槸鍚﹀寘鍚鍒欑殑鏍¢獙**/
+		if(codeRuleVO==null||"".equals(codeRuleVO.getOid())) {
+			VCIOptionPane.showMessage(this.owner, "鍒嗙被:" + codeClassify.getName() + " 娌℃湁鍖呭惈瑙勫垯锛屾棤娉曠敵璇凤紒");
+			return;
+		}
+		//鏍¢獙瑙勫垯鏄惁濉啓鍚堟牸
+		if(!this.owner.getRightMainPanel().checkIsAllowed()) {
+			return;
+		}
+
+		//  妫�鏌ユā鏉垮悇灞炴�х殑杈撳叆鍊兼槸鍚︽弧瓒宠姹�
+		String[][] inputValues = this.owner.getRightMainPanel().checkInputValues();
+		String[] fields = inputValues[0];
+		String[] values = inputValues[1];
+		String[] dataTypes = inputValues[2];
+		String[] outNames = inputValues[3];
+		Map<String,String> dataMap=new HashMap<>();
+		for (int i=0;i<fields.length;i++){
+			dataMap.put(fields[i],values[i]);
+		}
+		List<KeyValue> keyValueList= this.owner.getRightMainPanel().getSectionValues();
+		if(CollectionUtils.isEmpty(keyValueList)){
+			VCIOptionPane.showMessage(this.owner, "鍒嗙被:" + codeClassify.getName() + " 娌℃湁鑾峰彇瑙勫垯鐮佹閫夋嫨鍊间俊鎭紝鏃犳硶鐢宠锛�");
+			return;
+		}
+		CodeOrderDTO codeOrderDTO=new CodeOrderDTO();
+		/**绯荤粺鍙姞杞戒唬鐮侀」  濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/
+		codeOrderDTO.setCodeClassifyOid(codeClassify.getOid());
+		codeOrderDTO.setTemplateOid(codeClassifyTemplateVO.getOid());
+		codeOrderDTO.setCodeRuleOid(codeRuleVO.getOid());
+		List<CodeOrderSecDTO> secDTOList=new ArrayList<>();
+		keyValueList.stream().forEach(keyValue -> {
+			CodeOrderSecDTO codeOrderSecDTO=new CodeOrderSecDTO();
+			codeOrderSecDTO.setSecOid(keyValue.getKey());
+			codeOrderSecDTO.setSecValue(keyValue.getValue());
+			secDTOList.add(codeOrderSecDTO);
+		});
+		codeOrderDTO.setSecDTOList(secDTOList);
+		codeOrderDTO.setData(dataMap);
+		Object object = JSONObject.toJSON(codeOrderDTO);
+		Map<String,String> headerMap=new HashMap<>();
+		headerMap.put("content-type","application/json");
+		R r= HttpUtil.sendPost(url+"/addSaveCode",object.toString(),headerMap);
+		String code="";
+		if(r.isSuccess()){
+			code=r.getData().toString();
+			this.owner.setApplyCode(code);
+
+		}else{
+			VCIOptionPane.showMessage(this.owner,r.getMsg());
+		}
+
+	}
+	/***
+	 * 娓呯┖灞炴��
+	 */
+	private void clear(){
+		CodeApplyFor410MainPanel rightMainPanel2 = this.owner.getRightMainPanel();
+		LinkedHashMap<String, JComponent> attrInnerNameToCtrlMaps = rightMainPanel2.getAttrInnerNameToCtrlMaps();
+		if(attrInnerNameToCtrlMaps!=null&&attrInnerNameToCtrlMaps.size()>0){
+			attrInnerNameToCtrlMaps.forEach((key,component)->{
+				if(component instanceof JTextComponent){
+					if(((JTextComponent) component).isEnabled())
+						((JTextComponent) component).setText("");
+				}else if(component instanceof VCIJComboBox){
+					if(((VCIJComboBox) component).isEnabled())
+						((VCIJComboBox) component).setSelectedIndex(0);
+				}
+			});
+		}
+		String applyCode = this.owner.getApplyCode();
+		if(StringUtils.isBlank(applyCode)) {
+			this.owner.setApplyCode("");
+		}
+	}
+
+	/**
+	 *
+	 * 鏌ヨ浠g爜
+	 */
+	private void search(){
+		if(null == this.owner.getRightMainPanel().getTransTreeObject().getCurrentTreeNode()) {
+			return;
+		}
+		CodeClassify rmType = (CodeClassify) this.owner.getRightMainPanel().getTransTreeObject().getCurrentTreeNode().getObj();
+		if(rmType == null || "".equals(rmType.getId())){
+			VCIOptionPane.showMessage(this.owner, "璇烽�夋嫨浠g爜椤瑰垎绫伙紒");
+			return;
+		}
+
+		CodeApplyFor410SearchDialog dialog = new CodeApplyFor410SearchDialog(this.owner);
+		String str = dialog.getStr();
+		if (!str.equals("")) {
+			owner.applyTxt.setText(str);
+		}
+
+	}
+
+
 }
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java
index b4da4c3..2945071 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeDataMainPanel.java
@@ -46,9 +46,9 @@
 	private VCIJPanel createCenterDataTablePanel() {
 		tablePanel = new VCIJTablePanel<BaseModel>(dataProvider);
 		//tablePanel.setCustomButtons(getCombinedButtons());
-		tablePanel.setShowExport(true);
+		//tablePanel.setShowExport(true);
 		tablePanel.setShowPaging(true);
-		tablePanel.setShowProgressBar(false);
+		tablePanel.setShowProgressBar(true);
 		tablePanel.setPageButtonFlowAlign(FlowLayout.CENTER);
 		tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
 		tablePanel.buildTablePanel();
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
index 594a386..bfd982c 100644
--- 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
@@ -25,7 +25,8 @@
 
 public class RMDataReferTempDialog extends VCIJDialog {
 	private CodeApplyFor410MainPanel owner;
-	private CodeClassifyTemplateAttrVO codeClassifyTemplateAttr;
+	//private CodeClassifyTemplateAttrVO codeClassifyTemplateAttr;
+	private String referConfig="";
 	private RMDataReferTempDialogActionListener actionListener = new RMDataReferTempDialogActionListener(this);
 	private VCIJButton btnOk = VCISwingUtil.createVCIJButton("ok", "纭畾", "纭畾", "accept.png", actionListener);
 	private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "鍙栨秷", "鍙栨秷", "cancel.png", actionListener);
@@ -35,10 +36,10 @@
 	private VCIBaseTree leftTree = null;
 	private VCIBaseTreeModel leftTreeModel = null;
 	private KeyValue keyValue;
-	public RMDataReferTempDialog(CodeApplyFor410MainPanel owner, CodeClassifyTemplateAttrVO codeClassifyTemplateAttr) {
+	public RMDataReferTempDialog(CodeApplyFor410MainPanel owner, String  referConfig) {
 		//super(true);
 		this.owner = owner;
-		this.codeClassifyTemplateAttr = codeClassifyTemplateAttr;
+		this.referConfig = referConfig;
 		init();
 		setTitle("寮曠敤妯℃澘-灞炴�ч�夋嫨");
 		//initDialogSize(rmDataAddDialog.getWidth(), rmDataAddDialog.getHeight());
@@ -69,8 +70,8 @@
 	private VCIJPanel createRMDataMainPanel(){
 		VCIJPanel rmDataTablePanel = new VCIJPanel(new BorderLayout());
 		uiFormRefer=new UIFormRefer();
-		if(StringUtils.isNotBlank(codeClassifyTemplateAttr.getReferConfig())){
-			uiFormRefer = JSONObject.toJavaObject(JSONObject.parseObject(codeClassifyTemplateAttr.getReferConfig().toString()), UIFormRefer.class);
+		if(StringUtils.isNotBlank(referConfig)){
+			uiFormRefer = JSONObject.toJavaObject(JSONObject.parseObject(referConfig.toString()), UIFormRefer.class);
 		}
 		if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())
 				||uiFormRefer.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue()))){
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java
index 8c14eab..a54c3e5 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/BaseModel.java
@@ -1,11 +1,12 @@
 package com.vci.ubcs.codeapply.object;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import org.springframework.data.annotation.Transient;
 
 import java.util.Date;
 import java.util.Map;
-
+@JsonIgnoreProperties
 public class BaseModel {
 	private String oid;
 	private String id;
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeDataObject.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeDataObject.java
new file mode 100644
index 0000000..9c2e9c5
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/CodeDataObject.java
@@ -0,0 +1,4 @@
+package com.vci.ubcs.codeapply.object;
+
+public class CodeDataObject {
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/DataGrid.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/DataGrid.java
new file mode 100644
index 0000000..6a1ab47
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/object/DataGrid.java
@@ -0,0 +1,115 @@
+package com.vci.ubcs.codeapply.object;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class DataGrid<T> implements Serializable {
+	private static final long serialVersionUID = -5909212697362510055L;
+	private long total = 0L;
+	private List<T> data = new ArrayList();
+	private int start;
+	private int limit;
+	private int page;
+	private String sort;
+	private String order;
+	private String msg;
+	private int code = 0;
+	private String traceId;
+
+	public long getTotal() {
+		return total;
+	}
+
+	public void setTotal(long total) {
+		this.total = total;
+	}
+
+	public List<T> getData() {
+		return data;
+	}
+
+	public void setData(List<T> data) {
+		this.data = data;
+	}
+
+	public int getStart() {
+		return start;
+	}
+
+	public void setStart(int start) {
+		this.start = start;
+	}
+
+	public int getLimit() {
+		return limit;
+	}
+
+	public void setLimit(int limit) {
+		this.limit = limit;
+	}
+
+	public int getPage() {
+		return page;
+	}
+
+	public void setPage(int page) {
+		this.page = page;
+	}
+
+	public String getSort() {
+		return sort;
+	}
+
+	public void setSort(String sort) {
+		this.sort = sort;
+	}
+
+	public String getOrder() {
+		return order;
+	}
+
+	public void setOrder(String order) {
+		this.order = order;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getTraceId() {
+		return traceId;
+	}
+
+	public void setTraceId(String traceId) {
+		this.traceId = traceId;
+	}
+
+	@Override
+	public String toString() {
+		return "DataGrid{" +
+			"total=" + total +
+			", data=" + data +
+			", start=" + start +
+			", limit=" + limit +
+			", page=" + page +
+			", sort='" + sort + '\'' +
+			", order='" + order + '\'' +
+			", msg='" + msg + '\'' +
+			", code=" + code +
+			", traceId='" + traceId + '\'' +
+			'}';
+	}
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java
index 5749c25..43e274b 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/HttpUtil.java
@@ -7,6 +7,7 @@
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.http.*;
 import org.apache.http.client.ClientProtocolException;
+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;
@@ -173,7 +174,102 @@
 		}
 		return result;
 	}
+	/**
+	 * 鍙戦�丠ttpPost璇锋眰锛屽弬鏁颁负map
+	 * @param url
+	 * @param jsonDataStr
+	 * @return
+	 */
+	public static R sendPost(String url, String jsonDataStr,Map<String,String> headers) {
+		R r=new R();
+//        JsonObject formparams = new JsonObject();
+//        for (Map.Entry<String, String> entry : map.entrySet()) {
+//            formparams.add(entry.getKey(), entry.getValue();
+//        }
+		//json 鏍煎紡
+        //UrlEncodedFormEntity entity = new UrlEncodedFormEntity(jsonDataStr, Consts.UTF_8);
+//        System.out.println(jsonObject.toString());
+		StringEntity entity = new StringEntity(jsonDataStr, Consts.UTF_8);
+		HttpPost httppost = new HttpPost(url);
+		/*
+		 * 娣诲姞璇锋眰澶翠俊鎭�
+		 */
+		if(headers!=null&&headers.size()>0) {
+			for (Map.Entry<String, String> entry : headers.entrySet()) {
+				httppost.addHeader(entry.getKey(), entry.getValue());
+			}
+		}
+		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, "UTF-8");
+			// 浣跨敤Apache鎻愪緵鐨勫伐鍏风被杩涜杞崲鎴愬瓧绗︿覆
+			if(StringUtils.isNotBlank(result)){
+				r = JSONObject.toJavaObject(JSONObject.parseObject(result), R.class);
+			}
+		} catch (ParseException | IOException e) {
+			e.printStackTrace();
+		}
+		return r;
+	}
+	/**
+	 * 鍙戦�丠ttpPost璇锋眰锛屽弬鏁颁负map
+	 * @param url
+	 * @param map
+	 * @return
+	 */
+	public static R sendPost(String url, Map<String,String> map,Map<String,String> headers) {
+		R r=new R();
+//        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);
+		/*
+		 * 娣诲姞璇锋眰澶翠俊鎭�
+		 */
+		if(headers!=null&&headers.size()>0) {
+			for (Map.Entry<String, String> entry : headers.entrySet()) {
+				httppost.addHeader(entry.getKey(), entry.getValue());
+			}
+		}
+		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(entity, "UTF-8");
+			// 浣跨敤Apache鎻愪緵鐨勫伐鍏风被杩涜杞崲鎴愬瓧绗︿覆
+			if(StringUtils.isNotBlank(result)){
+				r = JSONObject.toJavaObject(JSONObject.parseObject(result), R.class);
+			}
+		} catch (ParseException | IOException e) {
+			e.printStackTrace();
+		}
+		return r;
+	}
 	/**
 	 * 鍙戦�丠ttpPost璇锋眰锛屽弬鏁颁负map
 	 * @param url
diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ListUtil.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ListUtil.java
new file mode 100644
index 0000000..dbcad67
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/utils/ListUtil.java
@@ -0,0 +1,172 @@
+package com.vci.ubcs.codeapply.utils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.util.StringUtils;
+import java.lang.reflect.Field;
+import java.lang.reflect.Type;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+public class ListUtil {
+	/**
+	 * targetList 闇�瑕佸鐞嗙殑list
+	 * targetClass 鐩爣class
+	 * @return List 澶勭悊濂界殑list
+	 */
+	public static List listMapParseListObj(List targetList, Class targetClass){
+		// 鍏堣幏鍙栬绫荤殑浠g悊瀵硅薄
+		Object obj = null;
+		try {
+			obj = targetClass.newInstance();
+		} catch (InstantiationException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		}
+		Field[] fields = targetClass.getDeclaredFields();
+		// 灏唋ist杞负list瀵硅薄
+		for(int i = 0; i< targetList.size(); i++){
+			Map map = (Map)targetList.get(i);                  // 鑾峰彇姣忎釜list閲岄潰姣忎釜map
+			for (Field field : fields) {
+				String fieldName = field.getName();
+				if(fieldName.equals("data")){
+					try {
+						PropertyUtils.setProperty(obj, fieldName, map);
+					}catch(Exception ex){
+					ex.printStackTrace();
+					}
+				}else if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))||map.containsKey(fieldName.toLowerCase(Locale.ROOT))) {
+					Object value="";
+					if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))) {
+						value = map.get(fieldName.toUpperCase());
+					}else if(map.containsKey(fieldName.toLowerCase(Locale.ROOT))){
+						value = map.get(fieldName.toLowerCase());
+					}
+					try{
+						//鍙栧緱鍊肩殑绫诲舰
+						Class type = PropertyUtils.getPropertyType(obj, fieldName);
+						if(!StringUtils.isEmpty(type)){
+
+							PropertyUtils.setProperty(obj, fieldName,convert(value, type));
+						}
+					}catch(Exception ex){
+						ex.printStackTrace();
+					}
+				}
+			}
+		}
+		// 灏唋ist<Map> 杞负瀵硅薄杩涜杩斿洖
+		List resListObj = Lists.newArrayList();
+		for (Object object : targetList) {
+			JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(object));
+			resListObj.add(jsonObject.toJavaObject((Type)targetClass));
+		}
+
+		//杩斿洖灏佽濂界殑闆嗗悎
+		return resListObj;
+	}
+
+	/**
+	 * targetList 闇�瑕佸鐞嗙殑list
+	 * targetClass 鐩爣class
+	 * @return List 澶勭悊濂界殑list
+	 */
+	public static <T> T mapParseJavaBean(Map map, Class targetClass){
+		// 鍏堣幏鍙栬绫荤殑浠g悊瀵硅薄
+		Object obj = null;
+		try {
+			obj = targetClass.newInstance();
+		} catch (InstantiationException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		}
+		Field[] fields = targetClass.getDeclaredFields();
+		// 灏唋ist杞负list瀵硅薄
+			for (Field field : fields) {
+				String fieldName = field.getName();
+				if(fieldName.equals("data")){
+					try {
+						PropertyUtils.setProperty(obj, fieldName, map);
+					}catch(Exception ex){
+						ex.printStackTrace();
+					}
+				}else if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))||map.containsKey(fieldName.toLowerCase(Locale.ROOT))) {
+					Object value="";
+					if (map.containsKey(fieldName.toUpperCase(Locale.ROOT))) {
+						value = map.get(fieldName.toUpperCase());
+					}else if(map.containsKey(fieldName.toLowerCase(Locale.ROOT))){
+						value = map.get(fieldName.toLowerCase());
+					}
+					try{
+						//鍙栧緱鍊肩殑绫诲舰
+						Class type = PropertyUtils.getPropertyType(obj, fieldName);
+						if(!StringUtils.isEmpty(type)){
+
+							PropertyUtils.setProperty(obj, fieldName,convert(value, type));
+						}
+					}catch(Exception ex){
+						ex.printStackTrace();
+					}
+				}
+			}
+			/*// 灏唋ist<Map> 杞负瀵硅薄杩涜杩斿洖
+			List resListObj = Lists.newArrayList();
+			JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(obj));
+			resListObj.add(jsonObject.toJavaObject((Type)targetClass));*/
+		//杩斿洖灏佽濂界殑闆嗗悎
+		return (T) obj;
+	}
+
+
+	public static Object convert(Object value, Class clazz){
+		if (value == null) { // 濡傛灉鑾峰彇鍙傛暟鍊间负null,鍒欒繑鍥瀗ull
+			return null;
+		} else if (!value.equals("")) { // 濡傛灉鑾峰彇鍙傛暟鍊间笉涓�"",鍒欓�氳繃convertGt鏂规硶杩涜绫诲瀷杞崲鍚庤繑鍥炵粨鏋�
+			return convertGt(value, clazz);
+		} else if (clazz.getName().equals(String.class.getName())) { // 濡傛灉鑾峰彇鍙傛暟鍊间负""
+			return convertGt(value, clazz);
+		} else {// 濡傛灉鑾峰彇鍙傛暟鍊间负"",骞朵笖clazz涓嶆槸鏄疭tring绫诲瀷,鍒欒繑鍥瀗ull
+			return null;
+		}
+	}
+	/**
+	 * @param value
+	 * @param clazz
+	 * @return
+	 */
+
+	@SuppressWarnings("unchecked")
+	public static Object convertGt(Object value, Class clazz) {
+		if (value == null) { // 濡傛灉鍊间负null,鍒欒繑鍥瀗ull
+			return null;
+		} else if (value.equals("")&& !clazz.getName().equals(String.class.getName())) { // 濡傛灉value鍊间负"",鑰屼笖瑕佽浆涓虹殑绫诲瀷涓嶆槸string绫诲瀷锛岄偅涔堝氨缁熶竴杩斿洖null锛屼篃灏辨槸绌哄瓧绗︿覆涓嶈兘杞垚浠讳綍鍏朵粬绫诲瀷鐨勫疄浣擄紝鍙兘杩斿洖null
+				return null;
+			} else if (Date.class.getName().equalsIgnoreCase(clazz.getName())) { // 澧炲姞瀵逛粠String绫诲瀷鍒癉ate
+				return convertSTD(value.toString());
+			}
+			return ConvertUtils.convert(value, clazz);
+		}
+	//鏃ユ湡绫诲瀷鐨勮浆鎹�
+	private static SimpleDateFormat simpleDateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+	public static Date convertSTD(String date){
+		try {
+			return simpleDateFormate.parse(date);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return null;
+		}
+	public static String convertDTS(Date date){
+		return simpleDateFormate.format(date);
+	}
+}
diff --git a/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
index 669a14f..2a7ec76 100644
--- a/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
+++ b/Source/UBCS/ubcs-codeApply/src/main/resources/properties/conf.properties
@@ -20,6 +20,6 @@
 #PDM????????????????????????????????????????#??
 410.PDM.LibCodeName=\u7269\u54c1\#\u9644\u5f55
 #code ????
-410.code.url=http://127.0.0.1:36014/codeApplySwingController
+410.code.url=http://127.0.0.1:37000/ubcs-code/codeApplySwingController
 
 
diff --git a/Source/UBCS/ubcs-codeApply/src/test/java/tt.json b/Source/UBCS/ubcs-codeApply/src/test/java/tt.json
new file mode 100644
index 0000000..c92016f
--- /dev/null
+++ b/Source/UBCS/ubcs-codeApply/src/test/java/tt.json
@@ -0,0 +1,44 @@
+{
+  "tenant_id": "986926",
+  "xinghaoguige": "",
+  "lastmodifier": "",
+  "secondfl": "",
+  "codetemplateoid": "c59e6ff9d7a30ddbe4a776d6eb534d54",
+  "description": "",
+  "oid": "1681250544175419392",
+  "shifoupihaoguanli": "true",
+  "thrifl": "",
+  "firstfl": "",
+  "jiliangdwname": "",
+  "xinghaoguigeText": "null",
+  "materialtype": "1001-01-01",
+  "materialtypeText": "1001-01-01",
+  "chukufangshi": "",
+  "morengongysname": "",
+  "hesuanfenlei": "",
+  "lcstatus_text": "宸插彂甯�",
+  "oldcode": "",
+  "id": "A001001200000000XJ7E1C92A2-9B6F-4DB3-48C7-F42D1304E36B8",
+  "hesuanfenleiname": "",
+  "codeclsfpath": "46B5DB5E-F783-DFE9-B48A-C4A367D02AC0##0C600A6A-6398-FC30-D13E-121201FDA908##1C7A2455-5831-1535-2A21-B4C1CC9C7C9D##D9CF223F-317D-71EB-BD11-433A94CAD9F3",
+  "zuixiaoqiding": "",
+  "owner": "-1",
+  "xiaoshouwl": "false",
+  "creator": "weidy",
+  "createtime": "2023-07-18 18:32:20.513",
+  "caigouwl": "true",
+  "kucunwl": "true",
+  "tuhao": "",
+  "btmname": "wupin",
+  "revisionvalue": "",
+  "codeclsfid": "46B5DB5E-F783-DFE9-B48A-C4A367D02AC0",
+  "name": "",
+  "jiliangdw": "",
+  "materialclassify": "",
+  "lastmodifytime": "2023-07-199",
+  "morengongys": "",
+  "lcstatus": "Released",
+  "rn": "1",
+  "ts": "2023-07-18 18:32:20.513",
+  "lastmodifytimeText": "2023-07-199"
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
index 55454d4..b775a19 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
@@ -101,6 +101,12 @@
 	@ApiModelProperty(value = "鎺ュ彛绫诲瀷鏄剧ず鏂囨湰")
 	@TableField(exist = false)
 	private String interfaceTypeText;
+
+	@Override
+	public String getFirstR() {
+		return super.getFirstR();
+	}
+
 	/**
 	 * 鍙傛暟绫诲瀷
 	 */
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/ComponentRule.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/ComponentRule.java
new file mode 100644
index 0000000..3cd122b
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/ComponentRule.java
@@ -0,0 +1,32 @@
+package com.vci.ubcs.code.vo;
+
+import java.util.Map;
+
+public class ComponentRule {
+	private Map<String,String> dataMap;
+	private  String componentRuleValue;
+
+	public Map<String, String> getDataMap() {
+		return dataMap;
+	}
+
+	public void setDataMap(Map<String, String> dataMap) {
+		this.dataMap = dataMap;
+	}
+
+	public String getComponentRuleValue() {
+		return componentRuleValue;
+	}
+
+	public void setComponentRuleValue(String componentRuleValue) {
+		this.componentRuleValue = componentRuleValue;
+	}
+
+	@Override
+	public String toString() {
+		return "ComponentRule{" +
+			"dataMap=" + dataMap +
+			", componentRuleValue='" + componentRuleValue + '\'' +
+			'}';
+	}
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java
index 0d02f10..eb29fea 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/MdmUIInfoVO.java
@@ -1,7 +1,5 @@
 package com.vci.ubcs.code.vo.pagemodel;
 
-import com.vci.ubcs.flow.core.vo.ProcessStageAttrVO;
-
 import java.util.List;
 
 public class MdmUIInfoVO implements java.io.Serializable {
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
index d3a16ac..a598e4f 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -37,8 +37,6 @@
 import java.math.BigInteger;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -1371,9 +1369,14 @@
 //						String sqlField = camelToUnderscore(key);
 
 
-						if (map.containsKey(key.toUpperCase())) {
+						if (map.containsKey(key.toUpperCase(Locale.ROOT))||map.containsKey(key.toLowerCase(Locale.ROOT))) {
 							try {
-								Object value = map.get(key.toUpperCase());
+								Object value="";
+								if (map.containsKey(key.toUpperCase(Locale.ROOT))) {
+									value = map.get(key.toUpperCase());
+								}else if(map.containsKey(key.toLowerCase(Locale.ROOT))){
+									value = map.get(key.toLowerCase());
+								}
 								// 寰楀埌property瀵瑰簲鐨剆etter鏂规硶
 								Method setter = property.getWriteMethod();
 								Class<?> type = property.getPropertyType();
@@ -1395,6 +1398,7 @@
 		return beanList;
 }
 
+
 	public static String camelToUnderscore(String name) {
 		if (name == null && name.length() <= 0) {
 			return name;
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
index 8d64a67..0e51064 100644
--- 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
@@ -1,29 +1,34 @@
 package com.vci.ubcs.code.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
+import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.entity.CodeClassify;
+import com.vci.ubcs.code.enumpack.CodeClassifyProcessUseEnum;
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
 import com.vci.ubcs.code.service.ICodeClassifyValueService;
 import com.vci.ubcs.code.service.MdmEngineService;
+import com.vci.ubcs.code.service.impl.FormulaServiceImpl;
+import com.vci.ubcs.code.vo.ComponentRule;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.starter.annotation.VciBusinessLog;
 import com.vci.ubcs.starter.revision.model.BaseModel;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
-import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
-import com.vci.ubcs.starter.web.pagemodel.KeyValue;
-import com.vci.ubcs.starter.web.pagemodel.Tree;
-import com.vci.ubcs.starter.web.pagemodel.UIFormReferVO;
+import com.vci.ubcs.starter.web.pagemodel.*;
 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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 涓婚搴撳畾涔夎〃 鎺у埗鍣�
@@ -53,6 +58,12 @@
 	 * 鍒嗙被鐮佹鏈嶅姟
 	 */
 	private final ICodeClassifyValueService codeClassifyValueService;
+
+	/**
+	 * 鍏紡鐨勬湇鍔�
+	 */
+	@Autowired
+	private FormulaServiceImpl formulaService;
 	/**
 	 * 鑾峰彇搴撹妭鐐逛俊鎭�
 	 * @param libName 搴撹妭鐐瑰悕绉�
@@ -169,4 +180,54 @@
 		return R.data(iPage);
 
 	}
+
+	/**
+	 * 鑾峰彇灞炴�х粍鍚堣鍒欑殑鍊�
+	 * @param componentRule 鍙傜収鐨勯厤缃俊鎭�
+	 * @param componentRule 缁勫悎瑙勫垯
+	 * @return 鎵ц鐨勭粨鏋�
+	 */
+	@GetMapping("/getValueByFormula")
+	public R<String> getValueByFormula(ComponentRule componentRule){
+		String value = formulaService.getValueByFormula(componentRule.getDataMap(),componentRule.getComponentRuleValue());
+		return R.data(value);
+	}
+
+	/**
+	 * 浣跨敤鍒嗙被鑾峰彇瀵瑰簲鐨勬暟鎹�
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param templateOid 妯℃澘鐨勪富閿�
+	 * @param queryObject 鍩虹鏌ヨ瀵硅薄
+	 * @return 鏁版嵁鐨勪俊鎭紙鍖呭惈涓嬬骇鍒嗙被锛�
+	 */
+	@GetMapping("/gridTableDataByClassifyOid")
+	@VciBusinessLog(operateName = "鏌ヨ涓婚搴撳垎绫荤殑鏁版嵁")
+	public R<DataGrid<Map<String,String>>> gridTableDataByClassifyOid(String codeClassifyOid, String templateOid, BaseQueryObject queryObject){
+		//TODO鍚庣画鍙互瀹氫箟鏌ヨ妯℃澘鏉ユ煡璇�
+		return R.data(mdmEngineService.gridTableDataByClassifyOid(codeClassifyOid,templateOid,queryObject.getConditionMap(),queryObject.getPageHelper()));
+	}
+
+	/***
+	 *缁熻瀛愯妭鐐圭殑涓暟
+	 * @param parentId 鐖惰妭鐐筼id
+	 * @return
+	 */
+	@GetMapping("/countChildrenByClassifyOid")
+	@VciBusinessLog(operateName = "缁熻瀛愯妭鐐圭殑涓暟")
+	public R<Integer> countChildrenByClassifyOid(String parentId){
+	 	int count=	this.codeClassifyService.countChildrenByClassifyOid(parentId);
+	 	return R.data(count);
+	}
+
+	/**
+	 * 鐢宠缂栫爜淇濆瓨
+	 * @param orderDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝闇�瑕佹湁灞炴�у拰鐮佹鐩稿叧鐨勪俊鎭�
+	 * @return 鎵ц缁撴灉
+	 */
+	@PostMapping("/addSaveCode")
+	@VciBusinessLog(operateName = "鐢宠鍗曚釜缂栫爜")
+	public R addSaveCode(@RequestBody CodeOrderDTO orderDTO) throws Exception {
+		return R.success(mdmEngineService.addSaveCode(orderDTO));
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
index 0558c3a..a363fc1 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -164,9 +164,14 @@
 		log.info(" 澧炲姞绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�:"+dockingSystemConfigDTO.toString());
 		VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		checkColumnNotNull(dockingSystemConfigDTO);
-		String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();
-		DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
-		dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
+		String systemOid ="";
+		if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.ACCEPT.getValue())) {
+			systemOid = dockingSystemConfigDTO.getTargetSystemOid();
+		}else{
+			systemOid = dockingSystemConfigDTO.getSourceSystemOid();
+		}
+		DockingSystem dockingSystem = dockingSystemMapper.selectById(systemOid);
+		dockingSystemConfigDTO.setSysBaseOid(systemOid);
 		dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
 		dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
 		dockingSystemConfigDTO.setUsedFlag("true");//璁剧疆榛樿鍚敤鐘舵��
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/FormulaServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/FormulaServiceImpl.java
index 2b28004..c7f08d5 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/FormulaServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/FormulaServiceImpl.java
@@ -709,7 +709,7 @@
 			str = str.substring(2);
 		}
 		//闇�瑕佹浛鎹㈢郴缁熷彉閲�
-		Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap();
+		Map<String, String> systemVarValueMap = new HashMap<>();//VciSystemVarConstants.getSystemVarValueMap();
 		if(!CollectionUtils.isEmpty(systemVarValueMap)){
 			final String[] finalStr = new String[]{str};
 			systemVarValueMap.forEach((key,value)->{
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index 038f48c..4f6b09d 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -187,38 +187,40 @@
 			//鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉�
 			//鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑
 			//缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏�
-			List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s ->
-				!DEFAULT_ATTR_LIST.contains(s.getId())
-					&& StringUtils.isBlank(s.getComponentRule())
-					&& StringUtils.isBlank(s.getClassifyInvokeAttr())
-					&& (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
-			).collect(Collectors.toList());
-			if(CollectionUtils.isEmpty(templateAttrVOS)){
-				throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
-			}
-			templateAttrVOS.stream().forEach(codetemplateAttr ->{
-				String field=codetemplateAttr.getId();
-				String name=codetemplateAttr.getName();
-				CodeClassifyTemplateAttrVO codeBaseAttributeDTO=new CodeClassifyTemplateAttrVO();
-				boolean res=(StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup())&& codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
-					||(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
-					||(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
-					||(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
-				if(allFieldToOutNameMap.containsKey(name)){//濡傛灉瀛樺湪鐨勮瘽鍒欓渶瑕佹牴鎹叿浣撶殑鍘昏祴鍊�
-					codeBaseAttributeDTO=  allFieldToOutNameMap.get(name);
-					if(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())){
-						codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//灞炴�у叧閿睘鎬�
-					}
-					if(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag())){
-						codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//灞炴�у繀濉」
-					}
-					if(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())){
-						codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//灞炴�х浉浼煎睘鎬�
-					}
-				}else if(res){
-					allFieldToOutNameMap.put(name,codetemplateAttr);
+			if(!CollectionUtils.isEmpty(templateVO.getAttributes())) {
+				List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s ->
+					!DEFAULT_ATTR_LIST.contains(s.getId())
+						&& StringUtils.isBlank(s.getComponentRule())
+						&& StringUtils.isBlank(s.getClassifyInvokeAttr())
+						&& (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
+				).collect(Collectors.toList());
+				if(CollectionUtils.isEmpty(templateAttrVOS)){
+					throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
 				}
-			});
+				templateAttrVOS.stream().forEach(codetemplateAttr -> {
+					String field = codetemplateAttr.getId();
+					String name = codetemplateAttr.getName();
+					CodeClassifyTemplateAttrVO codeBaseAttributeDTO = new CodeClassifyTemplateAttrVO();
+					boolean res = (StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup()) && codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
+						|| (StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
+						|| (StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
+						|| (StringUtils.isNotBlank(codetemplateAttr.getRequireFlag()) && Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
+					if (allFieldToOutNameMap.containsKey(name)) {//濡傛灉瀛樺湪鐨勮瘽鍒欓渶瑕佹牴鎹叿浣撶殑鍘昏祴鍊�
+						codeBaseAttributeDTO = allFieldToOutNameMap.get(name);
+						if (StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())) {
+							codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//灞炴�у叧閿睘鎬�
+						}
+						if (StringUtils.isNotBlank(codetemplateAttr.getRequireFlag()) && Boolean.parseBoolean(codetemplateAttr.getRequireFlag())) {
+							codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//灞炴�у繀濉」
+						}
+						if (StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) {
+							codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//灞炴�х浉浼煎睘鎬�
+						}
+					} else if (res) {
+						allFieldToOutNameMap.put(name, codetemplateAttr);
+					}
+				});
+			}
 		});
 		//鏁寸悊濂芥墍鏈夋ā鏉块渶瑕佸啓鍏xecl鐨勫睘鎬т俊鎭�
 		Workbook workbook = new HSSFWorkbook();
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml
index 2518fb3..df21621 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateMapper.xml
@@ -109,7 +109,7 @@
                                 start with oid = #{classifyoid}
                             connect by prior oid = parentcodeclassifyoid) cls
                            on t.codeclassifyoid = cls.oid
-        where t.lcstatus = #{templatelcstatus}
+        where t.lastr=1 and t.lastv=1 and t.lcstatus = #{templatelcstatus}
           and cls.oid is not null
     </select>
 

--
Gitblit v1.9.3