根据工号查询学分明细

master
xiaochanghai 11 months ago
parent a13552d802
commit 6f47f2df92
  1. 12
      Tiobon.Core.Api/Controllers/Ghre/Ghre_CreditPointController.cs
  2. 15
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 8
      Tiobon.Core.IServices/Ghre/IGhre_CreditPointServices.cs
  4. 24
      Tiobon.Core.Model/ViewModels/Extend/Ghre_CreditPointTotal.cs
  5. 125
      Tiobon.Core.Services/Ghre/Ghre_CreditPointServices.cs

@ -24,5 +24,17 @@ public class Ghre_CreditPointController : BaseController<IGhre_CreditPointServic
return await _service.QueryTotal(body); return await _service.QueryTotal(body);
} }
/// <summary>
/// 根据工号查询学分明细
/// </summary>
/// <param name="body"></param>
/// <param name="staffId">员工ID</param>
/// <returns></returns>
[HttpPost("QueryDetail/{staffId}")]
public async Task<ServicePageResult<Ghre_CreditPointDetail>> QueryDetail([FromBody] QueryBody body, string staffId)
{
return await _service.QueryDetail(body, staffId);
}
#endregion #endregion
} }

@ -12125,5 +12125,20 @@
学分 学分
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Ghre_CreditPointDetail.Id">
<summary>
Id
</summary>
</member>
<member name="P:Tiobon.Core.Model.Ghre_CreditPointDetail.Date">
<summary>
</summary>
</member>
<member name="P:Tiobon.Core.Model.Ghre_CreditPointDetail.CreditPoints">
<summary>
学分
</summary>
</member>
</members> </members>
</doc> </doc>

@ -8,7 +8,9 @@ namespace Tiobon.Core.IServices;
/// <summary> /// <summary>
/// 学分记录(自定义服务接口) /// 学分记录(自定义服务接口)
/// </summary> /// </summary>
public interface IGhre_CreditPointServices :IBaseServices<Ghre_CreditPoint, Ghre_CreditPointDto, InsertGhre_CreditPointInput, EditGhre_CreditPointInput> public interface IGhre_CreditPointServices : IBaseServices<Ghre_CreditPoint, Ghre_CreditPointDto, InsertGhre_CreditPointInput, EditGhre_CreditPointInput>
{ {
Task<ServicePageResult<Ghre_CreditPointTotal>> QueryTotal(QueryBody filter); Task<ServicePageResult<Ghre_CreditPointTotal>> QueryTotal(QueryBody filter);
}
Task<ServicePageResult<Ghre_CreditPointDetail>> QueryDetail(QueryBody filter, string staffId);
}

@ -54,3 +54,27 @@ public class Ghre_CreditPointTotal
public string CreditPoints { get; set; } public string CreditPoints { get; set; }
} }
public class Ghre_CreditPointDetail
{
/// <summary>
/// Id
/// </summary>
public long Id { get; set; }
/// <summary>
///
/// </summary>
public string Date { get; set; }
public string CourseClass { get; set; }
public string CourseScene { get; set; }
public string CoverUrl { get; set; }
public string CourseNo { get; set; }
public string CourseName { get; set; }
/// <summary>
/// 学分
/// </summary>
public string CreditPoints { get; set; }
}

@ -165,4 +165,129 @@ public class Ghre_CreditPointServices : BaseServices<Ghre_CreditPoint, Ghre_Cred
return new ServicePageResult<Ghre_CreditPointTotal>(filter.pageNum, totalCount, filter.pageSize, data); return new ServicePageResult<Ghre_CreditPointTotal>(filter.pageNum, totalCount, filter.pageSize, data);
} }
public async Task<ServicePageResult<Ghre_CreditPointDetail>> QueryDetail(QueryBody filter, string staffId)
{
RefAsync<int> totalCount = 0;
string sql = @$"SELECT A.Id,
CONVERT (VARCHAR (100), A.[Date], 23) Date,
A.[Date] Date1,
A.CreditPoints,
B.CoverUrl,
B.CourseClass,
B.CourseScene,
B.CourseNo,
B.CourseName
FROM Ghre_CreditPoint A LEFT JOIN Ghre_CourseSnap B ON A.CourseSnapId = B.Id
WHERE A.StaffId = '{staffId}'";
if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "Date1 DESC";
string conditions = "1=1";
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize")
continue;
//if (name == "Indate")
//{
// var jsonParam = JsonConvert.DeserializeObject<JsonParam1>(value);
// conditions += $" AND (Indate BETWEEN '{jsonParam.columnValue[0]}' AND '{jsonParam.columnValue[1]}')";
// continue;
//}
if (name == "Date")
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam1>(value);
conditions += $" AND (Date BETWEEN '{jsonParam.columnValue[0]}' AND '{jsonParam.columnValue[1]}')";
continue;
}
if (name == "CreditPoints")
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value);
switch (jsonParam.operationKey)
{
case "Include":
sql += $" WHERE {name} LIKE '%{jsonParam.columnValue}%'";
break;
case "NotInclude":
sql += $" WHERE {name} NOT LIKE '%{jsonParam.columnValue}%'";
break;
case "IsNull":
sql += $" WHERE {name} IS NULL";
break;
case "NotNull":
sql += $" WHERE {name} IS NOT NULL";
break;
case "Equal":
sql += $" WHERE {name} ='{jsonParam.columnValue}'";
break;
case "NotEqual":
sql += $" WHERE {name} !='{jsonParam.columnValue}'";
break;
case "GreaterOrEqual"://大于等于
sql += $" WHERE {name} >='{jsonParam.columnValue}'";
break;
case "Greater"://大于
sql += $" WHERE {name} >'{jsonParam.columnValue}'";
break;
case "LessOrEqual"://小于等于
sql += $" WHERE {name} <='{jsonParam.columnValue}'";
break;
case "Less"://小于
sql += $" WHERE {name} <'{jsonParam.columnValue}'";
break;
default:
break;
}
continue;
}
if (!string.IsNullOrWhiteSpace(value))
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value);
switch (jsonParam.operationKey)
{
case "Include":
conditions += $" AND {name} LIKE '%{jsonParam.columnValue}%'";
break;
case "NotInclude":
conditions += $" AND {name} NOT LIKE '%{jsonParam.columnValue}%'";
break;
case "IsNull":
conditions += $" AND {name} IS NULL";
break;
case "NotNull":
conditions += $" AND {name} IS NOT NULL";
break;
case "Equal":
conditions += $" AND {name} ='{jsonParam.columnValue}'";
break;
case "NotEqual":
conditions += $" AND {name} !='{jsonParam.columnValue}'";
break;
default:
break;
}
}
}
sql = string.Format(sql, conditions);
if (filter.pageSize == 0)
filter.pageSize = 10000;
var data = await Db.SqlQueryable<Ghre_CreditPointDetail>(sql)
.OrderBy(filter.orderBy)
.ToPageListAsync(filter.pageNum, filter.pageSize, totalCount);
return new ServicePageResult<Ghre_CreditPointDetail>(filter.pageNum, totalCount, filter.pageSize, data);
}
} }
Loading…
Cancel
Save