ludc
2023-05-09 1b8120cacac0037fcb1f8ae747c2f54eb735368b
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,164 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
import com.vci.ubcs.code.entity.CodeClstemplateEntity;
import com.vci.ubcs.code.mapper.CodeClassifyTemplateAttrMapper;
import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.wrapper.CodeClstempattrWrapper;
import com.vci.ubcs.common.utils.PageDO2PageVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.util.Map2MPLLambdaUtil;
import com.vci.ubcs.starter.util.MybatisParameterUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.ubcs.starter.web.pagemodel.DataGrid;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
/**
 * ä¸»é¢˜åº“分类的模板属性服务
 * @author ludc
 * @date 2023/5/5
 */
@Service
public class CodeClassifyTemplateAttrServiceImpl extends ServiceImpl<CodeClassifyTemplateAttrMapper, CodeClassifyTemplateAttr> implements ICodeClassifyTemplateAttrService {
   /**
    * æ•°æ®æ“ä½œå±‚
    */
   @Resource
   private CodeClassifyTemplateAttrMapper codeClassifyTemplateAttrMapper;
   /**
    * æŸ¥è¯¢æ‰€æœ‰çš„主题库分类的模板属性
    * @param mpjLambdaWrapper æŸ¥è¯¢æ¡ä»¶
    * @param pageHelper åˆ†é¡µå’ŒæŽ’序
    * @return æ‰§è¡Œç»“æžœ
    * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
    */
   @Override
   public IPage<CodeClassifyTemplateAttrVO> gridCodeClassifyTemplateAttr(MPJLambdaWrapper<CodeClassifyTemplateAttr> mpjLambdaWrapper , PageHelper pageHelper) throws VciBaseException {
      //没有传递参数,就不执行查询逻辑
      if(mpjLambdaWrapper == null){
         return new Page<>();
      }
      Query query = new Query();
      if (pageHelper == null) {
         pageHelper = new PageHelper(-1);
         query.setSize(-1);
      }else {
         query.setCurrent(pageHelper.getPage());
         query.setSize(pageHelper.getLimit());
      }
      //pageHelper.addDefaultAsc("ordernum");
      query.setAscs("ordernum");
      //这儿是个连表查询
      IPage<CodeClassifyTemplateAttr> doList = codeClassifyTemplateAttrMapper.selectPage(Condition.getPage(query), mpjLambdaWrapper);
      IPage<CodeClassifyTemplateAttrVO> voList = new Page<>();
      if (!CollectionUtils.isEmpty(doList.getRecords())) {
         voList.setRecords(CodeClstempattrWrapper.build().listVO(doList.getRecords()));
         PageDO2PageVO.pageDO2PageVO(doList,voList);
      }
      return voList;
   }
   /**
    * å‚照主题库分类的模板属性列表
    * @param conditionMap æŸ¥è¯¢æ¡ä»¶
    * @param pageHelper åˆ†é¡µå’ŒæŽ’序
    * @return ä¸»é¢˜åº“分类的模板属性显示对象列表,生效的内容
    * @throws VciBaseException æŸ¥è¯¢æ¡ä»¶å’Œåˆ†é¡µå‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
    */
   @Override
   public IPage<CodeClassifyTemplateAttrVO> refDataGridCodeClassifyTemplateAttr(Map<String, Object> conditionMap, PageHelper pageHelper) throws VciBaseException{
      if(conditionMap == null){
         conditionMap = new HashMap<String, Object>();
      }
      return gridCodeClassifyTemplateAttr(Map2MPLLambdaUtil.getMPJLambdaWrapper(conditionMap, CodeClassifyTemplateAttr.class),pageHelper);
   }
   @Override
   public IPage<CodeClassifyTemplateAttrVO> selectCodeClstempattrPage(IPage<CodeClassifyTemplateAttrVO> page, CodeClassifyTemplateAttrVO CodeClstempattr) {
      return page.setRecords(baseMapper.selectCodeClstempattrPage(page, CodeClstempattr));
   }
   /**
    * ä½¿ç”¨æ¨¡æ¿çš„主键获取模板的属性--批量
    *
    * @param templateOidCollection æ¨¡æ¿çš„主键
    * @return å±žæ€§çš„信息
    */
   @Override
   public List<CodeClassifyTemplateAttrVO> listCodeClassifyTemplateAttrByTemplateOids(Collection<String> templateOidCollection) {
      if(CollectionUtils.isEmpty(templateOidCollection)){
         return new ArrayList<>();
      }
      List<CodeClassifyTemplateAttr> attrDOList = new ArrayList<>();
      VciBaseUtil.switchCollectionForOracleIn(templateOidCollection).stream().forEach(templateOids->{
//         Map<String,String> conditionMap = new HashMap<>();
//         conditionMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOids.toArray(new String[0])) + ")");
//         PageHelper pageHelper = new PageHelper(-1);
//         pageHelper.addDefaultAsc("orderNum");
         List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0])));
         if(!CollectionUtils.isEmpty(attrDOS)){
            attrDOList.addAll(attrDOS);
         }
      });
      return codeClassifyTemplateAttrDO2VOs(attrDOList);
   }
   /**
    * æ‰¹é‡æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
    * @param codeClassifyTemplateAttrDOs æ•°æ®å¯¹è±¡åˆ—表
    * @return æ˜¾ç¤ºå¯¹è±¡
    * @throws VciBaseException å‚数为空或者不存在的时候会抛出异常
    */
   @Override
   public List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrDO2VOs(Collection<CodeClassifyTemplateAttr> codeClassifyTemplateAttrDOs) throws VciBaseException{
      List<CodeClassifyTemplateAttrVO> voList = new ArrayList<CodeClassifyTemplateAttrVO>();
      if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOs)){
         for(CodeClassifyTemplateAttr s: codeClassifyTemplateAttrDOs){
            CodeClassifyTemplateAttrVO vo =  codeClassifyTemplateAttrDO2VO(s);
            if(vo != null){
               voList.add(vo);
            }
         }
      }
      return voList;
   }
   /**
    * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
    * @param  codeClassifyTemplateAttrDO æ•°æ®å¯¹è±¡
    * @return æ˜¾ç¤ºå¯¹è±¡
    * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
    */
   @Override
   public  CodeClassifyTemplateAttrVO codeClassifyTemplateAttrDO2VO(CodeClassifyTemplateAttr codeClassifyTemplateAttrDO) throws VciBaseException{
      CodeClassifyTemplateAttrVO vo = new CodeClassifyTemplateAttrVO();
      if(codeClassifyTemplateAttrDO != null){
         BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDO,vo);
         //如果有lcstatus的类的话
         vo.setAttributeDataTypeText(VciFieldTypeEnum.getTextByValue(vo.getAttributeDataType()));
      }
      return vo;
   }
}