From 7fc23087c9214199ebfbf88156aa3dc7b9b5f23c Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 02 八月 2023 16:25:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 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 719627b..e569cfb 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
@@ -2359,7 +2359,7 @@
 //			conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
 
             conditionMap.put("t." + CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " +
-                    btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY))
+                    btmTypeClient.selectByIdCollection(Collections.singletonList("classify"))
                             .getData().get(0).getTableName() + " where lcstatus='" + FrameWorkDefaultValueConstant
                     .FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid +
                     "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
@@ -2709,7 +2709,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);
         });
@@ -3355,13 +3355,17 @@
                             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, 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);
@@ -3672,7 +3676,48 @@
         } else {
             if (StringUtils.isNotBlank(referConfigVO.getParentFieldName()) && StringUtils.isNotBlank(queryObject.getParentOid())) {
                 queryObject.getConditionMap().put(referConfigVO.getParentFieldName(), queryObject.getParentOid());
-            }
+				//鏌ヨ鍏ㄩ儴鐨勪俊鎭�
+				String parentOidSql = "";
+				if (StringUtils.isNotBlank(referConfigVO.getParentValue())) {
+					String temp = referConfigVO.getParentValue();
+					if (temp.startsWith(QueryOptionConstant.IN)) {
+						temp = temp.substring((QueryOptionConstant.IN).length()).trim();
+						parentOidSql = " in " + "('" + queryObject.getParentOid() + "')";
+					} else if (temp.startsWith(QueryOptionConstant.NOTIN)) {
+						parentOidSql = " not in " + "('" + queryObject.getParentOid() + "')";
+					} else if (temp.startsWith(QueryOptionConstant.NOTEQUAL)) {
+						temp = temp.substring((QueryOptionConstant.NOTEQUAL).length()).trim();
+						parentOidSql = QueryOptionConstant.NOTEQUAL + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+					} else if (temp.startsWith(QueryOptionConstant.MORETHAN)) {
+						temp = temp.substring((QueryOptionConstant.MORETHAN).length()).trim();
+						parentOidSql = QueryOptionConstant.MORETHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+					} else if (temp.startsWith(QueryOptionConstant.MORE)) {
+						temp = temp.substring((QueryOptionConstant.MORE).length()).trim();
+						parentOidSql = QueryOptionConstant.MORE + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+					} else if (temp.startsWith(QueryOptionConstant.LESSTHAN)) {
+						temp = temp.substring((QueryOptionConstant.LESSTHAN).length()).trim();
+						parentOidSql = QueryOptionConstant.LESSTHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+					} else if (temp.startsWith(QueryOptionConstant.LESS)) {
+						temp = temp.substring((QueryOptionConstant.LESS).length()).trim();
+						parentOidSql = QueryOptionConstant.LESS + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+					} else if (temp.startsWith(QueryOptionConstant.ISNOTNULL)) {
+						parentOidSql = " is not null";
+					} else if (temp.startsWith(QueryOptionConstant.ISNULL)) {
+						parentOidSql = " is  null";
+					} else if (temp.contains("*")) {
+						parentOidSql = " like " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'").replace("*", "%");
+					} else {
+						parentOidSql = " = " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
+					}
+
+				}
+				//鏌ヨ鍏ㄩ儴鐨勪俊鎭�
+				queryObject.getConditionMap().put("oid", QueryOptionConstant.IN + "(select oid from " +
+					getTableName(referConfigVO.getReferType()) +
+					" START WITH " + referConfigVO.getParentFieldName() + " " +
+					parentOidSql +
+					" CONNECT BY PRIOR " + oidFieldName + " = " + referConfigVO.getParentFieldName() + ")");
+			}
         }
         LambdaQueryWrapper<CodeClassify> lqw = new LambdaQueryWrapper<>();
         String sql = queryObject.getConditionMap().get("oid").substring(3);

--
Gitblit v1.9.3