From 1a07db181c732729abc1d6ec71ae206ecffca86d Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期三, 24 五月 2023 18:33:45 +0800
Subject: [PATCH] 迁移链接类型后台接口,修正属性字段,增加元数据查找应用范围功能
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 146 insertions(+), 12 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index 6547785..98d8b8e 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -2,36 +2,37 @@
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
-import com.vci.ubcs.starter.revision.model.TreeQueryObject;
-import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
+import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.entity.CodeClassify;
-import com.vci.ubcs.code.entity.CodeClstemplateEntity;
+import com.vci.ubcs.code.entity.CodeClassifyTemplate;
import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
import com.vci.ubcs.code.entity.CodeOsbtmtypeattributeEntity;
import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
import com.vci.ubcs.code.mapper.CodeClassifyMapper;
-import com.vci.ubcs.code.mapper.CodeClstemplateMapper;
+import com.vci.ubcs.code.mapper.CodeClassifyTemplateMapper;
import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
import com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper;
import com.vci.ubcs.code.po.CodeClassifyPO;
import com.vci.ubcs.code.service.ICodeClassifyService;
-import com.vci.ubcs.code.service.ICodeKeyattrrepeatService;
+import com.vci.ubcs.code.service.ICodeKeyAttrRepeatService;
import com.vci.ubcs.code.service.ICodeRuleService;
import com.vci.ubcs.code.vo.CodeOsattributeVO;
import com.vci.ubcs.code.vo.CodeOsbtmtypeVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
-import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.bo.WriteExcelData;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.poi.bo.ReadExcelOption;
import com.vci.ubcs.starter.poi.bo.WriteExcelOption;
import com.vci.ubcs.starter.poi.constant.ExcelLangCodeConstant;
import com.vci.ubcs.starter.poi.util.ExcelUtil;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
+import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.util.LocalFileUtil;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
@@ -40,11 +41,11 @@
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.LangBaseUtil;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
-import org.springblade.core.log.exception.ServiceException;
import org.apache.poi.hssf.util.HSSFColor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@@ -66,7 +67,7 @@
private CodeClassifyMapper codeClassifyMapper;
@Resource
- private CodeClstemplateMapper codeClstemplateMapper;
+ private CodeClassifyTemplateMapper codeClassifyTemplateMapper;
@Resource
private ICodeRuleService codeRuleService;
@@ -75,6 +76,8 @@
private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
@Resource
CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
+ @Resource
+ ICodeRuleService ICodeRuleService;
/**
* 鏃ュ織
@@ -87,7 +90,7 @@
private RevisionModelUtil revisionModelUtil;
@Resource
- private ICodeKeyattrrepeatService iCodeKeyattrrepeatService;
+ private ICodeKeyAttrRepeatService iCodeKeyattrrepeatService;
/**
* 涓婄骇鑺傜偣鐨勫睘鎬у悕绉�
*/
@@ -252,7 +255,7 @@
if(StringUtils.isBlank(oid)){
throw new ServiceException("oid涓嶈兘涓虹┖锛�");
}
- return codeClassifyMapper.checkHasChild(oid.trim());
+ return !codeClassifyMapper.checkHasChild(oid.trim());
}
@@ -274,7 +277,7 @@
//鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
Map<String,Object> condition = new HashMap<>(2);
condition.put("codeClassifyOid",codeClassify.getOid());
- List<CodeClstemplateEntity> codeClstemplateEntities = codeClstemplateMapper.selectByMap(condition);
+ List<CodeClassifyTemplate> codeClstemplateEntities = codeClassifyTemplateMapper.selectByMap(condition);
// VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateDO.class);
// queryWrapper.addQueryMap("codeClassifyOid",codeClassifyDTO.getOid());
// List<CodeClassifyTemplateDO> codeClassifyTemplateDOListHaveTemplate = codeClassifyTemplateMapper.selectByWrapper(queryWrapper);
@@ -298,7 +301,8 @@
//2銆佹煡璇㈣鍒犻櫎鐨勫瓙绫绘暟鎹�
List<CodeClassify> codeClassifyDOList = codeClassifyMapper.selectBatchIds(s);
deletes.addAll(codeClassifyDOList);
- codeClassifyMapper.deleteBatchIds(s);
+// codeClassifyMapper.deleteBatchIds(s);
+ baseMapper.deleteBatchIds(s);
}
}
@@ -464,6 +468,44 @@
}
}
return tree;
+ }
+
+ /**
+ * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
+ *
+ * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+ * @return 鏌ヨ缁撴灉,鏁版嵁瀵硅薄
+ */
+ @Override
+ public List<CodeClassifyVO> selectCodeClassifyDOByTree(TreeQueryObject treeQueryObject) {
+ List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+ List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
+ return voList;
+ }
+ /**
+ * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
+ *
+ * @param fieldPath 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱
+ * @return 鍒嗙被鐨勬樉绀哄璞�
+ */
+ @Override
+ public CodeClassifyVO getObjectByClsfNamePath(String fieldPath){
+ CodeClassifyVO codeClassifyVO=new CodeClassifyVO();
+ List<CodeClassify> classifyList = codeClassifyMapper.selectByFieldNamePath(fieldPath,"name");
+ if(classifyList.size()>0){
+ codeClassifyVO=codeClassifyDO2VO(classifyList.get(0));
+ }
+ return codeClassifyVO;
+ }
+ /***
+ * 鏍规嵁涓婄骇鑺傜偣鑾峰彇涓嬬骇鑺傜偣浠e彿璺緞鍜屽悕绉拌矾寰�
+ * @param classifyId
+ * @param enable
+ * @return
+ */
+ @Override
+ public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId, boolean enable) {
+ return null;
}
@@ -952,6 +994,17 @@
}
/**
+ * 涓婚敭鑾峰彇涓婚搴撳垎绫�
+ * @param oid 涓婚敭
+ * @return 涓婚搴撳垎绫绘樉绀哄璞�
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
+ */
+ @Override
+ public CodeClassifyVO getObjectByOid(String oid) throws VciBaseException{
+ return codeClassifyDO2VO(selectByOid(oid));
+ }
+
+ /**
* 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
*
* @param idPath 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱
@@ -985,4 +1038,85 @@
return treeCodeClassify(treeQueryObject);
}
+ /**
+ * 鑾峰彇杩欎釜鍒嗙被涓嬬殑涓氬姟绫诲瀷锛屽綋鍓嶆病鏈夊氨鑾峰彇涓婄骇鐨勭涓�涓笟鍔$被鍨�
+ * @param oid 褰撳墠鍒嗙被鐨刼id
+ * @return oid,id,name,btmtypeid,btmtypename锛屾病鏈夊氨杩斿洖null
+ */
+ @Override
+ public CodeClassify selectBtmOrParentBtm(String oid){
+ List<CodeClassify> oidList = selectAllLevelParents(oid);
+ return oidList.size()==0?null:oidList.get(0);
+ }
+
+ /**
+ * 鑾峰彇鎵�鏈夊眰绾т笂绾у叧鑱斾笟鍔$被鍨嬫暟鎹�
+ * @param oid 褰撳墠鍒嗙被鐨刼id
+ * @return oid,id,name,btmtypeid,btmtypename
+ */
+ @Override
+ public List<CodeClassify> selectAllLevelParents(String oid){
+// String sql = "select oid,id,name,btmtypeid,btmtypename from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " where btmtypeid is not null start with oid= :oid connect by prior PARENTCODECLASSIFYOID=oid ";
+// Map< String,String> conditionMap = new HashMap< String,String>();
+// conditionMap.put("oid",oid);
+// List<Map> dataList = boService.queryBySqlForMap(sql,conditionMap);
+ List<Map<String, Object>> dataList = codeClassifyMapper.selectAllLevelParents(oid);
+ List<CodeClassify> oidList = new ArrayList<CodeClassify>();
+ if(!CollectionUtils.isEmpty(dataList)){
+ for(Map data:dataList){
+ CodeClassify codeClassifyDO = new CodeClassify();
+ codeClassifyDO.setOid(VciBaseUtil.getStringValueFromObject(data.get("OID")));
+ codeClassifyDO.setId(VciBaseUtil.getStringValueFromObject(data.get("ID")));
+ codeClassifyDO.setName(VciBaseUtil.getStringValueFromObject(data.get("NAME")));
+ codeClassifyDO.setBtmTypeId(VciBaseUtil.getStringValueFromObject(data.get("BTMTYPEID")));
+ codeClassifyDO.setBtmTypeName(VciBaseUtil.getStringValueFromObject(data.get("BTMTYPENAME")));
+ oidList.add(codeClassifyDO);
+ }
+ }
+ return oidList;
+ }
+
+ /**
+ * 浣跨敤鍒嗙被涓婚敭鑾峰彇鍒嗙被鐩稿叧鐨勬墍鏈変俊鎭�
+ *
+ * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+ * @return 鍒嗙被涓婄骇锛屼笅绾х殑淇℃伅
+ */
+ @Override
+ public CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid) {
+ VciBaseUtil.alertNotNull(codeClassifyOid,"鍒嗙被鐨勪富閿�");
+ CodeClassifyFullInfoBO fullInfo = new CodeClassifyFullInfoBO();
+ CodeClassify classifyDO = selectByOid(codeClassifyOid);
+ //鏌ヨ涓婄骇
+ fullInfo.setCurrentClassifyVO(codeClassifyDO2VO(classifyDO));
+ List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid);
+ List<CodeClassify> codeClassifyList = new ArrayList<>();
+ for (Map<String, Object> map : maps) {
+ CodeClassify codeClassify = new CodeClassify();
+ codeClassify.setOid(String.valueOf(map.get("OID")));
+ codeClassify.setOid(String.valueOf(map.get("LEVEL")));
+ codeClassifyList.add(codeClassify);
+ }
+ fullInfo.setParentClassifyVOs(codeClassifyDO2VOs(codeClassifyList));
+ if(!CollectionUtils.isEmpty(fullInfo.getParentClassifyVOs())){
+ fullInfo.setTopClassifyVO(fullInfo.getParentClassifyVOs().stream().filter(s->StringUtils.isBlank(s.getParentcodeclassifyoid())).findFirst().orElseGet(()->null));
+ }
+ return fullInfo;
+ }
+
+
+ /**
+ * 缁熻瀛愯妭鐐圭殑涓暟
+ *
+ * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+ * @return 涓暟
+ */
+ @Override
+ public int countChildrenByClassifyOid(String codeClassifyOid) {
+// Map<String,String> conditionMap = new HashMap<>();
+// conditionMap.put("parentCodeClassifyOid",codeClassifyOid);
+ QueryWrapper<CodeClassify> wrapper = new QueryWrapper<>();
+ wrapper.eq("parentCodeClassifyOid",codeClassifyOid);
+ return codeClassifyMapper.selectCount(wrapper).intValue();
+ }
}
--
Gitblit v1.9.3