ZhiYeJianKang_PeiXun/Song.ServiceImpls/DailyLogCom.cs

93 lines
3.6 KiB
C#
Raw Permalink Normal View History

2025-02-20 15:41:53 +08:00
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using WeiSha.Common;
using Song.Entities;
using WeiSha.Data;
using Song.ServiceInterfaces;
namespace Song.ServiceImpls
{
/// <summary>
/// 员工工作日志
/// </summary>
public class DailyLogCom : IDailyLog
{
/// <summary>
/// 添加
/// </summary>
/// <param name="entity">业务实体</param>
public void Add(DailyLog entity)
{
entity.Dlog_CrtTime = DateTime.Now;
Gateway.Default.Save<DailyLog>(entity);
}
/// <summary>
/// 修改
/// </summary>
/// <param name="entity">业务实体</param>
public void Save(DailyLog entity)
{
Gateway.Default.Save<DailyLog>(entity);
}
/// <summary>
/// 删除按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
public void Delete(int identify)
{
Gateway.Default.Delete<DailyLog>(DailyLog._.Dlog_Id == identify);
}
/// <summary>
/// 获取单一实体对象按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
/// <returns></returns>
public DailyLog GetSingle(int identify)
{
return Gateway.Default.From<DailyLog>().Where(DailyLog._.Dlog_Id == identify).ToFirst<DailyLog>();
}
/// <summary>
/// 获取当前记录类别的上一个记录,如当前日志的上一个日志
/// </summary>
/// <param name="identify"></param>
/// <param name="type">记录类别,1为日志2为周志3为月志4为季度总结5为年度总结</param>
/// <param name="accId">员工id</param>
/// <returns></returns>
public DailyLog GetPrevious(DateTime currTime, string type, int accId)
{
return Gateway.Default.From<DailyLog>()
.Where(DailyLog._.Acc_Id == accId && DailyLog._.Dlog_Type == type && DailyLog._.Dlog_WrtTime < currTime)
.OrderBy(DailyLog._.Dlog_WrtTime.Desc).ToFirst<DailyLog>();
}
/// <summary>
/// 分页获取所有的人员;
/// </summary>
/// <param name="accId">所属人员的id</param>
/// <param name="type">分类1为日志2为周志3为月志4为季度总结5为年度总结</param>
/// <param name="size">每页显示几条记录</param>
/// <param name="index">当前第几页</param>
/// <param name="countSum">记录总数</param>
/// <returns></returns>
public DailyLog[] GetPager(int accId, string type, int size, int index, out int countSum)
{
WhereClip wc = DailyLog._.Acc_Id == accId && DailyLog._.Dlog_Type==type;
countSum = Gateway.Default.Count<DailyLog>(wc);
return Gateway.Default.From<DailyLog>().Where(wc).OrderBy(DailyLog._.Dlog_WrtTime.Desc).ToArray<DailyLog>(size, (index - 1) * size);
}
public DailyLog[] GetPager(int accId, string type, DateTime start, DateTime end, int size, int index, out int countSum)
{
WhereClip wc = DailyLog._.Acc_Id == accId && DailyLog._.Dlog_Type == type;
wc.And(DailyLog._.Dlog_WrtTime >= start && DailyLog._.Dlog_WrtTime <= end);
countSum = Gateway.Default.Count<DailyLog>(wc);
return Gateway.Default.From<DailyLog>().Where(wc).OrderBy(DailyLog._.Dlog_WrtTime.Desc).ToArray<DailyLog>(size, (index - 1) * size);
}
}
}