From d6e9b6f11fd8f36895eb70f092bdd8c412750111 Mon Sep 17 00:00:00 2001
From: dangsn <dangsn@vci-tech.com>
Date: 星期四, 16 一月 2025 12:00:42 +0800
Subject: [PATCH] 补充AOF服务
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java | 182 +++++++++++++++++++++++----------------------
1 files changed, 92 insertions(+), 90 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
index beba67e..fcba915 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -6,10 +6,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.client.common.oq.OQTool;
import com.vci.client.common.providers.ClientServiceProvider;
-import com.vci.client.mw.ClientSessionUtility;
import com.vci.common.qt.object.Condition;
import com.vci.common.qt.object.QueryTemplate;
-import com.vci.common.utility.ObjectUtility;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
@@ -21,10 +19,9 @@
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.stm.StatePool;
+import com.vci.corba.omd.tim.TypeIndexDef;
import com.vci.corba.omd.vrm.VersionRule;
-import com.vci.corba.portal.data.PLUILayout;
import com.vci.dto.OsBtmTypeDTO;
-import com.vci.dto.OsBtmTypeLinkAttributesDTO;
import com.vci.model.IndexObject;
import com.vci.omd.constants.AttributeConstants;
import com.vci.omd.constants.FileObjectType;
@@ -32,14 +29,12 @@
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.po.OsBtmTypePO;
-import com.vci.po.OsLinkTypePO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.constant.ExcelLangCodeConstant;
import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.annotation.log.VciUnLog;
-import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -47,9 +42,13 @@
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.util.*;
-import com.vci.starter.web.util.BeanUtil;
+import com.vci.starter.web.util.Lcm.ConcurrentDateFormat;
+import com.vci.starter.web.util.Lcm.DateUtil;
+import com.vci.starter.web.util.Lcm.Func;
+import com.vci.web.other.AllOsEnumVOMapThreadLocal;
import com.vci.web.service.*;
-import com.vci.web.util.*;
+import com.vci.web.util.PlatformClientUtil;
+import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +59,6 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
-import javax.swing.*;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
@@ -204,10 +202,14 @@
@Override
public List<OsBtmTypeVO> btmDO2VOs(Collection<BizType> btmItems,Map<String, OsAttributeVO> attributeVOMap) {
List<OsBtmTypeVO> VOS = new ArrayList<>();
- Optional.ofNullable(btmItems).orElseGet(() -> new ArrayList<>()).parallelStream().forEach(btmItem -> {
+// Optional.ofNullable(btmItems).orElseGet(() -> new ArrayList<>()).parallelStream().forEach(btmItem -> {
+// OsBtmTypeVO vo = btmDO2VO(btmItem,attributeVOMap);
+// VOS.add(vo);
+// });
+ for (BizType btmItem : btmItems) {
OsBtmTypeVO vo = btmDO2VO(btmItem,attributeVOMap);
VOS.add(vo);
- });
+ }
return VOS;
}
@@ -255,9 +257,10 @@
vo.setApNameArray(btmItem.apNameArray);
List<OsAttributeVO> attributeVOS = attributeService.listAttrByIds(Arrays.stream(btmItem.apNameArray).collect(Collectors.toList()),attributeVOMap);
List<OsBtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>();
- Optional.ofNullable(attributeVOS).orElseGet(() -> new ArrayList<>()).stream().forEach(attributeVO -> {
+// Optional.ofNullable(attributeVOS).orElseGet(() -> new ArrayList<>()).stream().forEach(attributeVO -> {
+ for (OsAttributeVO attributeVO : attributeVOS) {
OsBtmTypeAttributeVO btmTypeAttributeVO = new OsBtmTypeAttributeVO();
- BeanUtil.convert(attributeVO, btmTypeAttributeVO);
+ BeanUtilForVCI.convert(attributeVO, btmTypeAttributeVO);
btmTypeAttributeVO.setPkBtmType(vo.getOid());
btmTypeAttributeVO.setBtmTypeId(vo.getId());
btmTypeAttributeVO.setAttributeDataType(attributeVO.getAttributeDataType());
@@ -275,7 +278,8 @@
btmTypeAttributeVO.setEnumItemMap(enumService.getEnumValueMap(btmTypeAttributeVO.getEnumId()));
}
btmTypeAttributeVOS.add(btmTypeAttributeVO);
- });
+// });
+ }
vo.setAttributes(btmTypeAttributeVOS);
}
return vo;
@@ -451,7 +455,7 @@
List<OsBtmTypeAttributeVO> finalAttrVOs = attrVOs;
defaultAttributeVOs.stream().forEach(attr -> {
OsBtmTypeAttributeVO attributeVO = new OsBtmTypeAttributeVO();
- BeanUtil.convert(attr, attributeVO);
+ BeanUtilForVCI.convert(attr, attributeVO);
attributeVO.setAttributeDataType(attr.getAttributeDataType());
attributeVO.setAttributeLength(attr.getAttrLength());
attributeVO.setReferBtmTypeId(attr.getBtmTypeId());
@@ -460,7 +464,8 @@
});
attrVOs = finalAttrVOs;
}
- return attrVOs;
+ // TODO: 2024/12/2 Ludc 杩斿洖鍊兼帓搴�
+ return attrVOs.stream().sorted(Comparator.comparing(o->o.getId(),String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
}
/**
@@ -582,9 +587,10 @@
tree.setOid(bizType.oid);
tree.setLeaf(true);
tree.setParentName(bizType.fName);
+ tree.setIcon(bizType.imageName);
Map<String, String> atrrMap = new HashMap<>();
atrrMap.put("name", bizType.name);
- atrrMap.put("lable", bizType.label);
+ atrrMap.put("label", bizType.label);
tree.setAttributes(atrrMap);
trees.add(tree);
});
@@ -706,7 +712,13 @@
List<Tree> rootTreeList = new ArrayList<>();
BizType[] bizTypes = getBizTypes("");
OsBtmTypeVO osBtmTypeVO = null;
- List<OsBtmTypeVO> osBtmTypeVOS = btmDO2VOs(Arrays.asList(bizTypes),null);
+ Map<String, OsAttributeVO> attributeVOMap = null;
+ if(bizTypes.length > 0){
+ //鍏堝皢鎵�闇�瑕佺殑灞炴�с�佹灇涓炬暟鎹叏閮ㄥ姞杞藉嚭鏉ワ紝閬垮厤鍚庣画杩涜閲嶅鍔犺浇
+ attributeVOMap = attributeService.selectAllAttributeMap();
+ AllOsEnumVOMapThreadLocal.set(enumService.selectAllEnumMap());
+ }
+ List<OsBtmTypeVO> osBtmTypeVOS = btmDO2VOs(Arrays.asList(bizTypes),attributeVOMap);
for (int i = 0; i < osBtmTypeVOS.size(); i++) {
osBtmTypeVO = osBtmTypeVOS.get(i);
@@ -724,6 +736,7 @@
rootTreeList.add(tree);
}
}
+ AllOsEnumVOMapThreadLocal.remove();
rootTreeList = rootTreeList.stream().sorted((o1, o2) -> o1.getId().compareTo(o2.getId())).collect(Collectors.toList());
return rootTreeList;
}
@@ -992,7 +1005,7 @@
//涓氬姟绫诲瀷宸叉湁瀹炰緥, 鍙兘鍒犻櫎娌℃湁鏁版嵁鐨勫垪
if (unRemovableFields != null && unRemovableFields.length > 0) {
//绉婚櫎浜嗕笉鍙慨鏀圭殑灞炴�х洿鎺ユ姤閿欙紝灏变笉寰�涓嬫墽琛屼簡
- throw new VciBaseException("涓氬姟绫诲瀷宸叉湁瀹炰緥, 鍙兘鍒犻櫎娌℃湁鏁版嵁鐨勫垪");
+ throw new VciBaseException("涓氬姟绫诲瀷宸叉湁瀹炰緥, 鍙兘鍒犻櫎娌℃湁鏁版嵁鐨勫垪锛屾湁鏁版嵁鐨勫垪鍚嶄负锛�" + removableFields);
/*unRemovableFields_ = Arrays.asList(unRemovableFields);
for (int i = 0; i < removableFields.size(); i++) {
String abName = removableFields.get(i);
@@ -1273,29 +1286,18 @@
if (Func.isEmpty(conditionMap)) {
return new ArrayList<>();
}
- List<String> indexNameList = new ArrayList<String>();
- QueryTemplate qtl = new QueryTemplate();
- List<String> list = new ArrayList<String>();
- list.add("*");
- qtl.setBtmType("indexobject");
- qtl.setClauseList(list);
- qtl.setId("p");
- qtl.setType("btm");
- qtl.setRightFlag(false);
- Condition condition = OQTool.getCondition(conditionMap);
- qtl.setCondition(condition);
- //HashMap<String, String> indexmap = new HashMap<String, String>();
- BusinessObject findBTMObjects[] = platformClientUtil.getQueryService().findBTMObjects(qtl.getId(), OQTool.qtTOXMl(qtl).asXML());
List<IndexObject> indexObjects = new ArrayList<>();
- for (int i = 0; i < findBTMObjects.length; i++) {
- BusinessObject findBTMObject = findBTMObjects[i];
+ TypeIndexDef[] typenames = ClientServiceProvider.getOMDService().getTypeIndexService().getBTIndexDefs(conditionMap.get("typename"));
+
+ for (int i = 0; i < typenames.length; i++) {
+ TypeIndexDef typename = typenames[i];
IndexObject indexObject = new IndexObject();
- indexObject.setOid(findBTMObject.oid);
- indexObject.setDescription(findBTMObject.description);
- indexObject.setCreateTime(Func.format(new Date(findBTMObject.createTime), DateUtil.PATTERN_DATE));
- indexObject.setIndexName(ObjectTool.getBOAttributeValue(findBTMObject, "indexname"));
- indexObject.setTypeName(ObjectTool.getBOAttributeValue(findBTMObject, "typename"));
- indexObject.setAttrNames(ObjectTool.getBOAttributeValue(findBTMObject, "attrname"));
+ indexObject.setOid(typename.oid);
+ indexObject.setDescription(typename.description);
+ indexObject.setCreateTime(Func.format(new Date(typename.createTime), DateUtil.PATTERN_DATE));
+ indexObject.setIndexName(typename.name);
+ indexObject.setTypeName(typename.typeName);
+ indexObject.setAttrNames(typename.attributes);
indexObjects.add(indexObject);
}
return indexObjects;
@@ -1311,11 +1313,8 @@
@Override
public boolean delIndex(String btmName, String indexName) throws PLException {
VciBaseUtil.alertNotNull(btmName, "涓氬姟绫诲瀷鍚�", indexName, "绱㈠紩鍚�");
- Map<String, String> conditionMap = new HashMap<>();
- conditionMap.put("typename", btmName);
- conditionMap.put("indexname", indexName);
- List<IndexObject> bo2 = getIndexByCondition(conditionMap);
- if (bo2 != null && bo2.size() > 0) {
+ TypeIndexDef[] typeIndexDef= ClientServiceProvider.getOMDService().getTypeIndexService().getBTIndexDefs(btmName);
+ if( typeIndexDef != null && typeIndexDef.length > 0 ){
String[] indexAttr = {indexName};
boolean alterFlag = platformClientUtil.getBtmService().dropIndex(btmName, indexAttr);
@@ -1323,10 +1322,12 @@
if (!alterFlag) {
return false;
}
- for (int i = 0; i < bo2.size(); i++) {
- String oid = bo2.get(i).getOid();
- BusinessObject bo = platformClientUtil.getBOFactoryService().readBusinessObject(oid, "indexobject");
- platformClientUtil.getBOFactoryService().deleteBusinessObject(bo, 1);
+ for (int i = 0; i < typeIndexDef.length; i++) {
+ if(!typeIndexDef[i].name.equals(indexName)) {
+ continue;
+ }
+ String oid = typeIndexDef[i].oid;
+ ClientServiceProvider.getOMDService().getTypeIndexService().delIndexDef(oid);
}
}
return true;
@@ -1344,49 +1345,50 @@
String btmName = indexObjectList.get(0).getTypeName();
String indexNames = indexObjectList.stream().map(IndexObject::getIndexName).collect(Collectors.joining(","));
String[] oldindexAttr = {indexNames};
- BusinessObject bo;
- List<BusinessObject> boList = new ArrayList<>();
- //鍏堟煡璇㈠綋鍓嶆坊鍔犵储寮曟槸鍚﹀凡缁忓瓨鍦紝濡傛灉瀛樺湪灏卞厛鍒犻櫎鍐嶆柊澧炲疄鐜版浛鎹㈡搷浣�
- Map<String, String> conditionMap = new HashMap<>();
- conditionMap.put("typename", btmName);
- //鍏堣繖鏍峰鐞嗭紝鍓嶇鐜板湪鍙仛浜嗗崟娆′繚瀛橈紝鎵�浠ヤ笉鐢╥n
- conditionMap.put("indexname", indexNames);
- List<IndexObject> indexObjects = getIndexByCondition(conditionMap);
- if (indexObjects != null && indexObjects.size() > 0) {
- //绱㈠紩涓嶅瓨鍦ㄦ椂鍒犻櫎灏变細鎶ラ敊绱㈠紩涓嶅瓨鍦紝鎵�浠ヨ繖閲屾湁绱㈠紩鎵嶅幓鍒犻櫎
- boolean b = platformClientUtil.getBtmService().dropIndex(btmName, oldindexAttr);
- if (b) {
- for (int i = 0; i < indexObjects.size(); i++) {
- String oid = (String) indexObjects.get(i).getOid();
- bo = platformClientUtil.getBOFactoryService().readBusinessObject(oid, "indexobject");
- platformClientUtil.getBOFactoryService().deleteBusinessObject(bo, 1);
- }
- }
- }
+// BusinessObject bo;
+// List<BusinessObject> boList = new ArrayList<>();
+// //鍏堟煡璇㈠綋鍓嶆坊鍔犵储寮曟槸鍚﹀凡缁忓瓨鍦紝濡傛灉瀛樺湪灏卞厛鍒犻櫎鍐嶆柊澧炲疄鐜版浛鎹㈡搷浣�
+// Map<String, String> conditionMap = new HashMap<>();
+// conditionMap.put("typename", btmName);
+// //鍏堣繖鏍峰鐞嗭紝鍓嶇鐜板湪鍙仛浜嗗崟娆′繚瀛橈紝鎵�浠ヤ笉鐢╥n
+// conditionMap.put("indexname", indexNames);
+ TypeIndexDef[] typeIndexDefs = platformClientUtil.getTypeIndexService().getBTIndexDefs(btmName);
- for (int i = 0; i < indexObjectList.size(); i++) {
- IndexObject indexObject = indexObjectList.get(i);
- //bo = platformClientUtil.getBOFService().initBusinessObject("indexobject");
- bo = boService.createCBOByBtmName("indexobject");
- List<AttributeValue> attributeValues = new ArrayList<>();
- attributeValues.add(new AttributeValue("typename", btmName));
- attributeValues.add(new AttributeValue("indexname", indexObject.getIndexName()));
- attributeValues.add(new AttributeValue("attrname", indexObject.getAttrNames()));
- bo.newAttrValList = attributeValues.toArray(new AttributeValue[attributeValues.size()]);
- bo.description = indexObject.getDescription();
- String[] indexAttr = {indexObject.getIndexName(), indexObject.getAttrNames()};
- //缁欐寚瀹氫笟鍔$被鍨嬬殑鎸囧畾灞炴�у垱寤虹储寮�
- boolean alterFlag = platformClientUtil.getBtmService().addIndex(btmName, indexAttr);
- //绱㈠紩鍒涘缓鎴愬姛涔嬪悗锛岄渶瑕佸瓨鍌ㄦ垚鍔熺储寮曞埌绱㈠紩琛ㄤ腑
- if (!alterFlag) {
- return false;
+ if(typeIndexDefs!=null && typeIndexDefs.length>0){
+ boolean hasIndex = false;
+ for(int i = 0; i < typeIndexDefs.length; i ++){
+ if(!typeIndexDefs[i].name.equals(indexNames)) {
+ continue;
+ }
+ String oid = typeIndexDefs[i].oid;
+ platformClientUtil.getTypeIndexService().delIndexDef(oid);
+ hasIndex = true;
}
- boList.add(bo);
- //娣诲姞绱㈠紩淇℃伅鍒扮储寮曠殑涓氬姟琛ㄤ腑
- //platformClientUtil.getBOFactoryService().createBusinessObject(bo,false,false);
+ //绱㈠紩涓嶅瓨鍦ㄦ椂鍒犻櫎灏变細鎶ラ敊绱㈠紩涓嶅瓨鍦紝鎵�浠ヨ繖閲屾湁绱㈠紩鎵嶅幓鍒犻櫎
+ if(hasIndex) {
+ platformClientUtil.getBtmService().dropIndex(btmName, oldindexAttr);
+ }
}
- //娣诲姞绱㈠紩淇℃伅鍒扮储寮曠殑涓氬姟琛ㄤ腑
- platformClientUtil.getBOFactoryService().batchCreateBusinessObject(boList.toArray(new BusinessObject[boList.size()]), false, false);
+ StringBuilder sb = new StringBuilder();
+ List<TypeIndexDef> saveDefs = new ArrayList<>();
+ for(int i = 0; i < indexObjectList.size(); i ++){
+ TypeIndexDef saveDef = new TypeIndexDef();
+ saveDef.typeName = indexObjectList.get(i).getTypeName();
+ saveDef.name = indexObjectList.get(i).getIndexName();
+ saveDef.description = indexObjectList.get(i).getDescription();
+ saveDef.attributes = indexObjectList.get(i).getAttrNames();
+ sb.append(indexObjectList.get(i).getAttrNames());
+ if(i<indexObjectList.size()-1){
+ sb.append(",");
+ }
+ saveDefs.add(saveDef);
+ }
+ String[] indexAttr = {indexObjectList.get(0).getIndexName(),sb.toString()};
+ boolean alterFlag = platformClientUtil.getBtmService().addIndex(btmName, indexAttr);
+ if(!alterFlag) {
+ return false;
+ }
+ ClientServiceProvider.getOMDService().getTypeIndexService().saveIndexDefs(saveDefs.toArray(new TypeIndexDef[saveDefs.size()]));
return true;
}
@@ -1539,7 +1541,7 @@
excelReapeat.put(osBtmTypePO.getName(), osBtmTypePO.getRowIndex());
BizType bizType = new BizType();
bizType.name = osBtmTypePO.getName();
- bizType.label = osBtmTypePO.getLable();
+ bizType.label = osBtmTypePO.getLabel();
bizType.description = osBtmTypePO.getDescription();
bizType.fName = osBtmTypePO.getFName();
bizType.implClass = osBtmTypePO.getImplClass();
--
Gitblit v1.9.3