| | |
| | | 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.entity.CodeClassify; |
| | | import com.vci.ubcs.code.feign.ICodeClassifyClient; |
| | | import com.vci.ubcs.code.webservice.entity.*; |
| | | 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.service.*; |
| | | 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.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.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | */ |
| | | @Autowired(required = false) |
| | | private DockingPreAttrMappingMapper dockingPreAttrMappingMapper; |
| | | /*** |
| | | * 主数据分类服务 |
| | | */ |
| | | @Autowired(required = true) |
| | | private ICodeClassifyClient codeClassifyClient; |
| | | |
| | | /*** |
| | | * 业务数据属性服务 |
| | |
| | | private IDockingPreAttrRangeService dockingPreAttrRangeService; |
| | | |
| | | |
| | | /*** |
| | | * 集团分类视图模型服务 |
| | | */ |
| | | @Autowired(required = false) |
| | | |
| | | private IDockingPreViewModelService dockingPreViewModelService; |
| | | |
| | | /*** |
| | | * 集团属性服务 |
| | | */ |
| | | @Autowired(required = false) |
| | | @Lazy |
| | | private IDockingPreClassifyService dockingPreClassifyService; |
| | | |
| | | /*** |
| | | * 根据主数据分类主键获取分类信息配置 |
| | |
| | | VciBaseUtil.alertNotNull(codeClassifyId,"主数据分类主键"); |
| | | VciBaseUtil.alertNotNull(sourceClassifyId,"集团分类主键"); |
| | | //首先获取分类模板属性,然后与属性配置坐比较,以防被有增删属性的可能 |
| | | DockingPreClassify dockingPreClassify=dockingPreClassifyService.getById(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<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,sourceClassifyId)); |
| | | Map<String,DockingPreViewModel> dockingPreViewModelMap=dockingPreViewModelList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); |
| | | CodeClassify codeClassify= codeClassifyClient.getById(codeClassifyId); |
| | | 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); |
| | | DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreAttrMapping); |
| | | }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("");//分类名称 |
| | | DockingPreViewModel dockingPreViewModel=new DockingPreViewModel(); |
| | | if(dockingPreViewModelMap.containsKey(dockingPreMetaAttr.getViewModelId())){ |
| | | dockingPreViewModel=dockingPreViewModelMap.get(dockingPreMetaAttr.getViewModelId()); |
| | | } |
| | | dockingPreAttrMapping.setSourceClassifyName(dockingPreClassify.getClassName());//分类名称 |
| | | dockingPreAttrMapping.setViewModeId(dockingPreMetaAttr.getViewModelId());//模型视图id |
| | | dockingPreAttrMapping.setViewModelName("");//分类模型名称 |
| | | dockingPreAttrMapping.setViewName("");//分类模型名称 |
| | | |
| | | dockingPreAttrMapping.setViewModelName(dockingPreViewModel.getName());//分类模型名称 |
| | | dockingPreAttrMapping.setViewName(dockingPreViewModel.getViewName());//分类模型名称 |
| | | dockingPreAttrMapping.setTargetClassifyId(codeClassifyId); |
| | | dockingPreAttrMapping.setTargetClassifyName(codeClassify.getName()); |
| | | } |
| | | newDockingPreAttrMappingList.add(dockingPreAttrMapping); |
| | | }); |
| | | return dockingPreAttrMappingDO2VOS(dockingPreAttrMappings,false); |
| | | return dockingPreAttrMappingDO2VOS(newDockingPreAttrMappingList,false); |
| | | } |
| | | |
| | | /*** |
| | |
| | | /*** |
| | | * 根据主数据oid检测是否属性映射配置 |
| | | * @param targetClassifyId |
| | | * @param sourceClassifyId |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId){ |
| | | public boolean checkHasConfigByTragetCodeclassifyId(String targetClassifyId,String sourceClassifyId){ |
| | | Long count =0L; |
| | | try { |
| | | count = dockingPreAttrMappingMapper.selectCount(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, targetClassifyId)); |
| | | count = dockingPreAttrMappingMapper.selectCount(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, targetClassifyId).eq(DockingPreAttrMapping::getSourceClassifyId,sourceClassifyId)); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | } finally { |