/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package com.vci.ubcs.code.service.impl; import com.vci.ubcs.code.entity.CodeKeyattrrepeatEntity; import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; import com.vci.ubcs.code.vo.CodeKeyattrrepeatVO; import com.vci.ubcs.code.mapper.CodeKeyattrrepeatMapper; import com.vci.ubcs.code.service.ICodeKeyattrrepeatService; import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * 关键属性查重规则 服务实现类 * * @author yuxc * @since 2023-04-03 */ @Service public class CodeKeyattrrepeatServiceImpl implements ICodeKeyattrrepeatService { @Autowired CodeKeyattrrepeatMapper codeKeyattrrepeatMapper; @Override public IPage selectPlCodeKeyattrrepeatPage(IPage page, CodeKeyattrrepeatVO plCodeKeyattrrepeat) { return page.setRecords(codeKeyattrrepeatMapper.selectPlCodeKeyattrrepeatPage(page, plCodeKeyattrrepeat)); } /** * 主键批量获取关键数据查重规则 * * @param oidCollections 主键集合,但是受性能影响,建议一次查询不超过10000个 * @return 关键数据查重规则显示对象 */ @Override public List listCodeKeyAttrRepeatRuleByOids(Collection oidCollections) { VciBaseUtil.alertNotNull(oidCollections,"数据对象主键集合"); List codeKeyAttrRepeatRuleDOList = listCodeKeyAttrRepeatRuleDOByOidCollections(oidCollections); return codeKeyAttrRepeatRuleDO2VOs(codeKeyAttrRepeatRuleDOList); } /** * 批量数据对象转换为显示对象 * @param codeKeyattrrepeatEntityS 数据对象列表 * @return 显示对象 */ @Override public List codeKeyAttrRepeatRuleDO2VOs(Collection codeKeyattrrepeatEntityS){ List voList = new ArrayList(); if(!CollectionUtils.isEmpty(codeKeyattrrepeatEntityS)){ for(CodeKeyattrrepeatEntity s: codeKeyattrrepeatEntityS){ CodeKeyAttrRepeatRuleVO vo = codeKeyAttrRepeatRuleDO2VO(s); if(vo != null){ voList.add(vo); } } } return voList; } /** * 使用主键集合查询数据对象 * @param oidCollections 主键的集合 * @return 数据对象列表 */ private List listCodeKeyAttrRepeatRuleDOByOidCollections(Collection oidCollections){ List codeKeyAttrRepeatRuleDOList = new ArrayList(); if(!CollectionUtils.isEmpty(oidCollections)){ Collection> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); for(Collection oids: oidCollectionsList){ List tempDOList = codeKeyattrrepeatMapper.selectBatchIds(oids); if(!CollectionUtils.isEmpty(tempDOList)){ codeKeyAttrRepeatRuleDOList.addAll(tempDOList); } } } return codeKeyAttrRepeatRuleDOList; } /** * 数据对象转换为显示对象 * @param codeKeyattrrepeatEntity 数据对象 * @return 显示对象 */ @Override public CodeKeyAttrRepeatRuleVO codeKeyAttrRepeatRuleDO2VO(CodeKeyattrrepeatEntity codeKeyattrrepeatEntity) { CodeKeyAttrRepeatRuleVO vo = new CodeKeyAttrRepeatRuleVO(); if(codeKeyattrrepeatEntity != null) { BeanUtilForVCI.copyPropertiesIgnoreCase(codeKeyattrrepeatEntity, vo); //如果有lcstatus的类的话 vo.setLcStatusText(FrameworkDataLCStatus.getTextByValue(vo.getLcStatus())); } return vo; } }