From cb41c6645777148f78788b369a6f66ecbdc7111a Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 03 一月 2024 16:14:10 +0800
Subject: [PATCH] 整合代码
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java | 915 ++++++++++++++++++++++++++++----------------------------
1 files changed, 462 insertions(+), 453 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
index f6ebffb..be7cad1 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -1,481 +1,490 @@
package com.vci.ubcs.code.service.impl;
-import com.vci.ubcs.code.dao.CodeBasicSecDaoI;
-import com.vci.ubcs.code.dao.CodeClassifyValueDaoI;
-import com.vci.ubcs.code.model.CodeBasicSecDO;
-import com.vci.ubcs.code.model.CodeClassifyValueDO;
-import com.vci.ubcs.code.service.CodeClassifyValueServiceI;
-import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
-import com.vci.starter.revision.bo.TreeWrapperOptions;
-import com.vci.starter.revision.service.RevisionModelUtil;
-import com.vci.starter.web.exception.VciBaseException;
-import com.vci.starter.web.pagemodel.BaseResult;
-import com.vci.starter.web.pagemodel.PageHelper;
-import com.vci.starter.web.pagemodel.Tree;
-import com.vci.starter.web.pagemodel.TreeQueryObject;
-import com.vci.starter.web.util.BeanUtilForVCI;
-import com.vci.starter.web.util.VciBaseUtil;
-import com.vci.starter.web.wrapper.VciParentQueryOption;
-import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
-import com.vci.web.pageModel.BatchCBO;
-import com.vci.web.service.WebBoServiceI;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
+import com.vci.ubcs.code.entity.CodeBasicSec;
+import com.vci.ubcs.code.entity.CodeClassifyValue;
+import com.vci.ubcs.code.enumpack.*;
+import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
+import com.vci.ubcs.code.service.ICodeBasicSecService;
+import com.vci.ubcs.code.service.ICodeClassifyValueService;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyValueVO;
+import com.vci.ubcs.code.wrapper.CodeClassifyValueWrapper;
+import com.vci.ubcs.starter.exception.VciBaseException;
+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.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
+import com.vci.ubcs.starter.web.pagemodel.Tree;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
-import plm.bs.bom.clientobject.ClientBusinessObject;
import javax.annotation.Resource;
+import java.rmi.ServerException;
import java.util.*;
import java.util.stream.Collectors;
-import static com.vci.frameworkcore.constant.FrameWorkDefaultValueConstant.LC_STATUS;
-import static com.vci.frameworkcore.constant.FrameWorkLangCodeConstant.*;
-/**
- * 鍒嗙被鐮佹鐨勭爜鍊兼湇鍔�
- * @author weidy
- * @date 2022-01-24
- */
+import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.LC_STATUS;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_CASCADE_LINKED_NOT_DELETE;
+import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
+
@Service
-public class CodeClassifyValueServiceImpl implements CodeClassifyValueServiceI {
+public class CodeClassifyValueServiceImpl extends ServiceImpl<CodeClassifyValueMapper, CodeClassifyValue> implements ICodeClassifyValueService {
- /**
- * 鏃ュ織
- */
- private Logger logger = LoggerFactory.getLogger(getClass());
+ @Resource
+ private RevisionModelUtil revisionModelUtil;
- /**
- * 鏁版嵁鎿嶄綔灞�
- */
- @Resource
- private CodeClassifyValueDaoI codeClassifyValueMapper;
+ @Resource
+ private CodeClassifyValueMapper codeClassifyValueMapper;
- /**
- * 涓氬姟绫诲瀷鎿嶄綔鐨勬湇鍔�
- */
- @Autowired
- @Lazy
- private WebBoServiceI boService;
+ @Resource
+ @Lazy
+ private ICodeBasicSecService codeBasicSecService;
- /**
- * 瀵硅薄鐨勬搷浣�
- */
- @Autowired
- private RevisionModelUtil revisionModelUtil;
+ /**
+ * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉�
+ */
+ private static final String PARENT_FIELD_NAME = "parentClassifyValueOid";
- /**
- * 鐮佹鐨勪俊鎭�
- */
- @Autowired
- private CodeBasicSecDaoI basicSecMapper;
+ /**
+ * 鍏嬮殕鍒嗙被鐮佸��
+ * @param codeClassifyValues
+ * @return
+ */
+ @Override
+ public boolean cloneCodeClassifyVaue(List<CodeClassifyValue> codeClassifyValues) {
+ // 鍒涘缓Map瀵硅薄锛岀敤浜庡瓨鍌ㄥ師濮媜id鍜屾柊oid鐨勬槧灏勫叧绯�
+ Map<String, String> oidMap = new HashMap<>();
+ // 閬嶅巻瀵硅薄鏁扮粍锛屼负姣忎釜瀵硅薄鐢熸垚鏂扮殑oid锛屽苟灏嗗師濮媜id鍜屾柊oid鐨勬槧灏勫叧绯诲瓨鍌ㄥ埌Map涓�
+ for (CodeClassifyValue obj : codeClassifyValues) {
+ String originalOid = obj.getOid();
+ String newOid = VciBaseUtil.getPk();
+ oidMap.put(originalOid, newOid);
+ }
+ // 閬嶅巻瀵硅薄鏁扮粍锛屾洿鏂版瘡涓璞$殑oid鍜宑odeClassifySecOid灞炴�у��
+ for (CodeClassifyValue obj : codeClassifyValues) {
+ String originalOid = obj.getOid();
+ String newOid = oidMap.get(originalOid);
+ obj.setOid(newOid);
+ String originalParentClassifyValueOid = obj.getParentClassifyValueOid();
+ String newParentClassifyValueOid = oidMap.get(originalParentClassifyValueOid);
+ obj.setParentClassifyValueOid(newParentClassifyValueOid);
+ }
+ return this.saveBatch(codeClassifyValues);
+ }
- /**
- * 涓婄骇鑺傜偣鐨勫睘鎬у悕绉�
- */
- private static final String PARENT_FIELD_NAME = "parentClassifyValueOid";
- /**
- * 鏌ヨ鍒嗙被鐮佹鐨勭爜鍊� 鏍�
- * @param treeQueryObject 鏍戞煡璇㈠璞�
- * @return 鍒嗙被鐮佹鐨勭爜鍊� 鏄剧ず鏍�
- * @throws VciBaseException 鏌ヨ鏉′欢涓嶇鍚堣姹傜殑鏃跺�欎細鎶涘嚭寮傚父
- */
- @Override
- public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject) throws VciBaseException{
- // List<CodeClassifyValueDO> doList =selectCodeClassifyValueDOByTree(treeQueryObject);
- List<CodeClassifyValueDO> doList =selectCodeClassifyValueDO4Tree(treeQueryObject);
- List<CodeClassifyValueVO> voList = codeClassifyValueDO2VOs(doList);
- TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
- treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
- return revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyValueVO s) ->{
- //鍙互鍦ㄨ繖閲屽鐞嗘爲鑺傜偣鐨勬樉绀�
- return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
- .getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : "");
- });
- }
- /**
- * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
- *
- * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
- * @return 鏌ヨ缁撴灉,鏁版嵁瀵硅薄
- */
- @Override
- public List<CodeClassifyValueDO> selectCodeClassifyValueDOByTree(TreeQueryObject treeQueryObject) {
- VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(treeQueryObject.getConditionMap(),CodeClassifyValueDO.class);
- PageHelper ph = new PageHelper();
- ph.addDefaultAsc("ordernum");
- queryWrapperForDO.setPageHelper(ph);
- VciParentQueryOption parentQueryOption = new VciParentQueryOption();
- parentQueryOption.setParentFieldName(PARENT_FIELD_NAME);
- //queryWrapperForDO.parentQueryChild(treeQueryObject,parentQueryOption);
- parentQueryOption.setHasSelf(true);
- queryWrapperForDO.childQueryParent(parentQueryOption);
- return codeClassifyValueMapper.selectByWrapper(queryWrapperForDO);
- }
+ /**
+ * 鏌ヨ鍒嗙被鐮佹鐨勭爜鍊� 鏍�
+ * @param treeQueryObject 鏍戞煡璇㈠璞�
+ * @return 鍒嗙被鐮佹鐨勭爜鍊� 鏄剧ず鏍�
+ * @throws VciBaseException 鏌ヨ鏉′欢涓嶇鍚堣姹傜殑鏃跺�欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject) throws VciBaseException {
+ List<CodeClassifyValue> doList = selectCodeClassifyValueDO4Tree(treeQueryObject);
+ List<CodeClassifyValueVO> voList = CodeClassifyValueWrapper.build().listVO(doList);
+ TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
+ treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
+ return revisionModelUtil.doList2Trees(voList,treeWrapperOptions,(CodeClassifyValueVO s) ->{
+ //鍙互鍦ㄨ繖閲屽鐞嗘爲鑺傜偣鐨勬樉绀�
+ return s.getId() + " " + (Func.isNotEmpty(s.getName()) ? s.getName():"") + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s
+ .getLcStatus()) ? (" 銆愬仠鐢ㄣ�� ") : "");
+ });
+ }
- private List<CodeClassifyValueDO> selectCodeClassifyValueDO4Tree(TreeQueryObject treeQueryObject){
- Map<String, String> conditionMap = treeQueryObject.getConditionMap();
- String currentSecOid = conditionMap.get("codeclassifysecoid");
- String sql = "select oid from PLATFORMBTM_CODEBASICSEC start with oid = '"+currentSecOid+"' connect by prior PARENTCLASSIFYSECOID = OID";
- List<ClientBusinessObject> targetParentList = boService.queryBySql(sql, new HashMap<>());
- Set<String> secOidList = targetParentList.stream().map(ClientBusinessObject::getOid).collect(Collectors.toSet());
- conditionMap.clear();
- StringBuilder oidStrBuilder = new StringBuilder();
- secOidList.forEach(oid -> oidStrBuilder.append("'").append(oid).append("',"));
- String oidStr = oidStrBuilder.toString().substring(0,oidStrBuilder.toString().length() -1);
- VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(null,CodeClassifyValueDO.class);
- PageHelper ph = new PageHelper();
- ph.addDefaultAsc("ordernum");
- ph.setLimit(-1);
- wrapper.setPageHelper(ph);
- wrapper.in("codeclassifysecoid",oidStr);
- return codeClassifyValueMapper.selectByWrapper(wrapper);
- }
+ /**
+ * 澧炲姞鍒嗙被鐮佹鐨勭爜鍊�
+ * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+ * @return 鎵ц缁撴灉
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean addSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
+ VciBaseUtil.alertNotNull(codeClassifyValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
+ //娣诲姞瀵圭爜鍊煎瓙鐖剁骇鐨勫垽鏂�
+ if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentClassifyValueOid())){
+ String parentclassifyvalueoid = codeClassifyValueDTO.getParentClassifyValueOid();
+ String codeclassifysecoid = codeClassifyValueDTO.getCodeClassifySecOid();
+ CodeClassifyValue parentDO = codeClassifyValueMapper.selectById(parentclassifyvalueoid);
+ if (parentDO.getCodeClassifySecOid().equalsIgnoreCase(codeclassifysecoid)){
+ throw new VciBaseException("涓嶅厑璁稿湪鐖剁爜鍊间腑鐩存帴娣诲姞瀛愮爜鍊�");
+ }
+ }
+ //灏咲TO杞崲涓篋O
+ CodeClassifyValue codeClassifyValueDO = new CodeClassifyValue();
+ BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
+ //濉厖涓�浜涢粯璁ゅ��
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeClassifyValueDO, MdmBtmTypeConstant.CODE_CLASSIFY_VALUE);
+ LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
+ .lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifyValueDO.getCodeClassifySecOid());
+ if(Func.isEmpty(codeClassifyValueDO.getParentClassifyValueOid())){
+ wrapper.isNull(CodeClassifyValue::getParentClassifyValueOid);
+ }else{
+ wrapper.eq(CodeClassifyValue::getParentClassifyValueOid, codeClassifyValueDO.getParentClassifyValueOid());
+ }
+ //鏌ヨ
+ List<CodeClassifyValue> existList = codeClassifyValueMapper.selectList(wrapper);
+ codeClassifyValueDO.setOrderNum(existList.size() + 1);
+ boolean resBoolean = codeClassifyValueMapper.insert(codeClassifyValueDO) > 0;
+ return resBoolean;
+ }
- /**
- * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
- * @param codeClassifyValueDOs 鏁版嵁瀵硅薄鍒楄〃
- * @return 鏄剧ず瀵硅薄
- * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
- */
- @Override
- public List<CodeClassifyValueVO> codeClassifyValueDO2VOs(Collection<CodeClassifyValueDO> codeClassifyValueDOs) throws VciBaseException{
- List<CodeClassifyValueVO> voList = new ArrayList<CodeClassifyValueVO>();
- if(!CollectionUtils.isEmpty(codeClassifyValueDOs)){
- for(CodeClassifyValueDO s: codeClassifyValueDOs){
- CodeClassifyValueVO vo = codeClassifyValueDO2VO(s);
- if(vo != null){
- voList.add(vo);
- }
- }
- }
- return voList;
- }
+ /**
+ * 淇敼鍒嗙被鐮佹鐨勭爜鍊�
+ * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
+ * @return 鎵ц缁撴灉
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean editSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
+ VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鏁版嵁瀵硅薄",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊间富閿�");
+ //灏咲TO杞崲涓篋O
+ CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
+ revisionModelUtil.copyFromDTOIgnore(codeClassifyValueDTO,codeClassifyValueDO);
+ //濉厖涓�浜涢粯璁ゅ��
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeClassifyValueDO);
+ boolean resBoolean = codeClassifyValueMapper.updateById(codeClassifyValueDO) > 0;
+ return resBoolean;
+ }
- /**
- * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
- * @param codeClassifyValueDO 鏁版嵁瀵硅薄
- * @return 鏄剧ず瀵硅薄
- * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
- */
- @Override
- public CodeClassifyValueVO codeClassifyValueDO2VO(CodeClassifyValueDO codeClassifyValueDO) throws VciBaseException{
- CodeClassifyValueVO vo = new CodeClassifyValueVO();
- if(codeClassifyValueDO != null){
- BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDO,vo);
- //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+ /**
+ * 妫�鏌� 鍒嗙被鐮佹鐨勭爜鍊兼槸鍚﹀垹闄�
+ * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴��
+ * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+ * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
+ */
+ @Override
+ public R checkIsCanDelete(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
+ VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鏁版嵁浼犺緭瀵硅薄",codeClassifyValueDTO.getOid(),"涓婚敭");
+ CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
+ return checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
+ }
- }
- return vo;
- }
+ /**
+ * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎
+ * @param codeClassifyValueDTO 鏁版嵁浼犺緭瀵硅薄
+ * @param codeClassifyValueDO 鏁版嵁搴撲腑鐨勬暟鎹璞�
+ * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
+ */
+ private R checkIsCanDeleteForDO(CodeClassifyValueDTO codeClassifyValueDTO, CodeClassifyValue codeClassifyValueDO) {
+ //boService.checkTs(codeClassifyValueDTO);
+ //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢�
+ if(checkChildIsLinked(codeClassifyValueDO.getOid())){
+ return R.fail(DATA_CASCADE_LINKED_NOT_DELETE);
+ }
+ return R.status(checkHasChild(codeClassifyValueDO.getOid()));
+ }
- /**
- * 澧炲姞鍒嗙被鐮佹鐨勭爜鍊�
- * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
- * @return 鎵ц缁撴灉
- * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
- */
- @Override
- public CodeClassifyValueVO addSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
- VciBaseUtil.alertNotNull(codeClassifyValueDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
- //娣诲姞瀵圭爜鍊煎瓙鐖剁骇鐨勫垽鏂�
- if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentclassifyvalueoid())){
- String parentclassifyvalueoid = codeClassifyValueDTO.getParentclassifyvalueoid();
- String codeclassifysecoid = codeClassifyValueDTO.getCodeclassifysecoid();
- CodeClassifyValueDO parentDO = codeClassifyValueMapper.selectByPrimaryKey(parentclassifyvalueoid);
- if (parentDO.getCodeClassifySecOid().equalsIgnoreCase(codeclassifysecoid)){
- throw new VciBaseException("涓嶅厑璁稿湪鐖剁爜鍊间腑鐩存帴娣诲姞瀛愮爜鍊�");
- }
- }
- //灏咲TO杞崲涓篋O
- CodeClassifyValueDO codeClassifyValueDO = new CodeClassifyValueDO();
- BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
- Map<String,String> conditionMap = new HashMap<>();
- conditionMap.put("codeclassifysecoid", codeClassifyValueDO.getCodeClassifySecOid());
- conditionMap.put("parentclassifyvalueoid",codeClassifyValueDO.getParentClassifyValueOid());
- VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeClassifyValueDO.class);
- List<CodeClassifyValueDO> existList = codeClassifyValueMapper.selectByWrapper(wrapper);
- codeClassifyValueDO.setOrderNum(existList.size() + 1);
- codeClassifyValueMapper.insert(codeClassifyValueDO);
- return codeClassifyValueDO2VO(codeClassifyValueDO);
- }
+ /**
+ * 妫�鏌ユ槸鍚︽湁涓嬬骇鏄惁鍏宠仈浜嗘暟鎹�
+ *
+ * @param oid 涓婚敭
+ * @return true 琛ㄧず鏈夊紩鐢紝false琛ㄧず娌℃湁寮曠敤
+ * @throws VciBaseException 鍙傛暟涓虹┖鍜屾湁寮曠敤鐨勬椂鍊欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public boolean checkChildIsLinked(String oid) throws VciBaseException {
+ VciBaseUtil.alertNotNull(oid,"涓婚敭");
+ List<String> childOids = codeClassifyValueMapper.selectAllLevelChildOid(oid.trim());
+ if(!CollectionUtils.isEmpty(childOids)){
+ for(String childOid: childOids){
+ if(!checkIsLinked(childOid)){
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
- /**
- * 淇敼鍒嗙被鐮佹鐨勭爜鍊�
- * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞�
- * @return 鎵ц缁撴灉
- * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
- */
- @Override
- public CodeClassifyValueVO editSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
- VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鏁版嵁瀵硅薄",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊间富閿�");
- //灏咲TO杞崲涓篋O
- CodeClassifyValueDO codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
- revisionModelUtil.copyFromDTOIgnore(codeClassifyValueDTO,codeClassifyValueDO);
- codeClassifyValueMapper.updateByPrimaryKey(codeClassifyValueDO);
- return codeClassifyValueDO2VO(codeClassifyValueDO);
- }
+ /**
+ * 鏍¢獙鏄惁鏈変笅绾ц妭鐐癸紝涓嶆牎楠屾槸鍚﹀叧鑱斾簡鏁版嵁
+ *
+ * @param oid 涓婚敭
+ * @return true琛ㄧず鏈変笅绾э紝false琛ㄧず娌℃湁涓嬬骇
+ * @throws VciBaseException 鍙傛暟閿欒锛屾垨鑰呮暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public boolean checkHasChild(String oid) throws VciBaseException {
+ VciBaseUtil.alertNotNull(oid,"涓婚敭");
+ return codeClassifyValueMapper.countAllLevelChildOid(oid.trim()) > 0;
+ }
-/**
- * 妫�鏌� 鍒嗙被鐮佹鐨勭爜鍊兼槸鍚﹀垹闄�
- * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝蹇呴』瑕佹湁oid鍜宼s灞炴��
- * @return 鎵ц缁撴灉 success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
- * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
- */
-@Override
-public BaseResult checkIsCanDelete(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
- VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鏁版嵁浼犺緭瀵硅薄",codeClassifyValueDTO.getOid(),"涓婚敭");
- CodeClassifyValueDO codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
- return checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
+ /**
+ * 鏍¢獙鏄惁琚紩鐢�
+ * @param oid 涓婚敭
+ * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
+ */
+ private boolean checkIsLinked(String oid) throws VciBaseException{
+ //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟
+ return false;
+ }
+
+ /**
+ * 鍒犻櫎鍒嗙被鐮佹鐨勭爜鍊�
+ * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
+ * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
+ * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R deleteCodeClassifyValue(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
+ VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鍒嗙被鐮佹鐨勭爜鍊兼暟鎹璞�",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊肩殑涓婚敭");
+ CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
+ R baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
+ if(baseResult.isSuccess()) {
+ //鍏堝垹闄や笅绾х爜鍊硷紝鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊�
+ List<String> childrenOids = codeClassifyValueMapper.selectChildOid(codeClassifyValueDO.getOid().trim());
+ if (!CollectionUtils.isEmpty(childrenOids)) {
+ Collection<Collection<String>> childrenCollections = VciBaseUtil.switchCollectionForOracleIn(childrenOids);
+ for(Collection<String> s : childrenCollections){
+ codeClassifyValueMapper.deleteBatchIds(s);
+ }
+ }
+ }
+ //鎵ц鍒犻櫎鎿嶄綔锛屽啀鍒犻櫎鐖剁殑鐮佸��
+ boolean resBoolean = codeClassifyValueMapper.deleteById(codeClassifyValueDO.getOid()) > 0;
+ return R.status(resBoolean);
+ }
+
+ /**
+ * 涓婚敭鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
+ * @param oid 涓婚敭
+ * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
+ */
+ @Override
+ public CodeClassifyValueVO getObjectByOid(String oid) throws VciBaseException{
+ return CodeClassifyValueWrapper.build().entityVO(selectByOid(oid));
+ }
+
+ /**
+ * 涓婚敭鎵归噺鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
+ * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
+ * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
+ * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭
+ */
+ @Override
+ public Collection<CodeClassifyValueVO> listCodeClassifyValueByOids(Collection<String> oidCollections) throws VciBaseException{
+ VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎");
+ List<CodeClassifyValue> codeClassifyValueDOList = listCodeClassifyValueDOByOidCollections(oidCollections);
+ return CodeClassifyValueWrapper.build().listVO(codeClassifyValueDOList);
+ }
+
+ /**
+ * 鍙傜収鏍� 鍒嗙被鐮佹鐨勭爜鍊�
+ * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+ * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
+ * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public List<Tree> referTree(TreeQueryObject treeQueryObject) throws VciBaseException {
+ if(treeQueryObject == null){
+ treeQueryObject = new TreeQueryObject();
+ }
+ if(treeQueryObject.getConditionMap() == null){
+ treeQueryObject.setConditionMap(new HashMap<>());
+ }
+ if(treeQueryObject.getConditionMap().containsKey(LC_STATUS)) {
+ treeQueryObject.getConditionMap().remove(LC_STATUS);
+ }
+ return treeCodeClassifyValue(treeQueryObject);
+ }
+
+ /**
+ * 鎵归噺娣诲姞鍒嗙被鐮佹鐨勭爜鍊笺�備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿
+ * @param dtoList 鍒嗙被鐮佹鐨勭爜鍊煎垪琛�
+ * @param codeclassifysecoid 鍒嗙被鐮佹鐨勪富閿�
+ * @return 鎵ц缁撴灉
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R batchSave4Order(List<CodeClassifyValueDTO> dtoList, String codeclassifysecoid) throws VciBaseException{
+ VciBaseUtil.alertNotNull(codeclassifysecoid,"鍒嗙被鐮佹涓婚敭");
+ List<CodeClassifyValue> valueDOList = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query()
+ .lambda().eq(CodeClassifyValue::getCodeClassifySecOid,codeclassifysecoid)
+ );
+
+ List<CodeClassifyValue> updateList = new ArrayList<>();
+ dtoList.forEach(dto -> {
+ if(StringUtils.isNotBlank(dto.getOid())){
+ List<CodeClassifyValue> collect = valueDOList.stream().filter(value -> {
+ return dto.getOid().equals(value.getOid());
+ }).collect(Collectors.toList());
+ collect.forEach(ccv -> {
+ ccv.setOrderNum(dto.getOrderNum());
+ ccv.setId(dto.getId());
+ ccv.setName(dto.getName());
+ updateList.add(ccv);
+ });
+ }
+ });
+ if(updateList.isEmpty()){
+ return R.fail("璇ユ搷浣滄湁璇�愬緟鎿嶄綔闆嗗悎涓虹┖銆戙��");
+ }
+ boolean resBoolean = this.updateBatchById(updateList);
+ return R.status(resBoolean);
+ }
+
+ /**
+ * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄
+ * @param oidCollections 涓婚敭鐨勯泦鍚�
+ * @return 鏁版嵁瀵硅薄鍒楄〃
+ */
+ private List<CodeClassifyValue> listCodeClassifyValueDOByOidCollections(Collection<String> oidCollections){
+ List<CodeClassifyValue> codeClassifyValueDOList = new ArrayList<CodeClassifyValue>();
+ if(!CollectionUtils.isEmpty(oidCollections)){
+ Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
+ for(Collection<String> oids: oidCollectionsList){
+ List<CodeClassifyValue> tempDOList = codeClassifyValueMapper.selectBatchIds(oids);
+ if(!CollectionUtils.isEmpty(tempDOList)){
+ codeClassifyValueDOList.addAll(tempDOList);
+ }
+ }
+ }
+ return codeClassifyValueDOList;
+ }
+
+ /**
+ * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
+ * @param oid 涓婚敭
+ * @return 鏁版嵁瀵硅薄
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+ */
+ private CodeClassifyValue selectByOid(String oid) throws VciBaseException{
+ VciBaseUtil.alertNotNull(oid,"涓婚敭");
+ CodeClassifyValue codeClassifyValueDO = codeClassifyValueMapper.selectById(oid.trim());
+ if(codeClassifyValueDO == null || StringUtils.isBlank(codeClassifyValueDO.getOid())){
+ throw new VciBaseException(DATA_OID_NOT_EXIST);
+ }
+ return codeClassifyValueDO;
+ }
+
+ private List<CodeClassifyValue> selectCodeClassifyValueDO4Tree(TreeQueryObject treeQueryObject){
+ Map<String, String> conditionMap = treeQueryObject.getConditionMap();
+ List<String> oids = codeBasicSecService.getOidByCodeclassifysecOid(conditionMap.get("codeclassifysecoid"));
+ LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
+ .lambda().in(CodeClassifyValue::getCodeClassifySecOid,oids)
+ .orderByAsc(CodeClassifyValue::getOrderNum);
+ return codeClassifyValueMapper.selectList(wrapper);
+ }
+
+ /**
+ * 浣跨敤鐮佹鐨勪富閿幏鍙栧垎绫荤殑鐮佸�煎唴瀹�
+ *
+ * @param classifySecOid 鐮佹鐨勪富閿�
+ * @param parentClassifyValueOid 涓婄骇鍒嗙被鐨勪富閿�
+ * @return 鍒嗙被鐮佸�肩殑鍐呭
+ */
+ @Override
+ public List<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid) {
+ if(StringUtils.isBlank(classifySecOid)){
+ return new ArrayList<>();
+ }
+ CodeBasicSec secDO = codeBasicSecService.getById(classifySecOid);
+ if(secDO == null || StringUtils.isBlank(secDO.getOid())){
+ throw new VciBaseException("鐮佹鐨勫唴瀹瑰湪绯荤粺涓笉瀛樺湪");
+ }
+ if(StringUtils.isNotBlank(secDO.getParentClassifySecOid()) && StringUtils.isBlank(parentClassifyValueOid)){
+ return new ArrayList<>();
+ //鍥犱负鏈変笂绾у垎绫荤殑鏃跺�欙紝蹇呴』鍏堥�夋嫨涓婄骇鍒嗙被鐨勫唴瀹�
+ }
+// Map<String,String> conditionMap = new HashMap<>();
+// conditionMap.put("codeClassifySecOid",classifySecOid);
+// if(StringUtils.isNotBlank(parentClassifyValueOid)){
+// conditionMap.put("parentClassifyValueOid",parentClassifyValueOid);
+// }
+// PageHelper pageHelper = new PageHelper(-1);
+// pageHelper.addDefaultAsc("ordernum");
+ QueryWrapper<CodeClassifyValue> wrapper = new QueryWrapper<>();
+ wrapper.eq("codeClassifySecOid",classifySecOid);
+ if(StringUtils.isNotBlank(parentClassifyValueOid)){
+ wrapper.in("parentClassifyValueOid",VciBaseUtil.str2List(parentClassifyValueOid));
+ }
+ wrapper.orderByAsc("ordernum");
+
+ List<CodeClassifyValue> valueDOList = codeClassifyValueMapper.selectList(wrapper);
+ return codeClassifyValueDO2VOs(valueDOList);
+ }
+
+ /**
+ * 鏍规嵁涓婚敭鑾峰彇鐮佸�煎瓧绗︿覆
+ * @param oid
+ * @return
+ */
+ @Override
+ public String getClassifyValueStr(String oid){
+ if(Func.isEmpty(oid)){
+ return "";
+ }
+ String classifyValueStr = this.codeClassifyValueMapper.getClassifyValueStr(oid);
+ return Func.isEmpty(classifyValueStr) ? "":classifyValueStr;
+ }
+
+ /**
+ * 鎵归噺鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+ * @param codeClassifyValueDOs 鏁版嵁瀵硅薄鍒楄〃
+ * @return 鏄剧ず瀵硅薄
+ * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呬笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public List<CodeClassifyValueVO> codeClassifyValueDO2VOs(Collection<CodeClassifyValue> codeClassifyValueDOs) throws VciBaseException{
+ List<CodeClassifyValueVO> voList = new ArrayList<CodeClassifyValueVO>();
+ if(!CollectionUtils.isEmpty(codeClassifyValueDOs)){
+ for(CodeClassifyValue s: codeClassifyValueDOs){
+ CodeClassifyValueVO vo = codeClassifyValueDO2VO(s);
+ if(vo != null){
+ voList.add(vo);
+ }
+ }
+ }
+ return voList;
+ }
+
+ /**
+ * 鏍规嵁codeClassifySecOid鍒犻櫎鐮佸��
+ * @param codeClassifySecOid
+ * @return
+ * @throws ServerException
+ */
+ @Override
+ public Boolean deleteClassifyValueBySecOid(String codeClassifySecOid) throws ServerException {
+ LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
+ .lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifySecOid);
+ return codeClassifyValueMapper.delete(wrapper) > 0;
+ }
+
+ /**
+ * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
+ * @param codeClassifyValueDO 鏁版嵁瀵硅薄
+ * @return 鏄剧ず瀵硅薄
+ * @throws VciBaseException 鎷疯礉灞炴�у嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public CodeClassifyValueVO codeClassifyValueDO2VO(CodeClassifyValue codeClassifyValueDO) throws VciBaseException{
+ CodeClassifyValueVO vo = new CodeClassifyValueVO();
+ if(codeClassifyValueDO != null){
+ BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDO,vo);
+ //濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+
+ }
+ return vo;
+ }
}
-
- /**
- * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎
- * @param codeClassifyValueDTO 鏁版嵁浼犺緭瀵硅薄
- * @param codeClassifyValueDO 鏁版嵁搴撲腑鐨勬暟鎹璞�
- * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾�
- */
- private BaseResult checkIsCanDeleteForDO(CodeClassifyValueDTO codeClassifyValueDTO, CodeClassifyValueDO codeClassifyValueDO) {
- //boService.checkTs(codeClassifyValueDTO);
- //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢�
- if(checkChildIsLinked(codeClassifyValueDO.getOid())){
- return BaseResult.fail(DATA_CASCADE_LINKED_NOT_DELETE,new String[]{""});
- }
- return BaseResult.success(checkHasChild(codeClassifyValueDO.getOid()));
- }
- /**
- * 妫�鏌ユ槸鍚︽湁涓嬬骇鏄惁鍏宠仈浜嗘暟鎹�
- *
- * @param oid 涓婚敭
- * @return true 琛ㄧず鏈夊紩鐢紝false琛ㄧず娌℃湁寮曠敤
- * @throws VciBaseException 鍙傛暟涓虹┖鍜屾湁寮曠敤鐨勬椂鍊欎細鎶涘嚭寮傚父
- */
- @Override
- public boolean checkChildIsLinked(String oid) throws VciBaseException {
- VciBaseUtil.alertNotNull(oid,"涓婚敭");
- List<String> childOids = codeClassifyValueMapper.selectAllLevelChildOid(oid.trim());
- if(!CollectionUtils.isEmpty(childOids)){
- for(String childOid: childOids){
- if(!checkIsLinked(childOid)){
- return false;
- }
- }
- return true;
- }
- return false;
- }
-
- /**
- * 鏍¢獙鏄惁鏈変笅绾ц妭鐐癸紝涓嶆牎楠屾槸鍚﹀叧鑱斾簡鏁版嵁
- *
- * @param oid 涓婚敭
- * @return true琛ㄧず鏈変笅绾э紝false琛ㄧず娌℃湁涓嬬骇
- * @throws VciBaseException 鍙傛暟閿欒锛屾垨鑰呮暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
- */
- @Override
- public boolean checkHasChild(String oid) throws VciBaseException {
- VciBaseUtil.alertNotNull(oid,"涓婚敭");
- return codeClassifyValueMapper.countAllLevelChildOid(oid.trim()) > 0;
- }
-
- /**
- * 鏍¢獙鏄惁琚紩鐢�
- * @param oid 涓婚敭
- * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
- */
- private boolean checkIsLinked(String oid) throws VciBaseException{
- //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟
- return false;
- }
-
- /**
- * 鍒犻櫎鍒嗙被鐮佹鐨勭爜鍊�
- * @param codeClassifyValueDTO 鍒嗙被鐮佹鐨勭爜鍊兼暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈�
- * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐�
- * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯�
- */
- @Override
- public BaseResult deleteCodeClassifyValue(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
- VciBaseUtil.alertNotNull(codeClassifyValueDTO,"鍒嗙被鐮佹鐨勭爜鍊兼暟鎹璞�",codeClassifyValueDTO.getOid(),"鍒嗙被鐮佹鐨勭爜鍊肩殑涓婚敭");
- CodeClassifyValueDO codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
- BaseResult baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
- if(baseResult.isSuccess()) {
- //鎵句笅绾х殑锛岃繖涓槸鍙互鍒犻櫎鐨勬椂鍊�
- List<String> childrenOids = codeClassifyValueMapper.selectAllLevelChildOid(codeClassifyValueDO.getOid().trim());
- if (!CollectionUtils.isEmpty(childrenOids)) {
- Collection<Collection<String>> childrenCollections = VciBaseUtil.switchCollectionForOracleIn(childrenOids);
- for(Collection<String> s : childrenCollections){
- codeClassifyValueMapper.batchDeleteByOids(s);
- }
- }
- }else{
- return baseResult;
- }
- //鎵ц鍒犻櫎鎿嶄綔
- BatchCBO batchCBO = codeClassifyValueMapper.deleteByPrimaryKey(codeClassifyValueDO.getOid());
- return (batchCBO!=null && batchCBO.getDeleteCbos() !=null &&batchCBO.getDeleteCbos().size() > 0)?BaseResult.successMsg(DELETE_SUCCESS):BaseResult.fail(DELETE_FAIL);
- }
-
- /**
- * 涓婚敭鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
- * @param oid 涓婚敭
- * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
- * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
- */
- @Override
- public CodeClassifyValueVO getObjectByOid(String oid) throws VciBaseException{
- return codeClassifyValueDO2VO(selectByOid(oid));
- }
-
- /**
- * 涓婚敭鏌ヨ鏁版嵁瀵硅薄
- * @param oid 涓婚敭
- * @return 鏁版嵁瀵硅薄
- * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父
- */
- private CodeClassifyValueDO selectByOid(String oid) throws VciBaseException{
- VciBaseUtil.alertNotNull(oid,"涓婚敭");
- CodeClassifyValueDO codeClassifyValueDO = codeClassifyValueMapper.selectByPrimaryKey(oid.trim());
- if(codeClassifyValueDO == null || StringUtils.isBlank(codeClassifyValueDO.getOid())){
- throw new VciBaseException(DATA_OID_NOT_EXIST);
- }
- return codeClassifyValueDO;
- }
-
- /**
- * 涓婚敭鎵归噺鑾峰彇鍒嗙被鐮佹鐨勭爜鍊�
- * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓�
- * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀哄璞�
- * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭
- */
- @Override
- public Collection<CodeClassifyValueVO> listCodeClassifyValueByOids(Collection<String> oidCollections) throws VciBaseException{
- VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎");
- List<CodeClassifyValueDO> codeClassifyValueDOList = listCodeClassifyValueDOByOidCollections(oidCollections);
- return codeClassifyValueDO2VOs(codeClassifyValueDOList);
- }
-
- /**
- * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄
- * @param oidCollections 涓婚敭鐨勯泦鍚�
- * @return 鏁版嵁瀵硅薄鍒楄〃
- */
- private List<CodeClassifyValueDO> listCodeClassifyValueDOByOidCollections(Collection<String> oidCollections){
- List<CodeClassifyValueDO> codeClassifyValueDOList = new ArrayList<CodeClassifyValueDO>();
- if(!CollectionUtils.isEmpty(oidCollections)){
- Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections);
- for(Collection<String> oids: oidCollectionsList){
- List<CodeClassifyValueDO> tempDOList = codeClassifyValueMapper.selectByPrimaryKeyCollection(oids);
- if(!CollectionUtils.isEmpty(tempDOList)){
- codeClassifyValueDOList.addAll(tempDOList);
- }
- }
- }
- return codeClassifyValueDOList;
- }
-
-
-
- /**
- * 鍙傜収鏍� 鍒嗙被鐮佹鐨勭爜鍊�
- * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
- * @return 鍒嗙被鐮佹鐨勭爜鍊兼樉绀烘爲
- * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
- */
- @Override
- public List<Tree> referTree(TreeQueryObject treeQueryObject) throws VciBaseException{
- if(treeQueryObject == null){
- treeQueryObject = new TreeQueryObject();
- }
- if(treeQueryObject.getConditionMap() == null){
- treeQueryObject.setConditionMap(new HashMap<>());
- }
- if(treeQueryObject.getConditionMap().containsKey(LC_STATUS)) {
- treeQueryObject.getConditionMap().remove(LC_STATUS);
- }
- return treeCodeClassifyValue(treeQueryObject);
- }
-
- /**
- * 浣跨敤鐮佹鐨勪富閿幏鍙栧垎绫荤殑鐮佸�煎唴瀹�
- *
- * @param classifySecOid 鐮佹鐨勪富閿�
- * @param parentClassifyValueOid 涓婄骇鍒嗙被鐨勪富閿�
- * @return 鍒嗙被鐮佸�肩殑鍐呭
- */
- @Override
- public List<CodeClassifyValueVO> listCodeClassifyValueBySecOid(String classifySecOid, String parentClassifyValueOid) {
- if(StringUtils.isBlank(classifySecOid)){
- return new ArrayList<>();
- }
- CodeBasicSecDO secDO = basicSecMapper.selectByPrimaryKey(classifySecOid);
- if(secDO == null || StringUtils.isBlank(secDO.getOid())){
- throw new VciBaseException("鐮佹鐨勫唴瀹瑰湪绯荤粺涓笉瀛樺湪");
- }
- if(StringUtils.isNotBlank(secDO.getParentClassifySecOid()) && StringUtils.isBlank(parentClassifyValueOid)){
- return new ArrayList<>();
- //鍥犱负鏈変笂绾у垎绫荤殑鏃跺�欙紝蹇呴』鍏堥�夋嫨涓婄骇鍒嗙被鐨勫唴瀹�
- }
- Map<String,String> conditionMap = new HashMap<>();
- conditionMap.put("codeClassifySecOid",classifySecOid);
- if(StringUtils.isNotBlank(parentClassifyValueOid)){
- conditionMap.put("parentClassifyValueOid",parentClassifyValueOid);
- }
- PageHelper pageHelper = new PageHelper(-1);
- pageHelper.addDefaultAsc("ordernum");
- List<CodeClassifyValueDO> valueDOList = codeClassifyValueMapper.selectByCondition(conditionMap, pageHelper);
- return codeClassifyValueDO2VOs(valueDOList);
- }
-
- /**
- * 鏍规嵁鐮佹涓婚敭鍒犻櫎鍏跺瓨鍦ㄧ殑鐮佸�煎璞�
- * @param codeclassifysecoid 鍒嗙被鐮佹鐨勪富閿�
- * @return 鎵ц缁撴灉
- */
- @Override
- public BaseResult batchDeleteBySecOid(String codeclassifysecoid) {
- VciBaseUtil.alertNotNull(codeclassifysecoid,"鍒嗙被鐮佹鐨勪富閿�");
- Map<String,String> conditionMap = new HashMap<>();
- conditionMap.put("codeClassifySecOid",codeclassifysecoid);
- VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeClassifyValueDO.class);
- List<CodeClassifyValueDO> valueDOList = codeClassifyValueMapper.selectByWrapper(wrapper);
- codeClassifyValueMapper.batchDeleteByOids(valueDOList.stream().map(CodeClassifyValueDO::getOid).collect(Collectors.toList()));
- return BaseResult.success();
- }
-
- /**
- * 鎵归噺娣诲姞鍒嗙被鐮佹鐨勭爜鍊笺�備富瑕佹槸淇濆瓨鐮佸�肩殑搴忓彿
- * @param dtoList 鍒嗙被鐮佹鐨勭爜鍊煎垪琛�
- * @param codeclassifysecoid 鍒嗙被鐮佹鐨勪富閿�
- * @return 鎵ц缁撴灉
- */
- @Override
- public BaseResult batchSave4Order(List<CodeClassifyValueDTO> dtoList, String codeclassifysecoid) {
- VciBaseUtil.alertNotNull(codeclassifysecoid,"鍒嗙被鐮佹涓婚敭");
- Map<String,String> conditionMap = new HashMap<>();
- conditionMap.put("codeClassifySecOid",codeclassifysecoid);
- VciQueryWrapperForDO wrapper = new VciQueryWrapperForDO(conditionMap,CodeClassifyValueDO.class);
- List<CodeClassifyValueDO> valueDOList = codeClassifyValueMapper.selectByWrapper(wrapper);
- List<CodeClassifyValueDO> updateList = new ArrayList<>();
- dtoList.forEach(dto -> {
- if( StringUtils.isNotBlank( dto.getOid() )){
- List<CodeClassifyValueDO> collect = valueDOList.stream().filter(value -> {
- return dto.getOid().equals(value.getOid());
- }).collect(Collectors.toList());
- collect.forEach(ccv -> {
- ccv.setOrderNum(dto.getOrdernum());
- ccv.setId(dto.getId());
- ccv.setName(dto.getName());
- updateList.add(ccv);
- });
- }
- });
- codeClassifyValueMapper.batchUpdate(updateList);
- return BaseResult.success();
- }
-}
-
--
Gitblit v1.9.3