xiejun
2023-07-17 cca29ef0f3592879731abff315ced6bb7c4e5e6a
集成获取分类接口(包含编码规则码段码值信息)
已修改2个文件
已添加4个文件
384 ■■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/data.json 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeShowFieldConfigVO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSrchCondConfigVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CoderefersecSearchVO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/data.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
{
  "codeSrchCondConfigVOS": [
    {
      "filterField": "tuhao",
      "filterType": "equal",
      "filterTypeText": "",
      "filterValue": "777",
      "$cellEdit": false,
      "$index": 0,
      "$filterType": "等于"
    },
    {
      "filterField": "jzrxx",
      "filterType": "_like",
      "filterTypeText": "",
      "filterValue": "66",
      "$cellEdit": false,
      "$index": 1,
      "$filterType": "包含"
    }
  ],
  "codeShowFieldConfigVOS": [
    {
      "field": "id",
      "title": "编号",
      "fieldType": "text",
      "fieldTypeText": "文本框",
      "sort": true,
      "attrSortField": "id",
      "width": "150",
      "isquery": true,
      "$cellEdit": false,
      "$index": 0,
      "$fieldTypeText": "文本框",
      "$fixedPosition": ""
    },
    {
      "field": "name",
      "title": "名称",
      "fieldType": "text",
      "fieldTypeText": "文本框",
      "sort": true,
      "attrSortField": "name",
      "width": "180",
      "isquery": true,
      "$cellEdit": false,
      "$index": 1,
      "$fieldTypeText": "文本框",
      "$fixedPosition": ""
    },
    {
      "field": "name",
      "title": "名称",
      "fieldType": "text",
      "fieldTypeText": "文本框",
      "sort": false,
      "attrSortField": "name",
      "width": 150,
      "isquery": false,
      "$cellEdit": false,
      "$index": 2,
      "$fieldTypeText": "文本框",
      "$fixedPosition": ""
    },
    {
      "field": "lastmodifier",
      "title": "最后时间人",
      "fieldType": "text",
      "fieldTypeText": "文本框",
      "sort": false,
      "attrSortField": "lastmodifier",
      "width": 150,
      "isquery": false,
      "$cellEdit": false,
      "$index": 3,
      "$fieldTypeText": "文本框",
      "$fixedPosition": ""
    }
  ],
  "referTypeName": "wupin",
  "referType": "wupin",
  "textField": "name",
  "valueField": "oid",
  "type": "default",
  "url": "http://localhost:38000/api/ubcs-code/codeSyncUniversalController/queryClassifyRule",
  "backPath": "http://localhost:38000/api",
  "method": "POST",
  "height": "",
  "useFormKey": "",
  "paramForFormKey": "",
  "isMuti": false,
  "mapFields": "",
  "isOpenGlobal": true,
  "isPersistence": false,
  "limit": 15,
  "sortField": "",
  "sortType": ""
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeShowFieldConfigVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.vci.ubcs.code.vo.webserviceModel.coderule;
import lombok.Data;
@Data
public class CodeShowFieldConfigVO {
    private String    field;// id,
    private String    title;// ç¼–号,
    private String    fieldType;// text,
    private String    fieldTypeText;// æ–‡æœ¬æ¡†,
    private boolean sort;// true,
    private String    attrSortField;// id,
    private String    width;// 150,
    private boolean    isquery;// true,
    private boolean    $cellEdit;// false,
    private int    $index;// 0,
    private String    $fieldTypeText;// æ–‡æœ¬æ¡†,
    private String    $fixedPosition;// ""
    @Override
    public String toString() {
        return "CodeShowFieldConfigVO{" +
            "field='" + field + '\'' +
            ", title='" + title + '\'' +
            ", fieldType='" + fieldType + '\'' +
            ", fieldTypeText='" + fieldTypeText + '\'' +
            ", sort=" + sort +
            ", attrSortField='" + attrSortField + '\'' +
            ", width='" + width + '\'' +
            ", isquery=" + isquery +
            ", $cellEdit=" + $cellEdit +
            ", $index=" + $index +
            ", $fieldTypeText='" + $fieldTypeText + '\'' +
            ", $fixedPosition='" + $fixedPosition + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSrchCondConfigVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.vci.ubcs.code.vo.webserviceModel.coderule;
import lombok.Data;
/***
 * @author xj
 * @date 2023-07-13
 */
@Data
public class CodeSrchCondConfigVO {
    private String filterField;
    private String filterType;
    private String filterTypeText;
    private String filterValue;
    private boolean $cellEdit;
    private int $index;
    private String $filterType;
    @Override
    public String toString() {
        return "codeSrchCondConfigVO{" +
            "filterField='" + filterField + '\'' +
            ", filterType='" + filterType + '\'' +
            ", filterTypeText='" + filterTypeText + '\'' +
            ", filterValue='" + filterValue + '\'' +
            ", $cellEdit='" + $cellEdit + '\'' +
            ", $index='" + $index + '\'' +
            ", $filterType='" + $filterType + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CoderefersecSearchVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
package com.vci.ubcs.code.vo.webserviceModel.coderule;
import lombok.Data;
import java.util.List;
@Data
public class CoderefersecSearchVO {
    private List<CodeSrchCondConfigVO> codeSrchCondConfigVOS;
    private List<CodeShowFieldConfigVO> codeShowFieldConfigVOS;
    private String referTypeName;// wupin,
    private String referType;//wupin,
    private String textField;// name,
    private String valueField;//oid,
    private String type;// default,
    private String url;// http://localhost:38000/api/ubcs-code/codeSyncUniversalController/queryClassifyRule,
    private String backPath;// http://localhost:38000/api,
    private String method;// POST,
    private String height;// ,
    private String useFormKey;
    private String paramForFormKey;
    private boolean isMuti;// false,
    private String mapFields;// ,
    private boolean isOpenGlobal;// true,
    private boolean isPersistence;// false,
    private int limit;// 15,
    private String sortField;// ,
    private String sortType;// ""
    @Override
    public String toString() {
        return "CoderefersecSearchVO{" +
            "codeSrchCondConfigVOS=" + codeSrchCondConfigVOS +
            ", codeShowFieldConfigVOS=" + codeShowFieldConfigVOS +
            ", referTypeName='" + referTypeName + '\'' +
            ", referType='" + referType + '\'' +
            ", textField='" + textField + '\'' +
            ", valueField='" + valueField + '\'' +
            ", type='" + type + '\'' +
            ", url='" + url + '\'' +
            ", backPath='" + backPath + '\'' +
            ", method='" + method + '\'' +
            ", height='" + height + '\'' +
            ", useFormKey='" + useFormKey + '\'' +
            ", paramForFormKey='" + paramForFormKey + '\'' +
            ", isMuti=" + isMuti +
            ", mapFields='" + mapFields + '\'' +
            ", isOpenGlobal=" + isOpenGlobal +
            ", isPersistence=" + isPersistence +
            ", limit=" + limit +
            ", sortField='" + sortField + '\'' +
            ", sortType='" + sortType + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java
@@ -1,8 +1,12 @@
package com.vci.ubcs.starter.util;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.enums.SqlKeyword;
import com.baomidou.mybatisplus.core.enums.SqlLike;
import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.starter.web.util.VciDateUtil;
import javafx.scene.input.DataFormat;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
@@ -41,6 +45,114 @@
    public UBCSSqlKeyword() {
    }
    private static String  likeValueSqlwhere(String field, Object value, SqlLike operation){
        String sqlwhere="";
        switch(operation) {
            case LEFT:
                return sqlwhere = field +" "+SqlKeyword.LIKE.getSqlSegment() +" '%" + value.toString() + "' ";
            case RIGHT:
                sqlwhere=field+" "+SqlKeyword.LIKE.getSqlSegment() +" '"+value.toString()+"%' ";
            case DEFAULT:
                return  sqlwhere=field+" "+SqlKeyword.LIKE.getSqlSegment() +" '%"+value.toString()+"%' ";
        }
        return sqlwhere;
    }
    private static String sqlKeywordValueSqlwhere(String field, Object value, SqlKeyword operation){
        String sqlwhere="";
        switch(operation) {
            case    IN://"IN"),
                return sqlwhere=field+" "+SqlKeyword.IN.getSqlSegment() +"('"+value.toString()+"')";
            case    NOT_IN://"NOT IN"),
                sqlwhere=field+" "+SqlKeyword.NOT_IN.getSqlSegment()  +"('"+value.toString()+"')";
            //case    LIKE://"LIKE"),
            case    NOT_LIKE://"NOT LIKE"),
                return sqlwhere=field+" "+SqlKeyword.NOT_LIKE.getSqlSegment() +" '%"+value+"%' ";
            case    EQ://"="),
                return sqlwhere=field+" "+SqlKeyword.EQ.getSqlSegment() +" '"+value.toString()+"' ";
            case    NE://"<>"),
                return sqlwhere=field+ " "+SqlKeyword.NE.getSqlSegment() +" '"+value.toString()+"' ";
            case    GT://">"),
                return sqlwhere=field+ " "+SqlKeyword.GT.getSqlSegment()  +" '"+value.toString()+"' ";
            case    GE://">="),
                return sqlwhere=field+ " "+SqlKeyword.GE.getSqlSegment() +" '"+value.toString()+"' ";
            case    LT://"<"),
                return sqlwhere=field+ " "+SqlKeyword.LT.getSqlSegment() +" '"+value.toString()+"' ";
            case    LE://"<="),
                return sqlwhere=field+" "+ SqlKeyword.LE.getSqlSegment() +" '"+value.toString()+"' ";
            case    IS_NULL://"IS NULL"),
                return sqlwhere=field+" IS NULL ";
            case    IS_NOT_NULL://"IS NOT NULL"),
                return sqlwhere=field+" IS NOT NULL ";
        }
        return sqlwhere;
    }
    private static String  dateValueSqlwhere(String field, Object value, SqlKeyword operation){
        String sqlwhere="";
        switch(operation) {
            case    EQ://"="),
                return sqlwhere=field+" "+SqlKeyword.EQ.getSqlSegment() +"  to_date('"+value.toString()+"','yyyy-MM-dd HH:mm:ss') ";
            case    NE://"<>"),
                return sqlwhere=field+ " "+SqlKeyword.NE.getSqlSegment() +"  to_date('"+value.toString()+"','yyyy-MM-dd HH:mm:ss') ";
            case    GT://">"),
                return sqlwhere=field+ " "+SqlKeyword.GT.getSqlSegment()  +"  to_date('"+value.toString()+"','yyyy-MM-dd HH:mm:ss') ";
            case    GE://">="),
                return sqlwhere=field+ " "+SqlKeyword.GE.getSqlSegment() +"  to_date('"+value.toString()+"','yyyy-MM-dd HH:mm:ss') ";
            case    LT://"<"),
                return sqlwhere=field+ " "+SqlKeyword.LT.getSqlSegment()+"  to_date('"+value.toString()+"','yyyy-MM-dd HH:mm:ss') ";
            case    LE://"<="),
                return sqlwhere=field+" "+ SqlKeyword.LE.getSqlSegment() +"  to_date('"+value.toString()+"','yyyy-MM-dd HH:mm:ss') ";
        }
        return sqlwhere;
    }
    public static String buildSqlwhere(Map<String, Object> query) {
        StringBuffer sb=new StringBuffer();
        if (!Func.isEmpty(query)) {
            query.forEach((k, v) -> {
                sb.append(" and ");
                if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) {
                    if (k.endsWith(LIKE)) {
                        sb.append(likeValueSqlwhere(getColumn(k,LIKE),v,SqlLike.DEFAULT));
                    } else if (k.endsWith(NOT_EQUAL)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,NOT_EQUAL), v,SqlKeyword.NE));
                    } else if (k.endsWith(LIKE_LEFT)) {
                        sb.append(likeValueSqlwhere(getColumn(k,LIKE_LEFT),v,SqlLike.LEFT));
                    } else if (k.endsWith(LIKE_RIGHT)) {
                        sb.append(likeValueSqlwhere(getColumn(k,LIKE_RIGHT),v,SqlLike.RIGHT));
                    } else if (k.endsWith(NOT_LIKE)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,NOT_LIKE), v,SqlKeyword.NOT_LIKE));
                    } else if (k.endsWith(GE)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,GE), v,SqlKeyword.GE));
                    } else if (k.endsWith(LE)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,LE), v,SqlKeyword.LE));
                    } else if (k.endsWith(GT)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,GT), v,SqlKeyword.GT));
                    } else if (k.endsWith(LT)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,LT), v,SqlKeyword.LT));
                    } else if (k.endsWith(DATE_GE)) {
                        sb.append(dateValueSqlwhere(getColumn(k,DATE_GE),v,SqlKeyword.GE));
                    } else if (k.endsWith(DATE_GT)) {
                        sb.append(dateValueSqlwhere(getColumn(k,DATE_GT),v,SqlKeyword.GT));
                    } else if (k.endsWith(DATE_EQUAL)) {
                        sb.append(dateValueSqlwhere(getColumn(k,DATE_EQUAL),v,SqlKeyword.EQ));
                    } else if (k.endsWith(DATE_LE)) {
                        sb.append(dateValueSqlwhere(getColumn(k,DATE_LE),v,SqlKeyword.LE));
                    } else if (k.endsWith(DATE_LT)) {
                        sb.append(dateValueSqlwhere(getColumn(k,DATE_LT),v,SqlKeyword.LT));
                    } else if (k.endsWith(IS_NULL)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,IS_NULL), v,SqlKeyword.IS_NULL));
                    } else if (k.endsWith(NOT_NULL)) {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,NOT_NULL), v,SqlKeyword.IS_NOT_NULL));
                    } else {
                        sb.append(sqlKeywordValueSqlwhere(getColumn(k,EQUAL), v,SqlKeyword.EQ));
                    }
                }
            });
        }
        return sb.toString();
    }
    public static void buildCondition(Map<String, Object> query, QueryWrapper<?> qw) {
        if (!Func.isEmpty(query)) {
            query.forEach((k, v) -> {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
@@ -11,10 +12,7 @@
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.CodeDefaultLC;
import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
import com.vci.ubcs.code.enumpack.SysIntegrationDataFlowTypeEnum;
import com.vci.ubcs.code.enumpack.sysIntegrationPushTypeEnum;
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.util.ClientBusinessObject;
@@ -39,10 +37,11 @@
import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
@@ -56,9 +55,7 @@
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.MdmDuckingConstant.DOCKING_DEFAULT_CLASSIFY;
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX;
import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC;
/***
@@ -857,12 +854,12 @@
            List<String> classifyIdList=  libraryVO.getClassifyid();
            List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
            //校验是否配置
            /*//校验是否配置
            boolean checkPass= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILYRULE.getValue());
            if(!checkPass){
                errorid="101";
                throw new Throwable("系统标识为【"+systemId+"】,"+sysIntegrationPushTypeEnum.ACCPET_QUERYCLAFILYRULE.getText()+"接口配置已停用或者未配置,请联系编码管理员!");
            }
            }*/
            //这是账号信息
            //这是账号信息
            if(userVo!=null) {
@@ -949,10 +946,40 @@
                                }else if(secType.equals("coderefersec")){//引用码段
                                    codeBasicSecVO.getReferAttributeId();
                                    codeBasicSecVO.getReferCodeClassifyOid();
                                    codeBasicSecVO.getReferBtmId();
                                    codeBasicSecVO.getReferBtmName();
                                    //codeBasicSecVO.getReferValueInfo();
                                    String referBtmId=codeBasicSecVO.getReferBtmId();
                                    String btmName=codeBasicSecVO.getReferBtmName();
                                    String referConfig= codeBasicSecVO.getReferConfig();
                                    CoderefersecSearchVO coderefersecSearchVO=new CoderefersecSearchVO();
                                    if(StringUtils.isNotBlank(referConfig)){
                                        coderefersecSearchVO = JSONObject.toJavaObject(JSONObject.parseObject(referConfig), CoderefersecSearchVO.class);
                                    }
                                    String buildSqlwhere="";
                                    if(coderefersecSearchVO!=null){
                                        Map<String,Object> condtionMap=new HashMap<>();
                                        List<CodeSrchCondConfigVO> codeSrchCondConfigVOList=coderefersecSearchVO.getCodeSrchCondConfigVOS();
                                        if(!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) {
                                            codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> {
                                                condtionMap.put(codeSrchCondConfigVO.getFilterField()+codeSrchCondConfigVO.getFilterType(),codeSrchCondConfigVO.getFilterValue());
                                            });
                                            buildSqlwhere=    UBCSSqlKeyword.buildSqlwhere(condtionMap);
                                        }
                                    }
                                    //使用传入的业务类型查询表
                                    R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId));
                                    if (!listR.isSuccess() || listR.getData().size() == 0) {
                                        throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
                                    }
                                    String referTable = listR.getData().get(0).getTableName();
                                    StringBuffer sb=new StringBuffer();
                                    sb.append(" select * from  ");
                                    sb.append(referTable);
                                    sb.append(" where 1=1  ");
                                    if(StringUtils.isNotBlank(buildSqlwhere)){
                                        sb.append( buildSqlwhere );
                                    }
                                    List<Map> ListMap=    commonsMapper.selectBySql(sb.toString());
                                    log.info(libId);
                                }else if(secType.equals("codelevelsec")) {//层级码段
                                    int level = codeBasicSecVO.getCodeLevelValue();
                                    CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO();