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