566 lines
15 KiB
Transact-SQL
566 lines
15 KiB
Transact-SQL
USE [AMES_PDC]
|
|
GO
|
|
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_部门关系_增加节点]
|
|
@父节点 int = null,
|
|
@节点名称 nvarchar(100) = null,
|
|
@子节点 int out
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF ISNULL(@节点名称, '') = ''
|
|
BEGIN
|
|
SELECT 0 AS result, N'部门名称不能为空' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@父节点, 0) <> 0
|
|
AND NOT EXISTS (SELECT 1 FROM 人事档案管理_基础表_部门 WHERE 考核部门编号 = @父节点)
|
|
BEGIN
|
|
SELECT 0 AS result, N'上级部门不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRY
|
|
BEGIN TRAN
|
|
|
|
INSERT INTO [人事档案管理_部门关系]([父节点], 节点排序)
|
|
SELECT ISNULL(@父节点, 0), ISNULL(MAX(节点排序), 0) + 1
|
|
FROM 人事档案管理_部门关系
|
|
WHERE 父节点 = ISNULL(@父节点, 0)
|
|
|
|
SET @子节点 = SCOPE_IDENTITY()
|
|
|
|
INSERT INTO 人事档案管理_基础表_部门 (考核部门编号, 部门名称)
|
|
VALUES(@子节点, @节点名称)
|
|
|
|
COMMIT TRAN
|
|
SELECT 1 AS result, N'添加成功' AS msg
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRAN
|
|
SELECT 0 AS result, ERROR_MESSAGE() AS msg
|
|
END CATCH
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_部门关系_修改节点]
|
|
@子节点 int,
|
|
@节点名称 nvarchar(100)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF ISNULL(@节点名称, '') = ''
|
|
BEGIN
|
|
SELECT 0 AS result, N'部门名称不能为空' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_基础表_部门 WHERE 考核部门编号 = @子节点)
|
|
BEGIN
|
|
SELECT 0 AS result, N'部门不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
UPDATE 人事档案管理_基础表_部门
|
|
SET [部门名称] = @节点名称
|
|
WHERE [考核部门编号] = @子节点
|
|
|
|
SELECT 1 AS result, N'编辑成功' AS msg
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_部门关系_删除节点]
|
|
@子节点 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_部门关系 WHERE 子节点 = @子节点)
|
|
BEGIN
|
|
SELECT 0 AS result, N'部门不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM 人事档案管理_部门关系 WHERE 父节点 = @子节点)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该部门存在下级部门,请先删除或调整下级部门' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM 人事档案管理_人员名单
|
|
WHERE 考核部门编号 = @子节点
|
|
AND ISNULL(是否离职, 0) = 0
|
|
AND ISNULL(岗位状态编号, 1) = 1
|
|
)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该部门下存在在职人员,请先移动、离职或删除人员' AS msg
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRY
|
|
BEGIN TRAN
|
|
DELETE FROM 人事档案管理_基础表_部门 WHERE [考核部门编号] = @子节点
|
|
DELETE FROM [人事档案管理_部门关系] WHERE [子节点] = @子节点
|
|
COMMIT TRAN
|
|
SELECT 1 AS result, N'删除成功' AS msg
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRAN
|
|
SELECT 0 AS result, ERROR_MESSAGE() AS msg
|
|
END CATCH
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_人员名单_增加数据_MESWORK]
|
|
@考核部门编号 int = null,
|
|
@性别编号 int = null,
|
|
@学历编号 int = null,
|
|
@岗位编号 int = null,
|
|
@考勤编号 nvarchar(50) = null,
|
|
@密码 nvarchar(50) = null,
|
|
@姓名 nvarchar(50) = null,
|
|
@身份证号 nvarchar(50) = null,
|
|
@入公司时间 datetime = null,
|
|
@出生日期 datetime = null,
|
|
@联系电话 nvarchar(50) = null,
|
|
@家庭住址 nvarchar(50) = null,
|
|
@民族 nvarchar(10) = null,
|
|
@班组 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
DECLARE @人员编号 int
|
|
|
|
IF ISNULL(@姓名, '') = ''
|
|
BEGIN
|
|
SELECT 0 AS result, N'姓名不能为空' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@考勤编号, '') = ''
|
|
BEGIN
|
|
SELECT 0 AS result, N'工号不能为空' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF TRY_CONVERT(int, @考勤编号) IS NULL
|
|
BEGIN
|
|
SELECT 0 AS result, N'工号格式不正确' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_基础表_部门 WHERE 考核部门编号 = @考核部门编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'所属部门不存在,请重新选择部门' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 序号 = TRY_CONVERT(int, @考勤编号))
|
|
BEGIN
|
|
SELECT 0 AS result, N'工号已存在,不能重复新增' AS msg
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRY
|
|
BEGIN TRAN
|
|
|
|
INSERT INTO [dbo].[人事档案管理_人员名单](
|
|
[序号], [考勤编号], 姓名, 身份证号, 性别编号, 学历编号, 入公司时间,
|
|
出生日期, 联系电话, 考核部门编号, 密码, 家庭住址, 民族, 班组流水号)
|
|
VALUES(
|
|
TRY_CONVERT(int, @考勤编号), @考勤编号, @姓名, @身份证号, @性别编号, @学历编号, @入公司时间,
|
|
@出生日期, @联系电话, @考核部门编号, @密码, @家庭住址, @民族, @班组)
|
|
|
|
SET @人员编号 = SCOPE_IDENTITY()
|
|
|
|
INSERT INTO [dbo].[人事档案管理_部门与人员](部门编号, 人员编号, 岗位编号)
|
|
VALUES(@考核部门编号, @人员编号, @岗位编号)
|
|
|
|
COMMIT TRAN
|
|
SELECT 1 AS result, N'添加成功' AS msg
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRAN
|
|
SELECT 0 AS result, ERROR_MESSAGE() AS msg
|
|
END CATCH
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_人员名单_修改数据_MESWORK]
|
|
@人员编号 int = null,
|
|
@性别编号 nvarchar(50) = null,
|
|
@学历编号 nvarchar(50) = null,
|
|
@毕业院校编号 int = null,
|
|
@专业编号 int = null,
|
|
@外语及熟练程度编号 int = null,
|
|
@职称编号 nvarchar(50) = null,
|
|
@岗位状态编号 int = null,
|
|
@岗位编号 int = null,
|
|
@考勤编号 nvarchar(50) = null,
|
|
@密码 nvarchar(50) = null,
|
|
@姓名 nvarchar(50) = null,
|
|
@身份证号 nvarchar(50) = null,
|
|
@入公司时间 datetime = null,
|
|
@出生日期 datetime = null,
|
|
@联系电话 nvarchar(50) = null,
|
|
@家庭住址 nvarchar(50) = null,
|
|
@民族 nvarchar(10) = null,
|
|
@班组 nvarchar(50) = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@姓名, '') = ''
|
|
BEGIN
|
|
SELECT 0 AS result, N'姓名不能为空' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@考勤编号, '') = ''
|
|
BEGIN
|
|
SELECT 0 AS result, N'工号不能为空' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF TRY_CONVERT(int, @考勤编号) IS NULL
|
|
BEGIN
|
|
SELECT 0 AS result, N'工号格式不正确' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM 人事档案管理_人员名单
|
|
WHERE 序号 = TRY_CONVERT(int, @考勤编号)
|
|
AND 人员编号 <> @人员编号
|
|
)
|
|
BEGIN
|
|
SELECT 0 AS result, N'工号已存在,不能重复保存' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF(@学历编号 = 'NAN') SET @学历编号 = null
|
|
IF(@性别编号 = 'NAN') SET @性别编号 = null
|
|
IF(@职称编号 = 'NAN') SET @职称编号 = null
|
|
IF(@班组 = 'NAN') SET @班组 = null
|
|
|
|
BEGIN TRY
|
|
BEGIN TRAN
|
|
|
|
UPDATE [dbo].[人事档案管理_人员名单]
|
|
SET 序号 = TRY_CONVERT(int, @考勤编号),
|
|
考勤编号 = @考勤编号,
|
|
姓名 = @姓名,
|
|
身份证号 = @身份证号,
|
|
性别编号 = TRY_CONVERT(int, @性别编号),
|
|
学历编号 = TRY_CONVERT(int, @学历编号),
|
|
入公司时间 = @入公司时间,
|
|
出生日期 = @出生日期,
|
|
联系电话 = @联系电话,
|
|
密码 = @密码,
|
|
家庭住址 = @家庭住址,
|
|
民族 = @民族,
|
|
班组流水号 = TRY_CONVERT(int, @班组)
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
UPDATE [dbo].[人事档案管理_部门与人员]
|
|
SET 岗位编号 = @岗位编号
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
COMMIT TRAN
|
|
SELECT 1 AS result, N'编辑成功' AS msg
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRAN
|
|
SELECT 0 AS result, ERROR_MESSAGE() AS msg
|
|
END CATCH
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_人员名单_移动数据_MESWORK]
|
|
@考核部门编号 int = null,
|
|
@人员编号 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_基础表_部门 WHERE 考核部门编号 = @考核部门编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'目标部门不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRY
|
|
BEGIN TRAN
|
|
UPDATE [dbo].[人事档案管理_人员名单]
|
|
SET 考核部门编号 = @考核部门编号
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
UPDATE [dbo].[人事档案管理_部门与人员]
|
|
SET 部门编号 = @考核部门编号
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
COMMIT TRAN
|
|
SELECT 1 AS result, N'移组成功' AS msg
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRAN
|
|
SELECT 0 AS result, ERROR_MESSAGE() AS msg
|
|
END CATCH
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_人员名单_删除数据_MESWORK]
|
|
@人员编号 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
UPDATE 人事档案管理_人员名单
|
|
SET 是否离职 = 1,
|
|
岗位状态编号 = 2
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
DELETE FROM 菜单系统模块_人员与角色
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
SELECT 1 AS result, N'删除成功' AS msg
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_人员_离职操作]
|
|
@人员编号 int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号 AND ISNULL(岗位状态编号, 1) = 2)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该员工已离职' AS msg
|
|
RETURN
|
|
END
|
|
|
|
UPDATE 人事档案管理_人员名单
|
|
SET 岗位状态编号 = 2
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
SELECT 1 AS result, N'离职成功' AS msg
|
|
END
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[人事档案管理_人员_复职操作]
|
|
@人员编号 int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号 AND ISNULL(是否离职, 0) <> 0)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该员工已被删除,不能复职' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号 AND ISNULL(岗位状态编号, 1) = 1)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该员工已是在职状态' AS msg
|
|
RETURN
|
|
END
|
|
|
|
UPDATE 人事档案管理_人员名单
|
|
SET 岗位状态编号 = 1,
|
|
是否离职 = 0
|
|
WHERE 人员编号 = @人员编号
|
|
|
|
SELECT 1 AS result, N'复职成功' AS msg
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[人事档案管理_离职人员_删除数据]
|
|
@考勤编号 nvarchar(50) = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
DECLARE @人员编号 int
|
|
|
|
SELECT @人员编号 = 人员编号
|
|
FROM 人事档案管理_人员名单
|
|
WHERE 考勤编号 = @考勤编号
|
|
|
|
IF @人员编号 IS NULL
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM 人事档案管理_人员名单
|
|
WHERE 人员编号 = @人员编号
|
|
AND ISNULL(岗位状态编号, 1) <> 2
|
|
)
|
|
BEGIN
|
|
SELECT 0 AS result, N'只能删除离职人员' AS msg
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRY
|
|
BEGIN TRAN
|
|
DELETE FROM 菜单系统模块_人员与角色 WHERE 人员编号 = @人员编号
|
|
DELETE FROM 人事档案管理_部门与人员 WHERE 人员编号 = @人员编号
|
|
DELETE FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号
|
|
COMMIT TRAN
|
|
SELECT 1 AS result, N'删除成功' AS msg
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRAN
|
|
SELECT 0 AS result, ERROR_MESSAGE() AS msg
|
|
END CATCH
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[菜单系统模块_项目角色员工综合_增加数据]
|
|
@人员编号 int = null,
|
|
@角色编号 int = null,
|
|
@项目编号 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 人事档案管理_人员名单 WHERE 人员编号 = @人员编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM 人事档案管理_人员名单
|
|
WHERE 人员编号 = @人员编号
|
|
AND (ISNULL(是否离职, 0) <> 0 OR ISNULL(岗位状态编号, 1) <> 1)
|
|
)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该员工不是在职状态,不能分配角色' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 菜单系统模块_项目角色 WHERE 角色编号 = @角色编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'角色不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM 菜单系统模块_人员与角色 WHERE 人员编号 = @人员编号 AND 角色编号 = @角色编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该员工已分配该角色,不能重复新增' AS msg
|
|
RETURN
|
|
END
|
|
|
|
INSERT INTO [菜单系统模块_人员与角色](人员编号, 角色编号, 操作时间)
|
|
VALUES(@人员编号, @角色编号, GETDATE())
|
|
|
|
SELECT 1 AS result, N'增加成功' AS msg
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[菜单系统模块_项目角色员工综合_修改数据]
|
|
@人员角色流水号 int = null,
|
|
@人员编号 int = null,
|
|
@角色编号 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 菜单系统模块_人员与角色 WHERE 人员角色流水号 = @人员角色流水号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员角色关系不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 菜单系统模块_项目角色 WHERE 角色编号 = @角色编号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'角色不存在' AS msg
|
|
RETURN
|
|
END
|
|
|
|
IF EXISTS (
|
|
SELECT 1
|
|
FROM 菜单系统模块_人员与角色
|
|
WHERE 人员编号 = @人员编号
|
|
AND 角色编号 = @角色编号
|
|
AND 人员角色流水号 <> @人员角色流水号
|
|
)
|
|
BEGIN
|
|
SELECT 0 AS result, N'该员工已分配该角色,不能重复保存' AS msg
|
|
RETURN
|
|
END
|
|
|
|
UPDATE [菜单系统模块_人员与角色]
|
|
SET [角色编号] = @角色编号,
|
|
操作时间 = GETDATE()
|
|
WHERE [人员角色流水号] = @人员角色流水号
|
|
|
|
SELECT 1 AS result, N'修改成功' AS msg
|
|
END
|
|
GO
|
|
|
|
ALTER PROCEDURE [dbo].[菜单系统模块_项目角色员工综合_删除数据]
|
|
@人员角色流水号 int = null
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM 菜单系统模块_人员与角色 WHERE 人员角色流水号 = @人员角色流水号)
|
|
BEGIN
|
|
SELECT 0 AS result, N'人员角色关系不存在或已删除' AS msg
|
|
RETURN
|
|
END
|
|
|
|
DELETE FROM 菜单系统模块_人员与角色
|
|
WHERE 人员角色流水号 = @人员角色流水号
|
|
|
|
SELECT 1 AS result, N'删除成功' AS msg
|
|
END
|
|
GO
|