From a3beb6aae5d38391a5de3450ff20dd2a9b7e2bdb Mon Sep 17 00:00:00 2001 From: cdk <2441919651@qq.com> Date: 星期六, 26 七月 2025 10:54:06 +0800 Subject: [PATCH] 增加用户和部门的接口 --- service/JJGZ/OaToMesRecordManager.cs | 151 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 149 insertions(+), 2 deletions(-) diff --git a/service/JJGZ/OaToMesRecordManager.cs b/service/JJGZ/OaToMesRecordManager.cs index a29a8e3..d0c5129 100644 --- a/service/JJGZ/OaToMesRecordManager.cs +++ b/service/JJGZ/OaToMesRecordManager.cs @@ -1,5 +1,4 @@ -锘� -using Microsoft.AspNetCore.Mvc; +锘縰sing Microsoft.AspNetCore.Mvc; using Microsoft.Data.SqlClient; using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; @@ -62,5 +61,153 @@ } } } + + public string ApproveUser(OaToMesUser user) + { + var _strMsg = ""; + if (user == null || user.dataJson == null || user.dataJson.Count == 0) + throw new Exception("dataJson涓嶈兘涓虹┖涓斿繀椤诲寘鍚嚦灏戜竴鏉¤褰�"); + + int insertCount = 0; + int updateCount = 0; + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + conn.Open(); + using (var tran = conn.BeginTransaction()) + { + try + { + foreach (var item in user.dataJson) + { + // 鍙傛暟鏍¢獙澧炲己 + if (string.IsNullOrEmpty(item.Id)) throw new Exception("鐢ㄦ埛ID涓嶈兘涓虹┖"); + if (string.IsNullOrEmpty(item.Name)) throw new Exception("鐢ㄦ埛濮撳悕涓嶈兘涓虹┖"); + + // 妫�鏌ユ槸鍚﹀瓨鍦� + var checkSql = @"SELECT COUNT(1) FROM OA_USER WHERE Id = @Id"; + using (var checkCmd = new SqlCommand(checkSql, conn, tran)) + { + checkCmd.Parameters.AddWithValue("@Id", item.Id); + var exists = (int)checkCmd.ExecuteScalar() > 0; + + if (exists) + { + // 鏇存柊 + var updateSql = @"UPDATE OA_USER SET NAME = @Name, JOBNUMBER = @Jobnumber, DEPARTMENT = @Department WHERE Id = @Id"; + using (var updateCmd = new SqlCommand(updateSql, conn, tran)) + { + updateCmd.Parameters.AddWithValue("@Id", item.Id); + updateCmd.Parameters.AddWithValue("@Name", item.Name ?? (object)DBNull.Value); + updateCmd.Parameters.AddWithValue("@Jobnumber", item.Jobnumber ?? (object)DBNull.Value); + updateCmd.Parameters.AddWithValue("@Department", item.Department ?? (object)DBNull.Value); + int rows = updateCmd.ExecuteNonQuery(); + if (rows > 0) updateCount++; + } + } + else + { + // 鎻掑叆 + var insertSql = @"INSERT INTO OA_USER (Id, NAME, JOBNUMBER, DEPARTMENT) VALUES (@Id, @Name, @Jobnumber, @Department)"; + using (var insertCmd = new SqlCommand(insertSql, conn, tran)) + { + insertCmd.Parameters.AddWithValue("@Id", item.Id); + insertCmd.Parameters.AddWithValue("@Name", item.Name ?? (object)DBNull.Value); + insertCmd.Parameters.AddWithValue("@Jobnumber", item.Jobnumber ?? (object)DBNull.Value); + insertCmd.Parameters.AddWithValue("@Department", item.Department ?? (object)DBNull.Value); + int rows = insertCmd.ExecuteNonQuery(); + if (rows > 0) insertCount++; + } + } + } + } + tran.Commit(); + return $"鐢ㄦ埛鏁版嵁鍚屾鎴愬姛锛佹彃鍏insertCount}鏉★紝鏇存柊{updateCount}鏉¤褰曘��"; + } + catch (Exception ex) + { + tran.Rollback(); + _strMsg = $"鐢ㄦ埛鏁版嵁鍚屾寮傚父锛歿ex.Message}"; + throw new Exception(_strMsg); + } + finally + { + conn.Close(); + } + } + } + } + + public string ApproveDepartment(OaToMesDepartment department) + { + var _strMsg = ""; + if (department == null || department.dataJson == null || department.dataJson.Count == 0) + throw new Exception("dataJson涓嶈兘涓虹┖涓斿繀椤诲寘鍚嚦灏戜竴鏉¤褰�"); + + int insertCount = 0; + int updateCount = 0; + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + conn.Open(); + using (var tran = conn.BeginTransaction()) + { + try + { + foreach (var item in department.dataJson) + { + // 鍙傛暟鏍¢獙澧炲己 + if (string.IsNullOrEmpty(item.Id)) throw new Exception("閮ㄩ棬ID涓嶈兘涓虹┖"); + if (string.IsNullOrEmpty(item.Name)) throw new Exception("閮ㄩ棬鍚嶇О涓嶈兘涓虹┖"); + + // 妫�鏌ユ槸鍚﹀瓨鍦� + var checkSql = @"SELECT COUNT(1) FROM OA_DEPARTMENT WHERE id = @Id"; + using (var checkCmd = new SqlCommand(checkSql, conn, tran)) + { + checkCmd.Parameters.AddWithValue("@Id", item.Id); + var exists = (int)checkCmd.ExecuteScalar() > 0; + + if (exists) + { + // 鏇存柊 + var updateSql = @"UPDATE OA_DEPARTMENT SET name = @Name, Parentid = @Parentid WHERE Id = @Id"; + using (var updateCmd = new SqlCommand(updateSql, conn, tran)) + { + updateCmd.Parameters.AddWithValue("@Id", item.Id); + updateCmd.Parameters.AddWithValue("@Name", item.Name ?? (object)DBNull.Value); + updateCmd.Parameters.AddWithValue("@Parentid", item.Parentid ?? (object)DBNull.Value); + int rows = updateCmd.ExecuteNonQuery(); + if (rows > 0) updateCount++; + } + } + else + { + // 鎻掑叆 + var insertSql = @"INSERT INTO OA_DEPARTMENT (id, name, Parentid) VALUES (@Id, @Name, @Parentid)"; + using (var insertCmd = new SqlCommand(insertSql, conn, tran)) + { + insertCmd.Parameters.AddWithValue("@Id", item.Id); + insertCmd.Parameters.AddWithValue("@Name", item.Name ?? (object)DBNull.Value); + insertCmd.Parameters.AddWithValue("@Parentid", item.Parentid ?? (object)DBNull.Value); + int rows = insertCmd.ExecuteNonQuery(); + if (rows > 0) insertCount++; + } + } + } + } + tran.Commit(); + return $"閮ㄩ棬鏁版嵁鍚屾鎴愬姛锛佹彃鍏insertCount}鏉★紝鏇存柊{updateCount}鏉¤褰曘��"; + } + catch (Exception ex) + { + tran.Rollback(); + _strMsg = $"閮ㄩ棬鏁版嵁鍚屾寮傚父锛歿ex.Message}"; + throw new Exception(_strMsg); + } + finally + { + conn.Close(); + } + } + } + } } } -- Gitblit v1.9.3