From f043d5d9d1919ee81d7b43e2f58cd8ac7419259a Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 25 八月 2023 11:09:22 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS-WEB/src/api/docking/info.js                                                                             |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java         |    2 
 Source/UBCS-WEB/public/cdn/xlsx/FileSaver.min.js                                                                    |  111 +++++++++++++++++++++-
 Source/UBCS-WEB/src/views/code/code.vue                                                                             |    4 
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml   |   12 -
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java |   74 +++++++-------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java               |   58 ++++++++++-
 Source/UBCS-WEB/src/components/FormTemplate/index.vue                                                               |   14 ++
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java       |    3 
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java             |    7 +
 10 files changed, 224 insertions(+), 63 deletions(-)

diff --git a/Source/UBCS-WEB/public/cdn/xlsx/FileSaver.min.js b/Source/UBCS-WEB/public/cdn/xlsx/FileSaver.min.js
index 2f145a1..0e585e2 100644
--- a/Source/UBCS-WEB/public/cdn/xlsx/FileSaver.min.js
+++ b/Source/UBCS-WEB/public/cdn/xlsx/FileSaver.min.js
@@ -1,7 +1,106 @@
 /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-var saveAs=saveAs||"undefined"!==typeof navigator&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator)||function(a){"use strict";if("undefined"===typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var k=a.document,n=k.createElementNS("http://www.w3.org/1999/xhtml","a"),w="download"in n,x=function(c){var e=k.createEvent("MouseEvents");e.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null);c.dispatchEvent(e)},q=a.webkitRequestFileSystem,u=a.requestFileSystem||q||a.mozRequestFileSystem,
-  y=function(c){(a.setImmediate||a.setTimeout)(function(){throw c;},0)},r=0,s=function(c){var e=function(){"string"===typeof c?(a.URL||a.webkitURL||a).revokeObjectURL(c):c.remove()};a.chrome?e():setTimeout(e,500)},t=function(c,a,d){a=[].concat(a);for(var b=a.length;b--;){var l=c["on"+a[b]];if("function"===typeof l)try{l.call(c,d||c)}catch(f){y(f)}}},m=function(c,e){var d=this,b=c.type,l=!1,f,p,k=function(){t(d,["writestart","progress","write","writeend"])},g=function(){if(l||!f)f=(a.URL||a.webkitURL||
-    a).createObjectURL(c);p?p.location.href=f:void 0==a.open(f,"_blank")&&"undefined"!==typeof safari&&(a.location.href=f);d.readyState=d.DONE;k();s(f)},h=function(a){return function(){if(d.readyState!==d.DONE)return a.apply(this,arguments)}},m={create:!0,exclusive:!1},v;d.readyState=d.INIT;e||(e="download");if(w)f=(a.URL||a.webkitURL||a).createObjectURL(c),n.href=f,n.download=e,x(n),d.readyState=d.DONE,k(),s(f);else{a.chrome&&b&&"application/octet-stream"!==b&&(v=c.slice||c.webkitSlice,c=v.call(c,0,
-    c.size,"application/octet-stream"),l=!0);q&&"download"!==e&&(e+=".download");if("application/octet-stream"===b||q)p=a;u?(r+=c.size,u(a.TEMPORARY,r,h(function(a){a.root.getDirectory("saved",m,h(function(a){var b=function(){a.getFile(e,m,h(function(a){a.createWriter(h(function(b){b.onwriteend=function(b){p.location.href=a.toURL();d.readyState=d.DONE;t(d,"writeend",b);s(a)};b.onerror=function(){var a=b.error;a.code!==a.ABORT_ERR&&g()};["writestart","progress","write","abort"].forEach(function(a){b["on"+
-  a]=d["on"+a]});b.write(c);d.abort=function(){b.abort();d.readyState=d.DONE};d.readyState=d.WRITING}),g)}),g)};a.getFile(e,{create:!1},h(function(a){a.remove();b()}),h(function(a){a.code===a.NOT_FOUND_ERR?b():g()}))}),g)}),g)):g()}},b=m.prototype;b.abort=function(){this.readyState=this.DONE;t(this,"abort")};b.readyState=b.INIT=0;b.WRITING=1;b.DONE=2;b.error=b.onwritestart=b.onprogress=b.onwrite=b.onabort=b.onerror=b.onwriteend=null;return function(a,b){return new m(a,b)}}}("undefined"!==typeof self&&
-  self||"undefined"!==typeof window&&window||this.content);"undefined"!==typeof module&&null!==module?module.exports=saveAs:"undefined"!==typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs});
+var saveAs = saveAs || "undefined" !== typeof navigator && navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator) || function (a) {
+  "use strict";
+  if ("undefined" === typeof navigator || !/MSIE [1-9]\./.test(navigator.userAgent)) {
+    var k = a.document, n = k.createElementNS("http://www.w3.org/1999/xhtml", "a"), w = "download" in n,
+      x = function (c) {
+        var e = k.createEvent("MouseEvents");
+        e.initMouseEvent("click", !0, !1, a, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null);
+        c.dispatchEvent(e)
+      }, q = a.webkitRequestFileSystem, u = a.requestFileSystem || q || a.mozRequestFileSystem,
+      y = function (c) {
+        (a.setImmediate || a.setTimeout)(function () {
+          throw c;
+        }, 0)
+      }, r = 0, s = function (c) {
+        var e = function () {
+          "string" === typeof c ? (a.URL || a.webkitURL || a).revokeObjectURL(c) : c.remove()
+        };
+        a.chrome ? e() : setTimeout(e, 500)
+      }, t = function (c, a, d) {
+        a = [].concat(a);
+        for (var b = a.length; b--;) {
+          var l = c["on" + a[b]];
+          if ("function" === typeof l) try {
+            l.call(c, d || c)
+          } catch (f) {
+            y(f)
+          }
+        }
+      }, m = function (c, e) {
+        var d = this, b = c.type, l = !1, f, p, k = function () {
+          t(d, ["writestart", "progress", "write", "writeend"])
+        }, g = function () {
+          if (l || !f) f = (a.URL || a.webkitURL ||
+            a).createObjectURL(c);
+          p ? p.location.href = f : void 0 == a.open(f, "_blank") && "undefined" !== typeof safari && (a.location.href = f);
+          d.readyState = d.DONE;
+          k();
+          s(f)
+        }, h = function (a) {
+          return function () {
+            if (d.readyState !== d.DONE) return a.apply(this, arguments)
+          }
+        }, m = {create: !0, exclusive: !1}, v;
+        d.readyState = d.INIT;
+        e || (e = "download");
+        if (w) f = (a.URL || a.webkitURL || a).createObjectURL(c), n.href = f, n.download = e, x(n), d.readyState = d.DONE, k(), s(f); else {
+          a.chrome && b && "application/octet-stream" !== b && (v = c.slice || c.webkitSlice, c = v.call(c, 0,
+            c.size, "application/octet-stream"), l = !0);
+          q && "download" !== e && (e += ".download");
+          if ("application/octet-stream" === b || q) p = a;
+          u ? (r += c.size, u(a.TEMPORARY, r, h(function (a) {
+            a.root.getDirectory("saved", m, h(function (a) {
+              var b = function () {
+                a.getFile(e, m, h(function (a) {
+                  a.createWriter(h(function (b) {
+                    b.onwriteend = function (b) {
+                      p.location.href = a.toURL();
+                      d.readyState = d.DONE;
+                      t(d, "writeend", b);
+                      s(a)
+                    };
+                    b.onerror = function () {
+                      var a = b.error;
+                      a.code !== a.ABORT_ERR && g()
+                    };
+                    ["writestart", "progress", "write", "abort"].forEach(function (a) {
+                      b["on" +
+                      a] = d["on" + a]
+                    });
+                    b.write(c);
+                    d.abort = function () {
+                      b.abort();
+                      d.readyState = d.DONE
+                    };
+                    d.readyState = d.WRITING
+                  }), g)
+                }), g)
+              };
+              a.getFile(e, {create: !1}, h(function (a) {
+                a.remove();
+                b()
+              }), h(function (a) {
+                a.code === a.NOT_FOUND_ERR ? b() : g()
+              }))
+            }), g)
+          }), g)) : g()
+        }
+      }, b = m.prototype;
+    b.abort = function () {
+      this.readyState = this.DONE;
+      t(this, "abort")
+    };
+    b.readyState = b.INIT = 0;
+    b.WRITING = 1;
+    b.DONE = 2;
+    b.error = b.onwritestart = b.onprogress = b.onwrite = b.onabort = b.onerror = b.onwriteend = null;
+    return function (a, b) {
+      return new m(a, b)
+    }
+  }
+}("undefined" !== typeof self &&
+  self || "undefined" !== typeof window && window || this.content);
+"undefined" !== typeof module && null !== module ? module.exports = saveAs : "undefined" !== typeof define && null !== define && null != define.amd && define([], function () {
+  return saveAs
+});
diff --git a/Source/UBCS-WEB/src/api/docking/info.js b/Source/UBCS-WEB/src/api/docking/info.js
index 2d17aad..4f62981 100644
--- a/Source/UBCS-WEB/src/api/docking/info.js
+++ b/Source/UBCS-WEB/src/api/docking/info.js
@@ -2,7 +2,7 @@
 
 export const getList = (page, size, params) => {
   return request({
-    url: '/api/ubcs-code/dockingManagement/gridDockingSystem',
+    url: '/api/ubcs-code/dockingManagement/gridSystemConfig',
     method: 'get',
     params: {
       ...params,
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index 8bcb7ef..69e0bc2 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -84,7 +84,7 @@
 import FormTemplate from "./FormTemplate";
 import ResembleQuery from "./ResembleQuery";
 export default {
-  name: "FormTemplateDialog",
+    name: "FormTemplateDialog",
   components: { ResembleQuery, FormTemplate },
   props: {
     visible: {
@@ -265,13 +265,19 @@
         if (res.data && res.data.code === 200) {
           this.codeRuleOid = res.data.data.oid;
           const typeList = [
+            //鍥哄畾鐮佹
             "codefixedsec",
+            //鍒嗙被鐮佹
             "codeclassifysec",
+            //鍙彉鐮佹
             "codevariablesec",
+            //寮曠敤鐮佹
             "coderefersec",
+            //灞炴�х爜娈�
             "codeattrsec",
-            "codelevelsec",
-            "codedatesec"
+            // "codelevelsec",
+            //鏃ユ湡鐮佹
+            "codedatesec",
           ];
           this.secVOList = (res.data.data.secVOList || []).filter((item) =>
             typeList.includes(item.secType)
@@ -286,6 +292,8 @@
             this.showCodeApply = false;
           }
         }
+        console.log(' this.secVOList',this.secVOList)
+        console.log(' res.data.data.secVOList',res.data.data.secVOList)
       });
     },
     getFormData(form) {
diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index ff912b9..4b9fec7 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -845,7 +845,7 @@
   import fixedValueOption from "@/const/code/fixedValueMgrDialog";
   import {mapGetters} from "vuex";
   import {getByRoleUserList} from "@/api/system/user";
-  import func from "@/util/func"; 
+  import func from "@/util/func";
 
   export default {
       data() {
@@ -890,7 +890,7 @@
             visible:false,
 
           },
-          
+
           /*浣跨敤鑼冨洿瀵硅瘽妗嗘樉绀烘帶鍒�*/
           codeRangeSettingBox: false,
           useRangeData: [],
diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml
index 291ff8b..e7f4bc2 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml
@@ -9,14 +9,12 @@
             <objects>
                 <object code=""  id="0023401" status="Editing" operate="create" creator="weidy" >
                     <prop key="name" text="鍚嶇О" value="娓╁害璋冭妭鍣�2333"/>
-                    <prop key="xinghaoguige" text="鍨嬪彿瑙勬牸" value="GB-002599"/>
-                    <prop key="tuhao" text="鍥惧彿" value="TH-002599"/>
+                    <prop key="tuhao" text="鍥惧彿" value="TH-0031"/>
 
                 </object>
                 <object  code="" id="0023402" status="Editing" operate="create" creator="weidy">
                     <prop key="name" text="鎵�灞炵粨鏋�" value="娓╁害璋冭妭鍣�"/>
-                    <prop key="xinghaoguige" text="鍨嬪彿瑙勬牸" value="GB-00257"/>
-                    <prop key="tuhao" text="鍥惧彿" value="TH-00257"/>
+                    <prop key="tuhao" text="鍥惧彿" value="TH-0031"/>
                 </object>
             </objects>
         </classify>
@@ -27,13 +25,11 @@
             <objects>
                 <object code="" id="0023403" status="Editing" operate="create" creator="weidy">
                     <prop  key="name" text="鍚嶇О" value="娓╁害璋冭妭鍣�2"/>
-                    <prop key="xinghaoguige" text="鍨嬪彿瑙勬牸" value="GB-00255"/>
-                    <prop key="tuhao" text="鍥惧彿" value="TH-00255"/>
+                    <prop key="tuhao" text="鍥惧彿" value="TH-0032"/>
                 </object>
                 <object code="" id="0023404" status="Editing" operate="create" creator="weidy">
                     <prop key="name" text="鎵�灞炵粨鏋�" value="qwqw"/>
-                    <prop key="xinghaoguige" text="鍨嬪彿瑙勬牸" value="GB-0026"/>
-                    <prop key="tuhao" text="鍥惧彿" value="TH-0026"/>
+                    <prop key="tuhao" text="鍥惧彿" value="TH-0032"/>
                 </object>
             </objects>
         </classify>
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
index 46b32b6..cbc0047 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -98,6 +98,8 @@
 		try {
 			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 			baseModel.setOid(dataMap.getOrDefault("OID",""));
+			baseModel.setId(dataMap.getOrDefault("ID",""));
+			baseModel.setData(dataMap);;
 			Object createTimeObj=dataMap.getOrDefault("CREATETIME","");
 			if(createTimeObj!=null) {
 				String createTime = createTimeObj.toString();
@@ -140,6 +142,7 @@
 			baseModel.setVersionValue(dataMap.getOrDefault("VERSIONVALUE",""));
 			baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID",""));
 			baseModel.setLastModifier(userId);
+
 		}catch (VciBaseException e){
 			e.printStackTrace();
 		}
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 ffec7f9..288ae1f 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
@@ -19,6 +19,7 @@
 import com.vci.ubcs.starter.web.wrapper.VciQueryWrapperForDO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ResourceUtils;
 
@@ -1339,10 +1340,14 @@
 				}
 			}
 		}
-		//浣滅敤涓昏鐢ㄤ簬宸睲AP涓殑鏁版嵁涓哄噯锛宐ean閲岄潰閬囧埌瀛楁鐩稿悓涔熶細杩涜瑕嗙洊銆�
+		//浣滅敤涓昏鐢ㄤ簬宸睲AP涓殑鏁版嵁涓哄噯锛宐ean閲岄潰閬囧埌瀛楁鐩稿悓涓攎ap閲岄潰鏁版嵁涓虹┖锛屽垯浣跨敤bean閲岄潰鐨勫��,
 //		Map resulMapChild = (Map) mapData;
 		for (Object o : mapData.keySet()) {
 			if(existFild == null || existFild.contains(String.valueOf(o).toLowerCase())){
+				if(Func.isNotBlank(String.valueOf(returnMap.get(String.valueOf(o).toLowerCase())))
+					&& Func.isBlank(String.valueOf(mapData.get(o)))){
+					continue;
+				}
 				returnMap.put(String.valueOf(o).toLowerCase(),mapData.get(o));
 			}
 		}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java
index 1cee607..6882ada 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java
@@ -31,7 +31,7 @@
 	 * @param dockingSystemConfigDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
 	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
 	 */
-	 boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO);
+	 boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable;
 	/**
 	 * 淇敼 绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�
 	 * @param dockingSystemConfigDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
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 c4ace0a..a256faf 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
@@ -161,56 +161,58 @@
 	 */
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
+	public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable {
 		log.info(" 澧炲姞绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�:"+dockingSystemConfigDTO.toString());
 		VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		checkColumnNotNull(dockingSystemConfigDTO);
 		String systemOid ="";
-		if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.ACCEPT.getValue())) {
+		if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.PUSH.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");//璁剧疆榛樿鍚敤鐘舵��
+		if(dockingSystem!=null) {
+			dockingSystemConfigDTO.setSysBaseOid(systemOid);
+			dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
+			dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
+			dockingSystemConfigDTO.setUsedFlag("true");//璁剧疆榛樿鍚敤鐘舵��
 
-		//灏咲TO杞崲涓篋O
-		DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
-		revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
+			//灏咲TO杞崲涓篋O
+			DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
+			revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
 
 
-		List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
-		List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
-		if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
-			sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
-				DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
-				sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
-				BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
-				DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO, MdmBtmTypeConstant.SYS_INT_PARAMTERY);
-				sysIntParamList.add(sysIntParamDO);
-			});
+			List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
+			List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
+			if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
+				sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
+					DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
+					sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
+					BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO, MdmBtmTypeConstant.SYS_INT_PARAMTERY);
+					sysIntParamList.add(sysIntParamDO);
+				});
+			}
+			List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
+			List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
+			if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
+				sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
+					DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
+					sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
+					BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
+					sysIntHeaderList.add(dockingSysIntHeader);
+				});
+			}
+			dockingSysIntParamService.saveBatch(sysIntParamList);
+			dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
+			DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
+			dockingSystemConfigMapper.insert(dockingSystemConfig);
+		}else{
+			throw new Throwable("鏍规嵁閫夋嫨鐨勯泦鎴愮郴缁熸湭鏍¢獙鍒扮郴缁熶腑瀛樺湪姝ら泦鎴愮郴缁燂紝璇锋牳瀵癸紒");
 		}
-		List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
-		List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
-		if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
-			sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
-				DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
-				sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
-				BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
-				DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
-				sysIntHeaderList.add(dockingSysIntHeader);
-			});
-		}
-		dockingSysIntParamService.saveBatch(sysIntParamList);
-		dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
-		DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
-		dockingSystemConfigMapper.insert(dockingSystemConfig);
-
 		return true;
-
 	}
 
 	/**
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 672fade..b0e21bf 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
@@ -1962,6 +1962,7 @@
 		CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
 		Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
 		Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
+		Map<String,List<String>>keyAttrOkOidTORepeatOidMap= keyResultVO.getKeyAttrOkOidTORepeatOidMap();
 		if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){
 			selfRepeatRowIndexList.stream().forEach(rowIndex->{
                /* //浼犲叆鏁版嵁涔嬮棿鍏抽敭灞炴�х殑鏍¢獙
@@ -2064,8 +2065,8 @@
 							String lcstatus =newCbo.getLcStatus();
 							String newOid =newCbo.getOid();
 							Date ts =newCbo.getTs();
-							groupCode=newCbo.getData().get("GROUPCODE");
-							code=newCbo.getId();
+							code = StringUtils.isBlank(newCbo.getId())?"":newCbo.getId();
+							groupCode=newCbo.getData().getOrDefault("GROUPCODE","");
 							String lastmodifier=newCbo.getLastModifier();
 							if (lcstatus!=null&&!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) {
 								newCbo.setOid(newOid);
@@ -2136,8 +2137,8 @@
 				// if(!isProcess){
 				dataCBOList.stream().forEach(needSaveCbo->{
 					XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
-					String code=needSaveCbo.getId();
-					String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE","");
+					String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
+					String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
 					//resultDataObjectDetailDO.setCode(needSaveCbo.getId());
 					String msg="鐢宠缂栫爜鎴愬姛";
 					String oid=needSaveCbo.getOid();
@@ -2157,6 +2158,9 @@
 					resultDataObjectDetailDO.setErrorid("0");
 					resultDataObjectDetailDO.setMsg(msg);
 					resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
+					//澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁
+					LinkedList<XMLResultDataObjectDetailDO> repeatDataObjectDetailDOS=handleApplyDataKeyAttrRepeat(keyAttrOkOidTORepeatOidMap,codeOidToSystemOidMap,needSaveCbo,isCodeOrGroupCode);
+					resultDataObjectDetailDOs.addAll(repeatDataObjectDetailDOS);
 				});
                /* }else{
                     needSaveCboList.stream().forEach(needSaveCbo->{
@@ -2195,6 +2199,50 @@
 
 	}
 
+	/***
+	 *缁欏悓涓�鎵圭敵璇风紪鐮佸瓨鍦ㄥ叧閿睘鎬х殑鏁版嵁璧嬩笂涓�鑷寸紪鐮�
+	 * @param keyAttrOkOidTORepeatOidMap 涓�鎵圭敵璇锋暟鎹叧閿睘鎬т竴鑷寸殑閲嶅鏁版嵁鏄犲皠鍏崇郴
+	 * @param codeOidToSystemOidMap
+	 * @param needSaveCbo
+	 * @param isCodeOrGroupCode
+	 */
+	private LinkedList<XMLResultDataObjectDetailDO> handleApplyDataKeyAttrRepeat(Map<String,List<String>>keyAttrOkOidTORepeatOidMap,Map<String,String> codeOidToSystemOidMap,BaseModel needSaveCbo,boolean isCodeOrGroupCode){
+		LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
+		String oid=needSaveCbo.getOid();
+		if(keyAttrOkOidTORepeatOidMap.containsKey(oid)){
+			List<String> repeatOidList= keyAttrOkOidTORepeatOidMap.get(oid);
+			if(!CollectionUtils.isEmpty(repeatOidList)){
+				String sourceNewOid=needSaveCbo.getOid();
+				String sourceOid=sourceNewOid;
+				if(codeOidToSystemOidMap.containsKey(oid)){
+					sourceOid=codeOidToSystemOidMap.get(oid);
+				}
+				String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
+				String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
+				String finalSourceOid = sourceOid;
+				repeatOidList.stream().forEach(repeatOid->{
+					if(codeOidToSystemOidMap.containsKey(repeatOid)){
+						XMLResultDataObjectDetailDO repeatresultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
+						String repeatSourceOid=codeOidToSystemOidMap.get(repeatOid);
+						String repeatMsg="姝ゆ暟鎹笌鐢宠鐨勭紪鐮佹暟鎹甶d涓恒��"+ finalSourceOid +"銆戠殑鍏抽敭灞炴�т竴鑷达紝鍒欏彇鐩稿悓缂栫爜";
+						if(isCodeOrGroupCode) {
+							if(StringUtils.isBlank(groupCode)){
+								repeatMsg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��";
+							}
+							repeatresultDataObjectDetailDO.setCode(groupCode);
+						}else{
+							repeatresultDataObjectDetailDO.setCode(code);
+						}
+						repeatresultDataObjectDetailDO.setId(repeatSourceOid);
+						repeatresultDataObjectDetailDO.setErrorid("0");
+						repeatresultDataObjectDetailDO.setMsg(repeatMsg);
+						resultDataObjectDetailDOs.add(repeatresultDataObjectDetailDO);
+					}
+				});
+			}
+		}
+		return  resultDataObjectDetailDOs;
+	}
 	/***
 	 * 闆嗘垚鎵归噺鍚屾鏇存柊鎺ュ彛
 	 * @param codeClassifyVO;
@@ -3878,7 +3926,7 @@
 			if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){
 				selfRepeatRowIndexList.add(rowIndex);
 				String okOid=okOidKeyStringMap.getOrDefault(keyString,"");
-				if(StringUtils.isBlank(okOid)){
+				if(StringUtils.isNotBlank(okOid)){
 					List<String>newOidList=new ArrayList<>();
 					newOidList.add(oid);
 					if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){

--
Gitblit v1.9.3