Source/UBCS-WEB/src/api/GetItem.js
@@ -126,3 +126,13 @@ } }) } //éå¢ç 模æ¿ä¸è½½ export const exportGroupCodeExcel = (params) => { return request({ url: '/api/ubcs-code/mdmEngineController/exportGroupCodeExcel', method: 'get', params, responseType: 'blob' }) } Source/UBCS-WEB/src/api/statistic/chart.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ import request from '@/router/axios'; //ç»è®¡åææ°æ® export const getStatisticAnalysis = (params) => { return request({ url: '/api/ubcs-code/mdmEngineController/getStatisticAnalysis', method: 'get', params }) } Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -13,7 +13,7 @@ </li> </ul> <div v-show="currentTypeObj[type]['upParams'] === 'classifyAttr' && this.type !== 'bulkEdit'" v-show="currentTypeObj[type]['upParams'] === 'classifyAttr' && this.type !== 'bulkEdit'&& this.type !== 'groupCode'" class="radio_box" > <span>åç±»çè·¯å¾ä½¿ç¨ç屿§:</span> @@ -61,21 +61,23 @@ > </el-upload> <template #footer> <el-button v-if="type !== 'bulkEdit'" :loading="downloadLoading" size="small" type="primary" @click="downloadTemplateFun" >ä¸è½½å¯¼å ¥æ¨¡æ¿ </el-button> <el-button v-if="type === 'bulkEdit'" :loading="downloadLoading" size="small" type="primary" @click="downloadTemplateFun" >ä¸è½½ç¼è¾æ¨¡æ¿ </el-button> <div v-if="type !== 'groupCode'"> <el-button v-if="type !== 'bulkEdit' " :loading="downloadLoading" size="small" type="primary" @click="downloadTemplateFun" >ä¸è½½å¯¼å ¥æ¨¡æ¿ </el-button> <el-button v-if="type === 'bulkEdit'" :loading="downloadLoading" size="small" type="primary" @click="downloadTemplateFun" >ä¸è½½ç¼è¾æ¨¡æ¿ </el-button> </div> <el-button size="small" @click="dialogVisible = false">å ³é</el-button> </template> <ShowImportData @@ -248,6 +250,15 @@ downloadTemplateFun: downloadBatchApplyCodeTemplate, upParams: "classifyAttr", }, groupCode: { title: "éå¢ç å¯¼å ¥", tipList: [ "1.æ é¢å¸¦äºè§æçè¡¨ç¤ºå ³é®å±æ§ï¼å¸¦æå·è¡¨ç¤ºå¿ è¾é¡¹", "2.æ¯æ¬¡ä» è½æå¤å¯¼å ¥5000æ¡æ°æ®(å¯éè¿nacosè¿è¡é ç½®ï¼æ¨è5000/æ¬¡å¯¼å ¥)ï¼å¦æåºéä¼è¿åéè¯¯çæ°æ®ååå ï¼ä½æ¯æ£ç¡®æ°æ®å¯ä»¥ç»§ç»ä¿å", "3.Excel第ä¸è¡å第äºè¡ä¾æ¬¡ä¸ºä¼ä¸ç¼ç åéå¢ç¼ç ï¼å¿ å¡«ï¼" ], action: "/api/ubcs-code/mdmEngineController/importGroupCode" } }, secDTOList: [], }; @@ -291,16 +302,9 @@ return; } if (this.type === 'bulkEdit') { this.tableHeadFindData.map(item => item.prop) .forEach((prop, index) => { this.exportArrTwo[`attrIdIndexMap[${index}]`] = prop; }); downloadExcelBatchEdit({ codeClassifyOid: this.codeClassifyOid, 'conditionMap[oid]': this.ids, ...this.exportArrTwo, limit: -1 }).then(res => { // console.log('res',res) if (res) { func.downloadFileByBlobHandler(res); this.$message.success('ä¸è½½æåï¼è¯·æ¥çï¼') Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -103,9 +103,14 @@ type: String, default: "", }, selectRow:{ type:Array, default:[] } }, data() { return { selectValue:"", //å¹´ä»£å· dataYearCode: { type: "", @@ -206,6 +211,15 @@ handler(newV) { this.$emit("dataYearCode", newV) } }, selectRow:{ handler(newval){ console.log(newval); let ids = newval.map(item => item.id); this.selectValue= ids.join(","); }, deep:true, immediate:true } }, methods: { @@ -320,7 +334,9 @@ value:formItem.defaultValue || (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) || (formItem.secType == "codedatesec" ? formItem.codeDateValue : null) || (TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null) || (formItem.secType == "codeattrsec" ? this.add : null) || (this.status === "apply" && formItem.field === "codeStandardEditType" ? "1" : null) || (this.status === "amend" && formItem.field === "codeStandardEditType" ? "2" : null), (this.status === "amend" && formItem.field === "codeStandardEditType" ? "2" : null) || //ç¶ç»ä»¶å¦ææ¯åç §æ°æ®ä¼å°selectRow置空,selectRowä¸ä¸ºç©ºå°±è¯´æä¸æ¯åç §è¦åå¡«æºæ åå·æ°æ® (this.status === "amend" && this.selectRow && (formItem.field === "oldcode" ? this.selectValue : null)), placeholder: formItem.inputTip, comboxKey: formItem.comboxKey, tip: formItem.tooltips, Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -14,6 +14,7 @@ v-if="dialogVisible" key="masterForm" ref="FormTemplate" v-bind="$attrs" :selectRow="selectRow" :TreeValue="TreeValue" :eventList="eventList" :rowOid="rowOid" @@ -139,6 +140,10 @@ type: Object, default: () => ({}), }, selectRow:{ type:Array, default:[] } }, data() { return { @@ -242,15 +247,11 @@ }, }, watch: { codeApplyForm: { handler(newval, oldval) { // console.log('newval',newval) } } }, methods: { openDialog() { //æ°å¢åä¿®æ¹å ±åè°ç¨ //æ°å¢åä¿®æ¹å ±åè°ç¨(ææ¹å¨ ä¸éè¦å¨ä½¿ç¨editï¼æ¹æ³æ²¡ä»ä¹å½±å) this.getFormTemplate(); if (this.type === "add" || (this.type !== "add" && this.status === "amend")) { this.getCodeRule(); @@ -473,7 +474,7 @@ secValue: this.codeApplyForm[item.oid], }; }); //æ åç¹å® //æ åç¹å®å段æ å° const mappings = { codeStandardEditType: 'operationType', reviseSeries: 'series', Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -99,9 +99,9 @@ </FormTemplateDialog> <!-- 修订--> <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'ä¿®æ¹ç¼ç ä¿¡æ¯'" :visible.sync="amendvisible" status="amend" type="edit" @submit="amendSumbit"></FormTemplateDialog> :disabledProp="disabledProp" :templateOid="templateOid" :title="'æ°æ®ä¿®è®¢'" :visible.sync="amendvisible" status="amend" :selectRow="selectRow" type="add" @submit="amendSumbit"></FormTemplateDialog> <!-- æ°å¢--> <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" @@ -113,7 +113,7 @@ <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" :title="'ä¿®æ¹ç¼ç ä¿¡æ¯'" :visible.sync="editvisible" rowOid="rowOid" :rowOid="rowOid" type="edit" @submit="EditSumbit"></FormTemplateDialog> <!-- æ¹éç¼è¾--> <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> @@ -187,7 +187,8 @@ upSaveCode, applyGroupCode, receiveEditApply, applySaveCode applySaveCode, exportGroupCodeExcel } from "@/api/GetItem"; import {processTS, changeStatus} from "@/api/template/setPersonnel" import {listCodeAttributeByClassId} from "@/api/integration/integration.js"; @@ -485,8 +486,7 @@ this.LinkObject = row; this.LinkVisible = true; this.LinkList = Object.keys(row).map(property => property) // console.log(result); // console.log(this.LinkObject) }, //ç¶ææç´¢ cellSelectHandler(row) { @@ -554,7 +554,34 @@ if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler() //æ¹éç¼è¾ if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit") //éå¢ç å¯¼åº if (uniqueFlag === 'excelGroupCode') return this.excelGroupCode() //éå¢ç å¯¼å ¥ if (uniqueFlag === 'importGroupCode') return this.importGroupCode("groupCode") }); }, importGroupCode(type){ this.batchImportData.visible = true this.batchImportData.type = type this.batchImportData.codeClassifyOid = this.codeClassifyOid }, //éå¢ç å¯¼åº excelGroupCode(){ debugger this.isLoading = true; exportGroupCodeExcel({ codeClassifyOid: this.codeClassifyOid, }).then(res => { console.log(res.data) if (res) { func.downloadFileByBlobHandler(res); this.$message.success('ä¸è½½æåï¼è¯·æ¥çï¼'); this.isLoading = false; } }).catch(error=>{ this.$message.error(error); this.isLoading = false; }) }, //æ åç³è¯· codeApplyHandler() { @@ -589,22 +616,37 @@ //æ å修订 codeAMENDHandler() { let foundItem = false; this.tableHeadFindData.forEach(item => { if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) { foundItem = true; } }); if (foundItem) { this.amendvisible = true; this.rowOid = this.selectRow[0].oid; if(this.selectRow.length >= 1){ this.$confirm('å·²æåç §æ¯å¦åæ¶å¾éç»§ç»æ§è¡ï¼', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { this.selectRow = []; //åæ¶å¾éç¶æ this.$refs.dataTable.clearSelection(); this.amendvisible = true; }).catch(() => { this.$message({ type: 'info', message: '已忶å½åæä½' }); }); }else { this.amendvisible = true; } } else { if (this.selectRow.length !== 1) { this.$message.warning("è¯·éæ©ä¸æ¡æ°æ®"); if (this.selectRow.length <= 0) { this.$message.warning("请è³å°éæ©ä¸æ¡æ°æ®"); } else { this.amendvisible = true; this.rowOid = this.selectRow[0].oid; } } }, @@ -613,10 +655,6 @@ // console.log(this.nodeClickList) if (this.nodeClickList.children.length >= 1) { this.$message.warning('å½åéæ©çåç±»ä¸æ¯å¶åèç¹ï¼ä¸å 许æ¹éç¼è¾ï¼') return; } if (this.selectRow.length <= 0) { this.$message.warning('è¯·éæ©è³å°ä¸æ¡æ°æ®ï¼') return; } const Editing = this.selectRow.every(item => item.lcstatus === 'Editing'); Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -376,7 +376,7 @@ </el-option> </el-select> <el-switch v-if="item.edit === 'switch'" v-model="row[item.prop]" :disabled="!editOpenFlag" active-value="true" v-show="!AddCellFlag" v-if="item.edit === 'switch'" v-model="row[item.prop]" :disabled="!editOpenFlag" active-value="true" inactive-value="false"> </el-switch> <span v-else>{{ row[item.prop] }}</span> Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -40,12 +40,12 @@ </div> </div> <!-- 左侧æ --> <div style="height: calc(100vh - 230px);overflow: auto"> <div style="height: calc(100vh - 230px);overflow: auto;"> <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false" :option="Treeoption" class="classifyTree" style="height: calc(100vh - 280px)" style="height: calc(100vh - 280px);" @node-click="nodeClick" > </avue-tree> Source/UBCS-WEB/src/views/statistic/statisticPage.vue
@@ -65,7 +65,7 @@ import pieChart from "../../components/StatisticsComponent/pieChart" import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart" import mixCart from "../../components/StatisticsComponent/mixCart" import {getStatisticAnalysis} from "@/api/statistic/chart" export default { components: { lineChart, @@ -179,6 +179,9 @@ //æ°å¢ addHandler() { this.addVisible = true; getStatisticAnalysis({btmNames:'part'} ).then(res=>{ console.log(res) }) }, //åæ¶ escHandler() { Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -857,4 +857,15 @@ ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); } } /** * è·åç»è®¡åææ°æ® * @param btmNames ä¸å¡ç±»å * @return */ @GetMapping("/getStatisticAnalysis") @VciBusinessLog(operateName = "è·åç»è®¡åææ°æ®") public R getStatisticAnalysis(String btmNames) { return engineService.getStatisticAnalysis(btmNames); } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -513,4 +513,10 @@ * @return æ§è¡ç»æ */ String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception; /** * è·åç»è®¡åææ°æ® * @param btmNames ä¸å¡ç±»å * @return æ°æ®é */ R getStatisticAnalysis(String btmNames); } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -60,6 +60,7 @@ import com.vci.ubcs.system.feign.ISysClient; import com.vci.ubcs.system.user.entity.User; import com.vci.ubcs.system.user.feign.IUserClient; import io.swagger.models.auth.In; import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; import oracle.sql.TIMESTAMP; import org.slf4j.Logger; @@ -1140,6 +1141,75 @@ @Override public String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception { return addSaveBZCode(codeBZApplyDTO,authUser); } /** * è·åç»è®¡åææ°æ® * @param btmNames ä¸å¡ç±»å * @return æ°æ®é */ @Override public R getStatisticAnalysis(String btmNames) { //æ¥è¯¢ä¸å¡ç±»å对åºçæ°æ®åºè¡¨ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Arrays.asList(btmNames.split(","))); if (!listR.isSuccess() || listR.getData().size() == 0) { throw new ServiceException("ä¼ å ¥ä¸å¡ç±»åæªæ¥è¯¢å°ç¸åºè¡¨åï¼è¯·æ£æ¥ï¼"); } List tableData = new ArrayList(); for (BtmTypeVO datum : listR.getData()) { String sql = "select count(*) countNum, to_char(CREATETIME, 'mm') countDate\n" + "from "+ datum.getTableName() +"\n" + "where CREATETIME >= to_date(EXTRACT(YEAR FROM SYSDATE) || '-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND LASTV = '1'\n" + "group by to_char(CREATETIME, 'mm')\n" + "order by to_char(CREATETIME, 'mm')"; //æ¥è¯¢åºéè¦å¤ççæ°æ® List<Map> maps = commonsMapper.selectBySql(sql); if(maps.size() == 0){ throw new ServiceException("ä¼ å ¥ç±»å["+ datum.getName() + ":" + datum.getId() +"]æªæ¥å°ç¸å ³ç»è®¡æ°æ®ï¼è¯·ç¡®è®¤!!!!"); } //å½å¹´æ¯ææä»½ä¹åä¹å List<Integer> monthCount = new ArrayList<>(12); //å½å¹´æ¯æçæä»½æ°æ® List<Integer> month = new ArrayList<>(); //è·åå½åæçæ°å Calendar instance = Calendar.getInstance(); int nowmonth = instance.get(Calendar.MONTH) + 1; //ä»1å°12æè¿è¡å¤ç for (Integer i = 1; i <= 12; i++) { //å½åæåæææ°æ®è®¾ç½®ä¸º0 if(i>nowmonth){ monthCount.add(0); month.add(0); } //å½åæä»½ä¹åä¹å Integer count = 0; //å½åæä»½æ°æ® Integer sameMonth = 0; //å¯¹æ°æ®åºæ¥çæ°æ®è¿è¡å¤çï¼å¯¹å½åæä»½è¿è¡ç´¯å for (Map map : maps) { Integer mounDate = Integer.parseInt(String.valueOf(map.get("COUNTDATE"))); if(mounDate <= i){ count += Integer.parseInt(String.valueOf(map.get("COUNTNUM"))); } if (mounDate == i) { sameMonth = Integer.parseInt(String.valueOf(map.get("COUNTNUM"))); } } monthCount.add(count); month.add(sameMonth); } //å¯¹æ°æ®è¿è¡æ´å HashMap<String,Object> menuData = new HashMap<>(); menuData.put("menuName",datum.getName()); menuData.put("codeType",null); ArrayList monthData = new ArrayList(); monthData.add(monthCount); monthData.add(month); menuData.put("menuData",monthData); tableData.add(menuData); } return R.data(tableData); } /** @@ -2434,7 +2504,15 @@ } else { return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE; } } else { } else if(key.endsWith("_in")){ String field = UBCSSqlKeyword.getColumn(key, "_in"); if (referFieldMap.containsKey(field)) { return VciBaseUtil.toInSql(referFieldMap.get(field),value); //referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; } else { return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE; } }else { // if (referFieldMap.containsKey(key)) { // //è¯´ææ¯åç §çï¼æä»¬åç §çæ¥è¯¢é½è®¤ä¸ºæ¯å符串ï¼å¦ææ¯æ¶é´æ ¼å¼çæ¥è¯¢è¯å®æé®é¢ï¼ // String selectKey = referFieldMap.get(key); Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -1290,8 +1290,11 @@ ReadExcelOption reo = new ReadExcelOption(); reo.setReadAllSheet(true); List<SheetDataSet> sheetDataSetList = ExcelUtil.readDataObjectFromExcel(file,null,reo); if (sheetDataSetList.size() > LIMIT + 1) { throw new VciBaseException("为äºä¿è¯ç³»ç»çç¨³å®æ§ï¼è¯·ä¸æ¬¡ä¸è¦å¯¼å ¥è¶ è¿1䏿¡çæ°æ®"); if (sheetDataSetList.get(0).getRowData().size() > LIMIT + 1) { throw new ServiceException("为äºä¿è¯ç³»ç»çç¨³å®æ§ï¼è¯·ä¸æ¬¡ä¸è¦å¯¼å ¥è¶ è¿1䏿¡çæ°æ®"); } if (sheetDataSetList.get(0).getRowData().size() == 0) { throw new ServiceException("æªè¯»åå°excleç¸å ³æ°æ®ï¼è¯·ç¡®è®¤ï¼ï¼ï¼"); } boolean isExport=false; Map<String,List<WriteExcelData>> shetNameMap=new HashMap<>(); @@ -1373,13 +1376,9 @@ codeAllCodeService.updateBatchById(codeAllCodes); } catch (Throwable e) { log.error("æ¹é产çç¼ç çæ¶ååºéäº", e); // thisCbos.stream().forEach(cbo -> { // String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); errorMap.put(sheetRowData.getRowIndex(), ";ç³»ç»é误ï¼å卿°æ®çæ¶ååºéäº:"+e.getMessage()); // }); } } if (errorMap.size() > 0) { isExport = true; } @@ -4991,7 +4990,7 @@ } fieldList=execGroupCodePortDataDTO.getFieldList(); List<Map<String,String>>dataList=new ArrayList<>(); getDatas(classifyFullInfo,templateVO,fieldList,dataList); getDatas(classifyFullInfo,templateVO,fieldList,dataList,null); execGroupCodePortDataDTO.setDataList(dataList);//æ¾æ°æ® execGroupCodePortDataDTO.setSheetName(codeClassifyVO.getName()+"éå¢ç å¯¼å ¥æ¨¡æ¿"); String tempFolder = LocalFileUtil.getDefaultTempFolder(); @@ -5082,6 +5081,86 @@ } /*** * å¯¼å ¥éå¢ç * @param codeClassifyOid * @param file * @return */ public String improtGroupCode(String codeClassifyOid, File file) throws ServiceException { 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 ServiceException("为äºä¿è¯ç³»ç»çç¨³å®æ§ï¼è¯·ä¸æ¬¡ä¸è¦å¯¼å ¥è¶ è¿1䏿¡çæ°æ®"); } CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid); CodeClassifyTemplateVO templateVO = new CodeClassifyTemplateVO(); //é¤å»é»è®¤ç屿§.è¿æåªæè¡¨åæ¾ç¤ºçåæ®µæå¯¼å ¥ List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s ->!DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); ExecGroupCodePortDataDTO execGroupCodePortDataDTO=new ExecGroupCodePortDataDTO(); createExportGroupCodeMapConfig(templateVO,execGroupCodePortDataDTO);//ç»ç»æ°æ® List<CodeAndGroupCodeAttrMappingDTO> codeAttrMapGroupAttrDTOS=execGroupCodePortDataDTO.getCodeAttrMapGroupAttrDTOS(); if(!CollectionUtils.isEmpty(codeAttrMapGroupAttrDTOS)){ throw new ServiceException("éå¢å±æ§æ å°æªé ç½®"); } Map<String, CodeAndGroupCodeAttrMappingDTO> codeSystemObjectMap = codeAttrMapGroupAttrDTOS.stream().filter(codeAttrMappingDTO -> codeAttrMappingDTO != null && StringUtils.isNotBlank(codeAttrMappingDTO.getSourceAttrName())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getSourceAttrName(), t -> t)); SheetDataSet dataSet= sheetDataSetList.get(0); List<String> titleRowData = dataSet.getColName(); Map<Integer/**åå·**/,String/**åæ®µçåç§°**/> fieldIndexMap = new HashMap<>(); getGroupCodeFieldIndexMap(titleRowData,codeAttrMapGroupAttrDTOS,fieldIndexMap); //éè¦å¤ææ¯å¦ææç屿§é½å¨æ¨¡æ¿ä¸äº List<CodeClassifyTemplateAttrVO> unExistAttrVOs = attrVOS.stream().filter(s -> !fieldIndexMap.containsValue(s.getId().toLowerCase(Locale.ROOT)) && com.alibaba.cloud.commons.lang.StringUtils.isBlank(s.getComponentRule()) && com.alibaba.cloud.commons.lang.StringUtils.isBlank(s.getClassifyInvokeAttr())//ç»åè§åååç±»æ³¨å ¥ç¡®å®æ²¡ç»ç¨æ·å¯¼åºå» ).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(unExistAttrVOs)){ String message=unExistAttrVOs.stream().map(CodeClassifyTemplateAttrVO::getName).collect(Collectors.joining(SERIAL_UNIT_SPACE)); throw new VciBaseException("ã" + message + "ãè¿äºå±æ§å¨excel䏿²¡ææ¾å°"); } List<ClientBusinessObject> cboList = new ArrayList<>(); List<SheetRowData> rowDataList = dataSet.getRowData(); getExportGroupCodeDatas(fieldIndexMap,rowDataList,cboList);//æå»ºæ°æ®å¯¹è±¡ List<String> codeList= cboList.stream().map(ClientBusinessObject::getId).collect(Collectors.toList()); List<Map<String,String>>dataList=new ArrayList<>(); getDatas(classifyFullInfo,templateVO,execGroupCodePortDataDTO.getFieldList(),dataList,codeList); //æ¥è¯¢ç³»ç»ä¸åå¨ if(!CollectionUtils.isEmpty(dataList)){ } return ""; } /** * * @param fieldIndexMap * @param rowDataList * @param cboList */ private void getExportGroupCodeDatas(Map<Integer,String> fieldIndexMap,List<SheetRowData> rowDataList,List<ClientBusinessObject>cboList){ rowDataList.stream().forEach(sheetRowData -> { sheetRowData.getData().forEach((index,value)->{ ClientBusinessObject cbo=new ClientBusinessObject(); String field = fieldIndexMap.get(index); if (StringUtils.isBlank(field)) { throw new VciBaseException("第" + (index + 1) + "åçæ é¢å¨ç³»ç»ä¸ä¸åå¨"); } try { cbo.setAttributeValueWithNoCheck(field, value); if (WebUtil.isDefaultField(field)) { WebUtil.setValueToField(field, cbo, value); } } catch (VciBaseException e) { log.error("è®¾ç½®å±æ§çå¼é误", e); } cboList.add(cbo); }); }); } /*** * éå¢å¯¼åºæ¨¡æ¿å±æ§æ å°ä¿¡æ¯è·å * @param templateVO * @param execGroupCodePortDataDTO @@ -5117,23 +5196,51 @@ } /*** * éå¢ç 屿§è½¬æ¢ * @param titleRowData * @param codeAttrMapGroupAttrDTOS * @param fieldIndexMap */ private void getGroupCodeFieldIndexMap(List<String> titleRowData,List<CodeAndGroupCodeAttrMappingDTO> codeAttrMapGroupAttrDTOS,Map<Integer/**åå·**/,String/**åæ®µçåç§°**/> fieldIndexMap){ Map<String, CodeAndGroupCodeAttrMappingDTO> codeSystemObjectMap = codeAttrMapGroupAttrDTOS.stream().filter(codeAttrMappingDTO -> codeAttrMappingDTO != null && StringUtils.isNotBlank(codeAttrMappingDTO.getSourceAttrName())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getSourceAttrName(), t -> t)); for (int i = 0; i < titleRowData.size(); i++) { String title = titleRowData.get(i); CodeAndGroupCodeAttrMappingDTO codeAndGroupCodeAttrMappingDTO =codeSystemObjectMap.get(title.replace(KEY_ATTR_CHAR,"").replace(REQUIRED_CHAR,"")); String id=codeAndGroupCodeAttrMappingDTO.getTargetAttrKey(); if(com.alibaba.cloud.commons.lang.StringUtils.isBlank(id) && "éå¢ç ".equalsIgnoreCase(title)){ id = CODE_GROUP_FIELD; } if(com.alibaba.cloud.commons.lang.StringUtils.isBlank(id) && "ä¼ä¸ç¼ç ".equalsIgnoreCase(title)){ id = CODE_FIELD; } if(com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(id)){ fieldIndexMap.put(i,id); } } } /*** * æ¥è¯¢æªæéå¢ç çæ°æ® * @param classifyFullInfo * @param templateVO * @param selectFieldList * @param dataList */ private void getDatas(CodeClassifyFullInfoBO classifyFullInfo,CodeClassifyTemplateVO templateVO,LinkedList<String> selectFieldList,List<Map<String,String>>dataList){ private void getDatas(CodeClassifyFullInfoBO classifyFullInfo,CodeClassifyTemplateVO templateVO,LinkedList<String> selectFieldList,List<Map<String,String>>dataList,List<String> codeList ){ //å æ¥è¯¢æ°æ® String btmTypeId = classifyFullInfo.getTopClassifyVO().getBtmTypeId(); String codeClassifyOid=classifyFullInfo.getCurrentClassifyVO().getOid(); Map<String, String> conditionMap = new HashMap<>(); Map<String, String> conditionMap=new HashMap<>(); if(conditionMap == null){ conditionMap = new HashMap<>(); } if(conditionMap.containsKey(VciQueryWrapperForDO.OID_FIELD)){ conditionMap.put(VciQueryWrapperForDO.OID_FIELD,QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(conditionMap.get(VciQueryWrapperForDO.OID_FIELD)) + ")"); } if(!CollectionUtils.isEmpty(codeList)){ conditionMap.put("id_in",VciBaseUtil.array2String(codeList.toArray(new String[]{}))); } conditionMap.put("codeclsfpath","*" + codeClassifyOid + "*"); conditionMap.put("groupcode_null", "null"); conditionMap.put("lastr", "1");