Files
52-NingdePDC-MES_Web_manager/人员管理业务修复.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