xiejun
2025-01-22 d9183aa80ae17d36b79dda48c6b1d7fa22a80ee3
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -1,25 +1,26 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.applyjtcodeservice.vo.BaseModelVO;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
import com.vci.ubcs.code.dto.CodeBZApplyDTO;
import com.vci.ubcs.code.dto.CodeDeleteBatchDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
import com.vci.ubcs.code.entity.CodeWupin;
import com.vci.ubcs.code.entity.CodeSynonym;
import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
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.web.pagemodel.*;
import com.vci.ubcs.starter.web.util.VciQueryWrapperForDO;
import org.springblade.core.tool.api.R;
import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -29,7 +30,7 @@
 * @author weidy
 * @date 2022-2-21
 */
public interface MdmEngineService extends IService<CodeWupin> {
public interface MdmEngineService {
   /**
    * 使用分类的主键获取可以使用的模板对象
    * @param codeClassifyOid 分类的主键
@@ -64,6 +65,13 @@
    * @return 返回编码的内容
    */
   String addSaveCode(CodeOrderDTO orderDTO) throws Exception;
   /**
    * 申请单一编码
    * @param orderDTO 申请的信息,需要包含属性的内容和码段相关的内容
    * @param  authUser 是否模拟登录,true,不模拟,false是模拟
    * @return 返回编码的内容
    */
   String addSaveCodeNotauthUser(CodeOrderDTO orderDTO, boolean authUser) throws Exception;
   /**
    * 判断编码的码段是否输入或者选择了码值
@@ -77,6 +85,7 @@
    *
    * @param value        当前的值
    * @param keyRuleVO    关键属性的控制规则,可以为空
    * @param codeSynonymMaps 近义词查询规则
    * @param attrId       属性的编号
    * @param trim         是否去除空格
    * @param ignoreCase   是否不区分大小写
@@ -84,9 +93,17 @@
    * @param trimAll      是否忽略全部空格
    * @param conditionMap 查询条件
    */
   void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, String attrId,
                        boolean trim, boolean ignoreCase, boolean ignoreWidth,
                        boolean trimAll, Map<String, String> conditionMap);
   void wrapperKeyAttrConditionMap(String value, CodeKeyAttrRepeatVO keyRuleVO, List<CodeSynonym> codeSynonymMaps, String attrId,
                           boolean trim, boolean ignoreCase, boolean ignoreWidth,
                           boolean trimAll, Map<String, String> conditionMap);
   /**
    * 近义词查询规则转换
    * @param codeSynonymMaps
    * @param value
    * @return
    */
   String getValueToSynony(/*近义词查询规则*/List<CodeSynonym> codeSynonymMaps,String value);
   /**
    * 初始化业务类型
@@ -104,6 +121,13 @@
    */
   void batchSaveSelectChar(CodeClassifyTemplateVO templateVO, /*List<ClientBusinessObject> cboList*/
                      List<BaseModel> cboList);
   /**
    * 封装开关的内容,常用于导出
    * @param dataMap 数据的内容
    * @param templateVO 模板的显示
    */
   void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO);
   /**
    * 使用模板的主键获取表单的信息
@@ -153,6 +177,7 @@
    * @param conditionMap   查询条件
    */
   void wrapperResembleConditionMap(String value, CodeResembleRuleVO resembleRuleVO, String attrId, Map<String, String> conditionMap);
   /**
    * 获取使用的相似查询规则
    *
@@ -229,7 +254,6 @@
    * @return 执行结果
    */
   R batchUpdateCode(List<CodeOrderDTO> orderDTOList);
   /**
    * 标记流程中业务数据是否通过
@@ -373,6 +397,15 @@
   MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid, String functionId);
   /**
    * 使用分类主键,模板主键,阶段标识,流程模板kek获取流程审批中页面的内容,包含按钮
    *
    * @param codeClassifyOid 主题库分类主键
    * @param functionId      功能的编号,默认5
    * @return UI相关的内容
    */
   MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid, String functionId,String templateId,String taskId,String modelKey);
   /**
    * 传入业务类型以及相关数据进行批量插入操作
    *
    * @param btmType 业务类型
@@ -380,6 +413,26 @@
    * @return 处理成功数据条数
    */
   Integer insertBatchByType(String btmType, List<BaseModel> baseModels);
   /**
    * 传入业务类型以及ID查询业务表数据是否重复
    *
    * @param btmType 业务类型
    * @param ids      处理数据
    * @return 查询到数据的总数
    */
   Integer selectIdsCounts(String btmType, List<String> ids);
   /**
    * 传入业务类型以及ID、OID查询业务表数据是否重复
    *
    * @param btmType 业务类型
    * @param id      处理数据id
    * @param oid      处理数据oid
    * @return 查询到数据的总数
    */
   Integer selectIdAndOidCounts(String btmType, String id, String oid);
   /**
    * 传入业务类型以及相oid集合查询数据进行返回
    *
@@ -387,7 +440,8 @@
    * @param oids      需要查询的oid集合 逗号分开
    * @return 查询出的数据
    */
   List<BaseModel> selectByTypeAndOid(String btmType, String oids) ;
   List<BaseModel> selectByTypeAndOid(String btmType, String oids);
   /**
    * 传入业务类型以及相关数据进行批量更新操作
    *
@@ -398,13 +452,20 @@
   R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels);
   /**
    * 更新业务数据同时对码值表数据操作接口
    *
    * @param btmType 业务类型
    * @param baseModels      处理数据
    * @return 处理状态
    */
   R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels);
   /**
    * 默认列表
    * @param referConfigVO
    * @param pageHelper
    * @return
    */
   DataGrid referDataGrid(UIFormReferVO referConfigVO, PageHelper pageHelper);
   IPage<BaseModelVO> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) throws VciBaseException;
   /**
    * 获取树形的参照
@@ -418,15 +479,53 @@
    * @param attrName 属性的名字
    * @return true 表示应该忽略
    */
   boolean checkUnAttrUnEdit(String attrName);
//   {
//      return  (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName)
//         ||"ts".equalsIgnoreCase(attrName)
//         || "lastmodifier".equalsIgnoreCase(attrName)
//         || "lastmodifytime".equalsIgnoreCase(attrName)
//         || "createtime".equalsIgnoreCase(attrName)
//         || "checkintime".equalsIgnoreCase(attrName)
//         ||"checkouttime".equalsIgnoreCase(attrName));
//   }
   default boolean checkUnAttrUnEdit(String attrName){
      return  (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName)
         ||"ts".equalsIgnoreCase(attrName)
         || "lastmodifier".equalsIgnoreCase(attrName)
         || "lastmodifytime".equalsIgnoreCase(attrName)
         || "createtime".equalsIgnoreCase(attrName)
         || "checkintime".equalsIgnoreCase(attrName)
         ||"checkouttime".equalsIgnoreCase(attrName));
   }
   /**
    * 流程中变更状态值
    * @param flowDTO
    * @return
    */
    R processChangeStatus(FlowStatusDTO flowDTO);
   /**
    * 校验关键属性
    * @param orderDTO         编码申请的相关的信息
    */
   List<Map>  checkKeyAttrOnOrderFordatas(CodeOrderDTO orderDTO) ;
   /**
    * 根据当前申请编码的分类,逐层往上校验是否符合属于配置的中的分类子节点的分
    * 类,如果符合,则该分类申请的编码为集团码返回true,反之则为企业编码返回false
    * @param parameter 传入数据,classifyGroupCode:配置的中的分类顶节点,oid:选择节点的oid
    */
   R checkGroupCode(Map<String, String> parameter);
   /**
    * 标准申请和修订用
    * @param codeBZApplyDTO 编码申请相关的信息,需要有属性和码段相关的信息
    * @return 执行结果
    */
   String addSaveBZ(CodeBZApplyDTO codeBZApplyDTO) throws Exception;
   /**
    * 标准申请和修订用
    * @param codeBZApplyDTO 编码申请相关的信息,需要有属性和码段相关的信息
    * @param authUser 是否模拟登录,true,不模拟,false是模拟
    * @return 执行结果
    */
   String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception;
   /**
    * 获取统计分析数据
    * @param btmNames 业务类型
    * @return 数据集
    */
   R getStatisticAnalysis(String btmNames);
}