yuanrf дней назад: 3
Родитель
Сommit
c6ffbc37a2
1 измененных файлов с 43 добавлено и 3 удалено
  1. 43 3
      OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

+ 43 - 3
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -3471,9 +3471,47 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                 }
 
                 var client = journal_detail.info.GetFieldValue("客户单位信息", "单位全称");
-                journal_data_Clients.Add(client);
+                if (!string.IsNullOrEmpty(client))
+                {
+                    journal_data_Clients.Add(client);
+                }
             }
 
+            //清洗JSON数据
+            //1.外出打卡
+            var checkin_data_clean = checkin_data.checkindata.Select(x => new
+            {
+                地点名称 = x.location_title, //地点名称
+                地点详情 = x.location_detail, //地点详情
+                用户ID = x.userid,
+                打卡时间 = x.checkin_time_dt.ToString("yyyy-MM-dd HH:mm:ss"), //打卡日期
+                备注信息 = x.notes, //备注
+            }).ToList();
+
+            //2. 外出及出差申请数据信息
+            var detailViews_clean = detailViews.Select(x =>
+            {
+                var x1 = x.info;
+                var contents = x.info.apply_data.contents;
+
+                var reasonText = contents
+                .FirstOrDefault(c => c.title.Any(t => t.text == "外出事由" || t.text == "出差事由"))
+                ?.value?.text;
+
+                var locationText = contents
+                    .FirstOrDefault(c => c.title.Any(t => t.text == "外出地点" || t.text == "出差地点"))
+                    ?.value?.text;
+
+                return new
+                {
+                    申请人ID = x1.applyer?.userid,                 // 申请人ID
+                    申请日期 = x1.apply_time_dt.ToString("yyyy-MM-dd"), // 申请日期,建议取开始日期
+                    审批状态 = x1.sp_status,
+                    外出事由 = reasonText,
+                    外出地点 = locationText,
+                };
+            }).ToList();
+
             var settingTemp = await _sqlSugar.Queryable<Sys_SetData>().FirstAsync(x => x.Id == 1461 && x.IsDel == 0);
             if (settingTemp != null && !string.IsNullOrEmpty(settingTemp.Remark))
             {
@@ -3481,8 +3519,8 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
                 {
                     FormatTemplate = settingTemp.Remark,
                     Parameters = new List<string> {
-                         JsonConvert.SerializeObject(checkin_data.checkindata),
-                         JsonConvert.SerializeObject(detailViews),
+                         JsonConvert.SerializeObject(checkin_data_clean),
+                         JsonConvert.SerializeObject(detailViews_clean),
                          user_entity.CnName,
                          start.ToString("yyyy-MM-dd"),
                          end.ToString("yyyy-MM-dd"),
@@ -3503,6 +3541,8 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
 
             try
             {
+                Console.WriteLine(question);
+
                 var resp = await _deepSeekService.ChatAsync(question, false, "deepseek-reasoner", 0.3f, 60000);
                 if (!resp.Success)
                 {