属性池、状态池、枚举导出列名调整,可通过变量控制导出的列名是否和导入模板的一致;版本管理查询、查看应用范围接口上传。
已修改12个文件
已添加1个文件
352 ■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsAttributePO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsRevisionRuleController.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/VciOsStatusController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebEnumController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsEnumServiceI.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsRevisionRuleServiceI.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsStatusServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsRevisionRuleServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsAttributePO.java
@@ -52,7 +52,7 @@
    /**
     * å±žæ€§ç±»åž‹
     */
    @ExcelColumn(value="属性类型(请参照新增界面的属性类型填写)",nullable = false)
    @ExcelColumn(value="属性类型(参照新增界面的属性类型如VTString)",nullable = false)
    private String attributeDataType;
    /**
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java
@@ -164,7 +164,7 @@
    @VciBusinessLog(operateName = "导出属性")
    public void exportAttributes(String exportFileName,String attrNames, HttpServletResponse response){
        try {
            String excelPath = attributeService.exportAttributes(exportFileName,attrNames);
            String excelPath = attributeService.exportAttributes(exportFileName,attrNames,false);
            ControllerUtil.writeFileToResponse(response,excelPath);
        } catch (Exception e) {
            String msg = "导出枚举时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsRevisionRuleController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
package com.vci.web.controller;
import com.vci.dto.OsRevisionRuleDTO;
import com.vci.pagemodel.OsRevisionRuleVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsRevisionRuleServiceI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * ç‰ˆæœ¬è§„则控制器
 * @author ludc
 * @date 2024/7/30 16:02
 */
@RequestMapping("/revisionRuleController")
@RestController
public class OsRevisionRuleController {
    @Autowired
    private OsRevisionRuleServiceI revisionRuleServiceI;
    /**
     * æ—¥å¿—
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * ç‰ˆæœ¬è§„则列表(全查询)
     * @return
     */
    @GetMapping("/getVersionRuleAllList")
    @VciUnCheckRight
    public BaseResult getVersionRuleAllList(){
        try {
            return BaseResult.dataList(revisionRuleServiceI.selectAllRevision());
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "版本规则管理列表查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * æŸ¥è¯¢åº”用范围
     * @param vrName ç‰ˆæœ¬è§„则英文名称
     * @return
     */
    @GetMapping("/getUsedVersionRuleList")
    @VciUnCheckRight
    public BaseResult getUsedVersionRuleList(String vrName){
        try {
            return BaseResult.dataList(revisionRuleServiceI.getUsedVersionRuleList(vrName));
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "版本规则应用范围查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * åˆ›å»ºç‰ˆæœ¬è§„则
     * @param osRevisionRuleDTO ç‰ˆæœ¬è§„则数据传输对象
     * @return
     */
    @PostMapping("/addVersionRule")
    @VciUnCheckRight
    public BaseResult addVersionRule(@RequestBody OsRevisionRuleDTO osRevisionRuleDTO){
        try {
            return revisionRuleServiceI.addVersionRule(osRevisionRuleDTO) ? BaseResult.success("版本规则添加成功!"):BaseResult.fail("版本规则添加失败!");
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "增加属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * ä¿®æ”¹ç‰ˆæœ¬è§„则
     * @param osRevisionRuleDTO ç‰ˆæœ¬è§„则数据传输对象
     * @return
     */
    @PostMapping("/updateVersionRule")
    @VciUnCheckRight
    public BaseResult updateVersionRule(@RequestBody OsRevisionRuleDTO osRevisionRuleDTO){
        try {
            return revisionRuleServiceI.updateVersionRule(osRevisionRuleDTO) ? BaseResult.success("版本规则添加成功!"):BaseResult.fail("版本规则添加失败!");
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "增加属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/VciOsStatusController.java
@@ -165,7 +165,7 @@
    @VciBusinessLog(operateName = "导出状态")
    public void exportStatus(String exportFileName,String statusOids, HttpServletResponse response){
        try {
            String excelPath = statusService.exportStatus(exportFileName,statusOids);
            String excelPath = statusService.exportStatus(exportFileName,statusOids,true);
            ControllerUtil.writeFileToResponse(response,excelPath);
        } catch (Exception e) {
            String msg = "导出状态时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebEnumController.java
@@ -216,7 +216,7 @@
    @VciBusinessLog(operateName = "导出枚举类型")
    public void exportEnumTypes(String exportFileName,String enumNames, HttpServletResponse response){
        try {
            String excelPath = enumService.exportEnumTypes(exportFileName,enumNames);
            String excelPath = enumService.exportEnumTypes(exportFileName,enumNames,false);
            ControllerUtil.writeFileToResponse(response,excelPath);
        } catch (Exception e) {
            String msg = "导出枚举时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java
@@ -150,9 +150,10 @@
     * å¯¼å‡ºé€‰ä¸­çš„属性
     * @param exportFileName å¯¼å‡ºçš„æ–‡ä»¶å
     * @param attrNames éœ€è¦å¯¼å‡ºçš„属性名称
     * @param flag æŽ§åˆ¶å¯¼å‡ºçš„列名是否和导入模板一致
     * @return
     */
    String exportAttributes(String exportFileName,String attrNames) throws PLException;
    String exportAttributes(String exportFileName,String attrNames,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException;
    /**
     * ä¸‹è½½å±žæ€§å¯¼å…¥æ¨¡æ¿
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsEnumServiceI.java
@@ -110,9 +110,10 @@
     * å¯¼å‡ºæžšä¸¾ç±»åž‹
     * @param exportFileName å¯¼å‡ºçš„æ–‡ä»¶å
     * @param enumNames éœ€è¦å¯¼å‡ºçš„æžšä¸¾åç§°
     * @param flag æŽ§åˆ¶å¯¼å‡ºçš„列名是否和导入模板一致
     * @return
     */
    String exportEnumTypes(String exportFileName,String enumNames) throws PLException;
    String exportEnumTypes(String exportFileName,String enumNames,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException;
    /**
     * å¯¼å…¥æžšä¸¾
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsRevisionRuleServiceI.java
@@ -1,6 +1,8 @@
package com.vci.web.service;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.dto.OsRevisionRuleDTO;
import com.vci.pagemodel.OsRevisionRuleVO;
import java.util.Collection;
@@ -27,6 +29,20 @@
    Map<String,OsRevisionRuleVO> selectAllRevisionMap();
    /**
     * åˆ›å»ºç‰ˆæœ¬è§„则
     * @param osRevisionRuleDTO
     * @return
     */
    boolean addVersionRule(OsRevisionRuleDTO osRevisionRuleDTO) throws PLException;
    /**
     * ä¿®æ”¹ç‰ˆæœ¬è§„则
     * @param osRevisionRuleDTO
     * @return
     */
    boolean updateVersionRule(OsRevisionRuleDTO osRevisionRuleDTO);
    /**
     * æ•°æ®å¯¹è±¡è½¬æ¢ä¸ºæ˜¾ç¤ºå¯¹è±¡
     * @param versionRules æ•°æ®å¯¹è±¡
     * @return æ˜¾ç¤ºå¯¹è±¡
@@ -46,4 +62,12 @@
     * @return æ˜¾ç¤ºå¯¹è±¡
     */
    OsRevisionRuleVO getRevisionRuleById(String id);
    /**
     * æŸ¥è¯¢åº”用范围
     * @param vrName ç‰ˆæœ¬è§„则英文名称
     * @return
     */
    List<Map<String, String>> getUsedVersionRuleList(String vrName) throws PLException;
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsStatusServiceI.java
@@ -118,7 +118,7 @@
     * @param statusOids éœ€è¦å¯¼å‡ºçš„属性名称
     * @return
     */
    String exportStatus(String exportFileName,String statusOids) throws PLException;
    String exportStatus(String exportFileName,String statusOids,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException;
    /**
     * ä¸‹è½½çŠ¶æ€å¯¼å…¥æ¨¡æ¿
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
@@ -7,6 +7,7 @@
import com.vci.client.mw.ClientSessionUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.dto.OsAttributeDTO;
import com.vci.dto.OsEnumDTO;
import com.vci.dto.OsEnumItemDTO;
@@ -866,22 +867,18 @@
     * å¯¼å‡ºé€‰ä¸­çš„属性
     * @param exportFileName å¯¼å‡ºçš„æ–‡ä»¶å
     * @param attrNames éœ€è¦å¯¼å‡ºçš„属性名称
     * @param flag æŽ§åˆ¶å¯¼å‡ºçš„列名是否和导入模板一致
     * @return
     */
    @Override
    public String exportAttributes(String exportFileName, String attrNames) throws PLException {
    public String exportAttributes(String exportFileName, String attrNames,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException {
        if(Func.isBlank(attrNames)){
            throw new PLException("500",new String[]{"请勾选要导出的属性!"});
        }
        //界面没传名称,使用默认导出名称
        exportFileName = Func.isBlank(exportFileName) ?  "属性池中属性导出_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
        //设置列名
        List<String> columns = new ArrayList<>(
                Arrays.asList("属性名", "标签", "描述",
                        "属性类型", "允许为空", "默认值", "使用的枚举英文名称(枚举名)",
                        "使用的枚举中文名称(标签)", "参照的业务类型编号", "参照的业务类型名称",
                        "参照的链接类型名称","版本版次","属性长度", "小数精度位数","小数刻度位数","取值范围","创建时间")
        );
        List<String> columns = this.getCloumns(flag);
        //写excel
        String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName +  ".xls";
@@ -913,21 +910,46 @@
                excelDataList.add(new WriteExcelData(i+1,4, osAttributeVO.isNullableFlag()));
                excelDataList.add(new WriteExcelData(i+1,5, osAttributeVO.getDefaultValue()));
                excelDataList.add(new WriteExcelData(i+1,6, osAttributeVO.getEnumId()));
                excelDataList.add(new WriteExcelData(i+1,7, osAttributeVO.getEnumName()));
                excelDataList.add(new WriteExcelData(i+1,8, osAttributeVO.getBtmTypeId()));
                excelDataList.add(new WriteExcelData(i+1,9, osAttributeVO.getBtmTypeName()));
                excelDataList.add(new WriteExcelData(i+1,10, osAttributeVO.getAttrLength()));
                excelDataList.add(new WriteExcelData(i+1,11, osAttributeVO.getLinkTypeName()));
                excelDataList.add(new WriteExcelData(i+1,12, osAttributeVO.getVersion()));
                excelDataList.add(new WriteExcelData(i+1,13, osAttributeVO.getPrecisionLength()));
                excelDataList.add(new WriteExcelData(i+1,14, osAttributeVO.getScaleLength()));
                excelDataList.add(new WriteExcelData(i+1,15, osAttributeVO.getRange()));
                excelDataList.add(new WriteExcelData(i+1,16, osAttributeVO.getCreateTime()));
                //excelDataList.add(new WriteExcelData(i+1,7, osAttributeVO.getEnumName()));
                excelDataList.add(new WriteExcelData(i+1,7, osAttributeVO.getBtmTypeId()));
                //excelDataList.add(new WriteExcelData(i+1,9, osAttributeVO.getBtmTypeName()));
                excelDataList.add(new WriteExcelData(i+1,8, osAttributeVO.getAttrLength()));
                excelDataList.add(new WriteExcelData(i+1,9, osAttributeVO.getLinkTypeName()));
                excelDataList.add(new WriteExcelData(i+1,10, osAttributeVO.getVersion()));
                excelDataList.add(new WriteExcelData(i+1,11, osAttributeVO.getPrecisionLength()));
                excelDataList.add(new WriteExcelData(i+1,12, osAttributeVO.getScaleLength()));
                excelDataList.add(new WriteExcelData(i+1,13, osAttributeVO.getRange()));
                if(!flag){
                    excelDataList.add(new WriteExcelData(i+1,14, Func.format(osAttributeVO.getCreateTime(),"yyyyå¹´MM月dd日 hh:mm:ss")));
                }
            }
        }
        WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
        ExcelUtil.writeDataToFile(excelPath, excelOption);
        return excelPath;
    }
    /**
     * èŽ·å–å¯¼å‡ºæˆ–å¯¼å…¥æ¨¡æ¿çš„åˆ—å
     * @param flag æ˜¯å¦èŽ·å–å¯¼å…¥æ¨¡æ¿åˆ—å
     * @return
     */
    private List<String> getCloumns(boolean flag){
        if(flag){
            return new ArrayList<>(
                    Arrays.asList("属性名", "标签", "描述",
                            "属性类型(参照新增界面的属性类型如VTString)", "允许为空(是/否)", "默认值", "使用的枚举英文名称"
                            , "参照的业务类型编号","参照的链接类型编号","版本版次","属性长度", "小数精度位数","小数刻度位数"
                            ,"取值范围"
                    )
            );
        }
        return new ArrayList<>(
                Arrays.asList("属性名", "标签", "描述",
                        "属性类型", "允许为空", "默认值", "使用的枚举英文名称(枚举名)",
                        "参照的业务类型编号", "参照的链接类型编号","版本版次","属性长度",
                        "小数精度位数","小数刻度位数","取值范围","创建时间")
        );
    }
    /**
@@ -941,11 +963,7 @@
        //界面没传名称,使用默认导出名称
        exportFileName = Func.isBlank(exportFileName) ?  "属性池导入模板_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
        //设置列名
        List<String> columns = new ArrayList<>(
                Arrays.asList("属性名", "标签", "描述",
                        "属性类型(请参照新增界面的属性类型填写)", "允许为空(是/否)", "默认值", "使用的枚举英文名称", "参照的业务类型编号",
                        "参照的链接类型编号","版本版次","属性长度", "小数精度位数","小数刻度位数","取值范围")
        );
        List<String> columns = this.getCloumns(true);
        //设置必填列
        ColumnNameisRed.clear();
        ColumnNameisRed.add(0);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
@@ -385,14 +385,14 @@
     * @return
     */
    @Override
    public String exportEnumTypes(String exportFileName,String enumNames) throws PLException {
    public String exportEnumTypes(String exportFileName,String enumNames,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException {
        if(Func.isBlank(enumNames)){
            throw new PLException("500",new String[]{"请勾选要导出的枚举!"});
        }
        //界面没传名称,使用默认导出名称
        exportFileName = Func.isBlank(exportFileName) ?  "枚举类型导出_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
        //设置列名
        List<String> columns = new ArrayList<>(Arrays.asList("枚举名称", "标签", "返回类型", "长度","创建时间", "枚举项名称", "枚举值", "描述"));
        List<String> columns = this.getCloumns(flag);
        //写excel
        String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName +  ".xls";
@@ -418,8 +418,22 @@
            if(Func.isEmpty(osEnumVO) && Func.isBlank(osEnumVO.getOid())){
                throw new PLException("500",new String[]{"未查询到枚举名为【" + enumNameList.get(i) + "】的枚举,请刷新后重新导出!"});
            }
            //枚举项不为空时需要考虑合并行问题
            //按照导出列名控制变量和枚举项不为空时决定是否需要考虑合并行问题
            List<OsEnumItemVO> enumVOItems = osEnumVO.getItems();
            //判断是按照什么列名导出
            if(flag){
                for (int j = 0; j < enumVOItems.size(); j++) {
                    OsEnumItemVO osEnumItemVO = enumVOItems.get(j);
                    excelDataList.add(new WriteExcelData(i+j+1,0, osEnumVO.getId()));
                    excelDataList.add(new WriteExcelData(i+j+1,1, osEnumVO.getName()));
                    excelDataList.add(new WriteExcelData(i+j+1,2, osEnumVO.getEnumValueDataType()));
                    excelDataList.add(new WriteExcelData(i+j+1,3, osEnumVO.getLength()));
                    excelDataList.add(new WriteExcelData(i+j+1,4,osEnumItemVO.getName()));
                    excelDataList.add(new WriteExcelData(i+j+1,5, osEnumItemVO.getValue()));
                    excelDataList.add(new WriteExcelData(i+j+1,6, osEnumItemVO.getDescription()));
                }
            }else{
            //枚举项不为空时需要进行合并行处理
            if(Func.isNotEmpty(enumVOItems) || enumVOItems.size() > 1){
                //excelDataList.add(new WriteExcelData(startRow,(enumVOItems.size()+startRow)-1,true,true,0, osEnumVO.getOid()));
@@ -452,6 +466,7 @@
            //记录下上一组数据结束时的行号,方便用做合并行的起始行
            startRow += 1;
        }
        }
        WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
        ExcelUtil.writeDataToFile(excelPath, excelOption);
        return excelPath;
@@ -467,7 +482,7 @@
        //界面没传名称,使用默认导出名称
        exportFileName = Func.isBlank(exportFileName) ?  "枚举导入模板_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
        //设置列名
        List<String> columns = new ArrayList<>(Arrays.asList("枚举名称", "标签", "返回类型", "长度", "枚举项名称(当前枚举下有枚举项时必填)", "枚举值(当前枚举下有枚举项时必填)", "描述","*注意*:第二行开始的数据为示例数据,导入前请将其删除,当导入的枚举下具备多个枚举项时,应按照示例enum2的写法"));
        List<String> columns = this.getCloumns(true);
        //写excel
        String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName +  ".xls";
        //设置必填列
@@ -514,6 +529,27 @@
        WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
        ExcelUtil.writeDataToFile(excelPath, excelOption);
        return excelPath;
    }
    /**
     * èŽ·å–å¯¼å‡ºæˆ–å¯¼å…¥æ¨¡æ¿çš„åˆ—å
     * @param flag æ˜¯å¦èŽ·å–å¯¼å…¥æ¨¡æ¿åˆ—å
     * @return
     */
    private List<String> getCloumns(boolean flag){
        if(flag){
            return new ArrayList<>(
                Arrays.asList("枚举名称", "标签", "返回类型", "长度", "枚举项名称(当前枚举下有枚举项时必填)",
                        "枚举值(当前枚举下有枚举项时必填)", "描述","*注意*:第二行开始的数据为示例数据,导入前请将其删除," +
                                "当导入的枚举下具备多个枚举项时,应按照示例enumb的写法"
                )
            );
        }
        return new ArrayList<>(
            Arrays.asList("枚举名称", "标签", "返回类型", "长度",
                "创建时间", "枚举项名称", "枚举值", "描述"
            )
        );
    }
    /**
@@ -619,7 +655,7 @@
     * @return
     */
    private List<OsEnumVO> getExportEnumTempExample(){
        String testJosn = "[{\"enumValueDataType\":\"String\",\"id\":\"enum1\",\"items\":[{\"description\":\"enumitem1.1\",\"name\":\"enumitem1.1\",\"value\":\"1\"},{\"description\":\"enumitem1.2\",\"name\":\"enumitem1.2\",\"value\":\"2\"}],\"length\":2,\"name\":\"enum1\"},{\"enumValueDataType\":\"String\",\"id\":\"enum2\",\"items\":[{\"description\":\"enumitem2.1\",\"name\":\"enumitem2.1\",\"value\":\"1\"},{\"description\":\"enumitem2.2\",\"name\":\"enumitem2.2\",\"value\":\"2\"},{\"description\":\"enumitem2.3\",\"name\":\"enumitem2.3\",\"value\":\"3\"}],\"length\":6,\"name\":\"enum2\"}]";
        String testJosn = "[{\"enumValueDataType\":\"String\",\"id\":\"enuma\",\"items\":[{\"description\":\"enumitem1.1\",\"name\":\"enumitem1.1\",\"value\":\"1\"},{\"description\":\"enumitem1.2\",\"name\":\"enumitem1.2\",\"value\":\"2\"}],\"length\":2,\"name\":\"enuma\"},{\"enumValueDataType\":\"String\",\"id\":\"enumb\",\"items\":[{\"description\":\"enumitem2.1\",\"name\":\"enumitem2.1\",\"value\":\"1\"},{\"description\":\"enumitem2.2\",\"name\":\"enumitem2.2\",\"value\":\"2\"},{\"description\":\"enumitem2.3\",\"name\":\"enumitem2.3\",\"value\":\"3\"}],\"length\":6,\"name\":\"enumb\"}]";
        List<OsEnumVO> OsEnumVOs = JSON.parseArray(testJosn,OsEnumVO.class);
        return OsEnumVOs;
    }
@@ -952,7 +988,12 @@
            for(int k = 0; k < emChildren.length; k++){
                EnumItem emChild = emChildren[k];
                String value = emChild.value;
                valueList.add(value);
                String symbol = "";
                //当为Integer时需要将枚举项值拼接上=
                if("Integer".equals(enumType)){
                    symbol = "=";
                }
                valueList.add(symbol + value);
            }
            Map<String, List<String>> enumMap = new HashMap<>();
            enumMap.put(emItem.name, valueList);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsRevisionRuleServiceImpl.java
@@ -1,11 +1,14 @@
package com.vci.web.service.impl;
import com.vci.client.mw.ClientSessionUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.dto.OsRevisionRuleDTO;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.pagemodel.OsRevisionRuleVO;
import com.vci.web.service.OsRevisionRuleServiceI;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -13,6 +16,7 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.swing.*;
import java.util.*;
import java.util.stream.Collectors;
@@ -36,6 +40,7 @@
    @Autowired(required = false)
    @Lazy
    private OsRevisionRuleServiceI self;
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„版本规则
     *
@@ -59,6 +64,49 @@
    @VciUnLog
    public Map<String, OsRevisionRuleVO> selectAllRevisionMap() {
        return Optional.ofNullable(self.selectAllRevision()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(),t->t,(o1,o2)->o1));
    }
    /**
     * åˆ›å»ºç‰ˆæœ¬è§„则
     * @param osRevisionRuleDTO
     * @return
     */
    @Override
    public boolean addVersionRule(OsRevisionRuleDTO osRevisionRuleDTO) throws PLException {
        VersionRule vr = platformClientUtil.getVersionService().getVersionRule(osRevisionRuleDTO.getName());
        //name不为空
        if(Func.isNotEmpty(vr) && !"".equals(vr.name)){
            throw new PLException("500",new String[]{"名称重复请更换名称!"});
        }
        platformClientUtil.getVersionService().addVersionRule(this.dto2VersionRule(osRevisionRuleDTO));
        return false;
    }
    @Override
    public boolean updateVersionRule(OsRevisionRuleDTO osRevisionRuleDTO) {
        return false;
    }
    /**
     * dto对象转换为VersionRule对象
     * @return
     */
    private VersionRule dto2VersionRule(OsRevisionRuleDTO osRevisionRuleDTO){
        VersionRule newVR = new VersionRule();
        newVR.name = osRevisionRuleDTO.getId();
        newVR.tag = osRevisionRuleDTO.getName();
        newVR.jumpCharacter = osRevisionRuleDTO.getPrefixCode();
        /*newVR.initialValue = jtf3.getText();
        newVR.stepLength = jtf4.getText();
        newVR.prefixion = jtf5.getText();
        newVR.suffix = jtf6.getText();
        newVR.description = jta.getText();*/
        String userName = ClientSessionUtility.getCurUserName();
        newVR.creator = userName;
        newVR.modifier = userName;
        return newVR;
    }
    /**
@@ -125,10 +173,35 @@
    }
    /**
     * æŸ¥è¯¢åº”用范围
     * @param vrName ç‰ˆæœ¬è§„则英文名称
     * @return
     */
    @Override
    public List<Map<String, String>> getUsedVersionRuleList(String vrName) throws PLException {
        if(Func.isBlank(vrName)){
            throw new PLException("500",new String[]{"请选择要查询应用范围的属性!"});
        }
        String[] btNames = platformClientUtil.getBtmService().getBTNamesByVerName(vrName);
        if(Func.isEmpty(btNames)){
            return new ArrayList<>();
        }
        List<Map<String,String>> btmNameMapList = new ArrayList<>();
        Arrays.stream(btNames).forEach(btName->{
            Map<String, String> itemMap = new HashMap<>();
            itemMap.put("versionRuleName",vrName);
            itemMap.put("source",btName);
            btmNameMapList.add(itemMap);
        });
        return btmNameMapList;
    }
    /**
     * æ¸…除缓存
     */
    @Override
    public void clearCache() {
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java
@@ -404,14 +404,14 @@
     * @return
     */
    @Override
    public String exportStatus(String exportFileName, String statusOids) throws PLException {
    public String exportStatus(String exportFileName, String statusOids,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException {
        if(Func.isBlank(statusOids)){
            throw new PLException("500",new String[]{"请勾选要导出的属性!"});
        }
        //界面没传名称,使用默认导出名称
        exportFileName = Func.isBlank(exportFileName) ?  "状态池状态导出_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
        //设置列名
        List<String> columns = new ArrayList<>(Arrays.asList("名称", "标签", "图片", "描述"));
        List<String> columns = this.getCloumns(flag);
        //写excel
        String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName +  ".xls";
@@ -453,9 +453,7 @@
        //界面没传名称,使用默认导出名称
        exportFileName = Func.isBlank(exportFileName) ?  "状态池导入模板_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName;
        //设置列名
        List<String> columns = new ArrayList<>(
                Arrays.asList("名称(不能为空)", "标签(对名称的解释)","图片(路径)", "描述(可以为空)")
        );
        List<String> columns = this.getCloumns(true);
        //设置必填列
        ColumnNameisRed.clear();
        ColumnNameisRed.add(0);
@@ -486,6 +484,20 @@
    }
    /**
     * èŽ·å–å¯¼å‡ºæˆ–å¯¼å…¥æ¨¡æ¿çš„åˆ—å
     * @param flag æ˜¯å¦èŽ·å–å¯¼å…¥æ¨¡æ¿åˆ—å
     * @return
     */
    private List<String> getCloumns(boolean flag){
        if(flag){
            return new ArrayList<>(
                    Arrays.asList("名称(不能为空)", "标签(对名称的解释)","图片(路径)", "描述(可以为空)")
            );
        }
        return new ArrayList<>(Arrays.asList("名称", "标签", "图片", "描述"));
    }
    /**
     * å¯¼å…¥çŠ¶æ€
     * @param file
     * @return