You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Tiobon.Web/Tiobon.Core.Services/CommonServices.cs

4158 lines
196 KiB

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Text.RegularExpressions;
namespace Tiobon.Core.Services;
public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommonServices
{
IHttpContextAccessor _httpContextAccessor;
ILogger<PayServices> _logger;
public CommonServices(ILogger<PayServices> logger, IHttpContextAccessor httpContextAccessor)
{
_logger = logger;
_httpContextAccessor = httpContextAccessor;
}
#region 获取菜单
/// <summary>
/// 获取菜单
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<MenuReturn>> GetMenuAsync([FromBody] MenuParam param)
{
var result = new MenuReturn();
string sql = "SELECT MenuID, MenuType FROM Ghrs_Menu WHERE IsEnable = 1 AND MenuNo = '{0}'";
sql = string.Format(sql, param.menuName);
DataTable dt = await DbAccess.GetDataTableAsync(sql);
int MenuID = 0;
string MenuType = string.Empty;
if (dt.Rows.Count > 0)
{
MenuID = int.Parse(dt.Rows[0]["MenuID"].ToString());
MenuType = dt.Rows[0]["MenuType"].ToString();
}
switch (MenuType)
{
case "MenuForm":
{
sql = @"SELECT MenuNo,
[dbo].[FLangKeyToValue] (MKey, {0}, MenuName) MenuName,
IconType,
MenuUrl,
[dbo].[FParaDetailNoToName] ('GHRPara',
'MenuGroupTitle',
MenuGroupTitle,
{0},
1) MenuGroupTitle
FROM Ghrs_Menu
WHERE ParentmenuID ='{1}'
AND IsEnable = 1
AND (SELECT count (1)
FROM Ghrs_UserRole
WHERE UserID = '{2}'
AND IsEnable = 1
AND dbo.Fs_GetMenuIsCheckByRole (RoleId, MenuID, '') > 0) >
0
ORDER BY SortNo";
sql = string.Format(sql, param.langId, MenuID, App.User.ID);
result.DT_SubMenu = await Db.Ado.SqlQueryAsync<DT_SubMenu>(sql);
sql = @"SELECT iif (MenuColDisplayType ! = 'Tile', 'Tab', 'Tile') MenuColType
FROM Ghrs_Menu
WHERE menuID = 120";
sql = string.Format(sql, MenuID);
result.DT_MenuColType = await Db.Ado.SqlQueryAsync<DT_MenuColType>(sql);
break;
}
default:
{
break;
}
}
return new ServiceResult<MenuReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region 获取模块信息
/// <summary>
/// 获取模块信息
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<ModuleReturn>> GetModuleInfoAsync([FromBody] ModuleParam param)
{
var result = new ModuleReturn();
//SELECT NULL fnKeySeq,
// 'SetDefault' fnKey,
// [dbo].[FLangKeyToValue]('GHR_Common_000000',{2},'恢复默认') fnTitle,
// 'table' fnType,
// 'left' position,
// 'ghr-icon-setDefault' icon
//UNION ALL
//UNION ALL
// SELECT NULL fnKeySeq,
// 'DataSort' fnKey,
// 'GHR_Common_000045' fnTitle,
// 'table',
// 'left',
// 'ghr-data-sort'
#region 定义页面的操作按钮
string sql = @"SELECT fnKey,
fnKeyValue,
[dbo].[FLangKeyToValue] (fnKeyValue, {2}, fnKeyValue) fnTitle,
fnType,
position,
icon,
'true' display
FROM (SELECT CASE
WHEN substring (fnKey, 3, 99) + 'YN' = 'NewYN' THEN 1
WHEN substring (fnKey, 3, 99) + 'YN' = 'ToExcelYN' THEN 2
WHEN substring (fnKey, 3, 99) + 'YN' = 'FromExcelYN' THEN 3
WHEN substring (fnKey, 3, 99) + 'YN' = 'BatchUpdateYN' THEN 4
WHEN substring (fnKey, 3, 99) + 'YN' = 'BatchDelYN' THEN 5
WHEN substring (fnKey, 3, 99) + 'YN' = 'LogYN' THEN 6
WHEN substring (fnKey, 3, 99) + 'YN' = 'ManualYN' THEN 7
WHEN substring (fnKey, 3, 99) + 'YN' = 'UpdateYN' THEN 2
WHEN substring (fnKey, 3, 99) + 'YN' = 'DelYN' THEN 4
WHEN substring (fnKey, 3, 99) + 'YN' = 'CopyYN' THEN 3
WHEN substring (fnKey, 3, 99) + 'YN' = 'DetailYN' THEN 1
ELSE 8
END fnKeySeq,
substring (fnKey, 3, 99) + 'YN' fnKey,
'Ghr_FnKey_' + fnKey fnKeyValue,
CASE
WHEN substring (fnKey, 3, 99) + 'YN' IN ('NewYN',
'ToExcelYN',
'FromExcelYN',
'BatchUpdateYN',
'BatchDelYN',
'RecycleYN',
'CancelRecycleYN',
'ManualYN',
'LogYN',
'BatchDelYN',
'BatchUpdateYN')
THEN
'table'
WHEN substring (fnKey, 3, 99) + 'YN' IN ('UpdateYN',
'DelYN',
'CopyYN',
'DetailYN')
THEN
'row'
WHEN substring (fnKey, 3, 99) + 'YN' IN ('QueryYN',
'AdvanceQueryYN',
'QuerySettingYN',
'')
THEN
'search'
ELSE
''
END fnType,
'left' position,
CASE substring (fnKey, 3, 99) + 'YN'
WHEN 'NewYN' THEN 'ghr-icon-add'
WHEN 'ToExcelYN' THEN 'ghr-file-export'
WHEN 'FromExcelYN' THEN 'ghr-file-import'
WHEN 'UpdateYN' THEN 'ghr-icon-edit'
WHEN 'BatchUpdateYN' THEN 'ghr-batch-update'
WHEN 'DelYN' THEN 'ghr-icon-trash'
WHEN 'BatchDelYN' THEN 'ghr-batch-del'
WHEN 'LogYN' THEN 'ghr-log'
WHEN 'ManualYN' THEN 'ghr-operation-manual'
WHEN 'CopyYN' THEN 'ghr-icon-copy'
WHEN 'DetailYN' THEN 'ghr-icon-eye-open'
ELSE ''
END icon
FROM (SELECT max (c.IsWaterMark) IsWaterMark,
max (c.IsPWDAgain) IsPWDAgain,
max (c.IsFromExcel) IsFromExcel,
max (c.IsToExcel) IsToExcel,
max (c.IsNew) IsNew,
max (c.IsDetail) IsDetail,
max (c.IsDel) IsDel,
max (c.IsDel) IsBatchDel,
max (c.IsUpdate) IsUpdate,
max (c.IsUpdate) IsBatchUpdate,
max (c.IsQuery) IsQuery,
max (c.IsPrint) IsPrint,
0 IsLog,
max (c.IsManual) IsManual,
max (c.IsCopy) IsCopy
FROM Ghrs_UserRole a, Ghrs_RoleMenu c, Ghrs_Menu d
WHERE a.IsEnable = 1
AND c.IsEnable = 1
AND d.IsEnable = 1
AND EXISTS
(SELECT 1
FROM Ghrs_Role kk
WHERE kk.roleid = a.roleid AND kk.IsEnable = 1)
AND a.UserID = '{1}'
AND a.RoleId = c.RoleID
AND c.MenuId = d.MenuId
AND d.MenuNo = '{0}') kk
UNPIVOT (fnKeyValue
FOR fnKey
IN (IsWaterMark,
IsPWDAgain,
IsFromExcel,
IsToExcel,
IsNew,
IsDetail,
IsUpdate,
IsDel,
IsQuery,
IsPrint,
IsLog,
IsManual,
IsCopy,
IsBatchUpdate,
IsBatchDel)) AS tt
WHERE fnKeyValue > 0
UNION ALL
SELECT NULL fnKeySeq,
'QuerySettingYN' fnKey,
'GHR_Common_000064' fnTitle,
'search' fnType,
'left' position,
NULL icon
UNION ALL
SELECT NULL fnKeySeq,
'LabelYN' fnKey,
'GHR_Common_000065' fnTitle,
NULL fnType,
NULL position,
NULL icon
UNION ALL
SELECT NULL fnKeySeq,
'MoreStyleYN' fnKey,
'GHR_Common_000066' fnTitle,
NULL fnType,
NULL position,
NULL icon
UNION ALL
SELECT NULL fnKeySeq,
'GridView' fnKey,
'GHR_Common_000067' fnTitle,
'table' fnType,
'right' position,
'ant-design:setting-outlined' icon
UNION ALL
SELECT 8 fnKeySeq,
'SetDefault' fnKey,
'恢复默认' fnTitle,
'table' fnType,
'left' position,
'ghr-icon-setDefault' icon
) A
WHERE fnKey NOT IN
(SELECT b.field
FROM Ghrs_UserPageSettingQueryColumn a, Ghrs_PageSettingQuery b
WHERE a.PageSettingQueryId = b.PageSettingQueryId
AND a.UserID = '{1}'
AND b.PageNo = '{0}'
AND a.IsEnable = 1
AND b.IsEnable = 1
AND a.isHidden = 'true'
AND b.elementType = 'FnKey') order by fnKeySeq";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
//result.JM_PageControlT1.Toolbar = await Db.Ado.SqlQueryAsync<Toolbar>(sql);
result.JM_PageControlT1.Toolbar = DbAccess.QueryList<Toolbar>(sql);
#endregion
#region 定义表格页面的栏位, 含 表格栏位, 常用查询栏位, 高级查询栏位,可编辑栏位
Db.Ado.BeginTran();
sql = @"IF OBJECT_ID('tempdb.[dbo].[#TmpInitPageSettingQuery]') IS NOT NULL DROP TABLE [dbo].[#TmpInitPageSettingQuery]
CREATE TABLE [dbo].[#TmpInitPageSettingQuery](pageColumnID int) alter TABLE [dbo].[#TmpInitPageSettingQuery]
add [elementType] [nvarchar](1000) , [field] [nvarchar](1000) ,[label] [nvarchar](1000) ,
[meky] [nvarchar](100) , [multipleSelect] [nvarchar](1000) , [dataType] [nvarchar](1000) ,
[required] [nvarchar](1000) , [palceholder] [nvarchar](1000) , [dataSourceType] [nvarchar](1000) ,
[dataSource] [nvarchar](1000) , [sortable] [nvarchar](1000) , [sortOrder] [nvarchar](1000) ,
[defaultHidden] [nvarchar](1000) ,[ConfigIsShow] [nvarchar](1000) , [filterable] [nvarchar](1000) , [width] int,
[align] [nvarchar](1000) , [fixed] [nvarchar](1000) ,
[editable] [nvarchar](1000) , [searchable] [nvarchar](1000) , [searchRequired] [nvarchar](1000) ,
[searchColumnSeq] int , [multipleSearchValue] [nvarchar](1000) , [maxTagCount] [nvarchar](1000) ,
[selfDefine] [nvarchar](2000) , [selectUI] [nvarchar](1000) , [isPrimaryKey] [nvarchar](1000) ,
isSorted nvarchar(10),isHidden nvarchar(10),isSearched nvarchar(10),sortNo int,
[searchOperator] nvarchar(max),searchColumnDefaultValue nvarchar(1000),AppColumnType nvarchar(100)";
int count = Db.Ado.ExecuteCommand(sql);
sql = @"SELECT count (1) UserHasSetting
FROM Ghrs_UserPageSettingQueryColumn a, Ghrs_PageSettingQuery b
WHERE b.PageNo = '{0}'
AND b.IsEnable = 1
AND b.field ! = 'Muti'
AND a.UserID = '{1}'
AND a.IsEnable = 1
AND a.PageSettingQueryId = b.PageSettingQueryId";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
int UserHasSetting = Db.Ado.GetInt(sql);
if (UserHasSetting == 0)
{
sql = @"INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT PageSettingQueryId,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource, APIDataSourceType, Ghrs_PageSettingQuery.APIDataSourceID)
dataSource,
sortable,
sortOrder,
defaultHidden,
ConfigIsShow,
filterable,
CASE WHEN width = '' THEN '100' ELSE width END,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
'false'
isSorted,
'false'
isHidden,
CASE
WHEN searchColumnSeq IS NULL OR searchColumnSeq = '' THEN 'false'
ELSE 'true'
END
isSearched,
SortNo,
searchCanOperator,
''
searchColumnDefaultValue,
''
AppColumnType
FROM Ghrs_PageSettingQuery
WHERE PageNo = '{0}'
AND elementType NOT IN ('PageGroup')
AND IsEnable = 1
ORDER BY SortNo";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
count = Db.Ado.ExecuteCommand(sql);
}
else
{
sql = @"INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT a.PageSettingQueryId,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource, APIDataSourceType, b.APIDataSourceID)
dataSource,
sortable,
isnull (a.sortOrder, b.sortOrder),
defaultHidden,
ConfigIsShow,
filterable,
CASE
WHEN isnull (a.width, b.width) = '' THEN '100'
ELSE isnull (a.width, b.width)
END,
align,
a.fixed,
editable,
searchable,
searchRequired,
isnull (a.searchColumnSeq, b.searchColumnSeq),
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
a.isSorted
isSorted,
isnull (a.isHidden, 'false')
isHidden,
CASE
WHEN a.searchColumnSeq IS NULL OR a.searchColumnSeq = ''
THEN
'false'
ELSE
'true'
END
isSearched,
a.SortNo,
b.searchCanOperator,
''
searchColumnDefaultValue,
''
AppColumnType
FROM Ghrs_UserPageSettingQueryColumn a, Ghrs_PageSettingQuery b
WHERE b.PageNo = '{0}'
AND b.IsEnable = 1
AND b.elementType NOT IN ('PageGroup')
AND a.UserID = '{1}'
AND a.IsEnable = 1
AND a.PageSettingQueryId = b.PageSettingQueryId
ORDER BY a.SortNo, b.SortNo
INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT PageSettingQueryId,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource,
APIDataSourceType,
Ghrs_PageSettingQuery.APIDataSourceID) dataSource,
sortable,
sortOrder,
defaultHidden,
ConfigIsShow,
filterable,
CASE WHEN width = '' THEN '100' ELSE width END,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
'false' isSorted,
'false' isHidden,
CASE
WHEN searchColumnSeq IS NULL OR searchColumnSeq = ''
THEN
'false'
ELSE
'true'
END isSearched,
SortNo,
searchCanOperator,
'' searchColumnDefaultValue,
'' AppColumnType
FROM Ghrs_PageSettingQuery
WHERE PageNo = '{0}'
AND elementType NOT IN ('PageGroup')
AND IsEnable = 1
AND elementtype = 'FnKey'
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TmpInitPageSettingQuery] kk
WHERE kk.pageColumnID =
Ghrs_PageSettingQuery.PageSettingQueryId
AND kk.field = Ghrs_PageSettingQuery.field
AND kk.elementtype = Ghrs_PageSettingQuery.elementtype)
ORDER BY SortNo ";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
count = Db.Ado.ExecuteCommand(sql);
}
sql = @"
-- 多语言的栏位的特别更新
IF OBJECT_ID ('tempdb.[dbo].[#TempInitUserPageFnKey]') IS NOT NULL
BEGIN
INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT 0,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource,
APIDataSourceType,
Ghrs_PageSettingQuery.APIDataSourceID) dataSource,
sortable,
sortOrder,
defaultHidden,
ConfigIsShow,
filterable,
CASE WHEN width = '' THEN '100' ELSE width END,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
'false' isSorted,
'false' isHidden,
CASE
WHEN searchColumnSeq IS NULL OR searchColumnSeq = ''
THEN
'false'
ELSE
'true'
END isSearched,
SortNo,
searchCanOperator,
'' searchColumnDefaultValue,
'' AppColumnType
FROM Ghrs_PageSettingQuery
WHERE field = 'Muti'
AND IsEnable = 1
AND elementtype = 'FnKey'
AND pageno = 'F_Dept'
AND EXISTS
(SELECT 1
FROM [dbo].[#TempInitUserPageFnKey]
WHERE fnKey = 'Muti')
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TmpInitPageSettingQuery] kk
WHERE kk.pageColumnID =
Ghrs_PageSettingQuery.PageSettingQueryId
AND kk.field = Ghrs_PageSettingQuery.field
AND kk.elementtype =
Ghrs_PageSettingQuery.elementtype)
ORDER BY SortNo
-- 明细按钮的宽度
INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT 0,
elementType,
'DetailYN',
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource,
APIDataSourceType,
Ghrs_PageSettingQuery.APIDataSourceID) dataSource,
sortable,
sortOrder,
defaultHidden,
ConfigIsShow,
filterable,
CASE WHEN width = '' THEN '100' ELSE width END,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
'false' isSorted,
'false' isHidden,
CASE
WHEN searchColumnSeq IS NULL OR searchColumnSeq = ''
THEN
'false'
ELSE
'true'
END isSearched,
SortNo,
searchCanOperator,
'' searchColumnDefaultValue,
'' AppColumnType
FROM Ghrs_PageSettingQuery
WHERE field = 'Muti'
AND IsEnable = 1
AND elementtype = 'FnKey'
AND pageno = 'F_Dept'
AND EXISTS
(SELECT 1
FROM [dbo].[#TempInitUserPageFnKey]
WHERE fnKey = 'DetailYN')
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TmpInitPageSettingQuery] kk
WHERE field = 'DetailYN' AND elementtype = 'FnKey')
ORDER BY SortNo
END
ELSE
BEGIN
INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT 0,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource,
APIDataSourceType,
Ghrs_PageSettingQuery.APIDataSourceID) dataSource,
sortable,
sortOrder,
defaultHidden,
ConfigIsShow,
filterable,
CASE WHEN width = '' THEN '100' ELSE width END,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
'false' isSorted,
'false' isHidden,
CASE
WHEN searchColumnSeq IS NULL OR searchColumnSeq = ''
THEN
'false'
ELSE
'true'
END isSearched,
SortNo,
searchCanOperator,
'' searchColumnDefaultValue,
'' AppColumnType
FROM Ghrs_PageSettingQuery
WHERE field = 'Muti'
AND IsEnable = 1
AND elementtype = 'FnKey'
AND pageno = 'F_Dept'
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TmpInitPageSettingQuery] kk
WHERE kk.pageColumnID =
Ghrs_PageSettingQuery.PageSettingQueryId
AND kk.field = Ghrs_PageSettingQuery.field
AND kk.elementtype =
Ghrs_PageSettingQuery.elementtype)
ORDER BY SortNo
-- 明细按钮的宽度
INSERT INTO [dbo].[#TmpInitPageSettingQuery]
SELECT 0,
elementType,
'DetailYN',
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dbo.FS_GetdataSourceBySet
(dataSource,
APIDataSourceType,
Ghrs_PageSettingQuery.APIDataSourceID) dataSource,
sortable,
sortOrder,
defaultHidden,
ConfigIsShow,
filterable,
CASE WHEN width = '' THEN '100' ELSE width END,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
multipleSearchValue,
maxTagCount,
selfDefine,
selectUI,
isPrimaryKey,
'false' isSorted,
'false' isHidden,
CASE
WHEN searchColumnSeq IS NULL OR searchColumnSeq = ''
THEN
'false'
ELSE
'true'
END isSearched,
SortNo,
searchCanOperator,
'' searchColumnDefaultValue,
'' AppColumnType
FROM Ghrs_PageSettingQuery
WHERE field = 'Muti'
AND IsEnable = 1
AND elementtype = 'FnKey'
AND pageno = 'F_Dept'
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TmpInitPageSettingQuery] kk
WHERE field = 'DetailYN' AND elementtype = 'FnKey')
ORDER BY SortNo
END
-- 更新可编辑
IF OBJECT_ID ('tempdb.[dbo].[#TempInitUserPageFnKey]') IS NOT NULL
BEGIN
UPDATE[dbo].[#TmpInitPageSettingQuery]
SET editable = 'false'
WHERE ( NOT EXISTS
(SELECT 1
FROM [dbo].[#TempInitUserPageFnKey]
WHERE fnKey = 'UpdateYN'
AND '{0}' NOT IN ('F_Staff~1',
'F_StaffToDo',
'F_StaffQuery',
'F_StaffChangeToDo',
'F_StaffChangeToEnable',
'F_StaffChangeQuery',
'F_SalaryChangeToDo',
'F_SalaryChange',
'F_SalaryChangeQuery'))
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TempInitUserPageFnKey]
WHERE fnKey = 'TBD2YN'
AND '{0}' IN
('F_Staff~1',
'F_StaffToDo',
'F_StaffQuery'))
AND NOT EXISTS
(SELECT 1
FROM [dbo].[#TempInitUserPageFnKey]
WHERE fnKey = 'TBD5YN'
AND '{0}' IN ('F_StaffChangeToDo',
'F_StaffChangeToEnable',
'F_StaffChangeQuery',
'F_SalaryChangeToDo',
'F_SalaryChange',
'F_SalaryChangeQuery')))
AND '{0}' NOT IN ('F_SchedulePeriodSetup')
END
-- 更新栏位说明(从多语言里面)
UPDATE[dbo].[#TmpInitPageSettingQuery]
SET label = [dbo].[FLangKeyToValue] (Meky, {2}, label);
UPDATE[dbo].[#TmpInitPageSettingQuery]
SET width = 50
WHERE elementType = 'FnKey' OR field = 'Muti';";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
count = Db.Ado.ExecuteCommand(sql);
sql = @"select pageColumnID,elementType, field,label,meky, multipleSelect, dataType,
required, palceholder, dataSourceType,dataSource, sortable, sortOrder,
defaultHidden, ConfigIsShow, filterable, width,align, fixed,editable, searchable,
searchRequired,searchColumnSeq, multipleSearchValue, maxTagCount,
selfDefine, selectUI, isPrimaryKey,isSorted,isHidden,isSearched,sortNo,
( select ParaDetailNo operator,
[dbo].[FLangKeyToValue](MKey,{2},ParaDetailName) operatorDesc,
SqlFunction operatorIcon
from Ghrs_ParaDetail where ParaMasterId=13 and IsEnable=1
and ParaDetailNo in (select Value from dbo.Fs1_GHR30_SplitString2(searchOperator,','))
order by (select positon from dbo.Fs1_GHR30_SplitString2(searchOperator,',')
where value= ParaDetailNo)
FOR JSON Path ) searchOperator1 ,
iif(ISJSON(searchColumnDefaultValue)=1,JSON_QUERY(searchColumnDefaultValue),null) searchColumnDefaultValue ,
AppColumnType
from [dbo].[#TmpInitPageSettingQuery]
order by sortno asc";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
var TableColumn = Db.Ado.SqlQuery<TableColumn1>(sql);
result.JM_TableColumnT1.TableColumn = Mapper.Map(TableColumn).ToANew<List<TableColumn>>();
result.JM_TableColumnT1.TableColumn = result.JM_TableColumnT1.TableColumn.Where(x => x.field != "DetailYN" && x.field != "Muti").ToList();
result.JM_TableColumnT1.TableColumn.ForEach(x =>
{
if (!string.IsNullOrWhiteSpace(x.searchOperator1))
x.searchOperator = JsonConvert.DeserializeObject<List<searchOperator>>(x.searchOperator1);
x.searchOperator1 = null;
if (x.multipleSearchValue == "true")
x.searchColumnDefaultValue = new List<string>();
});
Db.Ado.CommitTran();
sql = @"SELECT Langkey field,
CASE {2}
WHEN 1 THEN isnull (Value01, LangValue)
WHEN 2 THEN isnull (Value02, LangValue)
WHEN 3 THEN isnull (Value03, LangValue)
WHEN 4 THEN isnull (Value04, LangValue)
WHEN 5 THEN isnull (Value05, LangValue)
WHEN 6 THEN isnull (Value06, LangValue)
WHEN 7 THEN isnull (Value07, LangValue)
WHEN 8 THEN isnull (Value08, LangValue)
WHEN 9 THEN isnull (Value09, LangValue)
WHEN 10 THEN isnull (Value10, LangValue)
END label
FROM Ghrs_LangKey
WHERE IsEnable = 1
AND (LangKey LIKE 'GHR_Page%' OR LangKey LIKE 'GHR_Common%')";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
result.DT_PageMutiMsg = Db.Ado.SqlQuery<DT_PageMutiMsg>(sql);
sql = "select QueryProcedure, EditProcedure, IUDProcedure from Ghrs_Menu where MenuNo='{0}'";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
DataTable dt = Db.Ado.GetDataTable(sql);
if (dt.Rows.Count > 0)
{
result.DT_Procedure.QueryProcedure = dt.Rows[0]["QueryProcedure"].ToString();
result.DT_Procedure.EditProcedure = dt.Rows[0]["EditProcedure"].ToString();
result.DT_Procedure.IUDProcedure = dt.Rows[0]["IUDProcedure"].ToString();
if (!string.IsNullOrWhiteSpace(result.DT_Procedure.EditProcedure))
{
result.DT_Procedure.ImportExcel = result.DT_Procedure.EditProcedure.Replace("QueryForm", "ImportExcel");
result.DT_Procedure.DownExcelTemplate = result.DT_Procedure.EditProcedure.Replace("QueryForm", "DownExcelTemplate?menuName=" + param.menuName);
result.DT_Procedure.ExportExcel = result.DT_Procedure.EditProcedure.Replace("QueryForm", "ExportExcel");
}
}
#endregion
#region 特殊处理
var toolbar = new Toolbar();
var index = -1;
switch (param.menuName)
{
case "F_QuestionBank":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD4YN"; }
break;
case "F_ExamPaperDraft":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
index = result.JM_PageControlT1.Toolbar.FindIndex(x => x.fnKey == "TBD1YN");
result.JM_PageControlT1.Toolbar.Insert(index + 1, new Toolbar()
{
display = true,
fnKey = "TBD4YN",
fnTitle = "发布",
fnType = "table",
icon = "ghr-publish",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "预览",
fnType = "row",
icon = "ghr-preview",
position = "left"
});
result.DT_Procedure.ExportExcel = "/api/Ghre_ExamPaper/ExportExcel/Draft";
break;
case "F_ExamPaperReleased":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD4YN",
fnTitle = "取消发布",
fnType = "table",
icon = "ghr-publish",
position = "left"
});
result.JM_PageControlT1.Toolbar.Insert(1, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "停用",
fnType = "table",
icon = "ghr-icon-stop",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "预览",
fnType = "row",
icon = "ghr-preview",
position = "left"
});
result.DT_Procedure.ExportExcel = "/api/Ghre_ExamPaper/ExportExcel/Released";
break;
case "F_ExamPaperDisabled":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD4YN",
fnTitle = "启用",
fnType = "table",
icon = "ghr-icon-start",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "预览",
fnType = "row",
icon = "ghr-preview",
position = "left"
});
result.DT_Procedure.ExportExcel = "/api/Ghre_ExamPaper/ExportExcel/Disabled";
break;
case "F_Training_CoursewWare":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD4YN"; }
index = result.JM_PageControlT1.Toolbar.FindIndex(x => x.fnKey == "TBD2YN");
result.JM_PageControlT1.Toolbar.Insert(index + 1, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "下载",
fnType = "row",
icon = "ghr-icon-download",
position = "left"
});
break;
case "F_Training_Course_Draft":
index = result.JM_PageControlT1.Toolbar.FindIndex(x => x.fnKey == "NewYN");
result.JM_PageControlT1.Toolbar.Insert(index + 1, new Toolbar()
{
display = true,
fnKey = "TBD4YN",
fnTitle = "发布",
fnType = "table",
icon = "ghr-publish",
position = "left"
});
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD5YN"; }
result.DT_Procedure.ExportExcel = "/api/Ghre_Course/ExportExcel/Draft";
break;
case "F_Training_Course_Released":
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD4YN",
fnTitle = "取消发布",
fnType = "table",
icon = "ghr-publish",
position = "left"
});
result.JM_PageControlT1.Toolbar.Insert(1, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "停用",
fnType = "table",
icon = "ghr-icon-stop",
position = "left"
});
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD6YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD7YN"; }
result.DT_Procedure.ExportExcel = "/api/Ghre_Course/ExportExcel/Released";
break;
case "F_Training_Course_Disabled":
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "启用",
fnType = "table",
icon = "ghr-icon-stop",
position = "left"
});
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD6YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD7YN"; }
result.DT_Procedure.ExportExcel = "/api/Ghre_Course/ExportExcel/Disabled";
break;
case "F_CourseClassification":
case "F_CourseScene":
index = result.JM_PageControlT1.Toolbar.FindIndex(x => x.fnKey == "BatchUpdateYN");
result.JM_PageControlT1.Toolbar.RemoveAt(index);
break;
case "F_SchoolManage":
case "F_WorkLicenseManage":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD1YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD2YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD3YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
break;
case "F_OnlineExamScores":
result.DT_Procedure.QueryProcedure = dt.Rows[0]["QueryProcedure"].ToString();
result.DT_Procedure.QueryProcedure += "/" + param.jsonParam.MasterId;
result.DT_Procedure.ExportExcel += "/" + param.jsonParam.MasterId;
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo = 'TrainingExamScore'";
var toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD4YN",
fnTitle = "评分",
fnType = "row",
icon = "ghr-preview",
position = "left"
});
break;
case "F_CreditCheck":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
break;
case "F_RequiredElectiveRules":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD1YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD2YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD3YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "结果",
fnType = "row",
icon = "ghr-preview",
position = "left"
});
break;
case "F_ESS_StudyRecord":
result.DT_Procedure.ExportExcel = "/api/Ghre_StudyRecord/ExportStaffExcel";
break;
case "F_Training_Demand_ToDo":
case "F_TeacherManageTemporary":
case "F_TeacherChangeTemporary":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
index = result.JM_PageControlT1.Toolbar.FindIndex(x => x.fnKey == "TBD1YN");
result.JM_PageControlT1.Toolbar.Insert(index + 1, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "转入待确认",
fnType = "table",
icon = "ghr-icon-user-wait",
position = "left"
});
break;
case "F_Training_Demand_ToConfirm":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "拒绝",
fnType = "table",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "同意",
fnType = "table",
icon = "ess-icon-approval",
position = "left"
});
break;
case "F_Training_Demand_ToEnable":
case "F_Training_Demand_Query":
case "F_Training_Demand_VoidQuery":
case "F_TeacherManage":
case "F_TeacherManageActive":
case "F_TeacherChangeManage":
case "F_TeacherChangeActive":
case "F_TeacherDisabled":
case "F_TeacherChangeDisabled":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
break;
case "F_TeacherChangeWaitConfirm":
case "F_TeacherManageWaitConfirm":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD7YN",
fnTitle = "拒绝",
fnType = "table",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Insert(0, new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "同意",
fnType = "table",
icon = "ess-icon-approval",
position = "left"
});
break;
case "F_ResumeMaintenance_All":
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'RecruitResume%'";
toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
{
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecommend").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "推荐",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRemind").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD11YN",
fnTitle = "提醒",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeScheduleInterview").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD25YN",
fnTitle = "安排面试",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD26YN",
fnTitle = "转入待发offer",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTag").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "标签",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecycle").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD7YN",
fnTitle = "回收",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTalentPool").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD8YN",
fnTitle = "加入人才库",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeBlacklist").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD9YN",
fnTitle = "加入黑名单",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD10YN",
fnTitle = "下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
break;
case "F_ResumeMaintenance_Process":
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'RecruitResume%'";
toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
{
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeProcessRemind").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD12YN",
fnTitle = "提醒",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeReScheduleInterview").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "重新推荐",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeScheduleInterview").Any())
{
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD13YN",
fnTitle = "安排面试",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD25YN",
fnTitle = "安排面试",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeApplyOffer").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD15YN",
fnTitle = "发起录用审批",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD26YN",
fnTitle = "转入待发offer",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD22YN",
fnTitle = "评估",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTag").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "标签",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecycle").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD7YN",
fnTitle = "回收",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTalentPool").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD8YN",
fnTitle = "加入人才库",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeBlacklist").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD9YN",
fnTitle = "加入黑名单",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD10YN",
fnTitle = "下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
break;
case "F_ResumeMaintenance_Hire"://录用
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'RecruitResume%'";
toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
{
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeSendOffer").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD16YN",
fnTitle = "发offer",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeOfferRemind").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD17YN",
fnTitle = "提醒",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeOfferHasWork").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD18YN",
fnTitle = "已报到",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeOfferNoWork").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD19YN",
fnTitle = "未报到",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeOfferDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD27YN",
fnTitle = "Offer下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTag").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "标签",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecycle").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD7YN",
fnTitle = "回收",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTalentPool").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD8YN",
fnTitle = "加入人才库",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeBlacklist").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD9YN",
fnTitle = "加入黑名单",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD10YN",
fnTitle = "下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
break;
case "F_ResumeMaintenance_Talent_Pool"://人才库
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'RecruitResume%'";
toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
{
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecommend").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD5YN",
fnTitle = "推荐",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTag").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "标签",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecycle").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD7YN",
fnTitle = "回收",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeBlacklist").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD9YN",
fnTitle = "加入黑名单",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD10YN",
fnTitle = "下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
break;
case "F_ResumeMaintenance_Recycled"://回收站
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'RecruitResume%'";
toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
{
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTag").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "标签",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTalentPool").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD8YN",
fnTitle = "加入人才库",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeBlacklist").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD9YN",
fnTitle = "加入黑名单",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD10YN",
fnTitle = "下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
break;
case "F_ResumeMaintenance_Blacklist"://黑名单
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'RecruitResume%'";
toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (toolbarRoles != null && toolbarRoles.Any())
{
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTag").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD6YN",
fnTitle = "标签",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeTalentPool").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD8YN",
fnTitle = "加入人才库",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeRecycle").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD7YN",
fnTitle = "回收",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
if (toolbarRoles.Where(x => x.RoleNo == "RecruitResumeDownLoad").Any())
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD10YN",
fnTitle = "下载",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
}
break;
case "F_ESS_Candidate"://
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD20YN",
fnTitle = "约面",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD21YN",
fnTitle = "不合适",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
break;
case "F_ESS_Interview"://
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD22YN",
fnTitle = "评估",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD23YN",
fnTitle = "改期",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
result.JM_PageControlT1.Toolbar.Add(new Toolbar()
{
display = true,
fnKey = "TBD24YN",
fnTitle = "取消",
fnType = "row",
icon = "ess-icon-reject",
position = "left"
});
break;
case "F_OfferTemplate":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD1YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD2YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD3YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
break;
case "F_AnnualManpower":
var config = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Year_Human_Start_Month").FirstAsync();
var startMonth = config != null ? config.ConfigValue.ObjToInt() : 1;
var months = new List<string>();
List<int> numbers = new();
for (int i = 1; i <= 12; i++)
{
if (i < 10)
months.Add("0" + i);
else
months.Add(i.ObjToString());
numbers.Add(i);
}
var curentYear = DateTime.Now.Year;
var curentMonth = DateTime.Now.Month;
// 指定要打头的数字
int startNumber = startMonth;
if (curentMonth < startMonth)
curentYear = -1;
// 创建一个新的列表用于存储重新排序后的结果
List<int> reorderedNumbers = new();
var sort = result.JM_TableColumnT1.TableColumn.Where(x => x.field == "M1").SingleOrDefault()?.SortNo ?? 5;
result.JM_TableColumnT1.TableColumn?.ForEach(x =>
{
if (months.Where(o => o == x.label).Any())
x.GroupName = "预算编制数";
if (x.field == "Year")
x.searchColumnDefaultValue = curentYear;
});
// 找到指定数字的索引
int index1 = numbers.IndexOf(startNumber);
if (index1 != -1)
{
// 从指定数字开始,按照循环顺序添加数字
for (int i = 0; i < numbers.Count; i++)
{
int currentIndex = (index1 + i) % numbers.Count;
reorderedNumbers.Add(numbers[currentIndex]);
}
foreach (var num in reorderedNumbers)
{
result.JM_TableColumnT1.TableColumn?.ForEach(x =>
{
if (x.label.ObjToInt() == num)
{
x.SortNo = sort;
x.label = curentYear + "-" + x.label;
}
});
if (num == 12)
curentYear++;
sort++;
}
}
result.JM_TableColumnT1.TableColumn = result.JM_TableColumnT1.TableColumn.OrderBy(x => x.SortNo).ToList();
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD1YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD2YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD3YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN";
break;
}
#endregion
return new ServiceResult<ModuleReturn>() { Success = true, Message = "查询成功", Data = result, };
}
/// <summary>
/// 获取模块信息
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<ModuleESSReturn>> GetESSModuleInfoAsync([FromBody] ModuleParam param)
{
var result = new ModuleESSReturn();
var result1 = await GetModuleInfoAsync(param);
result.JM_PageControlT1 = result1.Data.JM_PageControlT1;
result.DT_TableColumnT1 = result1.Data.JM_TableColumnT1.TableColumn;
result.DT_PageMutiMsg = result1.Data.DT_PageMutiMsg;
result.DT_Procedure = result1.Data.DT_Procedure;
result.DT_TableDataSearchT1 = result.DT_TableColumnT1.ToList();
result.DT_TableDataSearchT1 = result.DT_TableDataSearchT1.OrderBy(x => x.searchColumnSeq).Where(x => x.searchable == true).ToList();
result.DT_TableDataSearchT1.ForEach(x =>
{
if (x.searchOperator != null && x.searchOperator.Where(o => o.@operator == "Range").Any())
x.IsRange = 1;
});
return new ServiceResult<ModuleESSReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region 获取通用列表下拉
/// <summary>
/// 获取通用列表下拉
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public async Task<ServiceResult<CommonSelect>> GetSelectAsync(string type, string keyWords)
{
var result = new CommonSelect();
JArray TableColumn = new JArray();
JArray DT_TablePageInfoT1 = new JArray();
JArray DT_TableDataT1 = new JArray();
JObject searchItem = new JObject();
JObject item;
DataTable dt;
string sql;
switch (type)
{
case "Ghre_Course":
searchItem = new JObject
{
new JProperty("defaultHidden", true),
new JProperty("field","value"),
new JProperty("label","课程ID"),
};
TableColumn.Add(searchItem);
searchItem = new JObject
{
new JProperty("field","label"),
new JProperty("label","课程编号"),
};
TableColumn.Add(searchItem);
sql = "SELECT Id, CourseNo, CourseName FROM Ghre_Course WHERE IsEnable=1 AND Status='Released'";
if (!string.IsNullOrWhiteSpace(keyWords))
sql += $"AND ( CourseNo like '%{keyWords}%' or CourseName like '%{keyWords}%')";
dt = await Db.Ado.GetDataTableAsync(sql);
for (int i = 0; i < dt.Rows.Count; i++)
{
item = new JObject {
new JProperty("value",long.Parse(dt.Rows[i]["Id"].ToString())),
new JProperty("label",dt.Rows[i]["CourseNo"].ToString()+"-"+dt.Rows[i]["CourseName"].ToString())
};
DT_TableDataT1.Add(item);
}
item = new JObject
{
new JProperty("ListMax",100),
new JProperty("ListMin",10),
new JProperty("PageNum",1),
new JProperty("PageSize",99999),
new JProperty("TotalCount",dt.Rows.Count),
new JProperty("UIType","Auto")
};
DT_TablePageInfoT1.Add(item);
break;
case "Ghre_CourseScene":
searchItem = new JObject
{
new JProperty("defaultHidden", true),
new JProperty("field","value"),
new JProperty("label","场景ID"),
};
TableColumn.Add(searchItem);
searchItem = new JObject
{
new JProperty("field","label"),
new JProperty("label","场景"),
};
TableColumn.Add(searchItem);
sql = "SELECT Id, SceneNo, SceneName FROM Ghre_CourseScene WHERE IsEnable=1";
if (!string.IsNullOrWhiteSpace(keyWords))
sql += $"AND ( SceneNo like '%{keyWords}%' or SceneName like '%{keyWords}%')";
dt = await Db.Ado.GetDataTableAsync(sql);
for (int i = 0; i < dt.Rows.Count; i++)
{
item = new JObject
{
new JProperty("value",long.Parse(dt.Rows[i]["Id"].ToString())),
new JProperty("label",dt.Rows[i]["SceneNo"].ToString()+"-"+dt.Rows[i]["SceneName"].ToString())
};
DT_TableDataT1.Add(item);
}
item = new JObject
{
new JProperty("ListMax",100),
new JProperty("ListMin",10),
new JProperty("PageNum",1),
new JProperty("PageSize",99999),
new JProperty("TotalCount",dt.Rows.Count),
new JProperty("UIType","Auto")
};
DT_TablePageInfoT1.Add(item);
break;
case "ScoreMethod":
searchItem = new JObject {
new JProperty("defaultHidden", true),
new JProperty("field","value"),
new JProperty("label","value")
};
TableColumn.Add(searchItem);
searchItem = new JObject
{
new JProperty("field","label"),
new JProperty("label","label")
};
TableColumn.Add(searchItem);
item = new JObject {
new JProperty("value","Manual"),
new JProperty("label","人工评分")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","System"),
new JProperty("label","系统评分")
};
DT_TableDataT1.Add(item);
item = new JObject
{
new JProperty("ListMax",100),
new JProperty("ListMin",10),
new JProperty("PageNum",1),
new JProperty("PageSize",99999),
new JProperty("TotalCount",2),
new JProperty("UIType","Auto")
};
DT_TablePageInfoT1.Add(item);
break;
case "DifficultyLevel":
searchItem = new JObject {
new JProperty("defaultHidden", true),
new JProperty("field","value"),
new JProperty("label","value")
};
TableColumn.Add(searchItem);
searchItem = new JObject {
new JProperty("field","label"),
new JProperty("label","label")
};
TableColumn.Add(searchItem);
item = new JObject {
new JProperty("value","Easy"),
new JProperty("label","简单")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","Normal"),
new JProperty("label","普通")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","Hard"),
new JProperty("label","困难")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("ListMax",100),
new JProperty("ListMin",10),
new JProperty("PageNum",1),
new JProperty("PageSize",99999),
new JProperty("TotalCount",3),
new JProperty("UIType","Auto")
};
DT_TablePageInfoT1.Add(item);
break;
case "QuestionType":
searchItem = new JObject {
new JProperty("defaultHidden", true),
new JProperty("field","value"),
new JProperty("label","value")
};
TableColumn.Add(searchItem);
searchItem = new JObject {
new JProperty("field","label"),
new JProperty("label","label")
};
TableColumn.Add(searchItem);
item = new JObject {
new JProperty("value","Single"),
new JProperty("label","单选题")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","Multiple"),
new JProperty("label","多选题")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","TrueOrFalse"),
new JProperty("label","判断题")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","Completion"),
new JProperty("label","填空题")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("value","ShortAnswer"),
new JProperty("label","简答题")
};
DT_TableDataT1.Add(item);
item = new JObject {
new JProperty("ListMax",100),
new JProperty("ListMin",10),
new JProperty("PageNum",1),
new JProperty("PageSize",99999),
new JProperty("TotalCount",5),
new JProperty("UIType","Auto")
};
DT_TablePageInfoT1.Add(item);
break;
}
result.JM_TableColumnT1.TableColumn = TableColumn;
result.DT_TableDataT1 = DT_TableDataT1;
result.DT_TablePageInfoT1 = DT_TablePageInfoT1;
return new ServiceResult<CommonSelect>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region Excel导出
/// <summary>
/// Excel导出
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<QueryExportReturn>> ExportExcelAsync(QueryExport param)
{
var result = new QueryExportReturn();
var tableNmae = string.Empty;
string sql = "select QueryProcedure, EditProcedure, IUDProcedure from Ghrs_Menu where MenuNo='{0}'";
sql = string.Format(sql, param.menuName);
var dt = await Db.Ado.GetDataTableAsync(sql);
if (dt.Rows.Count > 0)
{
string queryProcedure = dt.Rows[0]["QueryProcedure"].ToString();
string[] aaa = queryProcedure.Split('/');
tableNmae = aaa[1];
}
sql = $@"SELECT Row_Number ()
OVER (ORDER BY CONVERT (INT, rowNum), CONVERT (INT, colNum))
sortNum,
field,
[dbo].[FLangKeyToValue] (mkey, 1, label)
label,
dbo.FS_GetdataSourceBySet
(dataSource, APIDataSourceType, Ghrs_PageSettingEdit.APIDataSourceID)
dataSource,
required,
dataType,
CONVERT (NVARCHAR (1000), '')
commentText -- StaffWith
,
elementType
+ CASE WHEN multipleSelect = 'true' THEN '_multiple' ELSE '' END
elementType -- 增加多选判断
FROM Ghrs_PageSettingEdit
WHERE IsEnable = 1
AND elementType NOT IN ('FnKey', 'PageGroup')
AND pageNo = 'F_Training_Course'
--and editable = 'true'
AND defaultHidden ! = 'true'
AND elementType ! = 'FileUpload'
AND dataType ! = ''";
var columns = await Db.Ado.SqlQueryAsync<QueryExportColumn>(sql);
columns = columns.WhereIF(param.exportSet.ExFields.Any(), x => param.exportSet.ExFields.Contains(x.field)).ToList();
dt = await Db.Ado.GetDataTableAsync("SELECT * FROM " + tableNmae + " WHERE IsEnable=1");
// 获取所有列名
var dtColumns = dt.Columns;
var convertColumns = columns.Where(x => !string.IsNullOrEmpty(x.dataSource) && !string.IsNullOrEmpty(x.elementType)).ToList();
for (int i = 0; i < convertColumns.Count; i++)
{
dt.Columns.Add(convertColumns[i].field + "1", typeof(string));
//var values = dt.AsEnumerable().Select(row => row.Field<string>(column.field)).Distinct().ToList();
sql = $@"SELECT SelectSql from Ghrs_ListCommonSql WHERE ListCommonSqlNo=REPLACE('{convertColumns[i].dataSource}','CommonList_','') and IsEnable=1 ";
sql = await Db.Ado.GetScalarAsync(sql) as string;
sql = sql.Replace("{@KeyWords}", null);
var dtSelect = await Db.Ado.SqlQueryAsync<CommonSelectItem>(sql);
foreach (DataColumn column in dtColumns)
{
if (column.ColumnName == convertColumns[i].field)
for (int j = 0; j < dt.Rows.Count; j++)
dt.Rows[j][column.ColumnName + "1"] = dtSelect.FirstOrDefault(x => x.value == dt.Rows[j][column.ColumnName].ToString())?.label;
}
}
var fieldDescs = columns.ToDictionary(item => item.label, item => convertColumns.Any(x => x.field == item.field) ? item.field + "1" : item.field);
//var fileId = await ReportHelper.SendFile(dt, param.exportSet.TitleName, fieldDescs, null, null, null);
return new ServiceResult<QueryExportReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region Excel导入模板
/// <summary>
/// Excel导入模板
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<QueryExportReturn>> DownImportTemplateAsync(QueryExport param)
{
var result = new QueryExportReturn();
var tableNmae = string.Empty;
var menuName = string.Empty;
string sql = "select QueryProcedure, EditProcedure, IUDProcedure, MenuName from Ghrs_Menu where MenuNo='{0}'";
sql = string.Format(sql, param.menuName);
var dt = await Db.Ado.GetDataTableAsync(sql);
if (dt.Rows.Count > 0)
{
string queryProcedure = dt.Rows[0]["QueryProcedure"].ToString();
menuName = dt.Rows[0]["MenuName"].ToString();
string[] aaa = queryProcedure.Split('/');
tableNmae = aaa[1];
}
sql = $@"SELECT Row_Number ()
OVER (ORDER BY CONVERT (INT, rowNum), CONVERT (INT, colNum))
sortNum,
field,
[dbo].[FLangKeyToValue] (mkey, 1, label)
label,
dbo.FS_GetdataSourceBySet
(dataSource, APIDataSourceType, Ghrs_PageSettingEdit.APIDataSourceID)
dataSource,
required,
dataType,
CONVERT (NVARCHAR (1000), '')
commentText -- StaffWith
,
elementType
+ CASE WHEN multipleSelect = 'true' THEN '_multiple' ELSE '' END
elementType -- 增加多选判断
FROM Ghrs_PageSettingEdit
WHERE IsEnable = 1
AND elementType NOT IN ('FnKey', 'PageGroup')
AND pageNo = 'F_Training_Course'
--and editable = 'true'
AND defaultHidden ! = 'true'
AND elementType ! = 'FileUpload'
AND dataType ! = ''";
var columns = await Db.Ado.SqlQueryAsync<QueryExportColumn>(sql);
columns = columns.WhereIF(param.exportSet.ExFields.Any(), x => param.exportSet.ExFields.Contains(x.field)).ToList();
dt = await Db.Ado.GetDataTableAsync("SELECT * FROM " + tableNmae + " WHERE IsEnable=1");
await ReportHelper.ImportTemplate(Db, columns, dt, menuName);
return new ServiceResult<QueryExportReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region Excel数据导入
public async Task<ServiceResult<QueryExportReturn>> ImportExcelAsync(IFormFile file, string menuName, int langId, int userId)
{
var fid = SnowFlakeSingle.Instance.NextId();
var path = $"{$"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}upload{Path.DirectorySeparatorChar}{fid}{Path.DirectorySeparatorChar}"}";
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
using (var stream = new FileStream(path + file.FileName, FileMode.Create))
{
await file.CopyToAsync(stream);
}
var result = new QueryExportReturn();
await ReportHelper.ExcelToDataTable(Db, path, menuName, langId, userId);
return new ServiceResult<QueryExportReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region 获取流程信息
/// <summary>
/// 获取流程信息
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<FlowReturn>> GetFlowInfoAsync(FlowParam param)
{
var flowReturn = new FlowReturn();
#region JM_PageFormT1
var sql = $@"DECLARE
@SQL NVARCHAR (MAX) = '',
@DoType NVARCHAR (MAX) = '{param.doType}'
BEGIN
SET @SQL =
[dbo].[Fs_UserMenuFnKeyPriv2] ({param.langId},
{param.userId},
'{param.menuName}',
9)
SET @SQL =
replace (@SQL,
'""layout"":""horizontal""',
'""layout"":""horizontal"",""FlowPageStyle"":""'
+ (SELECT isnull (FlowPageStyle, 'All')
FROM Ghrw_Flow
WHERE FlowID = {param.jsonParam.FlowID})
+ '""')
SET @SQL =
replace
(@SQL,
'<DoTypeTrueOrFalse>',
CASE WHEN @DoType = 'Query' THEN 'true' ELSE +'""false""' END)
EXECUTE (@SQL)
END";
var result = await Db.Ado.GetStringAsync(sql);
flowReturn.JM_PageFormT1.PageForm = JsonHelper.JsonToObj<List<PageForm>>(result);
#endregion
#region DT_PageMutiMsg
sql = @"SELECT Langkey field,
CASE {2}
WHEN 1 THEN isnull (Value01, LangValue)
WHEN 2 THEN isnull (Value02, LangValue)
WHEN 3 THEN isnull (Value03, LangValue)
WHEN 4 THEN isnull (Value04, LangValue)
WHEN 5 THEN isnull (Value05, LangValue)
WHEN 6 THEN isnull (Value06, LangValue)
WHEN 7 THEN isnull (Value07, LangValue)
WHEN 8 THEN isnull (Value08, LangValue)
WHEN 9 THEN isnull (Value09, LangValue)
WHEN 10 THEN isnull (Value10, LangValue)
END label
FROM Ghrs_LangKey
WHERE IsEnable = 1
AND (LangKey LIKE 'GHR_Page%' OR LangKey LIKE 'GHR_Common%')";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
flowReturn.DT_PageMutiMsg = await Db.Ado.SqlQueryAsync<DT_PageMutiMsg>(sql);
#endregion
#region JM_PageFormActionsT1
sql = $@"SELECT field fnKey, [dbo].[FLangKeyToValue] (mkey, {param.langId}, label) fnTitle, icon
FROM Ghrs_PageSettingEdit
WHERE IsEnable = 1
AND pageNo = '{param.menuName}'
AND elementType = 'FnKey'";
flowReturn.JM_PageFormActionsT1.Toolbar = await Db.Ado.SqlQueryAsync<Toolbar>(sql);
#endregion
#region JM_TableColumnT1
sql = $@"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = ''
BEGIN
IF OBJECT_ID ('tempdb.[dbo].[#TempInitUserPageEditColumn]') IS NOT NULL
DROP TABLE [dbo].[#TempInitUserPageEditColumn]
CREATE TABLE [dbo].[#TempInitUserPageEditColumn]
(
InitID INT IDENTITY (1,1),
field NVARCHAR (100),
label NVARCHAR (100),
required NVARCHAR (100),
editable NVARCHAR (100),
rowNum INT,
colNum INT,
elementType NVARCHAR (100),
dataSource NVARCHAR (100),
defaultHidden NVARCHAR (100),
isPrimaryKey NVARCHAR (100),
isSingleColumn INT,
dataType NVARCHAR (100),
columnWidth NVARCHAR (100),
dynamicShow INT,
PrivFlag INT,
multipleSelect NVARCHAR (100),
canBatchPageDisplay NVARCHAR (100)
)
INSERT INTO [#TempInitUserPageEditColumn]
SELECT pp.ColumnName field,
pp.ColumnLabel label,
iif (pp.IsRequired = 1, 'true', 'false') required,
iif
(pp.Editable = 1 AND isnull (kk.PrivFlag, 1) = 2,
'true',
'false') editable,
pp.SortNo rowNum,
1 colNum,
pp.ColumnType elementType,
CASE
WHEN pp.ColumnType = 'StaffSelect'
THEN
isnull (DataSourceType, 'StaffWithoutPriv')
WHEN pp.ColumnType = 'OrgTreeSelect'
THEN
isnull (DataSourceType, 'OrgTreeWithPriv')
ELSE
dbo.FS_GetdataSourceBySet
('', pp.DataSourceType, pp.DataSource)
END dataSource,
'false' defaultHidden,
'true' isPrimaryKey,
0 isSingleColumn,
pp.dataType,
pp.columnWidth,
pp.dynamicShow,
isnull (kk.PrivFlag, 1) PrivFlag, -- 申请页默认都是可以编辑的
iif (pp.IsMultipleSelect = 1, 'true', 'false'),
iif (pp.IsBatchPageDisplay = 1, 'true', 'false')
FROM Ghrw_FlowPageDesign pp
LEFT JOIN Ghrw_FlowNodesColumnPriv kk
ON pp.FlowID = kk.FlowID
AND pp.FlowPageDesignId = kk.FlowPageDesignId
AND kk.IsEnable = 1
AND kk.NodeID = 'sid-start-node'
WHERE pp.FlowID = @FlowID
AND pp.IsEnable = 1
AND isnull (kk.PrivFlag, 1) ! = 0 -- 隐藏的栏位不显示
ORDER BY pp.SortNo
IF @DoType = 'Import'
BEGIN
SELECT Row_Number () OVER (ORDER BY rowNum, colNum) SortNum,
field,
label,
dataSource,
required,
dataType,
CONVERT (NVARCHAR (1000), '') commentText,
elementType
FROM [#TempInitUserPageEditColumn]
WHERE field ! = 'AttachmentIDs' AND dynamicShow ! = 0
RETURN
END
SET @JsonString1 =
(SELECT field,
label,
required,
editable,
rowNum,
colNum,
elementType,
dataSource,
defaultHidden,
isPrimaryKey,
isSingleColumn,
dataType,
CONVERT (INT, columnWidth) columnWidth,
dynamicShow,
multipleSelect,
canBatchPageDisplay
FROM [dbo].[#TempInitUserPageEditColumn]
FOR JSON PATH)
SET @JsonString1 =
replace
(replace (@JsonString1, '""true""', 'true'), '""false""', 'false')
SET @SQL = 'select ''' + @JsonString1 + ''' [#Json#TableColumn]'
EXEC sp_executesql @SQL
END";
result = await Db.Ado.GetStringAsync(sql);
flowReturn.JM_TableColumnT1.TableColumn = JsonHelper.JsonToObj<List<FlowTableColumn>>(result);
#endregion
#region 特殊处理
switch (param.menuName)
{
case "F_ESS_VN_BenefitApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@langId INT = {param.langId},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = '',
@ID INT = '{param.id}',
@userId INT = {param.userId}
BEGIN
IF @DoType IN ('Update', 'Copy') -- 读取修改
BEGIN
SELECT StaffID,
ApplyDate,
Reverse1,
BenefitType,
ConnectDate,
Family,
ToDoType,
WorkID,
JSON_QUERY
(
dbo.FS_GetTableAttachment
('Ghrz_VN_BenefitApply', BenefitID, @langId))
#Json#AttachmentIDs,
SortNo,
IsDefault,
RemarkSz,
BenefitID,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于 ')
+ ' '
+ CONVERT (NVARCHAR (16), CreateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000079', @langId, ' 创建')
CreateDataInfo,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于')
+ ' '
+ CONVERT (NVARCHAR (16), UpdateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000080', @langId, ' 最后修改')
UpdateDataInfo
FROM Ghrz_VN_BenefitApply a
WHERE BenefitID = @ID
END
IF @DoType = 'Insert' -- 空白新增
BEGIN
SELECT (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId) StaffID,
CONVERT (NVARCHAR (10), getdate (), 23) ApplyDate,
(SELECT DeptID
FROM dbo.Ghra_Staff
WHERE StaffID = (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId)) Reverse1,
NULL BenefitType,
NULL ConnectDate,
NULL Family,
NULL ToDoType,
NULL WorkID,
NULL AttachmentIDs,
NULL SortNo,
0 IsDefault,
0 BenefitID,
'' RemarkSz
END
IF @DoType = 'ReApply' -- ReApply:重新发起
BEGIN
SELECT StaffID,
ApplyDate,
Reverse1,
BenefitType,
ConnectDate,
Family,
ToDoType,
NULL WorkID,
AttachmentIDs,
SortNo,
IsDefault,
0 BenefitID,
RemarkSz
FROM Ghrz_VN_BenefitApply
WHERE WorkID = @ID -- 根据流程单号读取
END
END";
flowReturn.DT_TableDataT1 = await Db.Ado.GetDataTableAsync(sql);
break;
case "F_ESS_TrainRequestApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@langId INT = {param.langId},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = '',
@ID INT = '{param.id}',
@userId INT = {param.userId}
BEGIN
IF @DoType IN ('Update', 'Copy') -- 读取修改
BEGIN
SELECT a.Id,
a.CreateBy,
a.CreateTime,
a.CreateProg,
a.CreateIP,
a.UpdateBy,
a.UpdateTime,
a.UpdateProg,
a.UpdateIP,
a.OperateLogID,
a.CourseSource,
a.RequestNo,
a.CourseName,
a.CourseId,
a.YearMonth,
a.RequestSource,
a.DeptId,
a.ApplicantId,
a.RequestNum,
a.TrainStaffId,
a.TrainClass,
a.TrainLevel,
a.InOrOut,
a.TeacherClass,
a.Reason,
a.PerCapitaBudget,
a.TotalBudget,
a.SponsorId,
a.Status,
a.RemarkSz,
a.IsDefault,
a.IsEnable,
a.WorkID,
a.WorkNo,
a.ToDoType,
a.BatchSID,
a.WorkState,
a.ShiftID,
a.ConfirmUserID,
a.ConfirmTime,
a.ConfirmComment,
a.Reverse1,
a.Reverse2,
a.Reverse3,
a.Reverse4,
a.Reverse5,
a.Reverse6,
a.Reverse7,
a.Reverse8,
a.Reverse9,
a.Reverse10,
a.ReverseI1,
a.ReverseI2,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于 ')
+ ' '
+ CONVERT (NVARCHAR (16), CreateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000079', @langId, ' 创建') CreateDataInfo,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于')
+ ' '
+ CONVERT (NVARCHAR (16), UpdateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000080', @langId, ' 最后修改') UpdateDataInfo
FROM Ghre_Request a
WHERE a.Id = @ID
END
IF @DoType = 'Insert' -- 空白新增
BEGIN
SELECT (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId) ApplicantId,
NULL CourseSource,
NULL RequestNo,
NULL CourseName,
NULL CourseId,
NULL YearMonth,
'Dept' RequestSource,
NULL DeptId,
NULL RequestNum,
NULL TrainStaffId,
NULL TrainClass,
NULL TrainLevel,
NULL InOrOut,
NULL TeacherClass,
NULL Reason,
NULL PerCapitaBudget,
NULL TotalBudget,
NULL SponsorId,
'Wait' Status,
0 IsDefault,
0 Id,
'' RemarkSz
END
IF @DoType = 'ReApply' -- ReApply:重新发起
BEGIN
SELECT Id,
CreateBy,
CreateTime,
CreateProg,
CreateIP,
UpdateBy,
UpdateTime,
UpdateProg,
UpdateIP,
OperateLogID,
CourseSource,
RequestNo,
CourseName,
CourseId,
YearMonth,
RequestSource,
DeptId,
ApplicantId,
RequestNum,
TrainStaffId,
TrainClass,
TrainLevel,
InOrOut,
TeacherClass,
Reason,
PerCapitaBudget,
TotalBudget,
SponsorId,
Status,
RemarkSz,
IsDefault,
IsEnable,
WorkID,
WorkNo,
ToDoType,
BatchSID,
WorkState,
ShiftID,
ConfirmUserID,
ConfirmTime,
ConfirmComment,
Reverse1,
Reverse2,
Reverse3,
Reverse4,
Reverse5,
Reverse6,
Reverse7,
Reverse8,
Reverse9,
Reverse10,
ReverseI1,
ReverseI2
FROM Ghre_Request
WHERE WorkID = @ID -- 根据流程单号读取
END
END";
flowReturn.DT_TableDataT1 = await Db.Ado.GetDataTableAsync(sql);
break;
case "F_ESS_TrainRequestPersonalApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@langId INT = {param.langId},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = '',
@ID INT = '{param.id}',
@userId INT = {param.userId}
BEGIN
IF @DoType IN ('Update', 'Copy') -- 读取修改
BEGIN
SELECT a.Id,
a.CreateBy,
a.CreateTime,
a.CreateProg,
a.CreateIP,
a.UpdateBy,
a.UpdateTime,
a.UpdateProg,
a.UpdateIP,
a.OperateLogID,
a.CourseSource,
a.RequestNo,
a.CourseName,
a.CourseId,
a.YearMonth,
a.RequestSource,
a.DeptId,
a.ApplicantId,
a.RequestNum,
a.TrainStaffId,
a.TrainClass,
a.TrainLevel,
a.InOrOut,
a.TeacherClass,
a.Reason,
a.PerCapitaBudget,
a.TotalBudget,
a.SponsorId,
a.Status,
a.RemarkSz,
a.IsDefault,
a.IsEnable,
a.WorkID,
a.WorkNo,
a.ToDoType,
a.BatchSID,
a.WorkState,
a.ShiftID,
a.ConfirmUserID,
a.ConfirmTime,
a.ConfirmComment,
a.Reverse1,
a.Reverse2,
a.Reverse3,
a.Reverse4,
a.Reverse5,
a.Reverse6,
a.Reverse7,
a.Reverse8,
a.Reverse9,
a.Reverse10,
a.ReverseI1,
a.ReverseI2,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于 ')
+ ' '
+ CONVERT (NVARCHAR (16), CreateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000079', @langId, ' 创建') CreateDataInfo,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于')
+ ' '
+ CONVERT (NVARCHAR (16), UpdateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000080', @langId, ' 最后修改') UpdateDataInfo
FROM Ghre_Request a
WHERE a.Id = @ID
END
IF @DoType = 'Insert' -- 空白新增
BEGIN
SELECT (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId) ApplicantId,
NULL CourseSource,
NULL RequestNo,
NULL CourseName,
NULL CourseId,
NULL YearMonth,
'Person' RequestSource,
(SELECT DeptID
FROM Ghra_Staff
WHERE StaffID = (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId)) DeptId,
NULL RequestNum,
NULL TrainStaffId,
NULL TrainClass,
NULL TrainLevel,
NULL InOrOut,
NULL TeacherClass,
NULL Reason,
NULL PerCapitaBudget,
NULL TotalBudget,
NULL SponsorId,
'Wait' Status,
0 IsDefault,
0 Id,
'' RemarkSz
END
IF @DoType = 'ReApply' -- ReApply:重新发起
BEGIN
SELECT Id,
CreateBy,
CreateTime,
CreateProg,
CreateIP,
UpdateBy,
UpdateTime,
UpdateProg,
UpdateIP,
OperateLogID,
CourseSource,
RequestNo,
CourseName,
CourseId,
YearMonth,
RequestSource,
DeptId,
ApplicantId,
RequestNum,
TrainStaffId,
TrainClass,
TrainLevel,
InOrOut,
TeacherClass,
Reason,
PerCapitaBudget,
TotalBudget,
SponsorId,
Status,
RemarkSz,
IsDefault,
IsEnable,
WorkID,
WorkNo,
ToDoType,
BatchSID,
WorkState,
ShiftID,
ConfirmUserID,
ConfirmTime,
ConfirmComment,
Reverse1,
Reverse2,
Reverse3,
Reverse4,
Reverse5,
Reverse6,
Reverse7,
Reverse8,
Reverse9,
Reverse10,
ReverseI1,
ReverseI2
FROM Ghre_Request
WHERE WorkID = @ID -- 根据流程单号读取
END
END";
flowReturn.DT_TableDataT1 = await Db.Ado.GetDataTableAsync(sql);
break;
case "F_ESS_TrainTeacherApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@langId INT = {param.langId},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = '',
@ID INT = '{param.id}',
@userId INT = {param.userId}
BEGIN
IF @DoType IN ('Update', 'Copy') -- 读取修改
BEGIN
SELECT a.Id,
a.CreateBy,
a.CreateTime,
a.CreateProg,
a.CreateIP,
a.UpdateBy,
a.UpdateTime,
a.UpdateProg,
a.UpdateIP,
a.OperateLogID,
a.CourseSource,
a.RequestNo,
a.CourseName,
a.CourseId,
a.YearMonth,
a.RequestSource,
a.DeptId,
a.ApplicantId,
a.RequestNum,
a.TrainStaffId,
a.TrainClass,
a.TrainLevel,
a.InOrOut,
a.TeacherClass,
a.Reason,
a.PerCapitaBudget,
a.TotalBudget,
a.SponsorId,
a.Status,
a.RemarkSz,
a.IsDefault,
a.IsEnable,
a.WorkID,
a.WorkNo,
a.ToDoType,
a.BatchSID,
a.WorkState,
a.ShiftID,
a.ConfirmUserID,
a.ConfirmTime,
a.ConfirmComment,
a.AgreeUserId,
a.AgreeTime,
a.AgreeReason,
a.RefuseUserId,
a.RefuseTime,
a.RefuseReason,
a.Reverse1,
a.Reverse2,
a.Reverse3,
a.Reverse4,
a.Reverse5,
a.Reverse6,
a.Reverse7,
a.Reverse8,
a.Reverse9,
a.Reverse10,
a.ReverseI1,
a.ReverseI2,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于 ')
+ ' '
+ CONVERT (NVARCHAR (16), CreateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000079', @langId, ' 创建') CreateDataInfo,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于')
+ ' '
+ CONVERT (NVARCHAR (16), UpdateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000080', @langId, ' 最后修改') UpdateDataInfo
FROM Ghre_Request a
WHERE a.Id = @ID
END
IF @DoType = 'Insert' -- 空白新增
BEGIN
SELECT (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId) CreateBy,
NULL SchoolId,
(SELECT DeptID
FROM Ghra_Staff
WHERE StaffID = (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId)) DeptID,
NULL StaffId,
NULL TeacherType,
NULL TeacherNo,
NULL TeacherName,
NULL PhotoUrl,
NULL Gender,
NULL Email,
NULL Mobile,
NULL TeacherLevel,
NULL Price,
NULL SkillPoints,
NULL ApplyReason,
'Wait' Status,
0 IsDefault,
0 Id,
NULL RemarkSz
END
IF @DoType = 'ReApply' -- ReApply:重新发起
BEGIN
SELECT Id,
CreateBy,
CreateTime,
CreateProg,
CreateIP,
UpdateBy,
UpdateTime,
UpdateProg,
UpdateIP,
OperateLogID,
SchoolId,
DeptID,
StaffId,
TeacherType,
TeacherNo,
TeacherName,
PhotoUrl,
Gender,
Email,
Mobile,
TeacherLevel,
Price,
SkillPoints,
RemarkSz,
IsDefault,
IsEnable,
WorkID,
WorkNo,
ToDoType,
BatchSID,
WorkState,
ShiftID,
ConfirmUserID,
ConfirmTime,
ConfirmComment,
AgreeUserId,
AgreeTime,
AgreeReason,
RefuseUserId,
RefuseTime,
RefuseReason,
Reverse1,
Reverse2,
Reverse3,
Reverse4,
Reverse5,
Reverse6,
Reverse7,
Reverse8,
Reverse9,
Reverse10,
ReverseI1,
ReverseI2,
Status,
Id1,
ApplyReason
FROM Ghre_Teacher
WHERE WorkID = @ID -- 根据流程单号读取
END
END";
var data = await Db.Ado.SqlQueryAsync<Ghre_TeacherDto>(sql);
data.ForEach(x => x.TeacherAttachments = new List<Ghre_TeacherAttachmentDto>());
flowReturn.DT_TableDataT1 = data;
break;
case "F_ESS_TrainTeacherChangeApply":
//sql = @$"DECLARE
// @SQL NVARCHAR (MAX) = '',
// @FlowID INT = {param.jsonParam.FlowID},
// @langId INT = {param.langId},
// @DoType NVARCHAR (MAX) = '{param.doType}',
// @SQL2 NVARCHAR (MAX) = '',
// @JsonString NVARCHAR (MAX) = '',
// @JsonString1 NVARCHAR (MAX) = '',
// @JsonString2 NVARCHAR (MAX) = '',
// @ID INT = '{param.id}',
// @userId INT = {param.userId}
// ";
if (param.doType == "Insert")
{
var data1 = new List<Ghre_TeacherChangeDto>
{
new Ghre_TeacherChangeDto()
{
CreateBy = GetStaffId(),
Id = 0,
Status = "Wait"
}
};
data1.ForEach(x => x.TeacherAttachments = new List<Ghre_TeacherChangeAttachmentDto>());
flowReturn.DT_TableDataT1 = data1;
}
break;
case "F_ESS_RecruitYearManpowerApply":
if (param.doType == "Insert")
{
var config = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Year_Human_Start_Month").FirstAsync();
var startMonth = config != null ? config.ConfigValue.ObjToInt() : 1;
var data1 = new InsertGhrh_YearHumanApplyOrderInput()
{
StartMonth = startMonth,
};
#region 处理起始月
var months = new List<string>();
List<int> numbers = new();
for (int i = 1; i <= 12; i++)
{
if (i < 10)
months.Add("0" + i);
else
months.Add(i.ObjToString());
numbers.Add(i);
}
var curentYear = DateTime.Now.Year;
var curentMonth = DateTime.Now.Month;
// 指定要打头的数字
int startNumber = startMonth;
if (curentMonth < startMonth)
curentYear = -1;
data1.Year = curentYear;
var sort = flowReturn.JM_TableColumnT1.TableColumn.Where(x => x.field == "M1").SingleOrDefault()?.rowNum ?? 5;
// 创建一个新的列表用于存储重新排序后的结果
List<int> reorderedNumbers = new();
flowReturn.JM_TableColumnT1.TableColumn?.ForEach(x =>
{
if (months.Where(o => o == x.label).Any())
x.GroupName = "预算编制数";
});
// 找到指定数字的索引
int index1 = numbers.IndexOf(startNumber);
if (index1 != -1)
{
// 从指定数字开始,按照循环顺序添加数字
for (int i = 0; i < numbers.Count; i++)
{
int currentIndex = (index1 + i) % numbers.Count;
reorderedNumbers.Add(numbers[currentIndex]);
}
foreach (var num in reorderedNumbers)
{
flowReturn.JM_TableColumnT1.TableColumn?.ForEach(x =>
{
if (x.label.ObjToInt() == num)
{
x.rowNum = sort;
x.label = curentYear + "-" + x.label;
}
});
if (num == 12)
curentYear++;
sort++;
}
}
flowReturn.JM_TableColumnT1.TableColumn = flowReturn.JM_TableColumnT1.TableColumn.OrderBy(x => x.rowNum).ToList();
#endregion
data1.Items.Add(new Ghrh_YearHumanSettings() { });
var list = new List<InsertGhrh_YearHumanApplyOrderInput>
{
data1
};
flowReturn.DT_TableDataT1 = list;
}
break;
case "F_ESS_RecruitManpowerRequestApply":
if (param.doType == "Insert")
{
//flowReturn.DT_TableDataT1 = new List<InsertGhrh_YearHumanApplyOrderInput>();
//flowReturn.DT_TableDataT1
}
break;
}
#endregion
return new ServiceResult<FlowReturn>() { Success = true, Message = "查询成功", result = flowReturn };
}
#endregion
#region 流程提交处理
/// <summary>
/// 流程提交处理
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult> CommitFlowAsync(FlowCommitParam param)
{
var @InitmenuName = param.menuName;
int @FlowID = 0;
#region 写入日志
var sql = $@"DECLARE @return_value int;
DECLARE @OperateLogID bigint;
SET @OperateLogID = NULL;
EXEC @return_value = GHR30.dbo.[PS_OperateLog]
@OpUserID = {param.userId},
@OpType = {param.doType},
@OpMenuNo = {param.menuName},
@OpTableName = {param.menuName},
@OpTableID = {param.id},
@OpDetailInfo = '{param.jsonParam.ToString()}',
@OperateLogID = @OperateLogID out;
SELECT @OperateLogID as N'@OperateLogID', @return_value as N'@Return Value';";
await Db.Ado.ExecuteCommandAsync(sql);
#endregion
sql = $"SELECT FlowID FROM Ghrs_Menu b WHERE b.Menuno = '{param.menuName}' AND b.IsEnable = 1";
@FlowID = await Db.Ado.GetIntAsync(sql);
long id = 0;
switch (param.menuName)
{
case "F_ESS_TrainRequestPersonalApply":
case "F_ESS_TrainRequestApply":
#region 写入数据,并判断是否有错误
switch (param.doType)
{
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<Ghre_Request>(json);
dict.SponsorId = GetStaffId();
dict.RequestNo = await GenerateContinuousSequence("Ghre_Request", "RequestNo", "R");
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
#region 根据参数 处理数据默认状态
var config = await Db.Queryable<Ghre_Config>().FirstAsync(x => x.ConfigCode == "ESS_Request_Apply_Status");
if (config != null)
{
sql = $"UPDATE Ghre_Request SET Status='{config.ConfigValue}' WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
}
#endregion
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghre_Request WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghre_Request SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
#endregion
break;
}
#endregion
break;
case "F_ESS_TrainTeacherApply":
#region 写入数据,并判断是否有错误
switch (param.doType)
{
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<Ghre_Teacher>(json);
var staffId = dict.StaffId;
dict.StaffId = GetStaffId();
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
#region 根据参数 处理数据默认状态
var config = await Db.Queryable<Ghre_Config>().FirstAsync(x => x.ConfigCode == "ESS_Teacher_Apply_Status");
if (config != null)
{
sql = $"UPDATE Ghre_Teacher SET Status='{config.ConfigValue}' WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
}
#endregion
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghre_Teacher WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghre_Teacher SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
#endregion
#region 生成流程数据
sql = @$"DECLARE @return_value int;
DECLARE @ErrorMsg nvarchar(2000);
SET @ErrorMsg = NULL;
EXEC @return_value = GHR30.dbo.[PT_GHR30_FlowApply]
@ID = {id},
@FlowID = {@FlowID},
@UserID = {param.userId},
@LangID = {param.langId},
@ErrorMsg = @ErrorMsg out;
SELECT @ErrorMsg as N'@ErrorMsg', @return_value as N'@Return Value';";
var message = await Db.Ado.GetStringAsync(sql);
if (message.IsNotEmptyOrNull())
return new ServiceResult() { Success = false, Message = message };
#endregion
sql = $"UPDATE Ghre_Teacher SET StaffId={staffId} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
break;
}
#endregion
break;
case "F_ESS_TrainTeacherChangeApply":
#region 写入数据,并判断是否有错误
switch (param.doType)
{
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<Ghre_TeacherChange>(json);
dict.SponsorId = GetStaffId();
dict.StaffId = GetStaffId();
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
#region 根据参数 处理数据默认状态
var config = await Db.Queryable<Ghre_Config>().FirstAsync(x => x.ConfigCode == "ESS_Teacher_Change_Apply_Status");
if (config != null)
{
sql = $"UPDATE Ghre_TeacherChange SET Status='{config.ConfigValue}' WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
}
#endregion
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghre_TeacherChange WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghre_TeacherChange SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
#endregion
break;
}
#endregion
break;
case "F_ESS_RecruitYearManpowerApply":
#region 写入数据,并判断是否有错误
switch (param.doType)
{
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<InsertGhrh_YearHumanApplyOrderInput>(json);
var dict1 = JsonHelper.JsonToObj<Ghrh_YearHumanApplyOrder>(json);
#region 校验数据是否重复
dict.Items.ForEach(x =>
{
x.Year = dict1.Year;
});
for (int i = 0; i < dict.Items.Count; i++)
{
var item = dict.Items[i];
if (item.DeptId.IsNullOrEmpty())
return ServiceResult.OprateFailed($"第{i + 1}行,部门不可为空");
if (item.TitleId.IsNullOrEmpty())
return ServiceResult.OprateFailed($"第{i + 1}行,岗位不可为空");
if (await Db.Queryable<Ghrh_YearHumanSettings>()
.WhereIF(item.GradeId.IsNotEmptyOrNull(), x => x.GradeId == item.GradeId)
.WhereIF(item.JobId.IsNotEmptyOrNull(), x => x.JobId == item.JobId)
.AnyAsync(x => x.Year == item.Year && x.DeptId == item.DeptId && x.TitleId == item.TitleId))
return ServiceResult.OprateFailed($" {item.Year}年度,已存在相同数据!");
}
#endregion
dict1.ApplicantId = GetStaffId();
dict1.ApplicantTime = DateTime.Now;
id = await Db.Insertable(dict1).ExecuteReturnSnowflakeIdAsync();
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghrh_YearHumanApplyOrder WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghrh_YearHumanApplyOrder SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
dict.Items.ForEach(x =>
{
x.OrderId = id;
x.WorkState = 0;
x.Year = dict1.Year;
x.Id = SnowFlakeSingle.Instance.NextId();
});
await Db.Insertable(dict.Items).ExecuteCommandAsync();
#endregion
break;
}
#endregion
break;
case "F_ESS_RecruitManpowerRequestApply":
#region 写入数据,并判断是否有错误
switch (param.doType)
{
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<Ghrh_HumanRequest>(json);
//dict.RequestNo = await GenerateContinuousSequence("Ghrh_HumanRequest", "RequestNo", "R");
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghrh_HumanRequest WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghrh_HumanRequest SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
#endregion
break;
}
#endregion
break;
case "F_ESS_RecruitOfferApply":
#region 写入数据,并判断是否有错误
switch (param.doType)
{
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<Ghrh_OfferApplyOrder>(json);
//dict.RequestNo = await GenerateContinuousSequence("Ghrh_HumanRequest", "RequestNo", "R");
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghrh_OfferApplyOrder WHERE Id !='{id}'";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghrh_OfferApplyOrder SET Id={id1} WHERE Id ='{id}'";
await Db.Ado.ExecuteCommandAsync(sql);
id = id1;
#endregion
break;
}
#endregion
break;
}
if (param.menuName != "F_ESS_TrainTeacherApply")
{
#region 生成流程数据
sql = @$"DECLARE @return_value int;
DECLARE @ErrorMsg nvarchar(2000);
SET @ErrorMsg = NULL;
EXEC @return_value = GHR30.dbo.[PT_GHR30_FlowApply]
@ID = {id},
@FlowID = {@FlowID},
@UserID = {param.userId},
@LangID = {param.langId},
@ErrorMsg = @ErrorMsg out;
SELECT @ErrorMsg as N'@ErrorMsg', @return_value as N'@Return Value';";
var message = await Db.Ado.GetStringAsync(sql);
if (message.IsNotEmptyOrNull())
return new ServiceResult() { Success = false, Message = message };
#endregion
}
return new ServiceResult() { Success = true, Message = "提交成功" };
}
#endregion
#region MyRegion
public int? GetStaffId()
{
int? StaffId = null;
string sql = $"SELECT UserStaffID FROM Ghrs_User WHERE UserId='{App.User.ID}'";
string StaffId1 = Convert.ToString(DbAccess.ExecuteScalar(sql));
if (!StaffId1.IsNull())
StaffId = Convert.ToInt32(StaffId1);
return StaffId;
}
#endregion
#region 自动编号
/// <summary>
/// 自动编号
/// </summary>
/// <param name="tableCode">表名</param>
/// <param name="columnCode">栏位名</param>
/// <param name="prefixTemp">前缀</param>
/// <returns></returns>
public async Task<string> GenerateContinuousSequence(string tableCode, string columnCode, string prefixTemp, int length = 7, int tempLength = 6)
{
try
{
string result = string.Empty;
int sequence;
#region 查询
DbSelect dbSelect = new DbSelect(tableCode + " A", "A", null);
dbSelect.IsInitDefaultValue = false;
if (!string.IsNullOrEmpty(prefixTemp))
dbSelect.Select("MAX(SUBSTRING(A." + columnCode + "," + (prefixTemp.Length + 1).ToString() + "," + tempLength.ToString() + "))");
else
dbSelect.Select("MAX(A." + columnCode + ")");
//}
//dbSelect.Select("MAX(CONVERT(DECIMAL,SUBSTRING(A.ISSUE_NO," + (prefix.Length + dateString.Length + 1).ToString() + "," + tempLength.ToString() + ")))");
if (!string.IsNullOrEmpty(prefixTemp))
dbSelect.Where("SUBSTRING(A." + columnCode + ",1," + (prefixTemp.Length).ToString() + ")", " = ", prefixTemp);
dbSelect.Where("LEN(A." + columnCode + ")", "=", length);
string sql = dbSelect.GetSql();
//await Db.Ado.GetScalarAsync(sql)
string maxSequence = Convert.ToString(await Db.Ado.GetScalarAsync(sql));
#endregion
//tempLength = tempLength - dateString.Length;
if (string.IsNullOrEmpty(maxSequence))
result = prefixTemp + Convert.ToString(1).PadLeft(tempLength, '0');
else
{
if (!string.IsNullOrEmpty(prefixTemp))
{
if (int.TryParse(maxSequence, out sequence))
{
sequence += 1;
if (sequence.ToString().Length > tempLength)
throw new Exception("自动生成字串长度已经超过设定长度!");
}
else
throw new Exception("表中的数据无法进行自动编号,请联系软件开发商!");
result = prefixTemp + sequence.ToString().PadLeft(tempLength, '0');
}
else
{
if (int.TryParse(maxSequence, out sequence))
{
sequence += 1;
if (sequence.ToString().Length > length)
throw new Exception("自动生成字串长度已经超过设定长度!");
}
else
throw new Exception("表中的数据无法进行自动编号,请联系软件开发商!");
result = sequence.ToString().PadLeft(length, '0');
}
}
return result;
}
catch (Exception) { throw; }
}
#endregion
public async Task<Dictionary<string, object>> getPostCommonAES(JObject param)
{
try
{
string procName = "";
string _commonType = ""; // 类别
string userID = "";
bool hasUserIDPara = false;
string sqlCompanyKey = "SELECT CompanyKey FROM Ghro_company WHERE IsEnable=1";
DataTable dtCompanyKey = await Db.Ado.GetDataTableAsync(sqlCompanyKey);
string tokenKey = "Tiobon";
if (dtCompanyKey.Rows.Count > 0)
tokenKey = dtCompanyKey.Rows[0][0].ToString();
string token = "";
string menuName = ""; // 页面别
string exportSet = ""; // 导出配置
var dic = new Dictionary<string, object>();
string NewTokenstring = "";
var sortedObj = new JObject(param.Properties().OrderBy(p => (string)p.Name));
IEnumerable<JProperty> properties = sortedObj.Properties();
foreach (JProperty item in properties)
{
if (item.Name == "token")
{
token = item.Value.ToString();
continue;
}
else
{
if (item.Name.ToLower() == "timestamp")
{
NewTokenstring = NewTokenstring + tokenKey + item.Value.ToString();
continue;
}
else
{
NewTokenstring = NewTokenstring + item.Value.ToString();
}
}
if (item.Name == "procName")
{
procName = item.Value.ToString();
continue;
}
if (item.Name == "commonType")
{
_commonType = item.Value.ToString();
continue;
}
if (item.Name == "userId")
{
userID = item.Value.ToString();
hasUserIDPara = true;
}
if (item.Name == "menuName")
{
menuName = item.Value.ToString();
}
if (item.Name == "exportSet")
{
exportSet = item.Value.ToString();
}
string jokey = item.Name;
object joValue = item.Value;
dic.Add(jokey, joValue);
}
NewTokenstring = NewTokenstring.Replace("\r", "").Replace("\n", "").Replace(" ", "");
NewTokenstring = Regex.Replace(NewTokenstring, @"\s+", "");
//if (DBCommon.sha256(NewTokenstring).ToLower() != token.ToLower())
//{
// //throw new Exception("token验证错误->" + NewTokenstring + "->" + DBCommon.sha256(NewTokenstring).ToLower());
//}
if (hasUserIDPara && (userID == "0" || string.IsNullOrEmpty(userID)) && procName != "PT_GHR30_Login_IUD" && procName != "PT_GHR30_UserPasswordReset_IUD")
{
throw new Exception("页面已失效,请重新登陆");
}
DataSet ds = await Db.Ado.UseStoredProcedure().GetDataSetAllAsync(procName, dic);
// 导出Excel ExportExcel 直接下载 ExportExcel2 预下载
if (_commonType == "ExportExcel" || _commonType == "ExportExcel2")
{
}
// 此块为存储过程返回的信息 DT_ProcedureResult
DataTable DT_ProcedureResult = null;
DataTable dt = ds.Tables[0];
string strJson = "{";
int i = 1;
foreach (DataColumn dc in dt.Columns)
{
if (dt.Rows[0][dc.ColumnName].ToString() == "DT_ProcedureResult")
{
DT_ProcedureResult = ds.Tables[i];
}
else
{
strJson = strJson + "\"" + dt.Rows[0][dc.ColumnName].ToString() + "\":";
String json = JsonConvert.SerializeObject(ds.Tables[i]);
bool tableIsJson = false;
// 根据 table 的栏位名是否为 #Json#开头来判断,是否有Json对象
foreach (DataColumn dcDetail in ds.Tables[i].Columns)
{
if (dcDetail.ColumnName.StartsWith("#Json#"))
{
tableIsJson = true;
break;
}
}
if (tableIsJson)
{
dynamic dyn = JsonConvert.DeserializeObject(json);
// DT_TableDataT1
if (ds.Tables[i].Rows.Count == 1 && (!dt.Rows[0][dc.ColumnName].ToString().StartsWith("DT_TableData")))// 单行数据
{
var obj = dyn[0];
foreach (DataColumn dcDetail in ds.Tables[i].Columns)
{
if (dcDetail.ColumnName.StartsWith("#Json#"))
{
try
{
obj[dcDetail.ColumnName] = (JToken)JsonConvert.DeserializeObject((string)obj[dcDetail.ColumnName]);
}
catch { }
}
}
dyn = obj;
}
else
{
foreach (var obj in dyn) // 逐行逐列判断
{
foreach (DataColumn dcDetail in ds.Tables[i].Columns)
{
if (dcDetail.ColumnName.StartsWith("#Json#"))
{
try
{
obj[dcDetail.ColumnName] = (JToken)JsonConvert.DeserializeObject((string)obj[dcDetail.ColumnName]);
}
catch { }
}
}
}
}
json = JsonConvert.SerializeObject(dyn);
json = json.Replace("#Json#", "");
}
strJson = strJson + json;
if (i < ds.Tables.Count - 1) // 第一个table定义 各表的内容
strJson = strJson + ",";
}
i = i + 1;
}
strJson = strJson + "}";
string isOK = "0";
string ErrorMsg = "";
string WarnMsg = "";
string SuccessMsg = "";
string type = "success";
string message = "";
if (DT_ProcedureResult.Rows.Count == 1)
{
isOK = DT_ProcedureResult.Rows[0]["IsOK"].ToString();
ErrorMsg = DT_ProcedureResult.Rows[0]["ErrorMsg"].ToString();
WarnMsg = DT_ProcedureResult.Rows[0]["WarnMsg"].ToString();
SuccessMsg = DT_ProcedureResult.Rows[0]["SuccessMsg"].ToString();
if (isOK == "0")
{
if (!string.IsNullOrEmpty(WarnMsg))
{
type = "warning";
message = WarnMsg;
}
else
{
type = "success";
message = SuccessMsg;
}
}
else
{
type = "error";
message = ErrorMsg;
}
}
var data = new Dictionary<string, object>
{
{"result", JObject.Parse(strJson)},
{"message",message},
{"type",type},
{"code",int.Parse(isOK)}
};
foreach (DataColumn dcProcedureResult in DT_ProcedureResult.Columns)
{
if (dcProcedureResult.ColumnName != "IsOK" && dcProcedureResult.ColumnName != "ErrorMsg" &&
dcProcedureResult.ColumnName != "WarnMsg" && dcProcedureResult.ColumnName != "SuccessMsg")
data.Add(dcProcedureResult.ColumnName, DT_ProcedureResult.Rows[0][dcProcedureResult.ColumnName].ToString());
}
return data;
}
catch (Exception e)
{
var data = new Dictionary<string, object>
{
{"result", "{}"},
{"message",e.Message},
{"type","error"},
{"code",1}
};
return data;
}
}
public async Task<Dictionary<string, object>> getPostCommon(JObject param)
{
try
{
string procName = "";
string _commonType = ""; // 类别
string userID = "";
IEnumerable<JProperty> properties = param.Properties();
var dic = new Dictionary<string, object>();
foreach (JProperty item in properties)
{
if (item.Name == "procName")
{
procName = item.Value.ToString();
continue;
}
if (item.Name == "commonType")
{
_commonType = item.Value.ToString();
continue;
}
if (item.Name == "userId")
{
userID = item.Value.ToString();
}
string jokey = item.Name;
string joValue = item.Value.ToString();
dic.Add(jokey, joValue);
}
// procName = "PT_GHR30_Menu_GetWhere";
// DataTable dtResult = DataAccess.SelectDate("Demo", procName, spParaList);
// DataSet ds = GetProcedureDateSet("Demo", procName, "63", "1", "", "", "", "N", "", "1", "100", "3");
DataSet ds = await Db.Ado.UseStoredProcedure().GetDataSetAllAsync(procName, dic);
// 导出Excel ExportExcel 直接下载 ExportExcel2 预下载
// 此块为存储过程返回的信息 DT_ProcedureResult
DataTable DT_ProcedureResult = null;
DataTable dt = ds.Tables[0];
string strJson = "{";
int i = 1;
foreach (DataColumn dc in dt.Columns)
{
if (dt.Rows[0][dc.ColumnName].ToString() == "DT_ProcedureResult")
{
DT_ProcedureResult = ds.Tables[i];
}
else
{
strJson = strJson + "\"" + dt.Rows[0][dc.ColumnName].ToString() + "\":";
String json = JsonConvert.SerializeObject(ds.Tables[i]);
bool tableIsJson = false;
// 根据 table 的栏位名是否为 #Json#开头来判断,是否有Json对象
foreach (DataColumn dcDetail in ds.Tables[i].Columns)
{
if (dcDetail.ColumnName.StartsWith("#Json#"))
{
tableIsJson = true;
break;
}
}
if (tableIsJson)
{
dynamic dyn = JsonConvert.DeserializeObject(json);
// DT_TableDataT1
if (ds.Tables[i].Rows.Count == 1 && (!dt.Rows[0][dc.ColumnName].ToString().StartsWith("DT_TableData")))// 单行数据
{
var obj = dyn[0];
foreach (DataColumn dcDetail in ds.Tables[i].Columns)
{
if (dcDetail.ColumnName.StartsWith("#Json#"))
{
try
{
obj[dcDetail.ColumnName] = (JToken)JsonConvert.DeserializeObject((string)obj[dcDetail.ColumnName]);
}
catch
{ }
}
}
dyn = obj;
}
else
{
foreach (var obj in dyn) // 逐行逐列判断
{
foreach (DataColumn dcDetail in ds.Tables[i].Columns)
{
if (dcDetail.ColumnName.StartsWith("#Json#"))
{
try
{
obj[dcDetail.ColumnName] = (JToken)JsonConvert.DeserializeObject((string)obj[dcDetail.ColumnName]);
}
catch
{ }
}
}
}
}
json = JsonConvert.SerializeObject(dyn);
json = json.Replace("#Json#", "");
}
strJson = strJson + json;
if (i < ds.Tables.Count - 1) // 第一个table定义 各表的内容
strJson = strJson + ",";
}
i = i + 1;
}
strJson = strJson + "}";
string isOK = "0";
string ErrorMsg = "";
string WarnMsg = "";
string SuccessMsg = "";
string type = "success";
string message = "";
if (DT_ProcedureResult.Rows.Count == 1)
{
isOK = DT_ProcedureResult.Rows[0]["IsOK"].ToString();
ErrorMsg = DT_ProcedureResult.Rows[0]["ErrorMsg"].ToString();
WarnMsg = DT_ProcedureResult.Rows[0]["WarnMsg"].ToString();
SuccessMsg = DT_ProcedureResult.Rows[0]["SuccessMsg"].ToString();
if (isOK == "0")
{
if (!string.IsNullOrEmpty(WarnMsg))
{
type = "warning";
message = WarnMsg;
}
else
{
type = "success";
message = SuccessMsg;
}
}
else
{
type = "error";
message = ErrorMsg;
}
/*
if (!string.IsNullOrEmpty(isOK))
{
type = "error";
message = ErrorMsg;
}
else if (!string.IsNullOrEmpty(WarnMsg))
{
type = "warning";
message = WarnMsg;
}
if (!string.IsNullOrEmpty(SuccessMsg))
{
type = "success";
message = SuccessMsg;
} */
}
var data = new Dictionary<string, object>
{
{"result", JObject.Parse(strJson)},
{"message",message},
{"type",type},
{"code",int.Parse(isOK)}
};
foreach (DataColumn dcProcedureResult in DT_ProcedureResult.Columns)
{
if (dcProcedureResult.ColumnName != "IsOK" && dcProcedureResult.ColumnName != "ErrorMsg" &&
dcProcedureResult.ColumnName != "WarnMsg" && dcProcedureResult.ColumnName != "SuccessMsg")
data.Add(dcProcedureResult.ColumnName, DT_ProcedureResult.Rows[0][dcProcedureResult.ColumnName].ToString());
}
return data;
}
catch (Exception e)
{
var data = new Dictionary<string, object>
{
{"result", "{}"},
{"message",e.Message},
{"type","error"},
{"code",1}
};
return data;
}
}
}