From 1dc456829623823fd9b4f2e6f3bed780f034710e Mon Sep 17 00:00:00 2001
From: cdk <2441919651@qq.com>
Date: 星期三, 23 七月 2025 18:11:42 +0800
Subject: [PATCH] 增加考勤记录的接口,从oa传过来的数据

---
 service/JJGZ/OaToMesRecordManager.cs        |   66 ++++++++++++++++++++++
 Dto/service/OaToMesRecord.cs                |   25 ++++++++
 Controllers/JJGZ/OaToMesRecordController.cs |   34 +++++++++++
 3 files changed, 125 insertions(+), 0 deletions(-)

diff --git a/Controllers/JJGZ/OaToMesRecordController.cs b/Controllers/JJGZ/OaToMesRecordController.cs
new file mode 100644
index 0000000..26007c1
--- /dev/null
+++ b/Controllers/JJGZ/OaToMesRecordController.cs
@@ -0,0 +1,34 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.service.JJGZ;
+using NewPdaSqlServer.service.Warehouse;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.JJGZ
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class OaToMesRecordController : ControllerBase
+    {
+        OaToMesRecordManager m = new OaToMesRecordManager();
+
+        [HttpPost("ApproveRecord")]
+        public ResponseResult ApproveRecord(OaToMesRecord queryObj)
+        {
+            try
+            {
+                string rtnMsg = m.ApproveRecord(queryObj);
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = rtnMsg,
+                    data = null
+                };
+            }
+            catch (Exception ex)
+            {
+                return ResponseResult.ResponseError(ex);
+            }
+        }
+    }
+}
diff --git a/Dto/service/OaToMesRecord.cs b/Dto/service/OaToMesRecord.cs
new file mode 100644
index 0000000..de6d6bf
--- /dev/null
+++ b/Dto/service/OaToMesRecord.cs
@@ -0,0 +1,25 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using System.ComponentModel.DataAnnotations;
+
+namespace NewPdaSqlServer.Dto.service
+{
+    public class OaToMesRecord
+    {
+        public List<Record> dataJson { get; set; }
+
+        public string requestId { get; set; }
+    }
+
+    public class Record
+    {
+        public string StaffId { get; set; }
+        public string StaffNo { get; set; }
+
+        public string StaffName { get; set; }
+        public string LineNo { get; set; }
+        public string LineName { get; set; }
+        public DateTime? CheckTime { get; set; }
+        public string Classes { get; set; }
+        public string OrgId { get; set; }
+    }
+}
diff --git a/service/JJGZ/OaToMesRecordManager.cs b/service/JJGZ/OaToMesRecordManager.cs
new file mode 100644
index 0000000..a29a8e3
--- /dev/null
+++ b/service/JJGZ/OaToMesRecordManager.cs
@@ -0,0 +1,66 @@
+锘�
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Data.SqlClient;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using System.Data;
+
+namespace NewPdaSqlServer.service.JJGZ
+{
+    public class OaToMesRecordManager : Repository<OaToMesRecord>
+    {
+        public string ApproveRecord(OaToMesRecord record)
+        {
+            var _strMsg = "";
+            if (record == null || record.dataJson == null || record.dataJson.Count == 0)
+                throw new Exception("dataJson涓嶈兘涓虹┖涓斿繀椤诲寘鍚嚦灏戜竴鏉¤褰�");
+
+            int successCount = 0;
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                conn.Open();
+                using (var tran = conn.BeginTransaction())
+                {
+                    try
+                    {
+                        foreach (var item in record.dataJson)
+                        {
+                            // 鍙傛暟鏍¢獙澧炲己
+                            if (string.IsNullOrEmpty(item.StaffId)) throw new Exception("鍛樺伐缂栧彿涓嶈兘涓虹┖");
+                            if (string.IsNullOrEmpty(item.LineNo)) throw new Exception("浜х嚎涓嶈兘涓虹┖");
+                            if (string.IsNullOrEmpty(item.Classes)) throw new Exception("鐝涓嶈兘涓虹┖");
+                            if (item.CheckTime == null) throw new Exception("鎵撳崱鏃ユ湡涓嶈兘涓虹┖");
+
+                            var sql = @"INSERT INTO MES_JJGZ_RECORD (GUID, Staff_Id, Staff_No, Staff_Name, Line_No, Line_Name, CheckTime, ScheNo,RecordDate,OrgId) VALUES (NEWID(), @StaffId, @StaffNo, @StaffName, @LineNo, @LineName, @CheckTime, @Classes, getdate(),@OrgId)";
+                            using (var cmd = new SqlCommand(sql, conn, tran))
+                            {
+                                cmd.Parameters.AddWithValue("@StaffId", item.StaffId ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@StaffNo", item.StaffNo ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@StaffName", item.StaffName ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@LineNo", item.LineNo ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@LineName", item.LineName ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@CheckTime", item.CheckTime ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@Classes", item.Classes ?? (object)DBNull.Value);
+                                cmd.Parameters.AddWithValue("@OrgId", item.OrgId ?? (object)DBNull.Value);
+                                int rows = cmd.ExecuteNonQuery();
+                                if (rows > 0) successCount++;
+                            }
+                        }
+                        tran.Commit();
+                        return $"鎵归噺鎻掑叆MES_JJGZ_RECORD鎴愬姛锛佸叡鎻掑叆{successCount}鏉¤褰曘��";
+                    }
+                    catch (Exception ex)
+                    {
+                        tran.Rollback();
+                        _strMsg = $"鎵归噺鎻掑叆MES_JJGZ_RECORD寮傚父锛歿ex.Message}";
+                        throw new Exception(_strMsg);
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
+        }
+    }
+}

--
Gitblit v1.9.3