xiejun
2024-08-27 ca3880ac5dde98928d6ae0d0c66a0e53c4cbc6c7
表单表格功能测试完善
已修改8个文件
已添加1个文件
281 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/constant/PortalVIEnumConstant.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PortalVIDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/PortalVIDO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PortalVIVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/PortalVIType.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/PortalVITypeFlag.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/constant/PortalVIEnumConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.vci.constant;
public class PortalVIEnumConstant {
    /**
     * è¡¨å•类型枚举
     */
    public static final String PORTALVI_VI_TYPE = "portalVIType";
    /***
     * è¡¨å•业务类型枚举
     */
    public static final String PORTALVI_VI_FLAG = "portalVITypeFlag";
}
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/PortalVIDTO.java
@@ -17,6 +17,11 @@
     * 0: ä¸šåŠ¡ç±»åž‹; 1: é“¾æŽ¥ç±»åž‹. é»˜è®¤0
     */
    private short typeFlag;
    /**
     * ä¸šåŠ¡ç±»åž‹æ˜¾ç¤ºå€¼
     */
    private  String typeFlagText;
    /**
     * ç±»åž‹å
     */
@@ -29,6 +34,10 @@
     * è§†å›¾ç±»åž‹: è¾“入表单或分页列表
     */
    private short viType;
    /**
     *表单类型
     */
    private String viTypeText;
    /**
     * å®šä¹‰è¯¦æƒ…
     */
@@ -82,14 +91,32 @@
        this.prm = prm;
    }
    public String getTypeFlagText() {
        return typeFlagText;
    }
    public void setTypeFlagText(String typeFlagText) {
        this.typeFlagText = typeFlagText;
    }
    public String getViTypeText() {
        return viTypeText;
    }
    public void setViTypeText(String viTypeText) {
        this.viTypeText = viTypeText;
    }
    @Override
    public String toString() {
        return "PortalVIVO{" +
        return "PortalVIDTO{" +
                "id='" + id + '\'' +
                ", typeFlag=" + typeFlag +
                ", typeFlagText='" + typeFlagText + '\'' +
                ", typeName='" + typeName + '\'' +
                ", viName='" + viName + '\'' +
                ", viType=" + viType +
                ", viTypeText='" + viTypeText + '\'' +
                ", prm=" + prm +
                '}';
    }
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/PortalVIDO.java
@@ -1,7 +1,9 @@
package com.vci.model;
import com.vci.constant.PortalVIEnumConstant;
import com.vci.starter.web.annotation.Transient;
import com.vci.starter.web.annotation.VciBtmType;
import com.vci.starter.web.annotation.VciUseEnum;
import com.vci.starter.web.constant.FrameWorkLcStatusConstant;
/**
@@ -21,7 +23,13 @@
    /**
     * 0: ä¸šåŠ¡ç±»åž‹; 1: é“¾æŽ¥ç±»åž‹. é»˜è®¤0
     */
    @VciUseEnum(value = PortalVIEnumConstant.PORTALVI_VI_FLAG,defaultValue = "0",showTextField = "typeFlagText")
    private short typeFlag;
    /**
     * ä¸šåŠ¡ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    private String typeFlagText;
    /**
     * ç±»åž‹å
     */
@@ -33,7 +41,12 @@
    /**
     * è§†å›¾ç±»åž‹: è¾“入表单或分页列表
     */
    @VciUseEnum(value = PortalVIEnumConstant.PORTALVI_VI_TYPE,defaultValue = "0",showTextField = "viTypeText")
    private short viType;
    /**
     * è§†å›¾ç±»åž‹æ˜¾ç¤ºæ–‡æœ¬
     */
    private  String viTypeText;
    /**
     * å®šä¹‰è¯¦æƒ…
     */
@@ -87,14 +100,32 @@
        this.prm = prm;
    }
    public String getTypeFlagText() {
        return typeFlagText;
    }
    public void setTypeFlagText(String typeFlagText) {
        this.typeFlagText = typeFlagText;
    }
    public String getViTypeText() {
        return viTypeText;
    }
    public void setViTypeText(String viTypeText) {
        this.viTypeText = viTypeText;
    }
    @Override
    public String toString() {
        return "PortalVIVO{" +
        return "PortalVIDO{" +
                "id='" + id + '\'' +
                ", typeFlag=" + typeFlag +
                ", typeFlagText='" + typeFlagText + '\'' +
                ", typeName='" + typeName + '\'' +
                ", viName='" + viName + '\'' +
                ", viType=" + viType +
                ", viTypeText='" + viTypeText + '\'' +
                ", prm='" + prm + '\'' +
                '}';
    }
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/PortalVIVO.java
@@ -1,5 +1,9 @@
package com.vci.pagemodel;
import com.vci.common.portal.enums.PortalVIType;
import com.vci.constant.EnumIdConstant;
import com.vci.starter.web.annotation.VciUseEnum;
/**
 *
 * è¡¨å•显示对象
@@ -18,6 +22,10 @@
     */
    private short typeFlag;
    /**
     * ä¸šåŠ¡ç±»åž‹æ˜¾ç¤ºå€¼
     */
    private  String typeFlagText;
    /**
     * ç±»åž‹å
     */
    private String typeName;
@@ -25,10 +33,15 @@
     * è§†å›¾å
     */
    private String viName;
    /**
     * è§†å›¾ç±»åž‹: è¾“入表单或分页列表
     */
    private short viType;
    /**
     *表单类型
     */
    private String viTypeText;
    /**
     * å®šä¹‰è¯¦æƒ…
     */
@@ -82,14 +95,32 @@
        this.prm = prm;
    }
    public String getTypeFlagText() {
        return typeFlagText;
    }
    public void setTypeFlagText(String typeFlagText) {
        this.typeFlagText = typeFlagText;
    }
    public String getViTypeText() {
        return viTypeText;
    }
    public void setViTypeText(String viTypeText) {
        this.viTypeText = viTypeText;
    }
    @Override
    public String toString() {
        return "PortalVIVO{" +
                "id='" + id + '\'' +
                ", typeFlag=" + typeFlag +
                ", typeFlagText='" + typeFlagText + '\'' +
                ", typeName='" + typeName + '\'' +
                ", viName='" + viName + '\'' +
                ", viType=" + viType +
                ", viTypeText='" + viTypeText + '\'' +
                ", prm=" + prm +
                '}';
    }
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
@@ -9,19 +9,27 @@
import com.vci.pagemodel.PortalVIVO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.enumpck.ItemDblEnum;
import com.vci.web.enumpck.ItemTypeEnum;
import com.vci.web.service.OsPortalVIServiceI;
import com.vci.web.service.WebBtmIOServiceI;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
/**
@@ -56,17 +64,18 @@
    /**
     *根据表单id获取具体数据
     * @param id
     * @param viType
     * @return
     */
    @GetMapping( "/getPortalVIById")
    @VciBusinessLog(operateName = "获取表单/表格数据")
    public BaseResult getPortalVIById(@RequestBody String id,@RequestBody String viType){
    public BaseResult getPortalVIById(@RequestParam("id") String id,@RequestParam("viType") String viType){
        try{
            PortalVIVO portalVIVO=  portalVIServiceI.getPortalVIById(id,viType);
           return  BaseResult.success(portalVIVO);
        }catch (Throwable e){
            e.printStackTrace();
            String exceptionMessage = "创建业务类型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            String exceptionMessage = "获取表单/表格数据时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
@@ -110,12 +119,12 @@
     */
    @DeleteMapping("/deleteByIds")
    @VciBusinessLog(operateName = "删除表单/表格")
    public BaseResult deleteByIds(@RequestBody String ids){
    public BaseResult deleteByIds(@RequestParam("ids") String ids){
        try {
            return portalVIServiceI.delete(ids) ? BaseResult.success("删除成功!"):BaseResult.fail("删除失败!");
        } catch (PLException e) {
            e.printStackTrace();
            String exceptionMessage = "删除表单时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            String exceptionMessage =  VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
@@ -127,7 +136,7 @@
    @VciBusinessLog(operateName = "删除表单/表格")
    public BaseResult clone(@RequestBody ClonePortalVIDTOList portalVIDTOList){
        try {
            return portalVIServiceI.clone(portalVIDTOList) ? BaseResult.success("删除成功!"):BaseResult.fail("删除失败!");
            return portalVIServiceI.clone(portalVIDTOList) ? BaseResult.success("克隆成功!"):BaseResult.fail("克隆失败!");
        } catch (Throwable e) {
            e.printStackTrace();
            String exceptionMessage = "删除表单时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
@@ -136,6 +145,26 @@
        }
    }
    /**
     * å¯¼å‡ºæ•°æ®åº“的表信息到excel
     * @param response å“åº”对象
     * @param btmTypeIds ä¸šåŠ¡ç±»åž‹çš„ç¼–å·ï¼Œç”¨é€—å·åˆ†å‰²
     */
    @PostMapping("/exportExcel")
    @VciBusinessLog(operateName = "导出表单/表格到excel中")
    public void exportExcel(String btmTypeIds,HttpServletResponse response){
        String excelFileName = portalVIServiceI.exportToExcel(VciBaseUtil.str2List(btmTypeIds));
        try {
            ControllerUtil.writeFileToResponse(response,excelFileName);
        } catch (IOException e) {
            try {
                ControllerUtil.writeDataToResponse(response, LangBaseUtil.getErrorMsg(e).getBytes(StandardCharsets.UTF_8),null);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    /**
     * èŽ·å–å±žæ€§å­—æ®µç±»åž‹
     */
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/PortalVIType.java
@@ -1,12 +1,15 @@
package com.vci.web.enumpck;
import com.vci.common.portal.enums.GetByType;
import com.vci.constant.PortalVIEnumConstant;
import com.vci.starter.web.annotation.VciEnum;
/**
 * è¡¨å•类型
 * @author xiej
 *
 */
@VciEnum(name = PortalVIEnumConstant.PORTALVI_VI_TYPE,text = "表单类型")
public enum PortalVIType {
    Form("Form", "表单", (short)1),
    Table("Table", "表格", (short)0);
@@ -81,5 +84,5 @@
    public void setIntVal(short intVal) {
        this.intVal = intVal;
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/PortalVITypeFlag.java
@@ -1,12 +1,15 @@
package com.vci.web.enumpck;
import com.vci.common.portal.enums.GetByType;
import com.vci.constant.PortalVIEnumConstant;
import com.vci.starter.web.annotation.VciEnum;
/**
 * è¡¨å•标记类型
 * @author xiej
 *
 */
@VciEnum(name = PortalVIEnumConstant.PORTALVI_VI_FLAG,text = "表单所属业务类型枚举")
public enum PortalVITypeFlag {
    LinkType("LinkType", "链接类型的表单", (short)1),
    BtmType("BtmType", "业务类型的表单", (short)0);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsPortalVIServiceI.java
@@ -74,7 +74,12 @@
     */
    boolean  clone(ClonePortalVIDTOList portalVIDTOList)throws  Throwable;
    /**
     * å¯¼å‡ºè¡¨å•/表格的信息到Excel中
     * @param idList ä¸šåŠ¡ç±»åž‹çš„ç¼–å·é›†åˆ
     * @return excel的全路径
     */
    String exportToExcel(Collection<String> idList);
    /**
     *查询所有表单或者表格
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -8,6 +8,8 @@
import com.vci.dto.*;
import com.vci.model.*;
import com.vci.pagemodel.*;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -29,6 +31,7 @@
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
/*
@@ -218,13 +221,23 @@
            throw  new VciBaseException("请选择要克隆的对象!");
        }
        try {
           String typeName=clonePortalVIDTOList.getClonePortalVIDTOList().get(0).getTypeName();
            PortalVI[] portalVIS=  platformClientUtil.getPortalService().getPortalVIArrayByTypeName(typeName);
            Map<String, PortalVIVO> PortalVIMap=new HashMap<>();
            if(!CollectionUtils.isEmpty(Arrays.asList(portalVIS))) {
                List<PortalVIVO> portalVIVOS = portalVIDOO2VOS(Arrays.asList(portalVIS));
                PortalVIMap =portalVIVOS.stream().collect(Collectors.toMap(PortalVIVO::getViName, Function.identity()));
            }
            List<PortalVI> portalVIList=new ArrayList<>();
            for (ClonePortalVIDTO clonedestObject : clonePortalVIDTOList.getClonePortalVIDTOList()) {
                String viName = clonedestObject.getViName();
                PortalVIDTO portalVIDTO = clonedestObject.getOldPortalVIDTO();
                String typeName = clonedestObject.getTypeName();
                short typeFlag = clonedestObject.getTypeFlag();
                if (viName != null) {
                    VciBaseUtil.alertNotNull(viName, "克隆名称不允许为空");
                    if(  PortalVIMap.containsKey(viName)){
                        throw  new VciBaseException("克隆名称"+viName+"已存在,请核对!");
                    }
                    PortalVI portalVI = UITools.getService().getPortalVIById(portalVIDTO.getId());
                    portalVI.id = ObjectUtility.getNewObjectID36();
                    portalVI.viName = viName;
@@ -235,7 +248,8 @@
                    if (typeFlag == PortalVITypeFlag.BtmType.getIntVal() || typeFlag == PortalVITypeFlag.LinkType.getIntVal()) {
                        portalVI.typeFlag = typeFlag;
                    }
                    UITools.getService().savePortalVI(portalVI);
                    platformClientUtil.getPortalService().savePortalVI(portalVI);
                    portalVIList.add(portalVI);
                }
            }
        }catch (PLException e){
@@ -244,7 +258,94 @@
        return true;
    }
    @Override
    public String exportToExcel(Collection<String> idList) {
        /*List<PortalVIVO>  portalVIVOList= listByIds(idList);
        List<WriteExcelData> rowDataList = new ArrayList<>();
        final int[] index = {0};
        if(!CollectionUtils.isEmpty(portalVIVOList)) {
            portalVIVOList.stream().forEach(PortalVIVO -> {
                //先是名称
                int rowIndex = index[0];
                WriteExcelData idED = new WriteExcelData(rowIndex, 0, btmId);
                idED.setMerged(true);
                if (attributeVOS.size() > 0) {
                    idED.setRowTo(rowIndex + attributeVOS.size() - 1 + 3);
                }
                rowDataList.add(idED);
                WriteExcelData nameED = new WriteExcelData(rowIndex, 1, btmTypeVO.getName());
                nameED.setMerged(true);
                if (attributeVOS.size() > 0) {
                    nameED.setRowTo(rowIndex + attributeVOS.size() - 1 + 3);
                }
                rowDataList.add(nameED);
                rowDataList.add(new WriteExcelData(rowIndex, 2, "id"));
                rowDataList.add(new WriteExcelData(rowIndex, 3, "编号"));
                rowDataList.add(new WriteExcelData(rowIndex, 4, "字符串"));
                rowDataList.add(new WriteExcelData(rowIndex, 5, "是"));
                rowDataList.add(new WriteExcelData(rowIndex, 6, "50"));
                rowIndex++;
                rowDataList.add(new WriteExcelData(rowIndex, 2, "name"));
                rowDataList.add(new WriteExcelData(rowIndex, 3, "名称"));
                rowDataList.add(new WriteExcelData(rowIndex, 4, "字符串"));
                rowDataList.add(new WriteExcelData(rowIndex, 5, "是"));
                rowDataList.add(new WriteExcelData(rowIndex, 6, "50"));
                rowIndex++;
                rowDataList.add(new WriteExcelData(rowIndex, 2, "description"));
                rowDataList.add(new WriteExcelData(rowIndex, 3, "描述"));
                rowDataList.add(new WriteExcelData(rowIndex, 4, "字符串"));
                rowDataList.add(new WriteExcelData(rowIndex, 5, "是"));
                rowDataList.add(new WriteExcelData(rowIndex, 6, "150"));
                //处理属性
                rowIndex++;
                for (int i = 0; i < attributeVOS.size(); i++) {
                    OsBtmTypeAttributeVO attributeVO = attributeVOS.get(i);
                    //先是属性的英文名称
                    rowDataList.add(new WriteExcelData(rowIndex, 2, attributeVO.getId()));
                    //然后属性的中文名称
                    rowDataList.add(new WriteExcelData(rowIndex, 3, attributeVO.getName()));
                    //属性的类型
                    rowDataList.add(new WriteExcelData(rowIndex, 4, VciFieldTypeEnum.getTextByValue(attributeVO.getAttributeDataType())));
                    //是否可以为空
                    rowDataList.add(new WriteExcelData(rowIndex, 5, attributeVO.isNullableFlag() ? "是" : "否"));
                    //属性长度
                    String length = attributeVO.getAttributeLength()==null?"":attributeVO.getAttributeLength() + "" ;
                    if (attributeVO.getPrecisionLength() != null) {
                        length = length + "(" + attributeVO.getPrecisionLength() + "," + attributeVO.getScaleLength() == null ? "2" : (attributeVO.getScaleLength() + "") + ")" ;
                    }
                    rowDataList.add(new WriteExcelData(rowIndex, 6, length));
                    //备注
                    rowDataList.add(new WriteExcelData(rowIndex, 7, attributeVO.getDescription() == null ? "" : attributeVO.getDescription()));
                    rowIndex++;
                }
                index[0] = rowIndex;
            });
        }
*/
        return null;
    }
    public List<PortalVIVO> listByIds(Collection idList){
        List<PortalVIVO> portalVIVOList=new ArrayList<>();
        if(CollectionUtils.isEmpty(idList)){
            throw  new VciBaseException("请选择需要导出的数据");
        }
        List<PortalVI> portalVIList=new ArrayList<>();
        idList.stream().forEach(id->{
            try {
                PortalVI portalVI=  platformClientUtil.getPortalService().getPortalVIById(id.toString());
                portalVIList.add(portalVI);
            } catch (PLException e) {
                e.printStackTrace();
            }
        });
        portalVIVOList=  portalVIDOO2VOS(portalVIList);
        return portalVIVOList;
    }
    private BaseResult savePortalVIDTO(PortalVIDTO portalVIDTO,boolean isEdit)  {
        boolean _isBtm=false;
@@ -486,10 +587,13 @@
    public  PortalVIVO portalVIDOO2VO(PortalVI portalVI) {
        PortalVIVO portalVIVO=new PortalVIVO();
        portalVIVO.setId(portalVI.id);
        portalVIVO.setTypeFlagText(PortalVITypeFlag.getByIntVal(portalVI.typeFlag).getLabel());
        portalVIVO.setTypeFlag(portalVI.typeFlag);
        portalVIVO.setTypeName(portalVI.typeName);
        portalVIVO.setViName(portalVI.viName);
        portalVIVO.setViType(portalVI.viType);
        portalVIVO.setViTypeText(PortalVIType.getByIntVal(portalVI.viType).getLabel());
        String  prm= portalVI.prm;
        if(StringUtils.isNotBlank(prm)) {
            PRMDO prmdo = UITools.getPRM(prm);
@@ -742,7 +846,13 @@
        List<String> itemSelectoutFieldList= allKeyList.stream().filter(s ->!itemOutFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
        prmItemVO.setItemSelectoutFieldList(itemSelectoutFieldList);//待选择的属性字段
        prmItemVO.setItemOutFieldList(itemOutFieldList);//需要使用的集合
        List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
      //  List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!CollectionUtils.isEmpty(itemKeyFieldList).stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
        List<String> itemSearchFieldList=new ArrayList<>();
        if(!CollectionUtils.isEmpty(itemKeyFieldList)){
            itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.contains(s)).collect(Collectors.toList());
        }else{
            itemSearchFieldList=itemOutFieldList;
        }
        prmItemVO.setItemSearchFieldList(itemSearchFieldList);//待搜索字段
        prmItemVO.setItemKeyFieldList(itemKeyFieldList);//搜索字段
    }
@@ -772,7 +882,7 @@
    private void initTableConfigDTOO2DOData(PRMItemDO prmItemDO,PRMItemDTO prmItemDTO){
        prmItemDO.setItemOutFields(VciBaseUtil.array2String(prmItemDTO.getItemOutFieldList().toArray(new String[]{})));//需要使用的字段
        prmItemDO.setItemKeyFields(VciBaseUtil.array2String(prmItemDTO.getItemKeyFieldList().toArray(new String[]{})));//需要搜索的字段
        prmItemDO.setItemKeyFields(CollectionUtils.isEmpty(prmItemDTO.getItemKeyFieldList())?"":VciBaseUtil.array2String(prmItemDTO.getItemKeyFieldList().toArray(new String[]{})));//需要搜索的字段
       List<String> newItemFieldWidthList=prmItemDTO.getItemFieldWidthList().stream().map(KeyValue::getValue).distinct().collect(Collectors.toList());
       prmItemDO.setItemFieldWidth(VciBaseUtil.array2String(newItemFieldWidthList.toArray(new String[]{}),":"));//字段宽度
       List<ItemSeniorQueryBO> itemSeniorQueryBOS=  prmItemDTO.getItemSeniorQueryBOS();
@@ -805,7 +915,7 @@
    private List<KeyValue>  initItemFieldWidthList(String itemOutFields,String itemFieldWidth){
        List<KeyValue> keyValueList=new ArrayList<>();
        List<String>itemOutFieldList=   VciBaseUtil.str2List(itemOutFields);
        List<String>itemFieldWidthList=  VciBaseUtil.str2List(itemFieldWidth);
        List<String>itemFieldWidthList=  VciBaseUtil.str2List(itemFieldWidth,":");
        if(itemOutFieldList.size()>0) {
            for (int i = 0; i < itemOutFieldList.size(); i++) {
                KeyValue keyValue = new KeyValue();