From 24e44fc25fc7b502486373589e61791ff5bb5eac Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期二, 18 七月 2023 22:16:01 +0800
Subject: [PATCH] 集成获取分类接口(包含编码规则码段码值信息)

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |  223 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 183 insertions(+), 40 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index 1abb780..0ec9aa8 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -43,6 +43,11 @@
 import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.system.feign.ISysClient;
+import com.vci.ubcs.system.user.entity.User;
+import com.vci.ubcs.system.user.feign.IUserClient;
+import com.vci.ubcs.system.vo.DeptVO;
+import com.vci.ubcs.system.vo.RoleVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -85,6 +90,18 @@
 	 */
 	@Autowired
 	private IBtmTypeClient btmTypeClient;
+
+	/**
+	 * 浜哄憳鏈嶅姟
+	 */
+	@Autowired
+	private  ISysClient sysClient;
+
+	/**
+	 * 浜哄憳鏈嶅姟
+	 */
+	@Autowired
+	private IUserClient userClient;
 
 	/**
 	 * 閫氱敤鏌ヨ
@@ -955,44 +972,159 @@
 										coderefersecSearchVO = JSONObject.toJavaObject(JSONObject.parseObject(referConfig), CoderefersecSearchVO.class);
 									}
 									String buildSqlwhere="";
-									if(coderefersecSearchVO!=null){
-										Map<String,Object> condtionMap=new HashMap<>();
-										List<CodeSrchCondConfigVO> codeSrchCondConfigVOList=coderefersecSearchVO.getCodeSrchCondConfigVOS();
+									if(coderefersecSearchVO!=null) {
+										if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.DEFAULT.getValue()) || coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.GRID.getValue())) {//榛樿鏍峰紡/鍒楄〃
+											Map<String, Object> condtionMap = new HashMap<>();
+											List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS();
 
-										if(!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
-											codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
-												condtionMap.put(codeSrchCondConfigVO.getFilterField()+codeSrchCondConfigVO.getFilterType(),codeSrchCondConfigVO.getFilterValue());
-											});
-											buildSqlwhere=	UBCSSqlKeyword.buildSqlwhere(condtionMap);
+											if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
+												codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
+													condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue());
+												});
+												buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap);
+											}
+
+											//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+											R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
+											if (!listR.isSuccess() || listR.getData().size() == 0) {
+												throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+											}
+											String referTable = listR.getData().get(0).getTableName();
+											StringBuffer sb = new StringBuffer();
+											sb.append(" select * from  ");
+											sb.append(referTable);
+											sb.append(" where 1=1  ");
+											if (StringUtils.isNotBlank(buildSqlwhere)) {
+												sb.append(buildSqlwhere);
+											}
+											List<Map> ListMap = commonsMapper.selectBySql(sb.toString());
+											String valueField = coderefersecSearchVO.getValueField();
+											String textField = coderefersecSearchVO.getTextField();
+											final int[] num = {0};
+											if (!CollectionUtils.isEmpty(ListMap)) {
+												ListMap.stream().forEach(map -> {
+													num[0]++;
+													String id = map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
+													String value = map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
+													String text = map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
+													String description = map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
+													CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, "", description);
+													codeSectionValueVOList.add(sectionValueVO);
+												});
+											}
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())) {//鏍戝舰
+
+										/*	Map<String, Object> condtionMap = new HashMap<>();
+											List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS();
+											List<CodeShowFieldConfigVO> codeShowFieldConfigVOS=coderefersecSearchVO.getCodeShowFieldConfigVOS();
+
+											if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
+												codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
+													condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue());
+												});
+												buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap);
+											}
+											//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+											R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
+											if (!listR.isSuccess() || listR.getData().size() == 0) {
+												throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+											}
+											String referTable = listR.getData().get(0).getTableName();
+											StringBuffer sb = new StringBuffer();
+											sb.append(" select * from  ");
+											sb.append(referTable);
+
+
+
+											sb.append(" where 1=1  ");
+											if (StringUtils.isNotBlank(buildSqlwhere)) {
+												sb.append(buildSqlwhere);
+											}
+											List<Map> ListMap = commonsMapper.selectBySql(sb.toString());
+											String valueField = coderefersecSearchVO.getValueField();
+											String textField = coderefersecSearchVO.getTextField();
+											final int[] num = {0};
+											if (!CollectionUtils.isEmpty(ListMap)) {
+												ListMap.stream().forEach(map -> {
+													num[0]++;
+													String id = map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString();
+													String value = map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString();
+													String text = map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString();
+													String description = map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString();
+													CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, "", description);
+													codeSectionValueVOList.add(sectionValueVO);
+												});
+											}
+*/
+
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTGRIDREFERS.getValue()) ||////閮ㄩ棬鍒楄〃
+											coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue())//閮ㄩ棬鏍�
+										) {
+											R<List<DeptVO>> r = sysClient.deptList("");
+											if (r.isSuccess()) {
+												List<DeptVO> deptVOList = r.getData();
+												if (!CollectionUtils.isEmpty(deptVOList)) {
+													deptVOList.stream().forEach(deptVO -> {
+														String id = String.valueOf(deptVO.getId());
+														int num = deptVO.getSort();
+														String value = String.valueOf(deptVO.getId());
+														String text = deptVO.getDeptName();
+														String description = deptVO.getRemark();
+														String pid = deptVO.getParentId() + "";
+														CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num + "", value, text, pid, description);
+														codeSectionValueVOList.add(sectionValueVO);
+													});
+												}
+											}
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMUSERREFER.getValue())//鐢ㄦ埛
+											|| coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMUSERGRIDREFER.getValue())//鐢ㄦ埛鍒楄〃
+										) {
+											R<List<User>>  r=userClient.selectAllUser();
+											if (r.isSuccess()) {
+												List<User> userList = r.getData();
+												if (!CollectionUtils.isEmpty(userList)) {
+													final int[] num = {0};
+													userList.stream().forEach(user -> {
+													 	String value=StringUtils.isBlank(user.getAccount())?"":user.getAccount();
+														//String value= String.valueOf(StringUtils.isBlank(user.getCode())?"":user.getCode());
+														String text=StringUtils.isBlank(user.getName())?"":user.getName();
+														String pid=user.getDeptId();
+														num[0]++;
+														String description="";
+														String id= String.valueOf(user.getId());
+														CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, pid, description);
+														codeSectionValueVOList.add(sectionValueVO);
+													});
+												}
+											}
+
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMROLEREFER.getValue())) {//瑙掕壊鍒楄〃
+
+											R<List<RoleVO>> r = sysClient.roleTree("");
+											if (r.isSuccess()) {
+												List<RoleVO> roleVOList = r.getData();
+												if (!CollectionUtils.isEmpty(roleVOList)) {
+													roleVOList.stream().forEach(roleVO -> {
+														String id = String.valueOf(roleVO.getId());
+														int num = roleVO.getSort();
+														String value = String.valueOf(roleVO.getId());
+														String text = roleVO.getRoleName();
+														String description = roleVO.getRoleAlias();
+														String pid = roleVO.getParentId() + "";
+														CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num + "", value, text, pid, description);
+														codeSectionValueVOList.add(sectionValueVO);
+													});
+												}
+											}
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.ORGDUTYREFER.getValue())) {//鑱屽姟
+
+
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.SMWORKTYPEREFER.getValue())) {//宸ョ
+
+
+										} else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.WFPROCESSTEMPLATEREFER.getValue())) {//娴佺▼妯℃澘
+
 										}
-									}
-									//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
-									R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
-									if (!listR.isSuccess() || listR.getData().size() == 0) {
-										throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
-									}
-									String referTable = listR.getData().get(0).getTableName();
-									StringBuffer sb=new StringBuffer();
-									sb.append(" select * from  ");
-									sb.append(referTable);
-									sb.append(" where 1=1  ");
-									if(StringUtils.isNotBlank(buildSqlwhere)){
-										sb.append( buildSqlwhere );
-									}
-									List<Map> ListMap=	commonsMapper.selectBySql(sb.toString());
-									String valueField=coderefersecSearchVO.getValueField();
-									String textField=coderefersecSearchVO.getTextField();
-									final int[] num = {0};
-									if(!CollectionUtils.isEmpty(ListMap)){
-										ListMap.stream().forEach(map->{
-											num[0]++;
-											String id= map.getOrDefault("OID".toUpperCase(Locale.ROOT),"").toString();
-											String value= map.getOrDefault(valueField.toUpperCase(Locale.ROOT),"").toString();
-											String text=map.getOrDefault(textField.toUpperCase(Locale.ROOT),"").toString();
-											String description=map.getOrDefault("description".toUpperCase(Locale.ROOT),"").toString();
-											CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id, num[0]+"",value,text,"",description);
-											codeSectionValueVOList.add(sectionValueVO);
-										});
 									}
 									log.info(libId);
 								}else if(secType.equals("codelevelsec")) {//灞傜骇鐮佹
@@ -1157,9 +1289,11 @@
 		});
 		Map<String,CodeClassifyVO> codeClassifyVOMap= classifyFullInfo.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getId(), t -> t,(o1, o2)->o2));
 		List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
+		Map<String,String> errorMap=new HashMap<>();
 		for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
 			String sectype = codeBasicSecVO.getSecType();
 			String classifySecOid= codeBasicSecVO.getOid();
+			String message="";
 			if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
 				String name = codeBasicSecVO.getName();
 				String sectypeText = codeBasicSecVO.getSecTypeText();
@@ -1181,19 +1315,28 @@
 								CodeClassifyValue codeClassifyValue=   codeClassifyValueDOMap.get(sectypeValue);
 								sectypeValue=codeClassifyValue.getOid();
 							}else {
-								objerrorCode = "101";
-								throw new Throwable("浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 鍊硷細" + sectypeValue + "銆戯紝涓嶇鍚堝綋鍓嶅垎绫诲眰绾т唬鍙�");
+								//throw new Throwable("浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 鍊硷細" + sectypeValue + "銆戯紝涓嶇鍚堝綋鍓嶅垎绫诲眰绾т唬鍙�");
+								message="浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 鍊硷細" + sectypeValue + "銆戯紝涓嶇鍚堝綋鍓嶅垎绫诲眰绾т唬鍙�";
+								errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
 							}
 						}
+					}
+					if(StringUtils.isBlank(sectypeValue)){
+						message="浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 銆戠殑鍊间笉鍏佽涓虹┖";
+						errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
 					}
 					CodeOrderSecDTO.setSecValue(sectypeValue);
 					codeOrderSecDTOList.add(CodeOrderSecDTO);
 				} else {
-					objerrorCode="101";
-					throw new Throwable("浼犲叆鐨勭爜娈佃鍒欑己灏�" + name + "鐮佹");
+					message="浼犲叆鐨勭爜娈佃鍒欑己灏�" + name + "鐮佹";
+					errorMap.put("error",errorMap.getOrDefault("error","")+";"+message);
 				}
 			}
 		}
+		if(errorMap.size()>0){
+			objerrorCode="101";
+			throw new Throwable(errorMap.getOrDefault("error",""));
+		}
 		return codeOrderSecDTOList;
 	}
 	/***

--
Gitblit v1.9.3