Source/UBCS-WEB/package-lock.json
ÎļþÌ«´ó Source/UBCS-WEB/src/api/GetItem.js
@@ -2,7 +2,7 @@ export const MasterTable =(params)=>{ return request({ url: 'api/ubcs-code/ubcs-code/mdmEngineController/getUIInfoByClassifyOid', url: 'api/ubcs-code/mdmEngineController/getUIInfoByClassifyOid', method: 'get', params:{ ...params @@ -12,7 +12,7 @@ export const TableData =(params)=>{ return request({ url: 'api/ubcs-code/ubcs-code/mdmEngineController/gridTableDataByClassifyOid', url: 'api/ubcs-code/mdmEngineController/gridTableDataByClassifyOid', method: 'get', params:{ ...params Source/UBCS-WEB/src/api/resource/file.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,74 @@ import request from '@/router/axios'; export const getList = (page, limit, params) => { return request({ url: '/api/ubcs-resource/fileController/listFiles', method: 'get', params: { ...params, page, limit } }) } export const remove = (oids) => { return request({ url: '/api/ubcs-resource/fileController/deleteFile', method: 'post', params: { oids } }) } export const upload = (row) => { return request({ url: '/api/ubcs-resource/fileController/uploadFile', method: 'post', data: row }) } export const update = (row) => { return request({ url: '/api/ubcs-resource/fileController/uploadFile', method: 'post', data: row }) } export const download = (oids) => { return request({ url: '/api/ubcs-resource/fileController/downloadFilesByOids', method: 'get', params: { oids } }) } /** * ä½¿ç¨æä»¶ä¸»é®è·å对象 * @param oid ä¸»é® * @return æä»¶æ¾ç¤ºå¯¹è±¡ */ export const getFile = (oid) => { return request({ url: '/api/ubcs-resource/fileController/get', method: 'get', params: { oid } }) } export const listFilesByOids = (oids) => { return request({ url: '/api/ubcs-resource/fileController/listFilesByOids', method: 'get', params: { oids } }) } Source/UBCS-WEB/src/api/system/dept.js
@@ -12,13 +12,15 @@ }) } export const getLazyList = (parentId, params) => { export const getLazyList = (parentId, params,current, size,) => { return request({ url: '/api/ubcs-system/dept/lazy-list', method: 'get', params: { ...params, parentId parentId, current, size } }) } Source/UBCS-WEB/src/api/system/menu.js
@@ -23,13 +23,15 @@ }) } export const getLazyMenuList = (parentId, params) => { export const getLazyMenuList = (parentId, params, current, size) => { return request({ url: '/api/ubcs-system/menu/lazy-menu-list', method: 'get', params: { ...params, parentId parentId, current, size, } }) } Source/UBCS-WEB/src/api/system/passwords.js
@@ -49,3 +49,10 @@ } }) } export const combination = () => { return request({ url: '/api/ubcs-system/combination/select', method: 'get', }) } Source/UBCS-WEB/src/api/system/role.js
@@ -1,8 +1,8 @@ import request from '@/router/axios'; export const getList = (current, size, params) => { export const getPage = (current, size, params) => { return request({ url: '/api/ubcs-system/role/list', url: '/api/ubcs-system/role/page', method: 'get', params: { ...params, Source/UBCS-WEB/src/api/template/setPersonnel.js
@@ -28,8 +28,8 @@ export const personnelSave = (params) => { return request({ url: '/api/ubcs-flow/vciflow/start', method: 'get', params: params method: 'post', data: params }) } // 人å设置ä¿å Source/UBCS-WEB/src/components/Crud/Crud.vue
@@ -6,7 +6,7 @@ <FormTemplateDialog :visible.sync="addvisible" :type="add" :templateOid="this.templateOid" :templateOid="templateOid" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" @@ -16,7 +16,7 @@ <FormTemplateDialog :visible.sync="editvisible" :type="edit" :templateOid="this.templateOids" :templateOid="templateOid" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" @@ -30,20 +30,24 @@ <el-button size="small" type="primary" plain>å é¤</el-button> <el-button size="small" type="primary" plain>åå¸</el-button> <el-button size="small" type="primary" plain>æ°æ®æ´æ¹</el-button> <el-button size="small" type="primary" plain>åæ¶</el-button> <el-button size="small" type="primary" plain @click="huishouHandler">åæ¶</el-button> <el-button size="small" type="primary" plain @click="openD">å¯¼åº <integration-transfer :visible.sync="dialogPush" :data="transferData" :props="transferProps" @save="handelTransferSave"></integration-transfer> </el-button> <el-button size="small" type="primary" plain @click="findvisible=true">æ¥è¯¢ <advancedQuery :visible.sync="findvisible" :options="this.options"></advancedQuery> <<<<<<< HEAD <advanced-query :visible.sync="findvisible" :options="options"></advanced-query> ======= <advanced-query :visible.sync="findvisible" :options="this.options"></advanced-query> >>>>>>> 859a64b36d107b147f44eccd0c0a76471c5e49ea </el-button> <el-button size="small" type="primary" plain>ç¸ä¼¼é¡¹æ¥è¯¢</el-button> <el-button size="small" type="primary" plain style="margin-left: 1px;margin-top:10px">å·æ°</el-button> <el-input placeholder="请è¾å ¥å ³é®åæå车æ¥è¯¢" style="width: 180px;margin-left: 5px;margin-top:10px" size="small"></el-input> </div> <el-row style="height: 700px;width: 100%"> <el-table :data="tableData" style="" @cell-click="handleCellClick" max-height="700" @selection-change="handleSelectionChange" @sort-change="sortChange"> <el-table :data="tableData" style="" @cell-click="handleCellClick" max-height="700" v-loading="isLoading" @selection-change="handleSelectionChange" @sort-change="sortChange"> <el-table-column type="selection" fixed @@ -113,15 +117,20 @@ }, tableDataArray:{ type:Array, default:[] }, total:{ type:String, default:"" }, templateOid:{ type:String, }, tableHeadDataFateher:{ type:Array, default:[] }, isLoading:{ type:Boolean, default:false } }, data() { @@ -141,9 +150,8 @@ editingRow:null, editShow: "", editAttr:"", loading: false, data: [], options:{}, options:[], option: { column: [] }, @@ -157,7 +165,6 @@ }, tableData:[], tableHeadData:[], tableHeadDataFateher:[], items:{}, seniorQueryColumns:[] } @@ -193,13 +200,30 @@ this.page.total=newval; } }, tableHeadData:{ tableHeadDataFateher:{ handler(newval,oldval){ this.tableHeadDataFateher=newval let List=newval.tableDefineVO.cols[0]; List.forEach(item=>{ let columnItem = { label: item.title, prop: item.field, type: this.columnType[item.type], sortable: item.sort, width: item.minWidth }; this.option.column.push(columnItem); this.option.column=this.tableHeadData; }) } } }, methods: { huishouHandler(){ console.log('tem',this.templateOid) console.log('table',this.tableData) console.log('tabheadle',this.tableHeadData) console.log('tableFather',this.tableHeadDataFateher) }, openD(){ this.dialogPush=true; this.getListCodeByClassId() @@ -219,25 +243,20 @@ this.page.pageSize=val this.$emit('pageSize',val) this.CrudRend() console.log(this.tableData) }, handleCurrentChange(val){ this.page.currentPage=val this.$emit('currentPage',val) this.CrudRend() console.log(val) console.log(this.tableData) }, // çå¬åå æ ¼ç¹å»äºä»¶å¹¶å卿£å¨ç¼è¾çè¡ handleCellClick(row, column) { this.editingRow = row; this.editShow = column.property; console.log(row) this.rowOid=row.oid }, //å é¤ enumDeleteRow(row) { console.log(row) this.tableData.splice(row, 1) }, // å°æ£å¨ç¼è¾çè¡çç¶æå为 null ï¼å³éåºç¼è¾ç¶æ @@ -285,7 +304,6 @@ this.option.column=this.tableHeadData; this.templateOid=res.data.tableDefineVO.oid this.$emit('templateOid',this.templateOid) console.log(this.templateOid) }) }) } @@ -305,7 +323,7 @@ }, // æåº sortChange(val) { this.loading = true; this.isLoading = true; let order = "" if (val.order == "ascending") { order = "asc"; @@ -322,7 +340,7 @@ }).then(res => { setTimeout(() => { this.data = res.data.data; this.loading = false; this.isLoading = false; }, 100); }) }, Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
@@ -29,6 +29,8 @@ :referConfig="item.referConfig || {}" :value="form[item.referConfig.field] || item.value" :text="form[item.referConfig.showField]" :disabled="item.disabled" :display="item.display" @setReferValue="setReferValue" ></vciWebRefer> </template> Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -82,7 +82,6 @@ this.coderuleoid=res.data[0].attributes.coderuleoid; this.$emit("codeClassifyOid", this.codeClassifyOid ) this.$emit("coderuleoid", this.coderuleoid ) this.TableHeadRends() }).catch(res=>{ console.log(res) }) @@ -108,44 +107,40 @@ page: this.currentPage, limit: this.pageSize, }).then(res => { // this.page.total = res.data.total; // this.data = res.data.data; this.tableDataArray=res.data.data; this.$emit('tableDataArray',this.tableDataArray) this.$emit('total',res.data.total) console.log('table',this.tableDataArray) }) }, //è¡¨æ ¼å¤´é¨ TableHeadRend(){ MasterTable({ codeClassifyOid:this.nodeClickList.oid, functionId: 5, }).then(res=>{ this.tableHeadDataFateher=res.data; this.templateOids=res.data.tableDefineVO.oid this.$emit("tableHeadDataFateher",this.tableHeadDataFateher) console.log("123",res) }) }, TableHeadRends(){ MasterTable({ codeClassifyOid:this.codeClassifyOid, functionId: 5, }).then(res=>{ this.tableHeadDataFateher=res.data; this.templateOids=res.data.tableDefineVO.oid this.$emit("tableHeadDataFateher",this.tableHeadDataFateher) console.log("123",res) TableHeadRend() { return new Promise((resolve,reject)=>{ MasterTable({ codeClassifyOid: this.nodeClickList.oid, functionId: 5, }).then(res => { this.tableHeadDataFateher = res.data; this.templateOids = res.data.tableDefineVO.oid; this.$emit('tableHeadDataFateher', this.tableHeadDataFateher); resolve(); }).catch(err=>{ reject(err) }) }) }, //æ ç¹å»äºä»¶ nodeClick(data){ this.nodeClickList = data; this.TableHeadRend() this.TableRend() console.log('code',this.nodeClickList.oid) console.log('teoid',this.templateOids) console.log() async nodeClick(data) { try { this.nodeClickList = data; await this.TableHeadRend(); // å æ§è¡ TableHeadRend() this.TableRend(); // TableHeadRend() æ¹æ³å®æååæ§è¡ TableRend() this.$emit('nodeClick',this.templateOids) console.log(this.templateOids) } catch (error) { // å¤çé误 this.$message.error(error) } } } } Source/UBCS-WEB/src/components/Tree/TemplatePro.vue
@@ -5,11 +5,11 @@ <attrCrud :ProData="ProData" :crudOid="crudOid" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud> </span> <span v-else-if="type.prop==='tab2'"> <FlowPath code="8b5e2017-990f-454a-9c39-4c4eeeb57553"></FlowPath> <FlowPath :code="this.codeClassifyOid"></FlowPath> </span> <span v-else-if="type.prop==='tab3'"> <!-- <stage :visible.sync="visibleStage" code="8b5e2017-990f-454a-9c39-4c4eeeb57553"></stage>--> <stage :code="this.codeClassifyOid"></stage> </span> </basic-container> @@ -51,318 +51,6 @@ } } </script> <!--<template>--> <!-- <!– ä½¿ç¨ Element UI çè¡¨æ ¼ç»ä»¶å±ç¤ºæ°æ® –>--> <!-- <!– 对æ¯è¡æ°æ®æ¸²æä¸ä¸ªè¡¨æ ¼è¡ç»ä»¶ –>--> <!-- <el-table :data="data">--> <!-- <el-table-column v-for="column in columns" :key="column.prop" :label="column.label">--> <!-- <template slot-scope="scope">--> <!-- <template v-if="isEditing(scope.$index, column.prop)">--> <!-- <!– 使ç¨èªå®ä¹è¾å ¥æ¡ï¼ç»å®æ°æ®å¹¶çå¬ blur äºä»¶ –>--> <!-- <el-input v-model="editorModel[scope.$index][column.prop]" ref="editor"--> <!-- @blur="onEditorBlur(scope.$index, column.prop)">--> <!-- </el-input>--> <!-- </template>--> <!-- <template v-else>--> <!-- <!– å°æ°æ®æ¸²æä¸ºè¡¨æ ¼åå æ ¼ï¼ç»å® click äºä»¶ –>--> <!-- <div @click="onCellClick(scope.$index, column.prop)"--> <!-- :style="{cursor: 'pointer', backgroundColor: isEditing(scope.$index, column.prop) ? '#F0F0F0' : 'transparent'}">--> <!-- {{ scope.row[column.prop] === "" ? '' : scope.row[column.prop] }}--> <!-- </div>--> <!-- </template>--> <!-- </template>--> <!-- </el-table-column>--> <!-- </el-table>--> <!--</template>--> <!--<script>--> <!--export default {--> <!-- data() {--> <!-- // ç»ä»¶çæ°æ®ï¼å æ¬è¡¨æ ¼çæ°æ®ãåå®ä¹åå½åæ£å¨ç¼è¾çè¡åå--> <!-- return {--> <!-- data: [--> <!-- { id: 1, name: 'å¼ ä¸', age: 18, attributegroup: 'ç·', attributeDataTypeText: '广ä¸çæ·±å³å¸' },--> <!-- { id: 2, name: 'æå', age: 20, attributegroup: '女', attributeDataTypeText: 'åäº¬å¸æµ·æ·åº' },--> <!-- { id: 3, name: 'çäº', age: 22, attributegroup: 'ç·', attributeDataTypeText: '䏿µ·å¸æµ¦ä¸æ°åº' },--> <!-- { id: 4, name: 'èµµå ', age: 24, attributegroup: '女', attributeDataTypeText: '广ä¸ç广å·å¸' }--> <!-- ],--> <!-- columns: [ // å®ä¹è¡¨æ ¼çå--> <!-- {--> <!-- label: "屿§è±æç¼å·",--> <!-- prop: "id",--> <!-- fixed: true,--> <!-- cell: false,--> <!-- labelWidth: 110,--> <!-- width: 125,--> <!-- sortable: true,--> <!-- },--> <!-- {--> <!-- label: "屿§ä¸æåç§°",--> <!-- prop: "name",--> <!-- fixed: true,--> <!-- cell: false,--> <!-- width: 125,--> <!-- sortable: true--> <!-- },--> <!-- {--> <!-- label: "屿§åç»",--> <!-- prop: "attributegroup",--> <!-- cell: false,--> <!-- sortable: true,--> <!-- width: 125,--> <!-- },--> <!-- {--> <!-- label: "ç±»å",--> <!-- prop: "attributeDataTypeText",--> <!-- cell: false,--> <!-- sortable: true,--> <!-- },--> <!-- {--> <!-- label: "å表宽度",--> <!-- prop: "attrTableWidth",--> <!-- cell: false,--> <!-- sortable: true,--> <!-- width: 105,--> <!-- },--> <!-- {--> <!-- label: "å ³é®å±æ§",--> <!-- prop: "keyattrflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "æ¥è¯¢å±æ§",--> <!-- prop: "queryattrflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "é«çº§æ¥è¯¢å±æ§",--> <!-- prop: "seniorqueryattrflag",--> <!-- width: 95,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "ç¸ä¼¼æ¥è¯¢å±æ§",--> <!-- prop: "samerepeatattrflag",--> <!-- width: 95,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "å¿ è¾",--> <!-- prop: "requireflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "è¡¨åæ¾ç¤º",--> <!-- prop: "formdisplayflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "å表æ¾ç¤º",--> <!-- prop: "tabledisplayflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "åªè¯»",--> <!-- prop: "readonlyflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "å表æåº",--> <!-- prop: "sortattrflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "å¤è¡ææ¬",--> <!-- prop: "textareaflag",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "é»è®¤å¼",--> <!-- prop: "defaultvalue",--> <!-- sortable: true,--> <!-- cell: false,--> <!-- width: 95,--> <!-- },--> <!-- {--> <!-- label: "åç¼",--> <!-- prop: "prefixvalue",--> <!-- sortable: true,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "åç¼",--> <!-- prop: "suffixvalue",--> <!-- sortable: true,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "ç»åè§å",--> <!-- prop: "componentrule",--> <!-- sortable: true,--> <!-- cell: false,--> <!-- width: 105,--> <!-- },--> <!-- {--> <!-- label: "éªè¯è§å",--> <!-- prop: "verifyrule",--> <!-- sortable: true,--> <!-- cell: false,--> <!-- width: 105,--> <!-- },--> <!-- {--> <!-- label: "æ¶é´æ ¼å¼",--> <!-- prop: "codedateformat",--> <!-- sortable: true,--> <!-- width: 105,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "åç±»æ³¨å ¥",--> <!-- prop: "classifyinvokelevel",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "æä¸¾æ³¨å ¥",--> <!-- prop: "enumString",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "级è屿§",--> <!-- prop: "parentCode",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "åç §é ç½®",--> <!-- prop: "referConfig",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "çº§èæ¥è¯¢å±æ§",--> <!-- prop: "parentQueryAttr",--> <!-- width: 105,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "éæ©åºæ è¯",--> <!-- prop: "libraryIdentification",--> <!-- width: 105,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "å¡«åæç¤º",--> <!-- prop: "explain",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "è¡¨åæ¾ç¤ºæ ·å¼",--> <!-- prop: "formdisplaystyle",--> <!-- width: 105,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "è¡¨æ ¼æ¾ç¤ºæ ·å¼",--> <!-- prop: "tabledisplaystyle",--> <!-- width: 105,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "表åè¶ é¾æ¥",--> <!-- prop: "formhref",--> <!-- width: 95,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "è¡¨æ ¼è¶ é¾æ¥",--> <!-- prop: "tablehref",--> <!-- width: 95,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "è¡¨æ ¼æ¾ç¤ºjs",--> <!-- prop: "tabledisplayjs",--> <!-- width: 95,--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "é¿åº¦",--> <!-- prop: "controllength",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "å°æ°ç²¾åº¦",--> <!-- prop: "precisionlength",--> <!-- cell: false,--> <!-- },--> <!-- {--> <!-- label: "åå¼èå´",--> <!-- prop: "valuearea",--> <!-- sortable: true,--> <!-- cell: false,--> <!-- width: 105,--> <!-- },--> <!-- ],--> <!-- editingIndex: -1, // å½åæ£å¨ç¼è¾çè¡çç´¢å¼--> <!-- editingColumn: '', // å½åæ£å¨ç¼è¾çåç屿§å--> <!-- editorModel: [] // ç¼è¾æ¡çæ°æ®ï¼ä½¿ç¨æ°ç»ä¿åæ¯ä¸ªåå æ ¼çæ°æ®--> <!-- };--> <!-- },--> <!-- created() {--> <!-- // å¨ç»ä»¶å建æ¶ï¼åå§åç¼è¾æ¡çæ°æ®--> <!-- this.editorModel = this.data.map(row => {--> <!-- const editorRow = {};--> <!-- this.columns.forEach(column => {--> <!-- editorRow[column.prop] = row[column.prop];--> <!-- });--> <!-- return editorRow;--> <!-- });--> <!-- },--> <!-- methods: {--> <!-- // åå æ ¼ç¹å»äºä»¶å¤ç彿°--> <!-- onCellClick(rowIndex, columnProp) {--> <!-- if (this.editingIndex >= 0 && this.editingColumn) {--> <!-- this.onEditorBlur(this.editingIndex, this.editingColumn);--> <!-- return;--> <!-- }--> <!-- const cellValue = this.data[rowIndex][columnProp];--> <!-- if (cellValue === undefined || cellValue === null) {--> <!-- this.data[rowIndex][columnProp] = '';--> <!-- }--> <!-- this.editingIndex = rowIndex;--> <!-- this.editingColumn = columnProp;--> <!-- this.$nextTick(() => {--> <!-- this.$refs.editor.focus();--> <!-- });--> <!-- },--> <!-- // ç¼è¾æ¡å¤±ç¦äºä»¶å¤ç彿°--> <!-- onEditorBlur(rowIndex, columnProp) {--> <!-- // å°å½åç¼è¾æ¡çæ°æ®ä¿åå°è¡¨æ ¼æ°æ®ä¸--> <!-- const editorValue = this.editorModel[rowIndex][columnProp];--> <!-- if (editorValue === '') {--> <!-- this.data[rowIndex][columnProp] = undefined;--> <!-- } else {--> <!-- this.data[rowIndex][columnProp] = editorValue;--> <!-- }--> <!-- this.editingIndex = -1;--> <!-- this.editingColumn = '';--> <!-- },--> <!-- // 夿æå®åå æ ¼æ¯å¦å¨ç¼è¾ç¶æ--> <!-- isEditing(rowIndex, columnProp) {--> <!-- return rowIndex === this.editingIndex && columnProp === this.editingColumn;--> <!-- }--> <!-- }--> <!--};--> <!--</script>--> <style lang="scss"> //ä¿®æ¹åç±»æ³¨å ¥å¯¹è¯æ¡å ¬å ±æ ·å¼ .mydialog .el-dialog__body { Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -33,8 +33,12 @@ </template> <!-- ç»åè§å--> <template slot="menuLeft"> <el-button size="small" @click="isShowformulaEdit=true">ç»åè§å</el-button> <formula-editor :visible.sync="isShowformulaEdit" :systemVariableTableData="systemVariableTableData" :thisSceneTableData="thisSceneTableData"></formula-editor> <el-button size="small" @click="isShowHandler">ç»åè§å</el-button> <formula-editor :visible.sync="isShowformulaEdit" :systemVariableTableData="systemVariableTableData" :thisSceneTableData="thisSceneTableData" @updateFormulaContent="updataFormlaContent" ></formula-editor> </template> <!-- éªè¯è§å--> @@ -266,6 +270,7 @@ type:Boolean, default:false }, }, data() { return { @@ -696,20 +701,130 @@ }, { label: "使ç¨è¯´æ", prop: "shiyong" prop: "description" } ] }, //屿§éªè¯è§ådata rulesData: [ { bds: "æµè¯ä¸", shiyong: "æµè¯ä¸" }, {bds: '[\u3000\uff01-\uff5f]+', description: 'å ¨è§ç¬¦å·'}, {bds: '[^\u3000\uff01-\uff5f]+', description: 'åè§ç¬¦å·'}, {bds: '(([-|+]{1}[\\d]+âï½[-|+]{1}[\\d]+â)|æ )', description: '温度èå´ï¼ç¤ºä¾ -55âï½+125â'}, {bds: '[\\d]{15}|[\\d]{18}|[\\d]{17}X', description: '身份è¯å·ç (15æ18使°åã17使°åX) '}, {bds: 'ç·|女|ç·æ§|女æ§', description: '䏿æ§å«'}, {bds: '[\\d]+', description: 'æ°å'}, {bds: '[a-zA-Z]+', description: '忝'}, {bds: '[A-Z]+', description: '大å忝'}, {bds: '[a-z]+', description: 'å°å忝'}, {bds: '[0-9a-zA-Z]+', description: 'åæ¯ãæ°åç»å'}, {bds: '((0[\\d]{3}-[\\d]{7})|(0[\\d]{2}-[\\d]{8})|([\\d]{7,8}))', description: 'çµè¯å·ç '}, {bds: '-?[1-9]\\d*', description: 'æ´æ°'}, {bds: '[1-9]\\d*', description: 'æ£æ´æ°'}, {bds: '-[1-9]\\d*', description: 'è´æ´æ°'}, {bds: '-[1-9]\\d*|0', description: 'éæ£æ´æ°(è´æ´æ°+0)'}, {bds: '[1-9]\\d*|0', description: 'éè´æ´æ°(æ£æ´æ°+0)'}, {bds: '-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)', description: 'æµ®ç¹æ°'}, {bds: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: 'æ£æµ®ç¹æ°'}, {bds: '-[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: 'è´æµ®ç¹æ°'}, {bds: '[(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0', description: 'éæ£æµ®ç¹æ°ï¼è´æµ®ç¹æ° + 0ï¼'}, {bds: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0', description: 'éè´æµ®ç¹æ°ï¼æ£æµ®ç¹æ° + 0ï¼'}, {bds: 'x', description: 'å符 x'}, {bds: '\\\\', description: 'åæçº¿å符'}, {bds: '\\0n', description: '带æå «è¿å¶å¼ 0 çå符 n (0 <= n <= 7)'}, {bds: '\\0nn', description: '带æå «è¿å¶å¼ 0 çå符 nn (0 <= n <= 7)'}, {bds: '\\0mnn', description: '带æå «è¿å¶å¼ 0 çå符 mnnï¼0 <= m <= 3ã0 <= n <= 7ï¼'}, {bds: '\\xhh', description: '带æåå è¿å¶å¼ 0x çå符 hh'}, {bds: '\\uhhhh', description: '带æåå è¿å¶å¼ 0x çå符 hhhh'}, {bds: '\\t', description: 'å¶è¡¨ç¬¦ (\'\u0009\')'}, {bds: '\\n', description: 'æ°è¡ï¼æ¢è¡ï¼ç¬¦ (\'\u000A\')'}, {bds: '\\r', description: 'å车符 (\'\u000D\')'}, {bds: '\\f', description: 'æ¢é¡µç¬¦ (\'\u000C\')'}, {bds: '\\a', description: 'æ¥è¦ (bell) 符 (\'\u0007\')'}, {bds: '\\e', description: '转ä¹ç¬¦ (\'\u001B\')'}, {bds: '\\cx', description: '对åºäº x çæ§å¶ç¬¦'}, {bds: '[abc]', description: 'aãb æ cï¼ç®åç±»ï¼'}, {bds: '[^abc]', description: 'ä»»ä½å符ï¼é¤äº aãb æ cï¼å¦å®ï¼'}, {bds: '[a-zA-Z]', description: 'a å° z æ A å° Zï¼ä¸¤å¤´çåæ¯å æ¬å¨å ï¼èå´ï¼'}, {bds: '[a-d[m-p]]', description: 'a å° d æ m å° pï¼[a-dm-p]ï¼å¹¶éï¼'}, {bds: '[a-z&&[def]]', description: '\tdãe æ fï¼äº¤éï¼'}, {bds: '[a-z&&[^bc]]', description: 'a å° zï¼é¤äº b å cï¼[ad-z]ï¼åå»ï¼'}, {bds: '[a-z&&[^m-p]]', description: 'a å° zï¼èé m å° pï¼[a-lq-z]ï¼åå»ï¼'}, {bds: '.', description: 'ä»»ä½å符ï¼ä¸è¡ç»æç¬¦å¯è½å¹é ä¹å¯è½ä¸å¹é ï¼'}, {bds: '\\d', description: 'æ°åï¼[0-9]'}, {bds: '\\D', description: 'éæ°åï¼ [^0-9]'}, {bds: '\\s', description: '空ç½å符ï¼[ \\t\\n\x0B\\f\\r]'}, {bds: '\\S', description: 'é空ç½å符ï¼[^\\s]'}, {bds: '\\w', description: 'åè¯å符ï¼[a-zA-Z_0-9]'}, {bds: '\\W', description: 'éåè¯å符ï¼[^\\w]'}, {bds: '\\p{Lower}', description: 'å°å忝å符ï¼[a-z]'}, {bds: '\\p{Upper}', description: '大å忝å符ï¼[A-Z]'}, {bds: '\\p{ASCII}', description: 'ææ ASCIIï¼[\x00-\x7F]'}, {bds: '\\p{Alpha}', description: '忝å符ï¼[\\p{Lower}\\p{Upper}]'}, {bds: '\\p{Digit}', description: 'åè¿å¶æ°åï¼[0-9]'}, {bds: '\\p{Alnum}', description: '忝æ°åå符ï¼[\\p{Alpha}\\p{Digit}]'}, {bds: '\\p{Punct}', description: 'æ ç¹ç¬¦å·ï¼!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'}, {bds: '\\p{Graph}', description: 'å¯è§å符ï¼[\\p{Alnum}\\p{Punct}]'}, {bds: '\\p{Print}', description: '坿å°å符ï¼[\\p{Graph}\x20]'}, {bds: '\\p{Blank}', description: 'ç©ºæ ¼æå¶è¡¨ç¬¦ï¼[ \\t]'}, {bds: '\\p{Cntrl}', description: 'æ§å¶å符ï¼[\x00-\x1F\x7F]'}, {bds: '\\p{XDigit}', description: 'åå è¿å¶æ°åï¼[0-9a-fA-F]'}, {bds: '\\p{Space}', description: '空ç½å符ï¼[ \\t\\n\x0B\\f\\r]'}, {bds: '\\p{javaLowerCase}', description: 'çæäº java.lang.Character.isLowerCase()'}, {bds: '\\p{javaUpperCase}', description: 'çæäº java.lang.Character.isUpperCase()'}, {bds: '\\p{javaWhitespace}', description: 'çæäº java.lang.Character.isWhitespace()'}, {bds: '\\p{javaMirrored}', description: 'çæäº java.lang.Character.isMirrored()'}, {bds: '\\p{InGreek}', description: 'Greek åï¼ç®ååï¼ä¸çå符'}, {bds: '\\p{Lu}', description: '大å忝ï¼ç®åç±»å«ï¼'}, {bds: '\\p{Sc}', description: 'è´§å¸ç¬¦å·'}, {bds: '\\P{InGreek}', description: 'ææå符ï¼Greek åä¸çé¤å¤ï¼å¦å®ï¼'}, {bds: '[\\p{L}&&[^\\p{Lu}]]', description: 'ææåæ¯ï¼å¤§å忝é¤å¤ï¼åå»ï¼'}, {bds: '^', description: 'è¡çå¼å¤´'}, {bds: '$', description: 'è¡çç»å°¾'}, {bds: '\\b', description: 'åè¯è¾¹ç'}, {bds: '\\B', description: 'éåè¯è¾¹ç'}, {bds: '\\A', description: 'è¾å ¥çå¼å¤´'}, {bds: '\\G', description: 'ä¸ä¸ä¸ªå¹é çç»å°¾'}, {bds: '\\Z', description: 'è¾å ¥çç»å°¾ï¼ä» ç¨äºæåçç»æç¬¦ï¼å¦ææçè¯ï¼'}, {bds: '\\z', description: 'è¾å ¥çç»å°¾'}, {bds: 'X ?', description: 'Xï¼ä¸æ¬¡æä¸æ¬¡ä¹æ²¡æ'}, {bds: 'X *', description: 'Xï¼é¶æ¬¡æå¤æ¬¡'}, {bds: 'X +', description: 'Xï¼ä¸æ¬¡æå¤æ¬¡'}, {bds: 'X {n }', description: 'Xï¼æ°å¥½ n 次'}, {bds: 'X {n ,}', description: 'Xï¼è³å° n 次'}, {bds: 'X {n ,m }', description: 'Xï¼è³å° n 次ï¼ä½æ¯ä¸è¶ è¿ m 次'}, {bds: 'X ??', description: 'Xï¼ä¸æ¬¡æä¸æ¬¡ä¹æ²¡æ'}, {bds: 'X *?', description: 'Xï¼é¶æ¬¡æå¤æ¬¡'}, {bds: 'X +?', description: 'Xï¼ä¸æ¬¡æå¤æ¬¡'}, {bds: 'X {n }?', description: 'Xï¼æ°å¥½ n 次'}, {bds: 'X {n ,}?', description: 'Xï¼è³å° n 次'}, {bds: 'X {n ,m }?', description: 'Xï¼è³å° n 次ï¼ä½æ¯ä¸è¶ è¿ m 次'}, {bds: 'X ?+', description: 'Xï¼ä¸æ¬¡æä¸æ¬¡ä¹æ²¡æ'}, {bds: 'X *+', description: 'Xï¼é¶æ¬¡æå¤æ¬¡'}, {bds: 'X ++', description: 'Xï¼ä¸æ¬¡æå¤æ¬¡'}, {bds: 'X {n }+', description: 'Xï¼æ°å¥½ n 次'}, {bds: 'X {n ,}+', description: 'Xï¼è³å° n 次'}, {bds: 'X {n ,m }+', description: 'Xï¼è³å° n 次ï¼ä½æ¯ä¸è¶ è¿ m 次'}, {bds: 'XY', description: 'X åè· Y'}, {bds: 'X |Y', description: 'X æ Y'}, {bds: '(X )', description: 'Xï¼ä½ä¸ºæè·ç»'}, {bds: '\\n', description: 'ä»»ä½å¹é ç n<sup>th</sup> æè·ç»'}, {bds: '\\', description: 'Nothingï¼ä½æ¯å¼ç¨ä»¥ä¸å符'}, {bds: '\\Q', description: 'Nothingï¼ä½æ¯å¼ç¨ææå符ï¼ç´å° \\E'}, {bds: '\\E', description: 'Nothingï¼ä½æ¯ç»æä» \\Q å¼å§çå¼ç¨'}, {bds: '(?:X )', description: 'Xï¼ä½ä¸ºéæè·ç»'}, {bds: '(?idmsux-idmsux)', description: 'Nothingï¼ä½æ¯å°å¹é æ å¿ç± on 转为 off'}, {bds: '(?idmsux-idmsux:X )', description: 'Xï¼ä½ä¸ºå¸¦æç»å®æ å¿ on - off çéæè·ç»'}, {bds: '(?=X )', description: 'Xï¼éè¿é¶å®½åº¦çæ£ lookahead'}, {bds: '(?!X )', description: 'Xï¼éè¿é¶å®½åº¦çè´ lookahead'}, {bds: '(?<=X )', description: 'Xï¼éè¿é¶å®½åº¦çæ£ lookbehind'}, {bds: '(?<!X )', description: 'Xï¼éè¿é¶å®½åº¦çè´ lookbehind'}, {bds: '(?>X )', description: 'Xï¼ä½ä¸ºç¬ç«çéæè·ç»'} ], // æ°å¢ä¸å¡ç±»å businessData: [], businessOption: { indexClassName:"åºå·", indexLabelClassName:'åºå·', index: true, border: true, addBtn: false, @@ -1178,7 +1293,9 @@ }, //éªè¯è§åæ£æ¥ rulesExamine() { if(this.RulesForm.expressionText.test(this.RulesForm.TestContent)){ this.$message.success('æ ¡éªæå') } }, //ç¹å»åç±»æ³¨å ¥æé® injectBtn(){ @@ -1273,6 +1390,16 @@ // console.log(res) // }) }, //ç»åè§å isShowHandler(){ if(this.CrudSelect.length>1){ this.$message.warning('åªè½éæ©ä¸æ¡æ¨¡æ¿å±æ§æ°æ®') }else if(this.CrudSelect.length<1){ this.$message.warning('è¯·éæ©ä¸æ¡æ¨¡æ¿å±æ§æ°æ®') }else if(this.CrudSelect.length === 1){ this.isShowformulaEdit=true; } }, //å ¨å±ç¼è¾ fullscreenHandle(){ if(this.crudArray.length<1){ @@ -1290,6 +1417,10 @@ this.attrEditVisible=false; console.log(this.attrEditVisible) }, updataFormlaContent(val){ console.log(val) this.$set(this.attrRow,'componentRule',val) }, // æåº sortChange(val) { console.log(val) Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -77,7 +77,7 @@ @select="selectHandle" > <template slot="menuLeft"> <el-button plain size="small" type="primary" @click="FindFormVisible = true;">æ¥è¯¢</el-button> <el-button plain size="small" type="primary" @click="FindeHanler">æ¥è¯¢</el-button> <el-button plain size="small" type="primary" @click="TemRefresh">å·æ°</el-button> <el-button plain size="small" type="primary" @click="TreeEdit">ä¿®æ¹</el-button> <el-button plain size="small" type="primary" @click="TreeDel">å é¤</el-button> @@ -206,36 +206,36 @@ inject: [, "crudTreeData"], data() { return { //è¡¨æ ¼optioné 置项 crudTreeOption: { index: true, border: true, height:180, selection:true, addBtn:this.addFlag, column: [ { label: "模æ¿ç¼å·", prop: "id" }, { label:"模æ¿åç§°", prop:"name" }, { label: "æ¨¡æ¿æè¿°", prop:"description" }, { label:"çæ¬å·", prop:"revisionSeq" }, { label:"ç¶æ", prop:"lcStatusText" } ] }, // //è¡¨æ ¼optioné 置项 // crudTreeOption: { // index: true, // border: true, // height:180, // selection:true, // addBtn:this.addFlag, // column: [ // { // label: "模æ¿ç¼å·", // prop: "id" // }, // { // label:"模æ¿åç§°", // prop:"name" // }, // { // label: "æ¨¡æ¿æè¿°", // prop:"description" // }, // { // label:"çæ¬å·", // prop:"revisionSeq" // }, // { // label:"ç¶æ", // prop:"lcStatusText" // } // ] // }, addFlag:false, // è¡¨æ ¼å½åè¡id crudOid:"", @@ -433,6 +433,42 @@ mounted() { this.type = this.tabOption.column[0]; this.getAttr(); console.log('11',this.nodeClickList) }, computed:{ crudTreeOption(){ return{ index: true, indexClassName:"åºå·", indexLabelClassName:'åºå·', border: true, height:180, selection:true, addBtn:this.Formlist.length<=0 && this.nodeClickList != "", column: [ { label: "模æ¿ç¼å·", prop: "id" }, { label:"模æ¿åç§°", prop:"name" }, { label: "æ¨¡æ¿æè¿°", prop:"description" }, { label:"çæ¬å·", prop:"revisionSeq" }, { label:"ç¶æ", prop:"lcStatusText" } ] } } }, methods: { //è¡åéäºä»¶ @@ -639,7 +675,7 @@ async nodeClick(data) { //å®ä¹ä¸ä¸ªæ¨¡æ¿å±æ§idï¼æ°æ®æ¯æ¨¡æ¿ç®¡çè¡¨æ ¼éé¢çoid this.nodeClickList = data console.log(data.oid) console.log(data) this.ProData=[] try { await TreeObjcet(data.oid).then(res => { @@ -827,6 +863,14 @@ }) }) }, // æ¥è¯¢ FindeHanler(){ if(this.nodeClickList != ""){ this.FindFormVisible=true }else { this.$message.warning('è¯·ä»æ ä¸éæ©ä¸æ¡æ°æ®') } }, //å 鿍¡æ¿éæ©ç¡®å® Clonehandler(){ if(this.CloneSelect.length <= 0){ Source/UBCS-WEB/src/components/file/inDialog.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ <template> <div> <el-dialog :title="options.title|| 'é件管ç'" :visible.sync="visible" append-to-body class="avue-dialog avue-dialog--top" @close="close" top="0" :width="options.width|| '80%'"> <fileContent :options="options" ></fileContent> </el-dialog> </div> </template> <script> import fileContent from './main.vue'; export default { name: "inDialog", components: { fileContent }, props: ["options","visible"], data(){ return{ } }, computed: { }, methods:{ close(){ this.$emit("close", false); } } } </script> <style scoped> </style> Source/UBCS-WEB/src/components/file/inHtml.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ <template> <basic-container> <fileContent :options="options" ></fileContent> </basic-container> </template> <script> import fileContent from './main.vue'; export default { name: "inHtml", components: { fileContent }, props: ["options"], data(){ return{ } }, computed: { } } </script> <style scoped> </style> Source/UBCS-WEB/src/components/file/main.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,325 @@ <template> <basic-container> <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :permission="permissionList" :before-open="beforeOpen" v-model="form" ref="crud" @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> <template slot="menuLeft"> <el-button type="primary" size="small" plain icon="el-icon-upload2" @click="handleUpload">ä¸ ä¼ </el-button> <el-button type="primary" size="small" plain icon="el-icon-edit" @click="handleEdit">ä¿® æ¹ </el-button> <el-button type="danger" size="small" icon="el-icon-delete" plain @click="handleDelete">å é¤ </el-button> </template> <template slot-scope="scope" slot="menu"> <el-button type="text" icon="el-icon-download" size="small" @click="handleDownload(scope.row)">ä¸è½½ </el-button> </template> </avue-crud> <el-dialog title="ä¸ä¼ éä»¶å表" append-to-body :visible.sync="attachBox" width="555px"> <avue-form ref="form" :option="attachOption" v-model="attachForm" :upload-before="uploadBefore" :upload-after="uploadAfter" :upload-error="uploadError"> </avue-form> </el-dialog> </basic-container> </template> <script> import {getList, getFile,upload,update, remove,download} from "@/api/resource/file"; import {mapGetters} from "vuex"; import {dateFormat} from "@/util/date"; export default { props: ["options","visible"], data() { return { form: {}, query: {}, params:{}, loading: false, page: { pageSize: 10, currentPage: 1, total: 0 }, attachBox: false, selectionList: [], option: { height: 'auto', calcHeight: 30, tip: false, searchShow: true, searchMenuSpan: 6, border: true, index: true, viewBtn: true, selection: true, dialogClickModal: false, column: [ { label: "æä»¶åç§°", prop: "name", search: true, /*formatter:function(d){ if(this.options.hasDownloadRight != false){ //说ææä¸è½½æä»¶çæéï¼é£ä¹æä»¬å°±æ·»å ä¸ä¸ªè¶ 龿¥ return ''//'<a name="filenamedownloadlink " class="layui-btn layui-btn-intable" lay-event="PREVIEW" fileoid="' + d.oid +'">' + (d.id?d.id:d.name) + '</a>'; }else{ return d.id || d.name; } }*/ }, { label: "æä»¶å¤§å°", prop: "fileSize", formatter:function(d){ if(!d.fileSize || d.fileSize == null || d.fileSize*1 == 0 || isNaN(d.fileSize*1) ){ return "æªç¥å¤§å°"; }else{ //åå§å¤§å°æ¯B var filesize = d.fileSize*1; if(filesize>1024*1024*1024*1024){ return parseInt(filesize/(1024*1024*1024*1024)) + "TB"; }else if(filesize> 1024*1024*1024){ return parseInt(filesize/(1024*1024*1024)) + "GB"; }else if(filesize> 1024*1024){ return parseInt(filesize/(1024*1024)) + "MB"; }else if(filesize> 1024){ return parseInt(filesize/1024) + "KB"; }else { return filesize + "B"; } } } }, /*{ label: "å¯çº§", prop: "secretGradeText" }, { label: "ææ¡£ç±»å«", prop: "fileDocClassifyName" },*/ { label: "å建è ", prop: "creator" }, { label: "å建æ¶é´", prop: "createTime" }, ] }, data: [{ btmname: "fileobject", createTime: "2023-06-14 16:08:50.002", creator: "1", fileDocClassify: "undefined", fileDocClassifyName: null, fileExtension: "png", filePath: "VolumnFactoryService:/f87a4c92-ce6e-458b-aad0-0c76bd5eeb35\\54120082-76aa-4092-abbf-b13cb40606c5", fileSize: 858, id: "assignRole", name: "assignRole", nameOid: "9FF4C05D-4EFA-F00B-0080-5ABB50257D4E", oid: "54120082-76aa-4092-abbf-b13cb40606c5", ownBtmname: "wupin", ownbizOid: "6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9", owner: "1", secretGrade: null, secretGradeText: null }], attachForm: {}, attachOption: { submitBtn: true, emptyBtn: true, column: [ { label: 'éä»¶ä¸ä¼ ', prop: 'attachFile', type: 'upload', dragFile: true, loadText: 'æä»¶ä¸ä¼ ä¸ï¼è¯·ç¨ç', span: 24, propsHttp: { res: 'data' }, action: "/api/ubcs-resource/fileController/uploadFile" } ] } }; }, computed: { ...mapGetters(["permission"]), permissionList() { return { addBtn: false, editBtn: false, viewBtn: false, delBtn: this.vaildData(this.permission.attach_delete, false) }; }, ids() { let ids = []; this.selectionList.forEach(ele => { ids.push(ele.id); }); return ids.join(","); } }, methods: { setParams(){ var params={ ownbizOid:options.ownbizOid || '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9', ownbizBtm:options.ownbizBtm || 'wupin', fileDocClassify:options.fileDocClassify || '!=processAuditSuggest' } this.params=params; }, handleUpload() { this.attachBox = true; }, handleEdit() { this.attachBox = true; }, uploadBefore(file, done, loading,column) { console.log(file,column) //å¦æä½ æ³ä¿®æ¹fileæä»¶,ç±äºä¸ä¼ çfileæ¯åªè¯»æä»¶ï¼å¿ é¡»å¤å¶æ°çfileæå¯ä»¥ä¿®æ¹ååï¼å®åèµå¼å°done彿°é,妿ä¸ä¿®æ¹çè¯ç´æ¥ådone()å³å¯ var newFile = new File([file], '1234', { type: file.type }); done(newFile) this.$message.success('ä¸ä¼ åçæ¹æ³') }, uploadAfter(res, done, loading, column) { window.console.log(column); this.attachBox = false; this.refreshChange(); done(); }, uploadError(error, column) { this.$message.success('ä¸ä¼ 失败åè°') console.log(error, column) }, handleDownload(row) { window.open(`${row.link}`); }, rowDel(row) { this.$confirm("ç¡®å®å°éæ©æä»¶å é¤?", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning" }) .then(() => { return remove(row.id); }) .then(() => { this.onLoad(this.page); this.$message({ type: "success", message: "æä½æå!" }); }); }, handleDelete() { if (this.selectionList.length === 0) { this.$message.warning("è¯·éæ©è³å°ä¸æ¡æ°æ®"); return; } this.$confirm("ç¡®å®å°éæ©æ°æ®å é¤?", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning" }) .then(() => { return remove(this.ids); }) .then(() => { this.onLoad(this.page); this.$message({ type: "success", message: "æä½æå!" }); this.$refs.crud.toggleSelection(); }); }, beforeOpen(done, type) { if (["edit", "view"].includes(type)) { getDetail(this.form.id).then(res => { this.form = res.data.data; }); } done(); }, searchReset() { this.query = {}; this.onLoad(this.page); }, searchChange(params, done) { this.query = params; this.page.currentPage = 1; this.onLoad(this.page, params); done(); }, selectionChange(list) { this.selectionList = list; }, selectionClear() { this.selectionList = []; this.$refs.crud.toggleSelection(); }, currentChange(currentPage) { this.page.currentPage = currentPage; }, sizeChange(pageSize) { this.page.pageSize = pageSize; }, refreshChange() { this.onLoad(this.page, this.query); }, onLoad(page, params) { //this.loading = true; params=this.params || {} /*getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { const data = res.data.data; this.page.total = data.total; this.data = data.records; this.loading = false; this.selectionClear(); });*/ } } }; </script> <style> </style> Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -1,7 +1,10 @@ <template> <vciWebReferTree v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :referConfig="referConfig"></vciWebReferTree> <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :title="title" :referConfig="referConfig"></vciWebReferTable> <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :title="title" :referConfig="referConfig"></vciWebReferDefalut> <div v-if="display"> <vciWebReferTree v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTree> <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTable> <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferDefalut> </div> </template> <script> @@ -10,7 +13,7 @@ import vciWebReferDefalut from "./vciWebReferDefalut.vue"; export default { name: "vciWebRefer", props: ["referConfig","value","text"], props: ["referConfig","value","text","disabled","display"], components: {vciWebReferTree, vciWebReferTable, vciWebReferDefalut}, data() { return { Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -27,7 +27,7 @@ </div> </el-dialog> <avue-input v-model="text" :placeholder="title" @click="visible=true"></avue-input> <avue-input v-model="text" :disabled="disabled" :placeholder="title" @click="!disabled && (visible=true)"></avue-input> <!--<avue-input-table ref="referTable" :props="props" :column="column" :on-load="onLoad" v-model="value" :placeholder="title" ></avue-input-table> --> </div> @@ -38,7 +38,7 @@ import {getList,getLazyList,getTableDefinedUrl} from "@/api/refer/table"; export default { name: "vciWebReferDefalut", props:["referConfig","value","text","title"], props:["referConfig","value","text","title","disabled"], data() { return { visible: false, @@ -180,6 +180,7 @@ ...item, label: item.title, prop: item.field, formatter:item.template, search: true } } Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -30,7 +30,7 @@ </div> </el-dialog> <avue-input v-model="text" :placeholder="title" @click="visible=true"></avue-input> <avue-input v-model="text" :disabled="disabled" :placeholder="title" @click="!disabled && (visible=true)"></avue-input> <!--<avue-input-table ref="referTable" :props="props" :column="column" :on-load="onLoad" v-model="value" :placeholder="title" ></avue-input-table> --> </div> @@ -41,7 +41,7 @@ import {getList,getLazyList,getTableDefinedUrl} from "@/api/refer/table"; export default { name: "vciWebReferTable", props:["referConfig","value","text","title"], props:["referConfig","value","text","title","disabled"], data() { return { visible: false, Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
@@ -1,5 +1,5 @@ <template> <avue-input-tree ref="referTree" :props="props" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :checked="checked" :leaf-only="referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="title" :dic="treeData"></avue-input-tree> <avue-input-tree ref="referTree" :props="props" :disabled="disabled" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :checked="checked" :leaf-only="referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="title" :dic="treeData"></avue-input-tree> </template> <script> @@ -8,7 +8,7 @@ export default { name: "vciWebReferTree", props:["referConfig","value","text","title"], props:["referConfig","value","text","title","disabled"], data() { return { options: this.referConfig.options, Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -1,20 +1,30 @@ <template> <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body="true"> <div> <el-tag v-for="tag in tags" :key="tag" closable disable-transitions effect="dark" @click="handleClickTag(tag)" @close="handleCloseTag(tag)"> <span> {{ tag.name }}</span> </el-tag> </div> <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body="true" width="30%"> <el-tag v-for="tag in tags" :key="tag" closable disable-transitions effect="Plain" size="medium" @click="handleClickTag(tag)" @close="handleCloseTag(tag)"> <span> {{ tag.name }}</span> </el-tag> <el-divider v-if="tags.length !== 0"></el-divider> <el-form :model="saveParam" class="demo-form-inline" label-position="left" label-width="auto" :rules="rules"> <el-form-item label="æµç¨æ¨¡æ¿"> <el-input placeholder="æµç¨æ¨¡æ¿" v-model="saveParam.modelName" disabled ></el-input> </el-form-item> <el-form-item label="æµç¨åç§°" prop="processName"> <el-input placeholder="æµç¨åç§°" v-model="saveParam.processName" > </el-input> </el-form-item> <el-form-item label="æµç¨æè¿°"> <el-input placeholder="æµç¨æè¿°" type="textarea" :rows="4" v-model="saveParam.processDesc" > </el-input> </el-form-item> </el-form> <el-divider></el-divider> <div class="btns-icon"> <el-button type="primary" icon="el-icon-star-off" @click="handleCollect"></el-button> <!-- <el-button type="primary" icon="el-icon-refresh" ></el-button> --> <el-button icon="el-icon-star-off" circle @click="handleCollect"></el-button> </div> <el-form :model="saveParam" class="demo-form-inline" label-position="left"> <el-form :model="collectParam" class="demo-form-inline" label-position="left" label-width="auto"> <el-form-item :label="item.taskName" v-for="(item, index) in initFrom" :key="index"> <el-select style="width: 50%;" v-model="saveParam.flowTaskUsers[index]['userId']" <el-select style="width: 80%;" filterable v-model="collectParam.flowTaskUsers[index]['userId']" :placeholder="item.taskName" @change="handleSelect($event, index)"> <el-option :label="key.userNames" :value="key.userId" v-for="(key, keyi) in typeName" :key="keyi"></el-option> @@ -40,18 +50,26 @@ // æ é¢ title: { typeof: String, default: '人å设置' default: 'æµç¨å®¡æ¹' }, // 模æ¿id code: { typeof: String, default: '' // åæ°ï¼éæ©çidï¼å¤ä¸ªä»¥æ°ç»æ¹å¼ä¼ éï¼['id','id']ï¼æ¨¡æ¿idï¼æ¨¡æ¿ç¨éï¼æµç¨ååï¼æµç¨æ¨¡æ¿ parameter: { typeof: Object, default: () => { } }, // 模æ¿ç¨é type: { typeof: String, default: '' parameterKeys: { typeof: Object, default: () => { return { ids: 'ids', flowName: 'flowName', flowTemplate: 'flowTemplate', code: 'code', type: 'type' } } } }, watch: { visible(n) { @@ -64,28 +82,45 @@ data() { return { dialogVisible: this.visible, isCollent: false, initFrom: [], tags: [], typeName: [], saveParam: {}, collectParam: {}, saveParam: this.saveParam(), users: [], rules: { processName: [ { required: true, message: '模æ¿åç§°ä¸è½ä¸ºç©º', trigger: 'blur' }, { min: 1, max: 20, message: 'é¿åº¦å¨ 3 å° 20 个å符', trigger: 'blur' } ] } } }, mounted() { this.apiInit() this.apiDict() }, methods: { saveParam() { return { modelName: this.parameter[this.parameterKeys.flowName], processName: this.parameter[this.parameterKeys.flowTemplate], topName: this.title, ids: this.parameter[this.parameterKeys.ids], } }, async apiInit() { const response = await personnelInit({ type: this.type, templateId: this.code }) const response = await personnelInit({ type: this.parameter[this.parameterKeys.type], templateId: this.parameter[this.parameterKeys.code] }) if (response.status === 200) { console.log(response) this.initFrom = response.data.data.user this.tags = response.data.data.collect const { modelKey, templateId } = response.data.data.flow let flowTaskUsers = response.data.data.user this.saveParam = { modelKey, templateId, flowTaskUsers: flowTaskUsers } this.collectParam = { modelKey, templateId, flowTaskUsers: flowTaskUsers } this.saveParam = { ...this.saveParam, modelKey, templateId } this.handleClickTag(this.tags[0]) } }, @@ -108,10 +143,10 @@ cancelButtonText: 'åæ¶', }).then(async ({ value }) => { console.log(this.users) this.saveParam.flowTaskUsers = this.users this.saveParam = { ...this.saveParam, name: value } console.log(this.saveParam) const response = await personnelCollect(this.saveParam) this.collectParam.flowTaskUsers = this.users this.collectParam = { ...this.collectParam, name: value } console.log(this.collectParam) const response = await personnelCollect(this.collectParam) if (response.status === 200) { this.$nextTick(() => { this.apiInit() @@ -127,6 +162,7 @@ if (response.status === 200) { console.log(response) this.apiInit() this.isCollent = true this.$message({ type: 'success', message: response.data.msg @@ -135,14 +171,13 @@ }, async apiSave() { try { const { modelKey, templateId } = this.saveParam const response = await personnelSave({ modelKey, templateId }) const response = await personnelSave(this.saveParam) if (response.status === 200) { console.log(response) this.$message({ type: 'success', message: response.data.msg }); type: 'success', message: response.data.msg }); this.done() } } catch { @@ -152,7 +187,7 @@ handleClickTag(event) { console.log(event) const flowTaskUsers = event.flowTaskUsers this.saveParam.flowTaskUsers = flowTaskUsers.map(item => { this.collectParam.flowTaskUsers = flowTaskUsers.map(item => { const { taskId, taskName, userId, userName } = item return { taskId, taskName, userId, userName } }) @@ -164,7 +199,7 @@ handleSelect(event, index) { const res = this.typeName.find(item => item.userId === event) const { userName } = res let users = { ... this.saveParam.flowTaskUsers[index], userName } let users = { ... this.collectParam.flowTaskUsers[index], userName } console.log(users) this.users[index] = users }, @@ -175,7 +210,6 @@ this.done() }, handleConfirm() { console.log(this.users) console.log(this.saveParam) this.apiSave() } Source/UBCS-WEB/src/components/template/Stage.vue
@@ -8,7 +8,7 @@ @click="handleMaintenance(row, index)">ç»´æ¤</el-button> </template> </avue-crud> <el-dialog title="模æ¿é¶æ®µ" width="50%" append-to-body="true" :visible.sync="dialogNode"> <el-dialog title="模æ¿é¶æ®µ" width="50%" append-to-body="true" :visible.sync="dialogNode"> <avue-crud ref="crud" :table-loading="loading" :data="stageData" :option="stageOption" @on-load="getStagelist" @row-click="handleRowStageClick"> <template slot-scope="{type,size,row,index}" slot="menu"> @@ -106,6 +106,7 @@ }, stageOption: { ...options, height:620, column: [ { label: 'é¶æ®µç¼å·', prop: 'taskId' }, { label: 'é¶æ®µåç§°', prop: 'taskName' }, Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue
@@ -1,50 +1,60 @@ <template> <div> <el-button @click="visible = true">æµè¯</el-button> <el-button @click="visible1 = true">ç¸ä¼¼é¡¹æ¥è¯¢</el-button> <FormTemplateDialog :visible.sync="visible" :type="this.type" :templateOid="this.templateOid" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :rowOid="rowOid" @submit="submit" ></FormTemplateDialog> <ResembleQueryDialog :visible.sync="visible1" :type="this.type" :templateOid="this.templateOid" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" ></ResembleQueryDialog> </div> </template> <script> import ResembleQueryDialog from '@/components/FormTemplate/ResembleQueryDialog.vue'; export default { name: "FormTempalteTest", components: { ResembleQueryDialog }, data() { return { visible: false, visible1: false, // é»è®¤ç¦ç¨ç表å ç´ disabledProp: ["id", 'lcstatus'], // 表åç±»å type: "add", templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F", codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3", codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96", rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9' }; }, methods: { submit(data) { console.log(data); } } }; </script> <template> <div> <el-button @click="visible = true">æµè¯</el-button> <el-button @click="visible1 = true">ç¸ä¼¼é¡¹æ¥è¯¢</el-button> <el-button @click="visible2 = true">é件管çdialog</el-button> <FormTemplateDialog :visible.sync="visible" :type="this.type" :templateOid="this.templateOid" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :rowOid="rowOid" @submit="submit" ></FormTemplateDialog> <ResembleQueryDialog :visible.sync="visible1" :type="this.type" :templateOid="this.templateOid" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" ></ResembleQueryDialog> <fileInHtml :options="{}"></fileInHtml> <fileinDialog :visible="visible2" :options="{}" @close="visible2=false" ></fileinDialog> </div> </template> <script> import ResembleQueryDialog from '@/components/FormTemplate/ResembleQueryDialog.vue'; import fileInHtml from '@/components/file/inHtml.vue'; import fileinDialog from '@/components/file/inDialog.vue'; export default { name: "FormTempalteTest", components: { ResembleQueryDialog ,fileInHtml ,fileinDialog}, data() { return { visible: false, visible1: false, visible2: false, // é»è®¤ç¦ç¨ç表å ç´ disabledProp: ["id", 'lcstatus'], // 表åç±»å type: "add", templateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A", codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96", codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96", rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9' }; }, methods: { submit(data) { console.log(data); } } }; </script> Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -7,10 +7,10 @@ @coderuleoid="coderuleoidList" :pageSize="this.pageSize" :currentPage="this.currentPage" :templateOid="this.templateOid" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas" @total="totals" @nodeClick="nodeClick" ></master-tree> </basic-container> </el-aside> @@ -21,10 +21,11 @@ :coderuleoid="this.coderuleoid" @pageSize="pageSizes" @currentPage="currentPages" @templateOid="templateOids" :tableDataArray="tableDataArray" :total="this.total" :tableHeadDataFateher="this.tableHeadDataFateher" :isLoading="isLoading" :templateOid="templateOid" ></TableCrud> </el-main> </el-container> @@ -49,7 +50,9 @@ templateOid:"", tableDataArray:[], tableHeadDataFateher:[], total:"" total:"", isLoading: false, } }, created() { @@ -68,9 +71,6 @@ currentPages(val){ this.currentPage=val }, templateOids(val){ this.templateOid=val }, tableDataArrays(val){ this.tableDataArray=val }, @@ -79,7 +79,15 @@ }, tableHeadDatas(val){ this.tableHeadDataFateher=val } }, nodeClick(val){ this.templateOid=val; console.log('val',val) this.isLoading=true; setTimeout(() => { this.isLoading = false; }, 2000); } } } </script> Source/UBCS-WEB/src/views/authority/apiscope.vue
@@ -1,24 +1,25 @@ <template> <basic-container> <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @row-click="clickRowChange" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" @tree-load="treeLoad"> :table-loading="loading" :page.sync="page" :data="data" ref="crud" v-model="form" :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @row-click="clickRowChange" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" @tree-load="treeLoad"> <template slot-scope="{row}" slot="menu"> <el-button type="text" icon="el-icon-setting" @@ -114,7 +115,7 @@ option: { lazy: true, tip: false, simplePage: true, //simplePage: true, searchShow: true, searchMenuSpan: 6, dialogWidth: "60%", @@ -514,8 +515,10 @@ }, onLoad(page, params = {}) { this.loading = true; getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => { this.data = res.data.data; getLazyMenuList(this.parentId, Object.assign(params, this.query), page.currentPage, page.pageSize).then(res => { const data = res.data.data; this.data = data.records; this.page.total = data.total; this.loading = false; this.selectionClear(); }); @@ -523,7 +526,7 @@ treeLoad(tree, treeNode, resolve) { const parentId = tree.id; getLazyMenuList(parentId).then(res => { resolve(res.data.data); resolve(res.data.data.records); }); }, // æ°æ®æé模å Source/UBCS-WEB/src/views/authority/datascope.vue
@@ -3,6 +3,7 @@ <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" v-model="form" :permission="permissionList" @@ -118,7 +119,7 @@ option: { lazy: true, tip: false, simplePage: true, // simplePage: true, searchShow: true, searchMenuSpan: 6, dialogWidth: "60%", @@ -598,8 +599,10 @@ }, onLoad(page, params = {}) { this.loading = true; getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => { this.data = res.data.data; getLazyMenuList(this.parentId, Object.assign(params, this.query), page.currentPage, page.pageSize).then(res => { const data = res.data.data; this.data = data.records; this.page.total = data.total; this.loading = false; this.selectionClear(); }); @@ -607,7 +610,7 @@ treeLoad(tree, treeNode, resolve) { const parentId = tree.id; getLazyMenuList(parentId).then(res => { resolve(res.data.data); resolve(res.data.data.records); }); }, // æ°æ®æé模å Source/UBCS-WEB/src/views/authority/role.vue
@@ -1,23 +1,24 @@ <template> <basic-container> <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @row-click="clickRowChange" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> :table-loading="loading" :data="data" ref="crud" :page.sync="page" v-model="form" :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @row-click="clickRowChange" @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> <template slot="menuLeft"> <el-button type="danger" size="small" @@ -80,7 +81,7 @@ </template> <script> import {add, getList, getRole, getRoleTreeById, grant, grantTree, remove, update} from "@/api/system/role"; import {add, getPage, getRole, getRoleTreeById, grant, grantTree, remove, update} from "@/api/system/role"; import {mapGetters} from "vuex"; import website from '@/config/website'; @@ -111,7 +112,7 @@ option: { height: "auto", tip: false, simplePage: true, // simplePage: true, searchShow: true, searchMenuSpan: 6, tree: true, @@ -381,8 +382,10 @@ }, onLoad(page, params = {}) { this.loading = true; getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { this.data = res.data.data; getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { const data = res.data.data; this.data = data.records; this.page.total = data.total; this.loading = false; this.selectionClear(); }); Source/UBCS-WEB/src/views/code/code.vue
@@ -300,6 +300,7 @@ size="small" icon="el-icon-search" plain :disabled="selectionList.length <= 0" @click="openAdvancedQuery('codeBasicSec')"> é«çº§æ¥è¯¢ </el-button> @@ -527,7 +528,7 @@ </el-select> </el-form-item> <el-form-item label="è¡¥ä½æ¶çå符:" :label-width="rightFormLabelWidth"> <el-select v-model="form.codeFillSeparatorSelect" @blur="inputSelectBlur" filterable placeholder="è¯·éæ©" :disabled="basicSecOnlyRead"> <el-select v-model="form.codeFillSeparator" @blur="inputSelectBlur" filterable placeholder="è¯·éæ©" :disabled="basicSecOnlyRead"> <el-option v-for="item in enumParam.codeFillSeparator" :key="item.itemValue" @@ -664,7 +665,7 @@ </el-select> </el-form-item> <el-form-item label="è¡¥ä½æ¶çå符:" :label-width="rightFormLabelWidth"> <el-select v-model="form.codeFillSeparatorSelect" filterable @blur="inputSelectBlur" placeholder="è¯·éæ©" :disabled="basicSecOnlyRead"> <el-select v-model="form.codeFillSeparator" filterable @blur="inputSelectBlur" placeholder="è¯·éæ©" :disabled="basicSecOnlyRead"> <el-option v-for="item in enumParam.codeFillSeparator" :key="item.itemValue" @@ -1104,7 +1105,6 @@ //console.log(conditionMaps); } }, /* å ¬å¼ç¼è¾æ¡å 容æ¹å,åç»ä»¶ç¼è¾å®å ¬å¼ä¹åå 容忾æ¶è°ç¨ */ updateFormulaContent(content){ this.form.getValueClass = content; @@ -1177,7 +1177,8 @@ let parentClsParam = this.parentClsfyParams; parentClsParam.classifyDialogLoading = true; let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid; let conditionMaps = this.paramsToConditionMa({"pkCodeRule":oid}); let conditionMaps = {}; conditionMaps['conditionMap[pkCodeRule]'] = oid; refDataGridClassifySec( page.currentPage, page.pageSize, @@ -1667,7 +1668,8 @@ // å ³éå¯¹è¯æ¡ this.addBasicCodeSettingBox = false } // ç¹å»æ°å¢åºç¡ç 段,å ³éçªå£ä¹å触åéæ°å è½½ this.loadBasic(this.selectionList[0]); }else{ editSave(this.form).then(() => { // å ³éå¯¹è¯æ¡ @@ -1679,9 +1681,8 @@ }, error => { window.console.log(error); }); this.loadBasic(this.selectionList[0]); } // ç¹å»æ°å¢åºç¡ç 段,å ³éçªå£ä¹å触åéæ°å è½½ this.loadBasic(this.selectionList[0]); }, // å 为elementuiçè¡¨åæ ¡éªè®¾ç½®ä¸ä¸æä»¥éç¨å¤æçæ¹å¼æ¥åè¡¨åæ£éªæ¹å¼ checkForm(){ @@ -1755,7 +1756,7 @@ this.$message.warning('(ç¼ç è¡¥ä½æ¹å¼)'+tipsMsg); return false; } if(form.codeFillType != 'ä¸è¡¥ä½' && form.codeFillSeparatorSelect == ''){ if(form.codeFillType != 'ä¸è¡¥ä½' && form.codeFillSeparator == ''){ this.$message.warning('å½è¡¥ä½æ¹å¼ä¸ºå·¦è¡¥ä½æè å³è¡¥ä½çæ¶åï¼è¡¥ä½å符ä¸è½ä¸ºç©º'); return false; } @@ -1779,11 +1780,10 @@ this.$refs.codeFillLimit.$el.querySelector('input').focus(); return false; } if(form.codeFillFlag == ''){ this.$message.warning('(æµæ°´æ¯å¦è¡¥ç )'+tipsMsg); this.$refs.switch.$el.querySelector('input').focus(); return false; } // if(form.codeFillFlag == '' || ){ // this.$message.warning('(æµæ°´æ¯å¦è¡¥ç )'+tipsMsg); // return false; // } }else if(this.form.secType==='codelevelsec'){ //å±çº§ç 段 if(form.codeLevelType == ''){ @@ -1851,7 +1851,8 @@ this.$message.warning('(ç¼ç è¡¥ä½æ¹å¼)'+tipsMsg); return false; } if(form.codeFillType != 'ä¸è¡¥ä½' && form.codeFillSeparatorSelect == ''){ // console.log(form); if(form.codeFillType != 'code_fill_none' && form.codeFillSeparator == ''){ this.$message.warning('å½è¡¥ä½æ¹å¼ä¸ºå·¦è¡¥ä½æè å³è¡¥ä½çæ¶åï¼è¡¥ä½å符ä¸è½ä¸ºç©º'); return false; } @@ -1899,9 +1900,11 @@ } // console.log(row.oid); //åå¨å½åå ³èçç¼ç è§åç¸å ³ä¿¡æ¯ this.currentCodeRuleOid = row.oid; this.currentRuleLcStatus = row.lcStatus; this.sendGridCodeBasicSec({"pkCodeRule":row.oid},false); if(row!='' || row!=null){ this.currentCodeRuleOid = row.oid; this.currentRuleLcStatus = row.lcStatus; this.sendGridCodeBasicSec({"pkCodeRule":row.oid},false); } }, // åéå è½½åºç¡ç 段çè¯·æ± sendGridCodeBasicSec(condition,isAdancedQuery/** æ¯å¦é«çº§æ¥è¯¢ */){ @@ -1912,11 +1915,11 @@ let conditionMaps = {}; if(condition && !isAdancedQuery){ Object.keys(condition).forEach(key=>{ conditionMaps['conditionMap[pl_code_basicsec.'+key+']'] = condition[key].trim(); conditionMaps['conditionMap['+key+']'] = condition[key].trim(); }); } if(isAdancedQuery){ condition['conditionMap[pl_code_basicsec.pkCodeRule]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' condition['conditionMap[pkCodeRule]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid; } gridCodeBasicSec(1, -1,isAdancedQuery ? condition:conditionMaps).then(res => { @@ -2001,7 +2004,7 @@ }, // åºç¡ç æ®µå·æ°æ¶æ¥è¯¢ refreshChangeBasicSec(){ this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid}); this.loadBasic(this.selectionList.at(-1)); }, // æä½åºç¡ç æ®µä¸æç´¢æ¸ ç©ºçæé®çæ¾ç¤º/éè hideBasicTable(hideBoolean){ @@ -2009,18 +2012,16 @@ this.$refs.crudBasic.option.columnBtn = hideBoolean; this.$refs.crudBasic.option.column[0].search = hideBoolean; this.$refs.crudBasic.option.column[1].search = hideBoolean; if(!hideBoolean){ this.selectionList = []; this.basicData = []; } }, /** ç¼ç è§åç¸å ³æ¹æ³ */ // æå¼é«çº§æ¥è¯¢çªå£ openAdvancedQuery(condition){ // MasterTable({ // codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3", // functionId: 5, // }).then(res=>{ // console.log(res.data.tableDefineVO.seniorQueryColumns); // }) if(condition=='codeRule'){ this.advancedQueryParam.options = [ { @@ -2065,22 +2066,22 @@ data: [], title: 'ç æ®µç¼å·', fieldType: 'text', queryField: 'pl_code_basicsec.id', queryField: 'id', },{ data: [], title: 'ç æ®µåç§°', fieldType: 'text', queryField: 'pl_code_basicsec.name', queryField: 'name', },{ data: [], title: 'æè¿°', fieldType: 'text', queryField: 'pl_code_basicsec.description', queryField: 'description', },{ data: [], title: 'ç æ®µç±»å', fieldType: 'combox', queryField: 'pl_code_basicsec.secType', queryField: 'secType', comboxKey: 'codeSecType', } ] @@ -2112,17 +2113,6 @@ // å·æ°ä½¿ç¨èå´å表 refreshUseRangeChange(){ this.getRangeCodeList(); }, // åå»ç¼ç è§åå®ç°è¡éæ© codeRuleRowClick (row) { // è¿å¿åºè¯¥å¯ä»¥ä¸è¦ï¼å 为toggleRowSelectionä¹ä¼è§¦åè¡éæ©æ¶é´ this.selectionList = row; this.$refs.crud.toggleSelection(); this.$refs.crud.setCurrentRow(row); this.$refs.crud.toggleRowSelection(row); //éä¸å½åè¡ if(row!=''){ this.loadBasic(row); } }, // å¯ç¨ä¸åç¨ enableOrDeactivatse(oId,update){ @@ -2220,7 +2210,7 @@ this.selectionOtherCloneCodeBasicList = list; this.$refs.crudCloneCodeBasicOther.setCurrentRow(this.selectionOtherCloneCodeBasicList[list.length-1]); }, // ä»å ¶ä»ç¼ç è§åä¸å éç æ®µä¿¡æ¯ // ä»å ¶ä»ç¼ç è§åä¸å éç æ®µä¿¡æ¯ saveOtherCodeBasic(){ let oid = this.selectionList[0].oid; let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList; @@ -2238,7 +2228,7 @@ //console.log(res); let oidArr = []; fromDialogPkCodebasic.forEach(ele => { oidArr.push(ele.id); oidArr.push(ele.oid); }); let data = { "pkCodeRule": oid, @@ -2360,7 +2350,7 @@ let requestData = {}; if(params){ Object.keys(params).forEach(key=>{ requestData["conditionMap"+'['+key+']'] = params[key].trim(); requestData["conditionMap"+'['+key+'_like]'] = params[key].trim(); }); } this.query = requestData; @@ -2370,17 +2360,23 @@ // ç¼ç è§åå½åéä¸è¡ååçæ¶å触å selectionChange(list) { this.selectionList = list; this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]); //å½åéä¸è¡ä¸ºç©ºçæ¶åå°±å°ç 段管çè¡¨æ ¼æ°æ®ç½®ç©º,å¹¶ç¦ç¨ç¸å ³åè½ if(list == ''){ this.basicData = []; if(this.selectionList.length <= 0){ this.hideBasicTable(false); } if(this.selectionList.length > 0){ if (this.selectionList.length > 0) { this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]); this.currentCodeRuleOid = this.selectionList[list.length-1].oid; this.currentRuleLcStatus = this.selectionList[list.length-1].lcStatus; this.loadBasic(this.selectionList[list.length-1]); } }, // åå»ç¼ç è§åå®ç°è¡éæ© codeRuleRowClick (row) { // console.log(this.currentRuleLcStatus); this.$refs.crud.toggleSelection(); this.$refs.crud.toggleRowSelection(row); //éä¸å½åè¡ }, selectionClear() { this.selectionList = []; @@ -2410,8 +2406,6 @@ // æ¥è¯¢çå¼ä¸ºç©ºæ¶ï¼è¦å°ç 段管çç¸å ³çå 容ç¦ç¨ if(data.records.length <= 0) { this.hideBasicTable(false); this.selectionList = []; this.basicData = []; return; } this.loadBasic(this.data[0]) @@ -2507,7 +2501,7 @@ // è¡¥ä½æ¶çå符ï¼å®ç°å¯è¾å¯é inputSelectBlur(e){ if (e.target.value) { this.form.codeFillSeparatorSelect = e.target.value; this.form.codeFillSeparator = e.target.value; } }, // ç æ®µç±»åæ¹åæ¶ï¼å¢å 对åºçform表åä¸ç屿§ @@ -2568,8 +2562,8 @@ serialStart: row!=null&&row.serialStart != '' ? row.serialStart:1, //æµæ°´å·èµ·å§å¼ serialStep: row!=null&&row.serialStep != '' ? row.serialStep:1, //æµæ°´çæ¥é¿ codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //ç¼ç è¡¥ä½æ¹å¼ codeFillSeparatorSelect: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparatorSelect:0, //è¡¥ä½æ¶çå符ï¼éä¸ç䏿æ¡ç䏿 codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:0, //è¡¥ä½æ¶çå符 // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //è¡¥ä½æ¶çå符ï¼éä¸ç䏿æ¡ç䏿 codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0', //è¡¥ä½æ¶çå符 codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'', //å¡«å é¿åº¦ codeFillLimit: row!=null&&row.codeFillLimit != '' ? row.codeFillLimit:'', //æµæ°´ä¸é codeFillFlag: row!=null&&row.codeFillFlag != '' ? row.codeFillFlag=='true' ? true:false :false, //æµæ°´æ¯å¦è¡¥ç @@ -2617,8 +2611,8 @@ this.form = Object.assign({}, this.form,{ codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //ç æ®µçé¿åº¦ codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //ç¼ç é¨ä½æ¹å¼ï¼æä¸¾æ¥è¯¢ codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //éä¸çè¡¥ä½æ¶çå符ç䏿 codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'', //è¡¥ä½æ¶çå符ï¼å¯è¾å¯éæ¥è¯¢ // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //éä¸çè¡¥ä½æ¶çå符ç䏿 codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0', //è¡¥ä½æ¶çå符ï¼å¯è¾å¯éæ¥è¯¢ }); this.loadCodeFillType(); this.loadCodeFillSeparator(); Source/UBCS-WEB/src/views/flow/flowPath.vue
@@ -3,7 +3,7 @@ <el-button @click="outerVisible = true">æµç¨æµè¯</el-button> <el-button @click="handleTable">人å设置</el-button> <flow-business :visible.sync="outerVisible"></flow-business> <set-personnel :visible.sync="visibleFlow" code="8b5e2017-990f-454a-9c39-4c4eeeb57553" type="PUBLIC"></set-personnel> <set-personnel :visible.sync="visibleFlow" :parameter="parameter" :parameter-keys="props" ></set-personnel> </div> </template> @@ -19,7 +19,20 @@ return { outerVisible: false, visibleFlow: false, parameter:{ ids:['0000','22222222'], code:'8b5e2017-990f-454a-9c39-4c4eeeb57553', type:'PUBLIC', name:'模æ¿name', template:'模æ¿template' }, props:{ flowName:'name', flowTemplate:'template', type:'type', ids:'ids', code:'code' } } }, methods: { Source/UBCS-WEB/src/views/omd/enum.vue
@@ -4,7 +4,7 @@ :option="optionParent" :table-loading="loading" :data="dataParent" :page="pageParent" :page.sync="pageParent" ref="crud" v-model="formParent" :permission="permissionList" Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -33,7 +33,8 @@ // getOnesearch, getadd, getupdata, getremove getremove, combination } from "@/api/system/passwords"; export default { name: "passwords.vue", @@ -189,24 +190,12 @@ message: "è¯·éæ©ç»åæ¹æ³", trigger: "blur" }], dicData: [ { label: "æ°å", value: '1638024706425188354' }, { label: "符å·", value: '1638097837516926977' }, { label: "å°å忝", value: '1638097772983365634' }, { label: "大å忝", value: '1638097733707902977' }, ], dicUrl: '/api/ubcs-system/combination/select', dicMethod: 'get', props: { value: "ID", label: "NAME", }, }, { label: 'å¿ å¡«ç§ç±»', @@ -222,22 +211,22 @@ }], dicData:[{ label:'1ç§', value:0, value:1, disabled:false }, { label:'2ç§', value:1, disabled:false }, { label:'3ç§', value:2, disabled:false }, { label:'4ç§', label:'3ç§', value:3, disabled:false }, { label:'4ç§', value:4, disabled:false } ] @@ -334,6 +323,9 @@ }, created() { this.onLoad() combination().then(res=>{ console.log("111",res) }) }, mount() { }, @@ -497,9 +489,8 @@ }); done(row) this.onLoad() console.log(res) }).catch((res)=>{ console.log(res) this.$message.warning(res) }) }, rowEdit(row){ @@ -544,8 +535,8 @@ // this.loading = false; // this.selectionClear(); console.log(res) this.page.total=res.data.data.totalElements this.data=res.data.data.content this.page.total=res.data.data.total this.data=res.data.data.records }); } } @@ -553,5 +544,5 @@ } </script> <style lang="scss"> <style lang="scss" scoped> </style> Source/UBCS-WEB/src/views/system/dept.vue
@@ -1,6 +1,7 @@ <template> <basic-container> <avue-crud :option="option" :page.sync="page" :table-loading="loading" :data="data" ref="crud" @@ -75,7 +76,9 @@ option: { lazy: true, tip: false, simplePage: true, height:'auto', maxHeight:600, // simplePage: true, searchShow: true, searchMenuSpan: 6, tree: true, @@ -352,8 +355,9 @@ }, onLoad(page, params = {}) { this.loading = true; getLazyList(this.parentId, Object.assign(params, this.query)).then(res => { this.data = res.data.data; getLazyList(this.parentId,Object.assign(params, this.query),this.page.currentPage, this.page.pageSize).then(res => { this.data = res.data.data.records; this.page.total=res.data.data.total this.loading = false; this.selectionClear(); }); @@ -361,7 +365,7 @@ treeLoad(tree, treeNode, resolve) { const parentId = tree.id; getLazyList(parentId).then(res => { resolve(res.data.data); resolve(res.data.data.records); }); } } Source/UBCS-WEB/src/views/system/tenant.vue
@@ -27,14 +27,6 @@ plain @click="handleDelete">å é¤ </el-button> <el-tooltip class="item" effect="dark" content="ç»ç§æ·é 置账å·é¢åº¦ãè¿ææ¶é´çææä¿¡æ¯" placement="top"> <el-button size="small" plain v-if="userInfo.role_name.includes('administrator')" icon="el-icon-setting" @click="handleSetting">ææé ç½® </el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="ç»ç§æ·é ç½®ç¬ç«æ°æ®æºä»¥å®ç°æ°æ®åºé离" placement="top"> <el-button size="small" plain @@ -361,7 +353,7 @@ message: "æä½æå!" }); done(); console.log(done) // console.log(done) }, error => { window.console.log(error); loading(); Source/UBCS-WEB/src/views/system/user.vue
@@ -152,7 +152,6 @@ :value="item.id" class="seloption" > </el-option> </el-select> <span slot="footer" class="dialog-footer"> @@ -1137,8 +1136,7 @@ overflow: scroll; } .selects{ width: 400px; margin-left: 92px; width: 100%; } .seloption{ margin-left: 10px; Source/UBCS-WEB/vue.config.js
@@ -26,7 +26,8 @@ proxy: { '/api': { //æ¬å°æå¡æ¥å£å°å // target: 'http://localhost:37000', target: 'http://localhost:37000', // target: 'http://localhost:37000', // target: 'http://192.168.1.51:37000', // target: 'http://192.168.1.46:37000', // target: 'http://dev.vci-tech.com:37000', @@ -34,8 +35,9 @@ // target: 'http://192.168.1.104:37000', // target: 'http://192.168.1.63:37000', //target: 'http://192.168.3.7:37000', target: 'http://dev.vci-tech.com:37000', // target: 'http://dev.vci-tech.com:37000', //target: 'http://192.168.1.51:37000/', // target:'http://192.168.1.104:37000', //è¿ç¨æ¼ç¤ºæå¡å°å,å¯ç¨äºç´æ¥å¯å¨é¡¹ç® // target: 'https://saber.bladex.vip/api', ws: true, Source/UBCS/ubcs-ops-api/ubcs-resource-api/src/main/java/com/vci/ubcs/resource/dto/FileObjectDTO.java
@@ -1,7 +1,6 @@ package com.vci.ubcs.resource.dto; import com.vci.ubcs.resource.entity.FileObject; import com.vci.ubcs.starter.web.pagemodel.BaseModelVO; import lombok.Data; /** Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportResultVO.java
@@ -1,6 +1,8 @@ package com.vci.ubcs.code.vo.pagemodel; import com.vci.ubcs.starter.revision.model.BaseModel; import java.util.*; /** @@ -28,7 +30,10 @@ * å ³é®å±æ§æ ¡éªåï¼éå¤çè¡å· */ private Set<String> keyAttrRepeatRowIndexList = new HashSet<>(); /*** * æ ¹æ®å ³é®çææ¥è¯¢çéå¤çæ°æ®å¯¹è±¡ */ private Map<String, List<BaseModel>> indexTODataMap=new HashMap<>(); /*** * æ ¹æ®å ³é®çææ¥è¯¢çéå¤çæ°æ®å¯¹è±¡ */ @@ -89,7 +94,14 @@ this.selfRepeatRowIndexList = selfRepeatRowIndexList; } /*public Map<String,List<ClientBusinessObject>> getIndexTODataMap() { public Map<String, List<BaseModel>> getIndexTODataMap() { return indexTODataMap; } public void setIndexTODataMap(Map<String, List<BaseModel>> indexTODataMap) { this.indexTODataMap = indexTODataMap; } /*public Map<String,List<ClientBusinessObject>> getIndexTODataMap() { return indexTODataMap; } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImportTemplateVO.java
@@ -12,11 +12,13 @@ */ @Data public class CodeImportTemplateVO { private List<ColumnVO> cloNamesList=new ArrayList<>(); private CodeClassifyTemplateVO codeClassifyTemplateVO; private CodeClassifyVO codeClassifyVO; private boolean root; private String codeClassifyOid; private String codeTemplateOid; private String codeRuleOid; private List<ColumnVO> cloNamesList=new ArrayList<>(); private CodeRuleVO codeRuleVO; private CodeClassifyTemplateVO codeClassifyTemplateVO; private CodeClassifyVO codeClassifyVO; } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImprotDataVO.java
@@ -49,7 +49,7 @@ private List<Map<String,String>> datas = new ArrayList<>(); private CodeClassifyTemplateVO codeClstemplateVO; private CodeClassifyVO codeClassifyVO; private CodeRuleVO codeRuleVO; public CodeClassifyTemplateVO getCodeClassifyTemplateVO() { return codeClstemplateVO; } @@ -116,18 +116,35 @@ this.fields = fields; } @Override public String toString() { return "CodeImprotDataVO{" + "rowIndex='" + rowIndex + '\'' + ", codeClassifyOid='" + codeClassifyOid + '\'' + ", templateOid='" + templateOid + '\'' + ", codeRuleOid='" + codeRuleOid + '\'' + ", fields=" + fields + ", colNames=" + colNames + ", datas=" + datas + ", codeClstemplateVO=" + codeClstemplateVO + ", codeClassifyVO=" + codeClassifyVO + '}'; } public CodeClassifyTemplateVO getCodeClstemplateVO() { return codeClstemplateVO; } public void setCodeClstemplateVO(CodeClassifyTemplateVO codeClstemplateVO) { this.codeClstemplateVO = codeClstemplateVO; } public CodeRuleVO getCodeRuleVO() { return codeRuleVO; } public void setCodeRuleVO(CodeRuleVO codeRuleVO) { this.codeRuleVO = codeRuleVO; } @Override public String toString() { return "CodeImprotDataVO{" + "rowIndex='" + rowIndex + '\'' + ", codeClassifyOid='" + codeClassifyOid + '\'' + ", templateOid='" + templateOid + '\'' + ", codeRuleOid='" + codeRuleOid + '\'' + ", fields=" + fields + ", colNames=" + colNames + ", datas=" + datas + ", codeClstemplateVO=" + codeClstemplateVO + ", codeClassifyVO=" + codeClassifyVO + ", codeRuleVO=" + codeRuleVO + '}'; } } Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java
@@ -32,7 +32,7 @@ * ç§æ·ID * @TableField(value = "tenant_id")è¿éå¿ é¡»è¦åï¼å¹¶ä¸å¿ é¡»æ¯è¦å°åç */ @TableField(value = "tenant_id",exist = false) @TableField(value = "tenant_id") private String tenantId; private String description; Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java
@@ -84,44 +84,52 @@ } } public static void buildConditionByAs(Map<String, Object> query, MPJLambdaWrapper<?> qw, String tableAlias){ buildConditionMPJ(query,qw,tableAlias); } public static void buildCondition(Map<String, Object> query, MPJLambdaWrapper<?> qw) { buildConditionMPJ(query,qw,null); } private static void buildConditionMPJ(Map<String, Object> query, MPJLambdaWrapper<?> qw, String tableAlias){ if (!Func.isEmpty(query)) { query.forEach((k, v) -> { if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) { if (k.endsWith("_like")) { qw.like(getColumn(k, "_like"), v); qw.like(tableAlias+"."+getColumn(k, "_like"), v); } else if (k.endsWith("_notequal")) { qw.ne(getColumn(k, "_notequal"), v); qw.ne(tableAlias+"."+getColumn(k, "_notequal"), v); } else if (k.endsWith("_likeleft")) { qw.likeLeft(getColumn(k, "_likeleft"), v); qw.likeLeft(tableAlias+"."+getColumn(k, "_likeleft"), v); } else if (k.endsWith("_likeright")) { qw.likeRight(getColumn(k, "_likeright"), v); qw.likeRight(tableAlias+"."+getColumn(k, "_likeright"), v); } else if (k.endsWith("_notlike")) { qw.notLike(getColumn(k, "_notlike"), v); qw.notLike(tableAlias+"."+getColumn(k, "_notlike"), v); } else if (k.endsWith("_ge")) { qw.ge(getColumn(k, "_ge"), v); qw.ge(tableAlias+"."+getColumn(k, "_ge"), v); } else if (k.endsWith("_le")) { qw.le(getColumn(k, "_le"), v); qw.le(tableAlias+"."+getColumn(k, "_le"), v); } else if (k.endsWith("_gt")) { qw.gt(getColumn(k, "_gt"), v); qw.gt(tableAlias+"."+getColumn(k, "_gt"), v); } else if (k.endsWith("_lt")) { qw.lt(getColumn(k, "_lt"), v); qw.lt(tableAlias+"."+getColumn(k, "_lt"), v); } else if (k.endsWith("_datege")) { qw.ge(getColumn(k, "_datege"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); qw.ge(tableAlias+"."+getColumn(k, "_datege"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); } else if (k.endsWith("_dategt")) { qw.gt(getColumn(k, "_dategt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); qw.gt(tableAlias+"."+getColumn(k, "_dategt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); } else if (k.endsWith("_dateequal")) { qw.eq(getColumn(k, "_dateequal"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); qw.eq(tableAlias+"."+getColumn(k, "_dateequal"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); } else if (k.endsWith("_datele")) { qw.le(getColumn(k, "_datele"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); qw.le(tableAlias+"."+getColumn(k, "_datele"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); } else if (k.endsWith("_datelt")) { qw.lt(getColumn(k, "_datelt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); qw.lt(tableAlias+"."+getColumn(k, "_datelt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss")); } else if (k.endsWith("_null")) { qw.isNull(getColumn(k, "_null")); qw.isNull(tableAlias+"."+getColumn(k, "_null")); } else if (k.endsWith("_notnull")) { qw.isNotNull(getColumn(k, "_notnull")); qw.isNotNull(tableAlias+"."+getColumn(k, "_notnull")); } else { qw.eq(getColumn(k, "_equal"), v); qw.eq(tableAlias+"."+getColumn(k, "_equal"), v); } } @@ -129,6 +137,7 @@ } } public static void buildConditionByMapString(Map<String, String> query, MPJLambdaWrapper<?> qw) { if (!Func.isEmpty(query)) { query.forEach((k, v) -> { Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -74,7 +74,52 @@ ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); } } /** * ä¸è½½æ¹éç³è¯·çå¯¼å ¥æ¨¡æ¿ * @param codeClassifyOid åç±»çä¸»é® * @param response ååºå¯¹è±¡ * @throws IOException æåºå¼å¸¸ */ @GetMapping("/downloadTopImportExcel") @VciBusinessLog(operateName = "ä¸è½½æ¹éç³è¯·ç¼ç çå¯¼å ¥æ¨¡æ¿") public void downloadTopImportExcel(String codeClassifyOid,HttpServletResponse response) throws IOException{ String excelName = mdmIOService.downloadTopImportExcel(codeClassifyOid); try { ControllerUtil.writeFileToResponse(response,excelName); } catch (Throwable e) { //妿åºé,æé误信æ¯åå°text String msg = LangBaseUtil.getErrorMsg(e); if(StringUtils.isBlank(msg)){ msg = "æªç¥é误"; } ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); } } /** * ä¸è½½å岿°æ®å¯¼å ¥æ¨¡æ¿ * @param codeClassifyOid åç±»çä¸»é® * @param response ååºå¯¹è±¡ * @throws IOException æåºå¼å¸¸ */ @GetMapping("/downloadImportExcelHistory") @VciBusinessLog(operateName = "ä¸è½½å岿°æ®å¯¼å ¥æ¨¡æ¿") public void downloadImportExcelHistory(String codeClassifyOid,HttpServletResponse response) throws IOException{ String excelName = mdmIOService.createImportExcel(codeClassifyOid,true); //String excelName = mdmIOService.downloadTopImportExcel(codeClassifyOid); try { ControllerUtil.writeFileToResponse(response,excelName); } catch (Throwable e) { //妿åºé,æé误信æ¯åå°text String msg = LangBaseUtil.getErrorMsg(e); if(StringUtils.isBlank(msg)){ msg = "æªç¥é误"; } ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); } } /** * æ¹éç³è¯·ç¼ç çä¿¡æ¯ @@ -126,6 +171,97 @@ // return null; } /** * å¯¼å ¥å岿°æ® * @param codeClassifyOid åç±»çä¸»é® * @param classifyAttr å类路å¾ä½¿ç¨ç屿§ * @param file æä»¶çå 容 */ @VciBusinessLog(operateName = "å¯¼å ¥ç¼ç çå岿°æ®") @PostMapping("/batchImportHistoryData") public R batchImportHistoryData(String codeClassifyOid, String classifyAttr,MultipartFile file,HttpServletResponse response) throws Throwable { String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename(); File file1 = new File(excelFileName); try { file.transferTo(new File(excelFileName)); CodeImProtRusultVO codeImProtRusultVO =mdmIOService.batchImportHistoryData(codeClassifyOid, classifyAttr,file1); if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){ //æ¾å°mapé R result = R.fail("å¯¼å ¥å¤±è´¥"); if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) { String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath()); codeImProtRusultVO.setFileOid(filedUUid); } result.setData(codeImProtRusultVO); return result; }else { return R.success("æä½æåï¼"); } }catch (Throwable e) { logger.error("å¯¼å ¥é误",e); String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "é误.txt"; LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile); String uuid=ControllerUtil.putErrorFile(errorFile); CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO(); codeImProtRusultVO.setRedisUuid(""); codeImProtRusultVO.setFileOid(uuid); codeImProtRusultVO.setFilePath(errorFile); R r = R.fail("å¯¼å ¥å¤±è´¥"); r.setData(codeImProtRusultVO); return r; }finally { file1.delete(); } } /** * å¯¼å ¥å岿°æ® * @param codeClassifyOid åç±»çä¸»é® * @param classifyAttr å类路å¾ä½¿ç¨ç屿§ * @param file æä»¶çå 容 */ @VciBusinessLog(operateName = "æ¹éç³è¯·ç¼ç çä¿¡æ¯") @PostMapping("/batchTopImportCode") public R batchTopImportCode(String codeClassifyOid, String classifyAttr,MultipartFile file,HttpServletResponse response) throws Throwable { String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + file.getOriginalFilename(); File file1 = new File(excelFileName); try { file.transferTo(new File(excelFileName)); CodeImProtRusultVO codeImProtRusultVO =mdmIOService.batchTopImportCode(codeClassifyOid, classifyAttr,file1); if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())||StringUtils.isNotBlank(codeImProtRusultVO.getRedisUuid())){ //æ¾å°mapé R r = R.fail("å¯¼å ¥å¤±è´¥ï¼"); if(StringUtils.isNotBlank(codeImProtRusultVO.getFilePath())) { String filedUUid = ControllerUtil.putErrorFile(codeImProtRusultVO.getFilePath()); codeImProtRusultVO.setFileOid(filedUUid); r = R.success("å¯¼å ¥æåï¼"); } r.setData(codeImProtRusultVO); return r; }else { return R.success("å¯¼å ¥æåï¼"); } }catch (Throwable e) { e.printStackTrace(); logger.error("å¯¼å ¥é误",e); String errorFile = LocalFileUtil.getDefaultTempFolder() + File.separator + "é误.txt"; LocalFileUtil.writeContentToFile(LangBaseUtil.getErrorMsg(e),errorFile); String uuid=ControllerUtil.putErrorFile(errorFile); CodeImProtRusultVO codeImProtRusultVO =new CodeImProtRusultVO(); codeImProtRusultVO.setRedisUuid(""); codeImProtRusultVO.setFileOid(uuid); codeImProtRusultVO.setFilePath(errorFile); R r = R.fail("å¯¼å ¥å¤±è´¥"); r.setData(codeImProtRusultVO); return r; }finally { file1.delete(); } } /** * ä¿®æ¹ç¶æ @@ -256,7 +392,7 @@ } /*** * ä»redisç¼åéè·åå°å¯¼å ¥æ£ç¡®çæ°æ® * ä»redisç¼åéè·åå°å¯¼å ¥è¡ç¸ä¼¼é¡¹çæ°æ® * @param dataOid * @param redisOid * @return @@ -276,7 +412,27 @@ public DataGrid<Map<String,String>> gridResemble(String codeClassifyOid,String redisOid){ return mdmIOService.gridDatas(codeClassifyOid,redisOid); } /*** * å¯¼å ¥æ°æ® * @param codeImprotSaveDatVO//æ°æ®å¯¹è±¡ * @return */ @PostMapping("/batchImportData") public R batchImportData(@RequestBody CodeImprotParmaDatVO codeImprotSaveDatVO){ return mdmIOService.batchImportData(codeImprotSaveDatVO.getCodeImprotSaveDatVOList(),codeImprotSaveDatVO.getClassifyAttr(),codeImprotSaveDatVO.getImprot()); } /*** *æ ¹æ®æ°æ®oidä»ç¼åä¸ç§»é¤æ°æ® * @param redisOid redisid * @param codeClassifyOid åå¨è§åçoid * @param dataOids æéå é¤çæ°æ® * @return */ @GetMapping("/deleteDatas") public R deleteDatas(String redisOid,String codeClassifyOid,String dataOids){ return mdmIOService.deleteDatas(redisOid,codeClassifyOid,dataOids); } /** * æ¹éä¿åæµç¨æ§è¡é¡µé¢ä¿®æ¹çå 容 * @param orderDTOList ç¼ç ç¸å ³çä¿¡æ¯ï¼ä¸éè¦ç 段çä¿¡æ¯ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java
@@ -20,7 +20,6 @@ List<String> selectById(@Param("inSql") String inSql); int queryCountBySql(@Param("inSql") String inSql); List<Map> selectBySql(@Param("inSql") String inSql); Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeRuleService.java
@@ -108,6 +108,16 @@ Collection<CodeRuleVO> listCodeRuleByOids(Collection<String> oidCollections) throws VciBaseException; /** * 䏻鮿¹éè·åä¸»æ°æ®ç¼ç è§å * * @param oidCollections 主é®éåï¼ä½æ¯åæ§è½å½±åï¼å»ºè®®ä¸æ¬¡æ¥è¯¢ä¸è¶ è¿10000个 * @param hasSec æ¯å¦å å«ç 段 * @return ä¸»æ°æ®ç¼ç è§åæ¾ç¤ºå¯¹è±¡ * @throws VciBaseException æ¥è¯¢åºç°å¼å¸¸æ¶ä¼æåº */ Collection<CodeRuleVO> listCodeRuleByIds(Collection<String> oidCollections,boolean hasSec)throws VciBaseException ; /** * åç §ä¸»æ°æ®ç¼ç è§åå表 * @param bladeQueryObject æ¥è¯¢æ¡ä»¶ * @return ä¸»æ°æ®ç¼ç è§åæ¾ç¤ºå¯¹è±¡å表ï¼çæçå 容 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -14,6 +14,7 @@ import com.vci.ubcs.starter.revision.model.BaseModel; import com.vci.ubcs.starter.revision.model.TreeQueryObject; import com.vci.ubcs.starter.web.pagemodel.*; import com.vci.ubcs.starter.web.util.VciQueryWrapperForDO; import org.springblade.core.tool.api.R; import java.beans.IntrospectionException; @@ -411,4 +412,20 @@ * @return æ å½¢çæ°æ® */ List<Tree> referTree(UIFormReferVO referConfigVO, TreeQueryObject queryObject); /** * æ¯å¦ä¸ºä¿®æ¹å¿½ç¥ç屿§ * @param attrName 屿§çåå * @return true 表示åºè¯¥å¿½ç¥ */ 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/MdmIOService.java
@@ -4,9 +4,11 @@ import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.code.vo.pagemodel.CodeImProtRusultVO; import com.vci.ubcs.code.vo.pagemodel.CodeImportTemplateVO; import com.vci.ubcs.code.vo.pagemodel.CodeImprotSaveDatVO; import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO; import com.vci.ubcs.starter.web.pagemodel.DataGrid; import org.springblade.core.tool.api.R; import java.io.File; import java.util.LinkedList; @@ -24,6 +26,14 @@ */ String createImportExcel(String codeClassifyOid,boolean isHistory); /** * çæå¯¼å ¥çæä»¶ * @param codeClassifyOid åç±»çä¸»é® * @return excelçæä»¶å°å */ String downloadTopImportExcel(String codeClassifyOid); /** * æ¹éç³è¯·ç¼ç æ°æ® * @param orderDTO ç¼ç ç³è¯·ä¿¡æ¯ï¼å¿ é¡»å å«å类主é®åç æ®µçä¿¡æ¯ @@ -32,6 +42,23 @@ */ CodeImProtRusultVO batchImportCode(CodeOrderDTO orderDTO, File file); /*** *æ¹éç³è¯·ç¼ç æ°æ® * @param codeClassifyOid åç±»çä¸»é® * @param classifyAttr å类路å¾ä½¿ç¨ç屿§ * @param file excelæä»¶çä¿¡æ¯ * @return æé误信æ¯çexcel */ CodeImProtRusultVO batchTopImportCode(String codeClassifyOid,String classifyAttr, File file); /** * å¯¼å ¥å岿°æ® * @param codeClassifyOid åç±»çä¸»é® * @param classifyAttr å类路å¾ä½¿ç¨ç屿§ * @param file excelæä»¶çä¿¡æ¯ * @return æé误信æ¯çexcel */ CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid,String classifyAttr, File file); /*** * ä»redisç¼åéè·åå°å¯¼å ¥çæ°æ® * @param codeClassifyOid @@ -48,6 +75,25 @@ */ DataGrid<Map<String, String>> gridRowResemble(String dataOid, String redisOid); /** * æ¹éç³è¯· * @param codeImprotSaveDatVOList * @param isImprot * @return */ R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot); /*** * * @param redisOid redisid * @param codeClassifyOid åå¨è§åçoid * @param dataOids æéå é¤çæ°æ® * @return */ R deleteDatas(String redisOid, String codeClassifyOid, String dataOids); void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs); /** Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -131,9 +131,11 @@ MPJLambdaWrapper<CodeBasicSec> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeBasicSec.class, CodeTableNameEnum.PL_CODE_BASICSEC.getText()) .selectAll(CodeBasicSec.class) .selectAs(CodeClassify::getName, CodeBasicSec::getReferCodeClassifyOidName) .leftJoin(CodeClassify.class,CodeTableNameEnum.PL_CODE_CLASSIFY.getText(), CodeClassify::getOid, CodeBasicSec::getReferCodeClassifyOid); .leftJoin(CodeClassify.class, CodeTableNameEnum.PL_CODE_CLASSIFY.getText(), CodeClassify::getOid, CodeBasicSec::getReferCodeClassifyOid) .leftJoin(CodeBasicSec.class,CodeTableNameEnum.PL_CODE_BASICSEC.getText()+1,CodeBasicSec::getOid,CodeBasicSec::getParentClassifySecOid ,ext->ext.selectAs(CodeBasicSec::getName,CodeBasicSec::getParentClassifySecText)); // æ·»å whereæ¡ä»¶ UBCSSqlKeyword.buildCondition(conditionMap,mpjLambdaWrapper); UBCSSqlKeyword.buildConditionByAs(conditionMap,mpjLambdaWrapper,CodeTableNameEnum.PL_CODE_BASICSEC.getText()); IPage<CodeBasicSec> codeBasicSecIPage = codeBasicSecMapper.selectPage(UBCSCondition.getPage(query), mpjLambdaWrapper); return CodeBasicSecWrapper.build().pageVO(codeBasicSecIPage); } @@ -508,20 +510,23 @@ } List<CodeBasicSec> createList = new ArrayList<>(); List<CodeBasicSec> basicSecDOS = codeBasicSecMapper.selectBatchIds(oidList); if(basicSecDOS.isEmpty()){ return R.fail("å éçç æ®µä¿¡æ¯ä¸åå¨ï¼"); } basicSecDOS.forEach(sec -> { CodeBasicSec newSecDO = new CodeBasicSec(); BeanUtilForVCI.copyPropertiesIgnoreCase(sec,newSecDO); newSecDO.setOid(""); newSecDO.setNameOid(""); newSecDO.setRevisionOid(""); newSecDO.setOid(VciBaseUtil.getPk()); newSecDO.setNameOid(VciBaseUtil.getPk()); newSecDO.setRevisionOid(VciBaseUtil.getPk()); newSecDO.setId(newSecDO.getId() + "_copy"); newSecDO.setName(newSecDO.getName() + "_copy"); newSecDO.setPkCodeRule(pkCodeRule); createList.add(newSecDO); }); boolean b = saveBatch(createList); boolean resBoolean = saveBatch(createList); //codeBasicSecMapper.insertBatch(createList); return R.data(b,"å éç æ®µä¿¡æ¯æå"); return resBoolean ? R.data(resBoolean,"å éç æ®µä¿¡æ¯æå"):R.fail("å éç æ®µä¿¡æ¯å¤±è´¥ï¼"); } /** Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -320,6 +320,21 @@ } /** * 䏻鮿¹éè·åä¸»æ°æ®ç¼ç è§å * * @param oidCollections 主é®éåï¼ä½æ¯åæ§è½å½±åï¼å»ºè®®ä¸æ¬¡æ¥è¯¢ä¸è¶ è¿10000个 * @param hasSec æ¯å¦å å«ç 段 * @return ä¸»æ°æ®ç¼ç è§åæ¾ç¤ºå¯¹è±¡ * @throws VciBaseException æ¥è¯¢åºç°å¼å¸¸æ¶ä¼æåº */ @Override public Collection<CodeRuleVO> listCodeRuleByIds(Collection<String> oidCollections, boolean hasSec) throws VciBaseException { VciBaseUtil.alertNotNull(oidCollections, "æ°æ®å¯¹è±¡ä¸»é®éå"); List<CodeRule> codeRuleDOList = listCodeRuleDOByOidCollections(oidCollections); return codeRuleDO2VOs(codeRuleDOList, true); } /** * 使ç¨ä¸»é®éåæ¥è¯¢æ°æ®å¯¹è±¡ * * @param oidCollections 主é®çéå @@ -438,6 +453,27 @@ } /** * æ¹éæ°æ®å¯¹è±¡è½¬æ¢ä¸ºæ¾ç¤ºå¯¹è±¡ * * @param codeRules æ°æ®å¯¹è±¡å表 * @param hasSec æ¯å¦å å«ç 段 * @return æ¾ç¤ºå¯¹è±¡ * @throws VciBaseException åæ°ä¸ºç©ºæè ä¸åå¨çæ¶å伿åºå¼å¸¸ */ public List<CodeRuleVO> codeRuleDO2VOs(Collection<CodeRule> codeRules, boolean hasSec) throws VciBaseException { List<CodeRuleVO> voList = new ArrayList<CodeRuleVO>(); if (!CollectionUtils.isEmpty(codeRules)) { for (CodeRule s : codeRules) { CodeRuleVO vo = codeRuleDO2VO(s,true); if (vo != null) { voList.add(vo); } } } return voList; } /** * æ°æ®å¯¹è±¡è½¬æ¢ä¸ºæ¾ç¤ºå¯¹è±¡ * * @param codeRuleDO è§åçæ°æ®å¯¹è±¡ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -938,7 +938,8 @@ * @param attrName 屿§çåå * @return true 表示åºè¯¥å¿½ç¥ */ boolean checkUnAttrUnEdit(String attrName){ @Override public boolean checkUnAttrUnEdit(String attrName){ return (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName) ||"ts".equalsIgnoreCase(attrName) || "lastmodifier".equalsIgnoreCase(attrName) Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2,12 +2,16 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.vci.ubcs.code.bo.AttributeValue; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.entity.CodeAllCode; import com.vci.ubcs.code.entity.CodeClassify; import com.vci.ubcs.code.enumpack.CodeDefaultLC; import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum; import com.vci.ubcs.code.lifecycle.CodeAllCodeLC; import com.vci.ubcs.code.mapper.CommonsMapper; import com.vci.ubcs.code.service.*; import com.vci.ubcs.code.util.ClientBusinessObject; @@ -16,6 +20,8 @@ import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO; 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.vo.BtmTypeVO; import com.vci.ubcs.starter.bo.WriteExcelData; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.poi.bo.ReadExcelOption; @@ -26,7 +32,10 @@ import com.vci.ubcs.starter.revision.model.BaseModel; import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.util.LocalFileUtil; import com.vci.ubcs.starter.util.MdmBtmTypeConstant; import com.vci.ubcs.starter.web.constant.QueryOptionConstant; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; import com.vci.ubcs.starter.web.pagemodel.DataGrid; import com.vci.ubcs.starter.web.pagemodel.KeyValue; @@ -37,6 +46,7 @@ import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.map.HashedMap; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; @@ -44,16 +54,18 @@ import org.apache.poi.ss.usermodel.RichTextString; import org.apache.poi.ss.usermodel.Workbook; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.api.R; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.text.MessageFormat; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import java.util.stream.Collectors; @@ -66,6 +78,21 @@ @Service @Slf4j public class MdmIOServiceImpl implements MdmIOService { /** * åæ®µ */ public static final String ROW_INDEX = "LAY_TABLE_INDEX"; /** * é误信æ¯çåæ®µ */ public static final String ERROR_MSG = "errorMsg"; @Value("${batchadd.exportattr.type:åºæ¬ä¿¡æ¯}") public String BATCHADD_EXCEPORT_ATTR_TYPE; @Value("${batchadd.redis.time:6000000}") public int BATCHADD_REDIS_TIME; /** @@ -74,11 +101,17 @@ @Resource private ICodeClassifyService classifyService; /** * éç¨æ¥è¯¢ */ @Resource CommonsMapper commonsMapper; private CommonsMapper commonsMapper; /**** * ç å¼æå¡ */ @Resource ICodeAllCodeService codeAllCodeService; /** * 模æ¿çæå¡ @@ -111,6 +144,178 @@ */ @Autowired private FormulaServiceImpl formulaService; /** * è§åçæå¡ */ @Autowired private ICodeRuleService ruleService; /** * ä¸å¡ç±»åçæå¡ */ @Autowired private IBtmTypeClient btmTypeClient; /** * æ¹éç³è¯·ï¼éåéä¸åç±»ä¸çæææ¨¡æ¿å ³é®å±æ§ï¼ç¸ä¼¼å±æ§ï¼å¿ 填屿§ï¼åå ¥execlä¸ * * @param codeClassifyOid åç±»çä¸»é® * @return excelçæä»¶å°å */ @Override public String downloadTopImportExcel(String codeClassifyOid){ List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>(); VciBaseUtil.alertNotNull("å¯¼åºæ¨¡æ¿","导åºçé ç½®",codeClassifyOid,"主é¢åºåç±»ç主é®"); CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid); templateVOList= templateService.childTemplates(codeClassifyOid); List<CodeClassifyVO> codeClassifyVOS=classifyService.getIdPathToNamePathByParentId(codeClassifyOid,true); WriteExcelOption eo = new WriteExcelOption(); LinkedHashMap<String,CodeClassifyTemplateAttrVO> allFieldToOutNameMap=new LinkedHashMap<>(); templateVOList.stream().forEach(templateVO -> { //ç»åæ ¼å¼çä¸å¯¼å ¥ï¼ // æä¸¾çæä¾åºåçéæ© //æ¶é´å ¨é¨ç»ä¸ä¸ºyyyy-MM-dd HH:mm:ss //åç §çèªè¡è¾å ¥åç§° //åç±»æ³¨å ¥çä¸ç¨ï¼é½æ¯å¯¼å ¥åèªå¨å¤çç //ç¼ç ï¼ç¶æçåæ®µä¸å¯¼å ¥ List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_ATTR_LIST.contains(s.getId()) && StringUtils.isBlank(s.getComponentRule()) && StringUtils.isBlank(s.getClassifyInvokeAttr()) && (VciBaseUtil.getBoolean(s.getFormDisplayFlag())) ).collect(Collectors.toList()); if(CollectionUtils.isEmpty(templateAttrVOS)){ throw new VciBaseException("æ¨¡æ¿æ²¡æé 置任ä½ãè¡¨åæ¾ç¤ºãä¸ºãæ¯ãç屿§"); } templateAttrVOS.stream().forEach(codetemplateAttr ->{ String field=codetemplateAttr.getId(); String name=codetemplateAttr.getName(); CodeClassifyTemplateAttrVO codeBaseAttributeDTO=new CodeClassifyTemplateAttrVO(); boolean res=codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE)//åºæ¬å±æ§å段æ¾ç¤º ||(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//å ³é®å±æ§çåå ¥ ||(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //ç¸ä¼¼å±æ§çåå ¥ ||(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag())); if(allFieldToOutNameMap.containsKey(name)){//妿åå¨çè¯åéè¦æ ¹æ®å ·ä½çå»èµå¼ codeBaseAttributeDTO= allFieldToOutNameMap.get(name); if(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())){ codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//屿§å ³é®å±æ§ } if(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag())){ codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//屿§å¿ 填项 } if(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())){ codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//屿§ç¸ä¼¼å±æ§ } }else if(res){ allFieldToOutNameMap.put(name,codetemplateAttr); } }); }); //æ´çå¥½æææ¨¡æ¿éè¦åå ¥execlç屿§ä¿¡æ¯ Workbook workbook = new HSSFWorkbook(); LinkedList<WriteExcelData> excelDataList = new LinkedList<>(); if(!CollectionUtils.isEmpty(allFieldToOutNameMap)){ excelDataList.add(new WriteExcelData(0,0,"å类路å¾")); final int[] index = {0}; allFieldToOutNameMap.values().stream().forEach(attrVO -> { Object text = attrVO.getName(); text = exportKeyAndRequired(workbook,attrVO,text); int colIndex = 1 + index[0]++; WriteExcelData excelData = new WriteExcelData(0, colIndex, text); if(StringUtils.isNotBlank(attrVO.getCodeDateFormat()) || VciFieldTypeEnum.VTDateTime.name().equalsIgnoreCase(attrVO.getAttributeDataType()) || VciFieldTypeEnum.VTDate.name().equalsIgnoreCase(attrVO.getAttributeDataType()) ||VciFieldTypeEnum.VTTime.name().equalsIgnoreCase(attrVO.getAttributeDataType())){ excelData.setDateFormat(VciDateUtil.DateTimeFormat); } if(text instanceof RichTextString){ excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex())); } excelDataList.add(excelData); if(StringUtils.isNotBlank(attrVO.getEnumString()) || StringUtils.isNotBlank(attrVO.getEnumId())){ //æ·»å æ°æ®æææ§ List<String> enumValueList = new ArrayList<>(); enumValueList.add(""); List<KeyValue> valueList = engineService.listComboboxItems(attrVO); if(!CollectionUtils.isEmpty(valueList)){ valueList.stream().forEach(kv->{ enumValueList.add(kv.getValue()); }); } //é»è®¤å 1䏿¡ WriteExcelData ed = new WriteExcelData(1,colIndex,""); ed.setRowTo(100); ed.setColTo(colIndex); ed.setValidation(true); ed.setValidationDataList(enumValueList); ed.setValidationErrorMsg("请å¨åºåä¸éæ©æ£ç¡®çå¼"); excelDataList.add(ed); } if(VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributeDataType())){ List<String> booleanList = new ArrayList<>(); booleanList.add("æ¯"); booleanList.add("å¦"); //é»è®¤å 1䏿¡ WriteExcelData ed = new WriteExcelData(1,colIndex,""); ed.setRowTo(100); ed.setColTo(colIndex); ed.setValidation(true); ed.setValidationDataList(booleanList); ed.setValidationErrorMsg("请å¨åºåä¸éæ©æ£ç¡®çå¼"); excelDataList.add(ed); } }); eo.addSheetDataList(codeClassifyVO.getName()+"å¯¼å ¥æ¨¡æ¿",excelDataList); } LinkedList<WriteExcelData> classPathList = new LinkedList<>(); classPathList.add(new WriteExcelData(0,0,"åç±»å±çº§")); WriteExcelData idPathWriteExcelTitle=new WriteExcelData(0,1,"åç±»IDè·¯å¾"); idPathWriteExcelTitle.setWidth(20); idPathWriteExcelTitle.setCenter(false); classPathList.add(idPathWriteExcelTitle); WriteExcelData namePathWriteExcelTitle=new WriteExcelData(0,2,"åç±»åç§°è·¯å¾"); namePathWriteExcelTitle.setWidth(20); namePathWriteExcelTitle.setCenter(false); classPathList.add(namePathWriteExcelTitle); final int[] rowIndex = {1}; codeClassifyVOS.stream().forEach(codeClassifyVO1 -> { classPathList.add(new WriteExcelData(rowIndex[0],0,codeClassifyVO1.getDataLevel())); String idPath=codeClassifyVO1.getIdPath().startsWith("#")?codeClassifyVO1.getIdPath().substring(1):codeClassifyVO1.getIdPath(); WriteExcelData idPathWriteExcelData=new WriteExcelData(rowIndex[0],1,idPath); idPathWriteExcelData.setWidth(30); idPathWriteExcelData.setCenter(false); classPathList.add(idPathWriteExcelData); String namePath=codeClassifyVO1.getNamePath().startsWith("#")?codeClassifyVO1.getNamePath().substring(1):codeClassifyVO1.getNamePath(); WriteExcelData namePathWriteExcelData= new WriteExcelData(rowIndex[0],2,namePath); namePathWriteExcelData.setWidth(40); namePathWriteExcelData.setCenter(false); classPathList.add(namePathWriteExcelData); rowIndex[0]++; }); WriteExcelData excelData=new WriteExcelData(); excelData.setMerged(true); excelData.setRow(1); excelData.setRowTo(2); excelData.setCol(4); excelData.setColTo(9); excelData.setCenter(false); excelData.setReadOnly(true); excelData.setObj("å¯¼å ¥æ°æ®æ¶ï¼å类路å¾å¿ 须填åå¶åèç¹è·¯å¾\n(éæ©å¶åèç¹å¯¼å ¥åä¸éè¦å¡«åå类路å¾)"); excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex())); classPathList.add(excelData); eo.addSheetDataList(codeClassifyVO.getName()+"åç±»å¯¹ç §è¡¨",classPathList); String excelName = LocalFileUtil.getDefaultTempFolder() + File.separator + codeClassifyVO.getName() + "_å¯¼å ¥æ¨¡æ¿.xls"; // eo.addSheetDataList(templateVOList.size()+"模æ¿ä¿¡æ¯ã请å¿å é¤æç§»å¨ã",tempEDList); ExcelUtil.writeDataToFile(excelName,eo); return excelName; } /** * çæå¯¼å ¥çæä»¶ * @@ -307,6 +512,627 @@ return codeImProtRusultVO; } /*** * ä»é¡¶å±æ¹éç³è¯·å¯¼å ¥æ¹æ³ * @param codeClassifyOid åç±»çä¸»é® * @param classifyAttr å类路å¾ä½¿ç¨ç屿§ * @param file excelæä»¶çä¿¡æ¯ * @return */ @Override public CodeImProtRusultVO batchTopImportCode(String codeClassifyOid, String classifyAttr, File file) { VciBaseUtil.alertNotNull(codeClassifyOid,"åç±»ç主é®"); ReadExcelOption reo = new ReadExcelOption(); reo.setReadAllSheet(true); List<SheetDataSet> sheetDataSetList = ExcelUtil.readDataObjectFromExcel(file,null,reo); if(CollectionUtils.isEmpty(sheetDataSetList) || CollectionUtils.isEmpty(sheetDataSetList.get(0).getRowData()) ||sheetDataSetList.get(0).getRowData().size()<1){ throw new VciBaseException("没æè¯»åå°ä»»ä½çæ°æ®"); } if(sheetDataSetList.size()>LIMIT+1){ throw new VciBaseException("为äºä¿è¯ç³»ç»çç¨³å®æ§ï¼è¯·ä¸æ¬¡ä¸è¦å¯¼å ¥è¶ è¿1䏿¡çæ°æ®"); } //å æ¾å°æ¯ä¸è¡çæ é¢ï¼ç¶åæ ¹æ®æ 颿¥è·å对åºç屿§ SheetDataSet dataSet = sheetDataSetList.get(0); CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid); //è·åå½åæ¨¡æ¿ CodeClassifyTemplateVO selectCodeClassifyTemplateVO =engineService.getUsedTemplateByClassifyOid(codeClassifyOid); Map<String,List<ColumnVO>> templateColumnVOMap=new HashMap<>(); createTemplate(selectCodeClassifyTemplateVO,templateColumnVOMap); List<CodeClassifyVO> childClassifyVOs = classifyService.listChildrenClassify(codeClassifyOid, true, classifyAttr, true); Map<String/**è·¯å¾**/, CodeClassifyVO> pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t)); pathMap.put("#current#", classifyFullInfo.getCurrentClassifyVO()); List<String> titleRowData = dataSet.getColName(); Map<String, String> errorMap = new ConcurrentHashMap<>(); //é¦å å°æ°æ®ä»¥æ¨¡æ¿çå½¢å¼åå¼ LinkedHashMap<String,List<CodeImprotDataVO>> codeclassifyDataMap=new LinkedHashMap<>(); List<CodeImprotDataVO> codeClassifyDatas=new ArrayList<>(); createExeclClassData(dataSet,pathMap,errorMap,codeClassifyDatas); //æ ¹æ®æ¨¡æ¿å°æ°æ®æ´åå¨ä¸èµ·ï¼å»æ ¡éª Map<String/**模æ¿oid**/, List<CodeImprotDataVO>/**æ°æ®å¯¹è±¡**/> templateDatasMap =codeClassifyDatas.stream().collect(Collectors.toMap(CodeImprotDataVO::getTemplateOid,s->{ List<CodeImprotDataVO> l=new ArrayList<>(); l.add(s); return l; },(List<CodeImprotDataVO> s1,List<CodeImprotDataVO> s2)->{ s1.addAll(s2); return s1; })); String uuid=VciBaseUtil.getPk(); List<CodeImportTemplateVO> codeImportTemplateVOS=new ArrayList<>(); Map<String,CodeImportTemplateVO> codeRuleMap=new HashMap<>(); //ç¸ä¼¼æ°æ® // Map<String,String>wpResembleMap=new HashMap<>(); // List<CodeImprotDataVO> wpCodeImprotDataVOList=new ArrayList<>(); //æç §æ¨¡æ¿å»æ´çæ°æ® templateDatasMap.keySet().stream().forEach(templateVOOid->{ List<CodeImprotDataVO> codeImprotDataVOS= templateDatasMap.get(templateVOOid); CodeClassifyTemplateVO templateVO= templateService.getObjectHasAttrByOid(templateVOOid); //é¤å»é»è®¤ç屿§.è¿æåªæè¡¨åæ¾ç¤ºçåæ®µæå¯¼å ¥ List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); Map<String/**模æ¿å±æ§å段oid**/, String /**模æ¿å±æ§å¤é¨åç§°**/> fieldNameMap =attrVOS.stream().collect(Collectors.toMap(CodeClassifyTemplateAttrVO::getId,s->s.getName())); List<ClientBusinessObject> allCboList=new ArrayList<>(); codeImprotDataVOS.stream().forEach(codeImprotDataVO -> { List<ColumnVO>columnVOList =new ArrayList(); String templateOid=selectCodeClassifyTemplateVO.getOid(); if(templateColumnVOMap.containsKey(templateOid)){ columnVOList= columnVOList=templateColumnVOMap.get(templateOid); }else{ createTemplate(templateVO,templateColumnVOMap); columnVOList= columnVOList=templateColumnVOMap.get(templateOid); } String codeRuleOid=codeImprotDataVO.getCodeRuleOid(); if(!codeRuleMap.containsKey(codeRuleOid)){ CodeImportTemplateVO codeImportTemplateVO=new CodeImportTemplateVO(); codeImportTemplateVO.setRoot(false); codeImportTemplateVO.setCodeClassifyOid(codeImprotDataVO.getCodeClassifyOid()); codeImportTemplateVO.setCodeRuleOid(codeImprotDataVO.getCodeRuleOid()); codeImportTemplateVO.setCodeTemplateOid (codeImprotDataVO.getTemplateOid()); codeImportTemplateVO.setCodeClassifyVO( codeImprotDataVO.getCodeClassifyVO()); codeImportTemplateVO.setCodeClassifyTemplateVO( codeImprotDataVO.getCodeClassifyTemplateVO()); codeImportTemplateVO.setCodeRuleVO(codeImprotDataVO.getCodeRuleVO()); List<String> colNames=codeImprotDataVO.getColNames(); codeImportTemplateVO.setCloNamesList(columnVOList); codeImportTemplateVOS.add(codeImportTemplateVO); codeRuleMap.put(codeRuleOid,codeImportTemplateVO); } List<ClientBusinessObject> cboList=new ArrayList<>(); excelToCbo(classifyFullInfo,codeImprotDataVO,cboList,true); allCboList.addAll(cboList); //å¾éæ©çèç¹éé¢å æ°æ® // CodeImprotDataVO wpcodeImprotDataVO=new CodeImprotDataVO(); // BeanUtilForVCI.copyPropertiesIgnoreCase(codeImprotDataVO,wpcodeImprotDataVO); /* wpcodeImprotDataVO.setCodeClassifyOid(codeClassifyOid); wpcodeImprotDataVO.setCodeClassifyVO(classifyFullInfo.getCurrentClassifyVO()); wpcodeImprotDataVO.setCodeClassifyTemplateVO(selectCodeClassifyTemplateVO); wpcodeImprotDataVO.setCodeRuleOid(classifyFullInfo.getCurrentClassifyVO().getCoderuleoid());*/ // wpCodeImprotDataVOList.add(wpcodeImprotDataVO);//å¾ç©åå¯¹è±¡éæ·»å }); //é½è½¬æ¢å®äºãéè¦æ¹éæ£æ¥ //妿åºéäºï¼æä»¬ä¾ç¶æ§è¡ææçæ°æ®ï¼æ æçæ°æ®ååå°excelä¸ //2.å¤æå¿ è¾é¡¹ããéè¦å ¨é¨ç屿§ï¼å¦ææ¯å¿ è¾ï¼ä½æ¯è¡¨åéé¢ä¸æ¾ç¤ºçï¼åªè½æ¯åç±»æ³¨å ¥æè ç»åè§å batchCheckRequiredAttrOnOrder(templateVO,allCboList,errorMap); //3.å¤æå ³é®å±æ§ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, allCboList); Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList(); Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){ selfRepeatRowIndexList.stream().forEach(rowIndex->{ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";å¨å½åå¤ççæ°æ®æä»¶ä¸å ³é®å±æ§éå¤" ); }); } if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){ keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";å ³é®å±æ§ä¸ç³»ç»ä¸çéå¤" ); }); } //åç±»æ³¨å ¥ // batchSwitchClassifyAttrOnOrder(attrVOS,allCboList,classifyFullInfo,false); //boolean reSwitchBooleanAttrOnOrder(attrVOS,allCboList); //4.æ ¡éªè§å batchCheckVerifyOnOrder(attrVOS, allCboList,errorMap); //æ¯å¦éè¦æ ¡éªæä¸¾/åç § //5.æ ¡éªæä¸¾æ¯å¦æ£ç¡® batchSwitchEnumAttrOnOrder(attrVOS, allCboList, errorMap); //7.å¤çåç §çæ åµ batchSwitchReferAttrOnOrder(attrVOS,allCboList,errorMap); //6.æ¶é´æ ¼å¼çéªè¯ //6.æ¶é´çï¼å¿ é¡»ç»ä¸ä¸ºyyyy-MM-dd HH:mm:ss batchSwitchDateAttrOnOrder(attrVOS,allCboList,errorMap); //设置é»è®¤å¼ batchSwitchAttrDefault(attrVOS, allCboList); //æåå¼ç»åè§å batchSwitchComponentAttrOnOrder(attrVOS,allCboList); Map<String, ClientBusinessObject> rowIndexCboMap = allCboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getAttributeValue((IMPORT_ROW_INDEX)), t -> t)); List<ClientBusinessObject> needSaveCboList = allCboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); return !errorMap.containsKey(rowIndex); }).collect(Collectors.toList()); //ç¸ä¼¼æ ¡éª Map<String,String>resembleMap=new HashMap<>(); List<DataResembleVO> dataResembleVOS=new ArrayList<>(); String btmtypeid= classifyFullInfo.getTopClassifyVO().getBtmtypeid(); bathcResembleQuery(codeClassifyOid,templateVO,needSaveCboList,resembleMap,btmtypeid,dataResembleVOS); if(resembleMap.size()>0) { if(!CollectionUtils.isEmpty(dataResembleVOS)) { bladeRedis.set(uuid + "-resemble-data", dataResembleVOS); bladeRedis.expire(uuid + "-resemble-data",BATCHADD_REDIS_TIME);//redisè¿ææ¶é´ // createRedisDatas(uuid + "-resemble", codeImprotDataVOS, resembleMap, false); // wpResembleMap.putAll(resembleMap); } } //æé¤é误çï¼å©ä¸æ£ç¡®ç Map<String,String> newErrorMap=new HashMap<>(); newErrorMap.putAll(resembleMap); newErrorMap.putAll(errorMap); needSaveCboList = allCboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); return !newErrorMap.containsKey(rowIndex); }).collect(Collectors.toList()); if(newErrorMap.size()>0) { createRedisDatas(uuid + "-resemble",codeImprotDataVOS, newErrorMap,false); } createRedisDatas(uuid + "-ok",codeImprotDataVOS, newErrorMap,true); }); //å¾ç©åèç¹ä¸å æ¨¡æ¿ List<String> needRowIndexList=new ArrayList<>(); CodeImProtRusultVO codeImProtRusultVO = new CodeImProtRusultVO(); if(errorMap.size()>0) { String filePath = returnErrorToExcel(dataSet.getRowData(), errorMap, needRowIndexList, dataSet.getColName()); if (StringUtils.isNotBlank(filePath)) { codeImProtRusultVO.setFilePath(filePath); } } if(StringUtils.isNotBlank(uuid)){ //å°ææçåç±»åå ¥ç¼åä¹ä¸ codeImProtRusultVO.setRedisUuid(uuid); /** List<ColumnVO>columnVOList=new ArrayList<>(); CodeImportTemplateVO wpCodeImportTemplateVO=new CodeImportTemplateVO(); wpCodeImportTemplateVO.setRoot(true); wpCodeImportTemplateVO.setCodeClassifyTemplateVO(selectCodeClassifyTemplateVO); wpCodeImportTemplateVO.setCodeClassifyVO(classifyFullInfo.getCurrentClassifyVO()); String templateOid=selectCodeClassifyTemplateVO.getOid(); if(templateColumnVOMap.containsKey(templateOid)){ columnVOList= columnVOList=templateColumnVOMap.get(templateOid); }else{ createTemplate(selectCodeClassifyTemplateVO,templateColumnVOMap); columnVOList= columnVOList=templateColumnVOMap.get(templateOid); } wpCodeImportTemplateVO.setCloNamesList(columnVOList); codeImportTemplateVOS.add(wpCodeImportTemplateVO); if(wpResembleMap.size()>0){ // redisService.setCacheList(uuid + "-resemble-data", wpDataResembleVOList); createRedisDatas(uuid + "-resemble",selectCodeClassifyTemplateVO, wpCodeImprotDataVOList, wpResembleMap, false,codeClassifyOid); } //æé¤é误çï¼å©ä¸æ£ç¡®ç Map<String,String> newErrorMap=new HashMap<>(); newErrorMap.putAll(wpResembleMap); newErrorMap.putAll(errorMap); List<CodeImprotDataVO> needSaveCboList = wpCodeImprotDataVOList.stream().filter(cbo -> { String rowIndex = cbo.getRowIndex(); return !newErrorMap.containsKey(rowIndex); }).collect(Collectors.toList()); createRedisDatas(uuid + "-ok",selectCodeClassifyTemplateVO,wpCodeImprotDataVOList, newErrorMap,true,codeClassifyOid);****/ if(codeImportTemplateVOS.size()>0){ bladeRedis.set(uuid + "-class",codeImportTemplateVOS); bladeRedis.expire(uuid + "-class",BATCHADD_REDIS_TIME); } } return codeImProtRusultVO; } /** * å¯¼å ¥å岿°æ® * * @param codeClassifyOid åç±»çä¸»é® * @param classifyAttr å类路å¾ä½¿ç¨ç屿§ * @param file excelæä»¶çä¿¡æ¯ * @return æé误信æ¯çexcel */ @Override public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) { VciBaseUtil.alertNotNull(codeClassifyOid,"åç±»ç主é®"); ReadExcelOption reo = new ReadExcelOption(); reo.setReadAllSheet(true); List<SheetDataSet> sheetDataSetList = ExcelUtil.readDataObjectFromExcel(file,null,reo); if (sheetDataSetList.size() > LIMIT + 1) { throw new VciBaseException("为äºä¿è¯ç³»ç»çç¨³å®æ§ï¼è¯·ä¸æ¬¡ä¸è¦å¯¼å ¥è¶ è¿1䏿¡çæ°æ®"); } Map<String,List<WriteExcelData>> shetNameMap=new HashMap<>(); //ç¸ä¼¼é¡¹ç®æ¥é String uuid=VciBaseUtil.getPk(); boolean isCreateUUid=false; boolean isExport=false; for(int i=0;i<sheetDataSetList.size()-1;i++) { if (CollectionUtils.isEmpty(sheetDataSetList) || CollectionUtils.isEmpty(sheetDataSetList.get(i).getRowData()) || sheetDataSetList.get(i).getRowData().size() < 1) { continue; } //åå²å¯¼å ¥çæ¶åä¸å¤çç¼ç //----é»è¾å 容---- //1. åç±»çè·¯å¾å¯ä»¥å¨é¡µé¢ä¸éæ©æ¯åç±»ç¼å·è¿æ¯åç±»çåç§° //2. åç±»çè·¯å¾ï¼å¿ é¡»æ¯å½åå¯¼å ¥éæ©çåç±»çèç¹ï¼ä»¥åå ¶ä¸çº§èç¹ //3. éè¿æ°æ®è¦å¯¼å ¥çåç±»å»æ¥æ¾å¯¹åºçç¼ç è§å //4. æ°æ®åå¨åæ¹éç³è¯·ä¸æ ·ï¼ //5. éè¦åç¬å¤çä¼ä¸ç¼ç çå å®¹ï¼ // 5.1 ä¼ä¸ç¼ç å¨å½åexceléä¸è½éå¤ // 5.2 ä¼ä¸ç¼ç å¨ç³»ç»ä¸ä¸è½éå¤ï¼å¯ä»¥æ¯å·²ç»åæ¶çï¼ // 5.3 ä¼ä¸ç¼ç çé¿åº¦ï¼åç¼ç è§åçé¿åº¦è¦å¯¹åºä¸ // 5.4 è·åæµæ°´ç 段çå¼ï¼å»é¤å¡«å çå符ï¼çæµæ°´å·æ¯å¤å°ï¼ç¶åå°æµæ°´å·åç°å¨çæå¤§æµæ°´å·å¤æï¼å°äºå°±ç´æ¥å½å ¥ï¼å¤§äºåä¿®æ¹æå¤§æµæ°´å· // 5.5 åå¨ä¼ä¸ç¼ç å°allcodeä¸ //æ¥è¯¢åç±»åæ¨¡æ¿ CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid); //å æ¾å°æ¯ä¸è¡çæ é¢ï¼ç¶åæ ¹æ®æ 颿¥è·å对åºç屿§ SheetDataSet dataSet = sheetDataSetList.get(i); List<SheetRowData> rowDataList = dataSet.getRowData(); //æ¾ç¬¬ä¸è¡ï¼ä¸ºäºæ¾æ é¢ CodeClassifyTemplateVO templateVO = new CodeClassifyTemplateVO(); /** if (!templateService.checkChildHasSameTemplate(classifyFullInfo.getCurrentClassifyVO().getOid())) { throw new VciBaseException("å½åçå类以åä¸çº§åç±»çæ¨¡æ¿ä¸ç¸å"); }***/ //é½è½¬æ¢å®äºãéè¦æ¹éæ£æ¥ //æ¾ææçå类路å¾,éè¦æ ¡éªè·¯å¾æ¯å¦æ£ç¡®ï¼æ¯å¦é½å¨å½åçåç±»çä¸çº§ List<CodeClassifyVO> childClassifyVOs = classifyService.listChildrenClassify(codeClassifyOid, true, classifyAttr, true); Map<String/**è·¯å¾**/, CodeClassifyVO> pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t)); List<String> titleRowData = dataSet.getColName(); Map<String, String> errorMap = new ConcurrentHashMap<>(); pathMap.put("#current#",classifyFullInfo.getCurrentClassifyVO()); try { List<CodeClassifyTemplateVO> templateVOList= checkSamesTemplate(titleRowData,sheetDataSetList,i,pathMap,errorMap); templateVO= templateVOList.get(0); }catch (Throwable e){ throw new VciBaseException(e.getMessage()); } List<SheetRowData> needowDataList = rowDataList.stream().filter(cbo -> { String rowIndex = cbo.getRowIndex(); return !errorMap.containsKey(rowIndex); }).collect(Collectors.toList()); //checkTemplateSync(sheetDataSetList, templateVO,i); //è¿éä¸é¤å»é»è®¤ç屿§ List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes(); Map<Integer/**åå·**/, String/**åæ®µçåç§°**/> fieldIndexMap = new HashMap<>(); Map<String/**䏿åç§°**/, String/**è±æåç§°**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId())); String idFieldName = attrVOS.stream().filter(s -> VciQueryWrapperForDO.ID_FIELD.equalsIgnoreCase(s.getId())).findFirst().orElseGet(() -> new CodeClassifyTemplateAttrVO()).getName(); getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap); //å ä¸ç¨ç®¡å±æ§æ¯å¦é½åå¨ï¼å 转æ¢ä¸ä¸æ°æ® List<ClientBusinessObject> cboList = new ArrayList<>(); String fullPath = getFullPath(classifyFullInfo); //æä»¬éè¦è·åå°ææçä¸çº§åç±»çoidçè·¯å¾ï¼å 为åé¢éè¦ Map<String/**主é®**/, String/**è·¯å¾**/> childOidPathMap = getChildClassifyPathMap(classifyFullInfo, fullPath); excelToCbo(classifyFullInfo, fieldIndexMap, needowDataList, templateVO, cboList, fullPath, false); Map<String/**主é®**/, CodeClassifyVO> classifyVOMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); classifyVOMap.put(classifyFullInfo.getCurrentClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO()); pathMap.put("#current#", classifyFullInfo.getCurrentClassifyVO()); //夿ç¼å·å¨exceléæ¬èº«å°±éå¤ç Map<String, Long> idCountMap = cboList.stream().collect(Collectors.groupingBy(ClientBusinessObject::getId, Collectors.counting())); List<String> repeatIdList = new ArrayList<>(); idCountMap.forEach((id, count) -> { if (count > 1) { repeatIdList.add(id); } }); if (!CollectionUtils.isEmpty(repeatIdList)) { cboList.stream().filter(s -> repeatIdList.contains(s.getId())).map(s -> s.getAttributeValue(IMPORT_ROW_INDEX)).forEach(rowIndex -> { errorMap.put(rowIndex, "ç¼å·å¨å½åexcelä¸éå¤;"); }); } //æä»¬éè¦å¤æè¿äºåç±»çæ¨¡æ¿æ¯ä¸æ¯ä¸æ ·çï¼åªéè¦æ ¡éªï¼ä¸ç¨è·å //æ£æ¥åç±»çè·¯å¾ checkClassifyPathInHistory(cboList, errorMap, pathMap, childOidPathMap); //æ£æ¥è§å Map<String/**å类主é®**/, String/**è§å主é®**/> ruleOidMap = new ConcurrentHashMap<String, String>(); List<String> unExistRuleClassifyOidList = new CopyOnWriteArrayList<>(); checkRuleOidInHistory(classifyVOMap, ruleOidMap, unExistRuleClassifyOidList); //妿åºéäºï¼æä»¬ä¾ç¶æ§è¡ææçæ°æ®ï¼æ æçæ°æ®ååå°excelä¸ //æä»¬æ ¹æ®åºéçåç±»ç主é®ï¼å»æ¾è¡å· if (!CollectionUtils.isEmpty(unExistRuleClassifyOidList)) { cboList.stream().forEach(cbo -> { if (unExistRuleClassifyOidList.contains(cbo.getAttributeValue(CODE_CLASSIFY_OID_FIELD))) { String row_index = cbo.getAttributeValue(IMPORT_ROW_INDEX); errorMap.put(row_index, errorMap.getOrDefault(row_index, "") + ";æ ¹æ®å类路å¾å¯¹åºçåç±»ï¼æ²¡æè®¾ç½®ç¼ç è§å"); } }); } //å¤æå¿ è¾é¡¹ batchCheckRequiredAttrOnOrder(templateVO, cboList, errorMap); //æéæ ¡éªç¼ç æ¯å¦åå¨ batchCheckIdExistOnOrder(templateVO, cboList, errorMap); //boolean reSwitchBooleanAttrOnOrder(attrVOS, cboList); // æä¸¾çå 容éè¦æ ¹æ®å称转æ¢ä¸ºæä¸¾çå¼ batchSwitchEnumAttrOnOrder(attrVOS, cboList, errorMap); batchSwitchReferAttrOnOrder(attrVOS, cboList, errorMap); //6.å¤çåç±»æ³¨å ¥ batchSwitchClassifyAttrOnOrder(attrVOS, cboList, classifyFullInfo,true); //设置é»è®¤å¼ batchSwitchAttrDefault(attrVOS, cboList); //7.å¤çç»åè§å batchSwitchComponentAttrOnOrder(attrVOS, cboList); //3.å¤æå ³é®å±æ§ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList); Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList(); Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if (!CollectionUtils.isEmpty(selfRepeatRowIndexList)) { selfRepeatRowIndexList.stream().forEach(rowIndex -> { errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";å¨å½åexcelæä»¶ä¸å ³é®å±æ§éå¤"); }); } if (!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)) { keyAttrRepeatRowIndexList.stream().forEach(rowIndex -> { errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";å ³é®å±æ§ä¸ç³»ç»ä¸çéå¤"); }); } //4.æ ¡éªè§å batchCheckVerifyOnOrder(attrVOS, cboList, errorMap); //6.æ¶é´çï¼å¿ é¡»ç»ä¸ä¸ºyyyy-MM-dd HH:mm:ss batchSwitchDateAttrOnOrder(attrVOS, cboList, errorMap); if (CollectionUtils.isEmpty(ruleOidMap.values())) { throw new VciBaseException("å¯¼å ¥çæ°æ®æéæ©çåç±»é½æ²¡æè®¾ç½®ç¼ç è§å"); } Map<String, CodeRuleVO> ruleVOMap = ruleService.listCodeRuleByIds(ruleOidMap.values(), true).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); //æ ¡éªç¼ç è§ååç æ®µæ¯å¦æ£ç¡® Map<String, List<String>> ruleRowIndexMap = new ConcurrentHashMap<>(); checkSecLengthInHistory(cboList, classifyVOMap, ruleVOMap, ruleOidMap, errorMap, ruleRowIndexMap); ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> { List<String> rowIndexList = ruleRowIndexMap.get(ruleOid); List<ClientBusinessObject> thisCbos = cboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList()); //æä»¬éè¦å æ¥è¯¢ä¸ä¸ï¼å 容æ¯å¦å·²ç»åå¨ if(!CollectionUtils.isEmpty(thisCbos)){ List<String> existIds = new ArrayList<>(); VciBaseUtil.switchCollectionForOracleIn(thisCbos).stream().forEach(cbos -> { List<CodeAllCode> codeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCodeRuleOid, ruleOid) .notIn(CodeAllCode::getId,cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])) .notIn(CodeAllCode::getLcStatus,CodeAllCodeLC.TASK_BACK.getValue() + "','" + CodeAllCodeLC.OBSOLETED.getValue()) ); existIds.addAll(Optional.ofNullable(codeAllCodeList).orElseGet(() -> new ArrayList<>()).stream().map(s -> { String id = s.getId(); if (StringUtils.isBlank(id)) { id = s.getId(); } return id; }).collect(Collectors.toList())); }); List<String> existIdCbos = thisCbos.stream().filter(s -> { String id = s.getId(); if (StringUtils.isBlank(id)) { id = s.getAttributeValue("id"); } return existIds.contains(id); }).map(s -> s.getAttributeValue(IMPORT_ROW_INDEX)).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(existIdCbos)) { thisCbos = thisCbos.stream().filter(s -> { String id = s.getId(); if (StringUtils.isBlank(id)) { id = s.getAttributeValue("id"); } return !existIdCbos.contains(id); }).collect(Collectors.toList()); existIdCbos.stream().forEach(rowIndex -> { errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";ã" + idFieldName + "ãå¨ç³»ç»ä¸å·²ç»è¢«å ç¨"); }); } } }); Map<String, ClientBusinessObject> rowIndexCboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getAttributeValue((IMPORT_ROW_INDEX)), t -> t)); if (errorMap.size() > 0) { isExport=true; createRedisDatas(uuid + "-error", templateVO, rowIndexCboMap, dataSet, fieldIndexMap, errorMap, false); } createWriteExcelData(rowDataList, errorMap, new ArrayList<>(), titleRowData, shetNameMap, templateVO); List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); return !errorMap.containsKey(rowIndex); }).collect(Collectors.toList()); //ç¸ä¼¼æ ¡éª Map<String, String> resembleMap = new HashMap<>(); List<DataResembleVO> dataResembleVOS = new ArrayList<>(); String btmtypeid = classifyFullInfo.getTopClassifyVO().getBtmtypeid(); bathcResembleQuery(templateVO.getCodeclassifyoid(), templateVO, needSaveCboList, resembleMap, btmtypeid, dataResembleVOS); if (resembleMap.size() > 0) { if (!CollectionUtils.isEmpty(dataResembleVOS)) { bladeRedis.set(uuid + "-resemble-data", dataResembleVOS); createRedisDatas(uuid + "-resemble", templateVO, rowIndexCboMap, dataSet, fieldIndexMap, resembleMap, false); } } //çæclassç¼å Map<String, String> rowIndexClsOidMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getAttributeValue((IMPORT_ROW_INDEX)), t -> t.getAttributeValue(CODE_CLASSIFY_OID_FIELD))); createRedisByCodeClassify(uuid + "-class",templateVO,dataSet,fieldIndexMap,true); //è·åç¼ç ï¼æ¥è¯¢å¨ç³»ç»ä¸æ¯å¦è¢«å ¶ä»çå¼ç¨äº //æé¤é误çï¼å©ä¸æ£ç¡®ç Map<String, String> newErrorMap = new HashMap<>(); newErrorMap.putAll(resembleMap); newErrorMap.putAll(errorMap); //è¦æä»¥ä¸çé误ç齿åºåï¼åç»§ç»å¤çæ¶é´åç»åè§å needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); return !newErrorMap.containsKey(rowIndex); }).collect(Collectors.toList()); if((errorMap.size()>0&&needSaveCboList.size()>0)||resembleMap.size()>0){ isCreateUUid=true; } List<String> needRowIndexList = needSaveCboList.stream().filter(s -> errorMap.containsKey(s.getAttributeValue(IMPORT_ROW_INDEX))).map(s -> s.getAttributeValue(IMPORT_ROW_INDEX)).collect(Collectors.toList()); if (isExport||newErrorMap.size() > 0) { createRedisDatas(uuid + "-ok", templateVO, rowIndexCboMap, dataSet, fieldIndexMap, newErrorMap, true); } else { List<String> dataCBOIdList=new ArrayList<>(); //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList; CodeClassifyTemplateVO finalTemplateVO = templateVO; ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> { //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); List<String> rowIndexList = ruleRowIndexMap.get(ruleOid); List<ClientBusinessObject> thisCbos = finalNeedSaveCboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList()); List<BaseModel> dataCBOList=new ArrayList<>(); thisCbos.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); dataCBOIdList.add(baseModel.getOid()); }); if (!CollectionUtils.isEmpty(thisCbos)) { try { productCodeService.productCodeAndSaveData(classifyFullInfo, finalTemplateVO, ruleVOMap.get(ruleOid), null, dataCBOList); } catch (Throwable e) { log.error("æ¹é产çç¼ç çæ¶ååºéäº", e); thisCbos.stream().forEach(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";ç³»ç»é误ï¼å卿°æ®çæ¶ååºéäº"); }); } } }); engineService.batchSaveSelectChar(templateVO, dataCBOIdList); } } String excelFileName=""; if(isExport&&!CollectionUtils.isEmpty(shetNameMap)) { excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + "é误信æ¯.xls"; WriteExcelOption eo = new WriteExcelOption(); shetNameMap.forEach((shetName, errorDataList) -> { eo.addSheetDataList(shetName, errorDataList); }); try { new File(excelFileName).createNewFile(); } catch (IOException e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e)); } ExcelUtil.writeDataToFile(excelFileName, eo); } CodeImProtRusultVO codeImProtRusultVO=new CodeImProtRusultVO(); if(StringUtils.isNotBlank(excelFileName)) { codeImProtRusultVO.setFilePath(excelFileName); codeImProtRusultVO.setFileOid(""); } if(isCreateUUid){ codeImProtRusultVO.setRedisUuid(uuid); } return codeImProtRusultVO; } /*** * ä»execléæå»ºå¯¹è±¡ * @param rowDataList * @param errorMap * @param needRowIndexList * @param titleRowData * @param shetNameMap * @param templateVO */ private void createWriteExcelData(Collection<SheetRowData> rowDataList, Map<String,String> errorMap, List<String> needRowIndexList, List<String> titleRowData, Map<String,List<WriteExcelData>> shetNameMap, CodeClassifyTemplateVO templateVO){ List<WriteExcelData> errorDataList=new ArrayList<>(); Map<String, SheetRowData> rowIndexDataMap = rowDataList.stream().filter(s -> !needRowIndexList.contains(s.getRowIndex())).collect(Collectors.toMap(s -> s.getRowIndex(), t -> t)); errorDataList.add(new WriteExcelData(0,0,"é误信æ¯")); for (int i = 0; i < titleRowData.size(); i++) { //é误信æ¯å¨æå errorDataList.add(new WriteExcelData(0,i+1,titleRowData.get(i))); } Integer[] newRowIndex = new Integer[]{1}; errorMap.forEach((index,error)->{ //é误信æ¯å ¨é¨ç»åå°ä¸èµ· SheetRowData rowData = rowIndexDataMap.getOrDefault(index, null); if(rowData!=null){ errorDataList.add(new WriteExcelData(newRowIndex[0],0,error)); rowData.getData().forEach((colIndex,value)->{ errorDataList.add(new WriteExcelData(newRowIndex[0],colIndex+1,value)); }); newRowIndex[0]++; } }); shetNameMap.put(templateVO.getName(),errorDataList); } /*** * * @param currentTemplateVO * @param templateColumnVOMap */ private void createTemplate(CodeClassifyTemplateVO currentTemplateVO,Map<String,List<ColumnVO>>templateColumnVOMap){ List<CodeClassifyTemplateAttrVO> templateAttrVOS = currentTemplateVO.getAttributes().stream().filter(s -> !DEFAULT_ATTR_LIST.contains(s.getId()) && StringUtils.isBlank(s.getComponentRule()) && StringUtils.isBlank(s.getClassifyInvokeAttr()) && (VciBaseUtil.getBoolean(s.getFormDisplayFlag())) ).collect(Collectors.toList()); if(CollectionUtils.isEmpty(templateAttrVOS)){ throw new VciBaseException("æ¨¡æ¿æ²¡æé 置任ä½ãè¡¨åæ¾ç¤ºãä¸ºãæ¯ãç屿§"); } List<ColumnVO> columnVOList=new ArrayList<>(); ColumnVO errorMsgColumnVO=new ColumnVO(); errorMsgColumnVO.setTitle("é误信æ¯"); errorMsgColumnVO.setField("errorMsg"); columnVOList.add(errorMsgColumnVO); ColumnVO pathColumnVO=new ColumnVO(); pathColumnVO.setTitle("å类路å¾"); pathColumnVO.setField("codeclsfid"); columnVOList.add(pathColumnVO); templateAttrVOS.stream().forEach(codetemplateAttr ->{ String field=codetemplateAttr.getId(); String name=codetemplateAttr.getName(); ColumnVO columnVO=new ColumnVO(); columnVO.setTitle(name); columnVO.setField(field); columnVO.setWidth(codetemplateAttr.getAttrTableWidth()==0?columnVO.getWidth():codetemplateAttr.getAttrTableWidth()); columnVOList.add(columnVO); }); templateColumnVOMap.put(currentTemplateVO.getOid(),columnVOList); log.info("模æ¿"+currentTemplateVO.getName()+"对åºç屿§"+columnVOList.size()); } /** * é误信æ¯è¿åexcel * @param rowDataList ææçå¯¼å ¥æ°æ® @@ -492,23 +1318,23 @@ uuid=""; //è¦æä»¥ä¸çé误ç齿åºåï¼åç»§ç»å¤çæ¶é´åç»åè§å /*dataCBOList = cboList.stream().filter(cbo -> { needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); return !newErrorMap.containsKey(rowIndex); }).collect(Collectors.toList()); */ List<String> dataCBOIdList=new ArrayList<>(); List<BaseModel> dataCBOList=new ArrayList<>(); cboList.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); dataCBOIdList.add(baseModel.getOid()); }); if (!CollectionUtils.isEmpty(needSaveCboList)) { //9.æä»¬å¤çä¸å¡æ°æ® //çæç¼ç çå 容 List<String> dataCBOIdList=new ArrayList<>(); List<BaseModel> dataCBOList=new ArrayList<>(); cboList.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); dataCBOIdList.add(baseModel.getOid()); }); try { codeList = productCodeService.productCodeAndSaveData(classifyFullInfo,templateVO,ruleVO, orderDTO.getSecDTOList(),dataCBOList); //妿æ¯ç¼ç çæå¤±è´¥ï¼åç´æ¥å°±å¤±è´¥äºï¼å ¶ä»çå¤æåºæ¥æé误çæä»¬é½ç»ä¸è¿åå°exceléé¢ @@ -599,6 +1425,161 @@ return dataGrid; } @Override public R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot) { List<String> allNeedSaveCboList=new ArrayList<>(); codeImprotSaveDatVOList.stream().forEach(codeImprotSaveDatVO -> { List<SheetRowData> rowDataList = new ArrayList<>(); List<ClientBusinessObject>cboList=new ArrayList<>(); List<String> colList=codeImprotSaveDatVO.getClos(); CodeOrderDTO orderDTO= codeImprotSaveDatVO.getOrderDTO(); List<Map<String, String>> dataList= codeImprotSaveDatVO.getDataList(); Map<Integer, String> fieldIndexMap = new HashMap(); for (int i=0;i<dataList.size();i++){ SheetRowData sheetRowData=new SheetRowData(); Map<String,String> dataMap= dataList.get(i); Map<Integer, String> data = new HashMap(); final int[] colIndex = {0}; Map<Integer, String> finalFieldIndexMap = new HashMap<>(); dataMap.forEach((field, value)->{ if(!ROW_INDEX.equalsIgnoreCase(field) && !ERROR_MSG.equalsIgnoreCase(field)){ data.put(colIndex[0],value); finalFieldIndexMap.put(colIndex[0]++,field); } }); fieldIndexMap=finalFieldIndexMap; sheetRowData.setData(data); sheetRowData.setRowIndex(i+""); rowDataList.add(sheetRowData); } CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); log.info("åç±»ï¼"+classifyFullInfo.getCurrentClassifyVO().getName()+"æ°æ®:"+codeImprotSaveDatVO.getDataList().size()); // CodeClassifyTemplateVO codeClassifyTemplateVO= engineService.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid()); CodeClassifyTemplateVO codeClassifyTemplateVO= templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); //è§åç主é®éè¦å»è·å CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); //é¤å»é»è®¤ç屿§.è¿æåªæè¡¨åæ¾ç¤ºçåæ®µæå¯¼å ¥ List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes().stream().filter(s -> !DEFAULT_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); String fullPath = getFullPath(classifyFullInfo); excelToCbo(classifyFullInfo,fieldIndexMap,rowDataList, codeClassifyTemplateVO,cboList,fullPath,!isImprot); Map<String,String> errorMap=new HashMap<>(); if(isImprot) { Map<String/**主é®**/, String/**è·¯å¾**/> childOidPathMap = getChildClassifyPathMap(classifyFullInfo, fullPath); //é½è½¬æ¢å®äºãéè¦æ¹éæ£æ¥ //æ¾ææçå类路å¾,éè¦æ ¡éªè·¯å¾æ¯å¦æ£ç¡®ï¼æ¯å¦é½å¨å½åçåç±»çä¸çº§ List<CodeClassifyVO> childClassifyVOs = classifyService.listChildrenClassify(orderDTO.getCodeClassifyOid(), true, classifyAttr, true); Map<String/**è·¯å¾**/, CodeClassifyVO> pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t)); Map<String/**主é®**/, CodeClassifyVO> classifyVOMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); classifyVOMap.put(classifyFullInfo.getCurrentClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO()); pathMap.put("#current#", classifyFullInfo.getCurrentClassifyVO()); //æä»¬éè¦å¤æè¿äºåç±»çæ¨¡æ¿æ¯ä¸æ¯ä¸æ ·çï¼åªéè¦æ ¡éªï¼ä¸ç¨è·å //æ£æ¥åç±»çè·¯å¾ checkClassifyPathInHistory(cboList, errorMap, pathMap, childOidPathMap); } //åç±»æ³¨å ¥ batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,isImprot); //boolean reSwitchBooleanAttrOnOrder(attrVOS,cboList); //4.æ ¡éªè§å batchCheckVerifyOnOrder(attrVOS, cboList,errorMap); //5.æ ¡éªæä¸¾æ¯å¦æ£ç¡® batchSwitchEnumAttrOnOrder(attrVOS, cboList, errorMap); //7.å¤çåç §çæ åµ batchSwitchReferAttrOnOrder(attrVOS,cboList,errorMap); //6.æ¶é´æ ¼å¼çéªè¯ //6.æ¶é´çï¼å¿ é¡»ç»ä¸ä¸ºyyyy-MM-dd HH:mm:ss batchSwitchDateAttrOnOrder(attrVOS,cboList,errorMap); //设置é»è®¤å¼ batchSwitchAttrDefault(attrVOS, cboList); //æåå¼ç»åè§å batchSwitchComponentAttrOnOrder(attrVOS,cboList); //3.å¤æå ³é®å±æ§ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, codeClassifyTemplateVO, cboList); Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList(); Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){ keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";å ³é®å±æ§ä¸ç³»ç»ä¸çéå¤" ); }); } //4.æ ¡éªè§å batchCheckVerifyOnOrder(attrVOS, cboList,errorMap); //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); List<ClientBusinessObject>needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); return !errorMap.containsKey(rowIndex); }).collect(Collectors.toList()); log.info("åç±»ï¼"+classifyFullInfo.getCurrentClassifyVO().getName()+"æ°æ®:"+needSaveCboList.size()); if (!CollectionUtils.isEmpty(needSaveCboList)) { List<BaseModel> dataCBOList=new ArrayList<>(); needSaveCboList.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); allNeedSaveCboList.add(baseModel.getOid()); }); try { //9.æä»¬å¤çä¸å¡æ°æ® if (isImprot) { productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, null, dataCBOList); }else { productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); } } catch (Exception e) { e.printStackTrace(); } } //妿æ¯ç¼ç çæå¤±è´¥ï¼åç´æ¥å°±å¤±è´¥äºï¼å ¶ä»çå¤æåºæ¥æé误çæä»¬é½ç»ä¸è¿åå°exceléé¢ engineService.batchSaveSelectChar(codeClassifyTemplateVO, allNeedSaveCboList); }); return R.success(isImprot?"æ¹éåå²å¯¼å ¥æå":"æ¹éç³è¯·æå"); } /*** *æ ¹æ®æ°æ®oidä»ç¼åä¸ç§»é¤æ°æ® * @param redisOid redisid * @param codeClssifyOid åå¨è§åçoid * @param dataOids æéå é¤çæ°æ® * @return */ @Override public R deleteDatas(String redisOid,String codeClssifyOid,String dataOids) { VciBaseUtil.alertNotNull(redisOid, "æ°æ®å é¤", redisOid, "æ°æ®ç¼å主é®"); VciBaseUtil.alertNotNull(codeClssifyOid, "æ°æ®å é¤", codeClssifyOid, "ç¼ç è§åç¼å主é®"); VciBaseUtil.alertNotNull(dataOids, "æ°æ®å é¤", dataOids, "æéå é¤çæ°æ®ä¸»é®"); try { List<CodeImprotDataVO> codeImprotDataVOs = bladeRedis.lRange(redisOid + "-" + codeClssifyOid,0,-1); List<String> dataOidList = new ArrayList<>(); codeImprotDataVOs.stream().forEach(codeImprotDataVO -> { List<Map<String, String>> newDataList = new ArrayList<>(); List<Map<String, String>> dataList = codeImprotDataVO.getDatas(); dataList.stream().forEach(dataMap -> { String oid = dataMap.get("oid"); if (!dataOidList.contains(oid)) { newDataList.add(dataMap); } }); codeImprotDataVO.setDatas(newDataList); }); //éæ°ç¼å bladeRedis.del(redisOid + "-" + codeClssifyOid); bladeRedis.set(redisOid + "-" + codeClssifyOid, codeImprotDataVOs); bladeRedis.expire(redisOid + "-" + codeClssifyOid, BATCHADD_REDIS_TIME); return R.success("å é¤ç¼åæ°æ®æå"); }catch (Throwable e){ return R.fail("å é¤ç¼åæ°æ®å¤±è´¥!"); } } /** * éææ¹éç³è¯·æ°æ® * @param orderDTO åç±»çä¸»é® @@ -642,7 +1623,7 @@ if(!CollectionUtils.isEmpty(unExistAttrVOs)){ throw new VciBaseException("ã" + unExistAttrVOs.stream().map(CodeClassifyTemplateAttrVO::getName) + "ãè¿äºå±æ§å¨excel䏿²¡ææ¾å°"); } List<ClientBusinessObject> cboList = new ArrayList<>(); String fullPath = getFullPath(classifyFullInfo); // List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS=codeClassifyProcessTempService.listProcessTemplate(templateVO.getOid(),"code_cls_flow_use_order"); @@ -651,19 +1632,781 @@ /** if(!CollectionUtils.isEmpty(codeClassifyProcessTempVOS)){ isProcess=true; }***/ //List<ClientBusinessObject> cboList = new ArrayList<>(); //Map<String,String> codeOidToSystemOidMap=new HashMap<>();//åå¨ç¼ç æ°æ®åéæç³»ç»æ°æ®oidå¯¹ç §æ å° //excelToCbo(classifyFullInfo,titleRowData,fieldIndexMap,rowDataList,templateVO,cboList,fullPath,isProcess,"create",errorMap,codeOidToSystemOidMap); Map<String,String> codeOidToSystemOidMap=new HashMap<>();//åå¨ç¼ç æ°æ®åéæç³»ç»æ°æ®oidå¯¹ç §æ å° excelToCbo(classifyFullInfo,titleRowData,fieldIndexMap,rowDataList,templateVO,cboList,fullPath,isProcess,"create",errorMap,codeOidToSystemOidMap); //é½è½¬æ¢å®äºãéè¦æ¹éæ£æ¥ //妿åºéäºï¼æä»¬ä¾ç¶æ§è¡ææçæ°æ®ï¼æ æçæ°æ®ååå°excelä¸ //2.å¤æå¿ è¾é¡¹ããéè¦å ¨é¨ç屿§ï¼å¦ææ¯å¿ è¾ï¼ä½æ¯è¡¨åéé¢ä¸æ¾ç¤ºçï¼åªè½æ¯åç±»æ³¨å ¥æè ç»åè§å batchCheckRequiredAttrOnOrder(templateVO,cboList,errorMap); /** * å ³é®çæé误æç¤º */ Map<String,String> errorKeyMap=new HashMap<>(); //3.å¤æå ³é®å±æ§ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList); Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList(); Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList(); if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){ selfRepeatRowIndexList.stream().forEach(rowIndex->{ /* //ä¼ å ¥æ°æ®ä¹é´å ³é®å±æ§çæ ¡éª RowDatas rowData= rowDataMap.get(rowIndex); XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(""); resultDataObjectDetailDO.setId(rowData.getOid()); resultDataObjectDetailDO.setErrorid("1"); resultDataObjectDetailDO.setMsg(errorMap.getOrDefault(rowIndex,"") + ";å ³é®å±æ§éå¤"); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); */ errorKeyMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";ä¼ å ¥çæ°æ®ä¸å ³é®å±æ§éå¤"); }); } /**** * å ³é®å±æ§ä¸ç³»ç»ä¸éå¤ç夿 */ if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){ keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{ //ä¼ å ¥æ°æ®ä¹é´å ³é®å±æ§çæ ¡éª /* RowDatas rowData= rowDataMap.get(rowIndex); XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(""); resultDataObjectDetailDO.setId(rowData.getOid()); resultDataObjectDetailDO.setErrorid("1"); resultDataObjectDetailDO.setMsg(errorMap.getOrDefault(rowIndex,"") + ";å ³é®å±æ§ä¸ç³»ç»ä¸çéå¤" ); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); */ errorKeyMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";å ³é®å±æ§ä¸ç³»ç»ä¸çéå¤" ); }); } //åç±»æ³¨å ¥ batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,false); //boolean reSwitchBooleanAttrOnOrder(attrVOS,cboList); // cboList.stream().forEach(cbo->{ //4.æ ¡éªè§å batchCheckVerifyOnOrder(attrVOS, cboList,errorMap); //5.æ ¡éªæä¸¾æ¯å¦æ£ç¡® batchSwitchEnumAttrOnOrder(attrVOS,cboList,errorMap); //6.æ¶é´æ ¼å¼çéªè¯ //6.æ¶é´çï¼å¿ é¡»ç»ä¸ä¸ºyyyy-MM-dd HH:mm:ss batchSwitchDateAttrOnOrder(attrVOS,cboList,errorMap); //7.å¤çåç §çæ åµ batchSwitchReferAttrOnOrder(attrVOS,cboList,errorMap); //æ ¡éªå±æ§æ¯å¦æ£ç¡®éè¯¯ä¿¡æ¯ if(errorMap.size()>0){ String[] newMsg = {""}; cboList.stream().forEach(cbo -> { String rowIndex =cbo.getAttributeValue(IMPORT_ROW_INDEX); if(errorMap.containsKey(rowIndex)){ String oid=cbo.getOid(); String sourceOid=oid; if(codeOidToSystemOidMap.containsKey(oid)){ sourceOid=codeOidToSystemOidMap.get(oid); } String code=""; String errorid="103"; String mes=errorMap.get(rowIndex); XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(code); resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid(errorid); resultDataObjectDetailDO.setMsg(mes); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); } }); } Map<String,String> newKeyMap=new HashedMap(); if(errorKeyMap.size()>0 ) { errorKeyMap.keySet().forEach(key->{ if(!errorMap.containsKey(key)){ newKeyMap.put(key,errorKeyMap.get(key)); } }); if(newKeyMap.size()>0) { List<BaseModel> editBoList = new ArrayList<>(); Map<String, List<BaseModel>> indexTodataMap = keyResultVO.getIndexTODataMap(); cboList.stream().forEach(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); if (indexTodataMap.containsKey(rowIndex)) { String oid = cbo.getOid(); String sourceOid = oid; String code = ""; String errorid = "201"; if(codeOidToSystemOidMap.containsKey(oid)){ sourceOid=codeOidToSystemOidMap.get(oid); } List<BaseModel> newCboList = indexTodataMap.get(rowIndex); if (!CollectionUtils.isEmpty(newCboList)) { BaseModel newCbo= newCboList.get(0); String lcstatus =newCbo.getLcStatus(); String newOid =newCbo.getOid(); Date ts =newCbo.getTs(); code=newCbo.getId(); String lastmodifier=newCbo.getLastModifier(); if (!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) { newCbo.setOid(newOid); newCbo.setLastModifier(lastmodifier); newCbo.setId(code); newCbo.setTs(ts); cbo.setLastModifier(cbo.getLastModifier()); editBoList.add(newCbo); } String mes = errorKeyMap.get(rowIndex); XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(code); resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid(errorid); resultDataObjectDetailDO.setMsg(mes); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); } } }); //å ³é®çææ´æ¹ if (!CollectionUtils.isEmpty(editBoList)) { engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),editBoList);//ä¿åæ°æ® } errorMap.putAll(errorKeyMap); } } // }); //设置é»è®¤å¼ batchSwitchAttrDefault(attrVOS, cboList); //æåå¼ç»åè§å batchSwitchComponentAttrOnOrder(attrVOS,cboList); //è¦æä»¥ä¸çé误ç齿åºåï¼åç»§ç»å¤çæ¶é´åç»åè§å List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex =cbo.getAttributeValue(IMPORT_ROW_INDEX); return !errorMap.containsKey(rowIndex); }).collect(Collectors.toList()); List<String> needRowIndexList = new ArrayList<>(); if(!CollectionUtils.isEmpty(needSaveCboList)) { //9.æä»¬å¤çä¸å¡æ°æ® //çæç¼ç çå 容 List<String>allNeedSaveCboList=new ArrayList<>(); List<BaseModel> dataCBOList=new ArrayList<>(); needSaveCboList.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); dataCBOList.add(baseModel); allNeedSaveCboList.add(baseModel.getOid()); }); try { productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); //妿æ¯ç¼ç çæå¤±è´¥ï¼åç´æ¥å°±å¤±è´¥äºï¼å ¶ä»çå¤æåºæ¥æé误çæä»¬é½ç»ä¸è¿åå°exceléé¢ engineService.batchSaveSelectChar(templateVO, allNeedSaveCboList); // if(!isProcess){ needSaveCboList.stream().forEach(needSaveCbo->{ XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(needSaveCbo.getId()); String oid=needSaveCbo.getOid(); String sourceOid=oid; if(codeOidToSystemOidMap.containsKey(oid)){ sourceOid=codeOidToSystemOidMap.get(oid); } resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid("0"); resultDataObjectDetailDO.setMsg("ç³è¯·ç¼ç æå"); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); }); /* }else{ needSaveCboList.stream().forEach(needSaveCbo->{ XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); // resultDataObjectDetailDO.setCode(needSaveCbo.getId());//ä¸ç¨è¿åç¼ç String oid=needSaveCbo.getOid(); String sourceOid=oid; if(codeOidToSystemOidMap.containsKey(oid)){ sourceOid=codeOidToSystemOidMap.get(oid); } resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid("204"); resultDataObjectDetailDO.setMsg("ç³è¯·ç¼ç æåï¼çå¾ ç¼ç ç³»ç»åå¸ï¼"); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); }); }*/ }catch (Throwable e){ e.printStackTrace(); needSaveCboList.stream().forEach(needSaveCbo->{ XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(""); String oid=needSaveCbo.getOid(); String sourceOid=oid; if(codeOidToSystemOidMap.containsKey(oid)){ sourceOid=codeOidToSystemOidMap.get(oid); } resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid("1"); resultDataObjectDetailDO.setMsg("ä¿ååºç°é®é¢:"+e.getMessage()); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); }); } } } /*** * éææ¹éåæ¥æ´æ°æ¥å£ * @param codeClassifyVO; * @param dataObjectVO æ°æ®ä¿¡æ¯ * @param resultDataObjectDetailDOs éè¯¯ä¿¡æ¯ */ @Override public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) { String errorid=""; String msg=""; //æ¥è¯¢åç±»åæ¨¡æ¿ //å æ¾å°æ¯ä¸è¡çæ é¢ï¼ç¶åæ ¹æ®æ 颿¥è·å对åºç屿§ List<RowDatas> rowDataList = dataObjectVO.getRowData(); Map<String, RowDatas> rowDataMap = new LinkedHashMap<>(); Map<String, RowDatas> codeDataMap = new LinkedHashMap<>(); rowDataList.stream().forEach(rowData -> { rowDataMap.put(rowData.getRowIndex(), rowData); codeDataMap.put(rowData.getCode(), rowData); }); //æ¾ç¬¬ä¸è¡ï¼ä¸ºäºæ¾æ é¢ CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); // åºè¯¥é½æ¯ä¸ä¸ªåç±»ä¸çä¸å¡æ°æ®ï¼æ¾ç¬¬ä¸æ¡çå°±è¡ CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); //æ ¡éªæ¨¡æ¿æ¯ä¸æ¯ææ°ç //checkTemplateSync(sheetDataSetList,templateVO); //é¤å»é»è®¤ç屿§.è¿æåªæè¡¨åæ¾ç¤ºçåæ®µæå¯¼å ¥ List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); Map<Integer/**åå·**/, String/**åæ®µçåç§°**/> fieldIndexMap = new HashMap<>(); List<String> titleRowData = dataObjectVO.getColName(); Map<String/**䏿åç§°**/, String/**è±æåç§°**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId().toLowerCase(Locale.ROOT), (o1, o2) -> o2)); getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap); Map<String, String> cboOidMap = new HashMap<>(); cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")"); R<BtmTypeVO> r= btmTypeClient.getDetail(templateVO.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 "); sb.append(" id in ("); sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); sb.append(")"); List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString()); List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList); Map<String, ClientBusinessObject> codeSystemObjectMap = cboList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); Map<String, String> errorMap = new HashMap<>(); List<CodeOrderDTO> codeOrderDTOList = new ArrayList<>(); this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap); // List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS=codeClassifyProcessTempService.listProcessTemplate(templateVO.getOid(),"code_cls_flow_use_order"); boolean isProcess=false; /** if(!CollectionUtils.isEmpty(codeClassifyProcessTempVOS)){ isProcess=true; }**/ Map<String, CodeOrderDTO> orderDTOMap = codeOrderDTOList.stream().filter(orderDTO -> orderDTO != null && StringUtils.isNotBlank(orderDTO.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); List<BaseModel> updateList = new ArrayList<>(); List<CodeAllCode> codeAllCodeList = new ArrayList<>(); List<String> deleteList = new ArrayList<>(); CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid()); Map<String, ClientBusinessObject> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); // boolean finalIsProcess = isProcess; orderDTOMap.keySet().stream().forEach(code -> { CodeOrderDTO orderDTO = orderDTOMap.get(code); ClientBusinessObject cbo = cboMap.get(code); String dataStatus=cbo.getLcStatus(); RowDatas rowData=codeDataMap.get(code); String status=rowData.getStatus(); String operation=rowData.getOperation(); if (cbo.getTs().compareTo(orderDTO.getTs())==0?true:false) { // throw new VciBaseException("æ°æ®ä¸æ¯ææ°çï¼å¯è½ä»äººå·²ç»ä¿®æ¹ï¼è¯·å·æ°ååè¯"); errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";æ°æ®ä¸æ¯ææ°çï¼å¯è½ä»äººå·²ç»ä¿®æ¹ï¼è¯·å·æ°ååè¯"); } /* if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) { throw new VciBaseException("æ°æ®ä¸æ¯{0}çç¶æï¼ä¸å 许修æ¹", new String[]{CodeDefaultLC.EDITING.getText()}); }*/ if(operation.equals("update")) { //1. å¤æå¿ è¾é¡¹ checkRequiredAttrOnOrder(templateVO, orderDTO, errorMap); //2.å æ³¨å ¥ï¼åç»åï¼æåæ ¡éª switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO, errorMap); //3.å¤çç»åè§åãç»åè§åä¸è½ä½¿ç¨ç¼ç ç屿§ï¼å 为ç¼ç ççæå¯è½æ¯éè¦å±æ§ç switchComponentAttrOnOrder(templateVO, orderDTO); //4.æ ¡éªè§å checkVerifyOnOrder(templateVO, orderDTO, errorMap); //5.å¤æå ³é®å±æ§ checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO, errorMap); //6.æ ¡éªæä¸¾çå 容æ¯å¦æ£ç¡® checkEnumOnOrder(templateVO, orderDTO, errorMap); //7.å¤çæ¶é´æ ¼å¼ï¼å¨æ°æ®åºéé¢ä¸è®ºæ¯åç¬¦ä¸²è¿æ¯æ¥ææ ¼å¼ï¼é½ä½¿ç¨ç¸åçæ ¼å¼åå¨ switchDateAttrOnOrder(templateVO, orderDTO); //é»è®¤çå 容ä¸è½åï¼æä»¥åªéè¦æ·è´èªå®ä¹çç¸å ³å±æ§å³å¯ copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true, errorMap); //ä¼ä¸ç åéå¢ç çä¸ä¿®æ¹ cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); cbo.setName(orderDTO.getName()); try { cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription()); cbo.setAttributeValue("name", orderDTO.getName()); // if(finalIsProcess){//卿µç¨ä¸ä¸å è®¸æ´æ¹ // errorMap.put(code,errorMap.getOrDefault(code, errorMap.getOrDefault(code,"")+";æ°æ®"+code+"卿µç¨ä¸ï¼ä¸å è®¸æ´æ¹!")); // }else{ cbo.setLcStatus(status); cbo.setAttributeValue("lcstatus",status); // } } catch (VciBaseException e) { e.printStackTrace(); } List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { CodeAllCode codeCbo = codeAllCodeList.get(0); log.info("codeCbos code:" + codeCbo.getId()); codeCbo.setLcStatus(status); codeAllCodeList.add(codeCbo); } BaseModel baseModel=new BaseModel(); BeanUtil.convert(cbo,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(cbo)); updateList.add(baseModel); }else if(operation.equals("delete")){//妿卿µç¨ä¸ä¸å 许å é¤ï¼ä¸å¨æµç¨ä¸ç¶æä¸ºå叿è åç¨çæ°æ®ä¸å 许å é¤ï¼å°å ¶æ´æ¹ä¸ºåç¨ï¼å ¶ä»çæ åµç´æ¥å é¤ // if(finalIsProcess){ // errorMap.put(code,errorMap.getOrDefault(code, errorMap.getOrDefault(code,"")+";æ°æ®"+code+"卿µç¨ä¸ï¼ä¸å 许å é¤!")); //}else { try { log.info("oid:" + cbo.getOid()); List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); log.info("codeCbos size:" + newCodeAllCodeList.size()); if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { CodeAllCode codeCbo = codeAllCodeList.get(0); log.info("codeCbos code:" + codeCbo.getId()); codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); codeAllCodeList.add(codeCbo); } deleteList.add(cbo.getOid()); }catch (VciBaseException e) { e.printStackTrace(); } // } }else if(operation.equals("editstatus")){ try { // if (finalIsProcess) { // errorMap.put(code, errorMap.getOrDefault(code, errorMap.getOrDefault(code, "") + ";æ°æ®" + code + "卿µç¨ä¸ï¼ä¸å è®¸æ´æ¹ç¶æ!")); // } else { cbo.setLcStatus(status); cbo.setAttributeValue("lcstatus", status); // } List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { CodeAllCode codeCbo = codeAllCodeList.get(0); log.info("codeCbos code:" + codeCbo.getId()); codeCbo.setLcStatus(status); codeAllCodeList.add(codeCbo); } BaseModel baseModel=new BaseModel(); BeanUtil.convert(cbo,baseModel); baseModel.setData(VciBaseUtil.objectToMapString(cbo)); updateList.add(baseModel); }catch (VciBaseException e) { e.printStackTrace(); } } }); /** * é误信æ¯è¾åº */ if(errorMap.size()>0){ errorMap.keySet().forEach(code->{ if(codeDataMap.containsKey(code)){ RowDatas rowDatas= codeDataMap.get(code); String dataMsg=errorMap.get(code); String oid=rowDatas.getOid(); XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); xmlResultDataObjectDetailDO.setErrorid("103"); xmlResultDataObjectDetailDO.setMsg(dataMsg); xmlResultDataObjectDetailDO.setId(oid); xmlResultDataObjectDetailDO.setCode(code); resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); } }); }else { //å卿°æ® try { engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),updateList); codeAllCodeService.saveBatch(codeAllCodeList); if(deleteList.size()>0) { commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{}))); } errorid="0"; msg="æ´æ°/ç¶ææ´æ¹/å 餿åï¼"; }catch (Throwable e){ errorid="1"; msg="ä¿å失败ï¼"+e; }finally { String finalMsg = msg; String finalErrorid = errorid; cboList.stream().forEach(cbo->{ String code =cbo.getId(); if(codeDataMap.containsKey(code)) { RowDatas rowDatas=codeDataMap.get(code); String oid=rowDatas.getOid(); XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); xmlResultDataObjectDetailDO.setErrorid(finalErrorid); xmlResultDataObjectDetailDO.setMsg(finalMsg); xmlResultDataObjectDetailDO.setId(oid); xmlResultDataObjectDetailDO.setCode(code); resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); } }); } } } /** * æ ¡éªå±æ§æ¯å¦ä¸ºå¿ è¾ * * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ï¼éè¦å 嫿¨¡æ¿å±æ§ * @param orderDTO ç¼ç ç³è¯·çä¿¡æ¯ */ private void checkRequiredAttrOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO,Map<String,String> errorMap) { Map<String, CodeClassifyTemplateAttrVO> requiredAttrMap = templateVO.getAttributes().stream().filter( s -> VciBaseUtil.getBoolean(s.getRequireFlag()) && StringUtils.isBlank(s.getComponentRule()) && StringUtils.isBlank(s.getClassifyInvokeAttr())) .collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if (!CollectionUtils.isEmpty(requiredAttrMap)) { requiredAttrMap.forEach((attrId, attrVO) -> { //åªæä¼ä¸ç¼ç ï¼ç¶æï¼å¤æ³¨ï¼æ¨¡æ¿ä¸»é®ï¼å类主é®è¿å 个æ¯åºå®çï¼å ¶ä½é½æ¯èªè¡é ç½®ç if (StringUtils.isBlank(getValueFromOrderDTO(orderDTO, attrId))) { errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"") + ";屿§ã{"+attrVO.getName()+"}ãå¿ é¡»è¦è¾å ¥(éæ©)å 容" ); // throw new VciBaseException("屿§ã{0}ãå¿ é¡»è¦è¾å ¥(éæ©)å 容", new String[]{attrVO.getName()}); } }); } } /** * 转æ¢ç»åè§åçå¼ * * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ï¼éè¦å 嫿¨¡æ¿å±æ§ * @param orderDTO ç¼ç ç³è¯·çä¿¡æ¯ */ private void switchComponentAttrOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) { Map<String, CodeClassifyTemplateAttrVO> compAttrVOMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getComponentRule())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if (!CollectionUtils.isEmpty(compAttrVOMap)) { Map<String, String> dataMap = WebUtil.objectToMapString(orderDTO); Map<String, String> dataLowMap = new HashMap<>(); if (!CollectionUtils.isEmpty(dataMap)) { dataMap.forEach((key, value) -> { dataLowMap.put(key.toLowerCase(Locale.ROOT), value); }); } dataLowMap.putAll(orderDTO.getData()); compAttrVOMap.forEach((attrId, attrVO) -> { dataLowMap.put(attrId, formulaService.getValueByFormula(dataLowMap, attrVO.getComponentRule())); }); dataLowMap.forEach((key, value) -> { setValueToOrderDTO(orderDTO, key, value); }); } } /** * æ ¡éªæ£åè¡¨è¾¾å¼æ¯å¦æ£ç¡® * * @param templateVO 模æ¿çä¿¡æ¯ï¼å¿ é¡»å å«å±æ§çå 容 * @param orderDTO ç¼ç ç³è¯·çç¸å ³çä¿¡æ¯ */ private void checkVerifyOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO,Map<String,String> errorMap) { Map<String, CodeClassifyTemplateAttrVO> verifyAttrVOMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getVerifyRule())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if (!CollectionUtils.isEmpty(verifyAttrVOMap)) { verifyAttrVOMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (StringUtils.isNotBlank(value) && !value.matches(attrVO.getVerifyRule())) { errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";屿§["+attrVO.getName()+"]çå¼ä¸ç¬¦åæ ¡éªè§åçè¦æ±"); //æ ¡éªæ£åè¡¨è¾¾å¼ // throw new VciBaseException("屿§[{0}]çå¼ä¸ç¬¦åæ ¡éªè§åçè¦æ±", new String[]{attrVO.getName()}); } }); } } /** * æ ¡éªå ³é®å±æ§ * * @param classifyFullInfo åç±»çå ¨é¨ä¿¡æ¯ * @param templateVO 模æ¿çå 容ï¼å¿ é¡»å 嫿¨¡æ¿å±æ§ * @param orderDTO ç¼ç ç³è¯·çç¸å ³çä¿¡æ¯ */ private void checkKeyAttrOnOrder(CodeClassifyFullInfoBO classifyFullInfo, CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO,Map<String,String> errorMap) { //å è·åå ³é®å±æ§çè§åï¼ä¹å©ç¨ç»§æ¿çæ¹å¼ CodeKeyAttrRepeatVO keyRuleVO = keyRuleService.getRuleByClassifyFullInfo(classifyFullInfo); //注æçæ¯keyRuleVOå¯è½ä¸ºç©ºï¼è¡¨ç¤ºä¸ä½¿ç¨è§åæ§å¶ //è·åææçå ³é®å±æ§ Map<String, CodeClassifyTemplateAttrVO> ketAttrMap = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getKeyAttrFlag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); Map<String, String> conditionMap = new HashMap<>(); boolean trimAll = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag()); //å ¨é¨å»ç©ºçä¼å 级大äºå»ç©º boolean trim = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag()); boolean ignoreCase = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorecaseflag()); boolean ignoreWidth = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag()); ketAttrMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (value == null) { value = ""; } engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap); }); //没æéå¶åç±»ï¼ä½æ¯ä¸ä¸ªæ¨¡æ¿åªå¯è½å¨ä¸ä¸ªä¸å¡ç±»åéé¢ï¼æä»¥ç´æ¥æ¥è¯¢è¿ä¸ªä¸å¡ç±»åå³å¯ if (!CollectionUtils.isEmpty(conditionMap)) { final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " where 1 = 1 "}; conditionMap.forEach((key, value) -> { sql[0] += " and " + key + " = " + value; }); if (StringUtils.isNotBlank(orderDTO.getOid())) { //ä¿®æ¹çæ¶åï¼éè¦æé¤èªå·± sql[0] += " and oid != '" + orderDTO.getOid() + "'"; } else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) { sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'"; } sql[0] += " and islastR = '1' and islastV = '1' "; if (commonsMapper.queryCountBySql(sql[0]) > 0) { String ruleInfoMsg = keyRuleVO == null ? "" : "æ¥è¯¢è§åï¼å»é¤ç©ºæ ¼--{0},忽ç¥å¤§å°å--{1},忽ç¥å ¨åè§--{2},忽ç¥å ¨é¨ç©ºæ ¼--{3}"; String[] objs = new String[]{trim ? "æ¯" : "å¦", ignoreCase ? "æ¯" : "å¦", ignoreWidth ? "æ¯" : "å¦", trimAll ? "æ¯" : "å¦"}; String defaultValue=";æ ¹æ®æ¨å¡«åçå ³é®å±æ§çå 容ï¼ç»åå ³é®å±æ§æ¥è¯¢è§åï¼åç°è¿ä¸ªæ°æ®å·²ç»å¨ç³»ç»ä¸åå¨äºã请修æ£!ã"; String errormsg=defaultValue+ MessageFormat.format(ruleInfoMsg, objs); errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg); // throw new VciBaseException("æ ¹æ®æ¨å¡«åçå ³é®å±æ§çå 容ï¼ç»åå ³é®å±æ§æ¥è¯¢è§åï¼åç°è¿ä¸ªæ°æ®å·²ç»å¨ç³»ç»ä¸åå¨äºã请修æ£!ã" + ruleInfoMsg, objs); } } } /** * æ ¡éªæä¸¾çå 容 * * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ï¼éè¦å å«å±æ§ * @param orderDTO ç¼ç ç³è¯·çä¿¡æ¯ */ private void checkEnumOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO,Map<String,String> errorMap) { //妿æä¸¾å¯ä»¥ä¿®æ¹ï¼åä¸éè¦æ ¡éªæ¯å¦ç¬¦åæä¸¾çé项 Map<String, CodeClassifyTemplateAttrVO> enumAttrVOMap = templateVO.getAttributes().stream().filter(s -> (StringUtils.isNotBlank(s.getEnumString()) || StringUtils.isNotBlank(s.getEnumId())) && !VciBaseUtil.getBoolean(s.getEnumEditFlag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if (!CollectionUtils.isEmpty(enumAttrVOMap)) { enumAttrVOMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (StringUtils.isNotBlank(value)) { //æå¼æè½æ ¡éª List<KeyValue> comboboxKVs = this.engineService.listComboboxItems(attrVO); if (!comboboxKVs.stream().anyMatch(s -> value.equalsIgnoreCase(s.getKey()))) { errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";屿§ã"+attrVO.getName()+"ãçå¼ä¸ç¬¦åæä¸¾çè¦æ±"); //throw new VciBaseException("屿§ã{0}ãçå¼ä¸ç¬¦åæä¸¾çè¦æ±", new String[]{attrVO.getName()}); } } }); } } /** * è½¬æ¢æ¶é´çæ ¼å¼ * * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ï¼éè¦å å«å±æ§ * @param orderDTO ç¼ç ç³è¯·çä¿¡æ¯ */ private void switchDateAttrOnOrder(CodeClassifyTemplateVO templateVO, CodeOrderDTO orderDTO) { Map<String, CodeClassifyTemplateAttrVO> dateAttrVOMap = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getCodeDateFormat())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if (!CollectionUtils.isEmpty(dateAttrVOMap)) { dateAttrVOMap.forEach((attrId, attrVO) -> { String value = getValueFromOrderDTO(orderDTO, attrId); if (StringUtils.isNotBlank(value)) { DateConverter dateConverter = new DateConverter(); dateConverter.setAsText(value); value = VciDateUtil.date2Str(dateConverter.getValue(), VciDateUtil.DateTimeMillFormat); setValueToOrderDTO(orderDTO, attrId, value); } }); } } /** * æ·è´æ°æ®å°cboå¯¹è±¡ä¸ * * @param classifyFullInfo åç±»çå ¨é¨ä¿¡æ¯ * @param cbo ä¸å¡æ°æ® * @param orderDTO ç¼ç ç³è¯·çä¿¡æ¯ * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ * @param edit æ¯å¦ä¸ºä¿®æ¹ */ private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, ClientBusinessObject cbo, CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO, boolean edit,Map<String,String> errorMap) { String fullPath = ""; if (!CollectionUtils.isEmpty(classifyFullInfo.getParentClassifyVOs())) { fullPath = classifyFullInfo.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))) .map(CodeClassifyVO::getOid).collect(Collectors.joining("##")); } else { fullPath = classifyFullInfo.getCurrentClassifyVO().getOid(); } orderDTO.getData().forEach((key, value) -> { if (!edit || (!engineService.checkUnAttrUnEdit(key) && !VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) { try { cbo.setAttributeValue(key, value); } catch (VciBaseException e) { log.error("è®¾ç½®å±æ§çå¼é误", e); } } }); try { cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid()); cbo.setAttributeValue(CODE_TEMPLATE_OID_FIELD, templateVO.getOid()); cbo.setAttributeValue(CODE_FULL_PATH_FILED, fullPath); if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) { //æ¾çå½å¨æçèµ·å§ç¶æï¼ if (StringUtils.isNotBlank(cbo.getLctid())) { //OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(cbo.getLctid()); // if (lifeCycleVO != null) { // cbo.setLcStatus(lifeCycleVO.getStartStatus()); // } else { cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); // } } else { cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); } } int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD)); /*if (secret == 0 || !secretService.checkDataSecret(secret)) { Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret)); }*/ } catch (Throwable e) { log.error("设置é»è®¤ç屿§çå¼é误", e); } } /** * 设置æ°çå¼å°ç³è¯·å¯¹è±¡ä¸ * * @param orderDTO ç¼ç ç³è¯·å¯¹è±¡ * @param attrId 屿§çç¼å· * @param value å¼ */ private void setValueToOrderDTO(CodeOrderDTO orderDTO, String attrId, String value) { attrId = attrId.toLowerCase(Locale.ROOT); if (VciQueryWrapperForDO.BASIC_FIELD_MAP.containsKey(attrId)) { WebUtil.setValueToField(WebUtil.getFieldForObject(attrId, orderDTO.getClass()).getName(), orderDTO, value); } else { orderDTO.getData().put(attrId, value); } } /** * ä»ç¼ç ç³è¯·ä¿¡æ¯å¯¹è±¡ä¸è·åæä¸ªå±æ§çå¼ * * @param orderDTO ç¼ç ç³è¯·å¯¹è±¡ * @param attrId 屿§çç¼å· * @return å¼ */ private String getValueFromOrderDTO(CodeOrderDTO orderDTO, String attrId) { attrId = attrId.toLowerCase(Locale.ROOT); String value = null; if (VciQueryWrapperForDO.BASIC_FIELD_MAP.containsKey(attrId)) { value = WebUtil.getStringValueFromObject(WebUtil.getValueFromField(WebUtil.getFieldForObject(attrId, orderDTO.getClass()).getName(), orderDTO)); } else { //è¯´ææ¯èªè¡é ç½®ç //åç«¯å¿ é¡»è¦ä¼ éå°åç屿§ value = orderDTO.getData().getOrDefault(attrId, ""); } return value; } /** * å¤çåç±»æ³¨å ¥çä¿¡æ¯ * * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ï¼å¿ é¡»è¦å模æ¿ç屿§ * @param classifyFullInfoBO åç±»çå ¨è·¯å¾ * @param orderDTO ç¼ç ç³è¯·çä¿¡æ¯ */ private void switchClassifyLevelOnOrder(CodeClassifyTemplateVO templateVO, CodeClassifyFullInfoBO classifyFullInfoBO, CodeOrderDTO orderDTO,Map<String,String> errorMap) { Map<String, CodeClassifyTemplateAttrVO> classifyAttrVOMap = templateVO.getAttributes().stream().filter( s -> StringUtils.isNotBlank(s.getClassifyInvokeAttr()) && StringUtils.isNotBlank(s.getClassifyInvokeLevel()) ).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if (classifyFullInfoBO.getTopClassifyVO() == null) { //éè¦éæ°æ¥è¯¢ä¸ä¸ï¼å 为è¿ä¸ªæ¯æå®çåç±»è¿æ¥ç } if (!CollectionUtils.isEmpty(classifyAttrVOMap)) { classifyAttrVOMap.forEach((attrId, attrVO) -> { //åç±»æ³¨å ¥çç¼å·æè åç§°ï¼ //å±çº§å 嫿å®å±åæå°å± CodeClassifyVO classifyVO = null; if (!CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(attrVO.getClassifyInvokeLevel()) && !"min".equalsIgnoreCase(attrVO.getClassifyInvokeLevel())) { //æå®äºå±çº§ç //注æï¼å 为æ¥è¯¢ä¸çº§åç±»åºæ¥çå±çº§æ¯ååºçï¼å³é¡¶å±èç¹æ¯æå¤§çå¼ List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList()); int level = VciBaseUtil.getInt(attrVO.getClassifyInvokeLevel()); if (classifyVOS.size() >= level && level > 0) { classifyVO = classifyVOS.get(level - 1); } } else { //å½åçåç±» classifyVO = classifyFullInfoBO.getCurrentClassifyVO(); } if (classifyVO == null) { //说æå±çº§æè¯¯ errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";åç±»æ 䏿²¡æå±çº§[" + attrVO.getClassifyInvokeLevel() + "]"); //orderDTO.getData().put(attrId, "åç±»æ 䏿²¡æå±çº§[" + attrVO.getClassifyinvokelevel() + "]"); // classifyVO = classifyFullInfoBO.getCurrentClassifyVO(); } else { Map<String, String> classifyDataMap = VciBaseUtil.objectToMapString(classifyVO); String value = classifyDataMap.getOrDefault(attrVO.getClassifyInvokeAttr(), ""); orderDTO.getData().put(attrId, value); } }); } } /*** * * @param codeClassifyVO * @param templateVO * @param codeDataMap * @param codeSystemObjectMap * @param codeOrderDTOList * @param errorMap * @return */ private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){ codeDataMap.keySet().forEach(code->{ RowDatas rowDatas=codeDataMap.get(code); Map<String, String> data= rowDatas.getFiledValue(); CodeOrderDTO orderDTO = new CodeOrderDTO(); if(codeSystemObjectMap.containsKey(code)){ ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code); orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//åç±»ä¸»é® orderDTO.setOid(sysDataObject.getOid());//æ°æ®oid orderDTO.setLcStatus(rowDatas.getStatus());//ç¶æ orderDTO.setId(code); orderDTO.setTs(sysDataObject.getTs()); orderDTO.setBtmname(codeClassifyVO.getBtmname());//ä¸å¡ç±»å orderDTO.setDescription("éæè°ç¨:æ´æ°");//æ°æ®æè¿° if(data.containsKey("name")){ String name=data.get("name"); orderDTO.setName(name);//åç§°å±æ§å¼ } orderDTO.setData(data);//è®¾ç½®æ°æ® orderDTO.setSecDTOList(null);//åç±»ç æ®µ orderDTO.setEditInProcess(false);//æ¯å¦å¨æµç¨ä¸ orderDTO.setTemplateOid(templateVO.getOid()); }else{ errorMap.put("code","ç¼ç 为ï¼ã"+code+"ãçæ°æ®å¨ç³»ç»ä¸ä¸åå¨"); } codeOrderDTOList.add(orderDTO); }); } /** @@ -682,6 +2425,233 @@ return fullPath; } /** * æ£æ¥ç 段çé¿åº¦æ¯å¦ç¬¦åè¦æ± * @param cboList æ°æ® * @param classifyVOMap åç±»æ å° * @param ruleVOMap è§å对象 * @param ruleOidMap åç±»å å«è§å * @param errorMap é误çä¿¡æ¯ * @param ruleRowIndexMap è§åå å«çè¡å·ï¼keyæ¯è§å主é®ï¼valueæ¯å å«çå ¨é¨è¡å· */ private void checkSecLengthInHistory(List<ClientBusinessObject> cboList,Map<String,CodeClassifyVO> classifyVOMap,Map<String,CodeRuleVO> ruleVOMap, Map<String/**å类主é®**/,String/**è§å主é®**/> ruleOidMap,Map<String,String> errorMap,Map<String,List<String>> ruleRowIndexMap){ cboList.stream().forEach(cbo-> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); String secLength = cbo.getAttributeValue(CODE_SEC_LENGTH_FIELD); //æ¾åç±» String classifyOid = cbo.getAttributeValue(CODE_CLASSIFY_OID_FIELD); CodeClassifyVO classifyVO = classifyVOMap.get(classifyOid); if (classifyVO != null) { //2#2#4#1è¿æ ·çæ¹å¼ CodeRuleVO ruleVO = ruleVOMap.getOrDefault(ruleOidMap.get(classifyVO.getOid()), null); if(ruleVO!=null){ String[] secValues = secLength.split("#"); //æ»é¿åº¦åç¼ç çé¿åº¦ String code = cbo.getAttributeValue(CODE_FIELD); if(code.length() != Arrays.stream(secValues).mapToInt(s->VciBaseUtil.getInt(s)).sum()){ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";ç æ®µå®½åº¦ä¸ç³»ç»ä¸çç¼ç è§åä¸å" ); }else if(secValues.length != ruleVO.getSecVOList().size()){ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";ç æ®µå®½åº¦ä¸ç³»ç»ä¸çç¼ç è§åä¸å" ); } else { //æ¯ä¸ä¸ªé¿åº¦é½ä¸è½è¶ è¿ç 段ç boolean fined = false; for (int j = 0; j < ruleVO.getSecVOList().size(); j++) { CodeBasicSecVO secVO = ruleVO.getSecVOList().get(j); String length= secValues[j]; if(StringUtils.isNotBlank(secVO.getCodeSecLength())&&VciBaseUtil.getInt(length)>VciBaseUtil.getInt(secVO.getCodeSecLength())){ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";ç æ®µå®½åº¦ä¸ç³»ç»ä¸çç¼ç è§åä¸å" ); fined = true; break; } } /**for (int i = 0; i < secValues.length; i++) { for (int j = 0; j < ruleVO.getSecVOList().size(); j++) { CodeBasicSecVO secVO = ruleVO.getSecVOList().get(j); if (VciBaseUtil.getInt(secValues[i]) > VciBaseUtil.getInt(secVO.getCodeSecLength())) { errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";ç æ®µå®½åº¦ä¸ç³»ç»ä¸çç¼ç è§åä¸å" ); fined = true; break; } } if(fined){ break; } }***/ if(!fined){ //ææ¶ä¸åæµæ°´çå 容ï¼å 为è°ç¨produceCodeçæ¶åå»å¤ç List<String> rowIndexList = ruleRowIndexMap.getOrDefault(ruleVO.getOid(), new ArrayList<>()); rowIndexList.add(rowIndex); ruleRowIndexMap.put(ruleVO.getOid(),rowIndexList); } } }else{ errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";å类没æè®¾ç½®ç¼ç è§å" ); } } }); } /** * excel转æ¢ä¸ºcboç对象 * @param classifyFullInfo åç±»çå ¨é¨ä¿¡æ¯ * @param fieldIndexMap åæ®µçä½ç½® * @param rowDataList exceléçè¡æ°æ® * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ * @param cboList æ°æ®çå表 * @param fullPath å ¨è·¯å¾ * @param operation æä½ç±»å * @param errorMap é误信æ¯è®°å½ */ private void excelToCbo(CodeClassifyFullInfoBO classifyFullInfo,List<String> titleRowData,Map<Integer,String> fieldIndexMap,List<RowDatas> rowDataList, CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList, String fullPath,boolean isProcess,String operation,Map<String,String> errorMap,Map<String,String> codeOidToSystemOidMap){ rowDataList.stream().forEach(rowData -> { String oid=rowData.getOid(); String rowNumber=rowData.getRowIndex(); ClientBusinessObject cbo = new ClientBusinessObject(); DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmtypeid()); rowData.getData().forEach((index,value)->{ String field = fieldIndexMap.get(index); if(StringUtils.isBlank(field)){ errorMap.put(rowNumber,"屿§ï¼ã" +titleRowData.get(index)+ "ãå¨ç³»ç»ä¸ä¸åå¨"); } try { cbo.setAttributeValueWithNoCheck(field,value); if(WebUtil.isDefaultField(field)){ WebUtil.setValueToField(field, cbo, value); } } catch (VciBaseException e) { log.error("è®¾ç½®å±æ§çå¼é误",e); errorMap.put(rowNumber,"屿§ï¼ã" +titleRowData.get(index)+ "ãå¨ç³»ç»ä¸ä¸åå¨"); } }); try { cbo.setAttributeValue(IMPORT_ROW_INDEX,rowData.getRowIndex()); cbo.setAttributeValue(CODE_TEMPLATE_OID_FIELD,templateVO.getOid()); if(operation.equals("create")){ log.info("å类对象ï¼"+classifyFullInfo.getCurrentClassifyVO()); log.info("codeClassoid:"+classifyFullInfo.getCurrentClassifyVO().getOid()); 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) ){ 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())){//ç¼è¾ cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.AUDITING.getValue())) {//审æ¹ä¸ cbo.setLcStatus(CodeDefaultLC.AUDITING.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.TASK_BACK.getValue())){//åæ¶ cbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); }else{ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue());//åå¸ } /** if(!isProcess){ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue()); }else { if(rowData.getStatus().equals(CodeDefaultLC.DISABLE.getValue())){//åç¨ cbo.setLcStatus(CodeDefaultLC.DISABLE.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.EDITING.getValue())){//ç¼è¾ cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); }else {//åå¸ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue()); } }***/ cbo.setCreator(rowData.getCreator()); cbo.setLastModifier(rowData.getEditor()==null?"":rowData.getEditor()); }else if(operation.equals("update")){ //æ¤æ¶è¿æ²¡æè½¬æ¢è·¯å¾ //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); if(rowData.getStatus().equals(CodeDefaultLC.DISABLE.getValue())){//åç¨ cbo.setLcStatus(CodeDefaultLC.DISABLE.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.RELEASED.getValue())){//åå¸ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.EDITING.getValue())){//ç¼è¾ cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.AUDITING.getValue())) {//审æ¹ä¸ cbo.setLcStatus(CodeDefaultLC.AUDITING.getValue()); }else if(rowData.getStatus().equals(CodeDefaultLC.TASK_BACK.getValue())){//åæ¶ cbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); } cbo.setLastModifier(rowData.getEditor() == null ? "" : rowData.getEditor());//ä¿®æ¹è }else if(operation.equals("delete")){ if(rowData.getStatus().equals(CodeDefaultLC.TASK_BACK.getValue())){//åæ¶ cbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); }else{ cbo.setLcStatus(CodeDefaultLC.DISABLE.getValue());//åç¨ } } }catch (Throwable e){ log.error("设置é»è®¤ç屿§çå¼é误",e); if(e instanceof VciBaseException){ errorMap.put(rowNumber,"设置é»è®¤ç屿§çå¼é误"+((VciBaseException) e).getMessage()); }else{ errorMap.put(rowNumber,"设置é»è®¤ç屿§çå¼é误"+e.getMessage()); } }finally { codeOidToSystemOidMap.put(cbo.getOid(),oid); } cbo.setDescription(""); cboList.add(cbo); }); } /** * excel转æ¢ä¸ºcboç对象 * @param classifyFullInfo åç±»çå ¨é¨ä¿¡æ¯ * @param codeImprotDataVO: å类对åºçæ°æ® * @param cboList æ°æ®çå表 * @param newCode æ¯å¦ä¸ºæ¹éç³è¯· */ private void excelToCbo(CodeClassifyFullInfoBO classifyFullInfo,CodeImprotDataVO codeImprotDataVO,List<ClientBusinessObject> cboList, boolean newCode){ String fullPath = getFullPath(classifyFullInfo); codeImprotDataVO.getDatas().stream().forEach(rowData -> { ClientBusinessObject cbo=new ClientBusinessObject(); DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmtypeid()); rowData.forEach((field,value)->{ try { cbo.setAttributeValueWithNoCheck(field,value); if(WebUtil.isDefaultField(field)){ WebUtil.setValueToField(field, cbo, value); } } catch (VciBaseException e) { log.error("è®¾ç½®å±æ§çå¼é误",e); } }); try { cbo.setAttributeValue(CODE_TEMPLATE_OID_FIELD,codeImprotDataVO.getTemplateOid()); cbo.setAttributeValue(IMPORT_ROW_INDEX,rowData.get(IMPORT_ROW_INDEX)); if(newCode){ 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) ){ 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)); cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue()); } rowData.put("oid",cbo.getOid()); }catch (Throwable e){ log.error("设置é»è®¤ç屿§çå¼é误",e); } cboList.add(cbo); }); } /** * excel转æ¢ä¸ºcboç对象 * @param classifyFullInfo åç±»çå ¨é¨ä¿¡æ¯ @@ -817,6 +2787,32 @@ }); } } /** * ç³»ç»æ¨¡æ¿ä¸é»è®¤å¼è®¾ç½® * @param attrVOS 模æ¿å±æ§ * @param dataList excelçæ°æ®å 容 */ private void batchSwitchAttrDefault(Collection<CodeClassifyTemplateAttrVO> attrVOS,List<ClientBusinessObject> dataList) { Map<String, CodeClassifyTemplateAttrVO> dateAttrVOMap = attrVOS.stream().filter(s -> StringUtils.isNotBlank(s.getDefaultValue())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); if(!CollectionUtils.isEmpty(dateAttrVOMap)) { dateAttrVOMap.forEach((attrId, attrVO) -> { String defaultValue = attrVO.getDefaultValue(); dataList.stream().forEach(cbo -> { String dataValue= cbo.getAttributeValue(attrId); if(StringUtils.isBlank(dataValue)){ dataValue=defaultValue; } try { cbo.setAttributeValue(attrId, dataValue); }catch (Throwable e){ log.error("è®¾ç½®å±æ§çé误",e); } }); }); } } /** * 转移booleanåç屿§ * @param attrVOS 屿§ç对象 @@ -968,7 +2964,136 @@ } } /** * æ¹éæ£æ¥ä¼ä¸ç¼ç æ¯å¦åå¨ * @param templateVO 模æ¿çæ¾ç¤ºå¯¹è±¡ * @param cboList æ°æ®çå表 * @param errorMap é误çä¿¡æ¯ */ private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap){ List<String> existIds = new ArrayList<>(); VciBaseUtil.switchCollectionForOracleIn(cboList).stream().forEach(cbos -> { Map<String, String> conditionMap = new HashMap<>(); conditionMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])) + ")"); R<BtmTypeVO> r= btmTypeClient.getDetail(templateVO.getBtmTypeId()); BtmTypeVO btmTypeVO =r.getData(); String tableName=btmTypeVO.getTableName(); StringBuffer sb=new StringBuffer(); sb.append(" select id from "); sb.append(tableName); sb.append(" where 1=1 "); sb.append(" id in ("); sb.append(VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0]))); sb.append(")"); List<String> idList= commonsMapper.selectById(sb.toString()); //ä¸å¡æ°æ®å¦æç å¼åæ¶ä¼ç´æ¥å 餿°æ®ï¼æä»¥è¿éç´æ¥å¤ææ¯å¦åå¨å³å¯ existIds.addAll(Optional.ofNullable(idList).orElseGet(() -> new ArrayList<>()).stream().map(s -> s.toLowerCase(Locale.ROOT)).collect(Collectors.toList())); }); if(!CollectionUtils.isEmpty(existIds)){ String idFieldName = templateVO.getAttributes().stream().filter(s -> VciQueryWrapperForDO.ID_FIELD.equalsIgnoreCase(s.getId())).findFirst().orElseGet(() -> new CodeClassifyTemplateAttrVO()).getName(); if(StringUtils.isBlank(idFieldName)){ idFieldName = "ä¼ä¸ç¼ç "; } String finalIdFieldName = idFieldName; cboList.stream().forEach(cbo->{ String id = cbo.getId(); if(StringUtils.isBlank(id)){ id = cbo.getAttributeValue("id"); } if(existIds.contains(id)){ String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); String msg = errorMap.getOrDefault(rowIndex, ""); msg+=";" + finalIdFieldName + "çå¼å¨ç³»ç»ä¸å·²ç»åå¨"; errorMap.put(rowIndex,msg); } }); } } /*** * æ ¡éªå类对åºç模æ¿ä¿¡æ¯ * @param titleRowData * @param sheetDataSetList * @param shetNumber * @param pathMap * @param errorMap * @return * @throws Throwable */ private LinkedList<CodeClassifyTemplateVO> checkSamesTemplate(List<String> titleRowData, List<SheetDataSet> sheetDataSetList,int shetNumber,Map<String/**è·¯å¾**/, CodeClassifyVO> pathMap,Map<String,String>errorMap) throws Throwable { Map<String,String>pathOidMap =new HashMap<>(); Map<String,String> templateIdRowIndex=new HashedMap(); SheetDataSet dataSet= sheetDataSetList.get(shetNumber); LinkedHashMap<String,CodeClassifyTemplateVO> codeClassifyTemplateVOMap=new LinkedHashMap <String,CodeClassifyTemplateVO>(); for (int i=0; i<titleRowData.size();i++){ String title= titleRowData.get(i); if(title.equals("å类路å¾")) { int finalI = i; dataSet.getRowData().stream().forEach(sheetRowData -> { String Path = sheetRowData.getData().get(finalI); String rowIndex=sheetRowData.getRowIndex(); if(StringUtils.isBlank(Path)){ Path= "#current#"; } CodeClassifyTemplateVO newTemplateVO=new CodeClassifyTemplateVO(); String templateOid=""; if(pathOidMap.containsKey(Path)){ templateOid= pathOidMap.get(Path) ; newTemplateVO=codeClassifyTemplateVOMap.get(templateOid); }else{ if (pathMap.containsKey(Path)) { CodeClassifyVO codeClassifyVO = pathMap.get(Path); newTemplateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); if (newTemplateVO != null) { templateOid = newTemplateVO.getOid(); } else { errorMap.put(rowIndex, "第" + rowIndex + "è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçå类模æ¿"); } } else { errorMap.put(rowIndex, "第" + rowIndex + "è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçåç±»"); } } pathOidMap.put(Path, templateOid); codeClassifyTemplateVOMap.put(templateOid, newTemplateVO); templateIdRowIndex.put(templateOid, templateIdRowIndex.getOrDefault(templateOid, "") + "ï¼" +rowIndex ); }); break; } } LinkedList<CodeClassifyTemplateVO> codeClassifyTemplateVOList=new LinkedList<>(); StringBuffer sb=new StringBuffer(); codeClassifyTemplateVOMap.keySet().forEach(tempateOid->{ String templateOidInExcel=""; String tempateName=""; CodeClassifyTemplateVO t= codeClassifyTemplateVOMap.get(tempateOid); codeClassifyTemplateVOList.add(t); if(!CollectionUtils.isEmpty(sheetDataSetList) && sheetDataSetList.size()>1 && !CollectionUtils.isEmpty(sheetDataSetList.get(sheetDataSetList.size()-1).getColName())){ List<SheetRowData> rowData= sheetDataSetList.get(sheetDataSetList.size()-1).getRowData(); templateOidInExcel=rowData.get(shetNumber).getData().get(0); tempateName=rowData.get(shetNumber).getData().get(2); //templateOidInExcel = sheetDataSetList.get(sheetDataSetList.size()-1).getColName().get(sheetDataSetList.size()-i); } if(StringUtils.isBlank(templateOidInExcel) || !templateOidInExcel.equalsIgnoreCase(tempateOid)){ sb.append("模æ¿ã"+tempateName+"ãä¸ç¬¬"+templateIdRowIndex.get(tempateOid)+"è¡æ°æ®ä¸å±äºå½å模æ¿çæ°æ®ï¼è¯·æ ¸å¯¹!"); } }); if(StringUtils.isNotBlank(sb.toString())){ throw new Throwable(sb.toString()); } if(codeClassifyTemplateVOList.size()>1){ String message="模æ¿ã"+dataSet.getSheetName()+"ãæ ¹æ®å类路å¾å¤æï¼åç±»åå¨å¤ä¸ªæ¨¡æ¿"; throw new Throwable(message); } if(codeClassifyTemplateVOList.size()==0){ String message="模æ¿ã"+dataSet.getSheetName()+"ãæ ¹æ®æ°æ®å类路å¾å¤æï¼æªå¹é å°å¯¹åºæ¨¡æ¿"; throw new Throwable(message); } return codeClassifyTemplateVOList ; } /** * ä»å±æ§ä¸è·ååç §çå 容 * @param attrVO 屿§çä¿¡æ¯ @@ -1178,7 +3303,7 @@ //2.å¤æå ³é®å±æ§å¨ç³»ç»éæ¯å¦éå¤ //å ä¸ºæ°æ®éå¾å¤§ï¼æä»¥å¾æ³åæ³å¹¶è¡ //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); Map<String,List<ClientBusinessObject>> indexTODataMap=new HashMap<>(); Map<String,List<BaseModel>> indexTODataMap=new HashMap<>(); List<ClientBusinessObject> repeatDataMap = cboList.parallelStream().filter(cbo -> { //æ¯è¡é½å¾æ¥è¯¢.å¦æå ¶ä¸åºç°äºéè¯¯ï¼æä»¬å°±ç´æ¥æåºå¼å¸¸ï¼å ¶ä½çæ¾ç¤º //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); @@ -1196,8 +3321,16 @@ boolean isKeyCheck= commonsMapper.queryCountBySql(sqlBO.getSqlCount()) > 0; if(isKeyCheck){ List<Map<String,String>> newDataList= commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage()); List<ClientBusinessObject> newCboList= ChangeMapTOClientBusinessObjects(newDataList); indexTODataMap.put(cbo.getAttributeValue(IMPORT_ROW_INDEX),newCboList); //List<ClientBusinessObject> newCboList= ChangeMapTOClientBusinessObjects(newDataList); List<BaseModel> newCboList=new ArrayList<>(); newDataList.stream().forEach(stringStringMap -> { BaseModel baseModel=new BaseModel(); DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel); newCboList.add(baseModel); }); if(!CollectionUtils.isEmpty(newCboList)) { indexTODataMap.put(cbo.getAttributeValue(IMPORT_ROW_INDEX), newCboList); } } return isKeyCheck; }else{ @@ -1207,10 +3340,113 @@ if(!CollectionUtils.isEmpty(repeatDataMap)){ resultVO.setKeyAttrRepeatRowIndexList(repeatDataMap.stream().map(s->s.getAttributeValue(IMPORT_ROW_INDEX)).collect(Collectors.toSet())); } //resultVO.setIndexTODataMap(indexTODataMap); resultVO.setIndexTODataMap(indexTODataMap); //resultVO.setSuccess(true); return resultVO; } /** * æ£æ¥åç±»çè·¯å¾æ¯å¦åå¨ * @param cboList ä¸å¡æ°æ® * @param errorMap éè¯¯ä¿¡æ¯ * @param pathMap è·¯å¾ååç±»çæ å° */ private void checkClassifyPathInHistory(List<ClientBusinessObject> cboList, Map<String,String> errorMap, Map<String/**è·¯å¾**/,CodeClassifyVO> pathMap, Map<String/**主é®**/, String/**è·¯å¾**/> childOidPathMap) { cboList.parallelStream().forEach(cbo -> { String classifyPath = cbo.getAttributeValue(CODE_CLASSIFY_OID_FIELD); //妿path为空ï¼å表示æ¯å¯¼å ¥å½ååç±» if(StringUtils.isBlank(classifyPath)){ classifyPath = "#current#"; } if ( !pathMap.containsKey(classifyPath)) { String row_index = cbo.getAttributeValue(IMPORT_ROW_INDEX); errorMap.put(row_index,errorMap.getOrDefault(row_index,"") + ";å类路å¾ä¸åå¨"); } else { //转ä¸ä¸åç±»çä¸»é® try { String classifyOid = pathMap.get(classifyPath).getOid(); cbo.setAttributeValueWithNoCheck(CODE_CLASSIFY_OID_FIELD, classifyOid); cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(classifyOid,classifyPath)); } catch (VciBaseException e) { log.error("è®¾ç½®å±æ§çé误", e); } } }); } /** * æ£æ¥å类以åååç±»æ¯å¦é½æç¼ç è§å * @param classifyVOMap åç±»çæ¾ç¤ºå¯¹è±¡æ å° * @param ruleOidMap è§åç䏻鮿 å° * @param unExistRuleClassifyOidList ä¸åå¨ç¼ç è§åçåç±»çä¸»é® */ private void checkRuleOidInHistory( Map<String/**主é®**/,CodeClassifyVO> classifyVOMap, Map<String/**å类主é®**/,String/**è§å主é®**/> ruleOidMap, List<String> unExistRuleClassifyOidList ){ if(!CollectionUtils.isEmpty(classifyVOMap)){ classifyVOMap.values().parallelStream().forEach(classifyVO->{ if(StringUtils.isNotBlank(classifyVO.getCoderuleoid())){ ruleOidMap.put(classifyVO.getOid(),classifyVO.getCoderuleoid()); }else{ //é彿¾ä¸çº§ List<String> ruleOidList = new ArrayList<>(); recursionRule(classifyVOMap,classifyVO.getParentcodeclassifyoid(),ruleOidList); if(!CollectionUtils.isEmpty(ruleOidList)){ ruleOidMap.put(classifyVO.getOid(),ruleOidList.get(0)); }else{ unExistRuleClassifyOidList.add(classifyVO.getOid()); } } }); } log.info(";;;;"); } /** * é彿¾ç¼ç è§å * @param classifyVOMap åç±»çæ¾ç¤ºå¯¹è±¡æ å° * @param classifyOid åç±»çä¸»é® * @param ruleOidList è§åç主é®list */ private void recursionRule(Map<String, CodeClassifyVO> classifyVOMap,String classifyOid,List<String> ruleOidList){ if(classifyVOMap.containsKey(classifyOid)){ CodeClassifyVO classifyVO = classifyVOMap.get(classifyOid); if(StringUtils.isNotBlank(classifyVO.getCoderuleoid())){ ruleOidList.add(classifyVO.getCoderuleoid()); return; }else{ recursionRule(classifyVOMap,classifyVO.getParentcodeclassifyoid(),ruleOidList); } }else{ Map<String, CodeClassifyVO> parentClassifyVOMap=new HashMap<>(); CodeClassifyVO codeClassifyVO= this.classifyService.getObjectByOid(classifyOid); parentClassifyVOMap.put(codeClassifyVO.getOid(),codeClassifyVO); recursionRule(parentClassifyVOMap,codeClassifyVO.getOid(),ruleOidList); } } /** * è·åååç±»çè·¯å¾ * @param classifyFullInfo åç±»å ¨é¨ä¿¡æ¯ * @param fullPath åç±»çå ¨è·¯å¾ * @return ååç±»çè·¯å¾ï¼keyæ¯åç±»çä¸»é® */ private Map<String/**åç±»ç主é®**/,String/**å类路å¾**/> getChildClassifyPathMap(CodeClassifyFullInfoBO classifyFullInfo,String fullPath){ List<CodeClassifyVO> childPathVOs = classifyService.listChildrenClassify(classifyFullInfo.getCurrentClassifyVO().getOid(), true, VciQueryWrapperForDO.OID_FIELD, true); Map<String/**åç±»ç主é®**/,String/**åç±»ç主é®**/> childOidPathMap = new ConcurrentHashMap<>(); if(!CollectionUtils.isEmpty(childPathVOs)){ childPathVOs.parallelStream().forEach(childPath->{ // String thisClassifyPath = fullPath + "##" + childPath.getPath().replace("#" + classifyFullInfo.getCurrentClassifyVO().getOid() + "#","").replace("#","##"); List<String> list=Arrays.asList(childPath.getPath().split("#")); List<String> newPahtList= list.stream().sorted(Comparator.comparing(s -> s,Comparator.reverseOrder())).collect(Collectors.toList()); String thisClassifyPath=StringUtils.join(newPahtList,"##")+fullPath; childOidPathMap.put(childPath.getOid(),thisClassifyPath); }); } return childOidPathMap; } /** * è·åå¯¼å ¥çå 容ä¸å ³é®å±æ§éå¤çè¡å· * @param ketAttrMap å ³é®å±æ§çæ å° @@ -1301,6 +3537,126 @@ } /*** * æ ¹æ®ä¸å模æ¿ç»ç»execlæ°æ® * @param dataSet * @param pathMap * @param errorMap */ private void createExeclClassData(SheetDataSet dataSet,Map<String/**è·¯å¾**/, CodeClassifyVO> pathMap,Map<String,String>errorMap,List<CodeImprotDataVO> codeClassifyDatas){ Map<String,CodeImprotDataVO> pathDatas=new HashMap<>(); List<String> titleRowData= dataSet.getColName(); List<SheetRowData> rowDataList= dataSet.getRowData(); LinkedHashMap<String,CodeClassifyTemplateVO> codeClassifyTemplateVOMap=new LinkedHashMap <String,CodeClassifyTemplateVO>(); LinkedHashMap<String,CodeRuleVO> codeRuleVOVOMap=new LinkedHashMap <String,CodeRuleVO>(); for (int i=0;i<titleRowData.size();i++){ String title= titleRowData.get(i); if(title.equals("å类路å¾")) { int finalI = i; rowDataList.stream().forEach(sheetRowData -> { CodeImprotDataVO dataVO=new CodeImprotDataVO(); String Path = sheetRowData.getData().get(finalI); String rowIndex=sheetRowData.getRowIndex(); Map<Integer, String> execlData= sheetRowData.getData(); CodeClassifyTemplateVO newTemplateVO=new CodeClassifyTemplateVO(); CodeRuleVO codeRuleVO=new CodeRuleVO(); if(StringUtils.isEmpty(Path)){ Path="#current#"; } if(pathMap.containsKey(Path)){ CodeClassifyVO codeClassifyVO=pathMap.get(Path); if(codeClassifyTemplateVOMap.containsKey(Path)){ newTemplateVO= codeClassifyTemplateVOMap.get(Path); codeRuleVO= codeRuleVOVOMap.get(Path); if(newTemplateVO==null||StringUtils.isBlank(newTemplateVO.getOid())){ errorMap.put(rowIndex,"第"+rowIndex+"è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçå类模æ¿"); } if(codeRuleVO==null||StringUtils.isBlank(codeRuleVO.getOid())){ errorMap.put(rowIndex,"第"+rowIndex+"è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçåç±»è§å"); } }else{ newTemplateVO =engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); if(newTemplateVO==null||StringUtils.isBlank(newTemplateVO.getOid())){ errorMap.put(rowIndex,"第"+rowIndex+"è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçå类模æ¿"); } codeRuleVO=engineService.getCodeRuleByClassifyOid(codeClassifyVO.getOid()); if(codeRuleVO==null||StringUtils.isBlank(codeRuleVO.getOid())){ errorMap.put(rowIndex,"第"+rowIndex+"è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçåç±»è§å"); } } if(pathMap.containsKey(Path)){ dataVO=pathDatas.getOrDefault(Path,dataVO); } dataVO.setTemplateOid(newTemplateVO==null?"":newTemplateVO.getOid()); dataVO.setCodeClassifyTemplateVO(newTemplateVO); dataVO.setCodeClassifyVO(codeClassifyVO); dataVO.setCodeRuleVO(codeRuleVO); dataVO.setRowIndex(rowIndex); dataVO.setCodeClassifyOid(codeClassifyVO.getOid());//设置åç±»oid dataVO.setCodeRuleOid(codeRuleVO==null?"":codeRuleVO.getOid()); createExeclClassData(titleRowData,newTemplateVO,execlData,dataVO); pathDatas.put(Path,dataVO); codeClassifyTemplateVOMap.put(Path, newTemplateVO); codeRuleVOVOMap.put(Path,codeRuleVO); }else{ errorMap.put(rowIndex,"第"+rowIndex+"è¡ï¼åç±»è·¯å¾æªæ¥è¯¢å°ç¸åºçåç±»"); } }); break; } } List <CodeImprotDataVO> newCodeImprotDataVO= pathDatas.values().stream().collect(Collectors.toList()); codeClassifyDatas.addAll(newCodeImprotDataVO); log.info("222"); } /*** * @param titleRowData * @param newTemplateVO * @param execlData * @param codeImprotDataVO */ private void createExeclClassData(List<String> titleRowData, CodeClassifyTemplateVO newTemplateVO, Map<Integer, String> execlData, CodeImprotDataVO codeImprotDataVO){ //é¤å»é»è®¤ç屿§.è¿æåªæè¡¨åæ¾ç¤ºçåæ®µæå¯¼å ¥ List<CodeClassifyTemplateAttrVO> attrVOS = newTemplateVO.getAttributes().stream().filter(s -> !DEFAULT_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); Map<String/**䏿åç§°**/, String/**è±æåç§°**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId())); List<String> fields=new ArrayList<>(); Map<String,String> filedValueMap=new HashMap<>(); List<String> colNames=new ArrayList<>(); for (int i = 0; i < titleRowData.size(); i++) { String title = titleRowData.get(i); title=title.replace(KEY_ATTR_CHAR,"").replace(REQUIRED_CHAR,""); String id = attrNameIdMap.getOrDefault(title,""); if(StringUtils.isBlank(id) && "å类路å¾".equalsIgnoreCase(title)){ id = CODE_CLASSIFY_OID_FIELD; } if(StringUtils.isBlank(id) && "ç æ®µå®½åº¦".equalsIgnoreCase(title)){ id = CODE_SEC_LENGTH_FIELD; } if(StringUtils.isBlank(id) && "ä¼ä¸ç¼ç ".equalsIgnoreCase(title)){ id = CODE_FIELD; } if(StringUtils.isNotBlank(id)){ // fieldIndexMap.put(i,id);id fields.add(id); colNames.add(title); String value= StringUtils.isNotBlank(execlData.get(i))?execlData.get(i):""; filedValueMap.put(id,value); } } // filedValueMap.put(CODE_CLASSIFY_OID_FIELD,codeImprotDataVO.getCodeClassifyOid());//å°å½ååç±»oidåå ¥åæ®µä¸ filedValueMap.put("codeclassifyid",codeImprotDataVO.getCodeClassifyOid()); filedValueMap.put(IMPORT_ROW_INDEX,codeImprotDataVO.getRowIndex()); filedValueMap.put("codetemplateoid",newTemplateVO.getOid()); codeImprotDataVO.setFields(fields); codeImprotDataVO.setColNames(colNames); codeImprotDataVO.getDatas().add(filedValueMap); } /*** * æ£ç¡®éè¯¯æ°æ®redisç¼å * @param uuid * @param templateVO @@ -1359,6 +3715,50 @@ } } /****** * æ ¹æ®ç¼ç è§åç¼åæ°æ® * @param uuid * @param codeImprotDataVOs * @param errorMap * @param isok */ private void createRedisDatas(String uuid, List<CodeImprotDataVO> codeImprotDataVOs, Map<String, String> errorMap, boolean isok){ codeImprotDataVOs.stream().forEach(codeImprotDataVO -> { List<Map<String, String>> dataLists=new ArrayList<>(); CodeImprotDataVO newCodeImprotDataVO=new CodeImprotDataVO(); if(errorMap.size()>0) { //è¦æä»¥ä¸çé误ç齿åºåï¼åç»§ç»å¤çæ¶é´åç»åè§å dataLists = codeImprotDataVO.getDatas().stream().filter(cbo -> { String rowIndex=cbo.get(IMPORT_ROW_INDEX); String msg=StringUtils.isBlank(errorMap.get(rowIndex))?"":errorMap.get(rowIndex); cbo.put("errorMsg",msg); return isok? !errorMap.containsKey(rowIndex):errorMap.containsKey(rowIndex); }).collect(Collectors.toList()); }else{ dataLists= codeImprotDataVO.getDatas(); } BeanUtilForVCI.copyPropertiesIgnoreCase(codeImprotDataVO,newCodeImprotDataVO); newCodeImprotDataVO.setDatas(dataLists); List<CodeImprotDataVO> codeImprotDataVOList=new ArrayList<>(); codeImprotDataVOList.add(newCodeImprotDataVO); /***update æ´æ¹æä»¥è§ååç»*****/ String codeRuleOid=codeImprotDataVO.getCodeRuleOid(); log.info(uuid+"-"+codeRuleOid+":æ¡ç®æ°"+codeImprotDataVOList.size()); if(codeImprotDataVOList.size()>0) { bladeRedis.set(uuid + "-" + codeRuleOid, codeImprotDataVOList); bladeRedis.expire(uuid + "-" + codeRuleOid, BATCHADD_REDIS_TIME);//redisè¿ææ¶é´ } /*** String codeClassifyOid=codeImprotDataVO.getCodeClassifyOid(); redisService.setCacheList(uuid+"-"+codeClassifyOid,codeImprotDataVOList); logger.info(uuid+"-"+codeClassifyOid+":æ¡ç®æ°"+codeImprotDataVOList.size()); redisService.expire(uuid+"-"+codeClassifyOid,BATCHADD_REDIS_TIME);//redisè¿ææ¶é´***/ }); } /**** * æ°æ®ç¸ä¼¼é¡¹æ°æ®æ ¡éªredisç¼å * @param codeClassifyOid Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml
@@ -22,6 +22,10 @@ ${inSql} </select> <select id="queryCountBySql" resultType="java.lang.Integer"> ${inSql} </select> <select id="queryByOnlySqlForMap" resultType="java.util.Map"> ${inSql} </select> Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/DeptController.java
@@ -17,6 +17,7 @@ package com.vci.ubcs.system.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.vci.ubcs.system.cache.DictCache; @@ -32,6 +33,7 @@ import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; @@ -99,9 +101,9 @@ }) @ApiOperationSupport(order = 3) @ApiOperation(value = "æå è½½å表", notes = "ä¼ å ¥dept") public R<List<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) { List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept); return R.data(DeptWrapper.build().listNodeLazyVO(list)); public R<IPage<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Query query, Long parentId, BladeUser bladeUser) { IPage<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept, query); return R.data(DeptWrapper.build().pageNodeLazyVO(list)); } /** Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
@@ -16,7 +16,9 @@ */ package com.vci.ubcs.system.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.vci.ubcs.system.entity.Menu; import com.vci.ubcs.system.entity.TopMenu; @@ -31,6 +33,7 @@ import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; @@ -133,9 +136,9 @@ //@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) @ApiOperationSupport(order = 5) @ApiOperation(value = "æå è½½èåå表", notes = "ä¼ å ¥menu") public R<List<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) { List<MenuVO> list = menuService.lazyMenuList(parentId, menu); return R.data(MenuWrapper.build().listNodeLazyVO(list)); public R<IPage<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu, Query query) { IPage<MenuVO> menuVOIPage = menuService.lazyMenuPage(parentId, menu,query); return R.data(MenuWrapper.build().pageNodeLazyVO(menuVOIPage)); } /** Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/RoleController.java
@@ -17,6 +17,7 @@ package com.vci.ubcs.system.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.vci.ubcs.system.cache.SysCache; @@ -32,6 +33,7 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; @@ -73,19 +75,20 @@ } /** * å表 * å页å表 */ @GetMapping("/list") @GetMapping("/page") @ApiImplicitParams({ @ApiImplicitParam(name = "roleName", value = "åæ°åç§°", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "roleAlias", value = "è§è²å«å", paramType = "query", dataType = "string") }) @ApiOperationSupport(order = 2) @ApiOperation(value = "å表", notes = "ä¼ å ¥role") public R<List<RoleVO>> list(@ApiIgnore @RequestParam Map<String, Object> role, BladeUser bladeUser) { public R<IPage<RoleVO>> list(@ApiIgnore @RequestParam Map<String, Object> role, BladeUser bladeUser, Query query) { QueryWrapper<Role> queryWrapper = Condition.getQueryWrapper(role, Role.class); List<Role> list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper); return R.data(RoleWrapper.build().listNodeVO(list)); IPage<Role> page = roleService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper); return R.data(RoleWrapper.build().pageNodeVO(page)); } /** Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StrategyController.java
@@ -1,5 +1,6 @@ package com.vci.ubcs.system.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.vci.ubcs.system.service.IStrategyService; import io.swagger.annotations.Api; @@ -48,8 +49,8 @@ @GetMapping("/page") @ApiOperationSupport(order = 1) @ApiOperation(value = "å页æ¥è¯¢", notes = "ä¼ å ¥å页忰query") public R<Page<Strategy>> queryByPage(Query query) { Page<Strategy> strategyPage = strategyService.queryAllByPage(query); public R<IPage<Strategy>> queryByPage(Query query) { IPage<Strategy> strategyPage = strategyService.queryAllByPage(query); return R.data(strategyPage); } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/DeptMapper.java
@@ -17,6 +17,7 @@ package com.vci.ubcs.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.vci.ubcs.system.entity.Dept; import com.vci.ubcs.system.vo.DeptVO; @@ -38,7 +39,7 @@ * @param param * @return */ List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param); IPage<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param,IPage page); /** * è·åæ å½¢èç¹ Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/MenuMapper.java
@@ -17,6 +17,7 @@ package com.vci.ubcs.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.tool.node.TreeNode; import com.vci.ubcs.system.dto.MenuDTO; import com.vci.ubcs.system.entity.Menu; @@ -49,7 +50,7 @@ * @param param * @return */ List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param); IPage<MenuVO> lazyMenuPage(Long parentId, Map<String, Object> param, IPage page); /** * æ å½¢ç»æ Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StrategyMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import com.vci.ubcs.system.entity.Strategy; @@ -22,7 +23,7 @@ * @param page å页对象 * @return 对象å表 */ List<Strategy> queryAllByPage(IPage page); IPage<Strategy> queryAllByPage(IPage page); /** * ç»è®¡æ»è¡æ° Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IDeptService.java
@@ -16,9 +16,11 @@ */ package com.vci.ubcs.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.vci.ubcs.system.entity.Dept; import com.vci.ubcs.system.vo.DeptVO; import org.springblade.core.mp.support.Query; import java.util.List; import java.util.Map; @@ -38,7 +40,7 @@ * @param param * @return */ List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param); IPage<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param, Query query); /** * æ å½¢ç»æ Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IMenuService.java
@@ -16,7 +16,9 @@ */ package com.vci.ubcs.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.node.TreeNode; @@ -50,7 +52,7 @@ * @param param * @return */ List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param); IPage<MenuVO> lazyMenuPage(Long parentId, Map<String, Object> param, Query query); /** * èåæ å½¢ç»æ Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStrategyService.java
@@ -1,5 +1,6 @@ package com.vci.ubcs.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.mp.support.Query; import com.vci.ubcs.system.entity.Strategy; @@ -36,7 +37,7 @@ * @param query å页对象 * @return æ¥è¯¢ç»æ */ PageImpl<Strategy> queryAllByPage(Query query); IPage<Strategy> queryAllByPage(Query query); /** * æ°å¢æ°æ®æä¿®æ¹æ°æ® Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/CombinationServiceImpl.java
@@ -110,7 +110,9 @@ */ @Override public List<Map<String, Object>> selectMaps() { List<Map<String, Object>> maps = listMaps(new QueryWrapper<Combination>().select("ID", "NAME")); List<Map<String, Object>> maps = listMaps( new QueryWrapper<Combination>().lambda().select(Combination::getId, Combination::getName) ); return maps; } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DeptServiceImpl.java
@@ -17,6 +17,7 @@ package com.vci.ubcs.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.log.exception.ServiceException; @@ -26,6 +27,8 @@ import com.vci.ubcs.system.service.IDeptService; import com.vci.ubcs.system.vo.DeptVO; import com.vci.ubcs.system.wrapper.DeptWrapper; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; @@ -49,7 +52,7 @@ private static final String PARENT_ID = "parentId"; @Override public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) { public IPage<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param, Query query) { // è®¾ç½®ç§æ·ID if (AuthUtil.isAdministrator()) { tenantId = StringPool.EMPTY; @@ -74,7 +77,7 @@ if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) { parentId = null; } return baseMapper.lazyList(tenantId, parentId, param); return baseMapper.lazyList(tenantId, parentId, param, Condition.getPage(query)); } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
@@ -17,6 +17,7 @@ package com.vci.ubcs.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vci.ubcs.system.cache.SysCache; @@ -31,6 +32,8 @@ import com.vci.ubcs.system.wrapper.MenuWrapper; import lombok.AllArgsConstructor; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -74,11 +77,11 @@ } @Override public List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param) { public IPage<MenuVO> lazyMenuPage(Long parentId, Map<String, Object> param, Query query) { if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) { parentId = null; } return baseMapper.lazyMenuList(parentId, param); return baseMapper.lazyMenuPage(parentId, param, Condition.getPage(query)); } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StrategyServiceImpl.java
@@ -1,5 +1,6 @@ package com.vci.ubcs.system.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -67,9 +68,9 @@ * @return æ¥è¯¢ç»æ */ @Override public PageImpl<Strategy> queryAllByPage(Query query) { public IPage<Strategy> queryAllByPage(Query query) { Page<Strategy> strategyPage = new Page<>(query.getCurrent(), query.getSize()); return new PageImpl<>(this.strategyMapper.queryAllByPage(strategyPage)); return this.strategyMapper.queryAllByPage(strategyPage); } /** Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/DeptWrapper.java
@@ -16,6 +16,9 @@ */ package com.vci.ubcs.system.wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vci.ubcs.common.utils.PageDO2PageVO; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; @@ -75,4 +78,14 @@ return ForestNodeMerger.merge(collect); } public IPage<DeptVO> pageNodeLazyVO(IPage<DeptVO> page) { List<DeptVO> deptVOS = page.getRecords().stream().peek(dept -> { String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()); Objects.requireNonNull(dept).setDeptCategoryName(category); }).collect(Collectors.toList()); List<DeptVO> list = ForestNodeMerger.merge(deptVOS); page.setRecords(list); return page; } } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/MenuWrapper.java
@@ -16,6 +16,7 @@ */ package com.vci.ubcs.system.wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; @@ -69,4 +70,10 @@ return ForestNodeMerger.merge(list); } public IPage<MenuVO> pageNodeLazyVO(IPage<MenuVO> page) { List<MenuVO> merge = ForestNodeMerger.merge(page.getRecords()); page.setRecords(merge); return page; } } Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/wrapper/RoleWrapper.java
@@ -16,6 +16,9 @@ */ package com.vci.ubcs.system.wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vci.ubcs.common.utils.PageDO2PageVO; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; @@ -52,10 +55,17 @@ return roleVO; } public List<RoleVO> listNodeVO(List<Role> list) { List<RoleVO> collect = list.stream().map(this::entityVO).collect(Collectors.toList()); return ForestNodeMerger.merge(collect); } public IPage<RoleVO> pageNodeVO(IPage<Role> page) { List<RoleVO> collect = page.getRecords().stream().map(this::entityVO).collect(Collectors.toList()); List<RoleVO> mergeList = ForestNodeMerger.merge(collect); IPage<RoleVO> roleVOIPage = new Page<>(); roleVOIPage.setRecords(mergeList); return PageDO2PageVO.pageDO2PageVO(page,roleVOIPage); } } Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/MenuMapper.xml
@@ -73,7 +73,7 @@ ORDER BY menu.sort </select> <select id="lazyMenuList" resultMap="menuVOResultMap"> <select id="lazyMenuPage" resultMap="menuVOResultMap"> SELECT menu.*, ( Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
@@ -309,6 +309,7 @@ } //è·åç¨æ·éç¨çå¯ç çç¥ Strategy strategy = sysClient.getByUserId(userId).getData(); // å ä¹ä¸ä¼åºç°è¿ç§æ åµ if(ObjectUtil.isEmpty(strategy)) { throw new ServiceException("å½åç¨æ·æªåºç¨å¯ç çç¥ï¼"); } @@ -323,7 +324,7 @@ if(reqType>=strategy.getRequiredType()){ break; } if(!Func.isEmpty(RegexUtil.findResult(regexs.get(i),newPassword1))){ if(RegexUtil.find(regexs.get(i),newPassword1)){ reqType++; } } @@ -331,11 +332,12 @@ if(reqType<strategy.getRequiredType()){ throw new ServiceException(resException); } // æ¯å¦å±äºç»åæ¹å¼ä¸çç±»å // æ¯å¦å±äºç»åæ¹å¼ä¸çç±»å,以忝å¯ç å¿ é¡»æ¯å å«å¨ç»åæ¹å¼ä¸çç±»å String regex = sysClient.getRegex(Arrays.asList(strategy.getCombinationIds().split(","))).getData(); regex = "^"+regex+"{"+strategy.getRequiredType()+",}$"; boolean result = RegexUtil.find(regex, newPassword1); if(!result){ throw new ServiceException("å¯ç ä¸åªè½åå¨ã"+strategy.getCombinationNames()+"ãä¸å å«çå符ï¼"); //throw new ServiceException(resException); } //ä¿®æ¹å¯ç åæ¶ï¼æ¹åç¨æ·ä¿¡æ¯ä¸çå¯ç ä¿®æ¹ç¶æå段,å¯ç ä¿®æ¹æ¶é´ @@ -422,6 +424,7 @@ boolean oauthTemp = userOauthService.updateById(userOauth); return (userTemp && oauthTemp); } @Override public boolean updatePlatform(Long userId, Integer userType, String userExt) { if (userType.equals(UserEnum.WEB.getCategory())) { Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/GroupMdmInterServiceImpl.java
@@ -198,7 +198,7 @@ } //ä¿åè¡¨åæ°æ® dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); mdmEngineClient.insertBatchByType(btmName,updateCbos);//ä¿åæ°æ® mdmEngineClient.updateBatchByType(btmName,updateCbos);//ä¿åæ°æ® } return R.success("ç³è¯·æ¥å£è°ç¨æå"); }catch (VciBaseException e){ @@ -312,7 +312,7 @@ } //ä¿åè¡¨åæ°æ® dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings); mdmEngineClient.insertBatchByType(btmName,updateCbos);//ä¿åæ°æ® mdmEngineClient.updateBatchByType(btmName,updateCbos);//ä¿åæ°æ® } return R.success("ç³è¯·æ¥å£è°ç¨æå"); }catch (VciBaseException e){