From 364811c321ca9b3af58f3ec85ca5de0183a5e57b Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期一, 19 六月 2023 17:38:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUserC.java | 7 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/mapper/UserMapper.java | 4 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingTaskVO.java | 184 +--- Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue | 238 ++++++ Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java | 18 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowTaskUserController.java | 7 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java | 87 + Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/VCIFlowController.java | 44 + Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/VICFlowService.java | 37 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingTaskMapper.java | 7 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 686 ++++++++++++++--- Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowProcessTSController.java | 4 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingTaskWrapper.java | 66 + Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingTask.java | 118 +++ 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 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java | 11 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/ProcessTemplateTypeEnum.java | 4 Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml | 6 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowEngineService.java | 2 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 26 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUser.java | 1 Source/UBCS-WEB/src/components/FormTemplate/ResembleQueryDialog.vue | 45 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 36 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/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/Scheduling/DockingDataSyncScheduling.java | 56 + Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java | 145 +++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java | 20 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java | 18 Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue | 9 Source/UBCS-WEB/src/components/FormTemplate/ResembleQuery.vue | 10 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 30 Source/UBCS-WEB/src/api/batchImport/index.js | 2 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java | 14 Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowEngineServiceImpl.java | 11 Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/controller/UserController.java | 6 Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue | 23 Source/UBCS-WEB/src/components/BatchImport/index.vue | 125 +- Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowTaskUserService.java | 11 40 files changed, 1,812 insertions(+), 466 deletions(-) diff --git a/Source/UBCS-WEB/src/api/batchImport/index.js b/Source/UBCS-WEB/src/api/batchImport/index.js index 7790c47..f48426a 100644 --- a/Source/UBCS-WEB/src/api/batchImport/index.js +++ b/Source/UBCS-WEB/src/api/batchImport/index.js @@ -4,7 +4,7 @@ // 鍘嗗彶瀵煎叆妯℃澘涓嬭浇 export const downloadHistoryImportTemplate = (params) => { return request({ - url: '/api/ubcs-code/mdmEngineController/downloadTopImportExcel', + url: '/api/ubcs-code/mdmEngineController/downloadImportExcelHistory', method: 'get', params }) diff --git a/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue b/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue new file mode 100644 index 0000000..32fde8d --- /dev/null +++ b/Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue @@ -0,0 +1,238 @@ +<template> + <el-dialog + :title="title" + :visible="dialogVisible" + width="1200px" + append-to-body + > + <div class="flex_box"> + <div class="left" :style="{ width: leftWidth }"> + <div class="isExpand_box"> + <el-link type="primary" @click="hideTree"> + <i + :class="isExpand ? 'el-icon-arrow-left' : 'el-icon-arrow-right'" + ></i> + {{ isExpand ? "鏀剁缉" : "灞曞紑" }} + </el-link> + </div> + <el-input + placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" + v-model="filterText" + size="small" + v-show="isExpand" + > + </el-input> + <el-tree + v-show="isExpand" + class="filter_tree" + :data="data" + default-expand-all + :filter-node-method="filterNode" + ref="tree" + > + </el-tree> + </div> + <div class="right"> + <div class="tab_box"> + <el-tabs v-model="activeName" type="card" @tab-click="handleClick"> + <el-tab-pane label="姝g‘鏁版嵁" name="success"> + <el-table border :data="successData"></el-table> + </el-tab-pane> + <el-tab-pane label="鏈夌浉浼奸」鎴栬�呴敊璇暟鎹�" name="error"> + <el-table border :data="errorData"></el-table> + </el-tab-pane> + </el-tabs> + </div> + </div> + </div> + <template #footer> + <div> + <el-button size="small" type="primary">纭畾瀵煎叆</el-button> + <el-button size="small">鍙栨秷</el-button> + </div> + </template> + </el-dialog> +</template> + +<script> +export default { + name: "ShowImportData", + props: { + title: { + type: String, + default: "鍘嗗彶鏁版嵁瀵煎叆", + }, + visible: false, + }, + computed: { + dialogVisible: { + get() { + return this.visible; + }, + set(val) { + this.$emit("update:visible", val); + }, + }, + }, + data() { + return { + isExpand: true, + filterText: "", + leftWidth: "200px", + data: [ + { + id: 1, + label: "涓�绾� 1", + children: [ + { + id: 4, + label: "浜岀骇 1-1", + children: [ + { + id: 9, + label: "涓夌骇 1-1-1", + }, + { + id: 10, + label: "涓夌骇 1-1-2", + }, + ], + }, + ], + }, + { + id: 2, + label: "涓�绾� 2", + children: [ + { + id: 5, + label: "浜岀骇 2-1", + }, + { + id: 6, + label: "浜岀骇 2-2", + }, + ], + }, + { + id: 3, + label: "涓�绾� 3", + children: [ + { + id: 7, + label: "浜岀骇 3-1", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + { + id: 8, + label: "浜岀骇 3-2", + }, + ], + }, + ], + successData: [], + errorData: [], + }; + }, + + methods: { + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + hideTree() { + if (this.isExpand) { + this.leftWidth = "50px"; + } else { + this.leftWidth = "200px"; + } + this.isExpand = !this.isExpand; + }, + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.flex_box { + display: flex; + .left { + transition: all 0.3s; + .isExpand_box { + margin-bottom: 10px; + text-align: right; + } + .filter_tree { + max-height: 400px; + overflow-y: scroll; + } + } +} +</style> diff --git a/Source/UBCS-WEB/src/components/BatchImport/index.vue b/Source/UBCS-WEB/src/components/BatchImport/index.vue index f9baddc..a5bacf6 100644 --- a/Source/UBCS-WEB/src/components/BatchImport/index.vue +++ b/Source/UBCS-WEB/src/components/BatchImport/index.vue @@ -1,51 +1,63 @@ <template> - <el-dialog :title="title" :visible="visible" append-to-body> - <Divider text="瀵煎叆鎻愮ず" left="30px"></Divider> - <ul> - <li v-for="(item, index) in tipList" :key="index"> - {{ item }} - </li> - </ul> - <div class="radio_box"> - <span>鍒嗙被鐨勮矾寰勪娇鐢ㄧ殑灞炴��:</span> - <el-radio-group v-model="classifyAttr"> - <el-radio label="id">鍒嗙被缂栧彿</el-radio> - <el-radio label="name">鍒嗙被鍚嶇О</el-radio> - </el-radio-group> - </div> - <Divider text="excel鏂囦欢锛岄�夋嫨鏂囦欢鍚庝細鑷姩涓婁紶" left="30px"></Divider> - <el-upload - class="upload" - :accept="accept" - :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 + <div> + <el-dialog :title="title" :visible="visible" append-to-body> + <Divider text="瀵煎叆鎻愮ず" left="30px"></Divider> + <ul> + <li v-for="(item, index) in tipList" :key="index"> + {{ item }} + </li> + </ul> + <div class="radio_box"> + <span>鍒嗙被鐨勮矾寰勪娇鐢ㄧ殑灞炴��:</span> + <el-radio-group v-model="classifyAttr"> + <el-radio label="id">鍒嗙被缂栧彿</el-radio> + <el-radio label="name">鍒嗙被鍚嶇О</el-radio> + </el-radio-group> + </div> + <Divider text="excel鏂囦欢锛岄�夋嫨鏂囦欢鍚庝細鑷姩涓婁紶" left="30px"></Divider> + <el-upload + class="upload" + :accept="accept" + :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-upload> - <template #footer> - <el-button type="primary" size="small" @click="downloadTemplateFun" :loading="downloadLoading" - >涓嬭浇瀵煎叆妯℃澘</el-button - > - <el-button size="small">鍏抽棴</el-button> - </template> - </el-dialog> + <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" + :loading="downloadLoading" + >涓嬭浇瀵煎叆妯℃澘</el-button + > + <el-button size="small" @click="visible = false">鍏抽棴</el-button> + </template> + </el-dialog> + <ShowImportData :visible="showVisible" v-if="showVisible"></ShowImportData> + </div> </template> <script> -import { downloadHistoryImportTemplate, downloadErrorFile } from "../../api/batchImport/index"; +import ShowImportData from "./ShowImportData.vue"; +import { + downloadHistoryImportTemplate, + downloadErrorFile, +} from "../../api/batchImport/index"; import { getToken } from "@/util/auth"; export default { - name: "", + name: "BatchImport", + components: { ShowImportData }, props: { visible: { type: Boolean, @@ -68,7 +80,8 @@ return { classifyAttr: "id", uploadParams: {}, - downloadLoading: false + downloadLoading: false, + showVisible: false, }; }, computed: { @@ -109,30 +122,32 @@ }, // 涓嬭浇瀵煎叆妯℃澘 downloadTemplateFun() { - this.downloadLoading = true + this.downloadLoading = true; downloadHistoryImportTemplate({ codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B", - }).then(res => { - this.downloadLoading = false - console.log(res); - }).catch(() => { - this.downloadLoading = false - }); + }) + .then((res) => { + this.downloadLoading = false; + console.log(res); + }) + .catch(() => { + this.downloadLoading = false; + }); }, onSuccess(res) { if (res.code === 400) { - this.$message.error(`${res.msg}锛岃涓嬭浇閿欒淇℃伅杩涜鏌ョ湅锛乣) + this.$message.error(`${res.msg}锛岃涓嬭浇閿欒淇℃伅杩涜鏌ョ湅锛乣); } - downloadErrorFile({uuid: res.data.fileOid}) - } + downloadErrorFile({ uuid: res.data.fileOid }); + }, }, watch: { visible: { - immediate:true, + immediate: true, handler() { this.getDataByType(); - } - } + }, + }, }, }; </script> diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue index acb2ed6..42912d0 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue @@ -517,6 +517,7 @@ collapse: true, column: [], }); + return } if ( formItem.type === "combox" && @@ -596,7 +597,7 @@ this.$set(this.option, "column", column); this.$set(this.option, "group", group); this.formIndex++; - if (this.type === 'add') { + if (this.type === 'add' || this.type === 'preview') { this.loading = false; } this.geDictData(dictKeys); @@ -652,11 +653,11 @@ if (type === "truefalse") { return [ { - key: false, + key: 'false', value: "鍚�", }, { - key: true, + key: 'true', value: "鏄�", }, ]; @@ -700,7 +701,7 @@ }, // 鑾峰彇琛ㄥ崟璇︽儏鏁版嵁 getFormDetail() { - if (this.type === 'add') return + if (this.type === 'add' || this.type === 'preview') return getFormDetail({ templateOid: this.templateOid, oid: this.rowOid }).then( (res) => { this.form = Object.assign(this.form, res.data.data[0]) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/ResembleQuery.vue b/Source/UBCS-WEB/src/components/FormTemplate/ResembleQuery.vue index da90c5c..fb1e119 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/ResembleQuery.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/ResembleQuery.vue @@ -70,11 +70,7 @@ type: { type: String, default: "add", - }, - form: { - type: Object, - default: () => ({}), - }, + } }, data() { return { @@ -82,8 +78,8 @@ activeName: "findlike", tableData: [], loading: false, - resembleTemplateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A", - resembleCodeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96", + resembleTemplateOid: "", + resembleCodeClassifyOid: "", rowOid: '', defaultValue: {}, secVOList: [], diff --git a/Source/UBCS-WEB/src/components/FormTemplate/ResembleQueryDialog.vue b/Source/UBCS-WEB/src/components/FormTemplate/ResembleQueryDialog.vue index 9741d14..b97f223 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/ResembleQueryDialog.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/ResembleQueryDialog.vue @@ -22,7 +22,7 @@ </template> <script> -import { getFormTemplate } from "@/api/formTemplate"; +import { getFormTemplate, getFormDetail } from "@/api/formTemplate"; import ResembleQuery from "./ResembleQuery"; export default { name: "ResembleQueryDialog", @@ -40,6 +40,7 @@ type: String, default: "", }, + rowOid: "", codeRuleOid: { type: String, default: "", @@ -56,7 +57,8 @@ data() { return { column: [], - loading: false + loading: false, + detailData: {}, }; }, computed: { @@ -71,23 +73,28 @@ }, methods: { openDialog() { - this.loading = true - getFormTemplate({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - }).then((res) => { - this.loading = false - if ( - res.data && - res.data.resembleTableVO.cols && - res.data.resembleTableVO.cols.length > 0 - ) { - this.column = res.data.resembleTableVO.cols; - this.$refs.ResembleQuery.resembleQuery(); - } else { - this.column = []; - } - }); + this.loading = true; + getFormDetail({ templateOid: this.templateOid, oid: this.rowOid }) + .then((res) => { + this.detailData = res.data.data[0] || {}; + return getFormTemplate({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + }); + }) + .then((res) => { + this.loading = false; + if ( + res.data && + res.data.resembleTableVO.cols && + res.data.resembleTableVO.cols.length > 0 + ) { + this.column = res.data.resembleTableVO.cols; + this.$refs.ResembleQuery.resembleQuery(this.detailData); + } else { + this.column = []; + } + }); }, }, }; diff --git a/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue b/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue index 8704a87..efffed5 100644 --- a/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue +++ b/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue @@ -6,20 +6,21 @@ <el-button @click="visible2 = true">闄勪欢绠$悊dialog</el-button> <FormTemplateDialog :visible.sync="visible" - :type="this.type" - :templateOid="this.templateOid" - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" + :type="type" + :templateOid="templateOid" + :codeClassifyOid="codeClassifyOid" + :codeRuleOid="codeRuleOid" :disabledProp="disabledProp" :rowOid="rowOid" @submit="submit" ></FormTemplateDialog> <ResembleQueryDialog :visible.sync="visible1" - :type="this.type" - :templateOid="this.templateOid" - :codeClassifyOid="this.codeClassifyOid" - :codeRuleOid="this.codeRuleOid" + :type="type" + :templateOid="templateOid" + :codeClassifyOid="codeClassifyOid" + :rowOid="rowOid" + :codeRuleOid="codeRuleOid" ></ResembleQueryDialog> <BatchImport :visible="visible3" @@ -52,11 +53,11 @@ // 榛樿绂佺敤鐨勮〃鍏冪礌 disabledProp: ["id", "lcstatus"], // 琛ㄥ崟绫诲瀷 - type: "add", - templateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A", + type: "edit", + templateOid: "f441b131-5ea0-4672-ab74-735b11161928", codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96", codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96", - rowOid: "6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9", + rowOid: "551FBA49-9A94-2F83-9126-9DD4F9BB14B5", }; }, methods: { diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java index a84b86b..c2ce243 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java @@ -25,6 +25,7 @@ import com.vci.ubcs.flow.engine.entity.FlowProcess; import com.vci.ubcs.flow.engine.utils.FlowCache; import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.flowable.engine.HistoryService; import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricProcessInstance; @@ -117,7 +118,7 @@ HistoricProcessInstanceQuery historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).orderByProcessInstanceStartTime().desc(); - if (bladeFlow.getCategory() != null) { + if (StringUtils.isNotEmpty(bladeFlow.getCategory())) { historyQuery.processDefinitionCategory(bladeFlow.getCategory()); } if (bladeFlow.getProcessDefinitionName() != null) { @@ -142,7 +143,7 @@ String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); if (businessKey.length > 1) { flow.setBusinessTable(businessKey[0]); - flow.setBusinessId(businessKey[1]); + flow.setBusinessId(businessKey.length>1?businessKey[1]:"1"); } flow.setHistoryActivityName(historicProcessInstance.getName()); flow.setProcessInstanceId(historicProcessInstance.getId()); @@ -190,7 +191,7 @@ HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished() .includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc(); - if (bladeFlow.getCategory() != null) { + if (StringUtils.isNotEmpty(bladeFlow.getCategory())) { doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); } if (bladeFlow.getProcessDefinitionName() != null) { @@ -230,7 +231,7 @@ if (Func.isNotEmpty(historicProcessInstance)) { String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); flow.setBusinessTable(businessKey[0]); - flow.setBusinessId(businessKey[1]); + flow.setBusinessId(businessKey.length>1?businessKey[1]:"1"); if (historicProcessInstance.getEndActivityId() != null) { flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED); } else { @@ -278,7 +279,8 @@ * @param status 鐘舵�� */ private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) { - if (bladeFlow.getCategory() != null) { +// if (bladeFlow.getCategory() != null) { + if (StringUtils.isNotEmpty(bladeFlow.getCategory())) { taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); } if (bladeFlow.getProcessDefinitionName() != null) { @@ -305,7 +307,7 @@ if (Func.isNotEmpty(historicProcessInstance)) { String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); flow.setBusinessTable(businessKey[0]); - flow.setBusinessId(businessKey[1]); + flow.setBusinessId(businessKey.length>1?businessKey[1]:"1"); } FlowProcess processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId()); diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/ProcessTSController.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowProcessTSController.java similarity index 97% rename from Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/ProcessTSController.java rename to Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowProcessTSController.java index 4bf34b9..37ecad5 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/ProcessTSController.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowProcessTSController.java @@ -29,7 +29,7 @@ @RestController @RequestMapping("processTS") @AllArgsConstructor -public class ProcessTSController { +public class FlowProcessTSController { private final FlowEngineService flowEngineService; private final ProcessTemplateService processTemplateService; @@ -41,7 +41,7 @@ @GetMapping("/tlist") public R<IPage<ProcessTemplate>> tlist(@RequestParam Map<String, Object> flow, Query query) { IPage<ProcessTemplate> pages = processTemplateService.page(Condition.getPage(query), Condition.getQueryWrapper(flow, ProcessTemplate.class) - .select("id,model_key modelKey,model_name modelName,button_Type_Key buttonTypeKey,button_Type_value buttonTypeValue") + .select("id,model_key modelKey,model_name modelName,button_Type_Key buttonTypeKey,button_Type_value buttonTypeValue,description") .orderByDesc("last_updated")); return R.data(pages); } diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowTaskUserController.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowTaskUserController.java index 8aaba6c..bc67b15 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowTaskUserController.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowTaskUserController.java @@ -8,6 +8,8 @@ import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 娴佺▼task瀹℃壒鎺у埗 @@ -24,11 +26,12 @@ /** * 娴佺▼task瀹℃壒浜哄憳鍒楄〃 + * ProcessTemplateTypeEnum * @return */ @GetMapping("list") - public R<FlowTaskUserC> list() { - return R.data(taskUserService.getUser()); + public R<Object> list(String type,String templateId) { + return R.data(taskUserService.getUser(type,templateId)); } /** diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/VCIFlowController.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/VCIFlowController.java new file mode 100644 index 0000000..fba4637 --- /dev/null +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/VCIFlowController.java @@ -0,0 +1,44 @@ +package com.vci.ubcs.flow.engine.controller; + +import com.vci.ubcs.flow.core.entity.BladeFlow; +import com.vci.ubcs.flow.engine.entity.FlowTaskUserC; +import com.vci.ubcs.flow.engine.service.FlowTaskUserService; +import com.vci.ubcs.flow.engine.service.VICFlowService; +import lombok.AllArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + * 瀹氬埗娴佺▼銆佸惎鍔ㄣ�佽浆鍙戙�佸畬鎴愭帶鍒跺櫒 + * + * @author wang1 + */ +@NonDS +@RestController +@RequestMapping("vciflow") +@AllArgsConstructor +public class VCIFlowController { + + private final VICFlowService vicFlowService; + + /** + * 鍚姩 + * @return + */ + @PostMapping("start") + public R<BladeFlow> list(@RequestBody FlowTaskUserC flowTaskUserC) { + return vicFlowService.startProcess(flowTaskUserC); + } + + /** + * 娴佺▼棰勬祴 + */ + @PostMapping("a") + public R<BladeFlow> a(@RequestBody FlowTaskUserC flowTaskUserC) { + return vicFlowService.startProcess(flowTaskUserC); + } +} diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUser.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUser.java index dde1fb2..fbab2e8 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUser.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUser.java @@ -37,6 +37,7 @@ private String id; private String name;//淇濆瓨鐨勮繖涓敹钘忓悕绉� private String modelKey; + private String modelName; private String classifyId; private String templateId; private String taskId;//娴佺▼taskid diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUserC.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUserC.java index 9e862db..8e77956 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUserC.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/entity/FlowTaskUserC.java @@ -34,10 +34,17 @@ private String createdBy; private String name;//淇濆瓨鐨勮繖涓敹钘忓悕绉� private String modelKey; + private String modelName; + private String processName; + private String processDesc; + private String topName; private String classifyId; private String templateId; private String taskId;//闃舵id锛屽氨鏄祦绋媡askid private String taskName;//闃舵鍚嶇О private List<FlowTaskUser> flowTaskUsers;//姣忎釜鑺傜偣鏀惰棌浜� private List<ProcessStageAttr> processStageAttr;//娴佺▼闃舵淇濆瓨鐨勫睘鎬� + private List<String> ids;//娴佺▼鍙戣捣涓紶閫掕繃鏉ョ殑鏁版嵁id + + } diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowEngineService.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowEngineService.java index 9ea5718..de9f38b 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowEngineService.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowEngineService.java @@ -173,4 +173,6 @@ */ List<Map<String,String>> getNodeByFlowableKey(String key); + String getTaskIdString(); + } diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowTaskUserService.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowTaskUserService.java index a7ba9b4..d5950d0 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowTaskUserService.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowTaskUserService.java @@ -35,9 +35,10 @@ /** * 鏌ヨ褰撳墠鐧婚檰浜哄杩欎釜娴佺▼鐨則askUser + * @param type ProcessTemplateTypeEnum * @return */ - FlowTaskUserC getUser(); + Object getUser(String type,String templateId); /** * 鏂板/淇敼娴佺▼鑺傜偣瀹℃牳浜洪厤缃�佸苟涓斾慨鏀规祦绋媥ml閮ㄧ讲鏂囦欢 @@ -51,4 +52,12 @@ * @param name */ void deleteUser(String name); + + /** + * 閫氳繃妯℃澘id鍜屾ā鍨媖ey鏌ヨ瀹℃壒浜� + * @param templateId + * @param modelKey + * @return + */ + List<FlowTaskUser> getTaskUserByTemplateAndModelKey(String templateId,String modelKey); } diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/VICFlowService.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/VICFlowService.java new file mode 100644 index 0000000..6f14049 --- /dev/null +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/VICFlowService.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package com.vci.ubcs.flow.engine.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.vci.ubcs.flow.core.entity.BladeFlow; +import com.vci.ubcs.flow.engine.entity.FlowTaskUser; +import com.vci.ubcs.flow.engine.entity.FlowTaskUserC; +import org.springblade.core.tool.api.R; + +/** + * FlowService + * + * @author wang1 + */ +public interface VICFlowService{ + + /** + * 鍚姩娴佺▼ + * @return + */ + R<BladeFlow> startProcess(FlowTaskUserC flowTaskUserC); +} diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowEngineServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowEngineServiceImpl.java index a11071e..297d6ca 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowEngineServiceImpl.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowEngineServiceImpl.java @@ -93,6 +93,8 @@ private static final String USR_TASK = "userTask"; private static final String IMAGE_NAME = "image"; private static final String XML_NAME = "xml"; + private static final String TASKID = "taskId"; + private static final String TASKNAME = "taskName"; private static final Integer INT_1024 = 1024; private static final BpmnJsonConverter BPMN_JSON_CONVERTER = new BpmnJsonConverter(); private static final BpmnXMLConverter BPMN_XML_CONVERTER = new BpmnXMLConverter(); @@ -508,16 +510,19 @@ for (FlowElement flowElement : process.getFlowElements()) { if (flowElement instanceof UserTask) { Map<String,String> mi = new HashMap<>(); - mi.put("taskId",flowElement.getId()); - mi.put("taskName",flowElement.getName()); + mi.put(TASKID,flowElement.getId()); + mi.put(TASKNAME,flowElement.getName()); ll.add(mi); } } } - return ll; } + @Override + public String getTaskIdString(){ + return TASKID; + } /** * 鏄惁宸插畬缁� * diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java index ecdc82a..993a297 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/FlowTaskUserServiceImpl.java @@ -28,6 +28,7 @@ import com.vci.ubcs.flow.engine.entity.*; import com.vci.ubcs.flow.engine.mapper.FlowMapper; import com.vci.ubcs.flow.engine.mapper.FlowTaskUserMapper; +import com.vci.ubcs.flow.engine.mapper.ProcessTemplateMapper; import com.vci.ubcs.flow.engine.service.FlowEngineService; import com.vci.ubcs.flow.engine.service.FlowTaskUserService; import com.vci.ubcs.flow.engine.utils.FlowCache; @@ -92,23 +93,62 @@ private FlowEngineService flowEngineService; private FlowTaskUserMapper flowTaskUserMapper; + private ProcessTemplateMapper processTemplateMapper; /** * 鏌ヨ褰撳墠鐧婚檰浜哄杩欎釜娴佺▼鐨則askUser + * @param type ProcessTemplateTypeEnum * @return */ @Override - public FlowTaskUserC getUser(){ - QueryWrapper<FlowTaskUser> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("CREATED_BY", AuthUtil.getUserId()); - List<FlowTaskUser> flowTaskUsers = baseMapper.selectList(queryWrapper); - FlowTaskUserC flowTaskUserCR = new FlowTaskUserC(); - if(flowTaskUsers.size()==0){ - return flowTaskUserCR; + public Object getUser(String type,String templateId){ + Map kv = new HashMap(); + + //鏍规嵁type鏌ヨtop娴佺▼鏁版嵁 + Map<String, Object> m = new HashMap<>(); + m.put("button_type_key", type); + m.put("template_id", templateId); + List<ProcessTemplate> processTemplates = processTemplateMapper.selectByMap(m); + if(processTemplates.size()==0){ + throw new ServiceException("涓婚搴撳畾涔�-妯℃澘绠$悊-娴佺▼妯℃澘锛屾病鏈夌粦瀹氭祦绋�!"); } - flowTaskUserCR.setName(flowTaskUsers.get(0).getName());//鏀惰棌鍚嶇О - flowTaskUserCR.setFlowTaskUsers(flowTaskUsers); - return flowTaskUserCR; + ProcessTemplate processTemplate = processTemplates.get(0); + kv.put("flow",processTemplate); + + + //top鏀惰棌閮ㄥ垎鏁版嵁 + QueryWrapper<FlowTaskUser> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("CREATED_BY", TaskUtil.getTaskUser()); + List<FlowTaskUser> flowTaskUsers = baseMapper.selectList(queryWrapper); + List<FlowTaskUserC> cl = new ArrayList<>(); + + Map<String,List<FlowTaskUser>> nameMap = new HashMap<>(); + for(FlowTaskUser flowTaskUser:flowTaskUsers){ + String name = flowTaskUser.getName();//鏀惰棌鍚嶇О + List<FlowTaskUser> flowTaskUserListo = null; + if(nameMap.get(name)==null){ + flowTaskUserListo = new ArrayList<>(); + }else { + flowTaskUserListo = nameMap.get(name); + } + flowTaskUserListo.add(flowTaskUser); + nameMap.put(name,flowTaskUserListo); + } + + for (String name:nameMap.keySet()){ + FlowTaskUserC flowTaskUserCR = new FlowTaskUserC(); + flowTaskUserCR.setName(name);//鏀惰棌鍚嶇О + flowTaskUserCR.setModelKey(nameMap.get(name).get(0).getModelKey()); + flowTaskUserCR.setModelName(nameMap.get(name).get(0).getModelName()); + flowTaskUserCR.setFlowTaskUsers(nameMap.get(name)); + cl.add(flowTaskUserCR); + } + kv.put("collect",cl); + + //鏁版嵁鑺傜偣鏁版嵁 + List<Map<String,String>> tl = flowEngineService.getNodeByFlowableKey(processTemplate.getModelKey()); + kv.put("user",tl); + return kv; } @Override @@ -117,17 +157,20 @@ String name = flowTaskUserC.getName();//鏀惰棌鍚嶇О //鏂板鎯呭喌涓嬮獙璇佹敹钘忓悕绉颁笉閲嶅 - if(flowTaskUsers.get(0).getId()!=null) { - Map<String, Object> m = new HashMap<>(); - m.put("name", name); - QueryWrapper q = Condition.getQueryWrapper(m, FlowTaskUser.class) - .select("id,model_key modelKey,name,description,version,created,last_updated lastUpdated"); - if(flowTaskUserMapper.selectCount(q)>0){ - throw new ServiceException("鏀惰棌鍚嶇О宸茬粡瀛樺湪!"); - } + Map<String, Object> m = new HashMap<>(); + m.put("name", name); + m.put("created_by", TaskUtil.getTaskUser()); + QueryWrapper q = Condition.getQueryWrapper(m, FlowTaskUser.class) + .select("1"); + if(flowTaskUserMapper.selectCount(q)>0){ + throw new ServiceException("鏀惰棌鍚嶇О宸茬粡瀛樺湪!"); } + for (FlowTaskUser flowTaskUseri:flowTaskUsers){ flowTaskUseri.setName(name); + flowTaskUseri.setCreatedBy(TaskUtil.getTaskUser()); + flowTaskUseri.setTemplateId(flowTaskUserC.getTemplateId()); + flowTaskUseri.setModelKey(flowTaskUserC.getModelKey()); } //鏂板銆佷慨鏀� this.saveOrUpdateBatch(flowTaskUsers); @@ -139,8 +182,14 @@ public void deleteUser(String name){ Map<String, Object> m = new HashMap<>(); m.put("name", name); - m.put("created_by", AuthUtil.getUserId()); + m.put("created_by", TaskUtil.getTaskUser()); baseMapper.deleteByMap(m); } + public List<FlowTaskUser> getTaskUserByTemplateAndModelKey(String templateId,String modelKey){ + Map<String, Object> m = new HashMap<>(); + m.put("template_id", templateId); + m.put("model_key", modelKey); + return baseMapper.selectByMap(m); + } } diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java new file mode 100644 index 0000000..9012c4b --- /dev/null +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package com.vci.ubcs.flow.engine.service.impl; + +import com.vci.ubcs.flow.core.constant.ProcessConstant; +import com.vci.ubcs.flow.core.entity.BladeFlow; +import com.vci.ubcs.flow.core.utils.TaskUtil; +import com.vci.ubcs.flow.engine.entity.*; +import com.vci.ubcs.flow.engine.service.FlowEngineService; +import com.vci.ubcs.flow.engine.service.FlowTaskUserService; +import com.vci.ubcs.flow.engine.service.VICFlowService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.model.*; +import org.flowable.engine.*; +import org.flowable.engine.impl.persistence.entity.ExecutionEntity; +import org.flowable.engine.repository.ProcessDefinition; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.task.api.Task; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.support.Kv; +import org.springframework.stereotype.Service; +import java.util.*; + +/** + * 宸ヤ綔娴佹湇鍔″疄鐜扮被 + * + * @author Chill + */ +@Slf4j +@Service +@AllArgsConstructor +public class VCIFlowserviceImpl implements VICFlowService { + + private final RuntimeService runtimeService; + private final IdentityService identityService; + private final RepositoryService repositoryService; + private final TaskService taskService; + private final FlowTaskUserService flowTaskUserService; + private final FlowEngineService flowEngineService; + private final HistoryService historyService; + + @Override + public R<BladeFlow> startProcess(FlowTaskUserC flowTaskUserC){ + String modelKey = flowTaskUserC.getModelKey(); + String templateId = flowTaskUserC.getTemplateId(); + + Kv kv = Kv.create() + .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName()); + + // 璁剧疆娴佺▼鍚姩鐢ㄦ埛 + identityService.setAuthenticatedUserId(TaskUtil.getTaskUser()); + + // 寮�鍚祦绋� + //鏌ヨ鏈�鏂扮殑娴佺▼閮ㄧ讲id + ProcessDefinition latesDefinition = repositoryService.createProcessDefinitionQuery().latestVersion().processDefinitionKey(modelKey).singleResult(); + String processDefinitionId = latesDefinition.getId(); + + //鏌ヨ姣忎竴姝ュ鏍镐汉 + List<FlowTaskUser> taskUsers = flowTaskUserService.getTaskUserByTemplateAndModelKey(templateId,modelKey); + Set<String> taskIdSet = new HashSet<>(); + for (FlowTaskUser taskUser:taskUsers){ + kv.put(taskUser.getTaskId(),TaskUtil.getTaskUser(taskUser.getUserId())); + taskIdSet.add(taskUser.getTaskId()); + } + + //瀵规瘮閰嶇疆鐨勫鏍镐汉鍛樺拰娴佺▼涓妭鐐规槸鍚︿竴鑷达紝鍙兘瀛樺湪娴佺▼鑺傜偣鍙樻洿浜嗭紝澶氫簡鎴栬�呭皯浜嗚妭鐐癸紝浣嗘槸閰嶇疆瀹℃牳浜哄憳鐨勮妭鐐规病鏈夊彉 + List<Map<String,String>> processTasks = flowEngineService.getNodeByFlowableKey(modelKey); + for (Map<String,String> mi:processTasks){ + String taskId = mi.get(flowEngineService.getTaskIdString()); + if(!taskIdSet.contains(taskId)){ + throw new ServiceException("娴佺▼宸查噸鏂伴儴缃诧紝鑺傜偣宸叉敼鍙橈紝璇疯缃鏍镐汉鍛橈紒"); + } + } + if(taskIdSet.size()!=processTasks.size()){ + throw new ServiceException("娴佺▼宸查噸鏂伴儴缃诧紝鑺傜偣宸叉敼鍙橈紝璇疯缃鏍镐汉鍛橈紒"); + } + + //娴佺▼涓枃浠躲�佸彉閲忕瓑 + //do.. + + ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, modelKey, kv); + // 缁勮娴佺▼閫氱敤绫� + BladeFlow flow = new BladeFlow(); + flow.setProcessInstanceId(processInstance.getId()); + + nextFlowNode("next","039ac1d8-0c1e-11ee-bebb-5c3a4570456d"); + return R.data(flow); + } + + /** + * 鑾峰彇浠诲姟鑺傜偣 + * + * @param node 鏌ヨ鑺傜偣閫夋嫨 + * @param processInstanceId 娴佺▼瀹炰緥id + */ + public void nextFlowNode(String node, String processInstanceId) { + + Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); + + ExecutionEntity ee = (ExecutionEntity) runtimeService.createExecutionQuery() + .executionId(task.getExecutionId()).singleResult(); + // 褰撳墠瀹℃壒鑺傜偣 + String crruentActivityId = ee.getActivityId(); + BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId()); + FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(crruentActivityId); + // 杈撳嚭杩炵嚎 + List<SequenceFlow> outFlows = flowNode.getOutgoingFlows(); + for (SequenceFlow sequenceFlow : outFlows) { + //褰撳墠瀹℃壒鑺傜偣 + if ("now".equals(node)) { + FlowElement sourceFlowElement = sequenceFlow.getSourceFlowElement(); + System.out.println("褰撳墠鑺傜偣: id=" + sourceFlowElement.getId() + ",name=" + sourceFlowElement.getName()); + } else if ("next".equals(node)) { + // 涓嬩竴涓鎵硅妭鐐� + FlowElement targetFlow = sequenceFlow.getTargetFlowElement(); + if (targetFlow instanceof UserTask) { + System.out.println("涓嬩竴鑺傜偣: id=" + targetFlow.getId() + ",name=" + targetFlow.getName()); + } + // 濡傛灉涓嬩釜瀹℃壒鑺傜偣涓虹粨鏉熻妭鐐� + if (targetFlow instanceof EndEvent) { + System.out.println("涓嬩竴鑺傜偣涓虹粨鏉熻妭鐐癸細id=" + targetFlow.getId() + ",name=" + targetFlow.getName()); + } + } + + + } + } +} 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-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/ProcessTemplateTypeEnum.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/ProcessTemplateTypeEnum.java index 3284d8e..6f47626 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/ProcessTemplateTypeEnum.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/ProcessTemplateTypeEnum.java @@ -20,12 +20,12 @@ /** * 鍋滅敤 */ - ENABLE("ENABLE","鍋滅敤"), + ENABLE("ENABLE","鍚敤"), /** * 鍚敤 */ - DISABLE("DISABLE","鍚敤"); + DISABLE("DISABLE","鍋滅敤"); /** * 鏋氫妇鐨勫�� 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/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java index 43a405f..0be0ac9 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java @@ -413,20 +413,20 @@ */ List<Tree> referTree(UIFormReferVO referConfigVO, TreeQueryObject queryObject); + /** * 鏄惁涓轰慨鏀瑰拷鐣ョ殑灞炴�� * @param attrName 灞炴�х殑鍚嶅瓧 * @return true 琛ㄧず搴旇蹇界暐 */ - 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)); -// } + default 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/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..a3f53b6 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java @@ -0,0 +1,36 @@ +package com.vci.ubcs.code.service.impl; + + +import com.vci.ubcs.code.service.ICodeDuckingSyncService; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.api.R; +import org.springframework.stereotype.Service; + + +/* + * 涓婚搴撻泦鎴愭湇鍔� + * @author xiejun + * @date 2023-06-19 +**/ + +@Service +@Slf4j +public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService { + + + @Override + public void DockingDataSyncScheduing() { + + } + + @Override + public void DockingClassSyncScheduing() { + + } + + @Override + public R sendData(String oids) { + return null; + } +} + 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 fe8c086..626f009 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 @@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.sun.corba.se.impl.orbutil.ObjectUtility; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; @@ -19,13 +17,11 @@ import com.vci.ubcs.code.mapper.CodeWupinMapper; 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.vo.CodeKeyAttrRepeatVO; import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO; import com.vci.ubcs.code.vo.pagemodel.UITablePageVO; import com.vci.ubcs.code.vo.pagemodel.*; import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant; -import com.vci.ubcs.omd.entity.BtmTypeAttribute; import com.vci.ubcs.omd.cache.EnumCache; import com.vci.ubcs.omd.feign.*; import com.vci.ubcs.omd.utils.VciOmdUtil; @@ -38,7 +34,6 @@ import com.vci.ubcs.starter.revision.model.TreeQueryObject; import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; import com.vci.ubcs.starter.revision.service.RevisionModelUtil; -import com.vci.ubcs.starter.util.UBCSSqlKeyword; import com.vci.ubcs.starter.web.constant.QueryOptionConstant; import com.vci.ubcs.starter.web.constant.RegExpConstant; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; @@ -55,15 +50,12 @@ import com.vci.ubcs.system.user.feign.IUserClient; import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; import oracle.sql.TIMESTAMP; -import org.apache.commons.collections4.MapUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.Cache; @@ -73,15 +65,10 @@ import javax.annotation.Resource; import java.beans.BeanInfo; -import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.math.BigDecimal; -import java.sql.SQLException; -import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; @@ -881,21 +868,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)); - } + /** * 淇濆瓨鍙緭鍙�夌殑淇℃伅 @@ -3480,6 +3453,7 @@ return revisionModelUtil.doList2Trees(codeClassifies, treeWrapperOptions, null); } + private String getTableName(String refertype){ if ("codeclassify".equals(refertype)){ return "pl_code_classify"; 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> diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/controller/UserController.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/controller/UserController.java index 4fe20fa..5322e78 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/controller/UserController.java +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/controller/UserController.java @@ -142,6 +142,12 @@ return R.data(UserWrapper.build().pageVO(pages)); } + @GetMapping("/allPage") + public R<List<UserVO>> allPage(User user,Long deptId) { + List<User> userss = userService.selectAllUser(user,deptId); + return R.data(UserWrapper.build().listVO(userss)); + } + /** * 鏂板鎴栦慨鏀� */ diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/mapper/UserMapper.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/mapper/UserMapper.java index 0d21766..847bac9 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/mapper/UserMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/mapper/UserMapper.java @@ -43,6 +43,8 @@ */ List<User> selectUserPage(IPage<User> page, @Param("user") User user, @Param("deptIdList") List<Long> deptIdList, @Param("tenantId") String tenantId); + List<User> selectUserPage(@Param("user") User user, @Param("deptIdList") List<Long> deptIdList, @Param("tenantId") String tenantId); + /** * 鑾峰彇鐢ㄦ埛 * @@ -50,7 +52,7 @@ * @param account * @return */ - User getUser(String tenantId, String account); + User getUser(String tenantId, String account,String name); /** * 鑾峰彇瀵煎嚭鐢ㄦ埛鏁版嵁 diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java index 51ace0f..1d38c73 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/IUserService.java @@ -84,6 +84,15 @@ * 鑷畾涔夊垎椤� * * @param user + * @param deptId + * @return + */ + List<User> selectAllUser(User user, Long deptId); + + /** + * 鑷畾涔夊垎椤� + * + * @param user * @param query * @return */ @@ -107,6 +116,15 @@ UserInfo userInfo(String tenantId, String account); /** + * 鐢ㄦ埛淇℃伅,涓哄暐涓嶅垹浜嗕笂杈归偅涓柟娉曞憿锛屽洜涓烘垜涓嶆暍,鐗垫壇鏈夌偣澶� + * + * @param tenantId + * @param account + * @return + */ + UserInfo userInfo(String tenantId, String account,String name); + + /** * 鐢ㄦ埛淇℃伅 * * @param tenantId diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java index 4502b3c..c66d5f2 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java @@ -162,6 +162,13 @@ } @Override + public List<User> selectAllUser(User user, Long deptId){ + List<Long> deptIdList = SysCache.getDeptChildIds(deptId); + List<User> users = baseMapper.selectUserPage(user, deptIdList, (AuthUtil.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : AuthUtil.getTenantId())); + return users; + } + + @Override public IPage<UserVO> selectUserSearch(UserVO user, Query query) { LambdaQueryWrapper<User> queryWrapper = Wrappers.<User>query().lambda(); String tenantId = AuthUtil.getTenantId(); @@ -206,13 +213,20 @@ @Override public UserInfo userInfo(String tenantId, String account) { - User user = baseMapper.getUser(tenantId, account); + User user = baseMapper.getUser(tenantId, account,null); return buildUserInfo(user); } @Override + public UserInfo userInfo(String tenantId, String account,String name) { + User user = baseMapper.getUser(tenantId, account,name); + UserInfo userInfo = buildUserInfo(user); + return null; + } + + @Override public UserInfo userInfo(String tenantId, String account, UserEnum userEnum) { - User user = baseMapper.getUser(tenantId, account); + User user = baseMapper.getUser(tenantId, account,null); return buildUserInfo(user, userEnum); } diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml b/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml index 89d7627..2229dba 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/resources/mapper/UserMapper.xml @@ -77,7 +77,11 @@ LEFT JOIN PL_SYS_USER_PWDSTRATEGY plup on plup.USER_ID=pou.ID LEFT JOIN PL_SYS_PWDSTRATEGY pss on pss.ID=plup.PWDSTRATEGY_ID WHERE - tenant_id = #{param1} and account = #{param2} and is_deleted = 0 + tenant_id = #{param1} and account = #{param2} + <if test="param3!=null and param3 != ''"> + and name = #{param3} + </if> + and is_deleted = 0 </select> <select id="exportUser" resultType="com.vci.ubcs.system.user.excel.UserExcel"> -- Gitblit v1.9.3