using Edu.Cache.User;
using Edu.Common;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.User;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using Edu.Repository.Course;
using Edu.Repository.Flow;
using Edu.Repository.Log;
using Edu.Repository.User;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
namespace Edu.Module.Course
{
///
/// 学员单据处理类
///
public class StudentBillModule
{
///
/// 学员退课单据仓储层对象
///
private readonly RB_Student_BackClassRepository student_BackClassRepository = new RB_Student_BackClassRepository();
///
/// 退款单据审核人员信息仓储层对象
///
private readonly RB_Student_BackRelevanceRepository student_BackRelevanceRepository = new RB_Student_BackRelevanceRepository();
///
/// 学员退课单据审核记录仓储层对象
///
private readonly RB_Student_BackRecordRepository student_BackRecordRepository = new RB_Student_BackRecordRepository();
///
/// 旅客表仓储层对象
///
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
///
/// 订单仓储层对象
///
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
///
/// 班级
///
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
///
/// 学校
///
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
///
/// 账号
///
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
///
/// 日志
///
private readonly RB_User_ChangeLogRepository changeLogRepository = new RB_User_ChangeLogRepository();
///
/// 班级基础配置表仓储层对象
///
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
///
/// 学员签到仓储层对象
///
private readonly RB_Class_CheckRepository class_CheckRepository = new RB_Class_CheckRepository();
///
/// 财务配置
///
private readonly RB_Finance_ConfigRepository finance_ConfigRepository = new RB_Finance_ConfigRepository();
///
/// 班级处理类
///
private readonly ClassModule classModule = new ClassModule();
///
/// 获取学员退课单据分页列表
///
///
///
///
///
///
public List GetStudentBackClassPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Student_BackClass_ViewModel query)
{
return student_BackClassRepository.GetStudentBackClassPageListRepository(pageIndex, pageSize, out rowsCount, query);
}
///
/// 计算学员退课金额
///
///
///
public object GetBackBillMoneyModule(int BackId)
{
var backModel = student_BackClassRepository.GetEntity(BackId);
var guestModel = order_GuestRepository.GetEntity(backModel.GuestId);
var orderModel = orderRepository.GetEntity(backModel.OrderId);
//班级实体类
var classModel = classRepository.GetEntity(backModel.ClassId);
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetClassConfigRepository(new RB_Class_Config_ViewModel() { Group_Id = backModel.Group_Id })?.BasicMinutes ?? 45;
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(backModel.GuestId.ToString());
//总签到上课分钟数
var totalFinishMinutes = stuCheckList?.Sum(qitem => qitem.FinishMinutes) ?? 0;
//完成课时数
var FinishHours = Convert.ToInt32(totalFinishMinutes) / BasicMinutes;
//课时单价
var classHourPrice = Math.Round(orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours, 2);
//预计退款金额
var backMoney = (classModel.ClassHours - FinishHours) * classHourPrice;
var obj = new
{
orderModel.PreferPrice,
orderModel.GuestNum,
classModel.ClassHours,
FinishHours,
classHourPrice,
backMoney = Math.Round(backMoney, 2)
};
return obj;
}
///
/// 退课单据审核
///
/// 退课单据号
/// 审核状态(1-待审核,2-审核通过,3-驳回)
/// 审核备注
/// 登录用户信息
/// 返回提示信息
///
///
public virtual bool SetBackBillAduitModule(int BackId, int AuditStatus, string Description, UserInfo user, out string message, int SpecialNode = 0, decimal BackMoney = 0, string RecipientIds = "")
{
message = "";
bool flag = false;
//获取单据实体类
var backModel = student_BackClassRepository.GetEntity(BackId);
if (backModel == null)
{
message = "单据不存在,请核实!";
return flag;
}
//抄送人
string newRecipientIds = "";
if (!string.IsNullOrEmpty(RecipientIds))
{
newRecipientIds = ((!string.IsNullOrEmpty(backModel.RecipientIds) ? backModel.RecipientIds : "") + "," + RecipientIds).TrimStart(',').TrimEnd(',');
}
//获取审核记录
var aurList = student_BackRecordRepository.GetStudentBackRecordListRepository(new RB_Student_BackRecord_ViewModel()
{
ConditionId = backModel.BackId,
});
//审核关联列表
var arList = student_BackRelevanceRepository.GetStudentBackRelevanceListRepository(new RB_Student_BackRelevance_ViewModel()
{
ConditionId = backModel.BackId
});
//驳回处理
if (AuditStatus == 3)
{
//找出当前审核
int Notcount = arList.Where(x => x.Stauts == WFRrocessStatus.AuditNotThrough).Count();
if (Notcount > 0)
{
message = "该申请单已被拒绝!";
return false;
}
var ToAuditFlow = arList.Where(x => x.Stauts == WFRrocessStatus.NotAudit).OrderBy(x => x.Sort).ToList();
if (ToAuditFlow.Count <= 0)
{
message = "该申请单审核已经完结!";
return false;
}
if (ToAuditFlow.Count > 0)
{
var model = ToAuditFlow[0];
var RecordList = aurList.Where(x => x.AuditId == model.Id).ToList();
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditNotThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditNotThrough, Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
var list = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).ToList();
int AuditCount = list.Count();
if (AuditCount > 0)//表示最后一个人就是子集审核 申请单 通过
{
foreach (var item in list)
{
flag = UpdateStuRecordModule(WFRrocessStatus.OtherHaveAudit, Description, user.Id, item.Id);
}
}
}
#region 更新订单旅客表未驳回状态
flag = UpdateOrderGuestStatusModule(4, backModel.StudentId);
#endregion
#region 更新退课单据为驳回状态
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Rejected, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
#endregion
}
//审核通过
else
{
//找出当前审核
int Notcount = arList.Where(x => x.Stauts == WFRrocessStatus.AuditNotThrough).Count();
if (Notcount > 0)
{
message = "该退课申请单已被拒绝";
return false;
}
var ToAuditFlow = arList.Where(x => x.Stauts == WFRrocessStatus.NotAudit).OrderBy(x => x.Sort).ToList();
if (ToAuditFlow.Count <= 0)
{
message = "该申请单审核已经完结";
return false;
}
//审核关联表字段
var relevanceFileds = new Dictionary();
///目前审核为最后一步
if (ToAuditFlow.Count == 1)
{
var model = ToAuditFlow[0];
var RecordList = aurList.Where(x => x.AuditId == model.Id).ToList();
if (model.AuditWay == WFTAuditWayEnum.Countersign)
{
//会签 所有人必须审核完该流程才算完成
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditThrough, Description, user.Id, amodel.Id);
#endregion
int AuditCount = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).Count();
if (AuditCount <= 0)//表示最后一个人就是子集审核 申请单 通过
{
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//更新主表状态
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
#region 更新订单旅客表未通过状态
flag = UpdateOrderGuestStatusModule(2, backModel.StudentId);
#endregion
}
else
{
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, null, model.AuditedId);
#endregion
}
}
else if (model.AuditWay == WFTAuditWayEnum.OrSign)
{
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditThrough, Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
var list = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).ToList();
int AuditCount = list.Count();
if (AuditCount > 0)//表示最后一个人就是子集审核 申请单 通过
{
foreach (var item in list)
{
flag = UpdateStuRecordModule(WFRrocessStatus.OtherHaveAudit, Description, user.Id, item.Id);
}
}
//更新主表状态
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
#region 更新订单旅客表未通过状态
flag = UpdateOrderGuestStatusModule(2, backModel.StudentId);
#endregion
}
else
{
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
var list = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).ToList();
int AuditCount = list.Count();
if (AuditCount > 0)
{
message = "流程配置出错啦!非会签,或签 都只能有一个审核人!";
return false;
}
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditThrough, Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//更新主表状态
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
#region 更新订单旅客表未通过状态
flag = UpdateOrderGuestStatusModule(2, backModel.StudentId);
#endregion
}
}
//同时创建下一步审核 复制审核人到审核关联表 创建审核记录表
else
{
var model = ToAuditFlow[0];
var RecordList = aurList.Where(x => x.AuditId == model.Id).ToList();
//会签 所有人必须审核完该流程才算完成
if (model.AuditWay == WFTAuditWayEnum.Countersign)
{
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
//审核记录状态
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditThrough, Description, user.Id, amodel.Id);
#endregion
int AuditCount = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).Count();
if (AuditCount <= 0)//表示最后一个人就是子集审核 申请单 通过
{
//同时 修改 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//赋值下一步到审核记录中 并更新这一步的待审核人
var modelNext = ToAuditFlow[1];
flag = InsertAuditRelevanceNext(backModel, modelNext);
if (flag == false)
{
message = "审核流程不完整无法审核,请联系相关负责人!";
return false;
}
}
else
{
//同时 修改 审核流程
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核关联表状态
relevanceFileds = new Dictionary
{
{ nameof(RB_Student_BackRelevance_ViewModel.AuditedId), model.AuditedId },
};
flag = student_BackRelevanceRepository.Update(relevanceFileds, new WhereHelper(nameof(RB_Student_BackRelevance_ViewModel.Id), model.Id));
#endregion
}
}
else if (model.AuditWay == WFTAuditWayEnum.OrSign)
{
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditThrough, Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
var list = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).ToList();
int AuditCount = list.Count();
if (AuditCount > 0)//表示最后一个人就是子集审核 申请单 通过
{
foreach (var item in list)
{
flag = UpdateStuRecordModule(WFRrocessStatus.OtherHaveAudit, Description, user.Id, item.Id);
}
}
//赋值下一步到审核记录中 并更新这一步的待审核人
var modelNext = ToAuditFlow[1];
flag = InsertAuditRelevanceNext(backModel, modelNext);
if (flag == false)
{
message = "审核流程不完整无法审核,请联系相关负责人!";
return false;
}
}
else
{
var amodel = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId == user.Id).FirstOrDefault();
if (amodel == null)
{
message = "尚未匹配到审核相关信息,请联系管理员!";
return false;
}
var list = RecordList.Where(x => x.AuditStatus == WFRrocessStatus.NotAudit && x.AuditEmId != user.Id).ToList();
int AuditCount = list.Count();
if (AuditCount > 0)
{
message = "流程配置出错啦!非会签、或签 都只能有一个审核人!";
return false;
}
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核记录表状态
flag = UpdateStuRecordModule(WFRrocessStatus.AuditThrough, Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//赋值下一步到审核记录中 并更新这一步的待审核人
var modelNext = ToAuditFlow[1];
flag = InsertAuditRelevanceNext(backModel, modelNext);
if (flag == false)
{
message = "审核流程不完整无法审核,请联系相关负责人!";
return false;
}
}
}
}
return flag;
}
///
/// 更新退课主表状态
///
/// 审核状态
/// 抄送人
/// 退课表实体信息
/// 是否是特殊节点(1-是)
/// 实际退款金额
///
private bool UpdateStuBackBillStatusModule(BackClassAuditStatusEnum statusEnum, string newRecipientIds, RB_Student_BackClass backModel, int SpecialNode = 0, decimal BackMoney = 0)
{
Dictionary backFileds = new Dictionary()
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus), (int)statusEnum }
};
if (!string.IsNullOrEmpty(newRecipientIds))
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.RecipientIds), newRecipientIds);
}
//特殊节点更新时间退课金额
if (SpecialNode == 1)
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.RealityBackMoney), BackMoney);
}
bool flag = student_BackClassRepository.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), backModel.BackId));
if (flag)
{
var guestList = order_GuestRepository.GetList(new RB_Order_Guest_ViewModel() { OrderId = backModel.OrderId });
if (guestList != null && guestList.Where(qitem => qitem.GuestState == 2).Count() == guestList.Count())
{
//更新订单为退学状态
Dictionary orderFileds = new Dictionary()
{
{nameof(RB_Order.OrderState),OrderStateEnum.DropOut }
};
flag = orderRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order.OrderId), backModel.OrderId));
}
}
return flag;
}
///
/// 更新学员退课状态
///
///
///
///
private bool UpdateOrderGuestStatusModule(int GuestState, int guestId)
{
Dictionary guestFileds = new Dictionary()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),GuestState }
};
return order_GuestRepository.Update(guestFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), guestId));
}
///
/// 更新审核记录表信息
///
/// 审核状态
/// 审核意见
/// 审核人Id
/// 审核记录编号
///
private bool UpdateStuRecordModule(WFRrocessStatus wFRrocessStatus, string Description, int UserId, int Id)
{
var recordFileds = new Dictionary
{
{ nameof(RB_Student_BackRecord_ViewModel.AuditStatus), wFRrocessStatus },
{ nameof(RB_Student_BackRecord_ViewModel.Description),Description} ,
{ nameof(RB_Student_BackRecord_ViewModel.UpdateBy),UserId},
{ nameof(RB_Student_BackRecord_ViewModel.UpdateTime),DateTime.Now}
};
bool flag = student_BackRecordRepository.Update(recordFileds, new WhereHelper(nameof(RB_Student_BackRecord_ViewModel.Id), Id));
return flag;
}
///
/// 更新审核流程信息
///
///
///
///
///
private bool UpdateStuRelevanceModule(int Id, WFRrocessStatus? status = null, string AuditedId = "")
{
var relevanceFileds = new Dictionary();
if (!string.IsNullOrEmpty(AuditedId))
{
relevanceFileds.Add(nameof(RB_Student_BackRelevance_ViewModel.AuditedId), AuditedId);
}
if (status != null)
{
relevanceFileds.Add(nameof(RB_Student_BackRelevance_ViewModel.Stauts), status);
}
bool flag = student_BackRelevanceRepository.Update(relevanceFileds, new WhereHelper(nameof(RB_Student_BackRelevance_ViewModel.Id), Id));
return flag;
}
///
/// 添加拷贝审核节点
///
/// 退课单据实体
/// 审核关联
private bool InsertAuditRelevanceNext(RB_Student_BackClass backModel, RB_Student_BackRelevance_ViewModel modelNext)
{
if (modelNext != null)
{
RB_Student_BackRelevance_ViewModel auditRelevance = modelNext.RefMapperTo();
if (auditRelevance != null)
{
List empList = new List();
//添加角色对应的人员
if (!string.IsNullOrEmpty(auditRelevance.PostIds))
{
var postList = Common.ConvertHelper.StringToList(auditRelevance.PostIds);
if (postList != null && postList.Count > 0)
{
foreach (var item in postList)
{
//本班教师审核
if (item == 1)
{
empList.Add(backModel.TeacherId);
}
//关联销售审核
else if (item == 2)
{
var orderModel = orderRepository.GetEntity(backModel.OrderId);
empList.Add(orderModel.EnterID);
}
//分区校长审核
else if (item == 3)
{
var headmaster = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Post_Id = Common.Config.SchoolPostId,
Group_Id = backModel.Group_Id
})?.FirstOrDefault();
if (headmaster != null && headmaster.Id > 0)
{
empList.Add(headmaster.Id);
}
}
else if (item == 4)
{
var headmaster = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Post_Id = Common.Config.JiaoWuZhang,
Group_Id = backModel.Group_Id
})?.FirstOrDefault();
if (headmaster != null && headmaster.Id > 0)
{
empList.Add(headmaster.Id);
}
}
}
}
}
//添加指定用户
if (!string.IsNullOrEmpty(auditRelevance.UserIds))
{
var userList = Common.ConvertHelper.StringToList(auditRelevance.UserIds);
foreach (var item in userList)
{
if (item > 0)
{
empList.Add(item);
}
}
}
InsertBatcheAuditRecord(empList, backModel.BackId, auditRelevance);
}
}
return true;
}
///
/// 批量添加审核人
///
/// 审核人id集合
/// 工作流id
/// 工作流模板
/// 事务
/// 审核节点
private void InsertBatcheAuditRecord(List empIds, int wfId, RB_Student_BackRelevance_ViewModel auditRelevance)
{
List auditrecordList = new List();
foreach (var item in empIds)
{
RB_Student_BackRecord_ViewModel auditrecord = new RB_Student_BackRecord_ViewModel
{
AuditEmId = item,
AuditId = auditRelevance.Id,
AuditStatus = WFRrocessStatus.NotAudit,
CreateBy = item,
CreateTime = DateTime.Now,
UpdateBy = item,
UpdateTime = DateTime.Now,
ConditionId = wfId,
Description = "",
BackrelevanceId = auditRelevance.Id
};
auditrecordList.Add(auditrecord);
}
student_BackRecordRepository.InsertBatch(auditrecordList);
auditRelevance.ToAuditId = string.Join(",", empIds);
student_BackRelevanceRepository.Update(auditRelevance);
}
///
/// 获取退课单据信息
///
///
///
public object GetStuBackInfoModule(int backId)
{
var obj = new List