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.Core/Tiobon.Core.Services/Ghrh/Ghrh_ResumeTemplateServices.cs

2667 lines
121 KiB

namespace Tiobon.Core.Services;
/// <summary>
/// 简历模板 (服务)
/// </summary>
public class Ghrh_ResumeTemplateServices : BaseServices<Ghrh_ResumeTemplate, Ghrh_ResumeTemplateDto, InsertGhrh_ResumeTemplateInput, EditGhrh_ResumeTemplateInput>, IGhrh_ResumeTemplateServices
{
private readonly IBaseRepository<Ghrh_ResumeTemplate> _dal;
public Ghrh_ResumeTemplateServices(ICaching caching, IBaseRepository<Ghrh_ResumeTemplate> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
public override async Task<ServicePageResult<Ghrh_ResumeTemplateDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
var result = await base.QueryFilterPage(filter, condition, IsEnable);
result.result.DT_TableDataT1.ForEach(t =>
{
t.IsMaster = t.TemplateType == "1" ? true : false;
});
return result;
}
public override async Task<bool> Update(long Id, EditGhrh_ResumeTemplateInput editModel)
{
return await base.Update(Id, editModel, ["TemplateName", "RemarkSz"]);
}
#region 是否开启
public async Task<ServiceResult> SwitchPublish(long id, int? isPublish)
{
if (isPublish == 0)
return ServiceResult.OprateFailed("当前已开启状态 不可以取消!");
await Db.Updateable<Ghrh_ResumeTemplate>()
.SetColumns(it => new Ghrh_ResumeTemplate()
{
IsPublish = 0,
UpdateBy = App.User.ID,
UpdateTime = DateTime.Now
})
.Where(it => it.IsPublish == 1)
.ExecuteCommandAsync();
await Db.Updateable<Ghrh_ResumeTemplate>()
.SetColumns(it => new Ghrh_ResumeTemplate()
{
IsPublish = isPublish,
UpdateBy = App.User.ID,
UpdateTime = DateTime.Now
})
.Where(it => it.Id == id)
.ExecuteCommandAsync();
return ServiceResult.OprateSuccess();
}
#endregion
#region 获取分组数据
public async Task<ServiceResult<List<Ghrh_ResumeInfoGroupDto>>> QueryGroup(QueryForm filter)
{
var sql = @$"DECLARE
@jsonParam NVARCHAR (MAX), -- 动态Json字符串
@ID BIGINT = {filter.id}, -- ID
@langId INT= {LangId}, -- 语言
@userId INT, -- 使用者
@MenuName NVARCHAR (100) -- Insert Update Copy Query
BEGIN
-- insert into GhrDemo.dbo.aaa(a1) select @jsonParam
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--
BEGIN
DECLARE
@MasterTemplateID INT = 0,
@TemplateType INT -- 母版设定ID
SELECT @TemplateType = TemplateType
FROM Ghrh_ResumeTemplate
WHERE ID = @ID
SELECT @MasterTemplateID = ID
FROM Ghrh_ResumeTemplate
WHERE IsEnable = 1 AND TemplateType = 1
SELECT *
FROM (SELECT a.ID,
a.ID ResumeTemplateInfoGroupID,
b.ID ResumeInfoGroupID,
[dbo].[FLangKeyToValue](b.MKey,@langId,b.GroupName) ResumeInfoGroupName,
b.GroupType,
b.TableName,
b.TablePKIDName,
b.CanModifyBySelf,
b.CanEssDisplay,
CASE WHEN @TemplateType = 1 THEN 1 ELSE 0 END editable, -- 分组标题 是否可编辑
CASE
WHEN @TemplateType = 1 AND b.GroupType = 'Other' THEN 1
ELSE 0
END removable, -- 群组是否可删除
CASE
WHEN b.GroupType = 'Base' OR b.GroupType = 'Photo'
THEN
0
ELSE
1
END canDrag, -- 群组是否可拖拽
CASE WHEN b.GroupType = 'Base' THEN 0 ELSE 1 END canHide, -- 群组是否可隐藏
CASE
WHEN @TemplateType = 1
AND b.GroupType ! = 'Attachment'
OR @TemplateType ! = 1 AND b.GroupType = 'Base'
THEN
1
ELSE
0
END configurable, -- 是否可挑选栏位
ISNULL (a.IsDisplay, 0) isDisplay,
isnull (a.SortNo, b.SortNo) SortNo,
-- case when ISNULL(a.IsDisplay,0)=0 then ''
CASE
WHEN 1 = 2
THEN
''
ELSE
CASE
WHEN b.GroupType = 'Base' -- 读取各模板设定
THEN
isnull
(
(SELECT [dbo].[FLangKeyToValue](pp.MKey,@langId,pp.ResumeInfoColumnName) ResumeInfoColumnName,
pp.Id ResumeInfoColumnId,
pp.IsSingleColumn,
pp.DataType,
pp.ColumnType,
kk.SortNo,
pp.Placeholder,
pp.CanModifyBySelf
FROM Ghrh_ResumeTemplateInfoGroupColumn kk,
Ghrh_ResumeInfoColumn pp
WHERE kk.ResumeTemplateInfoGroupID =
a.ID
-- a.ResumeTemplateInfoGroupID
AND kk.ResumeInfoColumnID = pp.ID
AND kk.IsDisplay = 1
AND pp.IsEnable = 1
AND kk.IsEnable = 1
order by kk.SortNo
FOR JSON PATH, INCLUDE_NULL_VALUES),
'')
WHEN b.GroupType = 'Photo' -- 读取各模板设定
THEN
(SELECT PhotoType
FROM Ghrh_ResumeTemplate
WHERE ResumeTemplateID = @MasterTemplateID
FOR JSON PATH, INCLUDE_NULL_VALUES)
WHEN b.GroupType NOT IN ('Base', 'Photo') -- 读取母版的设定
THEN
isnull
(
(SELECT [dbo].[FLangKeyToValue](pp.MKey,@langId,pp.ResumeInfoColumnName) ResumeInfoColumnName,
pp.Id ResumeInfoColumnId,
pp.IsSingleColumn,
pp.DataType,
pp.ColumnType,
kk.SortNo,
pp.Placeholder,
pp.CanModifyBySelf
FROM Ghrh_ResumeTemplateInfoGroupColumn kk,
Ghrh_ResumeInfoColumn pp
WHERE kk.ResumeTemplateID =
@MasterTemplateID
AND kk.ResumeInfoGroupId = b.Id
-- b.ResumeInfoGroupId
AND pp.Id = kk.ResumeInfoColumnId
AND kk.IsDisplay = 1
AND pp.IsEnable = 1
AND kk.IsEnable = 1
order by kk.SortNo
FOR JSON PATH, INCLUDE_NULL_VALUES),
'')
END
END GroupColumn1
FROM Ghrh_ResumeInfoGroup b
LEFT JOIN Ghrh_ResumeTemplateInfoGroup a
ON a.ResumeInfoGroupId = b.ID
AND a.IsEnable = 1 -- and a.IsDisplay=1
AND a.ResumeTemplateID = @ID
WHERE b.IsEnable = 1) a
-- order by ISNULL(a.IsDisplay,0) desc,isnull(a.SortNo,b.SortNo) -- 显示的放上面, 不显示的放下面, 再按照序号排序
ORDER BY a.SortNo ASC -- 显示的放上面, 不显示的放下面, 再按照序号排序
END
END";
var entitys = await Db.Ado.SqlQueryAsync<Ghrh_ResumeInfoGroupDto>(sql);
entitys.ForEach(x =>
{
if (x.GroupColumn1.IsNotEmptyOrNull())
{
x.GroupColumn = JsonHelper.JsonToObj<List<Dictionary<string, object>>>(x.GroupColumn1);
}
x.GroupColumn1 = null;
});
return ServiceResult<List<Ghrh_ResumeInfoGroupDto>>.OprateSuccess("查询成功!", entitys);
}
#endregion
#region 切换照片类型
public async Task<ServiceResult> PhotoSwitch(long id, int? photoType)
{
await Db.Updateable<Ghrh_ResumeTemplate>()
.SetColumns(it => new Ghrh_ResumeTemplate()
{
PhotoType = photoType,
UpdateBy = App.User.ID,
UpdateTime = DateTime.Now
})
.Where(it => it.Id == id)
.ExecuteCommandAsync();
return ServiceResult.OprateSuccess();
}
#endregion
#region 模板栏位异动
public async Task<ServiceResult> ColumnMove(long id, List<ResumeTemplateColumnMove> columns)
{
QueryForm1 filter = new QueryForm1();
filter.jsonParam = JsonHelper.ObjToJson(columns);
filter.id = id;
filter.langId = 1;
filter.userId = App.User.ID.ObjToString();
filter.doType = "ColumnMove";
await PT_GHR30_StaffTemplate_IUD(filter);
return ServiceResult.OprateSuccess();
}
#endregion
#region 获取分组数据
public async Task<ServiceResult<List<ResumeTemplateGroupColumn>>> QueryTemplateColumn(QueryForm filter)
{
var sql = @$"DECLARE @ResumeInfoGroupId INT = 0
DECLARE @ID INT = {filter.id}
SELECT @ResumeInfoGroupId = ResumeInfoGroupId
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ID = @ID
SELECT b.ID ResumeInfoColumnID,
b.ResumeInfoColumnName,
a.SortNo,
b.IsBuildIn,
isnull (a.IsRequired, b.IsRequired) IsRequired,
1 Removable, -- 是否可以从 已选中移除
CASE WHEN b.IsRelease = 0 THEN -1 ELSE isnull (a.IsDisplay, 0) END DisplayType -- 判断是 1;已选择 0:可选择 -1: 未发布的栏位
FROM Ghrh_ResumeInfoColumn b
LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn a
ON a.ResumeTemplateInfoGroupID = @ID
AND a.IsEnable = 1
AND a.ResumeInfoColumnID = b.ID
WHERE b.IsEnable = 1 AND b.ResumeInfoGroupId = @ResumeInfoGroupId
ORDER BY a.SortNo";
var entitys = await Db.Ado.SqlQueryAsync<ResumeTemplateGroupColumn>(sql);
return ServiceResult<List<ResumeTemplateGroupColumn>>.OprateSuccess("查询成功!", entitys);
}
#endregion
#region 执行模板栏位变更
public async Task<ServiceResult> ExceteTemplateColumnChange(QueryForm filter)
{
var sql = string.Empty;
var paramSql = @$"DECLARE
@jsonParam NVARCHAR (MAX) = '{filter.jsonParam}', -- 查询条件通过Json格式回传 数据库
@doType NVARCHAR (100) = '{filter.doType}', -- Insert:新增 Update:修改 Delete:删除 Unpublish:取消发布 BatchDelete:批次删除 BatchUpdaate:多行数据更新
-- SortData: 修改序号和是否默认
@id bigint = {filter.id}, -- 表的唯一值。自增长的值 Delete /Update 用到
@langId INT = {filter.langId}, -- 语言
@userId INT = {filter.userId}, -- 使用者
@menuName NVARCHAR (1000) = '{filter.menuName}' ";
switch (filter.doType)
{
case "Delete":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE
@ResumeTemplateInfoGroupID NVARCHAR (1000),
@ResumeInfoColumnNo NVARCHAR (1000),
@ResumeInfoColumnName NVARCHAR (1000),
@MKey NVARCHAR (1000),
@TableName NVARCHAR (1000),
@ColumnName NVARCHAR (1000),
@MapTableName NVARCHAR (1000),
@MapColumnName NVARCHAR (1000),
@IsSingleColumn NVARCHAR (1000),
@ColumnType NVARCHAR (1000),
@DataType NVARCHAR (1000),
@DataSourceType NVARCHAR (1000),
@DataSource NVARCHAR (1000),
@IsRequired NVARCHAR (1000),
@IsChangeColumn NVARCHAR (1000),
@IsQuickJoinColumn NVARCHAR (1000),
@Editable NVARCHAR (1000),
@IsBuildIn NVARCHAR (1000),
@InitValue NVARCHAR (1000),
@Placeholder NVARCHAR (2000),
@RemarkSz NVARCHAR (2000),
@ResumeInfoGroupId INT = 0,
@GroupType NVARCHAR (100),
@TemplateType INT,
@IsRelease INT,
@CanModifyBySelf INT,
@multipleSelect NVARCHAR (100),
@CanEssDisplay INT
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeInfoColumn -- 开始事物处理
-- 写入日志
-- EXEC [dbo].[PS_OperateLog]@userId, @doType, @menuName, 'Ghrh_ResumeInfoColumn', @ID, @jsonParam, @OperateLogID OUTPUT
IF @doType = 'Delete' -- 资料删除
BEGIN
UPDATE Ghrh_ResumeInfoColumn
SET OperateLogID = @OperateLogID,
IsEnable = 0,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
WHERE Id = @ID
-- 删除对应模板里面设定的字段 micro 2023-09-14 add
UPDATE Ghrh_ResumeTemplateInfoGroupColumn
SET OperateLogID = @OperateLogID,
IsEnable = 0,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
WHERE ResumeInfoColumnId = @ID
SET @SuccessMsg = '删除成功'
SELECT 'true' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
COMMIT TRAN tranResumeInfoColumn
RETURN
END
COMMIT TRAN tranResumeInfoColumn -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeInfoColumn -- 退回数据库的操作记录
SELECT 'false' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 'true' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "Unpublish":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE
@ResumeTemplateInfoGroupID NVARCHAR (1000),
@ResumeInfoColumnNo NVARCHAR (1000),
@ResumeInfoColumnName NVARCHAR (1000),
@MKey NVARCHAR (1000),
@TableName NVARCHAR (1000),
@ColumnName NVARCHAR (1000),
@MapTableName NVARCHAR (1000),
@MapColumnName NVARCHAR (1000),
@IsSingleColumn NVARCHAR (1000),
@ColumnType NVARCHAR (1000),
@DataType NVARCHAR (1000),
@DataSourceType NVARCHAR (1000),
@DataSource NVARCHAR (1000),
@IsRequired NVARCHAR (1000),
@IsChangeColumn NVARCHAR (1000),
@IsQuickJoinColumn NVARCHAR (1000),
@Editable NVARCHAR (1000),
@IsBuildIn NVARCHAR (1000),
@InitValue NVARCHAR (1000),
@Placeholder NVARCHAR (2000),
@RemarkSz NVARCHAR (2000),
@ResumeInfoGroupId INT = 0,
@GroupType NVARCHAR (100),
@TemplateType INT,
@IsRelease INT,
@CanModifyBySelf INT,
@multipleSelect NVARCHAR (100),
@CanEssDisplay INT
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeInfoColumn -- 开始事物处理
-- 写入日志
-- EXEC [dbo].[PS_OperateLog]@userId, @doType, @menuName, 'Ghrh_ResumeInfoColumn', @ID, @jsonParam, @OperateLogID OUTPUT
IF @doType = 'Unpublish' -- 取消发布
BEGIN
-- 写入日志
--exec [dbo].[PS_OperateLog] @userId,'Unpublish','/ResumeInfoColumn','Ghrh_ResumeInfoColumn',@ID, @OperateLogID output
UPDATE Ghrh_ResumeInfoColumn
SET OperateLogID = @OperateLogID,
IsRelease = 0,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
WHERE Id = @ID
SET @SuccessMsg = '取消成功'
SELECT 'true' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
COMMIT TRAN tranResumeInfoColumn
RETURN
END
COMMIT TRAN tranResumeInfoColumn -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeInfoColumn -- 退回数据库的操作记录
SELECT 'false' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 'true' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "Update":
case "Insert":
case "Copy":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE
@ResumeTemplateInfoGroupID NVARCHAR (1000),
@ResumeInfoColumnNo NVARCHAR (1000),
@ResumeInfoColumnName NVARCHAR (1000),
@MKey NVARCHAR (1000),
@TableName NVARCHAR (1000),
@ColumnName NVARCHAR (1000),
@MapTableName NVARCHAR (1000),
@MapColumnName NVARCHAR (1000),
@IsSingleColumn NVARCHAR (1000),
@ColumnType NVARCHAR (1000),
@DataType NVARCHAR (1000),
@DataSourceType NVARCHAR (1000),
@DataSource NVARCHAR (1000),
@IsRequired BIT,
@IsChangeColumn NVARCHAR (1000),
@IsQuickJoinColumn NVARCHAR (1000),
@Editable NVARCHAR (1000),
@IsBuildIn NVARCHAR (1000),
@InitValue NVARCHAR (1000),
@Placeholder NVARCHAR (2000),
@RemarkSz NVARCHAR (2000),
@ResumeInfoGroupId INT = 0,
@GroupType NVARCHAR (100),
@TemplateType INT,
@IsRelease INT,
@CanModifyBySelf INT,
@multipleSelect NVARCHAR (100),
@CanEssDisplay INT,
@QueryCondition INT
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeInfoColumn -- 开始事物处理
-- 写入日志
-- EXEC [dbo].[PS_OperateLog]@userId, @doType, @menuName, 'Ghrh_ResumeInfoColumn', @ID, @jsonParam, @OperateLogID OUTPUT
IF @doType IN ('Update', 'Insert', 'Copy')
BEGIN
IF @jsonParam ! = '' -- 传入的参数处理
BEGIN
SELECT @ResumeTemplateInfoGroupID =
ResumeTemplateInfoGroupID,
@ResumeInfoColumnNo = ResumeInfoColumnNo,
@ResumeInfoColumnName = ResumeInfoColumnName,
@MKey = MKey,
@TableName = TableName,
@ColumnName = ColumnName,
@MapTableName = MapTableName,
@MapColumnName = MapColumnName,
@IsSingleColumn = IsSingleColumn,
@ColumnType = ColumnType,
@DataType = DataType,
@DataSourceType = DataSourceType,
@DataSource = DataSource,
@IsRequired = IsRequired,
@Editable = Editable,
@IsBuildIn = IsBuildIn,
@InitValue = InitValue,
@Placeholder = Placeholder,
@RemarkSz = RemarkSz,
@IsRelease = IsRelease,
@IsChangeColumn = IsChangeColumn,
@IsQuickJoinColumn = IsQuickJoinColumn,
@CanModifyBySelf = CanModifyBySelf,
@CanEssDisplay = CanEssDisplay,
@QueryCondition = QueryCondition,
@multipleSelect = multipleSelect
FROM OPENJSON (@jsonParam) WITH (
ResumeTemplateInfoGroupID NVARCHAR (1000),
ResumeInfoColumnNo NVARCHAR (1000),
ResumeInfoColumnName NVARCHAR (1000),
MKey NVARCHAR (1000),
TableName NVARCHAR (1000),
ColumnName NVARCHAR (1000),
MapTableName NVARCHAR (1000),
MapColumnName NVARCHAR (1000),
IsSingleColumn NVARCHAR (1000),
ColumnType NVARCHAR (1000),
DataType NVARCHAR (1000),
DataSourceType NVARCHAR (1000),
DataSource NVARCHAR (1000),
IsRequired NVARCHAR (1000),
Editable NVARCHAR (1000),
IsBuildIn NVARCHAR (1000),
InitValue NVARCHAR (1000),
Placeholder NVARCHAR (1000),
RemarkSz NVARCHAR (1000),
IsRelease INT,
IsChangeColumn INT,
IsQuickJoinColumn INT,
CanModifyBySelf INT,
CanEssDisplay INT,
QueryCondition INT,
multipleSelect NVARCHAR (100))
SET @CanModifyBySelf = isnull (@CanModifyBySelf, 0)
SET @CanEssDisplay = isnull (@CanEssDisplay, 0)
SET @QueryCondition = isnull (@QueryCondition, 0)
IF @ColumnType IN ('Input',
'InputNumber',
'InputTextArea',
'GDatePicker',
'DatePicker',
'FileUpload',
'Switch')
SET @DataSourceType = '' -- 修改数据源的处理
END
-- 设定单 设定单群组 设定单类别 设定群组类别
SELECT @ResumeInfoGroupId = ResumeInfoGroupId,
@TemplateType = TemplateType,
@GroupType = GroupType
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ID = @ResumeTemplateInfoGroupID -- 取得本次单据的设定
-- 资料验证
BEGIN
IF @TableName = ''
SET @ErrorMsg = @ErrorMsg + '表名不能为空' -- [dbo].[FLangKeyToValue]('F_ResumeInfoColumn_0001',@langId,'集团数据归属名称不能为空')
-- 栏位名称不能重复被使用
IF (SELECT count (1)
FROM Ghrh_ResumeInfoColumn
WHERE IsEnable = 1
AND Id ! = @id
AND TableName = @TableName
AND ColumnName = @ColumnName) >
0
SET @ErrorMsg =
@ErrorMsg
+ '此栏位名称已经被使用,不能重复使用'
IF @MapTableName = ''
SET @ErrorMsg = @ErrorMsg + '关联表名不能为空' -- [dbo].[FLangKeyToValue]('F_ResumeInfoColumn_0001',@langId,'集团数据归属名称不能为空')
-- 栏位名称不能重复被使用
IF (SELECT count (1)
FROM Ghrh_ResumeInfoColumn
WHERE IsEnable = 1
AND Id ! = @id
AND MapTableName = @MapTableName
AND MapColumnName = @MapColumnName) >
0
SET @ErrorMsg =
@ErrorMsg
+ '此栏位名称已经被使用,不能重复使用'
-- 下拉必须选择 数据源
IF @ColumnType = 'ApiSelect'
BEGIN
IF @DataSourceType = '' OR @DataSourceType IS NULL
SET @ErrorMsg =
@ErrorMsg
+ '下拉框必须有数据来源方式'
IF @DataSource = ''
OR @DataSource IS NULL AND @ErrorMsg ! = ''
SET @ErrorMsg =
@ErrorMsg + '下拉框必须有数据来源'
END
IF @ColumnType IN
('OrgTreeSelect', 'ResumeSelect', 'ResumeSearch')
BEGIN
IF @DataSourceType = '' OR @DataSourceType IS NULL
SET @ErrorMsg =
@ErrorMsg
+ '组织或人员选择必须有数据来源方式'
END
-- 数据库字段的存储方式,适用的栏位类型
DECLARE @DBDateType NVARCHAR (100) = '' -- bigint date datetime decimal int nvarchar
/* Input 输入框
ApiSelect 下拉框
ApiRadioGroup 单选按钮
Switch 开关
InputTextArea 多行输入
GDatePicker 日期选择
Checkbox 多选框
OrgTreeSelect 组织树选择框
FileUpload 附件
ResumeSelect 选择人员
Divider 分割线
ResumeSearch 员工模糊搜索
DateTypeSelect DateType选择
YearPicker 年度选择
YearMonthPicker 年月选择
GTimePicker 时间选择
FormSubTable 子表格
GCascader 级联选择
InputNumber 数字输入框 */
/* ParaDetail 参数明细
CommonList 通用下拉
OrgTreeWithPriv 权限内组织图
OrgTreeWithoutPriv 全部组织图
ParaDetailNo 参数明细编号
ResumeWithoutPriv 全部员工选择
ResumeWithPriv 权限内员工选择 */
SELECT @DBDateType =
isnull
(
(SELECT (SELECT kk.name
FROM sys.types kk
WHERE kk.user_type_id = pp.user_type_id)
FROM sys.columns pp
WHERE object_id =
(SELECT id
FROM sysobjects
WHERE xtype = 'u'
AND name = @TableName)
AND name = @ColumnName),
'')
IF @ColumnType = 'Switch' AND @DBDateType ! = 'int'
SET @ErrorMsg =
@ErrorMsg + '只有int,才可以用做开关按钮'
IF @ColumnType = 'Checkbox' AND @DBDateType ! = 'nvarchar'
SET @ErrorMsg =
@ErrorMsg
+ '只有nvarchar,才可以用做多选框'
IF @ColumnType = 'InputTextArea'
AND @DBDateType ! = 'nvarchar'
SET @ErrorMsg =
@ErrorMsg
+ '只有nvarchar,才可以用做多行输入'
IF @ColumnType = 'InputNumber'
AND @DBDateType NOT IN ('decimal', 'int')
SET @ErrorMsg =
@ErrorMsg
+ '只有int/decimal,才可以用做数字输入框'
IF @ColumnType = 'ApiSelect'
BEGIN
IF @DataSourceType = 'ParaDetail'
AND @DBDateType ! = 'int'
SET @ErrorMsg =
@ErrorMsg
+ '只有int,才可以用做下拉参数明细'
IF @DataSourceType = 'ParaDetailNo'
AND @DBDateType ! = 'nvarchar'
SET @ErrorMsg =
@ErrorMsg
+ '只有nvarchar,才可以用做下拉参数明细编号'
IF @DataSourceType = 'CommonList'
AND @DBDateType ! = 'int'
SET @ErrorMsg =
@ErrorMsg
+ '只有int,才可以用做通用下拉'
END
IF @DBDateType = 'int'
AND @DataType NOT IN ('int', 'decimal')
AND @ErrorMsg = ''
BEGIN
SET @ErrorMsg =
@ErrorMsg + 'int只能用作数字输入'
END
IF @DBDateType = 'decimal'
AND @DataType NOT IN ('int', 'decimal')
AND @ErrorMsg = ''
BEGIN
SET @ErrorMsg =
@ErrorMsg + 'decimal只能用作数字输入'
END
IF @DBDateType = 'date'
AND @DataType NOT IN ('date',
'datetime',
'year',
'yearMonth')
AND @ErrorMsg = ''
BEGIN
SET @ErrorMsg =
@ErrorMsg + 'date只能用作日期输入'
END
IF @ErrorMsg ! = ''
BEGIN
ROLLBACK TRAN tranResumeInfoColumn -- 退回数据库的操作记录
SELECT 'fale' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
RETURN
END
END
IF @ID > 0 -- @doType = 'Update'
BEGIN
--exec [dbo].[PS_OperateLog] 1,'Insert','/ResumeInfoColumn','Ghrh_ResumeInfoColumn',1, @OperateLogID output
SET @doType = 'Update'
-- 该项目是否已在模板 分组的栏位里面, 如果有,则修改,没有则新增
DECLARE @ResumeTemplateInfoGroupColumnId INT = 0
SELECT @ResumeTemplateInfoGroupColumnId = Id
FROM Ghrh_ResumeTemplateInfoGroupColumn
WHERE IsEnable = 1
AND ResumeTemplateInfoGroupId =
@ResumeTemplateInfoGroupID
AND ResumeInfoColumnID = @ID
IF @ResumeTemplateInfoGroupColumnId > 0 -- 修改数据
UPDATE Ghrh_ResumeTemplateInfoGroupColumn
SET IsRequired = @IsRequired,
Editable = @Editable,
InitValue = @InitValue
WHERE Id = @ResumeTemplateInfoGroupColumnId
ELSE -- 新增数据
BEGIN
INSERT INTO Ghrh_ResumeTemplateInfoGroupColumn (
ResumeTemplateInfoGroupId,
ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
GroupType,
ResumeInfoColumnID,
IsRequired,
Editable,
InitValue,
IsDisplay,
SortNo,
RowNum,
ColNum)
SELECT a.Id
ResumeTemplateInfoGroupId,
ResumeTemplateId,
a.TemplateType,
a.ResumeInfoGroupId,
a.GroupType,
b.ID
ResumeInfoColumnID,
@IsRequired,
@Editable,
@InitValue,
0,
(SELECT isnull (max (SortNo), 0) + 1
FROM Ghrh_ResumeTemplateInfoGroup
WHERE IsDisplay = 0
AND IsEnable = 1
AND Id =
@ResumeTemplateInfoGroupColumnId),
1,
1
FROM Ghrh_ResumeTemplateInfoGroup a,
Ghrh_ResumeInfoColumn b
WHERE a.Id = @ResumeTemplateInfoGroupColumnId
AND b.ID = @id
END
IF @TemplateType = 1 -- 母版的修改
UPDATE Ghrh_ResumeInfoColumn
SET ResumeInfoGroupId = @ResumeInfoGroupId,
ResumeInfoColumnNo = @ResumeInfoColumnNo,
ResumeInfoColumnName = @ResumeInfoColumnName,
MKey = @MKey,
TableName = @TableName,
ColumnName = @ColumnName,
MapTableName = @MapTableName,
MapColumnName = @MapColumnName,
IsSingleColumn = @IsSingleColumn,
ColumnType = @ColumnType,
DataType = @DataType,
DataSourceType = @DataSourceType,
CanModifyBySelf = @CanModifyBySelf,
CanEssDisplay = @CanEssDisplay,
QueryCondition = @QueryCondition,
multipleSelect = @multipleSelect,
DataSource = @DataSource,
IsRequired = @IsRequired,
Editable = @Editable,
IsBuildIn = @IsBuildIn,
InitValue = @InitValue,
Placeholder = @Placeholder,
RemarkSz = @RemarkSz,
IsRelease = @IsRelease,
IsChangeColumn = @IsChangeColumn,
IsQuickJoinColumn = @IsQuickJoinColumn,
OperateLogID = @OperateLogID,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
WHERE Id = @ID
END
IF @ID = 0 -- @doType = 'Insert'
BEGIN
SET @doType = 'Insert'
SET @ID = '{SnowFlakeSingle.Instance.NextId()}'
--exec [dbo].[PS_OperateLog] 1,'Insert','/ResumeInfoColumn','Ghrh_ResumeInfoColumn',1, @OperateLogID output
INSERT INTO [dbo].[Ghrh_ResumeInfoColumn] (
id,
ResumeInfoGroupId,
ResumeInfoColumnNo,
ResumeInfoColumnName,
MKey,
TableName,
ColumnName,
MapTableName,
MapColumnName,
IsSingleColumn,
ColumnType,
DataType,
DataSourceType,
DataSource,
IsRequired,
Editable,
IsBuildIn,
InitValue,
Placeholder,
RemarkSz,
IsRelease,
IsChangeColumn,
IsQuickJoinColumn,
SortNo,
CanModifyBySelf,
CanEssDisplay,
QueryCondition,
multipleSelect,
OperateLogID,
[CreateBy],
[CreateTime],
[CreateProg],
[CreateIP],
[UpdateBy],
[UpdateTime],
[UpdateProg],
[UpdateIP])
SELECT @ID,
@ResumeInfoGroupId,
@ResumeInfoColumnNo,
@ResumeInfoColumnName,
@MKey,
@TableName,
@ColumnName,
@MapTableName,
@MapColumnName,
@IsSingleColumn,
@ColumnType,
@DataType,
@DataSourceType,
@DataSource,
@IsRequired,
@Editable,
@IsBuildIn,
@InitValue,
@Placeholder,
@RemarkSz,
@IsRelease,
@IsChangeColumn,
@IsQuickJoinColumn,
1,
@CanModifyBySelf,
@CanEssDisplay,
@QueryCondition,
@multipleSelect,
@OperateLogID,
@userId,
GETDATE (),
@menuName,
'0',
@userId,
GETDATE (),
@menuName,
'0'
END
-- 非异动栏位,不显示在此
BEGIN
IF @ColumnName ! = 'ResumeID'
BEGIN
UPDATE kk
SET kk.IsEnable = 0,
kk.UpdateBy = @userId,
kk.UpdateTime = GETDATE (),
kk.UpdateProg = @menuName
FROM Ghrs_PageSettingQuery kk
WHERE kk.pageno LIKE 'F_ResumeChange%'
AND field = @ColumnName
AND kk.IsEnable = 1
AND CreateProg = 'F_ResumeInfoColumn'
UPDATE kk
SET kk.IsEnable = 0,
kk.UpdateBy = @userId,
kk.UpdateTime = GETDATE (),
kk.UpdateProg = @menuName
FROM Ghrs_PageSettingEdit kk
WHERE kk.pageno LIKE 'F_ResumeChange%'
AND field = @ColumnName
AND kk.IsEnable = 1
AND CreateProg = 'F_ResumeInfoColumn'
END
END
END
COMMIT TRAN tranResumeInfoColumn -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeInfoColumn -- 退回数据库的操作记录
SELECT 'false' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 'true' Success,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg 'Message' -- IsOK 0:代表正确, 1:代表错误
END";
break;
}
sql = paramSql + sql;
var dt = await Db.Ado.GetDataTableAsync(sql);
if (dt.Rows.Count > 0)
{
if (dt.Rows[0]["Success"].ToString() == "true")
return ServiceResult.OprateSuccess(dt.Rows[0]["Message"].ToString());
else
return ServiceResult.OprateFailed(dt.Rows[0]["ErrorMsg"].ToString());
}
return ServiceResult.OprateFailed("操作失败!");
}
#endregion
#region 查询模板栏位
public async Task<ServiceResult<Ghrh_ResumeInfoColumnDto>> QueryTemplateColumnSingle(QueryForm filter)
{
var sql = @$"DECLARE
@jsonParam NVARCHAR (MAX) = '{filter.jsonParam}', -- 动态Json字符串
@ID NVARCHAR (1000) = '{filter.id}', -- ID
@langId INT = '{filter.langId}', -- 语言
@userId INT = '{filter.userId}', -- 使用者
@MenuName NVARCHAR (100) = '{filter.menuName}',
@DoType NVARCHAR (100) = 'Update' -- Insert Update Copy Query
BEGIN
-- insert into GhrDemo.dbo.aaa(a1) select @jsonParam
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@SQL NVARCHAR (MAX) = '',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = ''
-- SELECT 'DT_TableDataT1' Table4, 'DT_ProcedureResult' Table5
DECLARE @ResumeTemplateInfoGroupID NVARCHAR (100) = '0' -- 模板分组ID
SELECT @ResumeTemplateInfoGroupID = value
FROM OPENJSON (@jsonParam)
WHERE [Key] = 'ResumeTemplateInfoGroupID'
IF @DoType IN ('Update', 'Copy') -- 读取修改
BEGIN
SELECT a.Id,a.ID
ResumeInfoColumnID,
CASE
WHEN @DoType = 'Copy' THEN ''
ELSE a.ResumeInfoColumnNo
END
ResumeInfoColumnNo, -- 复制时,此栏位为空
CASE
WHEN @DoType = 'Copy' THEN ''
ELSE a.ResumeInfoColumnName
END
ResumeInfoColumnName, -- 复制时,此栏位为空
a.ResumeInfoGroupId,
CASE WHEN @DoType = 'Copy' THEN '' ELSE a.MKey END
MKey,
a.TableName,
CASE WHEN @DoType = 'Copy' THEN '' ELSE a.ColumnName END
ColumnName,
isnull
(
(SELECT (SELECT kk.name
FROM sys.types kk
WHERE kk.user_type_id = pp.user_type_id)
FROM sys.columns pp
WHERE object_id =
(SELECT id
FROM sysobjects
WHERE xtype = 'u' AND name = a.TableName)
AND name = a.ColumnName),
'')
DBColumnType,
a.IsSingleColumn,
a.ColumnType,
a.DataType,
a.DataSourceType,
a.DataSource,
a.IsBuildIn,
isnull (b.IsRequired, a.IsRequired)
IsRequired,
isnull (b.Editable, a.Editable)
Editable,
isnull (b.InitValue, a.InitValue)
InitValue,
a.IsRelease
IsRelease,
a.IsChangeColumn,
a.IsQuickJoinColumn,
a.Placeholder,
a.RemarkSz,
a.CanModifyBySelf,
a.CanEssDisplay,
a.QueryCondition,
a.MapTableName,
a.MapColumnName,
a.multipleSelect,
isnull ((SELECT UserName
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ '于'
+ CONVERT (NVARCHAR (16), a.CreateTime, 121)
+ '创建'
CreateDataInfo,
isnull ((SELECT UserName
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ '于'
+ CONVERT (NVARCHAR (16), a.UpdateTime, 121)
+ '最后修改'
UpdateDataInfo
FROM Ghrh_ResumeInfoColumn a
LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn b
ON b.ResumeTemplateInfoGroupID =
@ResumeTemplateInfoGroupID
AND b.ResumeInfoColumnID = a.ID
AND b.IsEnable = 1
WHERE a.ID = @ID
END
IF @DoType = 'Insert' -- 空白新增
BEGIN
SELECT 0 ResumeInfoColumnID,0 Id,
NULL ResumeInfoGroupId,
'' ResumeInfoColumnNo,
'' ResumeInfoColumnName,
'' MKey,
'' TableName,
'' ColumnName,
0 IsSingleColumn,
'input' ColumnType,
'string' DataType,
'' DataSourceType,
'' DataSource,
1 IsRequired,
1 Editable,
1 IsBuildIn,
1 IsRelease,
0 IsChangeColumn,
0 IsQuickJoinColumn,
0 CanModifyBySelf,
0 CanEssDisplay,
0 QueryCondition,
'' multipleSelect,
'' InitValue,
'' Placeholder,
'' RemarkSz
END
END";
var entitys = await Db.Ado.SqlQuerySingleAsync<Ghrh_ResumeInfoColumnDto>(sql);
return ServiceResult<Ghrh_ResumeInfoColumnDto>.OprateSuccess("查询成功!", entitys);
}
#endregion
#region 执行模板栏位变更
public async Task<ServiceResult> PT_GHR30_StaffTemplate_IUD(QueryForm1 filter)
{
var paramSql = @$"DECLARE
@jsonParam NVARCHAR (MAX)
= '{filter.jsonParam}', -- 查询条件通过Json格式回传 数据库
@doType NVARCHAR (100) = '{filter.doType}', -- Insert:新增 Update:修改 Delete:删除 BatchDelete:批次删除 BatchUpdaate:多行数据更新
-- ColumnMove:模板-分组-栏位移动 GroupMove:模板-分组 移动
-- GroupInsert:新增 GroupUpdate:修改 GroupDelete:删除
-- SortData: 修改序号和是否默认
@id BIGINT = '{filter.id}', -- 表的唯一值。自增长的值 Delete /Update 用到
@langId INT = '{filter.langId}', -- 语言
@userId INT = '{filter.userId}', -- 使用者
@menuName NVARCHAR (1000) = '{filter.menuName}' ";
string sql = string.Empty;
switch (filter.doType)
{
case "GroupInsert":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE @OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
-- GroupInsert:新增 GroupUpdate:修改 GroupDelete:删除
IF @doType = 'GroupInsert'
BEGIN
-- if @id>0
BEGIN
DECLARE @ResumeInfoGroupID BIGINT = '{SnowFlakeSingle.Instance.NextId()}'
INSERT INTO Ghrh_ResumeInfoGroup (Id,
GroupNo,
GroupName,
MKey,
GroupType,
TableNames,
RemarkSz,
TableName,
TablePKIDName,
CanModifyBySelf,
CanEssDisplay,
CreateBy,
CreateTime)
SELECT @ResumeInfoGroupID,
GroupNo,
GroupNo,
MKey,
'Other',
TableNames,
RemarkSz,
TableName,
TablePKIDName,
CanModifyBySelf,
CanEssDisplay,
@userId,
getdate ()
FROM OPENJSON (@jsonParam) WITH (
GroupNo NVARCHAR (1000),
GroupName NVARCHAR (1000),
MKey NVARCHAR (1000),
TableNames NVARCHAR (1000),
RemarkSz NVARCHAR (1000),
TableName NVARCHAR (1000),
TablePKIDName NVARCHAR (1000),
CanModifyBySelf NVARCHAR (1000),
CanEssDisplay NVARCHAR (1000))
-- 如果之前没有则需要新增
IF @ResumeInfoGroupID > 0
INSERT INTO Ghrh_ResumeTemplateInfoGroup (
Id,
ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
IsDisplay,
GroupType,
SortNo,
CreateBy,
CreateTime)
SELECT '{SnowFlakeSingle.Instance.NextId()}',
a.Id ResumeTemplateId,
a.TemplateType,
c.Id ResumeInfoGroupId,
1,
c.GroupType,
(SELECT isnull (max (SortNo), 0) + 1
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ResumeTemplateId = @id AND IsEnable = 1),
@userId,
getdate ()
FROM Ghrh_ResumeTemplate a, Ghrh_ResumeInfoGroup c
WHERE a.Id = @id AND c.Id = @ResumeInfoGroupID
END
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "GroupUpdate":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType = 'GroupUpdate'
BEGIN
IF @id > 0
BEGIN
DECLARE @ResumeInfoGroupId BIGINT = 0
BEGIN
SELECT @ResumeInfoGroupId = ResumeInfoGroupId
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ID = @id
END
BEGIN
UPDATE a
SET a.GroupNo = b.ResumeInfoGroupNo,
a.GroupName = b.ResumeInfoGroupName,
a.MKey = b.MKey,
a.TableNames = b.TableNames,
a.RemarkSz = b.RemarkSz,
a.TableName = b.TableName,
a.TablePKIDName = b.TablePKIDName,
a.CanModifyBySelf = b.CanModifyBySelf,
a.CanEssDisplay = b.CanEssDisplay,
a.UpdateBy = @userId,
a.UpdateTime = GETDATE (),
a.UpdateProg = @menuName
FROM Ghrh_ResumeInfoGroup a,
(SELECT TOP 1 GroupNo ResumeInfoGroupNo,
GroupName ResumeInfoGroupName,
MKey,
TableNames,
RemarkSz,
TableName,
TablePKIDName,
CanModifyBySelf,
CanEssDisplay
FROM OPENJSON (@jsonParam) WITH (
GroupNo NVARCHAR (1000),
GroupName NVARCHAR (1000),
MKey NVARCHAR (1000),
TableNames NVARCHAR (1000),
RemarkSz NVARCHAR (1000),
TableName NVARCHAR (1000),
TablePKIDName NVARCHAR (1000),
CanModifyBySelf NVARCHAR (1000),
CanEssDisplay NVARCHAR (1000)))
b
WHERE a.ID = @ResumeInfoGroupId
END
END
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "GroupDelete":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0,
@ResumeInfoGroupId BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType = 'GroupDelete'
BEGIN
BEGIN
SELECT @ResumeInfoGroupId = ResumeInfoGroupId
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ID = @id
END
BEGIN
UPDATE a
SET a.IsEnable = 0,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
FROM Ghrh_ResumeInfoGroup a
WHERE a.ID = @ResumeInfoGroupId
END
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "GroupSwitch":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType = 'GroupSwitch' -- 分组隐藏和分组显示
BEGIN
UPDATE a
SET a.IsDisplay = b.DisplayType,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
FROM Ghrh_ResumeTemplateInfoGroup a,
(SELECT ResumeInfoGroupId, DisplayType
FROM OPENJSON (@jsonParam) WITH (ResumeInfoGroupId INT,
DisplayType INT)) b
WHERE a.ResumeInfoGroupID = b.ResumeInfoGroupId
AND a.ResumeTemplateId = @id
AND a.IsEnable = 1
-- 如果之前没有则需要新增
INSERT INTO Ghrh_ResumeTemplateInfoGroup (Id,ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
IsDisplay,
GroupType,
SortNo)
SELECT ABS(CHECKSUM(NewId())),a.Id ResumeTemplateId,
a.TemplateType,
b.ResumeInfoGroupId,
b.DisplayType,
c.GroupType,
b.SortNo
FROM Ghrh_ResumeTemplate a,
(SELECT ResumeInfoGroupId, DisplayType, SortNo
FROM OPENJSON (@jsonParam) WITH (ResumeInfoGroupId INT,
DisplayType INT,
SortNo INT)) b,
Ghrh_ResumeInfoGroup c
WHERE a.Id = @id
AND b.ResumeInfoGroupID = c.Id
AND b.ResumeInfoGroupID NOT IN
(SELECT ResumeInfoGroupID
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ResumeTemplateId = @id AND IsEnable = 1)
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "GroupMove":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType = 'GroupMove' -- :模板-分组 移动
BEGIN
UPDATE a -- 移动栏位
SET a.SortNo = b.SortNo, a.IsDisplay = b.DisplayType
FROM Ghrh_ResumeTemplateInfoGroup a,
(SELECT ResumeInfoGroupId, DisplayType, SortNo
FROM OPENJSON (@jsonParam) WITH (ResumeInfoGroupId INT,
DisplayType INT,
SortNo INT)) b
WHERE a.ResumeTemplateID = @id
AND a.IsEnable = 1
AND a.ResumeInfoGroupId = b.ResumeInfoGroupId
-- 如果没有的需要新增
INSERT INTO Ghrh_ResumeTemplateInfoGroup (Id,
ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
IsDisplay,
GroupType,
SortNo)
SELECT ABS (CHECKSUM (NewId ())),
a.Id ResumeTemplateId,
a.TemplateType,
b.ResumeInfoGroupId,
b.DisplayType,
c.GroupType,
b.SortNo
FROM Ghrh_ResumeTemplate a,
(SELECT ResumeInfoGroupId, DisplayType, SortNo
FROM OPENJSON (@jsonParam) WITH (ResumeInfoGroupId BIGINT,
DisplayType INT,
SortNo INT)) b,
Ghrh_ResumeInfoGroup c
WHERE a.Id = @id
AND b.ResumeInfoGroupID = c.Id
AND b.ResumeInfoGroupID NOT IN
(SELECT ResumeInfoGroupID
FROM Ghrh_ResumeTemplateInfoGroup
WHERE ResumeTemplateId = @id AND IsEnable = 1)
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "ColumnMove":
sql = @$"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType = 'ColumnMove' -- 模板栏位异动 模板里面的栏位增加减少 移动 批次操作
BEGIN
UPDATE a -- 移动栏位
SET a.SortNo = b.SortNo, a.IsDisplay = b.DisplayType
FROM Ghrh_ResumeTemplateInfoGroupColumn a,
(SELECT ResumeInfoColumnID, DisplayType, SortNo
FROM OPENJSON (@jsonParam) WITH (ResumeInfoColumnID BIGINT,
DisplayType INT,
SortNo INT)) b
WHERE a.ResumeTemplateInfoGroupID = @id
AND a.IsEnable = 1
AND a.ResumeInfoColumnID = b.ResumeInfoColumnID
AND b.DisplayType IN (0, 1)
-- 如果之前的栏位是 从 作废里面(未发布)--> 可选或者已选, 则需要修改 ResumeInfoColumn
UPDATE Ghrh_ResumeInfoColumn
SET IsRelease = 1
WHERE ID IN
(SELECT ResumeInfoColumnID
FROM OPENJSON (@jsonParam) WITH (
ResumeInfoColumnID BIGINT,
DisplayType INT,
SortNo INT)
WHERE DisplayType IN (0, 1))
AND IsRelease = 0
DELETE FROM
Ghrh_ResumeTemplateInfoGroupColumn -- 作废项目
WHERE ResumeTemplateInfoGroupID = @id
AND IsEnable = 1
AND ResumeInfoColumnID IN
(SELECT ResumeInfoColumnID
FROM OPENJSON (@jsonParam) WITH (
ResumeInfoColumnID BIGINT,
DisplayType INT,
SortNo INT)
WHERE DisplayType = -1)
-- 新增栏位
INSERT INTO Ghrh_ResumeTemplateInfoGroupColumn (
Id,
ResumeTemplateInfoGroupId,
ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
GroupType,
ResumeInfoColumnID,
IsRequired,
Editable,
InitValue,
IsDisplay,
SortNo,
RowNum,
ColNum)
SELECT ABS (CHECKSUM (NewId ())),
a.Id ResumeTemplateInfoGroupId,
ResumeTemplateId,
a.TemplateType,
a.ResumeInfoGroupId,
a.GroupType,
c.ID ResumeInfoColumnID,
c.IsRequired,
c.Editable,
c.InitValue,
b.DisplayType,
b.SortNo,
1,
1
FROM Ghrh_ResumeTemplateInfoGroup a,
(SELECT ResumeInfoColumnID, DisplayType, SortNo
FROM OPENJSON (@jsonParam) WITH (
ResumeInfoColumnID BIGINT,
DisplayType INT,
SortNo INT)) b,
Ghrh_ResumeInfoColumn c
WHERE a.Id = @id
AND b.ResumeInfoColumnID = c.ID
AND b.DisplayType IN (0, 1)
AND c.IsEnable = 1
AND b.ResumeInfoColumnID NOT IN
(SELECT ResumeInfoColumnID
FROM Ghrh_ResumeTemplateInfoGroupColumn
WHERE ResumeTemplateInfoGroupId = @id
AND IsEnable = 1)
-- micro 2022-08-05 add 模板自动更新 栏位设定 Ghrs_PageSettingQuery
DECLARE
@FResumeMenuName NVARCHAR (1000) = 'F_Resume~',
@FResumeGroupType NVARCHAR (100)
SELECT @FResumeMenuName =
@FResumeMenuName
+ CONVERT (NVARCHAR (100), ResumeTemplateId),
@FResumeGroupType = GroupType
FROM Ghrh_ResumeTemplateInfoGroup
WHERE Id = @id
IF @FResumeGroupType IN ('Base',
'Education',
'Family',
'Contract',
'WorkExp',
'Training',
'Licence')
BEGIN
IF @FResumeGroupType = 'Education'
SET @FResumeMenuName = 'F_ResumeEduBG'
IF @FResumeGroupType = 'Contract'
SET @FResumeMenuName = 'F_ResumeContract'
IF @FResumeGroupType = 'Family'
SET @FResumeMenuName = 'F_ResumeSocialRelation'
IF @FResumeGroupType = 'WorkExp'
SET @FResumeMenuName = 'F_ResumeWorkExp'
IF @FResumeGroupType = 'Training'
SET @FResumeMenuName = 'F_ResumeTraining'
IF @FResumeGroupType = 'Licence'
SET @FResumeMenuName = 'F_ResumeLicence'
-- 更新后的栏位设定写入临时表
IF OBJECT_ID ('tempdb.[dbo].[#TempPageSettingQuery]')
IS NOT NULL
DROP TABLE [dbo].[#TempPageSettingQuery]
--insert into Ghrs_PageSettingQuery(PageNo,ColumnGroup,elementType,field,label,Meky,multipleSelect,dataType,required,palceholder,
-- dataSourceType,dataSource,sortable,sortOrder,defaultHidden,filterable,width,align,fixed,editable,
-- searchable,searchRequired,searchColumnSeq,isPrimaryKey,SortNo,searchCanOperator)
SELECT @FResumeMenuName PageNo,
'' ColumnGroup,
b.ColumnType elementType,
b.ResumeInfoColumnNo field,
b.ResumeInfoColumnName label,
b.MKey Meky,
NULL multipleSelect,
b.DataType dataType,
CASE
WHEN a.IsRequired = 1 THEN 'true'
ELSE 'false'
END required,
NULL palceholder,
CASE
WHEN b.ColumnType IN
('OrgTreeSelect', 'ApiSelect')
THEN
'dict'
ELSE
''
END dataSourceType,
dbo.FS_GetdataSourceBySet
('', b.DataSourceType, b.DataSource) dataSource,
'true' sortable,
NULL sortOrder,
CASE
WHEN b.isPrimaryKey = 1 THEN 'true'
ELSE 'false'
END defaultHidden,
NULL filterable,
'100' width,
'left' align,
NULL fixed,
'false' editable,
'false' searchable,
'false' searchRequired,
'' searchColumnSeq,
CASE
WHEN b.isPrimaryKey = 1 THEN 'true'
ELSE 'false'
END isPrimaryKey,
a.SortNo,
CONVERT (NVARCHAR (1000), '') searchCanOperator,
0 PageSettingQueryID
INTO dbo.[#TempPageSettingQuery]
FROM Ghrh_ResumeTemplateInfoGroupColumn a,
Ghrh_ResumeInfoColumn b --Ghrs_PageSettingQuery
WHERE a.ResumeInfoColumnID = b.ID
AND a.ResumeTemplateInfoGroupId = @id
AND b.IsEnable = 1
AND grouptype = @FResumeGroupType
AND ( b.isPrimaryKey = 1
OR a.IsEnable = 1 AND IsDisPlay = 1)
ORDER BY a.SortNo
-- Group Type 的特别处理
IF @FResumeGroupType = 'Base'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'ResumeNo'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'ResumeName'
-- 判断生成 照片是否显示
INSERT INTO [#TempPageSettingQuery] (
PageNo,
ColumnGroup,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dataSource,
sortable,
sortOrder,
defaultHidden,
filterable,
width,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
isPrimaryKey,
SortNo,
searchCanOperator,
PageSettingQueryID)
SELECT @FResumeMenuName,
'',
'Avatar',
'PhotoUrl',
'照片',
'F_User_UserPhotoUrl',
'',
'string',
'',
'',
'',
'',
'',
'',
'false',
NULL,
'120',
'',
'',
'true',
'',
'',
'',
'',
1,
'',
0
END
IF @FResumeGroupType = 'Education'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'SchoolName'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'DeptName'
END
IF @FResumeGroupType = 'Family'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'RelationName'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Equal,NotEqual,EqualAny,NotEqualAny'
WHERE field = 'RelationType'
END
IF @FResumeGroupType = 'Contract'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'ContractNo'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Equal,NotEqual,EqualAny,NotEqualAny'
WHERE field = 'ContractType'
END
IF @FResumeGroupType = 'WorkExp'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'CompanyName'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'DeptName'
END
IF @FResumeGroupType = 'Training'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'CourseName'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'TrainingOrgName'
END
IF @FResumeGroupType = 'Licence'
BEGIN
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 1,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'LicenceName'
UPDATE dbo.[#TempPageSettingQuery]
SET searchable = 'true',
searchColumnSeq = 2,
searchCanOperator =
'Include,Equal,NotEqual,NotInclude'
WHERE field = 'LicenceNo'
END
-- 修改临时表的 PageSettingQueryID
UPDATE a
SET a.PageSettingQueryID = b.PageSettingQueryID
FROM dbo.[#TempPageSettingQuery] a, Ghrs_PageSettingQuery b
WHERE a.PageNo = b.PageNo
AND a.field = b.field
AND b.IsEnable = 1
-- 删除 Ghrs_PageSettingQuery 中本次取消的栏位
UPDATE Ghrs_PageSettingQuery
SET IsEnable = 0, UpdateProg = @menuName
WHERE NOT EXISTS
(SELECT 1
FROM dbo.[#TempPageSettingQuery] a
WHERE a.PageSettingQueryID =
Ghrs_PageSettingQuery.PageSettingQueryID)
AND PageNo = @FResumeMenuName
AND elementType ! = 'FnKey'
AND field NOT IN ('CreateTime',
'UpdateTime',
'CreateBy',
'UpdateBy',
'ResumeJobStatus')
AND CreateProg = @menuName
-- 删除自定义栏位 Ghrs_UserPageSettingQueryColumn 中本次取消的栏位
UPDATE Ghrs_UserPageSettingQueryColumn
SET IsEnable = 0
WHERE NOT EXISTS
(SELECT 1
FROM Ghrs_PageSettingQuery a
WHERE a.PageSettingQueryID =
Ghrs_UserPageSettingQueryColumn.PageSettingQueryID)
AND IsEnable = 1
AND CreateProg = @FResumeMenuName
AND EXISTS
(SELECT 1
FROM Ghrs_PageSettingQuery a
WHERE a.PageSettingQueryID =
Ghrs_UserPageSettingQueryColumn.PageSettingQueryID
AND a.elementType ! = 'FnKey')
-- 修改栏位
UPDATE a
SET a.label = b.label,
a.Meky = b.Meky,
a.required = b.required,
a.elementType = b.elementType,
a.dataType = b.dataType,
a.dataSourceType = b.dataSourceType,
a.dataSource = b.dataSource,
--a.sortable=b.sortable,
a.defaultHidden =
CASE
WHEN a.field = 'ResumeID' THEN 'true'
ELSE b.defaultHidden
END,
-- a.filterable=b.filterable,a.width=b.width,a.align=b.align,a.fixed=b.fixed,
a.editable = b.editable,
--a.searchable=b.searchable,a.searchRequired=b.searchRequired,a.searchColumnSeq=b.searchColumnSeq,
a.isPrimaryKey = b.isPrimaryKey,
a.SortNo = b.SortNo,
-- a.searchCanOperator=b.searchCanOperator,
a.UpdateProg = @menuName,
a.CreateProg = @menuName
FROM Ghrs_PageSettingQuery a, dbo.[#TempPageSettingQuery] b
WHERE a.PageSettingQueryID = b.PageSettingQueryID
-- 新增本次设定的栏位
INSERT INTO Ghrs_PageSettingQuery (PageNo,
ColumnGroup,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dataSource,
sortable,
sortOrder,
defaultHidden,
filterable,
width,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
isPrimaryKey,
SortNo,
searchCanOperator,
UpdateProg,
CreateProg)
SELECT PageNo,
ColumnGroup,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dataSource,
sortable,
sortOrder,
defaultHidden,
filterable,
width,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
isPrimaryKey,
SortNo,
searchCanOperator,
@menuName,
@menuName
FROM dbo.[#TempPageSettingQuery]
WHERE isnull (PageSettingQueryID, 0) = 0
END
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "Delete":
sql = $@"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType = 'Delete' -- 资料删除
BEGIN
UPDATE Ghrh_ResumeTemplate
SET OperateLogID = @OperateLogID,
IsEnable = 0,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
WHERE Id = @ID
SET @SuccessMsg = '删除成功'
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg -- IsOK 0:代表正确, 1:代表错误
COMMIT TRAN tranResumeTemplate
RETURN
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
case "Update":
case "Insert":
case "Copy":
sql = $@"BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE
@NeedOPLog INT = 1,
@OperateLogID BIGINT = 0 -- 是否需要写入操作日志表
-- SELECT 'DT_ProcedureResult' Table3
DECLARE @ErrorMsg NVARCHAR (MAX) = '' -- 错误信息置空
DECLARE @WarningMsg NVARCHAR (MAX) = '' -- 提醒信息置空
DECLARE @SuccessMsg NVARCHAR (MAX) = ''
DECLARE @NewResumeTemplateId BIGINT = 0
DECLARE
@title NVARCHAR (1000),
@description NVARCHAR (1000),
@titleAllowEdit NVARCHAR (1000),
@isMaster NVARCHAR (1000),
@isPublish NVARCHAR (1000),
@SortNo NVARCHAR (100)
BEGIN TRY -- 开始错误处理
BEGIN TRAN tranResumeTemplate -- 开始事物处理
IF @doType IN ('Update', 'Insert', 'Copy')
BEGIN
IF @jsonParam ! = '' -- 传入的参数处理
BEGIN
SELECT @title = title,
@description = description,
@titleAllowEdit = titleAllowEdit,
@isMaster = isMaster,
@isPublish = isPublish,
@SortNo = sortNo
FROM OPENJSON (@jsonParam) WITH (
title NVARCHAR (1000),
description NVARCHAR (1000),
titleAllowEdit NVARCHAR (1000),
isMaster NVARCHAR (1000),
isPublish NVARCHAR (1000),
sortNo NVARCHAR (100))
END
-- 资料验证
BEGIN
IF @title = ''
SET @ErrorMsg = @ErrorMsg + '模板名称不能为空' -- [dbo].[FLangKeyToValue]('F_ResumeTemplate_0001',@langId,'集团数据归属名称不能为空')
IF @ErrorMsg ! = ''
BEGIN
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg -- IsOK 0:代表正确, 1:代表错误
RETURN
END
END
IF @ID > 0 -- @doType = 'Update'
BEGIN
-- exec [dbo].[PS_OperateLog] 1,'Insert','/ResumeTemplate','Ghrh_ResumeTemplate',1, @OperateLogID output
IF @doType = 'Update'
BEGIN
UPDATE Ghrh_ResumeTemplate
SET TemplateNo = @title,
TemplateName = @title,
RemarkSz = @description,
SortNo =
CASE
WHEN isnull (@SortNo, '') = '' THEN '1'
ELSE @SortNo
END,
IsPublish = @isPublish,
-- TemplateType=case when @isMaster=1 then 1 else 2 end,
OperateLogID = @OperateLogID,
UpdateBy = @userId,
UpdateTime = GETDATE (),
UpdateProg = @menuName
WHERE Id = @ID
END
IF @doType = 'Copy'
BEGIN
SET @NewResumeTemplateId = '{SnowFlakeSingle.Instance.NextId()}'
INSERT INTO [dbo].[Ghrh_ResumeTemplate] (
Id,
TemplateNo,
TemplateName,
SortNo,
IsPublish,
TemplateType,
OperateLogID,
RemarkSz,
[CreateBy],
[CreateTime],
[CreateProg],
[CreateIP],
[UpdateBy],
[UpdateTime],
[UpdateProg],
[UpdateIP])
SELECT @NewResumeTemplateId,
@title,
@title,
CASE
WHEN isnull (@SortNo, '') = '' THEN '1'
ELSE @SortNo
END,
@isPublish,
2,
@OperateLogID,
@description,
@userId,
GETDATE (),
@menuName,
'',
@userId,
GETDATE (),
@menuName,
''
FROM Ghrh_ResumeTemplate
WHERE Id = @ID
-- 复制 模板的Detail
--1. 复制分组
INSERT INTO Ghrh_ResumeTemplateInfoGroup (
Id,
ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
IsDisplay,
GroupType,
SortNo)
SELECT ABS (CHECKSUM (NewId ())),
@NewResumeTemplateId,
2,
a.ResumeInfoGroupId,
a.IsDisplay,
a.GroupType,
a.SortNo
FROM Ghrh_ResumeTemplateInfoGroup a
WHERE a.ResumeTemplateId = @id
-- 复制分组栏位
INSERT INTO Ghrh_ResumeTemplateInfoGroupColumn (
Id,
ResumeTemplateInfoGroupId,
ResumeTemplateId,
TemplateType,
ResumeInfoGroupId,
GroupType,
ResumeInfoColumnID,
IsRequired,
Editable,
InitValue,
IsDisplay,
SortNo,
RowNum,
ColNum)
SELECT ABS (CHECKSUM (NewId ())),
c.Id ResumeTemplateInfoGroupId,
c.ResumeTemplateId,
2,
a.ResumeInfoGroupId,
a.GroupType,
a.ResumeInfoColumnID,
a.IsRequired,
a.Editable,
a.InitValue,
a.IsDisplay,
a.SortNo,
a.RowNum,
a.ColNum
FROM Ghrh_ResumeTemplateInfoGroupColumn a,
Ghrh_ResumeTemplateInfoGroup c
WHERE a.IsEnable = 1
AND c.IsEnable = 1
AND a.ResumeInfoGroupId =
c.ResumeInfoGroupId
AND a.ResumeTemplateId = @id
AND c.ResumeTemplateId =
@NewResumeTemplateId
-- 复制人员基本资料的 修改/删除/复制的功能按钮到 Ghrs_PageSettingQuery
DECLARE @CopyMenuName NVARCHAR (100)
= 'F_Resume~'
+ CONVERT
(NVARCHAR (MAX), @NewResumeTemplateId)
INSERT INTO Ghrs_PageSettingQuery (PageNo,
ColumnGroup,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dataSource,
sortable,
sortOrder,
defaultHidden,
filterable,
width,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
isPrimaryKey,
SortNo,
searchCanOperator)
SELECT @CopyMenuName,
ColumnGroup,
elementType,
field,
label,
Meky,
multipleSelect,
dataType,
required,
palceholder,
dataSourceType,
dataSource,
sortable,
sortOrder,
defaultHidden,
filterable,
width,
align,
fixed,
editable,
searchable,
searchRequired,
searchColumnSeq,
isPrimaryKey,
SortNo,
searchCanOperator
FROM Ghrs_PageSettingQuery a
WHERE IsEnable = 1
AND PageNo = 'F_Resume~1'
AND elementType = 'FnKey'
AND NOT EXISTS
(SELECT 1
FROM Ghrs_PageSettingQuery b
WHERE b.IsEnable = 1
AND b.PageNo = @CopyMenuName
AND a.elementType =
b.elementType
AND a.field = b.field)
END
END
IF @ID = 0 -- @doType = 'Insert'
BEGIN
SET @doType = 'Insert'
-- exec [dbo].[PS_OperateLog] 1,'Insert','/ResumeTemplate','Ghrh_ResumeTemplate',1, @OperateLogID output
SET @NewResumeTemplateId = {SnowFlakeSingle.Instance.NextId()}
INSERT INTO [dbo].[Ghrh_ResumeTemplate] (Id,TemplateNo,
TemplateName,
SortNo,
IsPublish,
TemplateType,
OperateLogID,
RemarkSz,
[CreateBy],
[CreateTime],
[CreateProg],
[CreateIP],
[UpdateBy],
[UpdateTime],
[UpdateProg],
[UpdateIP])
SELECT @NewResumeTemplateId,@title,
@title,
isnull (@SortNo, '1'),
@IsPublish,
CASE WHEN @isMaster = 1 THEN 1 ELSE 2 END,
@OperateLogID,
@description,
@userId,
GETDATE (),
@menuName,
'0',
@userId,
GETDATE (),
@menuName,
'0'
END
END
COMMIT TRAN tranResumeTemplate -- 提交事物处理
END TRY
BEGIN CATCH -- 错误捕捉
SET @ErrorMsg = error_message () -- 错误信息
ROLLBACK TRAN tranResumeTemplate -- 退回数据库的操作记录
SELECT 1 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
RETURN
END CATCH
SET @SuccessMsg =
[dbo].[FLangKeyToValue]
('GHR_Common_000014',
@langId,
'保存成功.您可以继续新增或关闭窗口.')
SELECT 0 IsOK,
@ErrorMsg ErrorMsg,
@WarningMsg WarnMsg,
@SuccessMsg SuccessMsg,
@NewResumeTemplateId NewResumeTemplateId -- IsOK 0:代表正确, 1:代表错误
END";
break;
default:
break;
}
sql = paramSql + sql;
var dt = await Db.Ado.GetDataTableAsync(sql);
if (dt.Rows.Count > 0)
{
if (dt.Rows[0]["IsOK"].ToString() == "0")
return ServiceResult.OprateSuccess(dt.Rows[0]["SuccessMsg"].ToString());
else
return ServiceResult.OprateFailed(dt.Rows[0]["ErrorMsg"].ToString());
}
return ServiceResult.OprateFailed("操作失败!");
}
#endregion
}