From 504039db415ca1c04c114dba3d8edc551d34d2c7 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 14 九月 2023 15:11:48 +0800
Subject: [PATCH] 日期码段 回显
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 132 insertions(+), 26 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 721683a..cfa0d29 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;
@@ -20,6 +21,7 @@
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;
@@ -435,18 +437,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;
}
/**
@@ -751,7 +746,29 @@
return dataList;
}
- /**
+ /**
+ * 鏍规嵁褰撳墠鐢宠缂栫爜鐨勫垎绫伙紝閫愬眰寰�涓婃牎楠屾槸鍚︾鍚堝睘浜庨厤缃殑涓殑鍒嗙被瀛愯妭鐐圭殑鍒�
+ * 绫伙紝濡傛灉绗﹀悎锛屽垯璇ュ垎绫荤敵璇风殑缂栫爜涓洪泦鍥㈢爜杩斿洖true锛屽弽涔嬪垯涓轰紒涓氱紪鐮佽繑鍥瀎alse
+ * @param parameter 浼犲叆鏁版嵁,classifyGroupCode:閰嶇疆鐨勪腑鐨勫垎绫婚《鑺傜偣锛宱id锛氶�夋嫨鑺傜偣鐨刼id
+ */
+ @Override
+ public R checkGroupCode(Map<String, String> parameter) {
+ List<CodeClassify> codeClassifyList = classifyService.selectAllLevelParents(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 褰撳墠鐨勫��
@@ -2413,7 +2430,6 @@
return phaseAttrService.listAttrByTemplateOidAndPhaseId(templateVO.getOid(), phase);
}
-
/**
* 璺緞涓婂寘鍚綋鍓嶅垎绫荤殑鎵�鏈夊垎绫讳俊鎭�
*
@@ -2739,12 +2755,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.setCodeDateFormatStr(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.setCodeDateFormatStr(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.setCodeDateFormatStr(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;
+ }
/**
* 浣跨敤鍒嗙被鐨勫叏閮ㄤ俊鎭幏鍙栫紪鐮佽鍒�
@@ -2761,7 +2867,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寮�濮嬭幏鍙�
@@ -2773,7 +2879,7 @@
}
}
if (StringUtils.isBlank(codeRuleOid)) {
- throw new VciBaseException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
+ throw new ServiceException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
}
}
return ruleService.getObjectHasSecByOid(codeRuleOid);
@@ -3470,7 +3576,6 @@
return baseModels;
}
-
/**
* 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍒涘缓涓氬姟鏁版嵁婧愬璞�
*
@@ -3587,12 +3692,12 @@
* @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("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
@@ -3619,6 +3724,7 @@
if (listR.getData().isEmpty()) {
throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
}
+ // TODO:鍙傜収閰嶇疆鐨勬ā绯婃煡璇㈣繃婊ゆ潯浠舵殏鏈鐞�
String namesql = "";
if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("name"))) {
String s = baseQueryObject.getConditionMap().get("name");
@@ -3668,27 +3774,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) {
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());
+ //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) {
@@ -3699,10 +3806,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;
@@ -3827,7 +3934,6 @@
treeWrapperOptions.setParentOid(queryObject.getParentOid());
return revisionModelUtil.doList2Trees(codeClassifies, treeWrapperOptions, null);
}
-
@Override
public boolean checkUnAttrUnEdit(String attrName) {
--
Gitblit v1.9.3