From ee68ec1a404b8df679a8cb76ab6eab59979c0b9d Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 05 十二月 2023 23:49:21 +0800 Subject: [PATCH] 赋默认值方法修改 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 187 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 145 insertions(+), 42 deletions(-) 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 6790d64..6cf3566 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 @@ -6,13 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.protobuf.ServiceException; -import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreAttrMapping; import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient; import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO; 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.constant.MdmEngineConstant; import com.vci.ubcs.code.dto.*; import com.vci.ubcs.code.entity.CodeAllCode; import com.vci.ubcs.code.enumpack.CodeDefaultLC; @@ -60,6 +58,7 @@ 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.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; @@ -71,6 +70,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; @@ -88,7 +88,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import static com.alibaba.druid.util.FnvHash.Constants.LIMIT; @@ -199,9 +198,9 @@ private SaveLogUtil saveLogUtil; /** - * 瀵煎嚭鐨勫崄涓囨潯 + * 瀹㈡埛鐜板満excel涓鸿�佺増鏈紝瀵煎嚭鐨勬�绘暟闄愬埗涓�65535 */ - public static final int EXPORT_LIMIT = 100000; + public static final int EXPORT_LIMIT = 65535; /** * 鎵归噺鐢宠锛氶�夊彇閫変腑鍒嗙被涓嬬殑鎵�鏈夋ā鏉垮叧閿睘鎬э紝鐩镐技灞炴�э紝蹇呭~灞炴�э紝鍐欏叆execl涓� @@ -612,6 +611,7 @@ ExcelUtil.writeDataToFile(excelName,eo); return excelName; } + /** * 鑾峰彇鐮佹瀹藉害 * @param codeClassifyOid @@ -1207,6 +1207,7 @@ //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList; CodeClassifyTemplateVO finalTemplateVO = templateVO; + final BladeUser user = AuthUtil.getUser(); ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> { //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); List<String> rowIndexList = ruleRowIndexMap.get(ruleOid); @@ -1223,7 +1224,7 @@ if (!CollectionUtils.isEmpty(thisCbos)) { try { // TODO 澶氱嚎绋嬫祦闂 - productCodeService.productCodeAndSaveData(classifyFullInfo, finalTemplateVO, ruleVOMap.get(ruleOid), null, dataCBOList); + productCodeService.productCodeAndSaveData(classifyFullInfo, finalTemplateVO, ruleVOMap.get(ruleOid), null, dataCBOList,user); importCount.add(dataCBOList.size()); } catch (Throwable e) { log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e); @@ -1274,6 +1275,7 @@ throw e; } } + /** * 瀵煎叆鎵归噺缂栬緫鏁版嵁 * @@ -1282,14 +1284,18 @@ * @param file excel鏂囦欢鐨勪俊鎭� * @return 鏈夐敊璇俊鎭殑excel */ + @Transactional @Override public CodeImProtRusultVO batchImportEdit(String codeClassifyOid, String classifyAttr,File file) throws Throwable{ 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涓囨潯鐨勬暟鎹�"); + 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<>(); @@ -1325,7 +1331,7 @@ titleRowData.remove(titleRowData.size()-1); templateVO= templateVOList.get(0); }catch (Throwable e){ - throw new VciBaseException(e.getMessage()); + throw new ServiceException(e.getMessage()); } CodeClassifyTemplateVO finalTemplateVO = templateVO; @@ -1352,32 +1358,18 @@ //鎴戜滑浣跨敤鍜屼笟鍔$被鍨嬬殑鏉ユ煡璇� List<Map> cbosB = commonsMapper.selectBySql(sqlBO.getSqlUnPage()); if(cbosB.size() == 0){ - throw new ServiceException("缂栫爜锛�"+ sheetRowData.getData().get(0) + ",鏈兘鏌ヨ鍒扮浉鍏虫暟鎹��"); + throw new ServiceException("缂栫爜锛�"+ sheetRowData.getData().get(0) + ",鏈兘鏌ヨ鍒扮浉鍏虫暟鎹��"); } excelToCboEdit(fieldIndexMap, sheetRowData, orderDTO, cbosB.get(0)); orderDTO.setCopyFromVersion(orderDTO.getOid()); orderDTO.setOid(null); try { mdmEngineService.upSaveCode(orderDTO); - List<Map> newCbos = commonsMapper.selectBySql(sqlBO.getSqlUnPage()); - //瀵圭爜鍊艰〃杩涜澶勭悊鏇挎崲鍒涘缓鏁版嵁鐨刼id - QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>(); - wrapper.eq("CREATECODEOID",orderDTO.getCopyFromVersion()); - List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(wrapper); - codeAllCodes.get(0).setCreateCodeOid(newCbos.get(0).get("OID").toString()); - codeAllCodes.get(0).setLastModifyTime(new Date()); - codeAllCodes.get(0).setTs(new Date()); - codeAllCodes.get(0).setLastModifier(AuthUtil.getUser().getUserName()); - 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; } @@ -1684,7 +1676,7 @@ createRedisDatas(uuid + "-ok",templateVO, rowIndexCboMap, dataSet, fieldIndexMap, newErrorMap,true); }else { uuid=""; - + final BladeUser user = AuthUtil.getUser(); //瑕佹妸浠ヤ笂鐨勯敊璇殑閮芥姏鍑哄悗锛屽啀缁х画澶勭悊鏃堕棿鍜岀粍鍚堣鍒� needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); @@ -1704,7 +1696,7 @@ dataCBOIdList.add(baseModel.getOid()); }); try { - codeList = productCodeService.productCodeAndSaveData(classifyFullInfo,templateVO,ruleVO, orderDTO.getSecDTOList(),dataCBOList); + codeList = productCodeService.productCodeAndSaveData(classifyFullInfo,templateVO,ruleVO, orderDTO.getSecDTOList(),dataCBOList,user); //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 engineService.batchSaveSelectChar(templateVO, dataCBOList); } catch (Exception e) { @@ -1837,10 +1829,10 @@ tableName = VciBaseUtil.getTableName(btmTypeId); } - String countSql = "select count(*) from " + tableName +" where 1=1" + + String countSql = "select count(*) from (select * FROM " + tableName +" where 1=1" + " and lastr = '1'" + " and lastv='1'" + - " and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%'"; + " and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%' {}"; //鍏堟煡璇㈡�绘暟 int total = 0; @@ -1854,8 +1846,7 @@ thisPage.setSort(exportAttrDTO.getSort()); thisPage.setOrder(exportAttrDTO.getOrder()); thisPage.addDefaultDesc("createTime"); - - total += commonsMapper.queryCountBySql(countSql); + total += commonsMapper.queryCountBySql(StringUtil.format(countSql," limit " + exportAttrDTO.getLimit() +" offset "+ i +")subquery;")); } }else{ total = commonsMapper.queryCountBySql(countSql); @@ -1893,10 +1884,10 @@ } Map<String, String> finalConditionMap = conditionMap; //骞惰鏌ヨ鐪嬬湅 - SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); + //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); indexList.stream().forEach(index->{ //绾跨▼鐨勬柟寮忥紝鎵�浠ラ渶瑕佽缃綋鍓嶇敤鎴� - VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); + //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); PageHelper thisPage = new PageHelper(EXPORT_LIMIT); thisPage.setPage(index+1); thisPage.setSort(exportAttrDTO.getSort()); @@ -2120,7 +2111,9 @@ }).collect(Collectors.toList()); List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList; Map<String, CodeRuleVO> finalRuleVOMap = ruleVOMap; - ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> { + // TODO锛� 澶氱嚎绋嬫祦濂楀绾跨▼娴侊紝鏈夊潙锛屾垜鎶婅繖鍎挎敼鎴愬崟绾跨▼浜� + final BladeUser user = AuthUtil.getUser(); + ruleRowIndexMap.keySet().stream().forEach(ruleOid -> { List <BaseModel>dataCBOList=new CopyOnWriteArrayList<>(); List<String> rowIndexList = ruleRowIndexMap.get(ruleOid); List<ClientBusinessObject> thisCbos = needSaveCboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList()); @@ -2131,7 +2124,7 @@ dataCBOList.add(baseModel); }); try { - productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, finalRuleVOMap.get(ruleOid), null, dataCBOList); + productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, finalRuleVOMap.get(ruleOid), null, dataCBOList, user); } catch (Throwable e) { //success=false; log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e); @@ -2144,6 +2137,7 @@ engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList); }); }else { + final BladeUser user = AuthUtil.getUser(); List<BaseModel> dataCBOList=new ArrayList<>(); List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); @@ -2157,7 +2151,7 @@ dataCBOList.add(baseModel); }); try { - productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); + productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList,user); } catch (Exception e) { log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e); needSaveCboList.stream().forEach(cbo -> { @@ -2465,6 +2459,7 @@ List<String>allNeedSaveCboList=new ArrayList<>(); List<BaseModel> dataCBOList=new ArrayList<>(); + final BladeUser user = AuthUtil.getUser(); needSaveCboList.stream().forEach(clientBusinessObject -> { BaseModel baseModel=new BaseModel(); BeanUtil.convert(clientBusinessObject,baseModel); @@ -2474,7 +2469,7 @@ }); try { List<String>applyGroupCodeIdList=new ArrayList<>(); - productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); + productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList,user); //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 engineService.batchSaveSelectChar(templateVO, dataCBOList); // if(!isProcess){ @@ -2502,7 +2497,6 @@ resultDataObjectDetailDO.setErrorid("0"); } resultDataObjectDetailDO.setId(sourceOid); - resultDataObjectDetailDO.setMsg(msg); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); //澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁 @@ -3565,7 +3559,7 @@ if (StringUtils.isBlank(field)) { throw new VciBaseException("绗�" + (index + 1) + "鍒楃殑鏍囬鍦ㄧ郴缁熶腑涓嶅瓨鍦�"); } - map.put(field,value); + map.put(field.toUpperCase(),value); }); try { @@ -4271,6 +4265,7 @@ Map<String,List<BaseModel>> indexTODataMap=new ConcurrentHashMap<>(); // 鏌ヨ涓嶉渶瑕佸弬涓庡叧閿睘鎬ф牎楠岀殑闄よ嚜宸变互澶栫殑鎵�鏈夊垎绫籵id final String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid()); + final BladeUser user = AuthUtil.getUser(); List<ClientBusinessObject> repeatDataMap = cboList.parallelStream().filter(cbo -> { //姣忚閮藉緱鏌ヨ.濡傛灉鍏朵腑鍑虹幇浜嗛敊璇紝鎴戜滑灏辩洿鎺ユ姏鍑哄紓甯革紝鍏朵綑鐨勬樉绀� //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); @@ -4296,7 +4291,7 @@ List<BaseModel> newCboList = new ArrayList<>(); newDataList.stream().forEach(stringStringMap -> { BaseModel baseModel=new BaseModel(); - DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel); + DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel,user); baseModel.setData(stringStringMap); newCboList.add(baseModel); }); @@ -4990,7 +4985,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(); @@ -5081,6 +5076,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 @@ -5116,23 +5191,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"); -- Gitblit v1.9.3