ludc
2023-06-28 f86cdf1a67342fb7aa78384702f4509f7f8988b0
提交引用码段参照配置修改
已修改7个文件
已添加3个文件
378 ■■■■ 文件已修改
Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/code.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeShowFieldConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/TableColVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIFormReferVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIReferConfigFormVO.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITableConfigVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referConfigFormDialog.vue
@@ -594,7 +594,7 @@
                                            this.isDisabledTabs = false;
                                        } else if(value == 'default' || value == 'grid'){
                                            addFrom = {
                                                limit: '15',
                                                limit: 15,
                                                sortField: '',
                                                sortType: 'asc',
                                            };
@@ -670,11 +670,11 @@
                                    tip: '默认空着,设置后表示强制显示这样的高度',
                                    tipPlacement: 'right',
                                    span: 7,
                                    // rules:[{
                                    //     validator: validateNumber,
                                    //     message: "窗口显示的高度必须为数值类型",
                                    //     trigger: "blur",
                                    // }]
                                    rules:[{
                                        validator: validateNumber,
                                        message: "窗口显示的高度必须为数值类型",
                                        trigger: "blur",
                                    }]
                                },{
                                    label: '过滤(级联)属性',
                                    prop: 'useFormKey',
@@ -769,7 +769,7 @@
                                    prop: 'limit',
                                    span: 8,
                                    tip: '分页时每页显示的数量,不分页填-1',
                                    //value: 15,
                                    value: 15,
                                    tipPlacement: 'right',
                                },{
                                    label: '排序字段',
@@ -955,6 +955,8 @@
                        this.codeShowFieldConfigVOS = this.form.codeShowFieldConfigVOS;
                    }
                    return;
                }else {
                    this.onloadAttrData()
                }
                if(func.notEmpty(val.referType)){
                    this.form.referTypeName = val.referTypeName;
@@ -1179,8 +1181,8 @@
            /** ä¸ºã€å‚照引用的业务类型】选取值之后的内容回显时调用 */
            echoReferBtmType(content){
                // å®žçŽ°å›žæ˜¾
                this.form.referTypeName = content.name;
                this.form.referType = content.id;
                this.form.referTypeName = content.name || content.id;
                this.form.referType = content.id || '';
            },
            /** æŽ’序字段、显示的属性、查询条件的表格行选择之后回显 */
            echoSelectedAttr(data){
Source/UBCS-WEB/src/views/code/code.vue
@@ -1113,18 +1113,18 @@
        /* å¼•用码段参照配置,子组件填完参照配置之后内容回显时调用 */
        echoReferConfig(content){
          // console.log(content.referTypeName);
          this.form.referBtmId = content.referType;
          this.form.referBtmName = content.referTypeName;
          this.form.referBtmId = content.referType || '';
          this.form.referBtmName = content.referTypeName || content.referType;
          //转换成JSON字符串进行父组件回显
          let submitFormJson = JSON.stringify(content);
          this.form.referConfig = submitFormJson;
          this.form.referValueInfo = submitFormJson;
          this.form.referConfig = submitFormJson || '';
          this.form.referValueInfo = submitFormJson || '';
        },
        /** å¼•用码段为【参照引用的业务类型】选取值之后的内容回显时调用 */
        echoReferBtmType(content){
          // å®žçŽ°å›žæ˜¾
          this.form.referBtmId = content.id;
          this.form.referBtmName = content.name;
          this.form.referBtmId = content.id || '';
          this.form.referBtmName = content.name || content.id;
        },
        
        /** çˆ¶åˆ†ç±»é€‰æ‹©å¯¹è¯æ¡†ï¼Œç¬¬äºŒå±‚嵌套对话框,及其相关方法 */ 
@@ -1651,7 +1651,7 @@
          this.addBasicCodeSettingBox = true;
        },
        // æ–°å¢žåŸºç¡€ç æ®µ
        saveOrEditBasicCode(){
        async saveOrEditBasicCode(){
          if(this.selectionList[0].oid == null ||  this.selectionList[0].oid == ''){
            this.$message.warning('缺失必要参数,请重新选择编码规则后再试!');
            return;
@@ -1659,7 +1659,7 @@
          this.form.pkCodeRule = this.selectionList[0].oid;
          if(this.form.oid == '' || this.form.oid == null){
            if(this.checkForm()){
              addSave(this.form).then(() => {
              await addSave(this.form).then(() => {
                this.$message({
                  type: "success",
                  message: "操作成功!"
@@ -2645,7 +2645,13 @@
          this.enumParam.codeFillType = this.getLocalStorageEnum("codeFillType");
        },
        loadCodeFillSeparator(){
          this.enumParam.codeFillSeparator = this.getLocalStorageEnum("codeFillSeparator");
          let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator"));
          if(enumCach == null) {
            getDictionary("codeFillSeparator").then(res=>{
              this.enumParam.codeFillSeparator = res.data.data;
              localStorage.setItem(key,JSON.stringify(res.data.data));
            })
          }
        },
        loadCodeLevelType(){
          this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType");
Source/UBCS-WEB/vue.config.js
@@ -26,10 +26,10 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        //target: 'http://localhost:37000',
        target: 'http://localhost:37000',
        // target: 'http://192.168.1.51:37000',
        // target: 'http://192.168.1.46:37000',
        target: 'http://dev.vci-tech.com:37000',
        // target: 'http://dev.vci-tech.com:37000',
        // target: 'http://192.168.1.51:37000/',
        // target: 'http://192.168.1.104:37000',
        // target: 'http://192.168.1.63:37000',
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeShowFieldConfig.java
@@ -58,7 +58,7 @@
    /**
     * å­—段宽度
     */
    private Long width;
    private Integer width;
    /**
     * åˆ—固定位置
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/TableColVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.starter.web.pagemodel;
import lombok.Data;
import java.io.Serializable;
/**
 * @author ludc
 * @date 2023/6/28 11:42
 */
@Data
public class TableColVO implements Serializable {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 431728683965836559L;
    private String field;
    private String title;
    private String     fieldType;
    private String     fieldTypeText;
    private String sort;
    private String     sortField;
    private Integer width;
    private String isQuery;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIFormReferVO.java
@@ -108,9 +108,7 @@
     */
    private String mapFields;
    //列表的参照
    /**
     * æ˜¾ç¤ºçš„列表
     */
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UIReferConfigFormVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,138 @@
package com.vci.ubcs.starter.web.pagemodel;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
 * @author ludc
 * @date 2023/6/28 11:45
 */
@Data
public class UIReferConfigFormVO implements Serializable {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 1459005348514757539L;
    /**
     * å‚照的窗口类型
     */
    private String type;
    /**
     * æ˜¾ç¤ºçš„字段属性
     */
    private String textField = "name";
    /**
     * å€¼çš„属性
     */
    private String valueField = "oid";
    /**
     * æ˜¯å¦å¤šé€‰
     */
    private boolean muti = false;
    /**
     * åŽå°åœ°å€
     */
    private String url;
    /**
     * æœåŠ¡çš„åœ°å€
     */
    private String backPath;
    /**
     * è¯·æ±‚后台的形式
     */
    private String method = "GET";
    /**
     * é«˜åº¦
     */
    private Integer height;
    //通用的参照
    /**
     * å‚照的业务类型
     */
    private String referType;
    /**
     * å‚ç…§çš„UI上下文
     */
    private String referContent;
    //树形的参照
    /**
     * ä¸Šçº§å­—段
     */
    private String parentFieldName;
    /**
     * ä¸Šçº§å­—段的内容对应的属性的值
     */
    private String parentUsedField;
    /**
     * ä¸Šçº§å­—段的值
     */
    private String parentValue;
    /**
     * åŠ è½½æ–¹å¼
     */
    private String loadType = "all";
    /**
     * æ˜¯å¦åªèƒ½é€‰æ‹©å¶å­èŠ‚ç‚¹
     */
    private boolean onlyLeaf = false;
    /**
     * è¿‡æ»¤(级联)属性
     */
    private String useFormKey;
    /**
     * è¿‡æ»¤å±žæ€§è¯·æ±‚参数
     */
    private String paramForFormKey;
    /**
     * æ˜ å°„其他属性
     */
    private String mapFields;
    //列表的参照
    /**
     * æ˜¾ç¤ºçš„列表
     */
    private String displayTable;
    /**
     * è¡¨æ ¼çš„自定义定义
     */
    private UITableConfigVO tableConfig;
    /**
     * ç­›é€‰æ¡ä»¶
     */
    private Map<String,String> where;
    /**
     * åŽå°æŽ’序
     */
    private boolean remoteSort;
    /**
     * åˆå§‹åŒ–排序
     */
    private UIFieldSortVO initSort;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/pagemodel/UITableConfigVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.vci.ubcs.starter.web.pagemodel;
import lombok.Data;
import java.util.List;
/**
 * @author ludc
 * @date 2023/6/28 11:30
 */
@Data
public class UITableConfigVO implements java.io.Serializable{
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 431728683965836558L;
    /**
     * ä¸»é”®
     */
    private String oid;
    /**
     * åˆ†é¡µçš„对象
     */
    private UITablePageVO page;
    /**
     * æ˜¾ç¤ºçš„列
     */
    private List<TableColVO> cols;
    /**
     * æŸ¥è¯¢çš„列
     */
    private List<TableColVO> queryColumns;
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -9,10 +9,7 @@
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.CodeBasicSecDTO;
import com.vci.ubcs.code.entity.CodeBasicSec;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.CodeClassifyValue;
import com.vci.ubcs.code.entity.CodeFixedValue;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.lifecycle.CodeRuleLC;
import com.vci.ubcs.code.mapper.CodeBasicSecMapper;
@@ -34,9 +31,7 @@
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.enumpck.NewAppConstantEnum;
import com.vci.ubcs.starter.web.enumpck.OsCodeFillTypeEnum;
import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject;
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
import com.vci.ubcs.starter.web.pagemodel.UIFormReferVO;
import com.vci.ubcs.starter.web.pagemodel.*;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.starter.web.util.WebUtil;
@@ -46,6 +41,7 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
@@ -261,7 +257,7 @@
        //引用码段的时候,需要判断参照的信息是否正确
        if(CodeSecTypeEnum.CODE_REFER_SEC.getValue().equalsIgnoreCase(codeBasicSecDO.getSecType())){
            if(StringUtils.isBlank(codeBasicSecDO.getReferConfig())){
                throw new VciBaseException("引用码段的时候,需要填写 å‚照配置 çš„内容");
                throw new VciBaseException("引用码段的时候,需要填写 å‚照配置的内容");
            }
            try{
                //JSONObject.parseObject(codeBasicSecDO.getReferConfig(), UIFormReferVO.class);
@@ -271,6 +267,8 @@
                throw new VciBaseException("引用码段的时候,参照配置的内容的格式不正确,",new String[0],e);
            }
            if(codeReferConfigVO.getIsPersistence()=="true"){
                // åˆ¤æ–­æ˜¯å¦ä¸ºå¼•用码段,如果是应用码段的话,为了适配前端组件,这里要对表进行处理一下,按照以前的参照格式进行转换
                codeBasicSecDO.setReferValueInfo(referConfigTOUIUiTable(codeReferConfigVO));
                codeReferConfigService.insert(codeReferConfigVO);
            }
        }
@@ -278,14 +276,59 @@
        //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
        if(StringUtils.isNotBlank(codeBasicSecDO.getCodeFillSeparator())){
            DictBiz dictBiz = new DictBiz();
            dictBiz.setCode(MdmBtmTypeConstant.CODE_BASIC_SEC);
            dictBiz.setDictKey("codefileseparator");
            dictBiz.setCode("codeFillSeparator");
            dictBiz.setDictKey(codeBasicSecDO.getCodeFillSeparator());
            dictBiz.setDictValue(codeBasicSecDO.getCodeFillSeparator());
            //从原来的charService(可输可选)更改为调用omd中的接口来实现
            iDictBizClient.getCheck(dictBiz);
            //charService.save(MdmBtmTypeConstant.CODE_BASIC_SEC,"codefileseparator",codeBasicSecDO.getCodeFillSeparator(),sessionInfo);
        }
        return resBoolean;
    }
    /**
     * å°†referconfig转换为JSON格式的UIFormReferVO
     * @param codeReferConfig
     * @return
     */
    private String referConfigTOUIUiTable(CodeReferConfigVO codeReferConfig){
        // æ‹·è´ä¸ºä»¥å‰çš„老对象
        UIReferConfigFormVO uiFormReferVO = new UIReferConfigFormVO();
        BeanUtil.copy(codeReferConfig,uiFormReferVO);
        // è¡¨æ ¼çš„自定义定义
        UITableConfigVO uiTableConfigVO = new UITableConfigVO();
        uiTableConfigVO.setPage(new UITablePageVO(codeReferConfig.getLimit(),1));
        // åˆ—表的列的信息转换
        List<TableColVO> uiTableFieldVOs = new ArrayList<>();
        // å¿«é€ŸæŸ¥è¯¢åˆ—
        List<TableColVO> queryColumns = new ArrayList<>();
        if(!codeReferConfig.getCodeShowFieldConfigVOS().isEmpty()){
            codeReferConfig.getCodeShowFieldConfigVOS().stream().forEach(showField ->{
                TableColVO tableColVO = new TableColVO();
                BeanUtil.copy(showField,tableColVO);
                tableColVO.setSortField(showField.getAttrSortField());
                uiTableFieldVOs.add(tableColVO);
                if(showField.getIsQuery().equals("true")){
                    queryColumns.add(tableColVO);
                }
            });
        }
        // æ˜¾ç¤ºçš„列
        uiTableConfigVO.setCols(uiTableFieldVOs);
        // å¿«é€ŸæŸ¥è¯¢åˆ—
        uiTableConfigVO.setQueryColumns(queryColumns);
        //set给表格配置属性
        uiFormReferVO.setTableConfig(uiTableConfigVO);
        // ç­›é€‰æ¡ä»¶
        HashMap<String, String> whereMap = new HashMap<>();
        if(!codeReferConfig.getCodeSrchCondConfigVOS().isEmpty()){
            codeReferConfig.getCodeSrchCondConfigVOS().stream().forEach(srch->{
                whereMap.put(srch.getFilterField()+"_"+srch.getFilterType(),srch.getFilterValue());
            });
        }
        uiFormReferVO.setWhere(whereMap);
        return JSONObject.toJSONString(uiFormReferVO);
    }
    /**
@@ -414,7 +457,7 @@
    public R deleteCodeBasicSecByPrimaryKey(String oid) throws VciBaseException {
        CodeBasicSec codeBasicSecDO = selectByOid(oid);
        boolean isLinked = checkIsLinked(codeBasicSecDO.getPkCodeRule(), oid);
        if (isLinked) {
        if (!isLinked) {
            return R.fail("编码规则已被引用,不允许编辑或删除");
        }
        //执行删除操作
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java
@@ -492,60 +492,11 @@
            vo.setLcStatusText(CodeRuleLC.getTextByValue(vo.getLcStatus()));
            if (hasSec) {
                List<CodeBasicSecVO> codeBasicSecVOS = codeBasicSecService.listCodeBasicSecByRuleOid(vo.getOid());
                // åˆ¤æ–­æ˜¯å¦ä¸ºå¼•用码段,如果是应用码段的话,为了适配前端组件,这里要对表进行处理一下,按照以前的参照格式进行转换
                codeBasicSecVOS.stream().peek(item->{
                    //引用码段
                    if(item.getSecType().equals(CodeSecTypeEnum.CODE_REFER_SEC) && StringUtils.isNotEmpty(item.getReferConfig())){
                        item.setReferConfig(referConfigTOUIUiTable(item));
                    }
                });
                //查询码段
                vo.setSecVOList(codeBasicSecVOS);
            }
        }
        return vo;
    }
    /**
     * å°†referconfig转换为JSON格式的UIFormReferVO
     * @param item
     * @return
     */
    private String referConfigTOUIUiTable(CodeBasicSecVO item){
        // JSON格式的参照配置转换为对象
        CodeReferConfig codeReferConfig = JSONObject.parseObject(item.getReferConfig(), CodeReferConfig.class);
        // æ‹·è´ä¸ºä»¥å‰çš„老对象
        UIFormReferVO uiFormReferVO = new UIFormReferVO();
        BeanUtil.copy(codeReferConfig,uiFormReferVO);
        // è¡¨æ ¼çš„自定义定义
        UITableCustomDefineVO uiTableCustomDefineVO = new UITableCustomDefineVO();
        uiTableCustomDefineVO.setPage(new UITablePageVO(codeReferConfig.getLimit(),1));
        // åˆ—表的列的信息转换
        List<UITableFieldVO> uiTableFieldVOs = new ArrayList<>();
        // å¿«é€ŸæŸ¥è¯¢åˆ—
        List<UITableFieldVO> queryColumns = new ArrayList<>();
        codeReferConfig.getCodeShowFieldConfigs().stream().forEach(showField ->{
            UITableFieldVO uiTableFieldVO = new UITableFieldVO();
            BeanUtil.copy(showField,uiTableFieldVO);
            uiTableFieldVOs.add(uiTableFieldVO);
            if(showField.getIsQuery().equals("true")){
                queryColumns.add(uiTableFieldVO);
            }
        });
        // æ˜¾ç¤ºçš„列
        uiTableCustomDefineVO.setCols(uiTableFieldVOs);
        // å¿«é€ŸæŸ¥è¯¢åˆ—
        uiTableCustomDefineVO.setQueryColumns(queryColumns);
        // ç­›é€‰æ¡ä»¶
        HashMap<String, String> whereMap = new HashMap<>();
        codeReferConfig.getCodeSrchCondConfigs().stream().forEach(srch->{
            whereMap.put(srch.getFilterValue()+"_"+srch.getFilterType(),srch.getFilterValue());
        });
        uiFormReferVO.setWhere(whereMap);
        return JSONObject.toJSONString(uiFormReferVO);
    }
}