From 4b88f8fa8ff1e401abaf606db815546af68e0c86 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 27 七月 2023 16:12:12 +0800
Subject: [PATCH] 主题库分类注入数据格式
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 303 ++++++++++++++++++++++++++++++++++++++------------
1 files changed, 230 insertions(+), 73 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 051c73b..b8a4da5 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
@@ -22,6 +22,9 @@
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.entity.ProcessStageAttr;
+import com.vci.ubcs.flow.core.feign.IMDMIFlowAttrClient;
+import com.vci.ubcs.flow.core.vo.ProcessStageAttrVO;
import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
import com.vci.ubcs.omd.cache.EnumCache;
import com.vci.ubcs.omd.feign.*;
@@ -38,6 +41,7 @@
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.constant.RegExpConstant;
+import com.vci.ubcs.starter.web.constant.VciSystemVarConstants;
import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
@@ -66,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;
@@ -278,6 +283,11 @@
* 鏇挎崲瀛楃
*/
public static final String SPECIAL_CHAR = "VCI";
+ /**
+ * 涓绘暟鎹祦绋嬮樁娈垫湇鍔�
+ */
+ @Autowired
+ private IMDMIFlowAttrClient imdmiFlowAttrClient;
// @Autowired
// private CodeOsbtmtypeMapper codeOsbtmtypeMapper;----
@@ -349,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<>();
@@ -366,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());
}
/**
@@ -421,6 +429,7 @@
cbo.setLastModifyTime(new Date());
cbo.setCreator(AuthUtil.getUser().getUserName());
cbo.setLastModifier(AuthUtil.getUser().getUserName());
+ cbo.setTenantId(AuthUtil.getTenantId());
// //TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
// //end -- modify by lihang @20220407
@@ -731,7 +740,7 @@
conditionMap.put(queryKey, queryValue);
} else {
//涓虹┖鐨勬椂鍊欎笉浠h〃涓嶆牎楠岋紝鍙槸涓嶅幓闄ょ浉鍏崇殑淇℃伅
- conditionMap.put("t." + attrId, value);
+ conditionMap.put("t." + attrId, "'" +value+ "'");
}
}
}
@@ -908,7 +917,7 @@
// baseModels.stream().forEach(model-> {
try {
- map = VciBaseUtil.convertBean2Map(cbo);
+ map = VciBaseUtil.convertBean2Map(cbo,null);
} catch (Exception e) {
throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
}
@@ -934,6 +943,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) {
@@ -963,13 +992,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)) {
//鎸夌収鍒嗙粍鐨勫睘鎬ф帓鍒楋紝鎵惧埌姣忎竴涓垎缁勭殑绗竴涓睘鎬�
@@ -1377,7 +1409,16 @@
public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) {
CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper);
// List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
- List<Map<String, String>> maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
+ List<Map<String, String>> maps = null;
+ try {
+ maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
+ }catch (Exception e){
+ String errorMessage = e.getMessage();
+ if (errorMessage.contains("鏃犳硶瑙f瀽鐨勬垚鍛樿闂〃杈惧紡")) {
+ throw new ServiceException("缂哄皯"+errorMessage.substring(errorMessage.indexOf("[t.") + 1, errorMessage.indexOf("]"))+"瀛楁");
+ }
+ throw new ServiceException(e.getMessage());
+ }
DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
List<Map<String, String>> dataList = new ArrayList<>();
@@ -1385,7 +1426,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));
@@ -1440,26 +1481,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))
@@ -1574,17 +1621,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);
@@ -1614,7 +1669,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);
@@ -1658,11 +1713,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));
});
}
//缁勫悎璧锋潵
@@ -1977,7 +2033,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));
@@ -1998,13 +2054,21 @@
sql.append("t.");
}
if (value.startsWith(QueryOptionConstant.IN)) {
- sql.append(selectKey)
+ if(value.startsWith(QueryOptionConstant.IN+"('") && value.endsWith("')")){
+ sql.append(selectKey)
+ .append(SPACE)
+ .append("in")
+ .append(SPACE)
+ .append(value.replace(QueryOptionConstant.IN, ""));
+ }else{
+ sql.append(selectKey)
.append(SPACE)
.append("in")
.append(SPACE)
.append("(")
.append(value.replace(QueryOptionConstant.IN, ""))
.append(")");
+ }
} else if (value.startsWith(QueryOptionConstant.NOTIN)) {
sql.append(selectKey)
.append(SPACE)
@@ -2839,6 +2903,51 @@
return uiInfoVO;
}
+ /**
+ * 浣跨敤鍒嗙被鐨勪富閿幏鍙栬〃鏍肩殑瀹氫箟-ubcs鍚庝慨鏀硅幏鍙栨祦绋嬮樁娈电啛鎮夎幏鍙栨柟娉�
+ * @param codeClassifyOid
+ * @param templateId
+ * @param taskId
+ * @param modelKey
+ * @return
+ */
+ public MdmUIInfoVO getTableDefineByClassifyOid_v2(String codeClassifyOid,String templateId,String taskId,String modelKey) {
+ MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
+ CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
+ uiInfoVO.setTemplateVO(templateVO);
+ UITableDefineVO uiTableDefineVO = wrapperTableDefineByTemplate(templateVO, true);
+ R<List<ProcessStageAttrVO>> r = imdmiFlowAttrClient.ssslist(templateId,modelKey,taskId);
+ List<ProcessStageAttrVO> stageAttrVOS = r.getData();
+ List<String> attrList = new ArrayList<>();
+ stageAttrVOS.stream().forEach(attr->{
+ attrList.add(attr.getAttrId());
+ });
+ uiTableDefineVO.getCols().stream().forEach(list -> {
+ List<UITableFieldVO> visiableTableField = new ArrayList<>();
+ visiableTableField = list.stream().filter(col ->
+ attrList.stream().anyMatch(s -> StringUtils.equalsIgnoreCase(col.getField(), s) ||
+ (StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s))
+ || (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s))
+ )).collect(Collectors.toList());
+
+ visiableTableField.stream().forEach(vo -> {
+ uiTableDefineVO.setHasEditor(true);
+ if ("refer".equalsIgnoreCase(vo.getFieldType())) {
+ setReferConfig2EditConfig(vo);
+ } else if ("combox".equalsIgnoreCase(vo.getFieldType())) {
+ setComboxConfig2EditConfig(vo);
+ } else if (StringUtils.isNotBlank(vo.getDateFormate())) {
+ vo.setEdit("date");
+ } else {
+ vo.setEdit(vo.getFieldType());
+ }
+ });
+ });
+ uiInfoVO.setTableDefineVO(uiTableDefineVO);
+ wrapperResemble(templateVO, uiInfoVO);
+ return uiInfoVO;
+ }
+
/**
* 妯℃澘灞炴�ц浆鎹负琛ㄦ牸瀹氫箟鐨勪俊鎭�
*
@@ -2858,38 +2967,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 -> {
@@ -3099,6 +3213,33 @@
}
return uiInfoVO;
}
+ @Override
+ public MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid, String functionId,String templateId,String taskId,String modelKey){
+// MdmUIInfoVO uiInfoVO = getTableDefineByClassifyOid_v2(codeClassifyOid,templateId,taskId,modelKey);
+ MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
+ R<List<ProcessStageAttrVO>> r = imdmiFlowAttrClient.ssslist(templateId,modelKey,taskId);
+ List<ProcessStageAttrVO> stageAttrVOS = r.getData();
+ Set<String> attrSet = new HashSet<>();
+ stageAttrVOS.stream().forEach(attr->{
+ attrSet.add(attr.getAttrId());
+ });
+
+ try {
+
+ UITableDefineVO tableDefineVO = uiInfoVO.getTableDefineVO();
+ List<List<UITableFieldVO>> tableFieldVOs = tableDefineVO.getCols();
+ List<UITableFieldVO> uiTableFieldVOS = tableFieldVOs.get(0);
+ uiTableFieldVOS.stream().forEach(ui->{
+// if(!attrSet.contains(ui.getField())){
+// ui.setEdit(null);
+// ui.setEditConfig(null);
+// }
+ });
+ }catch (Exception e){
+ throw new ServiceException("妯℃澘娌℃湁瀹氫箟灞炴�э紝璇诲彇琛ㄥご澶辫触!");
+ }
+ return uiInfoVO;
+ }
/**
* 浣跨敤鍒嗙被涓婚敭鑾峰彇宸ュ叿鏍忎腑鐨勬寜閽俊鎭�
@@ -3149,11 +3290,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());
}
@@ -3304,12 +3453,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());
}
@@ -3335,7 +3492,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())) {
@@ -3357,7 +3514,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