ludc
2024-04-16 b181dbc0898bfb4dd8f34dfd3c3961b4499720f1
集团属性池映射界面代码完善
已修改9个文件
已添加7个文件
567 ■■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/entity/GroupAttrPoolMapping.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/DockingPreMetaAttrVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/GroupAttrPoolMappingVO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/controller/DockingPreApplyCodeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/controller/GroupAttrPoolMappingController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/mapper/GroupAttrPoolMappingMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrRangeService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IGroupAttrPoolMappingService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupAttrPoolMappingServiceImpl.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/DockingPreAttrMappingWrapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/DockingPreMetaAttrWrapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/DockingPreViewWrapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/GroupAttrPoolMappingWrapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/entity/GroupAttrPoolMapping.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.vci.ubcs.code.applyjtcodeservice.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * é›†å›¢å±žæ€§æ± æ˜ å°„对象
 * @author ludc
 * @date 2024/4/15 16:30
 */
@Data
@TableName("PL_CODE_GROUPATTRPOOLMAP")
@ApiModel(value = "GroupAttrPoolMapping", description = "集团属性池映射关系对象")
@EqualsAndHashCode
public class GroupAttrPoolMapping extends BaseModel {
    /**
     * é›†å›¢å±žæ€§ç¼–号
     */
    private String groupAttrKey;
    /**
     * é›†å›¢å±žæ€§åç§°
     */
    private String groupAttrName;
    /**
     * ç¼–码系统元数据属性主键
     */
    private String codeMetaAttrOid;
    /**
     * ç¼–码系统属性池中的属性编号
     */
    private String codeMetaAttrKey;
    /**
     * ç¼–码系统属性池中的属性名称
     */
    private String codeMetaAttrName;
}
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/DockingPreMetaAttrVO.java
@@ -15,10 +15,12 @@
     * ä¸­æ–‡åç§°
     */
    private  String chineseName;
    /***
     * è‹±æ–‡åç§°
     */
    private String englishName;
    /***
     * å­—段类型
     */
@@ -30,6 +32,7 @@
     * å–值范围
     */
    private  String range;
    /***
     * çˆ¶å±žæ€§
     */
@@ -39,10 +42,12 @@
     * é›†å›¢åˆ†ç±»id
     */
    private String sourceClassifyId;
    /**
     * è§†å›¾æ¨¡åž‹id
     */
    private String viewModelId;
    /***
     * é»˜è®¤å€¼
     */
@@ -134,4 +139,5 @@
            ", defaultValue='" + defaultValue + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-applyjtcodeservice-api/src/main/java/com/vci/ubcs/code/applyjtcodeservice/vo/GroupAttrPoolMappingVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.vci.ubcs.code.applyjtcodeservice.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.applyjtcodeservice.entity.GroupAttrPoolMapping;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
 * @author ludc
 * @date 2024/4/15 16:30
 */
@Data
@ApiModel(value = "GroupAttrPoolMapping", description = "集团属性池映射关系对象")
@EqualsAndHashCode
public class GroupAttrPoolMappingVO extends BaseModelVO {
    /**
     * é›†å›¢å±žæ€§ç¼–号
     */
    private String groupAttrKey;
    /**
     * é›†å›¢å±žæ€§åç§°
     */
    private String groupAttrName;
    /**
     * ç¼–码系统元数据属性主键
     */
    private String codeMetaAttrOid;
    /**
     * ç¼–码系统属性池中的属性编号
     */
    private String codeMetaAttrKey;
    /**
     * ç¼–码系统属性池中的属性名称
     */
    private String codeMetaAttrName;
    /**
     * æŸ¥è¯¢æ¡ä»¶
     */
    private List<String> groupAttrKeyList;
    /**
     * åˆ†ç±»id
     */
    private String classifyId;
    /**
     * å½“前编码系统的属性codeMetaAttrKey在模板属性表里的oid
     */
    private String targetAttrId;
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/controller/DockingPreApplyCodeController.java
@@ -116,7 +116,7 @@
    @ApiOperation(value = "保存属性映射配置", notes = "dockingPreAttrMappingVOList")
    public R batchSave(@RequestBody DockingPreAttrMappingVOList dockingPreAttrMappingVOList){
        List<DockingPreAttrMappingVO> dockingPreAttrMappingVOs = dockingPreAttrMappingVOList.getDockingPreAttrMappingVOList();
        List<DockingPreAttrMappingVO> dockingPreAttrRangeVOS=new ArrayList<>();
        List<DockingPreAttrMappingVO> dockingPreAttrRangeVOS = new ArrayList<>();
        try {
             dockingPreAttrRangeVOS = dockingPreAttrMappingService.batchAddSave(dockingPreAttrMappingVOs);
        }catch (Exception e){
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/controller/GroupAttrPoolMappingController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
package com.vci.ubcs.code.applyjtcodeservice.controller;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreMetaAttr;
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupAttrPoolMappingService;
import com.vci.ubcs.code.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.sql.rowset.serial.SerialException;
import java.util.List;
import java.util.Map;
/**
 * é›†å›¢å±žæ€§æ± æ˜ å°„Controller
 * @author ludc
 * @date 2024/4/15 16:48
 */
@RestController
@AllArgsConstructor
@RequestMapping("/groupAttrPoolMapping")
@Api(value = "集团属性池映射配置", tags = "集团属性池映射配置接口")
public class GroupAttrPoolMappingController {
    private final IGroupAttrPoolMappingService groupAttrPoolMappingService;
    /**
     * æŸ¥è¯¢é›†å›¢å±žæ€§æ± æ˜ å°„的属性
     * @param groupAttrPoolMappingVO
     * @return
     */
    @PostMapping("/getGroupAttrPoolALlList")
    public R<List<GroupAttrPoolMappingVO>> getGroupAttrPoolALlList(@RequestBody GroupAttrPoolMappingVO groupAttrPoolMappingVO) throws SerialException {
        return R.data(groupAttrPoolMappingService.getGroupAttrPoolALlList(groupAttrPoolMappingVO));
    }
    /**
     * æ ¹æ®é›†å›¢å±žæ€§ç¼–号查询集团属性池映射
     * @param groupAttrPoolMappingVO
     * @return
     */
    @PostMapping("/getByGroupAttrKeyList")
    public R<List<GroupAttrPoolMappingVO>> getByGroupAttrKeyList(@RequestBody GroupAttrPoolMappingVO groupAttrPoolMappingVO) throws SerialException {
        return R.data(groupAttrPoolMappingService.getByGroupAttrKeyList(groupAttrPoolMappingVO));
    }
    /**
     * æ ¹æ®é›†å›¢å±žæ€§ç¼–号查询集团属性池映射
     * @param groupAttrPoolMappingVO
     * @return
     */
    @PostMapping("/editGroupAttr")
    public R editGroupAttr(@RequestBody List<GroupAttrPoolMappingVO>groupAttrPoolMappingVO) throws SerialException {
        return R.status(groupAttrPoolMappingService.editGroupAttr(groupAttrPoolMappingVO));
    }
    /**
     * æ ¹æ®é›†å›¢å±žæ€§ç¼–号查询集团属性池映射,慎用因为会更新所有用到这个集团属性的记录
     * @param groupAttrPoolMappingVOS
     * @return
     */
    @PostMapping("/syncGroupAttrMapping")
    public R syncGroupAttrMapping(@RequestBody List<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS) throws SerialException {
        return R.status(groupAttrPoolMappingService.syncGroupAttrMapping(groupAttrPoolMappingVOS));
    }
    /**
     * åŽæœŸè¦åˆ é™¤ï¼Œå‰æœŸæµ‹è¯•用
     * @param dockingPreMetaAttrList
     * @return
     * @throws SerialException
     */
    @PostMapping("/saveDistinctGroupAttr")
    public R saveDistinctGroupAttr(@RequestBody List<DockingPreMetaAttr> dockingPreMetaAttrList) throws SerialException {
        return R.status(groupAttrPoolMappingService.saveDistinctGroupAttr(dockingPreMetaAttrList));
    }
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/mapper/GroupAttrPoolMappingMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.vci.ubcs.code.applyjtcodeservice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.applyjtcodeservice.entity.GroupAttrPoolMapping;
/**
 * @author ludc
 * @date 2024/4/15 16:49
 */
public interface GroupAttrPoolMappingMapper extends BaseMapper<GroupAttrPoolMapping> {
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrMappingService.java
@@ -5,6 +5,7 @@
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreAttrMapping;
import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO;
import com.vci.ubcs.code.applyjtcodeservice.vo.DokingAttributeSerchVO;
import com.vci.ubcs.code.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import org.springblade.core.tool.api.R;
@@ -37,7 +38,7 @@
     * @param dockingPreAttrMappingDTOS å±žæ€§æ˜ å°„配置数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    public  List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingVO> dockingPreAttrMappingDTOS)throws Exception;
    public List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingVO> dockingPreAttrMappingDTOS)throws Exception;
    /***
     *校验属性映射是否配置过
@@ -60,4 +61,12 @@
     * @return
     */
    List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings, boolean contain);
    /**
     * é›†å›¢å±žæ€§æ± æ˜ å°„数据同步导集团属性映射界面
     * @param groupAttrPoolMappingVOS
     * @return
     */
    boolean syncGroupAttrMapping(List<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS);
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IDockingPreAttrRangeService.java
@@ -8,6 +8,7 @@
import java.util.List;
public interface IDockingPreAttrRangeService extends IService<DockingPreAttrRange> {
    /***
     * æ ¹æ®é›†å›¢å±žæ€§id获取取值范围
     * @return
@@ -20,4 +21,5 @@
     * @return æ•°æ®å¯¹è±¡
     */
    List<DockingPreAttrRange> selectByWrapper(Wrapper wrapper);
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/IGroupAttrPoolMappingService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.vci.ubcs.code.applyjtcodeservice.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreMetaAttr;
import com.vci.ubcs.code.applyjtcodeservice.entity.GroupAttrPoolMapping;
import com.vci.ubcs.code.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
import org.springblade.core.tool.api.R;
import javax.sql.rowset.serial.SerialException;
import java.util.List;
import java.util.Map;
/**
 * é›†å›¢å±žæ€§æ± æ˜ å°„服务层
 * @author ludc
 * @date 2024/4/15 16:52
 */
public interface IGroupAttrPoolMappingService extends IService<GroupAttrPoolMapping> {
    /**
     * æŸ¥è¯¢å…¨éƒ¨é›†å›¢å±žæ€§æ± æ˜ å°„的属性
     * @param GroupAttrPoolMappingVO
     * @return
     * @throws SerialException
     */
    List<GroupAttrPoolMappingVO> getGroupAttrPoolALlList(GroupAttrPoolMappingVO GroupAttrPoolMappingVO) throws SerialException;
    /**
     * æ ¹æ®é›†å›¢å±žæ€§ç¼–号查询集团属性池映射
     * @param groupAttrPoolMappingVO
     * @return
     * @throws SerialException
     */
    List<GroupAttrPoolMappingVO> getByGroupAttrKeyList(GroupAttrPoolMappingVO groupAttrPoolMappingVO) throws SerialException;
    /**
     * ç‚¹å‡»åŒæ­¥è¯¦ç»†æ¨¡åž‹æ—¶è°ƒç”¨è¯¥æ–¹æ³•,
     * å®žçŽ°å°†é›†å›¢èŽ·å–çš„å±žæ€§åŽ»é‡æ”¾åˆ°é›†å›¢å±žæ€§æ± æ˜ å°„è¡¨ä¸­
     * @return
     * @throws SerialException
     */
    boolean saveDistinctGroupAttr(List<DockingPreMetaAttr> dockingPreMetaAttrList) throws SerialException;
    /**
     * é›†å›¢å±žæ€§æ˜ å°„界面修改的映射配置保存
     * @param groupAttrPoolMappingVO
     * @return
     * @throws SerialException
     */
    boolean editGroupAttr(List<GroupAttrPoolMappingVO> groupAttrPoolMappingVO) throws SerialException;
    /**
     * åŒæ­¥é›†å›¢å±žæ€§æ± ä¸­çš„æ˜ å°„配置到,所有应用了该集团属性的具体某个分类上去
     * @param groupAttrPoolMappingVOS
     * @return
     * @throws SerialException
     */
    boolean syncGroupAttrMapping(List<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS) throws SerialException;
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -4,6 +4,7 @@
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.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.feign.ICodeClassifyClient;
import com.vci.ubcs.code.applyjtcodeservice.entity.*;
@@ -18,6 +19,7 @@
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO;
import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrRangeVO;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
@@ -36,6 +38,7 @@
 * @date 2023-05-22
 */
@Service
@Slf4j
public class DockingPreAttrMappingServiceImpl extends ServiceImpl<DockingPreAttrMappingMapper, DockingPreAttrMapping> implements IDockingPreAttrMappingService {
    /***
@@ -153,7 +156,7 @@
         * 1.传递过来的有可能主数据模板新增属性,这样的需要添加,也有可能删除的属性,这样的映射需要删除
         * ä¹Ÿæœ‰æ›´æ–°çš„这样则更新
         */
        List<DockingPreAttrMapping> newDockingPreAttrMapping=new ArrayList<>();
        List<DockingPreAttrMapping> newDockingPreAttrMapping = new ArrayList<>();
        List<String>appingConfigOidList=new ArrayList<>();
        List<String>attrIdList=new ArrayList<>();
        List<String> attributeOidList=new ArrayList<>();
@@ -256,4 +259,15 @@
            return dockingPreAttrMappingVOList;
        }
    @Override
    public boolean syncGroupAttrMapping(List<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS) {
        log.info("开始集团属性池同步到集团属性映射配置表");
        //groupAttrPoolMappingVOS.stream().map(GroupAttrPoolMapping::getGroupAttrKey);
        dockingPreAttrMappingMapper.selectList(
            Wrappers.<DockingPreAttrMapping>query().lambda().in(DockingPreAttrMapping::getSourceClassifyId)
        );
        log.info("集团属性池同步到集团属性映射配置表完成!");
        return false;
    }
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupAttrPoolMappingServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,168 @@
package com.vci.ubcs.code.applyjtcodeservice.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreAttrRange;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreMetaAttr;
import com.vci.ubcs.code.applyjtcodeservice.entity.GroupAttrPoolMapping;
import com.vci.ubcs.code.applyjtcodeservice.mapper.GroupAttrPoolMappingMapper;
import com.vci.ubcs.code.applyjtcodeservice.service.IDockingPreAttrMappingService;
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupAttrPoolMappingService;
import com.vci.ubcs.code.applyjtcodeservice.service.IGroupMdmInterService;
import com.vci.ubcs.code.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
import com.vci.ubcs.code.applyjtcodeservice.wrapper.GroupAttrPoolMappingWrapper;
import com.vci.ubcs.code.feign.ICodeClassifyClient;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import javax.sql.rowset.serial.SerialException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * é›†å›¢å±žæ€§æ± æ˜ å°„服务层
 *
 * @author ludc
 * @date 2024/4/15 16:52
 */
@Service
@RequiredArgsConstructor
@Slf4j
public class GroupAttrPoolMappingServiceImpl extends ServiceImpl<GroupAttrPoolMappingMapper, GroupAttrPoolMapping> implements IGroupAttrPoolMappingService {
    private final GroupAttrPoolMappingMapper groupAttrPoolMappingMapper;
    private final ICodeClassifyClient codeClassifyClient;
    private final IDockingPreAttrMappingService dockingPreAttrMappingService;
    /**
     * æŸ¥è¯¢å…¨éƒ¨é›†å›¢å±žæ€§æ± æ˜ å°„的属性
     *
     * @param GroupAttrPoolMappingVO
     * @return
     */
    @Override
    public List<GroupAttrPoolMappingVO> getGroupAttrPoolALlList(GroupAttrPoolMappingVO GroupAttrPoolMappingVO) throws SerialException {
        List<GroupAttrPoolMapping> groupAttrPoolMappings = groupAttrPoolMappingMapper.selectList(null);
        return GroupAttrPoolMappingWrapper.build().entityVOs(groupAttrPoolMappings);
    }
    /**
     * æ ¹æ®é›†å›¢å±žæ€§ç¼–号查询集团属性池映射
     *
     * @param groupAttrPoolMappingVO
     * @return
     */
    @Override
    public List<GroupAttrPoolMappingVO> getByGroupAttrKeyList(GroupAttrPoolMappingVO groupAttrPoolMappingVO) {
        // æŸ¥è¯¢æ¡ä»¶ä¸ºç©º
        if (Func.isEmpty(groupAttrPoolMappingVO.getGroupAttrKeyList())) {
            throw new ServiceException("查询条件,要查询的集团编号列表不能为空!");
        }
        if (Func.isBlank(groupAttrPoolMappingVO.getClassifyId())) {
            throw new ServiceException("查询条件中,分类id不能为空!");
        }
        //集团属性池数据
        List<GroupAttrPoolMapping> groupAttrPoolMappings = groupAttrPoolMappingMapper.selectList(
            Wrappers.<GroupAttrPoolMapping>query()
                .lambda().in(GroupAttrPoolMapping::getGroupAttrKey, groupAttrPoolMappingVO.getGroupAttrKeyList())
        );
        //根据分类id查询出,对应的模板上配置的属性
        List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyClient.listCodeAttributeByClassId(groupAttrPoolMappingVO.getClassifyId());
        List<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS = GroupAttrPoolMappingWrapper.build().entityVOs(groupAttrPoolMappings);
        List<GroupAttrPoolMappingVO> finalGroupAttrPoolMappingVOS;
        //根据集团属性池中配置id元数据属性id找到当前所属分类下的模板属性中对应属性的oid
        finalGroupAttrPoolMappingVOS = groupAttrPoolMappingVOS.stream().map(item -> {
            CodeClassifyTemplateAttrVO codeClassifyTemplateAttrVO = attrVOS.stream().filter(attr -> attr.getId().equals(item.getCodeMetaAttrKey())).findFirst().orElse(new CodeClassifyTemplateAttrVO());
            item.setTargetAttrId(codeClassifyTemplateAttrVO.getOid());
            return item;
        }).collect(Collectors.toList());
        return finalGroupAttrPoolMappingVOS;
    }
    /**
     * ç‚¹å‡»åŒæ­¥æ¨¡åž‹æ—¶è°ƒç”¨è¯¥æ–¹æ³•,
     * å®žçŽ°å°†é›†å›¢èŽ·å–çš„å±žæ€§åŽ»é‡æ”¾åˆ°é›†å›¢å±žæ€§æ± æ˜ å°„è¡¨ä¸­
     * @param dockingPreMetaAttrList
     * @return
     * @throws SerialException
     */
    @Override
    public boolean saveDistinctGroupAttr(List<DockingPreMetaAttr> dockingPreMetaAttrList) throws SerialException {
        // ä¸ºç©ºç›´æŽ¥è¿”回
        if(Func.isEmpty(dockingPreMetaAttrList)){
            return true;
        }
        List<GroupAttrPoolMapping> groupAttrPoolMappings = new ArrayList<>();
        List<String> distinctListEnglishName = new ArrayList<>();
        List<String> distinctListChineseName = new ArrayList<>();
        log.info("开始将集团属性同步到集团属性池中");
        // å°†dockingPreMetaAttrList集合转换为集团属性池属性对象
        dockingPreMetaAttrList.stream().forEach(item->{
            GroupAttrPoolMapping groupAttrPoolMapping = new GroupAttrPoolMapping();
            groupAttrPoolMapping.setGroupAttrKey(item.getEnglishName());
            groupAttrPoolMapping.setGroupAttrName(item.getChineseName());
            groupAttrPoolMappings.add(groupAttrPoolMapping);
            // åŽ»é‡æŸ¥è¯¢æ¡ä»¶é›†å›¢å±žæ€§è‹±æ–‡åç§°
            distinctListEnglishName.add(item.getEnglishName());
            // åŽ»é‡æŸ¥è¯¢æ¡ä»¶é›†å›¢å±žæ€§ä¸­æ–‡åç§°
            distinctListChineseName.add(item.getName());
        });
        // åŽ»é‡æŸ¥è¯¢ç»“æžœ
        List<GroupAttrPoolMapping> dbGroupAttrPoolMappings = groupAttrPoolMappingMapper.selectList(
            Wrappers.<GroupAttrPoolMapping>query()
                .lambda().in(GroupAttrPoolMapping::getGroupAttrKey, distinctListEnglishName)
                .in(GroupAttrPoolMapping::getGroupAttrName, distinctListChineseName)
        );
        List<GroupAttrPoolMapping> finalGroupAttrPoolMappings = null;
        // å°†å·²å­˜åœ¨çš„集团属性从groupAttrPoolMappings中移除
        if(Func.isNotEmpty(dbGroupAttrPoolMappings)){
            finalGroupAttrPoolMappings = groupAttrPoolMappings.stream()
                .filter(mapping -> !dbGroupAttrPoolMappings.stream()
                    .map(GroupAttrPoolMapping::getGroupAttrKey)
                    .collect(Collectors.toList())
                    .contains(mapping.getGroupAttrKey()))
                .collect(Collectors.toList());
        }
        boolean resBoolean = this.saveBatch(finalGroupAttrPoolMappings);
        log.info("集团属性同步到集团属性池,同步完毕");
        return resBoolean;
    }
    /**
     * é›†å›¢å±žæ€§æ˜ å°„界面修改的映射配置保存
     * @param groupAttrPoolMappingVO
     * @return
     * @throws SerialException
     */
    @Override
    public boolean editGroupAttr(List<GroupAttrPoolMappingVO> groupAttrPoolMappingVO) throws SerialException {
        if(Func.isEmpty(groupAttrPoolMappingVO)){
            return true;
        }
        List<GroupAttrPoolMapping> groupAttrPoolMappings = GroupAttrPoolMappingWrapper.build().VOsEntity(groupAttrPoolMappingVO);
        return this.updateBatchById(groupAttrPoolMappings);
    }
    /**
     * åŒæ­¥é›†å›¢å±žæ€§æ± ä¸­çš„æ˜ å°„配置到,所有应用了该集团属性的具体某个分类上去
     * @param groupAttrPoolMappingVOS
     * @return
     * @throws SerialException
     */
    @Override
    public boolean syncGroupAttrMapping(List<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS) throws SerialException {
        return dockingPreAttrMappingService.syncGroupAttrMapping(groupAttrPoolMappingVOS);
    }
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -100,6 +100,12 @@
    @Autowired(required = false)
    private IDockingPreMetaAttrService dockingPreMetaAttrService;
    /**
     * é›†å›¢å±žæ€§æ± æ˜ å°„服务
     */
    @Autowired(required = false)
    private IGroupAttrPoolMappingService groupAttrPoolMappingService;
    @Autowired(required = false)
    private IMdmEngineClient mdmEngineClient;
@@ -673,15 +679,15 @@
            return R.fail("同步集团模型信息开关已关闭");
        }
        VciBaseUtil.alertNotNull(operationType,"集成操作类型");
        try {
        try{
            if(operationType.equals("all")){
                return queryMdmModel();
            }else{
                VciBaseUtil.alertNotNull(classifyId,"集团分类主键");
                return queryClassModel(classifyId);
            }
        } catch (Throwable e) {
            throw  new VciBaseException(e.getMessage());
        }catch(Throwable e) {
            throw new VciBaseException(e.getMessage());
        }
    }
@@ -750,8 +756,7 @@
     * @param jclassObject
     * @throws Throwable
     */
    private void getVilewMode(DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list)
        throws Throwable {
    private void getVilewMode(DockingClassifyVO jclassObject, List<DockingClassifyViewVO> list) throws Throwable {
        String nodeLinkName = jclassObject.getNodeLinkName();
        try {
            String jclassId = com.alibaba.cloud.commons.lang.StringUtils.isBlank(jclassObject.getId())?"":jclassObject.getId();
@@ -787,8 +792,10 @@
                }
                // èŽ·å–æ¨¡åž‹è§†å›¾ä¸‹çš„å±žæ€§é›†
                // String oid = jviewModelObject.getOid();
                List<DockingPreMetaAttr>allDockingPreMetaAttrList=new ArrayList<>();
                List<DockingPreMetaAttr> allDockingPreMetaAttrList = new ArrayList<>();
                getMetaAttrObject(metaList, jclassId, jviewModelObject, "root",allDockingPreMetaAttrList);
                //保存集团属性到集团属性池映射表中
                groupAttrPoolMappingService.saveDistinctGroupAttr(allDockingPreMetaAttrList);
                //保存模型视图属性
                dockingPreMetaAttrService.saveOrUpdateBatch(allDockingPreMetaAttrList);
                //保存模型视图
@@ -860,9 +867,7 @@
                }else{
                    allDockingPreMetaAttrList.add(dockingPreMetaAttr);
                }
            }
        } catch (Throwable e) {
            e.printStackTrace();
            log.error("组织模型视图"+ jviewModelObject.getViewName()
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/DockingPreAttrMappingWrapper.java
@@ -60,7 +60,7 @@
        return dockingPreAttrMappingList;
    }
    public DockingPreAttrMapping voentity( DockingPreAttrMappingVO vo) {
    public DockingPreAttrMapping voentity(DockingPreAttrMappingVO vo) {
        DockingPreAttrMapping dockingPreAttrMapping = Objects.requireNonNull(BeanUtil.copy(vo, DockingPreAttrMapping.class));
        return dockingPreAttrMapping;
    }
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/DockingPreMetaAttrWrapper.java
@@ -29,8 +29,6 @@
        return dockingPreMetaAttrVO;
    }
    /***
     * æ•°ç»„对象转换
     * @param entitys
@@ -72,4 +70,5 @@
        DockingPreMetaAttr entity = Objects.requireNonNull(BeanUtil.copy(vo, DockingPreMetaAttr.class));
        return entity;
    }
}
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/DockingPreViewWrapper.java
@@ -17,7 +17,7 @@
 * @author xiejun
 * @since 2023-05-23
 */
public class DockingPreViewWrapper  extends BaseEntityWrapper<DockingPreViewModel, DockingPreViewModelVO> {
public class DockingPreViewWrapper extends BaseEntityWrapper<DockingPreViewModel, DockingPreViewModelVO> {
    public static DockingPreViewWrapper build() {
        return new DockingPreViewWrapper();
    }
Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/wrapper/GroupAttrPoolMappingWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.vci.ubcs.code.applyjtcodeservice.wrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreMetaAttr;
import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreViewModel;
import com.vci.ubcs.code.applyjtcodeservice.entity.GroupAttrPoolMapping;
import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreMetaAttrVO;
import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreViewModelVO;
import com.vci.ubcs.code.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
/**
 * @author ludc
 * @date 2024/4/15 20:47
 */
public class GroupAttrPoolMappingWrapper extends BaseEntityWrapper<GroupAttrPoolMapping, GroupAttrPoolMappingVO> {
    public static GroupAttrPoolMappingWrapper build() {
        return new GroupAttrPoolMappingWrapper();
    }
    @Override
    public GroupAttrPoolMappingVO entityVO(GroupAttrPoolMapping entity) {
        GroupAttrPoolMappingVO groupAttrPoolMappingVO = Objects.requireNonNull(BeanUtil.copy(entity, GroupAttrPoolMappingVO.class));
        return groupAttrPoolMappingVO;
    }
    /***
     * æ•°ç»„对象转换
     * @param entitys
     * @return
     */
    public List<GroupAttrPoolMappingVO> entityVOs(Collection<GroupAttrPoolMapping> entitys) {
        if(CollectionUtils.isEmpty(entitys)) {return new ArrayList<>();}
        List<GroupAttrPoolMappingVO> vos=new ArrayList<>();
        if(!CollectionUtils.isEmpty(entitys)) {
            entitys.stream().forEach(vo -> {
                vos.add(entityVO(vo));
            });
        }
        return vos;
    }
    private GroupAttrPoolMapping VOEntity(GroupAttrPoolMappingVO groupAttrPoolMappingVO){
        GroupAttrPoolMapping groupAttrPoolMapping = Objects.requireNonNull(BeanUtil.copy(groupAttrPoolMappingVO, GroupAttrPoolMapping.class));
        return groupAttrPoolMapping;
    }
    /***
     * æ•°ç»„对象转换
     * @param groupAttrPoolMappingVOS
     * @return
     */
    public List<GroupAttrPoolMapping> VOsEntity(Collection<GroupAttrPoolMappingVO> groupAttrPoolMappingVOS) {
        if(CollectionUtils.isEmpty(groupAttrPoolMappingVOS)) {return new ArrayList<>();}
        List<GroupAttrPoolMapping> vos=new ArrayList<>();
        if(!CollectionUtils.isEmpty(groupAttrPoolMappingVOS)) {
            groupAttrPoolMappingVOS.stream().forEach(vo -> {
                vos.add(VOEntity(vo));
            });
        }
        return vos;
    }
}