From d0ae279ff3b83358d1c07f4481a041c4ad335026 Mon Sep 17 00:00:00 2001
From: dangsn <dangsn@chicecm.com>
Date: 星期二, 03 十二月 2024 11:57:38 +0800
Subject: [PATCH] 提取业务系统使用的功能,独立出一个单独的模块

---
 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java |  103 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 67 insertions(+), 36 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
similarity index 91%
rename from Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
rename to Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
index 59d7a9f..1b62ddc 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
@@ -12,6 +12,7 @@
 import com.vci.corba.query.ObjectQueryService;
 import com.vci.corba.query.data.BOAndLO;
 import com.vci.omd.utils.ObjectTool;
+import com.vci.query.UILinkTypeDataQuery;
 import com.vci.starter.web.constant.QueryOptionConstant;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.DataGrid;
@@ -19,7 +20,6 @@
 import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.starter.web.util.VciDateUtil;
 import com.vci.web.properties.WebProperties;
-import com.vci.web.query.UILinkTypeDataQuery;
 import com.vci.web.service.WebBoServiceI;
 import com.vci.web.service.WebLoServiceI;
 import com.vci.web.util.PlatformClientUtil;
@@ -42,21 +42,22 @@
  */
 @Service
 public class WebLoServiceImpl implements WebLoServiceI {
+	/**
+	 * 鏃ュ織瀵硅薄
+	 */
+	private Logger logger = LoggerFactory.getLogger(getClass());
 
 	/**
 	 * 澶氳瑷�鍓嶇紑
 	 */
 	private final String msgCodePrefix = "com.vci.web.loService.";
 
-	/**
-	 * 鏃ュ織瀵硅薄
-	 */
-	private Logger logger = LoggerFactory.getLogger(getClass());
-
-
 	@Autowired
 	private WebBoServiceI boService;
 
+	/**
+	 *
+	 */
 	@Autowired
 	private WebProperties webProperties;
 
@@ -75,24 +76,17 @@
 		LO_BASE_FIELD_MAP.put("oid","oid");
 		LO_BASE_FIELD_MAP.put("creator","creator");
 		LO_BASE_FIELD_MAP.put("createTime","createTime");
-		//LO_BASE_FIELD_MAP.put("lastModifier","lastModifier");
-		//LO_BASE_FIELD_MAP.put("lastModifyTime","lastModifyTime");
 		LO_BASE_FIELD_MAP.put("modifier","lastModifier");
 		LO_BASE_FIELD_MAP.put("modifyTime","lastModifyTime");
 		LO_BASE_FIELD_MAP.put("fromOid","f_oid");
-		//LO_BASE_FIELD_MAP.put("fromRevisionOid","f_revisionoid");
 		LO_BASE_FIELD_MAP.put("fromRevOid","f_revisionoid");
 		LO_BASE_FIELD_MAP.put("fromNameOid","f_nameoid");
-		//LO_BASE_FIELD_MAP.put("fromBTMName","f_btwname");
 		LO_BASE_FIELD_MAP.put("fromBTName","f_btwname");
-		//LO_BASE_FIELD_MAP.put("toRevisionOid","t_revisionoid");
 		LO_BASE_FIELD_MAP.put("toRevOid","t_revisionoid");
 		LO_BASE_FIELD_MAP.put("toNameOid","t_nameoid");
-		//LO_BASE_FIELD_MAP.put("toBTMName","t_btwname");
 		LO_BASE_FIELD_MAP.put("toBTName","t_btwname");
 		LO_BASE_FIELD_MAP.put("toOid","t_oid");
 		LO_BASE_FIELD_MAP.put("ts","ts");
-		//LO_BASE_FIELD_MAP.put("linkTypeName","linkTypeName");
 		LO_BASE_FIELD_MAP.put("ltName","linkTypeName");
 	}
 
@@ -170,7 +164,7 @@
 				String[] sort = ph.getSort().split(",");
 				String[] order = ph.getOrder().split(",");
 				if(sort.length != order.length){
-					throw new VciBaseException(msgCodePrefix + ".sortlengtherror",new Object[]{sort.length,order.length});
+					throw new VciBaseException(msgCodePrefix + "sortLengthError",new Object[]{sort.length,order.length});
 				}
 				List<OrderInfo> orderInfoList = new ArrayList<OrderInfo>();
 				for(int i = 0 ; i < sort.length ;i++){
@@ -249,24 +243,12 @@
 				}
 				return rtnOBJs;
 			}
-		} catch (PLException e) {
-//			logger.error(e.error_code,e);
-//			throw WebUtil.getVciBaseException(e);
+		} catch (Exception e) {
+			logger.error("鏌ヨ杩炴帴绫诲瀷澶辫触锛�",e);
+			throw new VciBaseException("鏌ヨ閾炬帴绫诲瀷澶辫触锛�", new Object[]{}, e);
 		}
 		return rtnOBJs;
 	}
-//
-//	@Override
-//	public Map<String, BusinessObject> queryLinkedCbo(LinkObject[] lo,
-//			boolean isDirection) throws VciBaseException {
-//        LinkObject[] clos = new LinkObject[lo.length];
-//        for(int i =0 ; i < lo.length; i ++){
-//        	LinkObject clo = new LinkObject();
-//        	clo = lo[i];
-//        	clos[i] = clo;
-//        }
-//        return queryLinkedCbo(clos,isDirection);
-//	}
 
 	@Override
 	public Map<String, BusinessObject> queryLinkedCbo(List los,
@@ -367,7 +349,12 @@
 	public Map clo2Map(LinkObject clo) throws VciBaseException {
 		Map<String,String> map = new HashMap<String, String>();
 		WebUtil.copyValueToMapFromClos(clo, map);
-		return map;
+		//TODO:20241128 杩囨护鎺夌┖key鍜岀┖value
+		Map<String, Object> filteredClo2Map = map.entrySet()
+				.stream()
+				.filter(entry -> entry.getKey() != null && !entry.getKey().isEmpty() && entry.getValue() != null && !entry.getValue().toString().isEmpty())
+				.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+		return filteredClo2Map;
 	}
 
 	@Override
@@ -452,7 +439,7 @@
 		WebUtil.alertNotNull(loName,"閾炬帴");
 		return null;
 		//todo 鍦ㄥ钩鍙伴噷闈㈤渶瑕佷紶鍏ュ璞★紝鐜板湪鏄瓧绗︿覆锛岄渶瑕佺湅骞冲彴濡備綍澶勭悊
-//			return loOperation.createLinkObject(loName,WebUtil.getCurrentUserId());
+		//return loOperation.createLinkObject(loName,WebUtil.getCurrentUserId());
 	}
 
 	/**
@@ -523,7 +510,7 @@
 	 * @return 閾炬帴绫诲瀷鍜屽叧鑱旂殑to绔�
 	 */
 	@Override
-	public List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) {
+	public List<BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) {
 		VciBaseUtil.alertNotNull(linkTypeDataQuery,"閾炬帴绫诲瀷鏌ヨ瀵硅薄",linkTypeDataQuery.getQueryTemplateName(),"鏌ヨ妯℃澘鐨勫悕绉�");
 		QueryTemplate qt =boService.getQtByName(linkTypeDataQuery.getQueryTemplateName(),linkTypeDataQuery.getReplaceMap());
 		return queryCLOAndBOByQueryTemplate(qt,linkTypeDataQuery);
@@ -535,7 +522,7 @@
 	 * @param linkTypeDataQuery 閾炬帴绫诲瀷鐨勬煡璇㈠璞�
 	 * @return 閾炬帴绫诲瀷鍜屼笟鍔$被鍨�
 	 */
-	private List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOByQueryTemplate(QueryTemplate qt,UILinkTypeDataQuery linkTypeDataQuery){
+	private List<BOAndLO> queryCLOAndBOByQueryTemplate(QueryTemplate qt,UILinkTypeDataQuery linkTypeDataQuery){
 		if(StringUtils.isNotBlank(linkTypeDataQuery.getToBtmType()) && StringUtils.isBlank(qt.getBtmType())) {
 			qt.setBtmType(linkTypeDataQuery.getToBtmType());
 		}
@@ -583,7 +570,7 @@
 		}
 		boService.setPageAndOrderToQT(qt,linkTypeDataQuery.getPageHelper());
 		try {
-			com.vci.corba.query.data.BOAndLO[] bos = platformClientUtil.getQueryService().getBOAndLOS(qt.getId(), OQTool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
+			BOAndLO[] bos = platformClientUtil.getQueryService().getBOAndLOS(qt.getId(), OQTool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
 			return Arrays.stream(bos).collect(Collectors.toList());
 		} catch (PLException e) {
 //			logger.error(e.error_code,e);
@@ -597,7 +584,7 @@
 	 * @return 閾炬帴瀵硅薄鍜宼o绔笟鍔″璞�
 	 */
 	@Override
-	public List<com.vci.corba.query.data.BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery){
+	public List<BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery){
 		VciBaseUtil.alertNotNull(linkTypeDataQuery,"閾炬帴绫诲瀷鏌ヨ瀵硅薄",linkTypeDataQuery.getLinkType(),"閾炬帴绫诲瀷鐨勫悕绉�");
 		QueryTemplate qt = null;
 		if(StringUtils.isBlank(linkTypeDataQuery.getQueryTemplateName())){
@@ -826,4 +813,48 @@
 		}
 	}
 
+	/**
+	 * 閾炬帴绫诲瀷
+	 *
+	 * @param clo            閾炬帴绫诲瀷
+	 * @param attributeName  灞炴�у悕绉�
+	 * @param attributeValue 灞炴�х殑鍊�
+	 */
+	@Override
+	public void setAttribute(LinkObject clo, String attributeName, String attributeValue) {
+		AttributeValue[] attrValues = clo.newAttrValList;
+		ArrayList<AttributeValue> attrValList = new ArrayList();
+		AttributeValue attrVal;
+		int i;
+		if (attrValues != null && attrValues.length > 0) {
+			AttributeValue[] var9 = attrValues;
+			i = attrValues.length;
+
+			for(int var7 = 0; var7 < i; ++var7) {
+				attrVal = var9[var7];
+				attrValList.add(attrVal);
+			}
+		}
+
+		attrVal = null;
+		boolean isExist = false;
+
+		for(i = 0; i < attrValList.size(); ++i) {
+			attrVal = attrValList.get(i);
+			if (attrVal.attrName.toUpperCase().equals(attributeName.toUpperCase())) {
+				attrVal.attrVal = attributeValue;
+				isExist = true;
+				break;
+			}
+		}
+
+		if (!isExist) {
+			attrVal = new AttributeValue();
+			attrVal.attrName = attributeName.toUpperCase();
+			attrVal.attrVal = attributeValue;
+			attrValList.add(attrVal);
+		}
+
+		clo.newAttrValList = attrValList.toArray(new AttributeValue[attrValList.size()]);
+	}
 }

--
Gitblit v1.9.3