From 69c44007184b0c496affd99ae785c747bba3dd48 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 03 八月 2023 15:47:41 +0800
Subject: [PATCH] 主题库保存校验
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 318 +++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 270 insertions(+), 48 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 35e96c2..e6dcb80 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
@@ -5,23 +5,23 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
-import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.CodeDeleteBatchDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.*;
-import com.vci.ubcs.code.mapper.CodeWupinMapper;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
+import com.vci.ubcs.code.vo.CodeReferConfigVO;
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.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.*;
@@ -91,7 +91,7 @@
* @date 2022-2-22
*/
@Service
-public class MdmEngineServiceImpl extends ServiceImpl<CodeWupinMapper, CodeWupin> implements MdmEngineService {
+public class MdmEngineServiceImpl implements MdmEngineService {
/**
@@ -99,7 +99,6 @@
*/
@Resource
private CodeClstemplateServiceImpl templateService;
-
/**
* 鐢熸垚缂栫爜鐨勬湇鍔�
@@ -182,7 +181,8 @@
CommonsMapper commonsMapper;
@Resource
- CodeWupinMapper codeWupinMapper;
+ ICodeBasicSecService codeBasicSecService;
+
/**
* 缂栫爜瑙勫垯鐨勬湇鍔�
*/
@@ -278,6 +278,11 @@
* 鏇挎崲瀛楃
*/
public static final String SPECIAL_CHAR = "VCI";
+ /**
+ * 涓绘暟鎹祦绋嬮樁娈垫湇鍔�
+ */
+ @Autowired
+ private IMDMIFlowAttrClient imdmiFlowAttrClient;
// @Autowired
// private CodeOsbtmtypeMapper codeOsbtmtypeMapper;----
@@ -349,36 +354,32 @@
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<>();
allCodeWrapper.eq("createcodebtm", baseModelDTO.getBtmname());
allCodeWrapper.in("createcodeoid", oids);
-// conditionMap.put("createcodeoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
-// conditionMap.put("createcodebtm", baseModelDTO.getBtmname());
- List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);
-// List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
- // 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
+ List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);// 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
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());
- }
+ R r = updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
+ if(!r.isSuccess()){
+ throw new VciBaseException("鏇存柊鏁版嵁鍑洪敊锛岄噸璇曪紒"+r.getMsg());
+ }
+ }
for (CodeAllCode codeCbo : codeCbos) {
codeCbo.setLcStatus(baseModelDTO.getLcStatus());
}
codeAllCodeService.updateBatchById(codeCbos);
- // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
}
/**
@@ -417,10 +418,13 @@
// //璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
cbo.setOid(VciBaseUtil.getPk());
+ cbo.setRevisionOid(VciBaseUtil.getPk());
+ cbo.setNameOid(VciBaseUtil.getPk());
cbo.setCreateTime(new Date());
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
@@ -645,6 +649,7 @@
}
wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap);
});
+ conditionMap.put("CODETEMPLATEOID","'" + orderDTO.getTemplateOid() + "'");
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
@@ -731,7 +736,7 @@
conditionMap.put(queryKey, queryValue);
} else {
//涓虹┖鐨勬椂鍊欎笉浠h〃涓嶆牎楠岋紝鍙槸涓嶅幓闄ょ浉鍏崇殑淇℃伅
- conditionMap.put("t." + attrId, value);
+ conditionMap.put("t." + attrId, "'" +value+ "'");
}
}
}
@@ -908,7 +913,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 +939,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) {
@@ -1087,8 +1112,9 @@
itemVO.setType("refer");
itemVO.setShowField(itemVO.getField() + "name");
if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
- //閰嶇疆鐨勫唴瀹�
- itemVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+ // 閰嶇疆鐨勫唴瀹�
+ // itemVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+ itemVO.setReferConfig(referConfigToUIUiTable(attrVO.getReferConfig()));
} else {
UIFormReferVO formReferVO = new UIFormReferVO();
formReferVO.setType("default");
@@ -1202,7 +1228,8 @@
fieldVO.setShowField(fieldVO.getField());
if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
//閰嶇疆鐨勫唴瀹�
- fieldVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+ // fieldVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+ fieldVO.setReferConfig(referConfigToUIUiTable(attrVO.getReferConfig()));
} else {
UIFormReferVO formReferVO = new UIFormReferVO();
formReferVO.setType("default");
@@ -1235,6 +1262,51 @@
return fieldVO;
}
+ /**
+ * 灏唕eferconfig杞崲涓篔SON鏍煎紡鐨刄IFormReferVO
+ * @param codeReferConfigVO
+ * @return
+ */
+ private UIFormReferVO referConfigToUIUiTable(String codeReferConfigVO){
+ CodeReferConfigVO codeReferConfig = JSONObject.parseObject(codeReferConfigVO, CodeReferConfigVO.class);
+ // 鎷疯礉涓轰互鍓嶇殑鑰佸璞�
+ UIFormReferVO uiFormReferVO = new UIFormReferVO();
+ org.springblade.core.tool.utils.BeanUtil.copy(codeReferConfig,uiFormReferVO);
+
+ // 琛ㄦ牸鐨勮嚜瀹氫箟瀹氫箟
+ UITableCustomDefineVO uiTableConfigVO = new UITableCustomDefineVO();
+ uiTableConfigVO.setPage(new UITablePageVO(codeReferConfig.getLimit(),1));
+ // 鍒楄〃鐨勫垪鐨勪俊鎭浆鎹�
+ List<UITableFieldVO> uiTableFieldVOs = new ArrayList<>();
+ // 蹇�熸煡璇㈠垪
+ List<UITableFieldVO> queryColumns = new ArrayList<>();
+ if(!CollectionUtils.isEmpty(codeReferConfig.getCodeShowFieldConfigVOS())){
+ codeReferConfig.getCodeShowFieldConfigVOS().stream().forEach(showField ->{
+ UITableFieldVO tableColVO = new UITableFieldVO();
+ org.springblade.core.tool.utils.BeanUtil.copy(showField,tableColVO);
+ tableColVO.setSortField(showField.getAttrSortField());
+ uiTableFieldVOs.add(tableColVO);
+ if(showField.getIsQuery().equals("true")){
+ queryColumns.add(tableColVO);
+ }
+ });
+ }
+ // 鏄剧ず鐨勫垪
+ uiTableConfigVO.setCols(uiTableFieldVOs);
+ // 蹇�熸煡璇㈠垪
+ uiTableConfigVO.setQueryColumns(queryColumns);
+ //set缁欒〃鏍奸厤缃睘鎬�
+ uiFormReferVO.setTableConfig(uiTableConfigVO);
+ // 绛涢�夋潯浠�
+ HashMap<String, String> whereMap = new HashMap<>();
+ if(!codeReferConfig.getCodeSrchCondConfigVOS().isEmpty()){
+ codeReferConfig.getCodeSrchCondConfigVOS().stream().forEach(srch->{
+ whereMap.put(srch.getFilterField()+srch.getFilterType(),srch.getFilterValue());
+ });
+ }
+ uiFormReferVO.setWhere(whereMap);
+ return uiFormReferVO;
+ }
/**
* 鐩镐技椤规煡璇�
@@ -1380,7 +1452,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<>();
@@ -1388,7 +1469,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));
@@ -1995,7 +2076,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));
@@ -2016,13 +2097,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)
@@ -2311,7 +2400,7 @@
// conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
conditionMap.put("t." + CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " +
- btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY))
+ btmTypeClient.selectByIdCollection(Collections.singletonList("classify"))
.getData().get(0).getTableName() + " where lcstatus='" + FrameWorkDefaultValueConstant
.FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid +
"' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
@@ -2661,7 +2750,7 @@
cbosB.stream().forEach(map -> {
Map<String, String> data = new HashMap<>();
for (Object o : map.keySet()) {
- data.put(((String) o).toLowerCase(Locale.ROOT), String.valueOf(map.get(o)));
+ data.put(((String) o).toLowerCase(Locale.ROOT), map.get(o)==null?"":String.valueOf(map.get(o)));
}
cbos.add(data);
});
@@ -2856,6 +2945,51 @@
wrapperResemble(templateVO, uiInfoVO);
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;
+ }
/**
* 妯℃澘灞炴�ц浆鎹负琛ㄦ牸瀹氫箟鐨勪俊鎭�
@@ -3122,6 +3256,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;
+ }
/**
* 浣跨敤鍒嗙被涓婚敭鑾峰彇宸ュ叿鏍忎腑鐨勬寜閽俊鎭�
@@ -3172,11 +3333,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().toLowerCase();
+ }).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());
}
@@ -3226,14 +3395,18 @@
&& ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())) {
setter.invoke(obj, ((BigDecimal) map.get(property.getName().toUpperCase())).intValue());
map.remove(property.getName().toUpperCase());
- } else if (map.get(property.getName().toUpperCase()) != null) {
- setter.invoke(obj, map.get(property.getName().toUpperCase()));
+ } else if (map.containsKey(property.getName().toUpperCase())) {
+ if(setter.getParameterTypes()[0].getSimpleName().equals("String")){
+ setter.invoke(obj, map.get(property.getName().toUpperCase()) == null ? null:String.valueOf(map.get(property.getName().toUpperCase())));
+ }else{
+ setter.invoke(obj, map.get(property.getName().toUpperCase()));
+ }
map.remove(property.getName().toUpperCase());
}
}
}
for (Object key : map.keySet()) {
- map.put(key, String.valueOf(map.get(key)));
+ map.put(key, map.get(key) == null ? null : String.valueOf(map.get(key)));
}
((BaseModel) obj).setData(map);
@@ -3257,7 +3430,7 @@
if (!listR.isSuccess() || listR.getData().size() == 0) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
- String userName = String.valueOf(AuthUtil.getUser().getUserId());
+// String userName = String.valueOf(AuthUtil.getUser().getUserId());
BaseModel bo = new BaseModel();
// bo.setOid(VciBaseUtil.getPk());
// bo.setRevisionid(VciBaseUtil.getPk());
@@ -3267,16 +3440,16 @@
bo.setFirstR("1");
bo.setFirstV("1");
bo.setLastV("1");
- bo.setCreator(userName);
- bo.setCreateTime(new Date());
- bo.setLastModifier(userName);
- bo.setLastModifyTime(new Date());
bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId());
- bo.setVersionRule(String.valueOf(listR.getData().get(0).getVersionRule()));
+ bo.setVersionRule("".equals(listR.getData().get(0).getVersionRule())?"0":listR.getData().get(0).getVersionRule());
if (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())) {
R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient
- .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId()));
- bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
+ .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId().toLowerCase()));
+ if(revisionRuleVO.getData().size() != 0 ){
+ bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
+ }else{
+ bo.setRevisionValue("1");
+ }
}
bo.setRevisionSeq(1);
bo.setVersionSeq(1);
@@ -3289,7 +3462,7 @@
bo.setId("");
bo.setName("");
bo.setDescription("");
- bo.setOwner(userName);
+ bo.setOwner("1");
// bo.setCheckinby(userName);
bo.setCopyFromVersion("");
// this.initTypeAttributeValue(bo,btmTypeVO);
@@ -3327,12 +3500,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());
}
@@ -3358,7 +3539,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())) {
@@ -3380,7 +3561,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()) {
@@ -3536,7 +3717,48 @@
} else {
if (StringUtils.isNotBlank(referConfigVO.getParentFieldName()) && StringUtils.isNotBlank(queryObject.getParentOid())) {
queryObject.getConditionMap().put(referConfigVO.getParentFieldName(), queryObject.getParentOid());
- }
+ //鏌ヨ鍏ㄩ儴鐨勪俊鎭�
+ String parentOidSql = "";
+ if (StringUtils.isNotBlank(referConfigVO.getParentValue())) {
+ String temp = referConfigVO.getParentValue();
+ if (temp.startsWith(QueryOptionConstant.IN)) {
+ temp = temp.substring((QueryOptionConstant.IN).length()).trim();
+ parentOidSql = " in " + "('" + queryObject.getParentOid() + "')";
+ } else if (temp.startsWith(QueryOptionConstant.NOTIN)) {
+ parentOidSql = " not in " + "('" + queryObject.getParentOid() + "')";
+ } else if (temp.startsWith(QueryOptionConstant.NOTEQUAL)) {
+ temp = temp.substring((QueryOptionConstant.NOTEQUAL).length()).trim();
+ parentOidSql = QueryOptionConstant.NOTEQUAL + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.MORETHAN)) {
+ temp = temp.substring((QueryOptionConstant.MORETHAN).length()).trim();
+ parentOidSql = QueryOptionConstant.MORETHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.MORE)) {
+ temp = temp.substring((QueryOptionConstant.MORE).length()).trim();
+ parentOidSql = QueryOptionConstant.MORE + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.LESSTHAN)) {
+ temp = temp.substring((QueryOptionConstant.LESSTHAN).length()).trim();
+ parentOidSql = QueryOptionConstant.LESSTHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.LESS)) {
+ temp = temp.substring((QueryOptionConstant.LESS).length()).trim();
+ parentOidSql = QueryOptionConstant.LESS + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ } else if (temp.startsWith(QueryOptionConstant.ISNOTNULL)) {
+ parentOidSql = " is not null";
+ } else if (temp.startsWith(QueryOptionConstant.ISNULL)) {
+ parentOidSql = " is null";
+ } else if (temp.contains("*")) {
+ parentOidSql = " like " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'").replace("*", "%");
+ } else {
+ parentOidSql = " = " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+ }
+
+ }
+ //鏌ヨ鍏ㄩ儴鐨勪俊鎭�
+ queryObject.getConditionMap().put("oid", QueryOptionConstant.IN + "(select oid from " +
+ getTableName(referConfigVO.getReferType()) +
+ " START WITH " + referConfigVO.getParentFieldName() + " " +
+ parentOidSql +
+ " CONNECT BY PRIOR " + oidFieldName + " = " + referConfigVO.getParentFieldName() + ")");
+ }
}
LambdaQueryWrapper<CodeClassify> lqw = new LambdaQueryWrapper<>();
String sql = queryObject.getConditionMap().get("oid").substring(3);
--
Gitblit v1.9.3