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 implements ICodeClassifyTemplateAttrService { /** * 数据操作层 */ @Resource private CodeClassifyTemplateAttrMapper codeClassifyTemplateAttrMapper; /** * 查询所有的主题库分类的模板属性 * @param mpjLambdaWrapper 查询条件 * @param pageHelper 分页和排序 * @return 执行结果 * @throws VciBaseException 查询条件和分页出错的时候会抛出异常 */ @Override public IPage gridCodeClassifyTemplateAttr(MPJLambdaWrapper 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 doList = codeClassifyTemplateAttrMapper.selectPage(Condition.getPage(query), mpjLambdaWrapper); IPage 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 refDataGridCodeClassifyTemplateAttr(Map conditionMap, PageHelper pageHelper) throws VciBaseException{ if(conditionMap == null){ conditionMap = new HashMap(); } return gridCodeClassifyTemplateAttr(Map2MPLLambdaUtil.getMPJLambdaWrapper(conditionMap, CodeClassifyTemplateAttr.class),pageHelper); } @Override public IPage selectCodeClstempattrPage(IPage page, CodeClassifyTemplateAttrVO CodeClstempattr) { return page.setRecords(baseMapper.selectCodeClstempattrPage(page, CodeClstempattr)); } /** * 使用模板的主键获取模板的属性--批量 * * @param templateOidCollection 模板的主键 * @return 属性的信息 */ @Override public List listCodeClassifyTemplateAttrByTemplateOids(Collection templateOidCollection) { if(CollectionUtils.isEmpty(templateOidCollection)){ return new ArrayList<>(); } List attrDOList = new ArrayList<>(); VciBaseUtil.switchCollectionForOracleIn(templateOidCollection).stream().forEach(templateOids->{ // Map conditionMap = new HashMap<>(); // conditionMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOids.toArray(new String[0])) + ")"); // PageHelper pageHelper = new PageHelper(-1); // pageHelper.addDefaultAsc("orderNum"); List 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 codeClassifyTemplateAttrDO2VOs(Collection codeClassifyTemplateAttrDOs) throws VciBaseException{ List voList = new ArrayList(); 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; } }