From e11deb9e6fb08fa526175b3057e03f0e6ee40e18 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 24 七月 2023 20:11:01 +0800 Subject: [PATCH] 修改菜单别名重复问题 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 199 ++++++++++++++++++++++++++++++++----------------- 1 files changed, 128 insertions(+), 71 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 16b0f3d..65b279c 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -70,6 +70,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.RequestBody; import javax.annotation.Resource; import java.beans.BeanInfo; @@ -358,8 +359,6 @@ if (baseModels.size() == 0) { throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�"); } - // 寰呭畬鍠� - List<BtmTypeVO> cboList = null; // btmTypeClient.selectList(wrapper); //杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈� // Map<String, String> conditionMap = new HashMap<>(); QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>(); @@ -375,19 +374,19 @@ if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } - commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid())); + // 鐩存帴鍒犻櫎锛屼笉缁欑姸鎬� + commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid())); + // commonsMapper.updateByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()),CodeDefaultLC.TASK_BACK.getValue()); } else { for (BaseModel baseModel : baseModels) { baseModel.setLcStatus(baseModelDTO.getLcStatus()); } updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels); - // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus()); } for (CodeAllCode codeCbo : codeCbos) { codeCbo.setLcStatus(baseModelDTO.getLcStatus()); } codeAllCodeService.updateBatchById(codeCbos); - // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus()); } /** @@ -400,7 +399,6 @@ public String addSaveCode(CodeOrderDTO orderDTO) throws Exception { VciBaseUtil.alertNotNull(orderDTO, "缂栫爜鐢宠鐩稿叧鐨勫睘鎬у拰鐮佹鐨勫唴瀹归兘涓虹┖", orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭", orderDTO.getTemplateOid(), "妯℃澘鐨勪富閿�", orderDTO.getCodeRuleOid(), "缂栫爜瑙勫垯鐨勪富閿�"); - VciSystemVarConstants.getSystemVarValueMap(); CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid()); @@ -918,7 +916,7 @@ // baseModels.stream().forEach(model-> { try { - map = VciBaseUtil.convertBean2Map(cbo); + map = VciBaseUtil.convertBean2Map(cbo,null); } catch (Exception e) { throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage()); } @@ -944,6 +942,26 @@ } } } + + /** + * 灏佽寮�鍏崇殑鍐呭锛屽父鐢ㄤ簬瀵煎嚭 + * @param dataMap 鏁版嵁鐨勫唴瀹� + * @param templateVO 妯℃澘鐨勬樉绀� + */ + @Override + public void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO){ + List<String> booleanAttributes = templateVO.getAttributes().stream().filter(s -> VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(s.getAttributeDataType())).map(s -> s.getId().toLowerCase(Locale.ROOT)).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(booleanAttributes)){ + dataMap.stream().forEach(data -> { + booleanAttributes.stream().forEach(attrId->{ + if(data.containsKey(attrId)){ + String value = data.get(attrId); + data.put(attrId,BooleanEnum.TRUE.getValue().equalsIgnoreCase(value)?"鏄�":"鍚�"); + } + }); + }); + } + } @Override public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) { @@ -973,13 +991,16 @@ CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid); List<UIFormItemVO> itemVOS = new ArrayList<>(); - Map<String, List<CodeClassifyTemplateAttrVO>> attrGroupMap = templateVO.getAttributes().stream(). - filter(s -> StringUtils.isNotBlank(s.getAttributeGroup())).collect(Collectors.groupingBy(s -> s.getAttributeGroup())); - templateVO.getAttributes().forEach(attrVO -> { - UIFormItemVO formItemVO = templateAttr2FormField(attrVO, templateVO.getBtmTypeId()); - itemVOS.add(formItemVO); - }); + Map<String, List<CodeClassifyTemplateAttrVO>> attrGroupMap = new HashMap<>(); + if (Func.isNotEmpty(templateVO.getAttributes())) { + attrGroupMap = templateVO.getAttributes().stream(). + filter(s -> StringUtils.isNotBlank(s.getAttributeGroup())).collect(Collectors.groupingBy(s -> s.getAttributeGroup())); + templateVO.getAttributes().forEach(attrVO -> { + UIFormItemVO formItemVO = templateAttr2FormField(attrVO, templateVO.getBtmTypeId()); + itemVOS.add(formItemVO); + }); + } //澶勭悊灞炴�у垎缁� if (!CollectionUtils.isEmpty(attrGroupMap)) { //鎸夌収鍒嗙粍鐨勫睘鎬ф帓鍒楋紝鎵惧埌姣忎竴涓垎缁勭殑绗竴涓睘鎬� @@ -1395,7 +1416,7 @@ maps.stream().forEach(map -> { Map<String, String> data = new HashMap<>(); for (String s : map.keySet()) { - data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); + data.put(s.toLowerCase(Locale.ROOT), map.get(s)==null?null:String.valueOf(map.get(s))); } // map.forEach((key, value) -> { // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); @@ -1450,26 +1471,32 @@ } //鍏堣浆鎹竴涓嬫椂闂存牸寮� List<String> finalOnlySelectAttrIdList = onlySelectAttrIdList.stream().collect(Collectors.toList()); - List<CodeClassifyTemplateAttrVO> dateFormatAttrVOs = templateVO.getAttributes().stream().filter( - s -> StringUtils.isNotBlank(s.getCodeDateFormat()) && - (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT))) - ).collect(Collectors.toList()); - //鏋氫妇鐨勫唴瀹� - List<CodeClassifyTemplateAttrVO> enumAttrVOs = templateVO.getAttributes().stream().filter( - s -> (StringUtils.isNotBlank(s.getEnumId()) || StringUtils.isNotBlank(s.getEnumString())) - && - (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT))) - ).collect(Collectors.toList()); + List<CodeClassifyTemplateAttrVO> dateFormatAttrVOs = new ArrayList<>(); + List<CodeClassifyTemplateAttrVO> enumAttrVOs = new ArrayList<>(); + if (Func.isNotEmpty(templateVO.getAttributes())) { + dateFormatAttrVOs = templateVO.getAttributes().stream().filter( + s -> StringUtils.isNotBlank(s.getCodeDateFormat()) && + (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT))) + ).collect(Collectors.toList()); + //鏋氫妇鐨勫唴瀹� + enumAttrVOs = templateVO.getAttributes().stream().filter( + s -> (StringUtils.isNotBlank(s.getEnumId()) || StringUtils.isNotBlank(s.getEnumString())) + && + (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT))) + ).collect(Collectors.toList()); + } List<String> userIds = new ArrayList<>(); - dataMap.stream().forEach(data -> { + List<CodeClassifyTemplateAttrVO> finalDateFormatAttrVOs = dateFormatAttrVOs; + List<CodeClassifyTemplateAttrVO> finalEnumAttrVOs = enumAttrVOs; + dataMap.stream().forEach(data -> { //澶勭悊鏃堕棿 if (!form) { //琛ㄥ崟鐨勬椂鍊欏彧鑳界敤缁熶竴鐨勬椂闂存牸寮� - wrapperDateFormat(dateFormatAttrVOs, data); + wrapperDateFormat(finalDateFormatAttrVOs, data); } //澶勭悊鏋氫妇 - wrapperEnum(enumAttrVOs, data); + wrapperEnum(finalEnumAttrVOs, data); String lcstatus = data.get(VciQueryWrapperForDO.LC_STATUS_FIELD); String copyFromVersion = data.getOrDefault(COPY_FROM_VERSION, ""); if ((CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus) || CodeDefaultLC.AUDITING.getValue().equalsIgnoreCase(lcstatus)) @@ -1584,17 +1611,25 @@ //鍥犱负鍙傜収涓嶄竴瀹氭槸鍦ㄥ钩鍙扮殑灞炴�ф睜閲岄潰璁剧疆锛屾墍浠ユ垜浠緱闇�瑕佽嚜琛屽鐞� //鍙傝�僔ciQueryWrapper鏉ュ鐞� //1. 鎵惧埌鎵�鏈夌殑瀛楁锛� - Map<String, CodeClassifyTemplateAttrVO> attrVOMap = templateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); - List<String> selectFieldList = attrVOMap.keySet().stream().collect(Collectors.toList()); + Map<String, CodeClassifyTemplateAttrVO> attrVOMap = new HashMap<>(); + List<String> selectFieldList = new ArrayList<>(); + if(Func.isNotEmpty(templateVO.getAttributes())){ + attrVOMap = templateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); + selectFieldList = attrVOMap.keySet().stream().collect(Collectors.toList()); + } //鎵�鏈夌殑鍙傜収鐨勫瓧娈� Map<String/**灞炴�у瓧娈�**/, String> joinTableList = new ConcurrentHashMap<>(); - List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter( - s -> StringUtils.isNotBlank(s.getReferBtmId()) || StringUtils.isNotBlank(s.getReferConfig()) - ).collect(Collectors.toList()); + List<CodeClassifyTemplateAttrVO> referAttrVOs = null; + if (Func.isNotEmpty(templateVO.getAttributes())) { + referAttrVOs = templateVO.getAttributes().stream().filter( + s -> StringUtils.isNotBlank(s.getReferBtmId()) || StringUtils.isNotBlank(s.getReferConfig()) + ).collect(Collectors.toList()); + } Map<String/**鍙傜収鐨勫睘鎬�**/, String/**瀹為檯鐨勫瓧娈�**/> referFieldMap = new ConcurrentHashMap<>(); if (!CollectionUtils.isEmpty(referAttrVOs)) { - referAttrVOs.parallelStream().forEach(attrVO -> { + List<String> finalSelectFieldList = selectFieldList; + referAttrVOs.parallelStream().forEach(attrVO -> { UIFormReferVO referVO = null; if (StringUtils.isNotBlank(attrVO.getReferConfig())) { referVO = JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class); @@ -1624,7 +1659,7 @@ showFieldInSource = textFields.get(0); } referFieldMap.put(attrVO.getId(), referTableNick + "." + showFieldInSource); - selectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField); + finalSelectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField); }); } R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getDefaultAttrByBtmId(btmType); @@ -1668,11 +1703,12 @@ } }); - andCondtionMap.forEach((k, v) -> { - andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap, btmType)); + Map<String, CodeClassifyTemplateAttrVO> finalAttrVOMap = attrVOMap; + andCondtionMap.forEach((k, v) -> { + andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, finalAttrVOMap, btmType)); }); orConditionMap.forEach((k, v) -> { - orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap, btmType)); + orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, finalAttrVOMap, btmType)); }); } //缁勫悎璧锋潵 @@ -1987,7 +2023,7 @@ } R<BtmTypeVO> r = btmTypeClient.getDefaultAttrByBtmId(btmType); List<BtmTypeAttributeVO> attributes = r.getData().getAttributes(); - if (r.getCode() != 200 || attributes.isEmpty()) { + if (!r.isSuccess() || attributes.isEmpty()) { return false; } return attributes.stream().anyMatch(item -> item.getId().equals(selectKey)); @@ -2913,38 +2949,43 @@ List<UITableFieldVO> fieldVOList = new ArrayList<>(); Map<String, String> comboxOrReferFieldMap = new HashMap<>(); - templateVO.getAttributes().forEach(attrVO -> { - UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO, forEdit); - if ("combox".equalsIgnoreCase(tableFieldVO.getFieldType())) { - comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField()); - } - if ("refer".equalsIgnoreCase(tableFieldVO.getFieldType())) { - comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField()); - } - if (StringUtils.isNotBlank(tableFieldVO.getEdit())) { - tableDefineVO.setHasEditor(true); - } - fieldVOList.add(tableFieldVO); - }); + if (Func.isNotEmpty(templateVO.getAttributes())) { + templateVO.getAttributes().forEach(attrVO -> { + UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO, forEdit); + if ("combox".equalsIgnoreCase(tableFieldVO.getFieldType())) { + comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField()); + } + if ("refer".equalsIgnoreCase(tableFieldVO.getFieldType())) { + comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField()); + } + if (StringUtils.isNotBlank(tableFieldVO.getEdit())) { + tableDefineVO.setHasEditor(true); + } + fieldVOList.add(tableFieldVO); + }); + } List<List<UITableFieldVO>> cols = new ArrayList<>(); cols.add(fieldVOList); tableDefineVO.setCols(cols); Map<String, UITableFieldVO> fieldVOMap = fieldVOList.stream().collect(Collectors.toMap(s -> s.getField().toLowerCase(Locale.ROOT), t -> t)); - //鏌ヨ灞炴�� - List<CodeClassifyTemplateAttrVO> queryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getQueryAttrFlag())).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(queryAttrVOs)) { - List<UITableFieldVO> queryFieldVOs = new ArrayList<>(); - queryAttrVOs.stream().forEach(attrVO -> { - String attrId = attrVO.getId().toLowerCase(Locale.ROOT); - attrId = comboxOrReferFieldMap.getOrDefault(attrId, attrVO.getId()).toLowerCase(Locale.ROOT); - if (fieldVOMap.containsKey(attrId)) { - queryFieldVOs.add(fieldVOMap.get(attrId)); - } - }); - tableDefineVO.setQueryColumns(queryFieldVOs); - } - //楂樼骇灞炴�� - List<CodeClassifyTemplateAttrVO> seniorQueryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getSeniorQueryAttrFlag())).collect(Collectors.toList()); + List<CodeClassifyTemplateAttrVO> seniorQueryAttrVOs = null; + if (Func.isNotEmpty(templateVO.getAttributes())) { + //鏌ヨ灞炴�� + List<CodeClassifyTemplateAttrVO> queryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getQueryAttrFlag())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(queryAttrVOs)) { + List<UITableFieldVO> queryFieldVOs = new ArrayList<>(); + queryAttrVOs.stream().forEach(attrVO -> { + String attrId = attrVO.getId().toLowerCase(Locale.ROOT); + attrId = comboxOrReferFieldMap.getOrDefault(attrId, attrVO.getId()).toLowerCase(Locale.ROOT); + if (fieldVOMap.containsKey(attrId)) { + queryFieldVOs.add(fieldVOMap.get(attrId)); + } + }); + tableDefineVO.setQueryColumns(queryFieldVOs); + } + //楂樼骇灞炴�� + seniorQueryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getSeniorQueryAttrFlag())).collect(Collectors.toList()); + } if (!CollectionUtils.isEmpty(seniorQueryAttrVOs)) { List<UITableFieldVO> queryFieldVOs = new ArrayList<>(); seniorQueryAttrVOs.stream().forEach(attrVO -> { @@ -3231,11 +3272,19 @@ if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } - //灏哹ean杞负map,mybatis缁熶竴澶勭悊 + //鑾峰彇褰撳墠涓氬姟绫诲瀷鎵�鏈夊瓧娈电敤鏉ュ仛瀵规瘮 + R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType); + if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲瀛楁淇℃伅锛岃妫�鏌ワ紒"); + } + Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> { + return btmTypeAttributeVO.getId(); + }).collect(Collectors.toSet()); + //灏哹ean杞负map,mybatis缁熶竴澶勭悊 List<Map<String, String>> maps = new ArrayList<>(); baseModels.stream().forEach(model -> { try { - maps.add(VciBaseUtil.convertBean2Map(model)); + maps.add(VciBaseUtil.convertBean2Map(model,existFild)); } catch (Exception e) { throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.toString()); } @@ -3386,12 +3435,20 @@ if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } + //鑾峰彇褰撳墠涓氬姟绫诲瀷鎵�鏈夊瓧娈电敤鏉ュ仛瀵规瘮 + R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType); + if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲瀛楁淇℃伅锛岃妫�鏌ワ紒"); + } + Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> { + return btmTypeAttributeVO.getId(); + }).collect(Collectors.toSet()); //灏哹ean杞负map,mybatis缁熶竴澶勭悊 List<Map<String, String>> maps = new ArrayList<>(); baseModels.stream().forEach(model -> { try { - maps.add(VciBaseUtil.convertBean2Map(model)); + maps.add(VciBaseUtil.convertBean2Map(model,existFild)); } catch (Exception e) { throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage()); } @@ -3417,7 +3474,7 @@ //checkReferConfig(referConfigVO); //浣跨敤涓氬姟绫诲瀷鏌ヨ R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType()); - if (allAttributeByBtmId.getCode() != 200) { + if (!allAttributeByBtmId.isSuccess()) { throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�"); } if (Func.isEmpty(allAttributeByBtmId.getData())) { @@ -3439,7 +3496,7 @@ } R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referConfigVO.getReferType())); - if (listR.getCode() != 200) { + if (!listR.isSuccess()) { throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�"); } if (listR.getData().isEmpty()) { -- Gitblit v1.9.3