From 89a21c0eecacd040e8189faeda6f73f69167cdc9 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 19 六月 2023 14:51:33 +0800 Subject: [PATCH] 合并 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java | 11 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java | 184 +--- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 26 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 673 ++++++++++++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java | 54 + Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml | 48 + Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue | 22 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java | 56 + Source/UBCS-WEB/vue.config.js | 1 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java | 7 Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue | 20 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 686 ++++++++++++++---- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 16 Source/UBCS-WEB/src/api/batchImport/index.js | 13 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java | 66 + Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue | 27 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java | 118 +++ Source/UBCS-WEB/src/components/BatchImport/index.vue | 103 ++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java | 51 + Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java | 7 20 files changed, 1,831 insertions(+), 358 deletions(-) diff --git a/Source/UBCS-WEB/src/api/batchImport/index.js b/Source/UBCS-WEB/src/api/batchImport/index.js index 33fb8bd..7790c47 100644 --- a/Source/UBCS-WEB/src/api/batchImport/index.js +++ b/Source/UBCS-WEB/src/api/batchImport/index.js @@ -1,9 +1,18 @@ import request from '@/router/axios'; -export const downloadTemplate = (params) => { +// 鍘嗗彶瀵煎叆妯℃澘涓嬭浇 +export const downloadHistoryImportTemplate = (params) => { return request({ - url: '/api/ubcs-code/mdmEngineController/downloadTopImportExcel ', + url: '/api/ubcs-code/mdmEngineController/downloadTopImportExcel', + method: 'get', + params + }) +} +// 涓嬭浇閿欒鏃ュ織 +export const downloadErrorFile = (params) => { + return request({ + url: '/api/ubcs-code/mdmEngineController/downloadErrorFile', method: 'get', params }) diff --git a/Source/UBCS-WEB/src/components/BatchImport/index.vue b/Source/UBCS-WEB/src/components/BatchImport/index.vue index cb6d21f..f9baddc 100644 --- a/Source/UBCS-WEB/src/components/BatchImport/index.vue +++ b/Source/UBCS-WEB/src/components/BatchImport/index.vue @@ -2,7 +2,7 @@ <el-dialog :title="title" :visible="visible" append-to-body> <Divider text="瀵煎叆鎻愮ず" left="30px"></Divider> <ul> - <li v-for="(item, index) in tipInfo" :key="index"> + <li v-for="(item, index) in tipList" :key="index"> {{ item }} </li> </ul> @@ -20,66 +20,119 @@ :action="action" :before-upload="beforeUpload" :on-exceed="handleExceed" + :headers="uploadHeaders" + :on-success="onSuccess" + :show-file-list="false" + :data="{ + codeClassifyOid: this.codeClassifyOid, + classifyAttr: this.classifyAttr, + }" > - <el-button size="small" type="primary"><i class="el-icon-upload"></i> 鐐瑰嚮涓婁紶</el-button> + <el-button size="small" type="primary" + ><i class="el-icon-upload"></i> 鐐瑰嚮涓婁紶</el-button + > </el-upload> <template #footer> - <el-button type="primary" size="small" @click="downloadTemplateFun">涓嬭浇瀵煎叆妯℃澘</el-button> + <el-button type="primary" size="small" @click="downloadTemplateFun" :loading="downloadLoading" + >涓嬭浇瀵煎叆妯℃澘</el-button + > <el-button size="small">鍏抽棴</el-button> </template> </el-dialog> </template> <script> -import { downloadTemplate } from '../../api/batchImport/index' +import { downloadHistoryImportTemplate, downloadErrorFile } from "../../api/batchImport/index"; +import { getToken } from "@/util/auth"; export default { name: "", props: { - title: { - type: String, - default: "鎵归噺鐢宠缂栫爜", - }, - tipInfo: { - type: Array, - default: () => [], - }, visible: { type: Boolean, default: false, }, accept: { type: String, - default: '.xlsx, .xls' + default: ".xlsx, .xls", }, codeClassifyOid: { type: String, - default: '' + default: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B", }, - downloadTemplateFun: { - type: Function - } + type: { + type: String, + default: "", + }, }, data() { return { - classType: "classCode", + classifyAttr: "id", + uploadParams: {}, + downloadLoading: false }; }, computed: { - action() { - console.log(process, 'process'); - return '/api/ubcs-code/mdmEngineController/mdmEngineController/batchTopImportCode' - } + uploadHeaders() { + return { + "Blade-Auth": "bearer " + getToken(), + }; + }, }, methods: { + getDataByType() { + if (this.type === "historyImport") { + this.title = "鍘嗗彶鏁版嵁瀵煎叆"; + this.tipList = [ + "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", + "2.浼佷笟缂栫爜锛岄泦鍥㈢爜鍜岀姸鎬侀兘闇�瑕佸鍏�", + "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨", + "4.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粎濉啓褰撳墠閫夌殑鍒嗙被鏍戜笂鐨勪笅绾у垎绫荤殑璺緞锛屽鏋滃綋鍓嶅垎绫诲凡缁忔槸鍙跺瓙鑺傜偣锛屽垯涓嶅~鍐�", + ]; + this.action = + "/api/ubcs-code/mdmEngineController/batchImportHistoryData"; + } else if (this.type === "codeApply") { + this.title = "鎵归噺缂栫爜鐢宠"; + this.tipList = [ + "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」", + "2.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粠褰撳墠閫夋嫨鍒嗙被鑺傜偣鐨勪笅绾у紑濮嬪~鍐欙紝鐩村埌鏈�鏈熬鑺傜偣锛屽 浜у搧#涓绘満浜у搧#涓绘満浜у搧", + ]; + } + }, beforeUpload(file) { - const fileType = file.name.split('.').pop() - if (fileType !== 'xlsx' && fileType !== 'xls') { + const fileType = file.name.split(".").pop(); + if (fileType !== "xlsx" && fileType !== "xls") { // 涓婁紶鏍煎紡涓嶇鍚堣姹傦紝鎻愮ず閿欒淇℃伅骞跺彇娑堜笂浼� - this.$message.error('鍙厑璁镐笂浼爔lsx銆亁ls鏍煎紡鐨勬枃浠�'); + this.$message.error("鍙厑璁镐笂浼爔lsx銆亁ls鏍煎紡鐨勬枃浠�"); return false; } return true; }, + // 涓嬭浇瀵煎叆妯℃澘 + downloadTemplateFun() { + this.downloadLoading = true + downloadHistoryImportTemplate({ + codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B", + }).then(res => { + this.downloadLoading = false + console.log(res); + }).catch(() => { + this.downloadLoading = false + }); + }, + onSuccess(res) { + if (res.code === 400) { + this.$message.error(`${res.msg}锛岃涓嬭浇閿欒淇℃伅杩涜鏌ョ湅锛乣) + } + downloadErrorFile({uuid: res.data.fileOid}) + } + }, + watch: { + visible: { + immediate:true, + handler() { + this.getDataByType(); + } + } }, }; </script> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue index 1017fc7..348fc9b 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue @@ -62,7 +62,7 @@ selectionList: [], option: { addBtn: false, - height: this.referConfig.options.height ? this.referConfig.options.height : 475, + //height: this.referConfig.options.height ? this.referConfig.options.height : 475, calcHeight: 30, tip: false, menu:false, @@ -242,7 +242,7 @@ searchChange(params, done) { this.query = params; this.page.currentPage = 1; - this.onLoad(this.page, params); + this.onLoad(this.page); done(); }, currentChange(currentPage){ @@ -254,24 +254,30 @@ selectionChange(list) { if (!this.isMuti && list.length > 1) { const nowVal = list.shift(); - this.$refs.referCrud.toggleRowSelection(nowVal, false); + this.$refs.referDefalutCrud.toggleRowSelection(nowVal, false); } this.selectionList = list }, selectionClear() { this.selectionList = []; - this.$refs.referCrud.clearSelection(); + this.$refs.referDefalutCrud.toggleSelection(); }, refreshChange() { this.onLoad(this.page, this.query); }, - onLoad(page, params = this.params) { + onLoad(page, params={}) { if(this.url){ this.loading = true; - getList(Object.assign(params, this.query),page.currentPage, page.pageSize, this.url).then(res => { - const data = res.data.data; + var query={} + if (this.query) { + for (var key in this.query) { + query['conditionMap["' + key + '"]'] = this.query[key]; + } + } + getList(Object.assign(params,this.params, query,this.query),page.currentPage, page.pageSize, this.url).then(res => { + const data = res.data; this.page.total = data.total; - this.data = data.records; + this.data = data.data; this.loading = false; this.selectionClear(); }); diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue index b16a962..a626aee 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue @@ -301,7 +301,7 @@ searchChange(params, done) { this.query = params; this.page.currentPage = 1; - this.onLoad(this.page, params); + this.onLoad(this.page); done(); }, currentChange(currentPage){ @@ -319,18 +319,24 @@ }, selectionClear() { this.selectionList = []; - this.$refs.referCrud.clearSelection(); + this.$refs.referCrud.toggleSelection(); }, refreshChange() { this.onLoad(this.page, this.query); }, - onLoad(page, params = this.params) { + onLoad(page, params={}) { if(this.url){ this.loading = true; - getList(Object.assign(params, this.query),page.currentPage, page.pageSize, this.url).then(res => { - debugger; - this.page.total = res.total; - this.data = res.data; + var query={} + if (this.query) { + for (var key in this.query) { + query['conditionMap["' + key + '"]'] = this.query[key]; + } + } + getList(Object.assign(params,this.params, query,this.query),page.currentPage, page.pageSize, this.url).then(res => { + const data = res.data; + this.page.total = data.total; + this.data = data.data; this.loading = false; this.selectionClear(); }); diff --git a/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue b/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue index d140c92..8704a87 100644 --- a/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue +++ b/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue @@ -2,6 +2,7 @@ <div> <el-button @click="visible = true">娴嬭瘯</el-button> <el-button @click="visible1 = true">鐩镐技椤规煡璇�</el-button> + <el-button @click="visible3 = true">鎵归噺瀵煎叆</el-button> <el-button @click="visible2 = true">闄勪欢绠$悊dialog</el-button> <FormTemplateDialog :visible.sync="visible" @@ -20,41 +21,51 @@ :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" ></ResembleQueryDialog> + <BatchImport + :visible="visible3" + type="historyImport" + :downloadTemplateFun="downloadTemplateFun" + ></BatchImport> <fileInHtml :options="{}"></fileInHtml> <fileinDialog :visible="visible2" :options="{}" - @close="visible2=false" + @close="visible2 = false" ></fileinDialog> </div> </template> <script> -import ResembleQueryDialog from '@/components/FormTemplate/ResembleQueryDialog.vue'; -import fileInHtml from '@/components/file/inHtml.vue'; -import fileinDialog from '@/components/file/inDialog.vue'; +import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue"; +import fileInHtml from "@/components/file/inHtml.vue"; +import fileinDialog from "@/components/file/inDialog.vue"; +import BatchImport from "@/components/BatchImport"; export default { name: "FormTempalteTest", - components: { ResembleQueryDialog ,fileInHtml ,fileinDialog}, + components: { ResembleQueryDialog, fileInHtml, fileinDialog, BatchImport }, data() { return { visible: false, visible1: false, visible2: false, + visible3: false, // 榛樿绂佺敤鐨勮〃鍏冪礌 - disabledProp: ["id", 'lcstatus'], + disabledProp: ["id", "lcstatus"], // 琛ㄥ崟绫诲瀷 type: "add", templateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A", codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96", codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96", - rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9' + rowOid: "6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9", }; }, methods: { submit(data) { console.log(data); + }, + downloadTemplateFun() { + } - } + }, }; </script> diff --git a/Source/UBCS-WEB/vue.config.js b/Source/UBCS-WEB/vue.config.js index 5b32d90..50b261b 100644 --- a/Source/UBCS-WEB/vue.config.js +++ b/Source/UBCS-WEB/vue.config.js @@ -34,7 +34,6 @@ // target: 'http://192.168.1.104:37000', // target: 'http://192.168.1.63:37000', //target: 'http://192.168.3.7:37000', - // target: 'http://dev.vci-tech.com:37000', //target: 'http://192.168.1.51:37000/', // target:'http://192.168.1.104:37000', //杩滅▼婕旂ず鏈嶅姟鍦板潃,鍙敤浜庣洿鎺ュ惎鍔ㄩ」鐩� diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java new file mode 100644 index 0000000..9e7d7fe --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java @@ -0,0 +1,118 @@ +package com.vci.ubcs.code.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.vci.ubcs.starter.revision.model.BaseModel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/*** + * 瀹氭椂鍒嗗彂浠诲姟瀵硅薄 + */ +@Data +@TableName("PL_CODE_DOCKINGTASK") +@ApiModel(value = "DockingTask", description = "瀹氭椂鍒嗗彂浠诲姟瀵硅薄") +@EqualsAndHashCode +public class DockingTask extends BaseModel { + + /** + * 搴忓垪鍖� + */ + private static final long serialVersionUID = 5020487634341415429L; + + /** + * 绯荤粺鎺ュ彛oid + */ + @ApiModelProperty(value = "绯荤粺鎺ュ彛oid") + private String sysInfoOid; + + /** + * 绯荤粺id + */ + @ApiModelProperty(value = "绯荤粺id") + private String systemOid; + + /** + * 绯荤粺缂栧彿 + */ + @ApiModelProperty(value = "绯荤粺缂栧彿") + private String systemCode; + + /** + * 绯荤粺鍚嶇О + */ + @ApiModelProperty(value = "绯荤粺鍚嶇О") + private String systemName; + + /** + * 鍒嗙被oid + */ + @ApiModelProperty(value = "鍒嗙被oid") + private String classifyOid; + + /** + * 鍒嗙被id + */ + @ApiModelProperty(value = "鍒嗙被id") + private String classifyId; + + /** + * 鍒嗙被鍚嶇О + */ + @ApiModelProperty(value = "鍒嗙被鍚嶇О") + private String classifyName; + + /** + * 涓氬姟绫诲瀷鏁版嵁oid + */ + @ApiModelProperty(value = "涓氬姟绫诲瀷鏁版嵁oid") + private String btmOid; + + /** + * 涓氬姟绫诲瀷鏁版嵁id + */ + @ApiModelProperty(value = "涓氬姟绫诲瀷鏁版嵁id") + private String btmId; + + /** + * 鍞竴鏍囪瘑 + */ + @ApiModelProperty(value = "鍞竴鏍囪瘑") + private String uniqueCode; + + /** + * 鍙戦�佺被鍨� + */ + @ApiModelProperty(value = "鍙戦�佺被鍨�") + private String sendType; + + /** + * 鍙戦�佺被鍨嬫樉绀烘枃鏈� + */ + @ApiModelProperty(value = "鍙戦�佺被鍨嬫樉绀烘枃鏈�") + @TableField(exist = true) + private String sendTypeText; + + /** + * 鏄惁鍙戦�佹垚鍔� + */ + @ApiModelProperty(value = "鏄惁鍙戦�佹垚鍔�") + private String sendFlag; + + + /** + * 鏄惁鍙戦�佹垚鍔熸樉绀烘枃鏈� + */ + @ApiModelProperty(value = "鏄惁鍙戦�佹垚鍔熸樉绀烘枃鏈�") + @TableField(exist = true) + private String sendFlagText; + + + /** + * dockingdata鐨刼id + */ + @ApiModelProperty(value = "涓氬姟鏁版嵁涓婚敭") + private String dataOid; +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java index 1a5c926..8b23a74 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java @@ -10,191 +10,107 @@ */ public class DockingTaskVO extends BaseModel { + /** - * 绂佹淇敼杩欎釜鍊� + * 搴忓垪鍖� */ - private static final long serialVersionUID = 4615707119707777641L; + private static final long serialVersionUID = 5020487634341415429L; /** * 绯荤粺鎺ュ彛oid */ - private String sysinfooid; + private String sysInfoOid; /** * 绯荤粺id */ - private String systemoid; + private String systemOid; /** * 绯荤粺缂栧彿 */ - private String systemcode; + private String systemCode; /** * 绯荤粺鍚嶇О */ - private String systemname; + private String systemName; /** * 鍒嗙被oid */ - private String classifyoid; + private String classifyOid; + /** * 鍒嗙被id */ - private String classifyid; + private String classifyId; /** * 鍒嗙被鍚嶇О */ - private String classifyname; + private String classifyName; /** * 涓氬姟绫诲瀷鏁版嵁oid */ - private String btmoid; + private String btmOid; /** * 涓氬姟绫诲瀷鏁版嵁id */ - private String btmid; + private String btmId; /** - * uniquecode + * 鍞竴鏍囪瘑 */ - private String uniquecode; + private String uniqueCode; + + /** + * 鍙戦�佺被鍨� + */ + private String sendType; + + /** + * 鍙戦�佺被鍨嬫樉绀烘枃鏈� + */ + private String sendTypeText; + + /** + * 鏄惁鍙戦�佹垚鍔� + */ + private String sendFlag; /** * 鏄惁鍙戦�佹垚鍔� */ - private String sendflag; + private String sendFlagText; + /** - * 鍙戦�佺被鍨�,lcstatus + * dockingdata鐨刼id */ - private String sendtype; - /** - * 鏄惁鍙戦�佹垚鍔� - */ - private String dataoid; - - public String getDataoid() { - return dataoid; - } - - public void setDataoid(String dataoid) { - this.dataoid = dataoid; - } - public String getSendtype() { - return sendtype; - } - - public void setSendtype(String sendtype) { - this.sendtype = sendtype; - } - - public String getSysinfooid() { - return sysinfooid; - } - - public void setSysinfooid(String sysinfooid) { - this.sysinfooid = sysinfooid; - } - - public String getSystemoid() { - return systemoid; - } - - public void setSystemoid(String systemoid) { - this.systemoid = systemoid; - } - - public String getSystemcode() { - return systemcode; - } - - public void setSystemcode(String systemcode) { - this.systemcode = systemcode; - } - - public String getSystemname() { - return systemname; - } - - public void setSystemname(String systemname) { - this.systemname = systemname; - } - - public String getClassifyoid() { - return classifyoid; - } - - public void setClassifyoid(String classifyoid) { - this.classifyoid = classifyoid; - } - public String getClassifyid() { - return classifyid; - } - - public void setClassifyid(String classifyid) { - this.classifyid = classifyid; - } - public String getClassifyname() { - return classifyname; - } - - public void setClassifyname(String classifyname) { - this.classifyname = classifyname; - } - - public String getBtmoid() { - return btmoid; - } - - public void setBtmoid(String btmoid) { - this.btmoid = btmoid; - } - public String getBtmid() { - return btmid; - } - - public void setBtmid(String btmid) { - this.btmoid = btmid; - } - - public String getSendflag() { - return sendflag; - } - - public void setSendflag(String sendflag) { - this.sendflag = sendflag; - } - - public String getUniquecode() { - return uniquecode; - } - - public void setUniquecode(String uniquecode) { - this.uniquecode = uniquecode; - } + private String dataOid; @Override public String toString() { return "DockingTaskVO{" + - "sysinfooid='" + sysinfooid + '\'' + - ", systemoid='" + systemoid + '\'' + - ", systemcode='" + systemcode + '\'' + - ", systemname='" + systemname + '\'' + - ", classifyoid='" + classifyoid + '\'' + - ", classifyid='" + classifyid + '\'' + - ", classifyname='" + classifyname + '\'' + - ", btmoid='" + btmoid + '\'' + - ", btmid='" + btmid + '\'' + - ", uniquecode='" + uniquecode + '\'' + - ", sendflag='" + sendflag + '\'' + - ", sendtype='" + sendtype + '\'' + - ", dataoid='" + dataoid + '\'' + - '}'; + "sysInfoOid='" + sysInfoOid + '\'' + + ", systemOid='" + systemOid + '\'' + + ", systemCode='" + systemCode + '\'' + + ", systemName='" + systemName + '\'' + + ", classifyOid='" + classifyOid + '\'' + + ", classifyId='" + classifyId + '\'' + + ", classifyName='" + classifyName + '\'' + + ", btmOid='" + btmOid + '\'' + + ", btmId='" + btmId + '\'' + + ", uniqueCode='" + uniqueCode + '\'' + + ", sendType='" + sendType + '\'' + + ", sendTypeText='" + sendTypeText + '\'' + + ", sendFlag='" + sendFlag + '\'' + + ", sendFlagText='" + sendFlagText + '\'' + + ", dataOid='" + dataOid + '\'' + + '}'; } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java new file mode 100644 index 0000000..b0fbc9e --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingClassSyncScheduling.java @@ -0,0 +1,54 @@ +package com.vci.ubcs.code.Scheduling; + +import com.vci.ubcs.code.service.ICodeDuckingSyncService; +import com.vci.ubcs.starter.web.enumpck.BooleanEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 闆嗘垚浠诲姟瀹氭椂鍣� + * 鎻掑叆dockingtask涓� + * 浠巇ockingtask涓彇鍑烘潵鏁版嵁锛屾帹閫佸嚭鍘荤殑鎿嶄綔 + */ +@Component +@Slf4j +public class DockingClassSyncScheduling { + + @Resource + private ICodeDuckingSyncService codeDuckingSyncServiceI; + + @Value("${clsfSyncPush.isStart:false}") + public boolean CLSF_SYNC_PUSH_ISSTARE; + + /** + * 鏄惁鍒濆鍖栧畬鎴愪簡 + */ + public static volatile String FINISH_INIT = "false"; + + /** + * 鍦ㄥ垵濮嬪寲瀹屾垚鍚庢墽琛� + */ + @PostConstruct() + public void onInit(){ + FINISH_INIT = "true"; + } + + //榛樿姣忓垎閽熸墽琛屾柟娉� + @Scheduled(cron = "${clsfSyncPush.cronTime:0 0/10 * * * ?}") + public void scheduled() { + if(CLSF_SYNC_PUSH_ISSTARE && BooleanEnum.TRUE.getValue().equalsIgnoreCase(FINISH_INIT)) { + codeDuckingSyncServiceI.DockingClassSyncScheduing(); + SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss."); + String time = formatter.format(new Date()); + String outinfo = "============鍦� "+time+" 鎵ц浜嗗垎绫婚泦鎴愭帹閫�"; + log.info(outinfo); + } + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java new file mode 100644 index 0000000..08a1e3e --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java @@ -0,0 +1,56 @@ +package com.vci.ubcs.code.Scheduling; + +import com.vci.ubcs.code.service.ICodeDuckingSyncService; +import com.vci.ubcs.starter.web.enumpck.BooleanEnum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 闆嗘垚浠诲姟瀹氭椂鍣� + * 鎻掑叆dockingtask涓� + * 浠巇ockingtask涓彇鍑烘潵鏁版嵁锛屾帹閫佸嚭鍘荤殑鎿嶄綔 + */ +@Component +public class DockingDataSyncScheduling { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Resource + private ICodeDuckingSyncService codeDuckingSyncServiceI; + + @Value("${dataSyncPush.isStart:false}") + public boolean DATA_SYNC_PUSH_ISSTARE; + + /** + * 鏄惁鍒濆鍖栧畬鎴愪簡 + */ + public static volatile String FINISH_INIT = "false"; + + /** + * 鍦ㄥ垵濮嬪寲瀹屾垚鍚庢墽琛� + */ + @PostConstruct() + public void onInit(){ + FINISH_INIT = "true"; + } + + //榛樿姣忓垎閽熸墽琛屾柟娉� + @Scheduled(cron = "${dataSyncPush.cronTime:0 0/10 * * * ?}") + public void scheduled() { + if(DATA_SYNC_PUSH_ISSTARE && BooleanEnum.TRUE.getValue().equalsIgnoreCase(FINISH_INIT)) { + codeDuckingSyncServiceI.DockingDataSyncScheduing(); + SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss."); + String time = formatter.format(new Date()); + String outinfo = "============鍦� "+time+" 鎵ц浜嗕富鏁版嵁闆嗘垚鏁版嵁鎺ㄩ��"; + logger.info(outinfo); + } + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java new file mode 100644 index 0000000..93ef117 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java @@ -0,0 +1,7 @@ +package com.vci.ubcs.code.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.vci.ubcs.code.entity.DockingTask; + +public interface DockingTaskMapper extends BaseMapper<DockingTask> { +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java new file mode 100644 index 0000000..21f6d55 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeDuckingSyncService.java @@ -0,0 +1,51 @@ +package com.vci.ubcs.code.service; + + +import org.springblade.core.tool.api.R; + +import java.util.List; +import java.util.Map; + +/** + * 涓�銆侀厤缃垎绫汇�佺郴缁熴�佹帴鍙f暟鎹� + * 1銆侀厤缃郴缁烻ysIntBaseDO + * 2銆侀厤缃郴缁熴�佹帴鍙c�佸垎绫籗ysIntInfoDO + * + * 浜屻�佸鐞嗛鐢宠鏁版嵁 + * 1銆佹帴鏀秞mlData + * 2銆佸伐鑹虹郴缁熺壒娈婂鐞嗭紝鏍规嵁unique鏌ヨ缂栫爜锛屾湁宸茬粡鍙戝竷鐨勬暟鎹紝鐩存帴杩斿洖缂栫爜銆傛病鏈夋煡璇㈠埌宸茬粡鍙戝竷鐨勭紪鐮侊紙缂栬緫涓�佹彁浜や腑銆佸鏍镐腑銆佸仠鐢ㄧ瓑锛夊拰涓�鑸郴缁熶竴鏍锋寜鐓х3姝ュ鐞� + * 3銆佽В鏋恱mlData閲屾瘡涓�涓猟ata鑺傜偣锛屽瓨鍌ㄥ叆DockingPreApplyDataDO锛宒ata鑺傜偣涓媝ros鑺傜偣瀛樺偍鍏ockingPreApplyDataInfoDO + * 4銆佽繑鍥瀤mlData锛岄噷杈规爣璇嗕簡姣忎竴涓猟ata鐨勫鐞嗙粨鏋� + * + * 涓夈�佹牴鎹鐢宠鏁版嵁锛屾彃鍏ヤ富鏁版嵁 + * 1銆佸叧鑱斿垎绫� + * 2銆佹煡璇㈠嚭DockingPreApplyDataInfoDO瀛樺偍鐨勬暟鎹紝鎸夌収鏁版嵁鏄犲皠xml锛岃浆鎹负鎴戜滑鐨刱ey锛岃繑缁欏墠绔嚜鍔ㄥ~鍏呭埌鏂板鏁版嵁鐨勯〉闈� + * 3銆佽皟鐢ㄩ�氱敤鐨勬暟鎹柊澧炴帴鍙d繚瀛樻暟鎹紝杩欎竴姝ュ拰涓绘暟鎹鐞嗘ā鍧楀姛鑳戒竴鏍� + * + * 鍥涖�佹帹閫佹暟鎹� + * 1銆佸垎绫绘暟鎹拰涓绘暟鎹湁鍙樺寲鐨勬椂鍊欙紝鏁版嵁搴撹Е鍙戝櫒(TIG_CODEALLCODE_FORDOCKINGDATA,TIG_codeclsify_FORDOCKINGDATA)鑷姩鎻掑叆dockingdata + * 2銆丏ockingScheduling鎵ц鏃讹紝鏌ヨdockingdatasendflag=false鐨勬暟鎹紝缁撳悎鏌ヨsysintinfo鏁版嵁锛屾煡璇ockingtask + * 3銆乨ockingtask涓彇鍑烘潵鏁版嵁锛屾牴鎹産tmname鍜屾暟鎹畂id鏌ヨ鍑烘潵瑕佹帹閫佺殑鏁版嵁锛屾煡璇ysIntInfoDO锛屾牴鎹竴銆�2銆佷腑閰嶇疆鐨勪俊鎭紝鎵ц鎺ㄩ�� + * + * @author xieun + * @date 2022-06-19 + */ +public interface ICodeDuckingSyncService { + + /** + * 鏁版嵁瀹氭椂浠诲姟璋冪敤 + */ + void DockingDataSyncScheduing(); + + /** + * 鏁版嵁瀹氭椂浠诲姟璋冪敤 + */ + void DockingClassSyncScheduing(); + + /** + * 鎺ㄩ�佹湭瀹屾垚鐨勯泦鎴愭暟鎹� + * @return + */ + R sendData(String oids); +} + diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java new file mode 100644 index 0000000..b020819 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingTaskService.java @@ -0,0 +1,7 @@ +package com.vci.ubcs.code.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.vci.ubcs.code.entity.DockingTask; + +public interface IDockingTaskService extends IService<DockingTask> { +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java new file mode 100644 index 0000000..08af97d --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java @@ -0,0 +1,673 @@ +/* +package com.vci.ubcs.code.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; +import com.vci.mdm.constant.MdmDuckingConstant; +import com.vci.mdm.dao.*; +import com.vci.mdm.dto.datapush.classify.JsonRootDataDTO; +import com.vci.mdm.dto.datapush.classify.NodeClassifyDTO; +import com.vci.mdm.dto.datapush.classify.NodeDataDTO; +import com.vci.mdm.dto.datapush.classify.NodeLibraryDTO; +import com.vci.mdm.dto.datapush.data.NodeJosnDTO; +import com.vci.mdm.dto.datapush.data.NodeObjectDTO; +import com.vci.mdm.dto.datapush.data.NodeProDTO; +import com.vci.mdm.dto.datapush.data.NodedataDTO; +import com.vci.mdm.dto.datapush.result.ResultJsonDTO; +import com.vci.mdm.dto.datapush.result.ResultNodeDataDTO; +import com.vci.mdm.dto.datapush.result.ResultNodeObjectDTO; +import com.vci.mdm.model.*; +import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO; +import com.vci.mdm.pagemodel.CodeClassifyTemplateVO; +import com.vci.mdm.pagemodel.SysIntInfoVO; +import com.vci.mdm.service.*; +import com.vci.mdm.utils.*; +import com.vci.starter.web.constant.QueryOptionConstant; +import com.vci.starter.web.enumpck.UserSecretEnum; +import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.starter.web.pagemodel.SessionInfo; +import com.vci.starter.web.util.VciBaseUtil; +import com.vci.starter.web.wrapper.VciQueryWrapperForDO; +import com.vci.web.pageModel.BatchCBO; +import com.vci.web.redis.RedisService; +import com.vci.web.service.WebBoServiceI; +import com.vci.web.util.PlatformClientUtil; +import com.vci.web.util.WebUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +import static com.vci.mdm.constant.MdmDuckingConstant.*; + + +*/ +/** + * 涓婚搴撻泦鎴愭湇鍔� + * @author wangyi + * @date 2022-03-20 + *//* + +@Service +public class CodeDuckingSyncServiceImpl implements CodeDuckingSyncServiceI { + + */ +/** + * 鏃ュ織 + *//* + + private Logger logger = LoggerFactory.getLogger(getClass()); + + */ +/** + * 闆嗘垚鎺ㄩ�佷换鍔℃暟鎹搷浣滃眰 + *//* + + @Resource + private DockingTaskDaoI dockingTaskDaoI; + + */ +/** + * 闆嗘垚鎺ㄩ�佷换鍔℃暟鎹搷浣滃眰 + *//* + + @Resource + private DockingDataDaoI dockingDataDaoI; + + */ +/** + * 闆嗘垚鏃ュ織鏁版嵁鎿嶄綔灞� + *//* + + @Resource + private DockingLogeDaoI dockingLogeDaoI; + + */ +/** + * 妯℃澘灞炴�ф暟鎹搷浣滃眰 + *//* + + @Resource + private CodeClassifyDaoI codeClassifyDaoI; + + */ +/** + * 涓氬姟绫诲瀷鎿嶄綔鐨勬湇鍔� + *//* + + @Autowired + private WebBoServiceI boService; + + */ +/** + * 缂撳瓨鏈嶅姟 + *//* + + @Autowired + private RedisService redisService; + + */ +/** + * 鏁版嵁鏈嶅姟 + *//* + + @Autowired(required = false) + @Lazy + private MdmEngineServiceI mdmEngineServiceI; + + + */ +/** + * 瑕佹帹閫佺郴缁熺殑鏈嶅姟 + *//* + + @Autowired + private SysIntInfoServiceI sysIntInfoServiceI; + + @Value("${dataSyncPush.dataParamName:xmlData}") + public String DATA_PARAM_NAME; + + */ +/** + * 瀹氭椂浠诲姟鎺ㄩ�� + *//* + + @Override + public void DockingDataSyncScheduing(){ + // insertCache2(); + initPushDataTaks(1); + sendpushDataForService(); + } + + */ +/** + * 鍒嗙被瀹氭椂浠诲姟鎺ㄩ�� + *//* + + @Override + public void DockingClassSyncScheduing(){ + initPushDataTaks(2);//鍒嗙被鎺ㄩ�� + sendpushClsfForService(); + } + + */ +/** + * 鎵嬪姩鎺ㄩ�佷负瀹屾垚鐨勬暟鎹� + * @param oids + * @return + *//* + + @Override + public BaseResult sendData(String oids) { + VciBaseUtil.alertNotNull(oids,"绯荤粺闆嗘垚鍩虹淇℃伅鏁版嵁瀵硅薄",oids,"绯荤粺闆嗘垚鍩虹淇℃伅鐨勪富閿�"); + List<String> dockingTaskOidList=new ArrayList<>(); + dockingTaskOidList= VciBaseUtil.str2List(oids); + List<DockingTaskDO> newDockingTaskDOs= this.dockingTaskDaoI.selectByPrimaryKeyCollection(dockingTaskOidList); + Map<String,List<DockingTaskDO>> typeDockingTaskDOMap=new HashMap<>(); + newDockingTaskDOs.stream().forEach(newDockingTaskDO->{ + String btmId=newDockingTaskDO.getBtmid(); + if(btmId.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){ + List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)); + if(CollectionUtils.isEmpty(dockingTaskDOList)){ + dockingTaskDOList=new ArrayList<>(); + } + dockingTaskDOList.add(newDockingTaskDO); + typeDockingTaskDOMap.put(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT),dockingTaskDOList); + }else{ + List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get("data"); + if(CollectionUtils.isEmpty(dockingTaskDOList)){ + dockingTaskDOList=new ArrayList<>(); + } + dockingTaskDOList.add(newDockingTaskDO); + typeDockingTaskDOMap.put("data",dockingTaskDOList); + } + }); + typeDockingTaskDOMap.keySet().forEach(type->{ + List<DockingTaskDO> DockingTaskDO=typeDockingTaskDOMap.get(type); + if(!CollectionUtils.isEmpty(DockingTaskDO)){ + if(type.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){ + this.sendpushClsfForService(DockingTaskDO); + }else{ + this.sendpushDataForService(DockingTaskDO); + } + } + }); + return BaseResult.successMsg("鎵嬪姩鎺ㄩ�佸畬鎴�,璇锋牳瀵规槸鍚︽帹閫佹垚鍔�"); + } + */ +/*** + * 鏌ヨredis涓暟鎹紝瀵规瘮鍚庢彃鍏ockingtask + * @param type + *//* + + private void initPushDataTaks(int type){ + initSysadmin(); + //sysintinfo鏌ヨ瑕佹帹閫佺殑涓婚搴撳拰鐩稿叧绯荤粺淇℃伅 + Map<String, String> conditionMap = new HashMap<>(); + conditionMap.put("usedflag","true"); + conditionMap.put("pushType",type==2?"2":"1") ;//2鏄唬琛ㄥ垎绫绘帹閫侊紝1鏄唬琛ㄦ暟鎹帹閫� + + List<SysIntInfoDO> sysIntInfoVOList = sysIntInfoServiceI.selectAll(conditionMap); + if(CollectionUtils.isEmpty(sysIntInfoVOList)){ + String title=type==2?"鍒嗙被鎺ㄩ��":"鏁版嵁鎺ㄩ��"; + logger.info("info->鎵�鏈夐泦鎴愮郴缁燂紝鏈煡璇㈠埌鐩稿叧鐨勩��"+title+"銆戠殑鎺ュ彛閰嶇疆淇℃伅锛岄厤缃�"); + return; + } + Map<String ,List<SysIntInfoDO>> sysIntInfoDOMap = new HashMap<String ,List<SysIntInfoDO>>();//key=classifyoid,value=list<map> + for (SysIntInfoDO sysIntInfoVOi:sysIntInfoVOList){ + List<SysIntInfoDO> SysIntInfoVOListi = sysIntInfoDOMap.get(sysIntInfoVOi.getClassifyoid()); + if(SysIntInfoVOListi==null){ + SysIntInfoVOListi = new ArrayList<SysIntInfoDO>(); + } + SysIntInfoVOListi.add(sysIntInfoVOi); + sysIntInfoDOMap.put(sysIntInfoVOi.getClassifyoid(),SysIntInfoVOListi); + } + //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹� + VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingDataDO.class); + queryWrapperForDO.addQueryMap("sendflag","false"); + if(type==2){ + queryWrapperForDO.addQueryMap("btmTypeId",DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)); + }else { + queryWrapperForDO.addQueryMap("btmTypeId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)) + ")"); + } + List<DockingDataDO> dataList = dockingDataDaoI.selectByWrapper(queryWrapperForDO); + + for (DockingDataDO mapi:dataList){ + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String dataoid = mapi.getOid();//data瀵硅薄鐨刼id + String classifyoid = mapi.getClassifyoid(); + String id = mapi.getId(); + String uniquecode = mapi.getUniquecode(); + String btmid = mapi.getBtmid(); + String btmoid = mapi.getBtmoid(); + String sendtype = mapi.getSendtype(); + String classifyid = mapi.getClassifyid(); + String classifyname = mapi.getClassifyname(); + String curentClassOid=null; + if(type==2){ + curentClassOid=btmoid; + }else{ + curentClassOid=classifyoid; + } + List<SysIntInfoDO> effectiveSysIntInfoVOs=new ArrayList<>(); + //鏍规嵁褰撳墠鏁版嵁鐨刬d锛屾煡璇㈣幏鍙栧摢浜涚郴缁熼渶瑕佸仛闆嗘垚 + List<CodeClassifyDO> parentLeveDO= codeClassifyDaoI.selectAllLevelParentByOid(curentClassOid); + if(CollectionUtils.isEmpty(parentLeveDO)){ + continue;//璇存槑杩欎釜鍒嗙被琚垹鎺変簡锛屼笉鍋氬鐞� + } + Map<String, CodeClassifyDO> oidCodeclassifyDOMap = parentLeveDO.stream().filter(codeClassifyDO -> codeClassifyDO != null && StringUtils.isNotBlank(codeClassifyDO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); + + oidCodeclassifyDOMap.keySet().forEach(oid->{ + if(sysIntInfoDOMap.containsKey(oid)){ + List<SysIntInfoDO> sysIntInfoDOS= sysIntInfoDOMap.get(oid); + effectiveSysIntInfoVOs.addAll(sysIntInfoDOS); + } + }); + //濡傛灉鏍¢獙鐨勭郴缁熸帴鍙d俊鎭笉瀛樺湪锛屽垯鏁版嵁涓嶄笉寰�淇℃伅閲屾帹閫� + if(CollectionUtils.isEmpty(effectiveSysIntInfoVOs)){ + continue; + } + List<DockingTaskDO> dockingTaskDO_insert = new ArrayList<DockingTaskDO>(); + for (SysIntInfoDO sysIntInfoVOi:effectiveSysIntInfoVOs){ + DockingTaskDO dockingTaskDO = new DockingTaskDO(); + dockingTaskDO.setOid(redisService.getUUIDEveryDay()); + dockingTaskDO.setSendflag(SEND_FLAG_FALSE); + dockingTaskDO.setId(id);//缂栫爜 + dockingTaskDO.setUniquecode(uniquecode); + dockingTaskDO.setBtmoid(btmoid);//鏁版嵁oid + dockingTaskDO.setBtmid(btmid);//鏁版嵁涓氬姟绫诲瀷id + dockingTaskDO.setClassifyid(classifyid);//鏁版嵁鍦ㄥ垎绫籭d + dockingTaskDO.setClassifyoid(classifyoid);//鏁版嵁鎵�鍦ㄥ垎绫籵id + dockingTaskDO.setClassifyname(classifyname);//鏁版嵁鎵�鍦ㄥ垎绫诲悕绉� + dockingTaskDO.setSendtype(sendtype);//鏁版嵁鎺ㄩ�佺被鍨� + dockingTaskDO.setDataoid(dataoid); + + //intinfo + dockingTaskDO.setSysinfooid(sysIntInfoVOi.getOid());//intinfo鐨刼id + dockingTaskDO.setSystemoid(sysIntInfoVOi.getSysbaseoid());//绯荤粺oid + dockingTaskDO.setSystemcode(sysIntInfoVOi.getSysbaseid());//绯荤粺缂栫爜 + dockingTaskDO.setSystemname(sysIntInfoVOi.getSysbasename());//绯荤粺name + dockingTaskDO_insert.add(dockingTaskDO); + } + + BatchCBO bi = null; + if(dockingTaskDO_insert.size()!=0) { + bi = dockingTaskDaoI.batchInsert(dockingTaskDO_insert); + batchCBO.copyFromOther(bi); + } + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + //dockingTaskDaoI.updateByPrimaryKey鏂规硶鎶ラ敊浜嗭紝鎵�浠ユ墜鍐欎簡杩欎釜 + boolean u = updateDockingDatasSendFlag(dataoid,SEND_FLAG_TRUE); + if(!u){ + logger.error("闆嗘垚data鍒嗚В浠诲姟澶辫触锛乨ataoid:"+dataoid); + continue; + } + + } + } + private void sendpushDataForService (){ + initSysadmin(); + //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); + queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); + queryWrapper.addQueryMap("btmId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)) + ")"); + List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper); + sendpushDataForService(dockingTaskDOS); + } + */ +/*** + * 鍙戦�佺紪鐮佷富鏁版嵁 + *//* + + private void sendpushDataForService (List<DockingTaskDO> dockingTaskDOS){ + + //姣忎釜task渚濇鎵ц鎺ㄩ�� + for (DockingTaskDO dockingTaskDO:dockingTaskDOS){ + //姣忎釜task涓�涓簨鍔★紝寮�鍚� + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String paramString=""; + String sendString=""; + String backString=""; + try { + //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType + String systeminfooid = dockingTaskDO.getSysinfooid();//sysininfo 鐨刼id + String classifyoid = dockingTaskDO.getClassifyoid(); + //鏌ヨ瑕佹帹閫佺殑鏁版嵁 + String btmoid = dockingTaskDO.getBtmoid();//鏁版嵁btmid + //琛ㄧず鏄富鏁版嵁 + CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid); + BaseResult<Map<String, String>> baseResult = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid()); + List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes(); + Map<String*/ +/**鑻辨枃鍚嶇О**//* +, String*/ +/**涓枃鍚嶇О**//* +> attrIdNameMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(), (o1, o2) -> o2)); + Map<String, String> data = new HashMap<>(); + if (baseResult == null) { + JSONObject josni = redisService.getCacheObject(DOCKING_CACHE2_DELETE + btmoid); + data = (Map) josni; + } else { + data = baseResult.getObj(); + } + List<NodeProDTO> nodeProDTOS = new ArrayList<>(); + Map<String, String> finalData = data; + attrIdNameMap.keySet().forEach(field -> { + String outName = attrIdNameMap.get(field); + if (finalData.containsKey(field)) { + String Value = finalData.get(field); + NodeProDTO nodeProDTO = new NodeProDTO(); + nodeProDTO.setFiledName(field); + nodeProDTO.setOutname(outName); + nodeProDTO.setFiledValue(Value); + nodeProDTOS.add(nodeProDTO); + } + }); + + String[] classCodeLeves = dockingTaskDO.getClassifyid().split(","); + NodeJosnDTO nodeJosnDTO = new NodeJosnDTO(); + NodedataDTO nodeDataDTO = new NodedataDTO(); + NodeObjectDTO nodeObjectDTO = new NodeObjectDTO(); + nodeObjectDTO.setCode(dockingTaskDO.getId());//璁剧疆缂栫爜 + nodeObjectDTO.setClassCode(classCodeLeves[0]); + nodeObjectDTO.setStatus(data.get("lcstatus")); + nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]); + nodeObjectDTO.setPro(nodeProDTOS); + List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>(); + nodeObjectDTOS.add(nodeObjectDTO); + nodeDataDTO.setObject(nodeObjectDTOS); + nodeJosnDTO.setData(nodeDataDTO); + //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁� + SysIntInfoVO sysIntInfoVO = sysIntInfoServiceI.getObjectByOid(systeminfooid); + String paramType = sysIntInfoVO.getParamtype();//xml/json + if (paramType.equals(DATATYPE_JSON)) { + Object object = JSONObject.toJSON(nodeJosnDTO); + sendString = object.toString(); + } else { + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(NodedataDTO.class); + xStream.autodetectAnnotations(true); + sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); + } + //璋冪敤鎺ュ彛 + callInterface(sendString,sysIntInfoVO, dockingTaskDO, batchCBO); + }catch (Throwable e){ + e.printStackTrace(); + }finally { + //姣忎竴涓猼ask涓�涓簨鐗� + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + } + } + } + public void sendpushClsfForService(){ + initSysadmin(); + //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); + queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); + queryWrapper.addQueryMap("btmId",DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)); + List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper); + sendpushClsfForService(dockingTaskDOS); + } + */ +/*** + * 鍙戦�佸垎绫绘暟鎹� + *//* + + private void sendpushClsfForService(List<DockingTaskDO> dockingTaskDOS){ + //姣忎釜task渚濇鎵ц鎺ㄩ�� + for (DockingTaskDO dockingTaskDO:dockingTaskDOS){ + //姣忎釜task涓�涓簨鍔★紝寮�鍚� + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String paramString=""; + String sendString=""; + String backString=""; + //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType + String systeminfooid = dockingTaskDO.getSysinfooid();//sysininfo 鐨刼id + try { + //鏌ヨ瑕佹帹閫佺殑鏁版嵁 + String btmoid = dockingTaskDO.getBtmoid();//鏁版嵁btmid + JsonRootDataDTO jsonRootDataDTO=new JsonRootDataDTO(); + CodeClassifyDO codeClassifyDO=codeClassifyDaoI.selectByPrimaryKey(btmoid); + List<NodeClassifyDTO>nodeClassifyDTOList=new ArrayList<>(); + NodeClassifyDTO nodeClassifyDTO=new NodeClassifyDTO(); + nodeClassifyDTO.setClassCode(codeClassifyDO.getId());//鍒嗙被浠e彿 + nodeClassifyDTO.setDescription(codeClassifyDO.getDescription());//鍒嗙被鎻忚堪 + nodeClassifyDTO.setFullPathName(codeClassifyDO.getPath());//鍏ㄨ矾寰� + nodeClassifyDTO.setLcStatus(codeClassifyDO.getLcStatus());//鐘舵�� + // CodeClassifyDO parentClassDo=codeClassifyDaoI.selectByPrimaryKey(codeClassifyDO.getParentCodeClassifyOid()); + nodeClassifyDTO.setPid(codeClassifyDO.getParentCodeClassifyOid());//鐖秈d鑺傜偣 + nodeClassifyDTO.setId(codeClassifyDO.getOid());//鍒嗙被oid + nodeClassifyDTO.setName(codeClassifyDO.getName());//鍒嗙被鍚嶇О + nodeClassifyDTOList.add(nodeClassifyDTO); + NodeLibraryDTO nodeLibraryDTO=new NodeLibraryDTO(); + CodeClassifyDO rootClassify=codeClassifyDaoI.getRootClassify(btmoid); + nodeLibraryDTO.setClassify(nodeClassifyDTOList); + nodeLibraryDTO.setId(rootClassify.getOid()); + nodeLibraryDTO.setName(rootClassify.getName()); + nodeLibraryDTO.setClassCode(rootClassify.getId()); + NodeDataDTO nodeDataDTO=new NodeDataDTO(); + nodeDataDTO.setLibrary(nodeLibraryDTO); + jsonRootDataDTO.setData(nodeDataDTO); + + //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁� + SysIntInfoVO sysIntInfoVO = sysIntInfoServiceI.getObjectByOid(systeminfooid); + String paramType = sysIntInfoVO.getParamtype();//xml/json + if(paramType.equals(DATATYPE_JSON)){ + Object object = JSONObject.toJSON(jsonRootDataDTO); + sendString = object.toString(); + }else{ + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(NodeDataDTO.class); + xStream.autodetectAnnotations(true); + sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO); + } + //璋冪敤鎺ュ彛 + callInterface(sendString,sysIntInfoVO,dockingTaskDO,batchCBO); + }catch (Throwable e){ + e.printStackTrace(); + }finally { + //姣忎竴涓猼ask涓�涓簨鐗� + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + } + } + } + + */ +/*** + * 璋冪敤鎺ュ彛 + * @param sysIntInfoVO + * @throws Throwable + *//* + + private void callInterface(String sendString , SysIntInfoVO sysIntInfoVO,DockingTaskDO dockingTaskDO,BatchCBO batchCBO) throws Throwable{ + String paramString = ""; + + String backString = ""; + String msg=""; + String url = sysIntInfoVO.getRequesturl();//url + List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); + try { + + String type = sysIntInfoVO.getInterfacetype().toLowerCase(Locale.ROOT);//get/post/webserver/corba + String paramType = sysIntInfoVO.getParamtype();//xml/json + String returnType = sysIntInfoVO.getReturntype();//xml/json + String requestmethod= sysIntInfoVO.getRequestmethod(); + String interfaceFunction = sysIntInfoVO.getInterfaceFunction();//涓昏鏄痺ebservice鐨勬柟娉曞悕 + String namespace = sysIntInfoVO.getNamespace();//namespace + String soapaction = sysIntInfoVO.getSoapaction();//soapaction + String targName = sysIntInfoVO.getTargName();//targName + String cxfaxis = sysIntInfoVO.getCxfaxis();//webservice鏄痗xf/axis + //鏌ヨparam + List<SysIntParamDO> sysIntParamDOList = sysIntInfoServiceI.getParamsBySystemInfoOid(sysIntInfoVO.getOid()); + //鏌ヨheader + List<SysIntHeaderDO> sysIntHeaderDOList = sysIntInfoServiceI.getHeadersBySystemInfoOid(sysIntInfoVO.getOid()); + if(type.equals(URLTYPE_HTTP)) { + if (requestmethod.equals(URLTYPE_GET)) {//GET璇锋眰 + String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString; + //鎷兼帴param + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + sendurl = sendurl + "&" + sysIntParamDO.getParamkey() + "=" + sysIntParamDO.getParamvalue(); + } + paramString = sendurl; + backString = HttpUtils.get(sendurl); + } else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰 + MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + params.add(sysIntParamDO.getParamkey(), sysIntParamDO.getParamvalue()); + } + params.add(DATA_PARAM_NAME,sendString); + paramString = params.toString(); + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + for (SysIntHeaderDO sysIntHeaderDO : sysIntHeaderDOList) { + headers.add(sysIntHeaderDO.getHeaderkey(), sysIntHeaderDO.getHeaderalue()); + } + backString = HttpUtils.post(url, params, headers); + } + if(backString.startsWith("\"")){ + backString=backString.substring(backString.indexOf("\"")+1); + } + if(backString.endsWith("\"")){ + backString=backString.substring(0,backString.lastIndexOf("\"")); + } + if(backString.contains("\n")){ + String res="\n"; + backString= backString.replaceAll(res,""); + } + if(backString.contains("\\")){ + String res="\\\\\""; + backString= backString.replaceAll(res,"\"").trim(); + } + }else if (type.equals(URLTYPE_WEBSERVICE)) {//webserver璇锋眰 + MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + params.add(sysIntParamDO.getParamkey(), sysIntParamDO.getParamvalue()); + } + paramString = sendString; + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + for (SysIntHeaderDO sysIntHeaderDO : sysIntHeaderDOList) { + headers.add(sysIntHeaderDO.getHeaderkey(), sysIntHeaderDO.getHeaderalue()); + } + backString = WsErpClientUtil.sendMsg(url, namespace, soapaction, interfaceFunction, targName, sendString, 10000); + + } else {//corba鎺ュ彛 + //paramString=sendString; + // backString = jacorbClient.getBOFactoryService().sendCode(sendString); + } + + ResultJsonDTO resultJsonDTO = new ResultJsonDTO(); + if(returnType.equals(DATATYPE_JSON)){ + resultJsonDTO =JSONObject.toJavaObject(JSONObject.parseObject(backString), ResultJsonDTO.class); + }else { + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(ResultNodeDataDTO.class); + xStream.autodetectAnnotations(true); + ResultNodeDataDTO resultNodeDataDTO = (ResultNodeDataDTO) xStream.fromXML(backString); + resultJsonDTO.setData(resultNodeDataDTO); + } + ResultNodeDataDTO resultNodeDataDTO=resultJsonDTO.getData(); + resultNodeObjectDTOS=resultNodeDataDTO.getObject(); + + }catch (Throwable e){ + msg="璋冪敤鎺ュ彛澶辫触:"+e; + e.printStackTrace(); + // throw new Throwable("璋冪敤鎺ュ彛澶辫触:"+e); + ResultNodeObjectDTO resultNodeObjectDTO=new ResultNodeObjectDTO(); + resultNodeObjectDTO.setErroid("1"); + resultNodeObjectDTO.setMsg(msg); + resultNodeObjectDTO.setCode(sysIntInfoVO.getPushType().equalsIgnoreCase("2")?dockingTaskDO.getClassifyid():dockingTaskDO.getId()); + resultNodeObjectDTO.setOid(dockingTaskDO.getBtmoid()); + resultNodeObjectDTOS.add(resultNodeObjectDTO); + }finally { + boolean isSend = false; + for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){ + String erroid = resultNodeObjectDTO.getErroid(); + msg = resultNodeObjectDTO.getMsg(); + if("0".equals(erroid)){ + isSend = true; + }else if("1".equals(erroid)){ + isSend=false; + }else{ + isSend=false; + } + DockingLogeDO dockingLogeDO = new DockingLogeDO(); + String oid=redisService.getUUIDEveryDay(); + dockingLogeDO.setOid(oid); + dockingLogeDO.setSystemcode(dockingTaskDO.getSystemcode()); + dockingLogeDO.setSystemname(dockingTaskDO.getSystemname()); + dockingLogeDO.setSystemoid(dockingTaskDO.getSystemoid()); + dockingLogeDO.setClassifyoid(dockingTaskDO.getClassifyoid()); + dockingLogeDO.setClassifyid(dockingTaskDO.getClassifyid()); + dockingLogeDO.setClassifyname(dockingTaskDO.getClassifyname()); + dockingLogeDO.setId(dockingTaskDO.getId()); + dockingLogeDO.setUniquecode(dockingTaskDO.getUniquecode()); + dockingLogeDO.setParamstring(paramString); + dockingLogeDO.setReturnstring(backString); + dockingLogeDO.setInterfacestatus(isSend?"true":"false"); + dockingLogeDO.setType(DATA_LOGE_OUT); + dockingLogeDO.setMsg(msg); + logger.error("闆嗘垚鎺ㄩ�佹暟鎹�,systemcode:"+dockingTaskDO.getSystemcode()+",systemname:"+dockingTaskDO.getSystemname()+",url:"+url+",param:"+paramString+",e:"+msg); + BatchCBO dockingLogeDOBo = dockingLogeDaoI.insert(dockingLogeDO); + batchCBO.copyFromOther(dockingLogeDOBo); + } + //鍏ㄩ兘鎺ユ敹鎴愬姛鐨勬儏鍐典笅,淇敼dockingtask sendflag涓哄凡鍙戦�� + if(isSend) { + dockingTaskDO.setSendflag(MdmDuckingConstant.SEND_FLAG_TRUE); + BatchCBO updateTask = dockingTaskDaoI.updateByPrimaryKey(dockingTaskDO); + batchCBO.copyFromOther(updateTask); + } + } + } + public void initSysadmin(){ + SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setUserId("sysAdmin"); + sessionInfo.setUserName("绯荤粺绠$悊鍛�"); + sessionInfo.setIp(WebUtil.getLocalIp()); + sessionInfo.setUserOid("193C026F-7DB8-27B4-F383-4E8BE083FB07"); + sessionInfo.setUserSecret(UserSecretEnum.PRIVACY.getValue()+""); + WebUtil.setSessionInfo(sessionInfo); + } + + @Autowired + private PlatformClientUtil platformClientUtil; + */ +/** + * dockingdata鏍规嵁oid淇敼sendflag + * @param oid + * @param sendflag + * @return + *//* + + public boolean updateDockingDatasSendFlag(String oid,String sendflag){ + boolean u=false; + String sql = "update PLATFORMBTM_codedockingdata set sendFlag = '"+sendflag+"' where oid='"+oid+"'"; + try { + u=platformClientUtil.getBOFactoryService().executeUpdateSql(sql); + }catch (Exception e){ + + } + return u; + } +} + +*/ diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java new file mode 100644 index 0000000..d9d9908 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java @@ -0,0 +1,11 @@ +package com.vci.ubcs.code.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.vci.ubcs.code.entity.CodeClassifyValue; +import com.vci.ubcs.code.entity.DockingTask; +import com.vci.ubcs.code.mapper.CodeClassifyValueMapper; +import com.vci.ubcs.code.mapper.DockingTaskMapper; +import com.vci.ubcs.code.service.IDockingTaskService; + +public class DockingTaskServiceImpl extends ServiceImpl<DockingTaskMapper, DockingTask> implements IDockingTaskService { +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 07b7370..d046b28 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -881,21 +881,7 @@ } } - /** - * 鏄惁涓轰慨鏀瑰拷鐣ョ殑灞炴�� - * @param attrName 灞炴�х殑鍚嶅瓧 - * @return true 琛ㄧず搴旇蹇界暐 - */ - @Override - public boolean checkUnAttrUnEdit(String attrName){ - return (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName) - ||"ts".equalsIgnoreCase(attrName) - || "lastmodifier".equalsIgnoreCase(attrName) - || "lastmodifytime".equalsIgnoreCase(attrName) - || "createtime".equalsIgnoreCase(attrName) - || "checkintime".equalsIgnoreCase(attrName) - ||"checkouttime".equalsIgnoreCase(attrName)); - } + /** * 淇濆瓨鍙緭鍙�夌殑淇℃伅 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 f4c28c0..b3a2929 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 @@ -21,6 +21,7 @@ import com.vci.ubcs.code.vo.webserviceModel.attrmap.RowDatas; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO; import com.vci.ubcs.omd.feign.IBtmTypeClient; +import com.vci.ubcs.omd.feign.IWebSecretClient; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.bo.WriteExcelData; import com.vci.ubcs.starter.exception.VciBaseException; @@ -59,6 +60,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.File; @@ -154,6 +156,11 @@ */ @Autowired private IBtmTypeClient btmTypeClient; + /*** + * 瀵嗙骇鏈嶅姟 + */ + @Resource + private IWebSecretClient secretService; /** * 鎵归噺鐢宠锛氶�夊彇閫変腑鍒嗙被涓嬬殑鎵�鏈夋ā鏉垮叧閿睘鎬э紝鐩镐技灞炴�э紝蹇呭~灞炴�э紝鍐欏叆execl涓� * @@ -1859,6 +1866,7 @@ * @param dataObjectVO 鏁版嵁淇℃伅 * @param resultDataObjectDetailDOs 閿欒淇℃伅 */ + @Transactional(rollbackFor = VciBaseException.class) @Override public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) { String errorid=""; @@ -2283,10 +2291,10 @@ } int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - /*if (secret == 0 || !secretService.checkDataSecret(secret)) { + if (secret == 0 || !secretService.checkDataSecret(secret).getData()) { Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret)); - }*/ + } } catch (Throwable e) { log.error("璁剧疆榛樿鐨勫睘鎬х殑鍊奸敊璇�", e); } @@ -2535,11 +2543,11 @@ cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid()); cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath); int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - /*if(secret == 0 || !secretService.checkDataSecret(secret) ){ + if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); String secretValue= String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret); cbo.setAttributeValue(SECRET_FIELD,secretValue); - }*/ + } if(rowData.getStatus().equals(CodeDefaultLC.DISABLE.getValue())){//鍋滅敤 cbo.setLcStatus(CodeDefaultLC.DISABLE.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.EDITING.getValue())){//缂栬緫 @@ -2633,11 +2641,11 @@ cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid()); cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath); //cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); - /*int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - if(secret == 0 || !secretService.checkDataSecret(secret) ){ + int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); + if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret)); - }*/ + } }else{ //姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰� //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); @@ -2690,10 +2698,10 @@ cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath); //cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); - /*if(secret == 0 || !secretService.checkDataSecret(secret) ){ + if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret)); - }*/ + } }else{ //姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰� //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index f43debb..970d631 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -9,32 +9,46 @@ import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.dto.CodeOrderSecDTO; import com.vci.ubcs.code.entity.*; +import com.vci.ubcs.code.enumpack.CodeDefaultLC; import com.vci.ubcs.code.enumpack.CodeSecTypeEnum; +import com.vci.ubcs.code.mapper.CommonsMapper; import com.vci.ubcs.code.service.*; +import com.vci.ubcs.code.util.ClientBusinessObject; import com.vci.ubcs.code.util.gennerAttrMapUtil; import com.vci.ubcs.code.vo.pagemodel.*; import com.vci.ubcs.code.vo.webserviceModel.apply.*; import com.vci.ubcs.code.vo.webserviceModel.attrmap.*; +import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO; import com.vci.ubcs.code.vo.webserviceModel.classify.*; +import com.vci.ubcs.code.vo.webserviceModel.data.*; import com.vci.ubcs.code.vo.webserviceModel.result.json.*; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultClassfyVO; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultSystemVO; import com.vci.ubcs.code.webService.annotation.VciWebservice; import com.vci.ubcs.code.webService.config.AttributeMapConfig; +import com.vci.ubcs.code.wrapper.CodeClassifyWrapper; +import com.vci.ubcs.omd.feign.IBtmTypeClient; +import com.vci.ubcs.omd.vo.BtmTypeVO; +import com.vci.ubcs.starter.revision.model.BaseModel; import com.vci.ubcs.starter.revision.model.TreeQueryObject; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; +import com.vci.ubcs.starter.web.constant.QueryOptionConstant; import com.vci.ubcs.starter.web.pagemodel.SessionInfo; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.stream.Collectors; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; +import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; /*** * 缁熶竴鎺ュ彛 @@ -56,6 +70,19 @@ */ @Autowired(required = false) private ICodeClassifyService classifyService; + + /** + * 涓氬姟绫诲瀷鐨勬湇鍔� + */ + @Autowired + private IBtmTypeClient btmTypeClient; + + /** + * 閫氱敤鏌ヨ + */ + @Resource + private CommonsMapper commonsMapper; + /** * 涓绘暟鎹紩鎿庣殑鏈嶅姟 */ @@ -68,6 +95,9 @@ @Resource private MdmIOService mdmIOService; + + @Autowired + private ICodeClassifyValueService codeClassifyValueService; /*** * 闆嗘垚鎺ュ彛鏃ュ織鏈嶅姟鐨勯厤缃� */ @@ -88,154 +118,160 @@ */ @Override public String applyCode(String data, String dataType) throws Throwable { - { - String resultStr = ""; - String errorid="0"; - msg="鎴愬姛"; - objerrorCode="0"; - objerrorMsg="鎴愬姛"; - log.info("鐢宠缂栫爜鐨勬暟鎹弬鏁�:->"+data); - log.info("鐢宠缂栫爜鐨勬暟鎹被鍨�:->"+dataType); - String systemId=""; - List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>(); - try { - if(StringUtils.isBlank(data)) { - errorid="101"; - throw new Throwable("鎺ュ彛鍙傛暟锛氫紶閫掍负绌�"); - } - InterParameterVO interParameterVO =new InterParameterVO(); - //濡傛灉dataType鏄痻ml鍒欙紝閫氳繃xml搴忓垪鍖栨垚瀵硅薄褰㈠紡锛屽鏋滄槸json鍒欓�氳繃json杞崲鎴愬璞℃牸寮� - try { - if ("xml".equals(dataType)) { - XStream xStream = new XStream(new DomDriver()); - xStream.processAnnotations(RootDataVO.class); - xStream.autodetectAnnotations(true); - RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data); - interParameterVO.setData(rootDataVO); - } else { - interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class); - } - }catch (Throwable e){ - errorid="101"; - throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�"); - } - ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); - systemId = interParameterVO.getData().getSystemId(); - UserVO userVo = interParameterVO.getData().getUser(); - List<ClassfyVO> classVOList = classfysVO.getClassify(); - InterParameterVO finalInterParameterVO = interParameterVO; - - //杩欐槸璐﹀彿淇℃伅 - SessionInfo sessionInfo = new SessionInfo(); - sessionInfo.setUserId(userVo.getUserName()); - sessionInfo.setUserName(userVo.getTrueName()); - sessionInfo.setIp(userVo.getIp()); - VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); - - String finalSystemId = systemId; - classVOList.stream().forEach(classVO -> { - log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode()); - LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); - //鑾峰彇鍒嗙被淇℃伅 - try { - String libray = classVO.getLibrary(); - CodeClassifyVO codeClassifyVO = getClassfy(classVO); - log.info("end锛氬垎绫绘煡璇㈠畬姣�"); - //鑾峰彇鍒嗙被妯℃澘淇℃伅 - if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ - objerrorCode="100"; - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅"); - } - CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); - if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ - objerrorCode="1"; - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); - } - log.info("end锛氭ā鏉挎煡璇㈠畬姣�"); - ApplyDatasVO applyDatasVO = classVO.getObjects(); - DataObjectVO dataObjectVO = new DataObjectVO(); - List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) - ).collect(Collectors.toList()); - this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO); - log.info("end锛氭暟鎹粍缁囧畬姣�"); - //瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇 - CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); - if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ - objerrorCode="1"; - log.info("classifyFullInfo:"+"鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); - } - CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); - if(ruleVO==null|| StringUtils.isBlank(ruleVO.getOid())){ - objerrorCode="102"; - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�"); - } - log.info("end锛氳鍒欒幏鍙栧畬姣�"); - List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO); - log.info("end锛氱爜娈佃幏鍙栧畬姣�"); - CodeOrderDTO orderDTO = new CodeOrderDTO(); - orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭 - orderDTO.setSecDTOList(codeOrderSecDTOList);//鍒嗙被鐮佹 - mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs); - log.info("end锛氱敵璇疯幏鍙栧畬姣�"); - } catch (Throwable e) { - XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); - xmlResultDataObjectDetailDO.setCode(""); - xmlResultDataObjectDetailDO.setId(""); - xmlResultDataObjectDetailDO.setErrorid(objerrorCode); - xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:"+e.getMessage()); - resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); - e.printStackTrace(); - }finally { - XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); - resultClassfyVO.setClassCode(classVO.getClassCode()); - resultClassfyVO.setLibrary(classVO.getLibrary()); - resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath()); - resultClassfyVO.setObjects(resultDataObjectDetailDOs); - resultClassfyVOList.add(resultClassfyVO); - } - }); - XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); - xmlResultSystemVO.setClassifys(resultClassfyVOList); - xmlResultSystemVO.setMsg(msg); - xmlResultSystemVO.setErrorid(errorid); - resultStr= transferResultXMl(xmlResultSystemVO,dataType); - }catch (Throwable e){ - e.printStackTrace();; - msg="鐢宠缂栫爜澶辫触:"+e.getMessage(); - }finally { - XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); - xmlResultSystemVO.setClassifys(resultClassfyVOList); - xmlResultSystemVO.setMsg(msg); - xmlResultSystemVO.setErrorid(errorid); - resultStr= transferResultXMl(xmlResultSystemVO,dataType); - final boolean[] issucess = {true}; - if(!errorid.equals("0")) { - issucess[0] = false; - }else { - if(!CollectionUtils.isEmpty(resultClassfyVOList)) { - resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> { - xMLResultClassfyVO.getObjects().stream().forEach(objec -> { - if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) { - issucess[0] = false; - msg=objec.getMsg(); - } - }); - }); - } - - } - try { - //璁板綍鏃ュ織 - this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode"); - }catch (Throwable e){ - e.printStackTrace(); - } + String resultStr = ""; + String errorid="0"; + msg="鎴愬姛"; + objerrorCode="0"; + objerrorMsg="鎴愬姛"; + log.info("鐢宠缂栫爜鐨勬暟鎹弬鏁�:->"+data); + log.info("鐢宠缂栫爜鐨勬暟鎹被鍨�:->"+dataType); + String systemId=""; + List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>(); + try { + if(StringUtils.isBlank(data)) { + errorid="101"; + throw new Throwable("鎺ュ彛鍙傛暟锛氫紶閫掍负绌�"); } - log.info("杩斿洖鍙傛暟:"+resultStr); + InterParameterVO interParameterVO =new InterParameterVO(); + //濡傛灉dataType鏄痻ml鍒欙紝閫氳繃xml搴忓垪鍖栨垚瀵硅薄褰㈠紡锛屽鏋滄槸json鍒欓�氳繃json杞崲鎴愬璞℃牸寮� + try { + if ("xml".equals(dataType)) { + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(RootDataVO.class); + xStream.autodetectAnnotations(true); + RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data); + interParameterVO.setData(rootDataVO); + } else { + interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class); + } + }catch (Throwable e){ + errorid="101"; + throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�"); + } + ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); + systemId = interParameterVO.getData().getSystemId(); + UserVO userVo = interParameterVO.getData().getUser(); + List<ClassfyVO> classVOList = classfysVO.getClassify(); + InterParameterVO finalInterParameterVO = interParameterVO; - return resultStr; + //杩欐槸璐﹀彿淇℃伅 + SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setUserId(userVo.getUserName()); + sessionInfo.setUserName(userVo.getTrueName()); + sessionInfo.setIp(userVo.getIp()); + VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); + + String finalSystemId = systemId; + classVOList.stream().forEach(classVO -> { + log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode()); + LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); + //鑾峰彇鍒嗙被淇℃伅 + try { + String libray = classVO.getLibrary(); + CodeClassifyVO codeClassifyVO = getClassfy(classVO); + log.info("end锛氬垎绫绘煡璇㈠畬姣�"); + //鑾峰彇鍒嗙被妯℃澘淇℃伅 + if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ + objerrorCode="100"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅"); + } + CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); + if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ + objerrorCode="1"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); + } + log.info("end锛氭ā鏉挎煡璇㈠畬姣�"); + ApplyDatasVO applyDatasVO = classVO.getObjects(); + DataObjectVO dataObjectVO = new DataObjectVO(); + List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) + ).collect(Collectors.toList()); + this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO); + log.info("end锛氭暟鎹粍缁囧畬姣�"); + //瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇 + CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); + if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ + objerrorCode="1"; + log.info("classifyFullInfo:"+"鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); + } + CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); + if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ + objerrorCode="102"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�"); + } + log.info("end锛氳鍒欒幏鍙栧畬姣�"); + List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO,classifyFullInfo); + log.info("end锛氱爜娈佃幏鍙栧畬姣�"); + CodeOrderDTO orderDTO = new CodeOrderDTO(); + orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭 + orderDTO.setSecDTOList(codeOrderSecDTOList);//鍒嗙被鐮佹 + mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs); + log.info("end锛氱敵璇疯幏鍙栧畬姣�"); + } catch (Throwable e) { + XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); + xmlResultDataObjectDetailDO.setCode(""); + xmlResultDataObjectDetailDO.setId(""); + xmlResultDataObjectDetailDO.setErrorid(objerrorCode); + xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:"+e.getMessage()); + resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); + e.printStackTrace(); + }finally { + XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); + resultClassfyVO.setClassCode(classVO.getClassCode()); + resultClassfyVO.setLibrary(classVO.getLibrary()); + resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath()); + resultClassfyVO.setObjects(resultDataObjectDetailDOs); + resultClassfyVOList.add(resultClassfyVO); + } + }); + XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); + xmlResultSystemVO.setClassifys(resultClassfyVOList); + xmlResultSystemVO.setMsg(msg); + xmlResultSystemVO.setErrorid(errorid); + resultStr= transferResultXMl(xmlResultSystemVO,dataType); + }catch (Throwable e){ + e.printStackTrace();; + msg="鐢宠缂栫爜澶辫触:"+e.getMessage(); + /* XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO(); + XMLResultSystemVO.setErrorid(errorid); + XMLResultSystemVO.setMsg("鐢宠缂栫爜澶辫触锛�->"+e.getMessage()); + XMLResultSystemVO.setClassifys(resultClassfyVOList); + resultStr=transferResultXMl(XMLResultSystemVO,dataType); + + log.error("鐢宠缂栫爜澶辫触锛�->"+e); + return resultStr;*/ + }finally { + XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); + xmlResultSystemVO.setClassifys(resultClassfyVOList); + xmlResultSystemVO.setMsg(msg); + xmlResultSystemVO.setErrorid(errorid); + resultStr= transferResultXMl(xmlResultSystemVO,dataType); + final boolean[] issucess = {true}; + if(!errorid.equals("0")) { + issucess[0] = false; + }else { + if(!CollectionUtils.isEmpty(resultClassfyVOList)) { + resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> { + xMLResultClassfyVO.getObjects().stream().forEach(objec -> { + if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) { + issucess[0] = false; + msg=objec.getMsg(); + } + }); + }); + } + + } + try { + //璁板綍鏃ュ織 + this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode"); + }catch (Throwable e){ + e.printStackTrace(); + } } + log.info("杩斿洖鍙傛暟:"+resultStr); + + return resultStr; } /*** @@ -248,7 +284,139 @@ @Override public String syncEditData(String data, String dataType) throws Throwable { - return null; + String resultStr = ""; + String errorid="0"; + msg="鎴愬姛"; + String systemId=""; + objerrorCode="0"; + objerrorMsg="鎴愬姛"; + log.info("鏇存敼缂栫爜鐨勬暟鎹弬鏁�:->"+data); + log.info("鏇存敼缂栫爜鐨勬暟鎹被鍨�:->"+dataType); + List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>(); + try { + if (StringUtils.isBlank(data)) { + errorid = "101"; + throw new Throwable("鎺ュ彛鍙傛暟锛氫紶閫掍负绌�"); + } + InterParameterVO interParameterVO = new InterParameterVO(); + //濡傛灉dataType鏄痻ml鍒欙紝閫氳繃xml搴忓垪鍖栨垚瀵硅薄褰㈠紡锛屽鏋滄槸json鍒欓�氳繃json杞崲鎴愬璞℃牸寮� + try { + if ("xml".equals(dataType)) { + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(RootDataVO.class); + xStream.autodetectAnnotations(true); + RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data); + interParameterVO.setData(rootDataVO); + } else { + interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class); + } + } catch (Throwable e) { + errorid = "101"; + throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�"); + + } + ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); + systemId = interParameterVO.getData().getSystemId(); + UserVO userVo = interParameterVO.getData().getUser(); + List<ClassfyVO> classVOList = classfysVO.getClassify(); + InterParameterVO finalInterParameterVO = interParameterVO; + //杩欐槸璐﹀彿淇℃伅 + SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setUserId(userVo.getUserName()); + sessionInfo.setUserName(userVo.getTrueName()); + sessionInfo.setIp(userVo.getIp()); + VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); + String finalSystemId = systemId; + classVOList.stream().forEach(classVO->{ + log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode()); + LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); + //鑾峰彇鍒嗙被淇℃伅 + try { + String libray = classVO.getLibrary(); + CodeClassifyVO codeClassifyVO = getClassfy(classVO); + if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ + objerrorCode="100"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅"); + } + log.info("end锛氬垎绫绘煡璇㈠畬姣�"); + //鑾峰彇鍒嗙被妯℃澘淇℃伅 + CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); + if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ + objerrorCode="102"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); + } + log.info("end锛氭ā鏉挎煡璇㈠畬姣�"); + ApplyDatasVO applyDatasVO = classVO.getObjects(); + DataObjectVO dataObjectVO = new DataObjectVO(); + //灏嗛粯璁ょ殑灞炴�у叏閮ㄦ浛鎹㈡帀 + List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) + ).collect(Collectors.toList()); + this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO); + log.info("end锛氭暟鎹瀯寤哄畬姣�"); + log.info("start锛氫慨鏀规暟鎹墽琛屽畬姣�"); + mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs); + log.info("end锛氫慨鏀规暟鎹墽琛屽畬姣�"); + } catch (Throwable e) { + XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); + xmlResultDataObjectDetailDO.setCode(""); + xmlResultDataObjectDetailDO.setId(""); + xmlResultDataObjectDetailDO.setErrorid(objerrorCode); + xmlResultDataObjectDetailDO.setMsg("缂栫爜鏇存敼/鐘舵�佹洿鏀�/鍒犻櫎:"+e.getMessage()); + resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); + e.printStackTrace(); + }finally { + XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); + resultClassfyVO.setClassCode(classVO.getClassCode()); + resultClassfyVO.setLibrary(classVO.getLibrary()); + resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath()); + resultClassfyVO.setObjects(resultDataObjectDetailDOs); + resultClassfyVOList.add(resultClassfyVO); + } + + }); + }catch (Throwable e){ + e.printStackTrace();; + msg="缂栫爜鏇存敼/鐘舵�佹洿鏀�/鍒犻櫎:"+e.getMessage(); + /* XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO(); + XMLResultSystemVO.setErrorid(errorid); + XMLResultSystemVO.setMsg("鐢宠缂栫爜澶辫触锛�->"+e.getMessage()); + XMLResultSystemVO.setClassifys(resultClassfyVOList); + resultStr=transferResultXMl(XMLResultSystemVO,dataType); + + log.error("鐢宠缂栫爜澶辫触锛�->"+e); + return resultStr;*/ + }finally { + XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); + xmlResultSystemVO.setClassifys(resultClassfyVOList); + xmlResultSystemVO.setMsg(msg); + xmlResultSystemVO.setErrorid(errorid); + resultStr= transferResultXMl(xmlResultSystemVO,dataType); + final boolean[] issucess = {true}; + if(!errorid.equals("0")) { + issucess[0] = false; + }else { + if(!CollectionUtils.isEmpty(resultClassfyVOList)) { + resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> { + xMLResultClassfyVO.getObjects().stream().forEach(objec -> { + if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) { + issucess[0] = false; + msg=objec.getMsg(); + } + }); + }); + } + + } + try { + //璁板綍鏃ュ織 + this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "syncEditData"); + }catch (Throwable e){ + e.printStackTrace(); + } + } + log.info("杩斿洖鍙傛暟:"+resultStr); + //瀛樺偍鏃ュ織 + return resultStr; } /*** @@ -386,8 +554,191 @@ */ @Override public String queryData(String data, String dataType) throws Throwable { - return null; + boolean issucess=false; + String resultStr = ""; + String errorid="0"; + msg="鎴愬姛"; + String systemId=""; + log.info("鏌ヨ鍒嗙被鐨勬暟鎹弬鏁�:->"+data); + log.info("鏌ヨ鍒嗙被鐨勬暟鎹被鍨�:->"+dataType); + DataCondtionsVO dataCondtionsVO=new DataCondtionsVO(); + ResultDataVO resultDataVO=new ResultDataVO(); + try { + try { + if ("xml".equals(dataType)) { + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(CondtionsVO.class); + xStream.autodetectAnnotations(true); + CondtionsVO condtionsVO = (CondtionsVO) xStream.fromXML(data); + dataCondtionsVO.setCondtions(condtionsVO); + } else { + dataCondtionsVO = JSONObject.toJavaObject(JSONObject.parseObject(data), DataCondtionsVO.class); + } + } catch (Throwable e) { + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�"; + e.printStackTrace(); + throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�"); + } + CondtionsVO condtionsVO=dataCondtionsVO.getCondtions(); + systemId=condtionsVO.getSystemId(); + UserVO userVo=condtionsVO.getUser(); + CondtionVO condtionVO= condtionsVO.getCondtion(); + SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setUserId(userVo.getUserName()); + sessionInfo.setUserName(userVo.getTrueName()); + sessionInfo.setIp(userVo.getIp()); + VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); + + String classCode=condtionVO.getClassCode(); + String library= condtionVO.getLibrary(); + String queryFileds= condtionVO.getQueryFileds(); + if(StringUtils.isBlank(library)){ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歭ibrary 涓簄ull"; + throw new Throwable(msg); + } + + //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 + + List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId,library)); + if(!CollectionUtils.isEmpty(libIdDos)){ + CodeClassify libCodeClassify=libIdDos.get(0); + List<CodeClassify> codeClassifyList=classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId,classCode)); + if(!CollectionUtils.isEmpty(codeClassifyList)){ + final CodeClassify[] currentCodeClassify = {null}; + codeClassifyList.stream().forEach(codeClassify -> { + CodeClassifyVO codeClassifyVO= classifyService.getTopClassifyVO(codeClassify.getOid()); + if(codeClassifyVO.getOid().equals(libCodeClassify.getOid())){ + currentCodeClassify[0] =codeClassify; + } + }); + if(currentCodeClassify[0]==null){ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�"; + throw new Throwable(msg); + } + List<CodeClassifyVO> dataCodeClassifyVOList =new ArrayList<>(); + String oid= currentCodeClassify[0].getOid(); + TreeQueryObject treeQueryObject=new TreeQueryObject(); + treeQueryObject.setParentOid(oid); + treeQueryObject.setQueryAllLevel(true); + dataCodeClassifyVOList=classifyService.selectCodeClassifyDOByTree(treeQueryObject); + dataCodeClassifyVOList.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify[0])); + Map<String, CodeClassifyVO> oidCodeclassifyDOMap = dataCodeClassifyVOList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); + + List<PropertyVO> propertyVOS=condtionVO.getPro(); + /*Map<String,String> condtionMap=new HashMap<>(); + propertyVOS.stream().forEach(propertyVO -> { + condtionMap.put(propertyVO.getFiledName(),propertyVO.getFiledValue()); + }); + condtionMap.put("codeclsfid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) + ")"); + List<String>statusList=new ArrayList<>(); + statusList.add(CodeDefaultLC.RELEASED.getValue()); + statusList.add(CodeDefaultLC.DISABLE.getValue()); + statusList.add(CodeDefaultLC.TASK_BACK.getValue()); + condtionMap.put("Lcstatus", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) + ")" ); + condtionMap.put("islastr", "1"); + condtionMap.put("islastv", "1");*/ + List<String>statusList=new ArrayList<>(); + statusList.add(CodeDefaultLC.RELEASED.getValue()); + statusList.add(CodeDefaultLC.DISABLE.getValue()); + statusList.add(CodeDefaultLC.TASK_BACK.getValue()); + R<BtmTypeVO> r= btmTypeClient.getDetail(libCodeClassify.getBtmTypeId()); + BtmTypeVO btmTypeVO =r.getData(); + String tableName=btmTypeVO.getTableName(); + + StringBuffer sb=new StringBuffer(); + sb.append(" select * from "); + sb.append(tableName); + sb.append(" where 1=1"); + propertyVOS.stream().forEach(propertyVO -> { + sb.append( " and "+propertyVO.getFiledName()+"='"+propertyVO.getFiledValue()+"'"); + }); + sb.append(" and islastr=1 and islastv=1" ); + sb.append(" and codeclsfid in (" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) +")"); + sb.append(" and Lcstatus in (" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) +")"); + List<Map<String,String>> newDataList= commonsMapper.queryByOnlySqlForMap(sb.toString()); + List<ClientBusinessObject>clientBusinessObjects=new ArrayList<>(); + newDataList.stream().forEach(stringStringMap -> { + ClientBusinessObject clientBusinessObject=new ClientBusinessObject(); + DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,clientBusinessObject); + clientBusinessObjects.add(clientBusinessObject); + }); + + List<com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO> dataObjectVOS=new ArrayList<>(); + if(!CollectionUtils.isEmpty(clientBusinessObjects)){ + CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(currentCodeClassify[0].getOid()); + Map<String, CodeClassifyTemplateAttrVO> filedAttributeMap = templateVO.getAttributes().stream().filter(attribute -> attribute != null && StringUtils.isNotBlank(attribute.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); + + clientBusinessObjects.stream().forEach(cbo -> { + com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO dataObjectVO=new com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO(); + dataObjectVO.setCode(cbo.getId()); + dataObjectVO.setStatus(cbo.getLcStatus()); + String codeclsfid=cbo.getAttributeValue("codeclsfid"); + if(oidCodeclassifyDOMap.containsKey(codeclsfid)){ + CodeClassifyVO codeClassifyVO= oidCodeclassifyDOMap.get(codeclsfid); + dataObjectVO.setClassCode(codeClassifyVO.getId()); + } + dataObjectVO.setLibrary(library); + String [] newQueryFileds=queryFileds.split(","); + List<PropertyVO> propertyVOList=new ArrayList<>(); + for(String filed:newQueryFileds){ + String value=cbo.getAttributeValue(filed); + if(filedAttributeMap.containsKey(filed)){ + CodeClassifyTemplateAttrVO attrVO= filedAttributeMap.get(filed); + PropertyVO propertyVO=new PropertyVO(); + propertyVO.setFiledName(filed); + propertyVO.setFiledValue(value); + propertyVO.setOutname(attrVO.getName()); + propertyVOList.add(propertyVO); + } + } + dataObjectVO.setPro(propertyVOList); + dataObjectVOS.add(dataObjectVO); + }); + resultDataVO.setObject(dataObjectVOS); + } + }else{ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�"; + throw new Throwable(msg); + } + }else{ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歭ibrary 鏈煡璇㈠埌瀵瑰簲鐨勫簱鑺傜偣淇℃伅"; + } + errorid = "0"; + msg = "鏁版嵁鏌ヨ鎴愬姛"; + }catch (Throwable e){ + e.printStackTrace();; + msg="鏌ヨ鏁版嵁澶辫触:"+e.getMessage(); + }finally { + resultDataVO.setErrorid(errorid); + resultDataVO.setMsg(msg); + } + ResultVO resultVO=new ResultVO(); + resultVO.setData(resultDataVO); + if(dataType.equals("xml")){ + //缁勭粐杩斿洖鎺ュ彛淇℃伅 + XStream xStream = new XStream(new DomDriver()); + xStream.processAnnotations(XMLResultSystemVO.class); + xStream.autodetectAnnotations(true); + resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultDataVO); + }else{ + Object object = JSONObject.toJSON(resultVO); + resultStr = object.toString(); + } + try { //璁板綍鏃ュ織 + this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify"); + }catch (Throwable e){ + e.printStackTrace(); + } + log.info("杩斿洖鍙傛暟:"+resultStr); + return resultStr; } + + @Override public String queryClassifyRule(String data, String dataType) throws Throwable { @@ -521,18 +872,32 @@ } return classifyVO; } + + private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){ + List<ClientBusinessObject> clientBusinessObjectList=new CopyOnWriteArrayList<>(); + oldDataMap.parallelStream().forEach(dataMap->{ + ClientBusinessObject clientBusinessObject=new ClientBusinessObject(); + DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject); + dataMap.forEach((key,value)->{ + clientBusinessObject.setAttributeValue(key,value); + }); + }); + return clientBusinessObjectList; + } /*** * 鏍规嵁绌垮叆鐨勫弬鏁颁俊鎭牎楠岀爜娈佃鍒� */ - private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO) throws Throwable{ + private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO,CodeClassifyFullInfoBO classifyFullInfo) throws Throwable{ List<CodeBasicSecVO> codeBasicSecVOS= ruleVO.getSecVOList(); Map<String,String> sectionVOMap=new HashMap<>(); SectionVOList.stream().forEach(SectionVO->{ sectionVOMap.put(SectionVO.getName(),SectionVO.getValue()); }); + Map<String,CodeClassifyVO> codeClassifyVOMap= classifyFullInfo.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getId(), t -> t,(o1, o2)->o2)); List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>(); for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) { String sectype = codeBasicSecVO.getSecType(); + String classifySecOid= codeBasicSecVO.getOid(); if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) { String name = codeBasicSecVO.getName(); String sectypeText = codeBasicSecVO.getSecTypeText(); @@ -543,6 +908,22 @@ CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid()); String sectypeValue = sectionVOMap.get(name); log.info("鐮佹鍊�:"+sectypeValue); + CodeSecTypeEnum secType = CodeSecTypeEnum.forValue(sectype); + if(CODE_CLASSIFY_SEC.equals(secType)) {//濡傛灉鏄垎绫荤殑璇濓紝鍒欓渶瑕佸尮閰嶄紶杩囨潵鐨勫垎绫讳唬鍙蜂笌 + //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 + List<CodeClassifyValue> codeClassifyValueDOList = codeClassifyValueService.list(Wrappers.<CodeClassifyValue>query().lambda().eq(CodeClassifyValue::getCodeClassifySecOid,classifySecOid)); + + if (!CollectionUtils.isEmpty(codeClassifyValueDOList)) { + Map<String, CodeClassifyValue> codeClassifyValueDOMap = codeClassifyValueDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t, (o1, o2) -> o2)); + if(codeClassifyValueDOMap.containsKey(sectypeValue)){ + CodeClassifyValue codeClassifyValue= codeClassifyValueDOMap.get(sectypeValue); + sectypeValue=codeClassifyValue.getOid(); + }else { + objerrorCode = "101"; + throw new Throwable("浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 鍊硷細" + sectypeValue + "銆戯紝涓嶇鍚堝綋鍓嶅垎绫诲眰绾т唬鍙�"); + } + } + } CodeOrderSecDTO.setSecValue(sectypeValue); codeOrderSecDTOList.add(CodeOrderSecDTO); } else { @@ -563,17 +944,24 @@ Map<String, String> attrMapConfigMap=new HashMap<>(); Map<String, String> propMaps=new HashMap<>(); try { + log.info("寮�濮嬭鍙栫郴缁熼厤缃枃浠� start"); Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); + log.info("闆嗘垚绯荤粺灞炴�ф槧灏勯厤缃枃浠舵潯鐩暟-銆�"+stringStringMap.size()); //stringStringMap.put("RLM","D:\\RLM.xml"); - LibraryDO libraryDO= gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap); + LibraryDO libraryDO=gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap); List<LibraryClsfDO> libraryClsfDOList=libraryDO.getClsf(); Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); + log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃�"); if(libPropMaps.containsKey(libray)){ + log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�"); List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray); propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); + log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"鍖归厤鍒扮浉搴旂殑灞炴�ф槧灏勪俊鎭�,灞炴�ф槧灏勬潯鐩暟+"+clsfAttrMappingDOList.size()); } + log.info("鏍规嵁鍙傛暟锛歭ibray锛�-銆�"+libray+"浠庨厤缃枃浠朵腑鎵惧搴斿睘鎬ф槧灏勯厤缃� end "); }catch (Throwable e){ objerrorCode="1"; + e.printStackTrace(); throw new Throwable("MDM闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�"); } LinkedList<String> rowNameList=new LinkedList<>(); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java new file mode 100644 index 0000000..377a698 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java @@ -0,0 +1,66 @@ +package com.vci.ubcs.code.wrapper; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.vci.ubcs.code.entity.DockingTask; +import com.vci.ubcs.code.vo.pagemodel.DockingTaskVO; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; + +public class DockingTaskWrapper extends BaseEntityWrapper<DockingTask, DockingTaskVO> { + public static DockingSystemWrapper build() { + return new DockingSystemWrapper(); + } + @Override + public DockingTaskVO entityVO(DockingTask entity) { + DockingTaskVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DockingTaskVO.class)); + return vo; + } + + + /*** + * 鏁扮粍瀵硅薄杞崲 + * @param entitys + * @return + */ + public List<DockingTaskVO> entityVOs(Collection<DockingTask> entitys) { + if(CollectionUtils.isEmpty(entitys)) {return new ArrayList<>();} + List<DockingTaskVO> vos=new ArrayList<>(); + if(!CollectionUtils.isEmpty(entitys)) { + entitys.stream().forEach(vo -> { + vos.add(entityVO(vo)); + }); + } + return vos; + } + + /*** + * 鏁扮粍瀵硅薄杞崲 + * @param vos + * @return + */ + public List<DockingTask> voentitys(Collection<DockingTaskVO> vos) { + if(CollectionUtils.isEmpty(vos)) {return new ArrayList<>();} + List<DockingTask>entitys =new ArrayList<>(); + if(!CollectionUtils.isEmpty(vos)) { + vos.stream().forEach(entity -> { + entitys.add(voentity(entity)); + }); + } + return entitys; + } + + /*** + * 鏁扮粍瀵硅薄杞崲 + * @param vo + * @return + */ + public DockingTask voentity( DockingTaskVO vo) { + DockingTask entity = Objects.requireNonNull(BeanUtil.copy(vo, DockingTask.class)); + return entity; + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml new file mode 100644 index 0000000..675e7a7 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingTaskMapper.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.vci.ubcs.code.mapper.DockingTaskMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="plDockingLogResultMap" type="com.vci.ubcs.code.entity.DockingTask"> + <result column="OID" property="oid"/> + <result column="REVISIONOID" property="revisionOid"/> + <result column="NAMEOID" property="nameOid"/> + <result column="BTMNAME" property="btmname"/> + <result column="LASTR" property="lastR"/> + <result column="FIRSTR" property="firstR"/> + <result column="LASTV" property="lastV"/> + <result column="FIRSTV" property="firstV"/> + <result column="CREATOR" property="creator"/> + <result column="CREATETIME" property="createTime"/> + <result column="LASTMODIFIER" property="lastModifier"/> + <result column="LASTMODIFYTIME" property="lastModifyTime"/> + <result column="REVISIONRULE" property="revisionRule"/> + <result column="VERSIONRULE" property="versionRule"/> + <result column="REVISIONSEQ" property="revisionSeq"/> + <result column="REVISIONVALUE" property="revisionValue"/> + <result column="VERSIONSEQ" property="versionSeq"/> + <result column="VERSIONVALUE" property="versionValue"/> + <result column="LCTID" property="lctid"/> + <result column="LCSTATUS" property="lcStatus"/> + <result column="TS" property="ts"/> + <result column="ID" property="id"/> + <result column="NAME" property="name"/> + <result column="DESCRIPTION" property="description"/> + <result column="OWNER" property="owner"/> + <result column="COPYFROMVERSION" property="copyFromVersion"/> + <result column="SYSINFOOID" property="sysInfoOid"/> + <result column="SYSTEMOID" property="systemOid"/> + <result column="SYSINFOOID" property="sysInfoOid"/> + <result column="SYSTEMCODE" property="systemCode"/> + <result column="SYSTEMNAME" property="systemName"/> + <result column="CLASSIFYOID" property="classifyOid"/> + <result column="CLASSIFYID" property="classifyId"/> + <result column="CLASSIFYNAME" property="classifyName"/> + <result column="BTMOID" property="btmOid"/> + <result column="BTMID" property="btmId"/> + <result column="UNIQUECODE" property="uniqueCode"/> + <result column="SENDTYPE" property="sendType"/> + <result column="SENDFLAG" property="sendFlag"/> + <result column="DATAOID" property="dataOid"/> + + </resultMap> +</mapper> -- Gitblit v1.9.3