From e374aba8fd09d57ed79691a3876ef11625fbac6d Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期五, 01 十二月 2023 15:27:58 +0800 Subject: [PATCH] 集团码导出模板功能添加 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java | 7 +++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java | 2 3 files changed, 116 insertions(+), 1 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java index f456e51..db787cb 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java @@ -779,7 +779,7 @@ @GetMapping("/exportGroupCodeExcel") @VciBusinessLog(operateName = "瀵煎嚭闆嗗洟鐮�") public void exportGroupCodeExcel(String codeClassifyOid, HttpServletResponse response) throws IOException{ - String excelName = mdmIOService.createImportExcel(codeClassifyOid,false); + String excelName = mdmIOService.exportGroupCodeExcel(codeClassifyOid); try { ControllerUtil.writeFileToResponse(response,excelName); } catch (Throwable e) { diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java index d063ec2..4eaad49 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java @@ -119,4 +119,11 @@ * @param operationType */ void sendApplyGroupcode(List<String> idList,String btmName,String operationType); + + /*** + * 瀵煎嚭闆嗗洟鐮佹ā鏉� + * @param classOid + * @return + */ + String exportGroupCodeExcel(String classOid); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java index 99278b3..96383b7 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java @@ -4605,4 +4605,112 @@ } } + /*** + * @param codeClassifyOid + * @return + */ + @Override + public String exportGroupCodeExcel(String codeClassifyOid) { + List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>(); + VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭"); + CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid); + //鎵炬ā鏉� + CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyOid); + templateVOList.add(templateVO); + WriteExcelOption eo = new WriteExcelOption(); + eo.setAppend(true); + //澧炲姞妯℃澘鐨勪俊鎭鍏� + LinkedList<WriteExcelData> tempEDList = new LinkedList<>(); + tempEDList.add(new WriteExcelData(0,0,"妯℃澘涓婚敭")); + tempEDList.add(new WriteExcelData(0,1,"妯℃澘浠e彿")); + tempEDList.add(new WriteExcelData(0,2,"妯℃澘鍚嶇О")); + CodeClassifyTemplateVO codeClassifyTemplateVO = new CodeClassifyTemplateVO(); + BeanUtils.copyProperties(templateVO,codeClassifyTemplateVO); + //缁勫悎鏍煎紡鐨勪笉瀵煎叆锛� + // 鏋氫妇鐨勬彁渚涘簭鍒楃殑閫夋嫨 + //鏃堕棿鍏ㄩ儴缁熶竴涓簓yyy-MM-dd HH:mm:ss + //鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉� + //鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑 + //缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏� + List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList=codeClassifyTemplateVO.getAttributes(); + if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrVOList)) { + if (CollectionUtils.isEmpty(codeClassifyTemplateAttrVOList)) { + throw new VciBaseException("妯℃澘娌℃湁閰嶇疆灞炴��"); + } + } + List<CodeClassifyTemplateAttrVO> templateAttrVOS = codeClassifyTemplateAttrVOList.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<CodeClassifyTemplateAttrVO> idAttrVOList = codeClassifyTemplateVO.getAttributes().stream().filter(s -> s.getId().equalsIgnoreCase(CODE_FIELD)).collect(Collectors.toList()); + LinkedList<WriteExcelData> excelDataList = new LinkedList<>(); + Workbook workbook = new HSSFWorkbook(); + excelDataList.add(new WriteExcelData(0,0,!CollectionUtils.isEmpty(idAttrVOList)?idAttrVOList.get(0).getName():"浼佷笟缂栫爜",idAttrVOList.get(0).getId())); + excelDataList.add(new WriteExcelData(0,1,"闆嗗洟鐮�","")); + for (int i = 0; i < templateAttrVOS.size(); i++) { + CodeClassifyTemplateAttrVO attrVO = templateAttrVOS.get(i); + + Object text = attrVO.getName(); + text = exportKeyAndRequired(workbook, attrVO, text); + int colIndex = 2 + i; + WriteExcelData excelData = new WriteExcelData(0, colIndex, text, attrVO.getId()); + 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("璇峰湪搴忓垪涓�夋嫨姝g‘鐨勫��"); + 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("璇峰湪搴忓垪涓�夋嫨姝g‘鐨勫��"); + excelDataList.add(ed); + } + } + eo.addSheetDataList(templateVO.getName(),excelDataList); + tempEDList.add(new WriteExcelData(1,0,templateVO.getOid())); + tempEDList.add(new WriteExcelData(1,1,templateVO.getId())); + tempEDList.add(new WriteExcelData(1,2,templateVO.getName())); + String excelName = LocalFileUtil.getDefaultTempFolder() + File.separator + codeClassifyVO.getName() + "闆嗗洟鐮乢瀵煎叆妯℃澘.xls"; + eo.addSheetDataList(templateVOList.size()+"妯℃澘淇℃伅銆愯鍕垮垹闄ゆ垨绉诲姩銆�",tempEDList); + ExcelUtil.writeDataToFile(excelName,eo); + return excelName; + } } -- Gitblit v1.9.3