xiejun
2023-06-01 85d10ebf08cb41fa3ec06272e6e991cdd0a534f9
Source/UBCS/ubcs-service/ubcs-webservice/src/main/java/com/vci/ubcs/code/webservice/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -4,10 +4,11 @@
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;
@@ -15,14 +16,12 @@
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;
@@ -45,6 +44,11 @@
    */
   @Autowired(required = false)
   private DockingPreAttrMappingMapper dockingPreAttrMappingMapper;
   /***
    * 主数据分类服务
    */
   @Autowired(required = true)
   private     ICodeClassifyClient codeClassifyClient;
   /***
    * 业务数据属性服务
@@ -64,8 +68,19 @@
   private IDockingPreAttrRangeService dockingPreAttrRangeService;
   /***
    * 集团分类视图模型服务
    */
   @Autowired(required = false)
   private IDockingPreViewModelService dockingPreViewModelService;
   /***
    * 集团属性服务
    */
   @Autowired(required = false)
   @Lazy
   private IDockingPreClassifyService dockingPreClassifyService;
   /***
    * 根据主数据分类主键获取分类信息配置
@@ -77,31 +92,40 @@
      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);
   }
   /***