From 10eaf1b0dde35fb03795ae52d926171fb73eeb5f Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期三, 10 五月 2023 10:01:55 +0800
Subject: [PATCH] 业务类型页面修改
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 188 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 141 insertions(+), 47 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 f36a446..2a6a165 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
@@ -5,7 +5,7 @@
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.code.bo.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.CodeOsbtmtypeEntity;
@@ -24,26 +24,27 @@
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.code.vo.pagemodel.TreeQueryObject;
-import com.vci.ubcs.com.vci.starter.bo.WriteExcelData;
-import com.vci.ubcs.com.vci.starter.exception.VciBaseException;
-import com.vci.ubcs.com.vci.starter.poi.bo.ReadExcelOption;
-import com.vci.ubcs.com.vci.starter.poi.bo.WriteExcelOption;
-import com.vci.ubcs.com.vci.starter.poi.constant.ExcelLangCodeConstant;
-import com.vci.ubcs.com.vci.starter.poi.util.ExcelUtil;
-import com.vci.ubcs.com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.ubcs.com.vci.starter.util.LocalFileUtil;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.BaseQueryObject;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree;
-import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.ubcs.com.vci.starter.web.util.LangBaseUtil;
-import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil;
-import com.vci.ubcs.core.log.exception.ServiceException;
+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;
+import com.vci.ubcs.starter.web.pagemodel.DataGrid;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+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.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;
@@ -67,14 +68,15 @@
@Resource
private CodeClstemplateMapper codeClstemplateMapper;
-// @Resource
-// private ICodeRuleService codeRuleService;
+ @Resource
+ private ICodeRuleService codeRuleService;
@Resource
private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
-
@Resource
CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
+ @Resource
+ ICodeRuleService ICodeRuleService;
/**
* 鏃ュ織
@@ -116,8 +118,11 @@
codeClassifyEntity.setCreator(AuthUtil.getUser().getUserName());
codeClassifyEntity.setCreateTime(new Date());
codeClassifyEntity.setTs(new Date());
+ codeClassifyEntity.setOwner(AuthUtil.getUser().getUserName());
codeClassifyEntity.setLastModifier(AuthUtil.getUser().getUserName());
codeClassifyEntity.setLastModifyTime(new Date());
+ codeClassifyEntity.setRevisionSeq(1);
+ codeClassifyEntity.setVersionSeq(1);
int insertNumber = codeClassifyMapper.insert(codeClassifyEntity);
return R.status(SqlHelper.retBool(insertNumber));
}
@@ -168,7 +173,11 @@
if(codeClassifyEntity == null || codeClassifyEntity.getOid() == null){
return R.fail("浼犲叆鏁版嵁涓嶈兘涓虹┖锛�");
}
- codeClassifyEntity = selectByOid(codeClassifyEntity.getOid());
+ CodeClassify codeClassifyNew = selectByOid(codeClassifyEntity.getOid());
+ if(codeClassifyNew == null){
+ return R.fail("鏈煡璇㈠埌鐩稿叧鏁版嵁锛�");
+ }
+ codeClassifyNew.setTs(codeClassifyEntity.getTs());
return checkIsCanDeleteForDO(codeClassifyEntity);
}
@@ -194,11 +203,11 @@
private R checkIsCanDeleteForDO(CodeClassify codeClassifyEntity) {
//妫�鏌s
- Map<String,Object> condition = new HashMap<>(2);
- condition.put("oid",codeClassifyEntity.getOid());
- condition.put("ts",codeClassifyEntity.getTs());
- CodeClassify detail = codeClassifyMapper
- .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class));
+// Map<String,Object> condition = new HashMap<>(2);
+// condition.put("oid",codeClassifyEntity.getOid());
+// condition.put("ts",codeClassifyEntity.getTs());
+ CodeClassify detail = codeClassifyMapper.selectOne(Condition.getQueryWrapper(codeClassifyEntity));
+// .selectOne(Condition.getQueryWrapper(condition,CodeClassify.class));
if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀�
throw new ServiceException("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒");
// return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒");
@@ -245,7 +254,7 @@
if(StringUtils.isBlank(oid)){
throw new ServiceException("oid涓嶈兘涓虹┖锛�");
}
- return codeClassifyMapper.checkHasChild(oid.trim());
+ return !codeClassifyMapper.checkHasChild(oid.trim());
}
@@ -291,7 +300,8 @@
//2銆佹煡璇㈣鍒犻櫎鐨勫瓙绫绘暟鎹�
List<CodeClassify> codeClassifyDOList = codeClassifyMapper.selectBatchIds(s);
deletes.addAll(codeClassifyDOList);
- codeClassifyMapper.deleteBatchIds(s);
+// codeClassifyMapper.deleteBatchIds(s);
+ baseMapper.deleteBatchIds(s);
}
}
@@ -327,6 +337,9 @@
//鏌ヨ淇敼鍓峵s
CodeClassify codeClassify = codeClassifyMapper.selectById(oid);//涓昏鏄负浜嗘煡璇s
codeClassify.setLcStatus(lcStatus);
+ codeClassify.setTs(new Date());
+ codeClassify.setLastModifyTime(new Date());
+ codeClassify.setLastModifier(AuthUtil.getUser().getUserName());
//鍚敤銆佸仠鐢�
// int u = codeClassifyMapper.updateLcStatus(oid,lcStatus);
int count = codeClassifyMapper.updateById(codeClassify);
@@ -667,19 +680,24 @@
});
throw new VciBaseException("璺緞鏈夐噸澶�,{0}",new String[]{rowIndexList.stream().collect(Collectors.joining(","))});
}
- //缂栧彿鑾峰彇涓氬姟绫诲瀷鏈嶅姟杩樻湭瀹屾垚锛屾墍浠ョ瓑涓氬姟绫诲瀷瀹屾垚鍚庤繘琛屽悗缁殑瀹屾垚
-// Map<String, CodeRuleVO> ruleVOMap = Optional.ofNullable(codeRuleService.listCodeRuleByIds(
-// poList.stream().filter(s->StringUtils.isNotBlank(s.getCodeRuleId())).map(CodeClassifyPO::getCodeRuleId).collect(Collectors.toList()))
-// ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
- Map<String, CodeRuleVO> ruleVOMap = null;
- Map<String,CodeKeyAttrRepeatRuleVO> keyRuleVOMap =Optional.ofNullable(iCodeKeyattrrepeatService.listCodeKeyAttrRepeatRuleByOids(
- poList.stream().filter(s->StringUtils.isNotBlank(s.getKeyRepeatRuleId())).map(CodeClassifyPO::getKeyRepeatRuleId).collect(Collectors.toList()))
+ //缂栧彿鑾峰彇涓氬姟绫诲瀷鏈嶅姟
+ List<String> ruleOids = poList.stream().filter(
+ s -> StringUtils.isNotBlank(s.getCodeRuleId()))
+ .map(CodeClassifyPO::getCodeRuleId)
+ .collect(Collectors.toList());
+ Map<String, CodeRuleVO> ruleVOMap = Optional.ofNullable(ruleOids.size()==0 ? null:codeRuleService.listCodeRuleByOids(ruleOids)
).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
-// codeOsbtmtypeMapper.selectList((Wrapper<CodeOsbtmtypeEntity>) poList);
-// Map<String, CodeOsbtmtypeVO> btmVOMap = Optional.ofNullable(
-// codeOsbtmtypeMapper.selectList((Wrapper<CodeOsbtmtypeEntity>) poList)
-// ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
- Map<String, CodeOsbtmtypeVO> btmVOMap = null;
+
+ List<String> keyOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId()))
+ .map(CodeClassifyPO::getKeyRepeatRuleId).collect(Collectors.toList());
+ Map<String,CodeKeyAttrRepeatRuleVO> keyRuleVOMap =Optional.ofNullable(keyOids.size()==0 ? null: iCodeKeyattrrepeatService.listCodeKeyAttrRepeatRuleByOids(keyOids)
+ ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
+
+ List<String> btmOids = poList.stream().filter(s -> StringUtils.isNotBlank(s.getKeyRepeatRuleId()))
+ .map(CodeClassifyPO::getBtmTypeId).collect(Collectors.toList());
+ Map<String, CodeOsbtmtypeEntity> btmVOMap = Optional.ofNullable(btmOids.size()==0 ? null: codeOsbtmtypeMapper.selectBatchIds(btmOids)
+ ).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t,(o1,o2)->o2));
+// Map<String, CodeOsbtmtypeVO> btmVOMap = null;
Map<String/**璺緞**/,String/**涓婚敭**/> oidPathMap = new HashMap<>();
//鎴戜滑闇�瑕佹煡璇㈡墍鏈夊凡缁忓瓨鍦ㄧ殑鍒嗙被锛屼富瑕佹槸璺緞锛岀敤鏉ュ垽鏂垎绫荤殑鏁版嵁
@@ -709,7 +727,7 @@
classify.setDescription(po.getDescription());
oidPathMap.put(po.getPath(),classify.getOid());
if(StringUtils.isNotBlank(po.getBtmTypeId())){
- CodeOsbtmtypeVO typeVO = btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT));
+ CodeOsbtmtypeVO typeVO = (CodeOsbtmtypeVO)btmVOMap.get(po.getBtmTypeId().toLowerCase(Locale.ROOT));
classify.setBtmTypeId(typeVO.getId());
classify.setBtmTypeName(typeVO.getName());
}
@@ -801,7 +819,7 @@
classifyDO.setTs(new Date());
classifyDO.setBtmname("codeclassify");
classifyDO.setLcStatus("Enabled");
- classifyDO.setId("0");
+ classifyDO.setOwner(AuthUtil.getUser().getUserName());
classifyDO.setCreator(AuthUtil.getUser().getUserName());
classifyDO.setLastModifier(AuthUtil.getUser().getUserName());
classifyDO.setLastModifyTime(new Date());
@@ -913,14 +931,14 @@
*/
@Override
public List<CodeClassify> selectAllLevelParentByOid(String oid){
-// String sql = "select oid,level from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " start with oid= :oid connect by prior PARENTCODECLASSIFYOID = oid ";
-// Map< String,String> conditionMap = new HashMap< String,String>();
-// conditionMap.put("oid",oid);
+ // String sql = "select oid,level from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " start with oid= :oid connect by prior PARENTCODECLASSIFYOID = oid ";
+ // Map< String,String> conditionMap = new HashMap< String,String>();
+ // conditionMap.put("oid",oid);
List<Map<String,Object>> cbos = codeClassifyMapper.selectAllLevelParentByOid(oid);
Map<String,String> oidLevelMap = new HashMap<>();
Optional.ofNullable(cbos).orElseGet(()->new ArrayList<>()).stream().forEach(cbo->{
- oidLevelMap.put(cbo.get("oid").toString(),cbo.get("level").toString());
+ oidLevelMap.put(cbo.get("OID").toString(),cbo.get("LEVEL").toString());
});
if(CollectionUtils.isEmpty(oidLevelMap)){
return new ArrayList<>();
@@ -934,6 +952,17 @@
});
}
return classifyDOS;
+ }
+
+ /**
+ * 涓婚敭鑾峰彇涓婚搴撳垎绫�
+ * @param oid 涓婚敭
+ * @return 涓婚搴撳垎绫绘樉绀哄璞�
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
+ */
+ @Override
+ public CodeClassifyVO getObjectByOid(String oid) throws VciBaseException{
+ return codeClassifyDO2VO(selectByOid(oid));
}
/**
@@ -952,7 +981,6 @@
return codeClassifyDO2VO(classifyDO);
}
-
/**
* 涓婚搴撶殑鏍�
*
@@ -970,4 +998,70 @@
treeQueryObject.getConditionMap().put(PARENT_FIELD_NAME, "=null");
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;
+ }
}
--
Gitblit v1.9.3