lihang
2023-07-05 29d6be062a46dc30be08a57b385e89919827a30b
业务类型相关修正,修改了参照和枚举的保存
已修改8个文件
95 ■■■■■ 文件已修改
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/AttributeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
@@ -36,7 +36,6 @@
import com.vci.ubcs.starter.web.util.VciDateUtil;
import com.vci.ubcs.system.entity.DictBiz;
import com.vci.ubcs.system.feign.IDictBizClient;
import com.vci.ubcs.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
@@ -714,7 +713,7 @@
        //这个业务类型下的所有属性
        R<BtmTypeVO> btmTypeVOR = btmTypeClient.getAllAttributeByBtmId(codeClassifyTemplateDO.getBtmTypeId());
        if(btmTypeVOR.getCode() != 200){
            throw new ServiceException("业务类型feign调用失败!");
            throw new VciBaseException("业务类型feign调用失败!");
        }
        //这个模板下已经有的属性
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java
@@ -44,7 +44,11 @@
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "新增或修改", notes = "业务类型链接类型传输对象")
    public R submitBtmType(@RequestBody BtmAndLinkTypeDdlDTO ddlDTO) {
        return ddlService.submit(ddlDTO);
        try {
            return ddlService.submit(ddlDTO);
        } catch (Throwable e) {
            return R.fail(e.getMessage());
        }
    }
    /**
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
@@ -3,12 +3,16 @@
import com.vci.ubcs.ddl.bo.DdlFieldMappingAttrBO;
import com.vci.ubcs.ddl.mapper.DllDmMapper;
import com.vci.ubcs.ddl.mapper.DllMapper;
import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Locale;
/**
 * Description: 应用于达梦数据,生成创建表操作sql的处理器
@@ -17,7 +21,7 @@
 * @date 2023/4/24
 */
@Component
public class DllDmMapperProcessor extends DllMapperProcessor{
public class DllDmMapperProcessor extends DllMapperProcessor {
    private static final DllMapper MAPPER = VciSpringUtil.getBean(DllDmMapper.class);
@@ -25,24 +29,24 @@
    static {
        // 需要重新映射的字段类型在这里写
        FIELD_MAP.put(VciFieldTypeEnum.VTDouble,new DdlFieldMappingAttrBO("DOUBLE",26,8,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTInteger,new DdlFieldMappingAttrBO("NUMBER",22,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTLong,new DdlFieldMappingAttrBO("BIGINT",22,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTBoolean,new DdlFieldMappingAttrBO("VARCHAR",5,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDate,new DdlFieldMappingAttrBO("DATE",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDateTime,new DdlFieldMappingAttrBO("TIMESTAMP",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTTime,new DdlFieldMappingAttrBO("TIME",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTFilePath,new DdlFieldMappingAttrBO("TEXT",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTClob,new DdlFieldMappingAttrBO("CLOB",100,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTString,new DdlFieldMappingAttrBO("VARCHAR",255,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDouble, new DdlFieldMappingAttrBO("DOUBLE", 26, 8, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTInteger, new DdlFieldMappingAttrBO("INTEGER", 10, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTLong, new DdlFieldMappingAttrBO("NUMBER", 38, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTBoolean, new DdlFieldMappingAttrBO("VARCHAR", 5, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDate, new DdlFieldMappingAttrBO("DATE", null, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDateTime, new DdlFieldMappingAttrBO("TIMESTAMP", null, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTTime, new DdlFieldMappingAttrBO("TIME", null, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTFilePath, new DdlFieldMappingAttrBO("TEXT", null, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTClob, new DdlFieldMappingAttrBO("CLOB", 100, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTString, new DdlFieldMappingAttrBO("VARCHAR", 255, null, true, null));
    }
    public DllDmMapperProcessor() {
        super(MAPPER);
        System.out.println("-----------------");
        if (MAPPER != null){
        if (MAPPER != null) {
            System.out.println("[success]::加载达梦数据库DLL操作服务成功");
        }else {
        } else {
            System.out.println("[fail]::加载达梦数据库DLL操作服务失败");
        }
    }
@@ -54,7 +58,29 @@
    @Override
    protected DdlFieldMappingAttrBO getMappingBO(VciFieldTypeEnum fieldTypeEnum) {
        return getMappingBOInMap(fieldTypeEnum,FIELD_MAP);
        return getMappingBOInMap(fieldTypeEnum, FIELD_MAP);
    }
    @Override
    public String getColumnTypeSql(VciFieldTypeEnum fieldType, BtmTypeAttributeVO attributeVO) {
        DdlFieldMappingAttrBO mappingBO = getMappingBO(fieldType);
        if (fieldType.equals(VciFieldTypeEnum.VTDouble)) {
            mappingBO.setDataPrecision(attributeVO.getPrecisionLength());
        }
        //先只针对数字类型的进行处理
        if (fieldType.equals(VciFieldTypeEnum.VTInteger) ){
            mappingBO.setDataLength(null);
        } else if (fieldType.equals(VciFieldTypeEnum.VTDouble) || fieldType.equals(VciFieldTypeEnum.VTLong)) {
            if (attributeVO.getAttributeLength() <= mappingBO.getDataLength()) {
                mappingBO.setDataLength(attributeVO.getAttributeLength());
            }
        }else {
            mappingBO.setDataLength(attributeVO.getAttributeLength());
        }
        mappingBO.setNullable(attributeVO.isNullableFlag());
        mappingBO.setDefaultValue(attributeVO.getDefaultValue());
        return mappingBO.toString() + (StringUtil.equals(attributeVO.getId().toLowerCase(Locale.ROOT), "OID".toLowerCase(Locale.ROOT)) ? StringPool.SPACE + "primary key" + StringPool.SPACE : "");
    }
    /**
@@ -65,11 +91,11 @@
     */
    @Override
    public List<VciFieldTypeEnum> listFieldByColumnStr(String columnStr) {
        return listFieldInMapByColumnStr(columnStr,FIELD_MAP);
        return listFieldInMapByColumnStr(columnStr, FIELD_MAP);
    }
    @Override
    public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) {
        return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP);
        return getFieldTypeBeColumnStrInMap(columnStr, length, FIELD_MAP);
    }
}
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java
@@ -195,7 +195,7 @@
     * @param ddlDTO 业务类型传输对象
     * @return 执行结果
     */
    R submit(BtmAndLinkTypeDdlDTO ddlDTO);
    R submit(BtmAndLinkTypeDdlDTO ddlDTO) throws Throwable;
    /**
     * 按表名获取表信息
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -83,25 +83,25 @@
    private final Map<String, LinkTypeVO> idLinkMap = new ConcurrentHashMap<>();
    private void putBtm(@NotNull BtmTypeVO... voList) throws ServiceException {
    private void putBtm(@NotNull BtmTypeVO... voList) throws Throwable {
        String collect = Arrays.stream(voList).map(BtmTypeVO::getId).filter(idBtmMap::containsKey).collect(Collectors.joining(","));
        if (StringUtils.isBlank(collect)) {
            Arrays.stream(voList).forEach(vo -> {
                idBtmMap.put(vo.getId(), vo);
            });
        } else {
            throw new ServiceException("业务类型:[" + collect + "]正在被其他用户操作");
            throw new Throwable("业务类型:[" + collect + "]正在被其他用户操作");
        }
    }
    private void putLink(@NotNull LinkTypeVO... voList) throws ServiceException {
    private void putLink(@NotNull LinkTypeVO... voList) throws Throwable {
        String collect = Arrays.stream(voList).map(LinkTypeVO::getId).filter(idLinkMap::containsKey).collect(Collectors.joining(","));
        if (StringUtils.isBlank(collect)) {
            Arrays.stream(voList).forEach(vo -> {
                idLinkMap.put(vo.getId(), vo);
            });
        } else {
            throw new ServiceException("链接类型:[" + collect + "]正在被其他用户操作");
            throw new Throwable("链接类型:[" + collect + "]正在被其他用户操作");
        }
    }
@@ -978,7 +978,7 @@
     * @return 执行结果
     */
    @Override
    public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) {
    public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) throws Throwable {
        try {
            List<ModifyAttributeInfo> changedList = new ArrayList<>();
            if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
@@ -996,7 +996,7 @@
            R<List<ModifyAttributeInfo>> result = R.success("数据库操作成功");
            result.setData(changedList);
            return result;
        } catch (VciBaseException e) {
        } catch (Exception e) {
            try {
                // 建表失败有异常,捕获后返回,并释放线程中的内容
                if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
@@ -1009,8 +1009,6 @@
            }catch (ServiceException e2){
                throw new RuntimeException(e2.getMessage());
            }
        } catch (ServiceException e) {
            throw new RuntimeException(e.getMessage());
        }
    }
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/BtmTypeClient.java
@@ -118,7 +118,7 @@
        BeanMap.create(queryObj).putAll(conditionMap);
        List<BtmType> list = btmTypeService.list(Condition.getQueryWrapper(queryObj).lambda().eq(BtmType::getBizDomain, domainValue).orderByAsc(BtmType::getId));
        if (CollectionUtils.isEmpty(list)){
            return R.data(null);
            return R.data(new ArrayList<>());
        }
        return R.data(BtmTypeWrapper.build().listEntityVO(list));
    }
@@ -139,9 +139,6 @@
                )
            ).orElseGet(ArrayList::new)
        );
        if (CollectionUtils.isEmpty(voList)){
            return R.data(null);
        }
        return R.data(voList);
    }
@@ -161,9 +158,6 @@
                )
            ).orElseGet(ArrayList::new)
        );
        if (CollectionUtils.isEmpty(voList)){
            return R.data(null);
        }
        return R.data(voList);
    }
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/AttributeServiceImpl.java
@@ -134,7 +134,7 @@
        if (CollectionUtils.isEmpty(existAttributeVOList)) {
            throw new VciBaseException("使用的属性都在系统中不存在,请先查证");
        } else {
            Set<String> existAttributeOidSet = (existAttributeVOList.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase().trim(), t -> t))).keySet();
            Set<String> existAttributeOidSet = (existAttributeVOList.stream().collect(Collectors.toMap(s -> s.getId().trim(), t -> t))).keySet();
            keyCollections.stream().forEach(s -> {
                if (!existAttributeOidSet.contains(s)) {
                    throw new VciBaseException("使用的属性{0}在系统中不存在,请先查证", new Object[]{s});
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java
@@ -60,7 +60,7 @@
            attributesDTOList.stream().forEachOrdered(s -> {
                attributeService.checkAttribute(s);
                btmTypeAttributeDOList.add(BtmTypeAttributeWrapper.build().copyBtmTypeAttributeDTO2Entity(s,btmTypeOid, creator, now));
                attributeIdList.add(s.getId().toLowerCase().trim());
                attributeIdList.add(s.getId().trim());
            });
            //检查属性是否都存在
            boolean exists = attributeService.checkAttributeExists(attributeIdList);