¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.vci.ubcs.code.webservice.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vci.ubcs.code.webservice.mapper.DockingPreAttrMappingMapper; |
| | | import com.vci.ubcs.code.webservice.service.IDockingPreAttrMappingService; |
| | | import com.vci.ubcs.code.webservice.service.IDockingPreAttrRangeService; |
| | | import com.vci.ubcs.code.webservice.service.IDockingPreMetaAttrService; |
| | | import com.vci.ubcs.code.webservice.vo.DokingAttributeSerchVO; |
| | | import com.vci.ubcs.code.webservice.wrapper.DockingPreAttrMappingWrapper; |
| | | import com.vci.ubcs.code.webservice.wrapper.DockingPreAttrRangeWrapper; |
| | | import com.vci.ubcs.starter.exception.VciBaseException; |
| | | import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; |
| | | import com.vci.ubcs.starter.util.MdmBtmTypeConstant; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import com.vci.ubcs.code.webservice.entity.DockingPreAttrMapping; |
| | | import com.vci.ubcs.code.webservice.entity.DockingPreAttrRange; |
| | | import com.vci.ubcs.code.webservice.entity.DockingPreMetaAttr; |
| | | import com.vci.ubcs.code.webservice.vo.DockingPreAttrMappingVO; |
| | | import com.vci.ubcs.code.webservice.vo.DockingPreAttrRangeVO; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /*** |
| | | *éå¢å±æ§æ å°æå¡ |
| | | * @author xiejun |
| | | * @date 2023-05-22 |
| | | */ |
| | | @Service |
| | | public class DockingPreAttrMappingServiceImpl extends ServiceImpl<DockingPreAttrMappingMapper, DockingPreAttrMapping> implements IDockingPreAttrMappingService { |
| | | |
| | | /*** |
| | | * éå¢åç±»å±æ§å±æ§æ å°é
ç½®æå¡ |
| | | */ |
| | | @Autowired(required = false) |
| | | private DockingPreAttrMappingMapper dockingPreAttrMappingMapper; |
| | | |
| | | /*** |
| | | * ä¸å¡æ°æ®å±æ§æå¡ |
| | | */ |
| | | //@Autowired(required = false) |
| | | //private MdmEngineService mdmEngineService; |
| | | |
| | | /*** |
| | | * éå¢å±æ§æå¡ |
| | | */ |
| | | @Autowired(required = false) |
| | | private IDockingPreMetaAttrService dockingPreMetaAttrService; |
| | | /*** |
| | | * 屿§åå¼èå´æå¡ |
| | | */ |
| | | @Autowired(required = false) |
| | | private IDockingPreAttrRangeService dockingPreAttrRangeService; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /*** |
| | | * æ ¹æ®ä¸»æ°æ®å类主é®è·åå类信æ¯é
ç½® |
| | | * @param codeClassifyId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<DockingPreAttrMappingVO> getDockingAttrMappingsByCodeClassifyId(String codeClassifyId,String sourceClassifyId) { |
| | | VciBaseUtil.alertNotNull(codeClassifyId,"ä¸»æ°æ®å类主é®"); |
| | | VciBaseUtil.alertNotNull(sourceClassifyId,"éå¢å类主é®"); |
| | | //é¦å
è·åå类模æ¿å±æ§ï¼ç¶åä¸å±æ§é
ç½®åæ¯è¾ï¼ä»¥é²è¢«æå¢å 屿§çå¯è½ |
| | | List<DockingPreMetaAttr> dockingPreMetaAttrList= dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getSourceClassifyId,sourceClassifyId)); |
| | | List<DockingPreAttrMapping> dockingPreAttrMappings=this.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getSourceClassifyId, sourceClassifyId).eq(DockingPreAttrMapping::getTargetClassifyId, codeClassifyId)); |
| | | Map<String/**屿§ä¸»é®**/, DockingPreAttrMapping> dockingPreAttrMappingMap = dockingPreAttrMappings.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getMetaListId(), t -> t)); |
| | | |
| | | List<DockingPreAttrMapping> newDockingPreAttrMappingList=new ArrayList<>(); |
| | | dockingPreMetaAttrList.stream().forEach(dockingPreMetaAttr -> { |
| | | String attrOid=dockingPreMetaAttr.getOid(); |
| | | DockingPreAttrMapping dockingPreAttrMapping=new DockingPreAttrMapping(); |
| | | if(dockingPreAttrMappingMap.containsKey(attrOid)){ |
| | | dockingPreAttrMapping= dockingPreAttrMappingMap.get(attrOid); |
| | | }else{ |
| | | DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreAttrMapping, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM); |
| | | dockingPreAttrMapping.setMetaListId(dockingPreMetaAttr.getOid());//屿§ä¸»é® |
| | | dockingPreAttrMapping.setSourceAttrKey(dockingPreMetaAttr.getEnglishName());//è±æåç§° |
| | | dockingPreAttrMapping.setSourceAttrName(dockingPreMetaAttr.getChineseName());//䏿åç§° |
| | | dockingPreAttrMapping.setSourceClassifyId(dockingPreMetaAttr.getSourceClassifyId());//éå¢åç±»oid |
| | | dockingPreAttrMapping.setSourceClassifyName("");//åç±»åç§° |
| | | dockingPreAttrMapping.setViewModeId(dockingPreMetaAttr.getViewModelId());//模åè§å¾id |
| | | dockingPreAttrMapping.setViewModelName("");//å类模ååç§° |
| | | dockingPreAttrMapping.setViewName("");//å类模ååç§° |
| | | |
| | | } |
| | | newDockingPreAttrMappingList.add(dockingPreAttrMapping); |
| | | }); |
| | | return dockingPreAttrMappingDO2VOS(dockingPreAttrMappings,false); |
| | | } |
| | | |
| | | /*** |
| | | * æé 卿¥è¯¢æ¹å¼ |
| | | * @param wrapper æ¥è¯¢å°è£
å¨ |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<DockingPreAttrMapping> selectByWrapper(Wrapper wrapper) { |
| | | return dockingPreAttrMappingMapper.selectList(wrapper); |
| | | } |
| | | |
| | | /**** |
| | | * éå¢å±æ§æ å°é
ç½®ä¿å |
| | | * @param dockingPreAttrMappingVOList |
| | | * @return |
| | | * @throws VciBaseException |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList) throws Exception { |
| | | if(org.springframework.util.CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | /** |
| | | * 1.ä¼ éè¿æ¥çæå¯è½ä¸»æ°æ®æ¨¡æ¿æ°å¢å±æ§ï¼è¿æ ·çéè¦æ·»å ï¼ä¹æå¯è½å é¤ç屿§ï¼è¿æ ·çæ å°éè¦å é¤ |
| | | * ä¹ææ´æ°çè¿æ ·åæ´æ° |
| | | */ |
| | | List<DockingPreAttrMapping> newDockingPreAttrMapping=new ArrayList<>(); |
| | | List<String>appingConfigOidList=new ArrayList<>(); |
| | | List<String>attrIdList=new ArrayList<>(); |
| | | List<String> attributeOidList=new ArrayList<>(); |
| | | List<DockingPreAttrRange> newDockingPreAttrRangeList=new ArrayList<>(); |
| | | List<DockingPreAttrRangeVO> newDockingPreAttrRangeVOList=new ArrayList<>(); |
| | | dockingPreAttrMappingVOList.stream().forEach(dockingPreAttrMappingVO -> { |
| | | List<DockingPreAttrRangeVO>dockingPreAttrRangeVOList=dockingPreAttrMappingVO.getDockingPreAttrRangeVoList(); |
| | | appingConfigOidList.add(dockingPreAttrMappingVO.getOid()); |
| | | if(!CollectionUtils.isEmpty(dockingPreAttrRangeVOList)) { |
| | | attrIdList.add(dockingPreAttrMappingVO.getMetaListId()); |
| | | newDockingPreAttrRangeVOList.addAll(dockingPreAttrRangeVOList); |
| | | } |
| | | }); |
| | | //å°å±æ§åå¼èå´è½¬ææ°æ®æä¹
å±å¯¹è±¡ |
| | | newDockingPreAttrRangeList= DockingPreAttrRangeWrapper.build().voentitys(newDockingPreAttrRangeVOList); |
| | | //å°å±æ§æ å°é
置信æ¯è½¬æ¢ä¸ºéè¦æ°æ®æä¹
å±ä¿åç对象 |
| | | newDockingPreAttrMapping= DockingPreAttrMappingWrapper.build().voentitys(dockingPreAttrMappingVOList); |
| | | |
| | | List<DockingPreAttrRange> oldDockingPreAttrRangeList=new ArrayList<>(); |
| | | if(!org.springframework.util.CollectionUtils.isEmpty(attrIdList)) { |
| | | //è·ååå¨ç屿§åå¼èå´. |
| | | oldDockingPreAttrRangeList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().in(DockingPreAttrRange::getMetaListId,attrIdList)); |
| | | } |
| | | //è·ååå¨ç屿§æ å°. |
| | | List<DockingPreAttrMapping> oldDataAttrMapping = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda().in(DockingPreAttrMapping::getOid,appingConfigOidList)); |
| | | |
| | | Map<String/**oid**/,DockingPreAttrMapping/**屿§å¯¹è±¡**/> allSaveAttrMappingMap = newDockingPreAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2)); |
| | | Map<String/**oid**/,DockingPreAttrMapping/**对象**/> oldAttrMappingMap =oldDataAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2)); |
| | | //éè¦å é¤ç屿§æ å° |
| | | List<String> deleteIdList=new ArrayList<>(); |
| | | oldDataAttrMapping.stream().forEach(cbo -> { |
| | | String oid =cbo.getOid(); |
| | | if(!allSaveAttrMappingMap.containsKey(oid)){ |
| | | deleteIdList.add(oid); |
| | | } |
| | | }); |
| | | this.removeBatchByIds(deleteIdList);//å é¤å·²ç»ä¸¢æç |
| | | this.saveOrUpdateBatch(newDockingPreAttrMapping);//æ·»å æ´æ°æ°çé
ç½®ä¿¡æ¯ |
| | | |
| | | //åå¼èå´å¤ç |
| | | if(!CollectionUtils.isEmpty(newDockingPreAttrRangeList)) { |
| | | Map<String/**oid**/, DockingPreAttrRange/**屿§å¯¹è±¡**/> allSaveAttrAttrRangeDOMap =newDockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2)); |
| | | Map<String/**oid**/, DockingPreAttrRange/**对象**/> oldSaveAttrAttrRangeDOMap = oldDockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2)); |
| | | |
| | | //éè¦å é¤ç屿§åå¼èå´ |
| | | List<String> deleteRangeIdList = new ArrayList<>(); |
| | | oldDockingPreAttrRangeList.stream().forEach(cbo -> { |
| | | String oid = cbo.getOid(); |
| | | if (!allSaveAttrAttrRangeDOMap.containsKey(oid)) { |
| | | deleteRangeIdList.add(oid); |
| | | } |
| | | }); |
| | | dockingPreAttrRangeService.removeBatchByIds(deleteIdList);//å é¤å·²ç»ä¸¢æç |
| | | dockingPreAttrRangeService.saveOrUpdateBatch(newDockingPreAttrRangeList);//æ·»å æ´æ°æ°çé
ç½®ä¿¡æ¯ |
| | | } |
| | | return dockingPreAttrMappingVOList; |
| | | } |
| | | |
| | | /*** |
| | | * æ ¹æ®ä¸»æ°æ®oidæ£æµæ¯å¦å±æ§æ å°é
ç½® |
| | | * @param targetClassifyId |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId){ |
| | | Long count =0L; |
| | | try { |
| | | count = dockingPreAttrMappingMapper.selectCount(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, targetClassifyId)); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | } finally { |
| | | return count>0?true:false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public R search(DokingAttributeSerchVO dokingAttributeSerchVO) { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /*** |
| | | * å¯¹è±¡è½¬æ¢ |
| | | * @param dockingPreAttrMappings |
| | | * @return |
| | | */ |
| | | private List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings,boolean contain) { |
| | | List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>(); |
| | | dockingPreAttrMappingVOList=DockingPreAttrMappingWrapper.build().entityVOs(dockingPreAttrMappings); |
| | | if(CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){ |
| | | dockingPreAttrMappingVOList.stream().distinct().forEach(dockingPreAttrMappingVO -> { |
| | | if(contain) { |
| | | List<DockingPreAttrRangeVO> dockingPreAttrRangeVOList= dockingPreAttrRangeService.getDockingPreAttrRangesByMetaId(dockingPreAttrMappingVO.getMetaListId()); |
| | | dockingPreAttrMappingVO.setDockingPreAttrRangeVoList(dockingPreAttrRangeVOList); |
| | | } |
| | | }); |
| | | } |
| | | return dockingPreAttrMappingVOList; |
| | | } |
| | | |
| | | } |