From 7da596a115d06000f3ebcacfedcdc1629c87a41c Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 24 八月 2023 20:32:00 +0800
Subject: [PATCH] 整合前端代码
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 925 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 613 insertions(+), 312 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 55fac7f..a93c84f 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
@@ -3,25 +3,26 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.baomidou.mybatisplus.extension.toolkit.SqlHelper;
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.dto.FlowStatusDTO;
+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.*;
@@ -55,6 +56,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
@@ -90,7 +92,7 @@
* @date 2022-2-22
*/
@Service
-public class MdmEngineServiceImpl extends ServiceImpl<CodeWupinMapper, CodeWupin> implements MdmEngineService {
+public class MdmEngineServiceImpl implements MdmEngineService {
/**
@@ -98,7 +100,6 @@
*/
@Resource
private CodeClstemplateServiceImpl templateService;
-
/**
* 鐢熸垚缂栫爜鐨勬湇鍔�
@@ -180,8 +181,6 @@
@Resource
CommonsMapper commonsMapper;
- @Resource
- CodeWupinMapper codeWupinMapper;
/**
* 缂栫爜瑙勫垯鐨勬湇鍔�
*/
@@ -277,6 +276,11 @@
* 鏇挎崲瀛楃
*/
public static final String SPECIAL_CHAR = "VCI";
+ /**
+ * 涓绘暟鎹祦绋嬮樁娈垫湇鍔�
+ */
+ @Autowired
+ private IMDMIFlowAttrClient imdmiFlowAttrClient;
// @Autowired
// private CodeOsbtmtypeMapper codeOsbtmtypeMapper;----
@@ -348,33 +352,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()));
- commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()));
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ // 鐩存帴鍒犻櫎锛屼笉缁欑姸鎬�
+ 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());
}
/**
@@ -408,10 +411,21 @@
switchDateAttrOnOrder(templateVO, orderDTO);
//9.鐢熸垚缂栫爜鐨勪俊鎭�
// ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
- BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
+ BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmTypeId());
// //榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
// //璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
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(String.valueOf(AuthUtil.getUser().getUserId()));
+ cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+ cbo.setTenantId(AuthUtil.getTenantId());
+ if(StringUtils.isNotBlank(orderDTO.getLcStatus())||StringUtils.isNotBlank(orderDTO.getData().get("lcStatus"))){
+ cbo.setLcStatus(StringUtils.isNotBlank(orderDTO.getLcStatus())?orderDTO.getLcStatus():orderDTO.getData().get("lcStatus"));
+ }
// //TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
// //end -- modify by lihang @20220407
@@ -539,7 +553,10 @@
String value = null;
if (VciQueryWrapperForDO.BASIC_FIELD_MAP.containsKey(attrId)) {
value = WebUtil.getStringValueFromObject(WebUtil.getValueFromField(WebUtil.getFieldForObject(attrId, orderDTO.getClass()).getName(), orderDTO));
- } else {
+ if(StringUtils.isBlank(value)){
+ value = orderDTO.getData().getOrDefault(attrId, "");
+ }
+ } else {
//璇存槑鏄嚜琛岄厤缃殑
//鍓嶇蹇呴』瑕佷紶閫掑皬鍐欑殑灞炴��
value = orderDTO.getData().getOrDefault(attrId, "");
@@ -638,11 +655,14 @@
});
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
-
if (!CollectionUtils.isEmpty(conditionMap)) {
+ conditionMap.put("CODETEMPLATEOID","'" + orderDTO.getTemplateOid() + "'");
// final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
- R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid()));
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId()));
// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
final String[] sql = {"select count(*) from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
sql[0] += " and " + key + " = " + value;
@@ -663,6 +683,66 @@
}
}
+ /**
+ * 鏍¢獙鍏抽敭灞炴��
+ * @param orderDTO 缂栫爜鐢宠鐨勭浉鍏崇殑淇℃伅
+ */
+ @Override
+ public List<Map> checkKeyAttrOnOrderFordatas(CodeOrderDTO orderDTO) {
+ List<Map>dataList=new ArrayList<>();
+ CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
+ CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
+ //鍏堣幏鍙栧叧閿睘鎬х殑瑙勫垯锛屼篃鍒╃敤缁ф壙鐨勬柟寮�
+ CodeKeyAttrRepeatVO keyRuleVO = keyRuleService.getRuleByClassifyFullInfo(classifyFullInfo);
+ //娉ㄦ剰鐨勬槸keyRuleVO鍙兘涓虹┖锛岃〃绀轰笉浣跨敤瑙勫垯鎺у埗
+ //鑾峰彇鎵�鏈夌殑鍏抽敭灞炴��
+ Map<String, CodeClassifyTemplateAttrVO> ketAttrMap = templateVO.getAttributes().stream().filter(s -> VciBaseUtil.getBoolean(s.getKeyAttrFlag())).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+ Map<String, String> conditionMap = new HashMap<>();
+ boolean trimAll = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag());
+ //鍏ㄩ儴鍘荤┖鐨勪紭鍏堢骇澶т簬鍘荤┖
+ boolean trim = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag());
+ boolean ignoreCase = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorecaseflag());
+ boolean ignoreWidth = keyRuleVO == null ? false : VciBaseUtil.getBoolean(keyRuleVO.getIgnorewidthflag());
+ ketAttrMap.forEach((attrId, attrVO) -> {
+ String value = getValueFromOrderDTO(orderDTO, attrId);
+ if (value == null) {
+ value = "";
+ }
+ wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap);
+ });
+
+ //娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
+ if (!CollectionUtils.isEmpty(conditionMap)) {
+ conditionMap.put("CODETEMPLATEOID","'" + orderDTO.getTemplateOid() + "'");
+// final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId()));
+// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ final String[] sql = {"select * from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "};
+ conditionMap.forEach((key, value) -> {
+ sql[0] += " and " + key + " = " + value;
+ });
+ if (StringUtils.isNotBlank(orderDTO.getOid())) {
+ //淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸�
+ sql[0] += " and oid != '" + orderDTO.getOid() + "'";
+ } else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
+ sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
+ }
+ sql[0] += " and lastR = '1' and lastV = '1' ";
+// if (boService.queryCountBySql(sql[0], new HashMap<>()) > 0) {
+ dataList=commonsMapper.selectBySql(sql[0]);
+ if (!CollectionUtils.isEmpty(dataList)) {
+// String ruleInfoMsg = keyRuleVO == null ? "" : "鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}";
+// String[] objs = new String[]{trim ? "鏄�" : "鍚�", ignoreCase ? "鏄�" : "鍚�", ignoreWidth ? "鏄�" : "鍚�", trimAll ? "鏄�" : "鍚�"};
+// throw new VciBaseException("鏍规嵁鎮ㄥ~鍐欑殑鍏抽敭灞炴�х殑鍐呭锛岀粨鍚堝叧閿睘鎬ф煡璇㈣鍒欙紝鍙戠幇杩欎釜鏁版嵁宸茬粡鍦ㄧ郴缁熶腑瀛樺湪浜嗐�傝淇!銆�" + ruleInfoMsg, objs);
+ return dataList;
+ }
+ }
+ return dataList;
+ }
+
/**
* 灏佽鍏抽敭灞炴�х殑鏌ヨ璇彞
*
@@ -682,7 +762,7 @@
boolean ignoreSpace = trim || trimAll;
if (StringUtils.isBlank(value)) {
//涓虹┖鐨勬椂鍊欙紝涓嶈兘鐢≦ueryOperation.ISNULL锛屽钩鍙颁笉鐭ラ亾鍟ユ椂鍊欎笉澶勭悊杩欑浜�
- conditionMap.put("t." + attrId, "null");
+ conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL);
} else {
if (keyRuleVO != null) {
String queryKey = "";
@@ -718,8 +798,12 @@
queryValue = String.format(temp, "'" + (trim ? value.trim() : value) + "'");
conditionMap.put(queryKey, queryValue);
} else {
- //涓虹┖鐨勬椂鍊欎笉浠h〃涓嶆牎楠岋紝鍙槸涓嶅幓闄ょ浉鍏崇殑淇℃伅
- conditionMap.put("t." + attrId, value);
+ if(StringUtils.isNotBlank(value)) {
+ //涓虹┖鐨勬椂鍊欎笉浠h〃涓嶆牎楠岋紝鍙槸涓嶅幓闄ょ浉鍏崇殑淇℃伅
+ conditionMap.put("t." + attrId, "'" + value + "'");
+ }else{
+ conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL);
+ }
}
}
}
@@ -788,39 +872,24 @@
} else {
fullPath = classifyFullInfo.getCurrentClassifyVO().getOid();
}
-
-// BeanUtils.
-// BeanUtils.copyProperties(orderDTO.getData(),cbo);
-// cbo.setMaterialtype(Short.valueOf("1001"));
-// orderDTO.getData().forEach((key, value) -> {
-// if (!edit || (!checkUnAttrUnEdit(key) &&
-// !VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) {
-// try {
-// cbo.setAttributeValue(key, value);
-// } catch (Exception e) {
-// logger.error("璁剧疆灞炴�х殑鍊奸敊璇�", e);
-// }
-// }
-// });
-// BeanMap beanMap = BeanMap.create(cbo);
-// beanMap.putAll(orderDTO.getData());
-
+ orderDTO.getData().forEach((key, value) -> {
+ if (!edit || (!checkUnAttrUnEdit(key) &&
+ !VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) {
+ try {
+ cbo.getData().put(cbo.getData().containsKey(key.toUpperCase())?key.toUpperCase():key, value);
+ } catch (Exception e) {
+ logger.error("璁剧疆灞炴�х殑鍊奸敊璇�", e);
+ }
+ }
+ });
try {
-
- BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(BaseModel.class, orderDTO.getData()), cbo);
- Map<String, String> data = new HashMap<>();
- data.put(CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid());
- data.put(CODE_TEMPLATE_OID_FIELD, templateVO.getOid());
- data.put(CODE_FULL_PATH_FILED, fullPath);
- cbo.setData(data);
- cbo.setOid(VciBaseUtil.getPk());
- cbo.setCreateTime(new Date());
+ Map<String, String> data = new HashMap<>();
+ data.put(cbo.getData().containsKey(CODE_CLASSIFY_OID_FIELD.toUpperCase())?CODE_CLASSIFY_OID_FIELD.toUpperCase():CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid());
+ data.put(cbo.getData().containsKey(CODE_TEMPLATE_OID_FIELD.toUpperCase())?CODE_TEMPLATE_OID_FIELD.toUpperCase():CODE_TEMPLATE_OID_FIELD, templateVO.getOid());
+ data.put(cbo.getData().containsKey(CODE_FULL_PATH_FILED.toUpperCase())?CODE_FULL_PATH_FILED.toUpperCase():CODE_FULL_PATH_FILED, fullPath);
+ cbo.getData().putAll(data);
cbo.setLastModifyTime(new Date());
- cbo.setCreator(AuthUtil.getUser().getUserName());
cbo.setLastModifier(AuthUtil.getUser().getUserName());
-// cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid());
-// cbo.setTemplateOid(templateVO.getOid());
-// cbo.setCodeclsfpath(fullPath);
cbo.setTs(new Date());
if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) {
//TODO 鍏堝啓鍥哄畾锛屽悗闈㈢敓鍛藉懆鏈熷ソ浜嗗湪缂栧啓
@@ -904,7 +973,7 @@
// baseModels.stream().forEach(model-> {
try {
- map = VciBaseUtil.convertBean2Map(cbo);
+ map = VciBaseUtil.convertBean2Map(cbo,null);
} catch (Exception e) {
throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
}
@@ -930,6 +999,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) {
@@ -959,13 +1048,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)) {
//鎸夌収鍒嗙粍鐨勫睘鎬ф帓鍒楋紝鎵惧埌姣忎竴涓垎缁勭殑绗竴涓睘鎬�
@@ -978,7 +1070,11 @@
lineVO.setField(attrVO.getId() + "_line");
lineVO.setType("line");
lineVO.setText(key);
- //鎵句綅缃�
+ List<CodeClassifyTemplateAttrVO> collect = value.stream().filter(s -> "true".equals(s.getFormDisplayFlag())).collect(Collectors.toList());
+ if(collect.size() == 0){
+ continue;
+ }
+ //鎵句綅缃�
for (int i = 0; i < itemVOS.size(); i++) {
UIFormItemVO record = itemVOS.get(i);
if (record.getField().equalsIgnoreCase(attrVO.getId())) {
@@ -1080,8 +1176,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");
@@ -1195,7 +1292,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");
@@ -1218,7 +1316,8 @@
fieldVO.setTemplet(attrVO.getTableDisplayJs());
}
if (StringUtils.isBlank(fieldVO.getTemplet()) && VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributeDataType())) {
- fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}");
+ fieldVO.setTemplet("function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'}");
+// fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}");
}
fieldVO.setOptionJsMap(eventJsMap);
fieldVO.setStyle(attrVO.getTableDisplayStyle());
@@ -1227,6 +1326,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(!CollectionUtils.isEmpty(codeReferConfig.getCodeSrchCondConfigVOS())){
+ codeReferConfig.getCodeSrchCondConfigVOS().stream().forEach(srch->{
+ whereMap.put(srch.getFilterField()+srch.getFilterType(),srch.getFilterValue());
+ });
+ }
+ uiFormReferVO.setWhere(whereMap);
+ return uiFormReferVO;
+ }
/**
* 鐩镐技椤规煡璇�
@@ -1270,7 +1414,7 @@
conditionMap.putAll(andConditionMap);
PageHelper pageHelper = new PageHelper(-1);
pageHelper.addDefaultDesc("id");
- return queryGrid(fullInfoBO.getTopClassifyVO().getBtmtypeid(), templateVO, conditionMap, pageHelper);
+ return queryGrid(fullInfoBO.getTopClassifyVO().getBtmTypeId(), templateVO, conditionMap, pageHelper);
}
return new DataGrid<>();
}
@@ -1291,11 +1435,11 @@
//璇存槑宸茬粡瀛樺湪
return resembleRuleService.getObjectByOid(currentClassifyVO.getCodeResembleRuleOid());
}
- if (StringUtils.isBlank(currentClassifyVO.getParentcodeclassifyoid())) {
+ if (StringUtils.isBlank(currentClassifyVO.getParentCodeClassifyOid())) {
return null;
}
Map<String, CodeClassifyVO> classifyVOMap = fullInfoBO.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
- return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentcodeclassifyoid(), null));
+ return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentCodeClassifyOid(), null));
}
/**
@@ -1372,7 +1516,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<>();
@@ -1380,7 +1533,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));
@@ -1435,26 +1588,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))
@@ -1569,17 +1728,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());
- Map<String/**鍙傜収鐨勫睘鎬�**/, String/**瀹為檯鐨勫瓧娈�**/> referFieldMap = new HashMap<>();
+ 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);
@@ -1592,6 +1759,9 @@
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referVO.getReferType()));
// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
String referTable = listR.getData().get(0).getTableName();
// String referTable = "pl_code_classify";
String referTableNick = attrVO.getId() + "0";
@@ -1606,15 +1776,11 @@
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);
-// Optional.ofNullable(allAttributeByBtmId.getData()).orElseGet(allAttributeByBtmId.getData().getAttributes()).stream().forEach(attrId -> {
-// if (!selectFieldList.contains(attrId.getOid()) && !"secretgrade".equalsIgnoreCase(attrId.getOid())) {
-// selectFieldList.add(attrId.getOid());
-// }
-// });
+
if (allAttributeByBtmId.getData() != null) {
for (BtmTypeAttributeVO attribute : allAttributeByBtmId.getData().getAttributes()) {
if (!selectFieldList.contains(attribute.getId()) && !"secretgrade".equalsIgnoreCase(attribute.getId())) {
@@ -1654,11 +1820,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));
});
}
//缁勫悎璧锋潵
@@ -1692,6 +1859,9 @@
}
// String tableName = VciBaseUtil.getTableName(btmType);
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
String tableName = listR.getData().get(0).getTableName();
String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(","))
@@ -1861,13 +2031,13 @@
return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
}
} else {
- if (referFieldMap.containsKey(key)) {
- //璇存槑鏄弬鐓х殑锛屾垜浠弬鐓х殑鏌ヨ閮借涓烘槸瀛楃涓诧紝濡傛灉鏄椂闂存牸寮忕殑鏌ヨ鑲畾鏈夐棶棰橈紝
- String selectKey = referFieldMap.get(key);
- return getSqlByValue(selectKey, value, null, btmType);
- } else {
- return getSqlByValue(key, value, attrVOMap, btmType);
- }
+// if (referFieldMap.containsKey(key)) {
+// //璇存槑鏄弬鐓х殑锛屾垜浠弬鐓х殑鏌ヨ閮借涓烘槸瀛楃涓诧紝濡傛灉鏄椂闂存牸寮忕殑鏌ヨ鑲畾鏈夐棶棰橈紝
+// String selectKey = referFieldMap.get(key);
+// return getSqlByValue(selectKey, value, null, btmType);
+// } else {
+ return getSqlByValue(key, value, attrVOMap, btmType);
+// }
}
}
return "";
@@ -1921,7 +2091,7 @@
}
if (field.contains(".") && attrVOMap != null && attrVOMap.containsKey(field.split("\\.")[0].toLowerCase(Locale.ROOT))) {
//鏄弬鐓�
- return value;
+ return "'" + value + "'";
} else {
return value;
}
@@ -1945,13 +2115,13 @@
|| VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) {
return value;
} else {
- return value;
+ return "'" + value + "'";
}
} else {
if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) {
return value;
}
- return value;
+ return "'" + value + "'";
}
}
@@ -1970,7 +2140,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));
@@ -1991,13 +2161,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)
@@ -2075,9 +2253,7 @@
.append(SPACE)
.append(QueryOptionConstant.EQUAL)
.append(SPACE)
- //.append("'")
.append(value);
- // .append("'");
}
sql.append(SPACE);
return sql.toString();
@@ -2095,22 +2271,15 @@
// CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
//鎵句笟鍔$被鍨嬶紝鐒跺悗浣跨敤涓婚敭鍘昏幏鍙栨暟鎹簱閲岀殑鏁版嵁
- List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), orderDTO.getOid());
+ List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), orderDTO.getOid());
if (CollectionUtils.isEmpty(cbos)) {
throw new VciBaseException(DATA_OID_NOT_EXIST);
}
-// QueryWrapper<CodeWupin> btmWrapper = new QueryWrapper<>();
-// btmWrapper.eq("OID",orderDTO.getOid());
-// CodeWupin cbo = codeWupinMapper.selectOne(btmWrapper);
BaseModel cbo = cbos.get(0);
-// CodeClstemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
-// CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid());
-
- if (cbo != null) {
+ if (cbo == null) {
throw new VciBaseException(DATA_OID_NOT_EXIST);
}
-// ClientBusinessObject cbo = cbos.get(0);
if (!cbo.getTs().toString().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) {
throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
}
@@ -2120,9 +2289,16 @@
//娉ㄦ剰妯℃澘涓嶈兘浣跨敤鏁版嵁瀛樺偍鐨勬椂鍊欑殑妯℃澘锛屽洜涓哄彲鑳戒細鍙樺寲
- //1. 鍒ゆ柇蹇呰緭椤�
+ String codeClassifyOid=cbo.getData().get(CODE_CLASSIFY_OID_FIELD.toUpperCase());
+ orderDTO.setCodeClassifyOid(codeClassifyOid);
+// CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
+// CodeClassifyTemplateVO templateVO= this.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid());
+
+
CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
- checkRequiredAttrOnOrder(templateVO, orderDTO);
+ orderDTO.setTemplateOid(templateVO.getOid());
+ //1. 鍒ゆ柇蹇呰緭椤�
+ checkRequiredAttrOnOrder(templateVO, orderDTO);
//2.鍏堟敞鍏ワ紝鍐嶇粍鍚堬紝鏈�鍚庢牎楠�
switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
//3.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
@@ -2139,46 +2315,18 @@
copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true);
//浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
cbo.setDescription(orderDTO.getDescription());
- cbo.setName(orderDTO.getName());
+// cbo.setName(orderDTO.getName());
try {
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
cbo.setName(orderDTO.getName());
-//// cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription());
-// cbo.setAttributeValue("name", orderDTO.getName());
} catch (Exception e) {
e.printStackTrace();
}
+// cbo.getData().putAll(orderDTO.getData());
cbo.setLastModifyTime(new Date());
cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
- updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), Collections.singletonList(cbo));
-// codeWupinMapper.updateById(cbo);
-//
-// List<CodeWupinEntity> cboList = new ArrayList<>();
-//
-// //澶囨敞
-// cbo.setDescription(orderDTO.getDescription());
-// cboList.add(cbo);
-////
-//// cboList.add(cbo);
-// List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(),cboList);
-//
-//
-// List<String> charList = new ArrayList<>();
-// for (CodeWupinEntity wupinEntity : cboList) {
-// charList.add(wupinEntity.getId());
-// }
-// batchSaveSelectChar(templateVO, charList);
-// return codeList.size() > 0 ? codeList.get(0) : "";
-
-
- //淇敼鐨勬椂鍊欙紝缂栫爜鏄笉鍙樼殑
-// BatchCBO batchCBO = new BatchCBO();
-// batchCBO.getUpdateCbos().add(cbo);
-// List<ClientBusinessObject> cboList = new ArrayList<>();
-// cboList.add(cbo);
-// boService.persistenceBatch(batchCBO);
+ updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), Collections.singletonList(cbo));
batchSaveSelectChar(templateVO, Collections.singletonList(cbo));
-// batchSaveSelectChar(templateVO, Arrays.asList(cbo.getId()));
}
/**
@@ -2202,7 +2350,7 @@
oidCollection.stream().forEach(oids -> {
Map<String, String> conditionMap = new HashMap<>();
// conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
- List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), oids);
+ List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), oids);
// boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap);
cboList.addAll(cbos);
});
@@ -2228,11 +2376,11 @@
// batchCBO.getDeleteCbos().addAll(cboList);
// WebUtil.setPersistence(false);
// batchCBO.copyFromOther(
- productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList());
+ productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
// baseMapper.deleteBatchIds(cboList);
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
- R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid()));
- if (listR.getData().size() == 0) {
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId()));
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),
@@ -2298,25 +2446,25 @@
//4. 鏌ヨ鐨勬椂鍊欙紝鐩存帴浣跨敤codeclsfpath鏉ユ煡璇�
CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(codeClassifyOid);
CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
- if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmtypeid())) {
+ if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmTypeId())) {
throw new VciBaseException("褰撳墠涓婚搴撳垎绫绘病鏈夐《灞傚垎绫伙紝鎴栬�呴《灞傚垎绫绘病鏈夎缃笟鍔$被鍨�");
}
- String btmTypeId = topClassifyVO.getBtmtypeid();
+ String btmTypeId = topClassifyVO.getBtmTypeId();
if (StringUtils.isBlank(btmTypeId)) {
return new DataGrid<>("杩欎釜鍒嗙被鎵�灞為《灞傚垎绫绘病鏈夋坊鍔犱笟鍔$被鍨�");
}
if (conditionMap == null) {
conditionMap = new HashMap<>();
}
- //pageHelper.addDefaultDesc("createTime");
- pageHelper.addDefaultDesc("id");
+ pageHelper.addDefaultDesc("createTime");
+// pageHelper.addDefaultDesc("id");
if (!classifyService.checkHasChild(codeClassifyOid)) {
conditionMap.put("t." + CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
} else {
// 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 )");
@@ -2363,27 +2511,22 @@
List<BaseModel> updateList = new ArrayList<>();
// 搴旇閮芥槸涓�涓垎绫讳笅鐨勪笟鍔℃暟鎹紝鎵剧涓�鏉$殑灏辫
CodeClassifyFullInfoBO topClassifyFullInfo = classifyService.getClassifyFullInfo(orderDTOList.get(0).getCodeClassifyOid());
-// Map<String,String> cboOidMap = new HashMap<>();
if (CollectionUtils.isEmpty(orderDTOMap.keySet())) {
throw new VciBaseException(DATA_OID_NOT_EXIST);
}
- List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
-// cboOidMap.put("oid",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(orderDTOMap.keySet().toArray(new String[0])) + ")");
-// List<ClientBusinessObject> cboList = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), cboOidMap);
- if (CollectionUtils.isEmpty(cboList)) {
+ List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
+ if (CollectionUtils.isEmpty(cboList)) {
throw new VciBaseException(DATA_OID_NOT_EXIST);
}
-// BatchCBO batchCBO = new BatchCBO();
-// CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid());
- Map<String, BaseModel> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
+ Map<String, BaseModel> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
orderDTOMap.keySet().stream().forEach(oid -> {
CodeOrderDTO orderDTO = orderDTOMap.get(oid);
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid());
BaseModel cbo = cboMap.get(oid);
String code = cbo.getId();
- if (!cbo.getTs().toString().contains(orderDTO.getTs().toString())) {
+ if (!cbo.getTs().toString().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) {
throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
}
if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) {
@@ -2409,22 +2552,14 @@
//浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
cbo.setName(orderDTO.getName());
-// try {
-// cbo.setAttributeValue("id",code);
cbo.setId(code);
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
-// cbo.setAttributeValueWithNoCheck("description", StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription());
-// cbo.setAttributeValue("name", orderDTO.getName());
cbo.setName(orderDTO.getName());
-// } catch (VCIError e) {
-// e.printStackTrace();
-// }
-// batchCBO.getUpdateCbos().add(cbo);
+
updateList.add(cbo);
batchSaveSelectChar(firstTemplateVO, cboList);
});
-// boService.persistenceBatch(batchCBO);
- updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), updateList);
+ updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), updateList);
return R.success("鎿嶄綔鎴愬姛锛�");
}
@@ -2438,27 +2573,27 @@
*/
@Override
public R markDataPassing(String oid, String btmName, Boolean pass) {
- VciBaseUtil.alertNotNull(oid, "涓氬姟鏁版嵁涓婚敭", btmName, "涓氬姟绫诲瀷", pass, "鏍囪绫诲瀷");
- boolean flag = true;
- try {
- List<BaseModel> datas = selectByTypeAndOid(btmName, oid);
- if (datas.size() == 0) {
- return R.fail(DATA_OID_NOT_EXIST);
- }
- datas.stream().forEach(data->data.getData().put("PASSING",String.valueOf(pass)));
- R r = updateBatchByBaseModel(btmName, datas);
- if(!r.isSuccess()){
- flag = false;
- }
- } catch (Exception e) {
- flag = false;
- e.printStackTrace();
- }
- if (flag) {
- return R.success("鏍囪鎴愬姛锛�");
- } else {
- return R.fail("鏍囪澶辫触锛�");
- }
+ VciBaseUtil.alertNotNull(oid, "涓氬姟鏁版嵁涓婚敭", btmName, "涓氬姟绫诲瀷", pass, "鏍囪绫诲瀷");
+ boolean flag = true;
+ try {
+ List<BaseModel> datas = selectByTypeAndOid(btmName, oid);
+ if (datas.size() == 0) {
+ return R.fail(DATA_OID_NOT_EXIST);
+ }
+ datas.stream().forEach(data -> data.getData().put("PASSING", String.valueOf(pass)));
+ R r = updateBatchByBaseModel(btmName, datas);
+ if (!r.isSuccess()) {
+ flag = false;
+ }
+ } catch (Exception e) {
+ flag = false;
+ e.printStackTrace();
+ }
+ if (flag) {
+ return R.success("鏍囪鎴愬姛锛�");
+ } else {
+ return R.fail("鏍囪澶辫触锛�");
+ }
}
/**
@@ -2529,17 +2664,10 @@
orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭");
//闇�瑕佸崌鐗�
-// ClientBusinessObjectOperation cboOperation = new ClientBusinessObjectOperation();
BaseModel cbo = null;
-// try {
-// //cbo = cboOperation.createBusinessObjectVersion(oldCbo,VciBaseUtil.getCurrentUserId());
cbo = reviseBusinessObject(oldCbo);
-// } catch (VCIError e) {
-// throw new VciBaseException("鍒濆鍖栫浉鍏崇殑鍐呭鍑虹幇浜嗛敊璇�", new String[0], e);
-// }
//1. 鍒ゆ柇蹇呰緭椤�
- //CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
- checkRequiredAttrOnOrder(templateVO, orderDTO);
+ checkRequiredAttrOnOrder(templateVO, orderDTO);
//2.鍏堟敞鍏ワ紝鍐嶇粍鍚堬紝鏈�鍚庢牎楠�
switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
//3.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
@@ -2557,20 +2685,17 @@
//浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
cbo.setName(orderDTO.getName());
-// try {
cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
-// cbo.setAttributeValueWithNoCheck("description", StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription());
cbo.setName(orderDTO.getName());
-// } catch (VCIError e) {
-// e.printStackTrace();
-// }
//鏁版嵁鐨勬椂鍊欙紝缂栫爜鏄笉鍙樼殑
cbo.setCreateTime(cbo.getCreateTime());
cbo.setLastModifyTime(cbo.getLastModifyTime());
-// List<ClientBusinessObject> cboList = new ArrayList<>();
-// cboList.add(cbo);
+ cbo.setTenantId(AuthUtil.getTenantId());
+ oldCbo.setLastV("0");
+ oldCbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+ oldCbo.setLastModifyTime(new Date());
try {
-// cboOperation.saveRevisionBuinessObject(cbo);
+ updateBatchByBaseModel(oldCbo.getBtmname(), Collections.singletonList(oldCbo));
insertBatchByType(cbo.getBtmname(), Collections.singletonList(cbo));
} catch (Exception vciError) {
throw new VciBaseException("鏁版嵁鏇存敼淇濆瓨鍑洪敊浜�", new String[0], vciError);
@@ -2600,7 +2725,7 @@
public CodeRuleVO getCodeRuleByClassifyOid(String codeClassifyOid) {
VciBaseUtil.alertNotNull(codeClassifyOid, "鍒嗙被鐨勪富閿�");
CodeClassifyVO classifyVO = classifyService.getObjectByOid(codeClassifyOid);
- String codeRuleOid = classifyVO.getCoderuleoid();
+ String codeRuleOid = classifyVO.getCodeRuleOid();
if (StringUtils.isBlank(codeRuleOid)) {
//寰�涓婃壘
CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
@@ -2620,8 +2745,8 @@
public CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO) {
//寰�涓婃壘
String codeRuleOid = "";
- if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCoderuleoid())) {
- codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCoderuleoid();
+ if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCodeRuleOid())) {
+ codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCodeRuleOid();
} else {
if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
//璇存槑宸茬粡鏄渶楂樺眰绾�,
@@ -2631,8 +2756,8 @@
//浠庢渶楂樼殑level寮�濮嬭幏鍙�
for (int i = 0; i < parentClassifyVOList.size(); i++) {
CodeClassifyVO record = parentClassifyVOList.get(i);
- if (StringUtils.isNotBlank(record.getCoderuleoid())) {
- codeRuleOid = record.getCoderuleoid();
+ if (StringUtils.isNotBlank(record.getCodeRuleOid())) {
+ codeRuleOid = record.getCodeRuleOid();
break;
}
}
@@ -2655,7 +2780,7 @@
CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
//涓轰簡闃叉妯℃澘涓婄殑涓氬姟绫诲瀷涓庡垎绫讳笂涓嶅搴�
CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(templateVO.getCodeclassifyoid());
- String btmId = topClassifyVO.getBtmtypeid();
+ String btmId = topClassifyVO.getBtmTypeId();
//鏌ヨ鏁版嵁
Map<String, String> conditionMap = new HashMap<>();
conditionMap.put("t.oid", oid);
@@ -2666,7 +2791,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);
});
@@ -2770,18 +2895,18 @@
}
List<String> oidList = VciBaseUtil.str2List(conditionMap.get("oid"));
- List<BaseModel> cbos = selectByTypeAndOid(btmType,conditionMap.get("oid"));
+ List<BaseModel> cbos = selectByTypeAndOid(btmType, conditionMap.get("oid"));
if (CollectionUtils.isEmpty(cbos)) {
throw new VciBaseException("鏈壘鍒颁笟鍔℃暟鎹�");
}
- BaseModel cbo = cbos.get(0);
+ BaseModel cbo = cbos.get(0);
String templateOid = cbo.getData().get("CODETEMPLATEOID");
QueryWrapper<CodeClassifyTemplate> codeClassifyTemplateWrapper = new QueryWrapper<>();
codeClassifyTemplateWrapper.eq("oid", templateOid);
List<CodeClassifyTemplate> templateDOList = templateService.list(codeClassifyTemplateWrapper);
- QueryWrapper<CodeClassifyTemplateAttr> codeClassifyTemplateAttrWrapper = new QueryWrapper<>();
+ QueryWrapper<CodeClassifyTemplateAttr> codeClassifyTemplateAttrWrapper = new QueryWrapper<>();
codeClassifyTemplateAttrWrapper.eq("CLASSIFYTEMPLATEOID", templateOid);
List<CodeClassifyTemplateAttr> attrDOList = codeClassifyTemplateAttrService.list(codeClassifyTemplateAttrWrapper);
@@ -2862,6 +2987,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;
+ }
+
/**
* 妯℃澘灞炴�ц浆鎹负琛ㄦ牸瀹氫箟鐨勪俊鎭�
*
@@ -2881,38 +3051,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 -> {
@@ -3097,12 +3272,12 @@
uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0);
if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) {
List<Menu> buttonVOS = iSysClient.getMenuButtonByType(uiInfoVO.getTemplateVO().getBtmTypeId()).getData();
-// List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId);
-// if (operationVOS == null) {
-// operationVOS = new ArrayList<>();
-// }
-// //鏌ヨ鎵╁睍鎸夐挳
-// List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid);
+ // List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId);
+ // if (operationVOS == null) {
+ // operationVOS = new ArrayList<>();
+ // }
+ // //鏌ヨ鎵╁睍鎸夐挳
+ // List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid);
List<SmOperationVO> operationVOS = new ArrayList<>();
if (!CollectionUtils.isEmpty(buttonVOS)) {
for (int i = 0; i < buttonVOS.size(); i++) {
@@ -3122,6 +3297,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;
+ }
/**
* 浣跨敤鍒嗙被涓婚敭鑾峰彇宸ュ叿鏍忎腑鐨勬寜閽俊鎭�
@@ -3169,14 +3371,22 @@
public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
- if (listR.getData().size() == 0) {
+ 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());
}
@@ -3196,7 +3406,7 @@
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
- if (listR.getData().size() == 0) {
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
//鏌ヨ鏁版嵁
@@ -3226,14 +3436,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);
@@ -3254,7 +3468,10 @@
*/
public BaseModel createBaseModel(String boName) {
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName));
- String userName = String.valueOf(AuthUtil.getUser().getUserId());
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+// String userName = String.valueOf(AuthUtil.getUser().getUserId());
BaseModel bo = new BaseModel();
// bo.setOid(VciBaseUtil.getPk());
// bo.setRevisionid(VciBaseUtil.getPk());
@@ -3264,16 +3481,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);
@@ -3286,7 +3503,7 @@
bo.setId("");
bo.setName("");
bo.setDescription("");
- bo.setOwner(userName);
+ bo.setOwner("1");
// bo.setCheckinby(userName);
bo.setCopyFromVersion("");
// this.initTypeAttributeValue(bo,btmTypeVO);
@@ -3321,15 +3538,23 @@
public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
- if (listR.getData().size() == 0) {
+ 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());
}
@@ -3351,10 +3576,16 @@
* @return 鍒楄〃鏁版嵁
*/
@Override
- public Page<BaseModel>referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) {
-// checkReferConfig(referConfigVO);
+ public IPage<BaseModel> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) throws VciBaseException {
+ //checkReferConfig(referConfigVO);
//浣跨敤涓氬姟绫诲瀷鏌ヨ
R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType());
+ if (!allAttributeByBtmId.isSuccess()) {
+ throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
+ }
+ if (Func.isEmpty(allAttributeByBtmId.getData())) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
BtmTypeVO btmTypeVO = allAttributeByBtmId.getData();
/**
* 鍔犱笂鏌ヨ鏈�鏂扮増娆�
@@ -3369,8 +3600,12 @@
BtmTypeLcStatusConstant.RELEASE_LIFE_CYCLE.equalsIgnoreCase(btmTypeVO.getLifeCycleId())) {
baseQueryObject.getConditionMap().put(VciQueryWrapperForDO.LC_STATUS_FIELD, CodeDefaultLC.RELEASED.getValue());
}
+
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referConfigVO.getReferType()));
- if (listR.getData().size() == 0) {
+ if (!listR.isSuccess()) {
+ throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
+ }
+ if (listR.getData().isEmpty()) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
String namesql = "";
@@ -3391,15 +3626,20 @@
if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("lcstatus"))) {
lcstatusSql = "and lcstatus =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lcstatus"));
}
+// String where = "";
+
+// if (StringUtils.isNotBlank(codesql) || StringUtils.isNotBlank(lcstatusSql) || StringUtils.isNotBlank(namesql)) {
+// where = "where ";
+// }
String num1 = baseQueryObject.getPage() * baseQueryObject.getLimit() + "";
String num2 = ((baseQueryObject.getPage()) - 1) * baseQueryObject.getLimit() + 1 + "";
- List<Map> maps = commonsMapper.selectBySql("select * from ( select rownum rn, t.* from (select * from " + listR.getData().get(0).getTableName()
- + " where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString())
- + "and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())
- + lcstatusSql + namesql + codesql + ") t where rownum <=" + num1 + ") where rn >=" + num2
- );
+ List<Map> maps = commonsMapper.selectBySql("select * from ( select rownum rn, t.* from (select * from " + listR.getData().get(0).getTableName() + SPACE
+ + (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId()) ? (" where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString())
+ + " and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 "
+ + lcstatusSql + namesql + codesql + ") t "+ (baseQueryObject.getLimit()==-1?")": ("where rownum <=" + num1 + ") where rn >=" + num2)
+ ));
List<BaseModel> baseModels = new ArrayList<>();
//灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑
try {
@@ -3424,7 +3664,11 @@
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()));
+ 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());
}
}
@@ -3439,15 +3683,18 @@
} catch (Exception e) {
throw new VciBaseException("鏌ヨ澶辫触锛�" + e.getMessage());
}
- int total = commonsMapper.queryCountBySql("select count(*) from " + listR.getData().get(0).getTableName()
- + " where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString())
- + "and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())
+ int total = commonsMapper.queryCountBySql("select count(*) from " + listR.getData().get(0).getTableName() + SPACE
+ + (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId()) ? (" where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString())
+ + "and lastv = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 "
+ lcstatusSql + namesql + codesql
);
- Page<BaseModel>page=new Page<>();
- page.setRecords(baseModels);
- page.setTotal(total);
- return page;
+ IPage<BaseModel> objectDataGrid = new Page<>();
+ objectDataGrid.setPages(baseQueryObject.getPage());
+ objectDataGrid.setCurrent(baseQueryObject.getPage());
+ objectDataGrid.setRecords(baseModels);
+ objectDataGrid.setSize(baseQueryObject.getLimit());
+ objectDataGrid.setTotal(total);
+ return objectDataGrid;
}
/**
@@ -3515,7 +3762,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);
@@ -3557,8 +3845,6 @@
public BaseModel reviseBusinessObject(BaseModel fromBo) {
BaseModel toBo = new BaseModel();
-// Map<String,String> data = new HashMap<>();
-// toBo.getData().put(data);
toBo.setOid(VciBaseUtil.getPk());
toBo.setRevisionOid(VciBaseUtil.getPk());
toBo.setNameOid(fromBo.getNameOid());
@@ -3572,13 +3858,13 @@
toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
toBo.setLastModifyTime(new Date());
toBo.setRevisionRule(fromBo.getRevisionRule());
- toBo.setVersionRule(fromBo.getVersionRule());
-// RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal);
- R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname()));
+ toBo.setVersionRule(fromBo.getVersionRule());R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname()));
+ if (!listR.isSuccess() || listR.getData().size() == 0) {
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
Map<String, Object> nextRevision = commonsMapper.getNextRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid());
toBo.setRevisionSeq(Integer.parseInt(nextRevision.get("REVISIONSEQ").toString()));
toBo.setRevisionValue(nextRevision.get("REVISIONVAL").toString());
-// VersionValueObject versionObj = this.getVersionValue(item.verRuleName);
toBo.setVersionSeq(Integer.valueOf(nextRevision.get("VERSIONSEQ").toString()));
toBo.setVersionValue(nextRevision.get("VERSIONVAL").toString());
toBo.setLctid(fromBo.getLctid());
@@ -3587,12 +3873,27 @@
toBo.setName(fromBo.getName());
toBo.setDescription(fromBo.getDescription());
toBo.setOwner(String.valueOf(AuthUtil.getUser().getUserId()));
-// toBo.setCheckinBy(String.valueOf(AuthUtil.getUser().getUserId()));
toBo.setCopyFromVersion(fromBo.getOid());
toBo.getData().putAll(fromBo.getData());
toBo.getData().put("CHECKINBY", String.valueOf(AuthUtil.getUser().getUserId()));
-// this.initRevisionTypeAttributeValue(fromBo, toBo);
return toBo;
}
+
+ /**
+ * 娴佺▼涓彉鏇寸姸鎬佸��
+ * @param flowDTO
+ * @return
+ */
+ @Override
+ public R processChangeStatus(FlowStatusDTO flowDTO) {
+ flowDTO.getOids().forEach(s -> {
+ BaseModelDTO baseModel = new BaseModelDTO();
+ baseModel.setOid(s);
+ baseModel.setBtmname(flowDTO.getBtmType());
+ baseModel.setLcStatus(String.valueOf(flowDTO.getVariableMap().getOrDefault("statusValue","Auditing")));
+ changeStatus(baseModel);
+ });
+ return R.success("鎴愬姛");
+ }
}
--
Gitblit v1.9.3