From 9d221483745544c8825393f0074328c6bdbc4ac0 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 20 九月 2023 17:04:15 +0800
Subject: [PATCH] 单点登录测试
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 457 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 346 insertions(+), 111 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 5871992..0a3fb50 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,6 +5,7 @@
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.vci.ubcs.code.applyjtcodeservice.vo.BaseModelVO;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
@@ -15,11 +16,14 @@
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
+import com.vci.ubcs.code.util.ClientBusinessObject;
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.code.wrapper.BaseMdodelWrapper;
+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;
@@ -35,6 +39,7 @@
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.constant.RegExpConstant;
@@ -52,6 +57,7 @@
import com.vci.ubcs.system.user.feign.IUserClient;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import oracle.sql.TIMESTAMP;
+import org.aspectj.apache.bcel.classfile.Code;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.cache.utils.CacheUtil;
@@ -179,9 +185,6 @@
*/
@Resource
CommonsMapper commonsMapper;
-
- @Resource
- ICodeBasicSecService codeBasicSecService;
/**
* 缂栫爜瑙勫垯鐨勬湇鍔�
@@ -355,15 +358,10 @@
throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�");
}
//杩橀渶瑕佷慨鏀筧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) {
@@ -376,8 +374,11 @@
for (BaseModel baseModel : baseModels) {
baseModel.setLcStatus(baseModelDTO.getLcStatus());
}
- updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
- }
+ R r = updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
+ if(!r.isSuccess()){
+ throw new VciBaseException("鏇存柊鏁版嵁鍑洪敊锛岄噸璇曪紒"+r.getMsg());
+ }
+ }
for (CodeAllCode codeCbo : codeCbos) {
codeCbo.setLcStatus(baseModelDTO.getLcStatus());
}
@@ -424,9 +425,12 @@
cbo.setNameOid(VciBaseUtil.getPk());
cbo.setCreateTime(new Date());
cbo.setLastModifyTime(new Date());
- cbo.setCreator(AuthUtil.getUser().getUserName());
- cbo.setLastModifier(AuthUtil.getUser().getUserName());
+ 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
@@ -435,18 +439,11 @@
//澶囨敞
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 (BaseModel baseModel : cboList) {
-// charList.add(baseModel.getId());
-// }
batchSaveSelectChar(templateVO, cboList);
return codeList.size() > 0 ? codeList.get(0) : "";
-// return null;
}
/**
@@ -471,7 +468,7 @@
if (!CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(attrVO.getClassifyInvokeLevel()) && !"min".equalsIgnoreCase(attrVO.getClassifyInvokeLevel())) {
//鎸囧畾浜嗗眰绾х殑
//娉ㄦ剰锛屽洜涓烘煡璇笂绾у垎绫诲嚭鏉ョ殑灞傜骇鏄�掑簭鐨勶紝鍗抽《灞傝妭鐐规槸鏈�澶х殑鍊�
- List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList());
+ List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> -o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList());
int level = VciBaseUtil.getInt(attrVO.getClassifyInvokeLevel());
if (classifyVOS.size() >= level && level > 0) {
classifyVO = classifyVOS.get(level - 1);
@@ -554,10 +551,15 @@
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, "");
+ String orDefault = orderDTO.getData().getOrDefault(attrId, "");
+ value = Func.isBlank(orDefault) ? orderDTO.getData()
+ .getOrDefault(attrId.toUpperCase(Locale.ROOT), ""):orDefault;
}
return value;
}
@@ -653,8 +655,8 @@
});
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
-
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());
@@ -663,7 +665,11 @@
}
final String[] sql = {"select count(*) from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
- sql[0] += " and " + key + " = " + value;
+ if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)) {
+ sql[0] += " and " + key + " is null";
+ }else{
+ sql[0] += " and " + key + " = " + value;
+ }
});
if (StringUtils.isNotBlank(orderDTO.getOid())) {
//淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸�
@@ -681,7 +687,90 @@
}
}
- /**
+ /**
+ * 鏍¢獙鍏抽敭灞炴��
+ *
+ * @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;
+ }
+
+ /**
+ * 鏍规嵁褰撳墠鐢宠缂栫爜鐨勫垎绫伙紝閫愬眰寰�涓婃牎楠屾槸鍚︾鍚堝睘浜庨厤缃殑涓殑鍒嗙被瀛愯妭鐐圭殑鍒�
+ * 绫伙紝濡傛灉绗﹀悎锛屽垯璇ュ垎绫荤敵璇风殑缂栫爜涓洪泦鍥㈢爜杩斿洖true锛屽弽涔嬪垯涓轰紒涓氱紪鐮佽繑鍥瀎alse
+ * @param parameter 浼犲叆鏁版嵁,classifyGroupCode:閰嶇疆鐨勪腑鐨勫垎绫婚《鑺傜偣锛宱id锛氶�夋嫨鑺傜偣鐨刼id
+ */
+ @Override
+ public R checkGroupCode(Map<String, String> parameter) {
+ List<CodeClassify> codeClassifyList = classifyService.selectAllLevelParentByOid(parameter.get("oid"));
+ Set<String> configGroupCode = Arrays.stream(parameter.get("classifyGroupCode").split("#")).collect(Collectors.toSet());
+// Boolean checkGroupFlag = false;//鏄惁鏌ヨ鍒伴厤缃殑椤跺眰鍒嗙被涓�
+ for (int i = codeClassifyList.size()-1; i >= 0; i--) {
+ if(configGroupCode.contains(codeClassifyList.get(i).getId())){
+// checkGroupFlag = true;
+ return R.data("true");
+ }
+// if(checkGroupFlag && parameter.get("nowApplyCode").equals(codeClassifyList.get(i).getId())){
+// return R.data(true);
+// }
+ }
+ return R.data("false");
+ }
+
+ /**
* 灏佽鍏抽敭灞炴�х殑鏌ヨ璇彞
*
* @param value 褰撳墠鐨勫��
@@ -700,7 +789,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 = "";
@@ -736,8 +825,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);
+ }
}
}
}
@@ -806,10 +899,6 @@
} 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))) {
@@ -820,9 +909,6 @@
}
}
});
-// BeanMap beanMap = BeanMap.create(cbo);
-// beanMap.putAll(orderDTO.getData());
-
try {
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());
@@ -884,7 +970,7 @@
return (BaseModel) valueWrapper.get();
} catch (Exception e) {
logger.error("鍒涘缓涓氬姟绫诲瀷瀵硅薄", e);
- throw new VciBaseException("initBtmError", new String[]{btmName});
+ throw new ServiceException("initBtmError:"+"涓氬姟绫诲瀷锛�"+btmName+":"+e.getMessage());
}
}
@@ -1011,7 +1097,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())) {
@@ -1258,6 +1348,7 @@
}
fieldVO.setOptionJsMap(eventJsMap);
fieldVO.setStyle(attrVO.getTableDisplayStyle());
+ fieldVO.setTableDisplayFlag(attrVO.getTableDisplayFlag());
//鍒楄〃閲屼笉鍏佽鐩存帴缂栬緫
fieldVO.setDateFormate(attrVO.getCodeDateFormat());
return fieldVO;
@@ -1298,9 +1389,12 @@
uiTableConfigVO.setQueryColumns(queryColumns);
//set缁欒〃鏍奸厤缃睘鎬�
uiFormReferVO.setTableConfig(uiTableConfigVO);
+ //瀛楁鍚嶄笉涓�鑷达紝闇�瑕佹墜鍔╯et
+ uiFormReferVO.setMuti(Func.toBoolean(codeReferConfig.getIsMuti()));
+ uiFormReferVO.setInitSort(new UIFieldSortVO(codeReferConfig.getSortField(),codeReferConfig.getSortType()));
// 绛涢�夋潯浠�
HashMap<String, String> whereMap = new HashMap<>();
- if(!codeReferConfig.getCodeSrchCondConfigVOS().isEmpty()){
+ if(!CollectionUtils.isEmpty(codeReferConfig.getCodeSrchCondConfigVOS())){
codeReferConfig.getCodeSrchCondConfigVOS().stream().forEach(srch->{
whereMap.put(srch.getFilterField()+srch.getFilterType(),srch.getFilterValue());
});
@@ -2341,7 +2435,6 @@
return phaseAttrService.listAttrByTemplateOidAndPhaseId(templateVO.getOid(), phase);
}
-
/**
* 璺緞涓婂寘鍚綋鍓嶅垎绫荤殑鎵�鏈夊垎绫讳俊鎭�
*
@@ -2393,16 +2486,18 @@
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)
-
+ List<BtmTypeVO> classifyData = btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY)).getData();
+ if(Func.isEmpty(classifyData)){
+ throw new ServiceException("涓氬姟绫诲瀷涓嫳鏂囧悕绉板拰鏌ヨ鏉′欢閰嶇疆涓嶄竴鑷达紝璇蜂慨鏀逛笟鍔$被鍨嬩腑鍒嗙被琛ㄨ嫳鏂囧悕绉颁负"+MdmBtmTypeConstant.CODE_CLASSIFY);
+ }
conditionMap.put("t." + CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " +
- btmTypeClient.selectByIdCollection(Collections.singletonList("classify"))
- .getData().get(0).getTableName() + " where lcstatus='" + FrameWorkDefaultValueConstant
+ classifyData.get(0).getTableName() + " where lcstatus='" + FrameWorkDefaultValueConstant
.FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid +
"' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
}
@@ -2448,27 +2543,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)) {
+ 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()) {
@@ -2494,21 +2584,13 @@
//浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
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);
return R.success("鎿嶄綔鎴愬姛锛�");
}
@@ -2614,17 +2696,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.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
@@ -2642,20 +2717,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);
@@ -2688,12 +2760,102 @@
String codeRuleOid = classifyVO.getCodeRuleOid();
if (StringUtils.isBlank(codeRuleOid)) {
//寰�涓婃壘
- CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
- return getCodeRuleByClassifyFullInfo(fullInfo);
+ CodeRuleVO classifyFullInfoCodeRule = getCodeRuleByClassifyFullInfo(classifyService.getClassifyFullInfo(codeClassifyOid));
+ return toCodeValueApplyStatus(classifyFullInfoCodeRule);
}
- //鎴戜滑鏌ヨ缂栫爜瑙勫垯
- return ruleService.getObjectHasSecByOid(codeRuleOid);
+ //鏌ヨ缂栫爜瑙勫垯
+ CodeRuleVO objectHasSecByOid = ruleService.getObjectHasSecByOid(codeRuleOid);
+ return toCodeValueApplyStatus(objectHasSecByOid);
}
+
+ /**
+ * 缂栫爜鐢宠琛ㄥ崟锛岄殣钘忋�佸彲杈撱�佸彧璇昏浆鎹�
+ * @param codeRuleVO
+ * @return
+ */
+ private CodeRuleVO toCodeValueApplyStatus(CodeRuleVO codeRuleVO){
+ if(codeRuleVO.getSecVOList().isEmpty()){
+ return codeRuleVO;
+ }
+ // 鍙緭鐮佹绫诲瀷
+ List<String> inputTypes = Arrays.asList(
+ CodeSecTypeEnum.CODE_FIXED_SEC.getValue(),
+ CodeSecTypeEnum.CODE_VARIABLE_SEC.getValue(),
+ CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue(),
+ CodeSecTypeEnum.CODE_REFER_SEC.getValue(),
+ CodeSecTypeEnum.CODE_DATE_SEC.getValue()
+ );
+ // 鍙鐮佹绫诲瀷
+ List<String> readOnlyTypes = Arrays.asList(
+ CodeSecTypeEnum.CODE_LEVEL_SEC.getValue(),
+ CodeSecTypeEnum.CODE_ATTR_SEC.getValue()
+ );
+ // 闅愯棌鐮佹绫诲瀷
+ /*List<String> hideType = Arrays.asList(
+ CodeSecTypeEnum.CODE_SERIAL_SEC.getValue()
+ );*/
+ // 褰撳墠瑙勫垯鐨勬墍鏈夌被鍨嬬爜娈�
+ List<String> secTypeList = codeRuleVO.getSecVOList().stream().map(CodeBasicSecVO::getSecType).collect(Collectors.toList());
+ // 鎯呭喌涓� 鍏ㄩ儴鏄彧璇荤殑鐮佹绫诲瀷
+ boolean hasAllReadOnlyType =secTypeList.stream().allMatch(item -> readOnlyTypes.stream().anyMatch(item1-> item.equals(item1)));
+ // 鍏ㄩ儴鏄彧璇荤殑鐮佹绫诲瀷
+ if(hasAllReadOnlyType){
+ List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> {
+ secVO.setCodeValueApplyStatus(3);
+ // 鏃ユ湡鐮佹璁剧疆榛樿鍊�
+ if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) {
+ try {
+ secVO.setCodeDateValue(Func.format(new Date(),secVO.getCodeDateFormatStr()));
+ }catch (Exception e){
+ throw new ServiceException("鏃ユ湡鐮佹鏃ユ湡鏍煎紡閰嶇疆鏈夎锛屽鑷磋浆鎹㈠嚭閿欙細"+e.getMessage());
+ }
+ }
+ return secVO;
+ }).collect(Collectors.toList());
+ codeRuleVO.setSecVOList(basicSecVOS);
+ return codeRuleVO;
+ }
+ // 鎯呭喌浜� 鍏ㄩ儴閮芥槸鍙緭鍏ョ被鍨嬬殑
+ boolean hasAllInputType = secTypeList.stream().allMatch(item -> inputTypes.stream().anyMatch(item1-> item.equals(item1)));
+ if(hasAllInputType){
+ List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> {
+ secVO.setCodeValueApplyStatus(1);
+ // 鏃ユ湡鐮佹璁剧疆榛樿鍊�
+ if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) {
+ try {
+ secVO.setCodeDateValue(Func.format(new Date(),secVO.getCodeDateFormatStr()));
+ }catch (Exception e){
+ throw new ServiceException("鏃ユ湡鐮佹鏃ユ湡鏍煎紡閰嶇疆鏈夎锛屽鑷磋浆鎹㈠嚭閿欙細"+e.getMessage());
+ }
+ }
+ return secVO;
+ }).collect(Collectors.toList());
+ codeRuleVO.setSecVOList(basicSecVOS);
+ return codeRuleVO;
+ }
+ // 鎯呭喌涓夊寘鍚汉涓洪�夋嫨鐨勭爜娈碉紝鍙堟湁鍙绫诲瀷鐮佹鐨勶紝鎵�鏈夌爜娈甸兘瑕佹樉绀哄嚭鏉ワ紝鍙緭璁剧疆涓�1锛屽彧璇昏缃负2锛岄殣钘忚缃负3
+ List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> {
+ if(inputTypes.contains(secVO.getSecType())){
+ secVO.setCodeValueApplyStatus(1);
+ }else if(readOnlyTypes.contains(secVO.getSecType())){
+ secVO.setCodeValueApplyStatus(2);
+ }else{
+ secVO.setCodeValueApplyStatus(3);
+ }
+ // 鏃ユ湡鐮佹璁剧疆榛樿鍊�
+ if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) {
+ try {
+ secVO.setCodeDateValue(Func.format(new Date(),secVO.getCodeDateFormatStr()));
+ }catch (Exception e){
+ throw new ServiceException("鏃ユ湡鐮佹鏃ユ湡鏍煎紡閰嶇疆鏈夎锛屽鑷磋浆鎹㈠嚭閿欙細"+e.getMessage());
+ }
+ }
+ return secVO;
+ }).collect(Collectors.toList());
+ codeRuleVO.setSecVOList(basicSecVOS);
+ codeRuleVO.setIsShowHideStatus(hasAllReadOnlyType ? "readOnly":(hasAllInputType ? "input":"readAndInput"));
+ return codeRuleVO;
+ }
/**
* 浣跨敤鍒嗙被鐨勫叏閮ㄤ俊鎭幏鍙栫紪鐮佽鍒�
@@ -2710,7 +2872,7 @@
} else {
if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
//璇存槑宸茬粡鏄渶楂樺眰绾�,
- throw new VciBaseException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
+ throw new ServiceException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
}
List<CodeClassifyVO> parentClassifyVOList = fullInfoBO.getParentClassifyVOs().stream().sorted((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel())).collect(Collectors.toList());
//浠庢渶楂樼殑level寮�濮嬭幏鍙�
@@ -2722,7 +2884,7 @@
}
}
if (StringUtils.isBlank(codeRuleOid)) {
- throw new VciBaseException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
+ throw new ServiceException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
}
}
return ruleService.getObjectHasSecByOid(codeRuleOid);
@@ -3396,9 +3558,9 @@
&& ("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) {
+ } else if (map.containsKey(property.getName().toUpperCase())) {
if(setter.getParameterTypes()[0].getSimpleName().equals("String")){
- setter.invoke(obj, String.valueOf(map.get(property.getName().toUpperCase())));
+ 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()));
}
@@ -3418,7 +3580,6 @@
}
return baseModels;
}
-
/**
* 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍒涘缓涓氬姟鏁版嵁婧愬璞�
@@ -3528,20 +3689,79 @@
return R.success("鏇存柊鎴愬姛锛�");
}
+ /**
+ * 鏇存柊涓氬姟鏁版嵁鍚屾椂瀵圭爜鍊艰〃鏁版嵁鎿嶄綔鎺ュ彛
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param baseModels 澶勭悊鏁版嵁
+ * @return 澶勭悊鐘舵��
+ */
+ @Transactional(rollbackFor = VciBaseException.class)
+ @Override
+ public R<Integer> updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels) {
- /**
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+ 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());
+ if(!CollectionUtils.isEmpty(baseModels)){
+ List<String> oidList=baseModels.stream().filter(data-> com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(data.getOid())).map(BaseModel::getOid).distinct().collect(Collectors.toList());
+ LambdaQueryWrapper<CodeAllCode> lqw = new LambdaQueryWrapper<>();
+ lqw.in(CodeAllCode::getCreateCodeOid,oidList);
+ List<CodeAllCode> codeAllCodeList= codeAllCodeService.selectByWrapper(lqw);
+ Map<String, CodeAllCode> cboMap = codeAllCodeList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getCreateCodeOid(), t -> t));
+ List<CodeAllCode> newCodeAllCodeList=new ArrayList<>();
+ //灏哹ean杞负map,mybatis缁熶竴澶勭悊
+ List<Map<String, String>> maps = new ArrayList<>();
+ try {
+ baseModels.stream().forEach(baseModel->{
+ String oid=baseModel.getOid();
+ try {
+ maps.add(VciBaseUtil.convertBean2Map(baseModel,existFild));
+ } catch (Exception e) {
+ throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
+ }
+ if(cboMap.containsKey(oid)){
+ CodeAllCode codeAllCode= cboMap.get(oid);
+ codeAllCode.setId(baseModel.getId());
+ codeAllCode.setLastModifier(AuthUtil.getUser().getUserName());
+ codeAllCode.setLastModifyTime(new Date());
+ codeAllCode.setLcStatus(baseModel.getLcStatus());
+ newCodeAllCodeList.add(codeAllCode);
+ }
+ });
+ commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps);
+ codeAllCodeService.saveOrUpdateBatch(newCodeAllCodeList);
+ } catch (Exception e) {
+ throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
+ }
+
+ }
+ return R.success("鏇存柊鎴愬姛锛�");
+ }
+
+ /**
* 鑾峰彇鍙傜収鐨勪俊鎭�
*
* @param referConfigVO 鍙傜収鐨勯厤缃�
* @return 鍒楄〃鏁版嵁
*/
@Override
- public IPage<BaseModel> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) throws VciBaseException {
+ public IPage<BaseModelVO> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) throws VciBaseException {
//checkReferConfig(referConfigVO);
//浣跨敤涓氬姟绫诲瀷鏌ヨ
R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType());
if (!allAttributeByBtmId.isSuccess()) {
- throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
+ throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒;"+allAttributeByBtmId.getMsg());
}
if (Func.isEmpty(allAttributeByBtmId.getData())) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
@@ -3566,8 +3786,9 @@
throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
}
if (listR.getData().isEmpty()) {
- throw new VciBaseException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
+ // TODO:鍙傜収閰嶇疆鐨勬ā绯婃煡璇㈣繃婊ゆ潯浠舵殏鏈鐞�
String namesql = "";
if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("name"))) {
String s = baseQueryObject.getConditionMap().get("name");
@@ -3598,8 +3819,8 @@
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 where rownum <=" + num1 + ") where rn >=" + num2
- );
+ + lcstatusSql + namesql + codesql + ") t "+ (baseQueryObject.getLimit()==-1?")": ("where rownum <=" + num1 + ") where rn >=" + num2)
+ ));
List<BaseModel> baseModels = new ArrayList<>();
//灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑
try {
@@ -3617,23 +3838,28 @@
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());
setter.invoke(obj, date);
- map.remove(property.getName().toUpperCase());
+ //map.remove(property.getName().toUpperCase());
} //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
&& ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())) {
setter.invoke(obj, ((BigDecimal) map.get(property.getName().toUpperCase())).intValue());
- map.remove(property.getName().toUpperCase());
+ //map.remove(property.getName().toUpperCase());
} else if (map.get(property.getName().toUpperCase()) != null) {
- setter.invoke(obj, map.get(property.getName().toUpperCase()));
- map.remove(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)));
}
-
- ((BaseModel) obj).setData(map);
+ Map<String, String> newMap = new HashMap<>();
+ map.forEach((key, value) -> newMap.put(String.valueOf(key).toLowerCase(), String.valueOf(value)));
+ ((BaseModel) obj).setData(newMap);
baseModels.add((BaseModel) obj);
}
} catch (Exception e) {
@@ -3644,10 +3870,10 @@
+ "and lastv = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 "
+ lcstatusSql + namesql + codesql
);
- IPage<BaseModel> objectDataGrid = new Page<>();
+ IPage<BaseModelVO> objectDataGrid = new Page<>();
objectDataGrid.setPages(baseQueryObject.getPage());
objectDataGrid.setCurrent(baseQueryObject.getPage());
- objectDataGrid.setRecords(baseModels);
+ objectDataGrid.setRecords(BaseMdodelWrapper.build().listVO(baseModels));
objectDataGrid.setSize(baseQueryObject.getLimit());
objectDataGrid.setTotal(total);
return objectDataGrid;
@@ -3773,7 +3999,6 @@
return revisionModelUtil.doList2Trees(codeClassifies, treeWrapperOptions, null);
}
-
@Override
public boolean checkUnAttrUnEdit(String attrName) {
return (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName)
@@ -3801,8 +4026,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());
@@ -3816,16 +4039,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());
@@ -3834,12 +4054,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