package org.example.Impl.Sql.provider;

//DataImpl工厂模式

import org.apache.ibatis.jdbc.SqlBuilder;

import java.sql.CallableStatement;
import java.util.List;
import java.util.Map;

public interface AllInOneSqlProvider {

    //    region SysUserImpl

    String LoginSql();

    //    endregion

//    region DataImpl

    //    对应原方法GetSysdbGroup
    String getSysdbGroupByIdSql();

    String getSysdbGroupAllSql();

    //    对应原方法getExitSystemPrivilegeAgentTab
    String getExitSystemPrivilegeAgentTabSql();

    //    对应原方法getExitFlowExOper
    String getExitFlowExOperSql();

    //  对应原方法GetBaesModuleLeft
    String GetBaesModuleLeftSql();

    //    对应原方法GetTableColumnType
    String GetTableColumnTypeSql();

    //    对应原方法GetColumnRows
    String GetColumnRowsSql(String moduleId, String userId, String userName, int id, boolean windowsDirver);

    String GetBaesModuleLeftSql(String moduleId);

    String getBaesModuleLeftSql(String moduleId);

    //    对应原方法GetBaesModuleBmpFields
    String GetBaesModuleBmpFieldsSql(String moduleId, String tbName);

    //    对应原方法GetTableInfo
    String GetTableInfoSql(String trimmedTbName);


    //    对应原方法GetColorAndBoxColumns
    String GetColorAndBoxColumnsSql();

    //    对应原方法GetBaesModuleDetails
    String GetBaesModuleDetailsSql();

    //    对应原方法GetAttcFiles
    String GetAttcFilesSql();

    //    对应原方法GetAbsFilePath
    String GetAbsFilePathSql();

    //    对应原方法GetAcFileFolder
    String GetAcFileFolderSql();

    String GetAcFileFolderByCount();

    String GetAcFileFolderAllCount();

    //    对应原方法GetPmsCount
    String GetPmsCountSql();

    List<List<Map<String, Object>>> BaseDataSaveSql(String procName,
                                        String escapedBaseSql,
                                        int execType,
                                        String escapedModuleId,
                                        String escapedMasterTable,
                                        String escapedIdField,
                                        String escapedIdValue,
                                        String escapedOperatorId,
                                        String escapedOperatorName);

    //    对应原方法GetAttcBmpSpec
    String GetAttcBmpSpecSql();

    //    对应原方法GetIdentityField
    String GetIdentityFieldSql(String finaltbName);

    //    对应原方法CheckIsMulitAudit
    String CheckIsMulitAuditSql();

    //    对应原方法GetTaskMobileCardColumn
    String GetTaskMobileCardColumnSql();

    //    对应原方法GetAuditBaseDetails
    String GetAuditBaseDetailsSql();

    //    对应原方法GetAttTreeData
    String GetAttTreeDataSql();

    String GetAttTreeDataSqlisEmpty();

    //    对应原方法GetSqlUser
    String GetSqlUserSql();

    String GetSqlUserByroleSql();

    //    对应原方法hasExistsTable
    String hasExistsTableSql(String tableName);

    //    对应原方法GetUsers
    String GetUsersSql();

    //    对应原方法GetAccountInfoByStore
    String GetAccountInfoByStoreSql();

    //    对应原方法GetProSysType
    String GetProSysTypeSql();

    //    对应原方法CheckUserAble
    String CheckUserAbleSql(Map<String, Object> updRow, String trimmedUsers);

    //    对应原方法GetNextSelectStepList
    String GetNextSelectStepListSql();

    String GetColumnRows(String moduleId, String userId, String userName, int id, boolean windowsDirver);

    String GetRightMenuRows(String fromkey, int menutype, String username, int menuid, boolean isWindowsDirver);

    List<Map<String, Object>> GetModuleIdFieldRow(String keyName, String key);

    int GetAuditStepCount(String moduleId, boolean b);

    List<Map<String, Object>> GetCondition(String fromkey, Integer id, Boolean windowsDirver);

    List<Map<String, Object>> GetBillDetailColumns(String moduleCode, String userId, String username, Integer id, boolean window);

    List<Map<String, Object>> GetBillMasterRows(String moduleId, String userName, Integer id, boolean window);

    Map<String, Object> GetBillModule(String moduleCode, String menuId);

    List<Map<String, Object>> GetControlRows(Object fromkey, String userName, String moduleId, Integer fieldId);

    List<Map<String, Object>> selectSystemPopupMenuById(int menuid, String fromkey, String username);

    List<Map<String, Object>> selectSystemPopupMenuByType(int menutype, String fromkey, String username, boolean windowsDirver);

    List<Map<String, Object>> GetBillSource(String moduleCode, String stCondition);

    List<Map<String, Object>> GetBillSourceColumns(String sourceId, String userId, String billSourceGridView);

    List<Map<String, Object>> GetBillSourceDetailColumns(String sourceId, String userId, String billSourceGridView);

    List<Map<String, Object>> GetBaseModule(String moduleCode, String menuId);

    String GetAuditMsgTab(String userId);

    String GetDeskTopCommonUse(int cardId, String userId);

    String GetDeskQueryResult(String queryText, boolean exitTable);

    String GetDesktopModuleMain(String userId, String userName, String dllcoid);

    String CheckIsAudit();

    String GetProSysType();

    String GetPrimaryKeysArray(String tabname);


    String GetUsers(String name, String code, int userId);

    String hasExistsTable(String tableName);

    String SeeOneAuditMsg();

    String IsExitProSql();

    List<Map<String,Object>> ExecSelectOperStoreSql(List<String> outParamNames,String storeName,Map<String, Object> params);

    String hasStoreParametersql(String procedureName,String paramName);


//    endregion

    //    region UpdateImpl
    String updateSystemOtherTabSql();

    String updateBillTab_210525Sql();

    String updateBillTab_211022Sql();

    String updateSysTabSql();

    String updateSysTab_210630Sql();

    String updateProductSpeciesTabSql();

    String updateSysMenuTabSql();

    String updateSubSysTabSql();

    String updateBillTypeTabSql();

    String updateBillTypeTab_210901Sql();

    String updateDllTabSql();

    String updateDllTab_210610Sql();

    String updateDllTab_210624Sql();

    String updateDllTab_21429Sql();

    String updatePhoneCodeSql();

    StringBuilder BillDataSave(String proName,
                               String escapedMasterSql,
                               String escapedIdValue,
                               String escapedDetailGuid,
                               String escapedBillSeq,
                               int userId,
                               int actionTypeValue,
                               int auditFlag,
                               int comfirmFlag);


//    endregion

//region ModuleImpl
    String BuildBillDetailSqlSql(String getDetailTable);
//    endregion
}
