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 }) 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="æ£ç¡®æ°æ®" 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> 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> 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]) 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: [], 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 = []; } }); }, }, }; 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: { 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()); Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/FlowProcessTSController.java
ÎļþÃû´Ó Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/controller/ProcessTSController.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); } 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)); } /** 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); } } 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 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ï¼å°±æ¯æµç¨taskid private String taskName;//é¶æ®µåç§° private List<FlowTaskUser> flowTaskUsers;//æ¯ä¸ªèç¹æ¶è人 private List<ProcessStageAttr> processStageAttr;//æµç¨é¶æ®µä¿åç屿§ private List<String> ids;//æµç¨åèµ·ä¸ä¼ éè¿æ¥çæ°æ®id } 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(); } Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/FlowTaskUserService.java
@@ -35,9 +35,10 @@ /** * æ¥è¯¢å½åç»é人对è¿ä¸ªæµç¨çtaskUser * @param type ProcessTemplateTypeEnum * @return */ FlowTaskUserC getUser(); Object getUser(String type,String templateId); /** * æ°å¢/ä¿®æ¹æµç¨èç¹å®¡æ ¸äººé ç½®ãå¹¶ä¸ä¿®æ¹æµç¨xmlé¨ç½²æä»¶ @@ -51,4 +52,12 @@ * @param name */ void deleteUser(String name); /** * éè¿æ¨¡æ¿id忍¡åkeyæ¥è¯¢å®¡æ¹äºº * @param templateId * @param modelKey * @return */ List<FlowTaskUser> getTaskUserByTemplateAndModelKey(String templateId,String modelKey); } 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); } 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; } /** * æ¯å¦å·²å®ç» * 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; /** * æ¥è¯¢å½åç»é人对è¿ä¸ªæµç¨çtaskUser * @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); } } 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()); } } } } } 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çoid */ @ApiModelProperty(value = "ä¸å¡æ°æ®ä¸»é®") private String dataOid; } 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çoid */ 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 + '\'' + '}'; } } 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","åç¨"); /** * æä¸¾çå¼ 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ä¸ * ä»dockingtaskä¸ååºæ¥æ°æ®ï¼æ¨éåºå»çæä½ */ @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); } } } 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ä¸ * ä»dockingtaskä¸ååºæ¥æ°æ®ï¼æ¨éåºå»çæä½ */ @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); } } } 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> { } 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; /** * ä¸ãé ç½®åç±»ãç³»ç»ãæ¥å£æ°æ® * 1ãé 置系ç»SysIntBaseDO * 2ãé 置系ç»ãæ¥å£ãåç±»SysIntInfoDO * * äºãå¤çé¢ç³è¯·æ°æ® * 1ãæ¥æ¶xmlData * 2ãå·¥èºç³»ç»ç¹æ®å¤çï¼æ ¹æ®uniqueæ¥è¯¢ç¼ç ï¼æå·²ç»åå¸çæ°æ®ï¼ç´æ¥è¿åç¼ç ãæ²¡ææ¥è¯¢å°å·²ç»åå¸çç¼ç ï¼ç¼è¾ä¸ãæäº¤ä¸ãå®¡æ ¸ä¸ãåç¨çï¼åä¸è¬ç³»ç»ä¸æ ·æç §ç¬¬3æ¥å¤ç * 3ãè§£æxmlData鿝ä¸ä¸ªdataèç¹ï¼åå¨å ¥DockingPreApplyDataDOï¼dataèç¹ä¸prosèç¹åå¨å ¥DockingPreApplyDataInfoDO * 4ãè¿åxmlDataï¼éè¾¹æ è¯äºæ¯ä¸ä¸ªdataçå¤çç»æ * * ä¸ãæ ¹æ®é¢ç³è¯·æ°æ®ï¼æå ¥ä¸»æ°æ® * 1ãå ³èåç±» * 2ãæ¥è¯¢åºDockingPreApplyDataInfoDOåå¨çæ°æ®ï¼æç §æ°æ®æ å°xmlï¼è½¬æ¢ä¸ºæä»¬çkeyï¼è¿ç»å端èªå¨å¡«å å°æ°å¢æ°æ®çé¡µé¢ * 3ãè°ç¨éç¨çæ°æ®æ°å¢æ¥å£ä¿åæ°æ®ï¼è¿ä¸æ¥åä¸»æ°æ®ç®¡ç模ååè½ä¸æ · * * åãæ¨éæ°æ® * 1ãåç±»æ°æ®åä¸»æ°æ®æååçæ¶åï¼æ°æ®åºè§¦åå¨(TIG_CODEALLCODE_FORDOCKINGDATA,TIG_codeclsify_FORDOCKINGDATA)èªå¨æå ¥dockingdata * 2ãDockingSchedulingæ§è¡æ¶ï¼æ¥è¯¢dockingdatasendflag=falseçæ°æ®ï¼ç»åæ¥è¯¢sysintinfoæ°æ®ï¼æ¥è¯¢dockingtask * 3ãdockingtaskä¸ååºæ¥æ°æ®ï¼æ ¹æ®btmnameåæ°æ®oidæ¥è¯¢åºæ¥è¦æ¨éçæ°æ®ï¼æ¥è¯¢SysIntInfoDOï¼æ ¹æ®ä¸ã2ãä¸é ç½®çä¿¡æ¯ï¼æ§è¡æ¨é * * @author xieun * @date 2022-06-19 */ public interface ICodeDuckingSyncService { /** * æ°æ®å®æ¶ä»»å¡è°ç¨ */ void DockingDataSyncScheduing(); /** * æ°æ®å®æ¶ä»»å¡è°ç¨ */ void DockingClassSyncScheduing(); /** * æ¨éæªå®æçéææ°æ® * @return */ R sendData(String oids); } 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> { } 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)); } } 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; } } 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 { } 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"; 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)); 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æ¯xmlåï¼éè¿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("åæ°ï¼åç±»COde:" + 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 ("æ ¹æ®ä¼ è¾çåç±»ï¼æªè·åMDMç³»ç»ä¸å¯¹åºæ¨¡æ¿"); } 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 ("æ ¹æ®ä¼ è¾çåç±»ï¼æªè·åMDMç³»ç»ä¸å¯¹åºè§å"); } 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æ¯xmlåï¼éè¿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("åæ°ï¼åç±»COde:" + 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 ("æ ¹æ®ä¼ è¾çåç±»ï¼æªè·åMDMç³»ç»ä¸å¯¹åºæ¨¡æ¿"); } 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 ("æ ¹æ®ä¼ è¾çåç±»ï¼æªè·åMDMç³»ç»ä¸å¯¹åºè§å"); } 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æ¯xmlåï¼éè¿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("åæ°ï¼åç±»COde:" + 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 ("æ ¹æ®ä¼ è¾çåç±»ï¼æªè·åMDMç³»ç»ä¸å¯¹åºæ¨¡æ¿"); } 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 = "æ¥å£åæ°ï¼library 为null"; 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 = "æ¥å£åæ°ï¼classCode æªæ¥è¯¢å°å¯¹åºçå类信æ¯"; 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 = "æ¥å£åæ°ï¼classCode æªæ¥è¯¢å°å¯¹åºçå类信æ¯"; throw new Throwable(msg); } }else{ errorid = "101"; msg = "æ¥å£åæ°ï¼library æªæ¥è¯¢å°å¯¹åºçåºèç¹ä¿¡æ¯"; } 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("æ ¹æ®åæ°ï¼librayï¼-ã"+libray+"ä»é ç½®æä»¶ä¸æ¾å¯¹åºå±æ§æ å°é ç½®"); if(libPropMaps.containsKey(libray)){ log.info("æ ¹æ®åæ°ï¼librayï¼-ã"+libray+"å¹é å°ç¸åºç屿§æ å°ä¿¡æ¯"); List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray); propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); log.info("æ ¹æ®åæ°ï¼librayï¼-ã"+libray+"å¹é å°ç¸åºç屿§æ å°ä¿¡æ¯,屿§æ å°æ¡ç®æ°+"+clsfAttrMappingDOList.size()); } log.info("æ ¹æ®åæ°ï¼librayï¼-ã"+libray+"ä»é ç½®æä»¶ä¸æ¾å¯¹åºå±æ§æ å°é ç½® end "); }catch (Throwable e){ objerrorCode="1"; e.printStackTrace(); throw new Throwable("MDMéæå±æ§é ç½®æä»¶è¯»å失败"); } LinkedList<String> rowNameList=new LinkedList<>(); 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; } } 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> 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)); } /** * æ°å¢æä¿®æ¹ */ 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); /** * è·å导åºç¨æ·æ°æ® 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 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); } 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">