ludc
2023-05-18 6138318ebe15d251d6ae6e3e1ec57c8af94216d7
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -1,60 +1,34 @@
//package com.vci.ubcs.code.service.impl;
package com.vci.ubcs.code.service.impl;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.entity.CodeAllCode;
import com.vci.ubcs.code.mapper.CodeAllCodeMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
//
//import com.alibaba.fastjson.JSONObject;
//import com.alibaba.nacos.common.utils.StringUtils;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.extension.service.IService;
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
//import com.sun.corba.se.impl.orbutil.ObjectUtility;
//import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
//import com.vci.ubcs.code.dto.CodeOrderDTO;
//import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
//import com.vci.ubcs.code.entity.CodeAllCode;
//import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
//import com.vci.ubcs.code.entity.CodeRule;
//import com.vci.ubcs.code.entity.CodeWupinEntity;
//import com.vci.ubcs.code.enumpack.CodeDefaultLC;
//import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
//import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
//import com.vci.ubcs.code.mapper.CodeAllCodeMapper;
//import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
//import com.vci.ubcs.code.mapper.CodeRuleMapper;
//import com.vci.ubcs.code.service.*;
//import com.vci.ubcs.code.vo.CodeClstemplateVO;
//import com.vci.ubcs.code.vo.CodeKeyattrrepeatVO;
//import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
//import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
//import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
//import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
//import com.vci.ubcs.omd.entity.Dict;
//import com.vci.ubcs.starter.exception.VciBaseException;
//import com.vci.ubcs.starter.revision.model.BaseModel;
//import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
//import com.vci.ubcs.starter.web.pagemodel.KeyValue;
//import com.vci.ubcs.starter.web.toolmodel.DateConverter;
//import com.vci.ubcs.starter.web.util.VciBaseUtil;
//import com.vci.ubcs.starter.web.util.VciDateUtil;
//import com.vci.ubcs.starter.web.util.VciQueryWrapperForDO;
//import com.vci.ubcs.starter.web.util.WebUtil;
//import com.vci.ubcs.system.entity.DictBiz;
//import com.vci.ubcs.system.feign.IDictBizClient;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springblade.core.mp.support.Query;
//import org.springblade.core.secure.utils.AuthUtil;
//import org.springblade.core.tool.api.R;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
///**
// * 主数据引擎服务
// *
// * @author weidy
// * @date 2022-2-22
// */
//@Service
//public class MdmEngineServiceImpl extends ServiceImpl<CodeAllCodeMapper, CodeAllCode> implements MdmEngineService {
/**
 * 主数据引擎服务
 *
 * @author weidy
 * @date 2022-2-22
 */
@Slf4j
@Service
public class MdmEngineServiceImpl extends ServiceImpl<CodeAllCodeMapper, CodeAllCode> implements MdmEngineService {
//
//
//   /**
@@ -76,29 +50,75 @@
//   //   @Autowired
//   //   private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
//
//   /**
//    * 使用分类的主键获取可以使用的模板对象
//    *
//    * @param codeClassifyOid 分类的主键
//    * @return 模板的显示对象
//    */
//   @Override
//   public CodeClstemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid) {
//      return getUsedTemplateByClassifyOid(codeClassifyOid, true);
//   }
   /**
    * 模板的服务
    */
   @Autowired(required = false)
   private ICodeClassifyTemplateAttrService codeClassifyTemplateAttrService;
   /***
    * 编码规则服务
    */
   @Autowired(required = false)
   private ICodeRuleService codeRuleService;
   /**
    * 使用分类的主键获取可以使用的模板对象
    *
    * @param codeClassifyOid 分类的主键
    * @return 模板的显示对象
    */
   @Override
   public CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid) {
      return getUsedTemplateByClassifyOid(codeClassifyOid, true);
   }
//
//   /**
//    * 使用分类的主键获取可以使用的模板对象
//    *
//    * @param codeClassifyOid 分类的主键
//    * @param hasAttr         包含属性
//    * @return 模板的显示对象
//    */
//   @Override
//   public CodeClstemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr) {
//      List<CodeClstemplateVO> templateVOs = templateService.listReleaseTemplateByClassifyOid(codeClassifyOid, hasAttr);
//      return templateVOs.get(templateVOs.size() - 1);
//   }
   /**
    * 使用分类的主键获取可以使用的模板对象
    *
    * @param codeClassifyOid 分类的主键
    * @param hasAttr         包含属性
    * @return 模板的显示对象
    */
   @Override
   public CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr) {
      List<CodeClassifyTemplateVO> templateVOs=new ArrayList<>();
      //templateVOs = codeClassifyTemplateAttrService.listReleaseTemplateByClassifyOid(codeClassifyOid, hasAttr);
      return templateVOs.get(templateVOs.size() - 1);
   }
   /**
    * 使用分类的全部信息获取编码规则
    *
    * @param fullInfoBO 分类的全部信息
    * @return 规则的内容
    */
   @Override
   public CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO) {
      //往上找
      String codeRuleOid = "";
      if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCoderuleoid())) {
         codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCoderuleoid();
      } else {
         if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
            //说明已经是最高层级,
            throw new VciBaseException("当前主题库分类,以及它的所有的上级分类都没有设置编码规则");
         }
         List<CodeClassifyVO> parentClassifyVOList = fullInfoBO.getParentClassifyVOs().stream().sorted((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel())).collect(Collectors.toList());
         //从最高的level开始获取
         for (int i = 0; i < parentClassifyVOList.size(); i++) {
            CodeClassifyVO record = parentClassifyVOList.get(i);
            if (StringUtils.isNotBlank(record.getCoderuleoid())) {
               codeRuleOid = record.getCoderuleoid();
               break;
            }
         }
         if (StringUtils.isBlank(codeRuleOid)) {
            throw new VciBaseException("当前主题库分类,以及它的所有的上级分类都没有设置编码规则");
         }
      }
      return codeRuleService.getObjectHasSecByOid(codeRuleOid);
   }
//
//   /**
//    * 获取枚举的下拉选项
@@ -1788,4 +1808,4 @@
////      batchSaveSelectChar(templateVO, cboList);
////   }
//
//}
}