Commit abf2a80b authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents db4b8e37 a0f2f35d
......@@ -90,5 +90,10 @@ namespace Edu.Model.Entity.Duty
/// 到访时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
}
}
......@@ -23,6 +23,16 @@ namespace Edu.Model.Entity.EduTask
/// </summary>
public string Title { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 单据类型
/// </summary>
......@@ -63,6 +73,11 @@ namespace Edu.Model.Entity.EduTask
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 抄送人(多个逗号分隔)
/// </summary>
public string RecipientIds { get; set; }
/// <summary>
/// 审核状态(见枚举)
/// </summary>
......
......@@ -4,14 +4,14 @@ using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
namespace Edu.Model.Entity.EduTask
{
/// <summary>
/// 学员退课单据审核记录表
/// 教务单据审核记录表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_BackRecord
public class RB_Education_Record
{
/// <summary>
/// 审核记录表主键编号
......
......@@ -4,14 +4,14 @@ using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
namespace Edu.Model.Entity.EduTask
{
/// <summary>
/// 退款单据审核人员信息实体类
/// 教务单据审核人员信息实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_BackRelevance
public class RB_Education_Relevance
{
/// <summary>
/// 主键编号
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.EduTask
{
/// <summary>
/// 教务单据审核实体类
/// </summary>
public class EduReceiptAudit
{
/// <summary>
/// 单据编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 审核状态(1-待审核,2-审核通过,3-驳回)
/// </summary>
public int AuditStatus { get; set; }
/// <summary>
/// 审核备注
/// </summary>
public string Description { get; set; }
/// <summary>
/// 是否特殊节点
/// </summary>
public int SpecialNode { get; set; }
/// <summary>
/// 抄送人
/// </summary>
public string RecipientIds { get; set; }
/// <summary>
/// 退款金额【退课单据】
/// </summary>
public decimal BackMoney { get; set; }
}
}
using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Course
namespace Edu.Model.ViewModel.EduTask
{
/// <summary>
/// 学员退课单据审核记录表视图实体类
/// 教务单据审核记录表视图实体类
/// </summary>
public class RB_Student_BackRecord_ViewModel : RB_Student_BackRecord
public class RB_Education_Record_ViewModel : RB_Education_Record
{
}
......
using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Course
namespace Edu.Model.ViewModel.EduTask
{
/// <summary>
/// 退款单据审核人员信息视图实体类
/// 教务单据审核人员信息视图实体类
/// </summary>
public class RB_Student_BackRelevance_ViewModel : RB_Student_BackRelevance
public class RB_Education_Relevance_ViewModel : RB_Education_Relevance
{
}
}
......@@ -3006,7 +3006,7 @@ namespace Edu.Module.Course
result.Add(new
{
Id = item?.ClassTimeId ?? 0,
ClassType = item.ClassType,
item.ClassType,
item.ClassId,
item.ClassName,
item.CourseName,
......
......@@ -9,6 +9,8 @@ using System.Text;
using System.Linq;
using Edu.Model.Entity.Course;
using VT.FW.DB;
using Edu.Model.Entity.EduTask;
using Edu.Repository.EduTask;
namespace Edu.Module.Course
{
......@@ -22,15 +24,6 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_Student_BackClassRepository student_BackClassRepository = new RB_Student_BackClassRepository();
/// <summary>
/// 退款单据审核人员信息仓储层对象
/// </summary>
private readonly RB_Student_BackRelevanceRepository student_BackRelevanceRepository = new RB_Student_BackRelevanceRepository();
/// <summary>
/// 学员退课单据审核记录仓储层对象
/// </summary>
private readonly RB_Student_BackRecordRepository student_BackRecordRepository = new RB_Student_BackRecordRepository();
/// <summary>
/// 学员签到仓储层对象
......@@ -43,9 +36,9 @@ namespace Edu.Module.Course
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
/// <summary>
/// 流程仓储层对象
/// 教务单据
/// </summary>
private readonly RB_FlowRepository flowRepository = new RB_FlowRepository();
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
/// <summary>
......@@ -80,20 +73,14 @@ namespace Edu.Module.Course
message = "未找到对应的班级信息!";
return false;
}
//获取退课流程
var flowModel = flowRepository.GetFlowRepository(Common.Config.BackClassFlowId);
if (flowModel == null)
{
message = "未配置退课流程!";
return false;
}
//获取教师实体信息
var teacherModel = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
AccountId = classModel.Teacher_Id,
AccountType = Common.Enum.User.AccountTypeEnum.Teacher
})?.FirstOrDefault();
var teacherId = teacherModel?.Id ?? 0;
var totalBackCount = student_BackClassRepository.GetStudentBackClassNumRepository();
string backNum;
if (totalBackCount < 10000)
......@@ -104,7 +91,7 @@ namespace Edu.Module.Course
{
backNum = totalBackCount.ToString();
}
var teacherId = teacherModel?.Id ?? 0;
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(orderModel.ClassId);
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(GuestId.ToString());
......@@ -144,101 +131,25 @@ namespace Edu.Module.Course
var newBackId = student_BackClassRepository.Insert(backClassModel);
backClassModel.BackId = newBackId;
flag = newBackId > 0;
int index = 0;
foreach (var item in flowModel.FlowNodeList)
{
if (item.FlowAduitList != null && item.FlowAduitList.Count > 0)
{
string AuditedId = "";//审核人
foreach (var subItem in item.FlowAduitList)
{
//指定人员
if (subItem.AuditType == Common.Enum.User.WFTAuditTypeEnum.SpecifiedMember)
{
AuditedId += subItem.UserId + ",";
}
//指定角色
else if (subItem.AuditType == Common.Enum.User.WFTAuditTypeEnum.Role)
{
//本班教师审核
if (subItem.PostType == 1)
{
AuditedId += teacherId + ",";
subItem.UserId = teacherId;
}
//关联销售审核
else if (subItem.PostType == 2)
{
AuditedId += orderModel.EnterID + ",";
subItem.UserId = orderModel.EnterID;
}
//分区校长审核
else if (subItem.PostType == 3)
{
var headmaster = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Post_Id = Common.Config.SchoolPostId,
Group_Id = classModel.Group_Id
})?.FirstOrDefault();
AuditedId += (headmaster?.Id ?? 0) + ",";
subItem.UserId = (headmaster?.Id ?? 0);
}
else if (subItem.PostType == 4)
{
var headmaster = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Post_Id = Common.Config.JiaoWuZhang,
Group_Id = classModel.Group_Id
})?.FirstOrDefault();
AuditedId += (headmaster?.Id ?? 0) + ",";
subItem.UserId = (headmaster?.Id ?? 0);
}
}
}
var backLevance = new RB_Student_BackRelevance()
{
ConditionId = backClassModel.BackId,
AuditDescription = item.NodeName,
AuditedId = "",
AuditWay = item.FlowAduitList[0].AuditWay,
AuditType = item.FlowAduitList[0].AuditType,
OriginalAuditId = 0,
RoleOrInitiator = 0,
PostIds=string.Join(",",item.FlowAduitList.Where(qitem=>qitem.AuditType==Common.Enum.User.WFTAuditTypeEnum.Role).Select(qitem=>qitem.PostType)),
UserIds = string.Join(",", item.FlowAduitList.Where(qitem => qitem.AuditType == Common.Enum.User.WFTAuditTypeEnum.SpecifiedMember).Select(qitem => qitem.UserId)),
ToAuditId = AuditedId.TrimEnd(','),
Sort = item.SortNum,
SpecialNode = item.FlowAduitList[0].IsSpecNode,
Stauts = Common.Enum.User.WFRrocessStatus.NotAudit,
WorkFlowId = Common.Config.BackClassFlowId,
};
var backLevanceId = student_BackRelevanceRepository.Insert(backLevance);
backLevance.Id = backLevanceId;
flag = backLevanceId > 0;
if (index == 0)
{
foreach (var subItem in item.FlowAduitList)
{
var recordModel = new RB_Student_BackRecord_ViewModel()
if (flag)
{
ConditionId = backClassModel.BackId,
AuditStatus = Common.Enum.User.WFRrocessStatus.NotAudit,
AuditId = backLevance.Id,
AuditEmId = subItem.UserId,
CreateBy = userinfo.Id,
CreateTime = DateTime.Now,
UpdateBy = userinfo.Id,
UpdateTime = DateTime.Now,
Description = "",
BackrelevanceId = backLevance.Id,
};
flag = student_BackRecordRepository.Insert(recordModel) > 0;
}
}
}
index++;
}
flag = education_ReceiptRepository.SetEducationReceiptRepository(new RB_Education_Receipt()
{
Id=0,
Title="退课单据",
ClassId=orderModel.ClassId,
OrderId=orderModel.OrderId,
ReceiptType= Common.Enum.Finance.ReceiptTypeEnum.BackClass,
RelationId= backClassModel.BackId,
Group_Id=orderModel.Group_Id,
School_Id=orderModel.School_Id,
CreateBy=userinfo.Id,
CreateTime=DateTime.Now,
UpdateBy=userinfo.Id,
UpdateTime=DateTime.Now,
RecipientIds="",
VerifyStatus= Common.Enum.Finance.WFRrocessStatus.NotAudit
}, out message);
if (flag)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
......@@ -247,6 +158,7 @@ namespace Edu.Module.Course
};
flag = order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), GuestId));
}
}
return flag;
}
......
......@@ -30,15 +30,6 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_Student_BackClassRepository student_BackClassRepository = new RB_Student_BackClassRepository();
/// <summary>
/// 退款单据审核人员信息仓储层对象
/// </summary>
private readonly RB_Student_BackRelevanceRepository student_BackRelevanceRepository = new RB_Student_BackRelevanceRepository();
/// <summary>
/// 学员退课单据审核记录仓储层对象
/// </summary>
private readonly RB_Student_BackRecordRepository student_BackRecordRepository = new RB_Student_BackRecordRepository();
/// <summary>
......@@ -61,10 +52,6 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
/// <summary>
/// 账号
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 日志
......@@ -144,631 +131,6 @@ namespace Edu.Module.Course
return obj;
}
/// <summary>
/// 退课单据审核
/// </summary>
/// <param name="BackId">退课单据号</param>
/// <param name="AuditStatus">审核状态(1-待审核,2-审核通过,3-驳回)</param>
/// <param name="Description">审核备注</param>
/// <param name="user">登录用户信息</param>
/// <param name="message">返回提示信息</param>
/// <param name="BackMoney"></param>
/// <returns></returns>
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<string, object>();
///目前审核为最后一步
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<string, object>
{
{ 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;
}
/// <summary>
/// 更新退课主表状态
/// </summary>
/// <param name="statusEnum">审核状态</param>
/// <param name="newRecipientIds">抄送人</param>
/// <param name="backModel">退课表实体信息</param>
/// <param name="SpecialNode">是否是特殊节点(1-是)</param>
/// <param name="BackMoney">实际退款金额</param>
/// <returns></returns>
private bool UpdateStuBackBillStatusModule(BackClassAuditStatusEnum statusEnum, string newRecipientIds, RB_Student_BackClass backModel, int SpecialNode = 0, decimal BackMoney = 0)
{
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{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.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { OrderId = backModel.OrderId });
if (guestList != null && guestList.Where(qitem => qitem.GuestState == 2).Count() == guestList.Count())
{
//更新订单为退学状态
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order.OrderState),OrderStateEnum.DropOut }
};
flag = orderRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order.OrderId), backModel.OrderId));
}
}
return flag;
}
/// <summary>
/// 更新学员退课状态
/// </summary>
/// <param name="GuestState"></param>
/// <param name="guestId"></param>
/// <returns></returns>
private bool UpdateOrderGuestStatusModule(int GuestState, int guestId)
{
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),GuestState }
};
return order_GuestRepository.Update(guestFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), guestId));
}
/// <summary>
/// 更新审核记录表信息
/// </summary>
/// <param name="wFRrocessStatus">审核状态</param>
/// <param name="Description">审核意见</param>
/// <param name="UserId">审核人Id</param>
/// <param name="Id">审核记录编号</param>
/// <returns></returns>
private bool UpdateStuRecordModule(WFRrocessStatus wFRrocessStatus, string Description, int UserId, int Id)
{
var recordFileds = new Dictionary<string, object>
{
{ 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;
}
/// <summary>
/// 更新审核流程信息
/// </summary>
/// <param name="status"></param>
/// <param name="AuditedId"></param>
/// <param name="Id"></param>
/// <returns></returns>
private bool UpdateStuRelevanceModule(int Id, WFRrocessStatus? status = null, string AuditedId = "")
{
var relevanceFileds = new Dictionary<string, object>();
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;
}
/// <summary>
/// 添加拷贝审核节点
/// </summary>
/// <param name="backModel">退课单据实体</param>
/// <param name="modelNext">审核关联</param>
private bool InsertAuditRelevanceNext(RB_Student_BackClass backModel, RB_Student_BackRelevance_ViewModel modelNext)
{
if (modelNext != null)
{
RB_Student_BackRelevance_ViewModel auditRelevance = modelNext.RefMapperTo<RB_Student_BackRelevance_ViewModel>();
if (auditRelevance != null)
{
List<int> empList = new List<int>();
//添加角色对应的人员
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;
}
/// <summary>
/// 批量添加审核人
/// </summary>
/// <param name="empIds">审核人id集合</param>
/// <param name="wfId">工作流id</param>
/// <param name="wFTTemplateTypeEnum">工作流模板</param>
/// <param name="trans">事务</param>
/// <param name="auditRelevance">审核节点</param>
private void InsertBatcheAuditRecord(List<int> empIds, int wfId, RB_Student_BackRelevance_ViewModel auditRelevance)
{
List<RB_Student_BackRecord_ViewModel> auditrecordList = new List<RB_Student_BackRecord_ViewModel>();
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);
}
/// <summary>
/// 获取退课单据信息
......@@ -778,77 +140,60 @@ namespace Edu.Module.Course
public object GetStuBackInfoModule(int backId)
{
var obj = new List<object>();
//获取单据实体类
var backModel = student_BackClassRepository.GetEntity(backId);
//获取审核记录
var aurList = student_BackRecordRepository.GetStudentBackRecordListRepository(new RB_Student_BackRecord_ViewModel()
{
ConditionId = backId,
});
//审核关联列表
var arList = student_BackRelevanceRepository.GetStudentBackRelevanceListRepository(new RB_Student_BackRelevance_ViewModel()
{
ConditionId = backId
});
obj.Add(new
{
NodeName = "制单人",
AduitStatus = 2,
AuditWayName = "",
AduitStatusName = "发起",
SubList = new List<object>()
{
new{
AduitName= UserReidsCache.GetUserLoginInfo(backModel.CreateBy)?.AccountName ?? "",
Description=backModel.ApplyReason,
CreateTime=Common.ConvertHelper.FormatTime(backModel.CreateTime),
AuditStatus=WFRrocessStatus.AuditThrough,
AuditStatusName = WFRrocessStatus.AuditThrough.ToName(),
}
}
});
var existsList = arList.Where(qitem => aurList.Any(oldItem => qitem.Id == oldItem.BackrelevanceId));
foreach (var item in existsList)
{
obj.Add(new
{
NodeName = item.AuditDescription,
AduitStatus = item.Stauts,
AduitStatusName = GetWFRrocessStatusStrModule(item.Stauts),
AuditWayName = item.AuditWay != WFTAuditWayEnum.Successively ? item.AuditWay.ToName() : "",
SubList = aurList.Where(qitem => qitem.AuditId == item.Id).Select(qitem => new
{
AduitName = UserReidsCache.GetUserLoginInfo(qitem.AuditEmId)?.AccountName ?? "",
Description = !string.IsNullOrEmpty(qitem.Description) ? qitem.Description : "无",
CreateTime = Common.ConvertHelper.FormatTime(qitem.UpdateTime),
qitem.AuditStatus,
AuditStatusName = GetWFRrocessStatusStrModule(qitem.AuditStatus),
})
});
}
////获取单据实体类
//var backModel = student_BackClassRepository.GetEntity(backId);
////获取审核记录
//var aurList = student_BackRecordRepository.GetStudentBackRecordListRepository(new RB_Student_BackRecord_ViewModel()
//{
// ConditionId = backId,
//});
////审核关联列表
//var arList = student_BackRelevanceRepository.GetStudentBackRelevanceListRepository(new RB_Education_Relevance_ViewModel()
//{
// ConditionId = backId
//});
//obj.Add(new
//{
// NodeName = "制单人",
// AduitStatus = 2,
// AuditWayName = "",
// AduitStatusName = "发起",
// SubList = new List<object>()
// {
// new{
// AduitName= UserReidsCache.GetUserLoginInfo(backModel.CreateBy)?.AccountName ?? "",
// Description=backModel.ApplyReason,
// CreateTime=Common.ConvertHelper.FormatTime(backModel.CreateTime),
// AuditStatus=WFRrocessStatus.AuditThrough,
// AuditStatusName = WFRrocessStatus.AuditThrough.ToName(),
// }
// }
//});
//var existsList = arList.Where(qitem => aurList.Any(oldItem => qitem.Id == oldItem.BackrelevanceId));
//foreach (var item in existsList)
//{
// obj.Add(new
// {
// NodeName = item.AuditDescription,
// AduitStatus = item.Stauts,
// AduitStatusName = GetWFRrocessStatusStrModule(item.Stauts),
// AuditWayName = item.AuditWay != WFTAuditWayEnum.Successively ? item.AuditWay.ToName() : "",
// SubList = aurList.Where(qitem => qitem.AuditId == item.Id).Select(qitem => new
// {
// AduitName = UserReidsCache.GetUserLoginInfo(qitem.AuditEmId)?.AccountName ?? "",
// Description = !string.IsNullOrEmpty(qitem.Description) ? qitem.Description : "无",
// CreateTime = Common.ConvertHelper.FormatTime(qitem.UpdateTime),
// qitem.AuditStatus,
// AuditStatusName = GetWFRrocessStatusStrModule(qitem.AuditStatus),
// })
// });
//}
return obj;
}
/// <summary>
/// 获取审核状态字符串
/// </summary>
/// <param name="status"></param>
/// <returns></returns>
private string GetWFRrocessStatusStrModule(WFRrocessStatus status)
{
var statusName = "待审";
switch (status)
{
case WFRrocessStatus.AuditNotThrough: statusName = "拒绝"; break;
case WFRrocessStatus.AuditThrough: statusName = "通过"; break;
case WFRrocessStatus.NotAudit: statusName = "待审"; break;
case WFRrocessStatus.OtherHaveAudit: statusName = "通过"; break;
case WFRrocessStatus.Rejected: statusName = "驳回"; break;
}
return statusName;
}
/// <summary>
/// 退课一键制单
......
......@@ -1498,6 +1498,7 @@ namespace Edu.Module.Duty
{ nameof(RB_Visitor_ViewModel.Evaluate), model.Evaluate},
{ nameof(RB_Visitor_ViewModel.Remark), model.Remark},
{ nameof(RB_Visitor_ViewModel.VisitorStatus), model.VisitorStatus},
{ nameof(RB_Visitor_ViewModel.Age), model.Age},
};
flag = visitorRepository.Update(fileds, new WhereHelper(nameof(RB_Visitor_ViewModel.Id), model.Id));
}
......
using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.EduTask;
using Edu.Repository.EduTask;
using Edu.Repository.Flow;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -24,6 +25,8 @@ namespace Edu.Module.EduTask
/// </summary>
private readonly RB_Change_ClassPlanRepository change_ClassPlanRepository = new RB_Change_ClassPlanRepository();
/// <summary>
/// 获取调课计划列表
/// </summary>
......@@ -77,7 +80,7 @@ namespace Edu.Module.EduTask
UpdateTime=extModel.UpdateTime,
VerifyStatus= Common.Enum.Finance.WFRrocessStatus.NotAudit
};
flag= education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt);
flag= education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt,out string message);
}
}
return flag;
......
......@@ -5,6 +5,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Edu.Aop\Edu.Aop.csproj" />
<ProjectReference Include="..\Edu.Repository\Edu.Repository.csproj" />
</ItemGroup>
......
using Edu.Model.ViewModel.EduTask;
using Edu.AOP.CustomerAttribute;
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.Entity.EduTask;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask;
using Edu.Repository.Course;
using Edu.Repository.EduTask;
using Edu.Repository.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
namespace Edu.Module.EduTask
{
......@@ -16,6 +28,41 @@ namespace Edu.Module.EduTask
/// </summary>
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
/// <summary>
/// 教务单据审核记录仓储层对象
/// </summary>
private readonly RB_Education_RecordRepository education_RecordRepository = new RB_Education_RecordRepository();
/// <summary>
/// 教务单据审核人员信息仓储层对象
/// </summary>
private readonly RB_Education_RelevanceRepository education_RelevanceRepository = new RB_Education_RelevanceRepository();
/// <summary>
/// 账号仓储层对象
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 班级仓储层对象
/// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
/// <summary>
/// 订单仓储层对象
/// </summary>
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
/// <summary>
/// 订单旅客
/// </summary>
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
/// <summary>
/// 学员退课仓储层对象
/// </summary>
private readonly RB_Student_BackClassRepository student_BackClassRepository = new RB_Student_BackClassRepository();
/// <summary>
/// 获取教务单据分页列表
/// </summary>
......@@ -29,6 +76,677 @@ namespace Edu.Module.EduTask
var list = education_ReceiptRepository.GetEducationReceiptPageRepository(pageIndex, pageSize, out rowsCount, query);
return list;
}
/// <summary>
/// 教务单据审核
/// </summary>
/// <param name="model">审核信息</param>
/// <param name="user">登录用户信息</param>
/// <param name="message">返回提示信息</param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool AduitEducationReceiptModule(EduReceiptAudit auditModel, UserInfo user, out string message)
{
message = "";
bool flag = false;
//获取单据实体类
var receipt = education_ReceiptRepository.GetEntity(auditModel.Id);
if (receipt == null)
{
message = "单据不存在,请核实!";
return flag;
}
//抄送人
string newRecipientIds = "";
if (!string.IsNullOrEmpty(auditModel.RecipientIds))
{
newRecipientIds = ((!string.IsNullOrEmpty(receipt.RecipientIds) ? receipt.RecipientIds : "") + "," + auditModel.RecipientIds).TrimStart(',').TrimEnd(',');
}
//获取审核记录
var aurList = education_RecordRepository.GetEducationRecordListRepository(new RB_Education_Record_ViewModel()
{
ConditionId = auditModel.Id,
});
//审核关联列表
var arList = education_RelevanceRepository.GetStudentBackRelevanceListRepository(new RB_Education_Relevance_ViewModel()
{
ConditionId = auditModel.Id
});
//驳回处理
if (auditModel.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 = UpdateEduRecordModule(WFRrocessStatus.AuditNotThrough, auditModel.Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateEduRelevanceModule(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 = UpdateEduRecordModule(WFRrocessStatus.OtherHaveAudit, auditModel.Description, user.Id, item.Id);
}
}
}
}
UpdateOtherModule(receipt,auditModel);
}
//审核通过
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<string, object>();
///目前审核为最后一步
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 = UpdateEduRecordModule(WFRrocessStatus.AuditThrough, auditModel.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 = UpdateEduRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
UpdateOtherModule(receipt, auditModel);
}
else
{
//同时 修改 审核记录状态 审核流程
model.Stauts = WFRrocessStatus.AuditThrough;
if (!string.IsNullOrWhiteSpace(model.AuditedId))
{
model.AuditedId += "," + user.Id;
}
else
{
model.AuditedId = user.Id.ToString();
}
#region 更新审核关联表状态
flag = UpdateEduRelevanceModule(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 = UpdateEduRecordModule(WFRrocessStatus.AuditThrough, auditModel.Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateEduRelevanceModule(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 = UpdateEduRecordModule(WFRrocessStatus.OtherHaveAudit, auditModel.Description, user.Id, item.Id);
}
}
UpdateOtherModule(receipt, auditModel);
}
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 = UpdateEduRecordModule(WFRrocessStatus.AuditThrough, auditModel.Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateEduRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
UpdateOtherModule(receipt, auditModel);
}
}
//同时创建下一步审核 复制审核人到审核关联表 创建审核记录表
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 = UpdateEduRecordModule(WFRrocessStatus.AuditThrough, auditModel.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 = UpdateEduRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//赋值下一步到审核记录中 并更新这一步的待审核人
var modelNext = ToAuditFlow[1];
flag = InsertAuditRelevanceNext(receipt, 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<string, object>
{
{ nameof(RB_Education_Relevance_ViewModel.AuditedId), model.AuditedId },
};
flag = education_RelevanceRepository.Update(relevanceFileds, new WhereHelper(nameof(RB_Education_Relevance_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 = UpdateEduRecordModule(WFRrocessStatus.AuditThrough, auditModel.Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateEduRelevanceModule(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 = UpdateEduRecordModule(WFRrocessStatus.OtherHaveAudit, auditModel.Description, user.Id, item.Id);
}
}
//赋值下一步到审核记录中 并更新这一步的待审核人
var modelNext = ToAuditFlow[1];
flag = InsertAuditRelevanceNext(receipt, 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 = UpdateEduRecordModule(WFRrocessStatus.AuditThrough, auditModel.Description, user.Id, amodel.Id);
#endregion
#region 更新审核关联表状态
flag = UpdateEduRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//赋值下一步到审核记录中 并更新这一步的待审核人
var modelNext = ToAuditFlow[1];
flag = InsertAuditRelevanceNext(receipt, modelNext);
if (flag == false)
{
message = "审核流程不完整无法审核,请联系相关负责人!";
return false;
}
}
}
}
return flag;
}
/// <summary>
/// 获取审核状态字符串
/// </summary>
/// <param name="status"></param>
/// <returns></returns>
private string GetWFRrocessStatusStrModule(WFRrocessStatus status)
{
var statusName = "待审";
switch (status)
{
case WFRrocessStatus.AuditNotThrough: statusName = "拒绝"; break;
case WFRrocessStatus.AuditThrough: statusName = "通过"; break;
case WFRrocessStatus.NotAudit: statusName = "待审"; break;
case WFRrocessStatus.OtherHaveAudit: statusName = "通过"; break;
case WFRrocessStatus.Rejected: statusName = "驳回"; break;
}
return statusName;
}
/// <summary>
/// 更新其他信息
/// </summary>
/// <param name="receiptModel">单据实体</param>
/// <param name="auditModel">审核实体</param>
/// <returns></returns>
public bool UpdateOtherModule(RB_Education_Receipt receiptModel, EduReceiptAudit auditModel)
{
//#region 更新订单旅客表未驳回状态
//flag = UpdateOrderGuestStatusModule(4, backModel.StudentId);
//#endregion
//#region 更新退课单据为驳回状态
//flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Rejected, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
//#endregion
//更新主表状态
//flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
//#region 更新订单旅客表未通过状态
//flag = UpdateOrderGuestStatusModule(2, backModel.StudentId);
//#endregion
////更新主表状态
//flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
//#region 更新订单旅客表未通过状态
//flag = UpdateOrderGuestStatusModule(2, backModel.StudentId);
//#endregion
//更新主表状态
//flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel, SpecialNode: SpecialNode, BackMoney: BackMoney);
//#region 更新订单旅客表未通过状态
//flag = UpdateOrderGuestStatusModule(2, backModel.StudentId);
//#endregion
return true;
}
/// <summary>
/// 更新退课主表状态
/// </summary>
/// <param name="statusEnum">审核状态</param>
/// <param name="newRecipientIds">抄送人</param>
/// <param name="backModel">退课表实体信息</param>
/// <param name="SpecialNode">是否是特殊节点(1-是)</param>
/// <param name="BackMoney">实际退款金额</param>
/// <returns></returns>
private bool UpdateStuBackBillStatusModule(BackClassAuditStatusEnum statusEnum, string newRecipientIds, RB_Student_BackClass backModel, int SpecialNode = 0, decimal BackMoney = 0)
{
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{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.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { OrderId = backModel.OrderId });
if (guestList != null && guestList.Where(qitem => qitem.GuestState == 2).Count() == guestList.Count())
{
//更新订单为退学状态
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order.OrderState),OrderStateEnum.DropOut }
};
flag = orderRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order.OrderId), backModel.OrderId));
}
}
return flag;
}
/// <summary>
/// 更新学员退课状态
/// </summary>
/// <param name="GuestState"></param>
/// <param name="guestId"></param>
/// <returns></returns>
private bool UpdateOrderGuestStatusModule(int GuestState, int guestId)
{
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),GuestState }
};
return order_GuestRepository.Update(guestFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), guestId));
}
/// <summary>
/// 更新审核记录表信息
/// </summary>
/// <param name="wFRrocessStatus">审核状态</param>
/// <param name="Description">审核意见</param>
/// <param name="UserId">审核人Id</param>
/// <param name="Id">审核记录编号</param>
/// <returns></returns>
private bool UpdateEduRecordModule(WFRrocessStatus wFRrocessStatus, string Description, int UserId, int Id)
{
var recordFileds = new Dictionary<string, object>
{
{ nameof(RB_Education_Record_ViewModel.AuditStatus), wFRrocessStatus },
{ nameof(RB_Education_Record_ViewModel.Description),Description} ,
{ nameof(RB_Education_Record_ViewModel.UpdateBy),UserId},
{ nameof(RB_Education_Record_ViewModel.UpdateTime),DateTime.Now}
};
bool flag = education_RecordRepository.Update(recordFileds, new WhereHelper(nameof(RB_Education_Record_ViewModel.Id), Id));
return flag;
}
/// <summary>
/// 更新审核流程信息
/// </summary>
/// <param name="status"></param>
/// <param name="AuditedId"></param>
/// <param name="Id"></param>
/// <returns></returns>
private bool UpdateEduRelevanceModule(int Id, WFRrocessStatus? status = null, string AuditedId = "")
{
var relevanceFileds = new Dictionary<string, object>();
if (!string.IsNullOrEmpty(AuditedId))
{
relevanceFileds.Add(nameof(RB_Education_Relevance_ViewModel.AuditedId), AuditedId);
}
if (status != null)
{
relevanceFileds.Add(nameof(RB_Education_Relevance_ViewModel.Stauts), status);
}
bool flag = education_RelevanceRepository.Update(relevanceFileds, new WhereHelper(nameof(RB_Education_Relevance_ViewModel.Id), Id));
return flag;
}
/// <summary>
/// 添加拷贝审核节点
/// </summary>
/// <param name="receiptModel">单据实体</param>
/// <param name="modelNext">审核关联</param>
private bool InsertAuditRelevanceNext(RB_Education_Receipt receiptModel, RB_Education_Relevance_ViewModel modelNext)
{
if (modelNext != null)
{
RB_Education_Relevance_ViewModel auditRelevance = modelNext.RefMapperTo<RB_Education_Relevance_ViewModel>();
if (auditRelevance != null)
{
List<int> empList = new List<int>();
//添加角色对应的人员
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)
{
//班级实体类
var classModel = classRepository.GetEntity(receiptModel.ClassId);
//获取教师实体信息
var teacherModel = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
AccountId = (classModel?.Teacher_Id??0),
AccountType = Common.Enum.User.AccountTypeEnum.Teacher
})?.FirstOrDefault();
var teacherId = teacherModel?.Id ?? 0;
empList.Add(teacherId);
}
//关联销售审核
else if (item == 2)
{
var orderModel = orderRepository.GetEntity(receiptModel.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 = receiptModel.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 = receiptModel.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, receiptModel.Id, auditRelevance);
}
}
return true;
}
/// <summary>
/// 批量添加审核人
/// </summary>
/// <param name="empIds">审核人id集合</param>
/// <param name="wfId">工作流id</param>
/// <param name="auditRelevance">审核节点</param>
private void InsertBatcheAuditRecord(List<int> empIds, int wfId, RB_Education_Relevance_ViewModel auditRelevance)
{
List<RB_Education_Record_ViewModel> auditrecordList = new List<RB_Education_Record_ViewModel>();
foreach (var item in empIds)
{
RB_Education_Record_ViewModel auditrecord = new RB_Education_Record_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);
}
education_RecordRepository.InsertBatch(auditrecordList);
auditRelevance.ToAuditId = string.Join(",", empIds);
education_RelevanceRepository.Update(auditRelevance);
}
}
}
......@@ -28,7 +28,7 @@ namespace Edu.Repository.Course
string isSpecNode = "";
if (query.Conditon == Common.Enum.Course.BackClassConditionEnum.WaitAgree)
{
isSpecNode = string.Format(",IFNULL((SELECT SpecialNode FROM rb_student_backrelevance WHERE Id IN(SELECT BackrelevanceId FROM rb_student_backrecord WHERE ConditionId=A.BackId AND AuditStatus=1 AND AuditEmId={0})),0) AS SpecialNode ", query.CreateBy);
//isSpecNode = string.Format(",IFNULL((SELECT SpecialNode FROM rb_student_backrelevance WHERE Id IN(SELECT BackrelevanceId FROM rb_student_backrecord WHERE ConditionId=A.BackId AND AuditStatus=1 AND AuditEmId={0})),0) AS SpecialNode ", query.CreateBy);
}
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,IFNULL(C.SName,'') AS SchoolName,IFNULL(D.ClassName,'') AS ClassName,IFNULL(T.TeacherName,'') AS TeacherName
......
......@@ -6,6 +6,10 @@ using System.Text;
using System.Linq;
using VT.FW.DB.Dapper;
using VT.FW.DB;
using Edu.Repository.Flow;
using Edu.Model.ViewModel.Flow;
using Edu.Repository.User;
using Edu.Repository.Course;
namespace Edu.Repository.EduTask
{
......@@ -14,6 +18,36 @@ namespace Edu.Repository.EduTask
/// </summary>
public class RB_Education_ReceiptRepository : BaseRepository<RB_Education_Receipt>
{
/// <summary>
/// 教务单据审核人员信息仓储层对象
/// </summary>
private readonly RB_Education_RelevanceRepository student_BackRelevanceRepository = new RB_Education_RelevanceRepository();
/// <summary>
/// 教务单据审核记录仓储层对象
/// </summary>
private readonly RB_Education_RecordRepository student_BackRecordRepository = new RB_Education_RecordRepository();
/// <summary>
/// 流程仓储层对象
/// </summary>
private readonly RB_FlowRepository flowRepository = new RB_FlowRepository();
/// <summary>
/// 账号仓储层对象
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 班级仓储层对象
/// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
/// <summary>
/// 订单仓储层对象
/// </summary>
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
/// <summary>
/// 获取教务单据分页列表
/// </summary>
......@@ -51,25 +85,136 @@ WHERE 1=1
/// 新增修改教务单据
/// </summary>
/// <param name="model"></param>
/// <param name="message"></param>
/// <returns></returns>
public bool SetEducationReceiptRepository(RB_Education_Receipt model)
public bool SetEducationReceiptRepository(RB_Education_Receipt model, out string message)
{
message = "";
bool flag = false;
if (model.Id > 0)
//审核流程
var flowModel = new RB_Flow_ViewModel();
//退课流程
if (model.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.BackClass)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
flowModel = flowRepository.GetFlowRepository(Common.Config.BackClassFlowId);
message = "未配置退课流程!";
return false;
}
int index = 0;
foreach (var item in flowModel.FlowNodeList)
{
{nameof(RB_Education_Receipt.UpdateBy),model.UpdateBy },
{nameof(RB_Education_Receipt.UpdateTime),model.UpdateTime },
};
flag = base.Update(fileds, new WhereHelper(nameof(RB_Education_Receipt.Id),model.Id));
if (item.FlowAduitList != null && item.FlowAduitList.Count > 0)
{
string AuditedId = "";//审核人
foreach (var subItem in item.FlowAduitList)
{
//指定人员
if (subItem.AuditType == Common.Enum.User.WFTAuditTypeEnum.SpecifiedMember)
{
AuditedId += subItem.UserId + ",";
}
else
//指定角色
else if (subItem.AuditType == Common.Enum.User.WFTAuditTypeEnum.Role)
{
//本班教师审核
if (subItem.PostType == 1)
{
//班级实体类
var classModel = classRepository.GetEntity(model.ClassId);
if (classModel == null)
{
message = "未找到对应的班级信息!";
return false;
}
//获取教师实体信息
var teacherModel = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
AccountId = classModel.Teacher_Id,
AccountType = Common.Enum.User.AccountTypeEnum.Teacher
})?.FirstOrDefault();
var teacherId = teacherModel?.Id ?? 0;
AuditedId += teacherId + ",";
subItem.UserId = teacherId;
}
//关联销售审核
else if (subItem.PostType == 2)
{
var orderModel = orderRepository.GetEntity(model.OrderId);
AuditedId += (orderModel?.EnterID ?? 0) + ",";
subItem.UserId = (orderModel?.EnterID ?? 0);
}
//分区校长审核
else if (subItem.PostType == 3)
{
var headmaster = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Post_Id = Common.Config.SchoolPostId,
Group_Id = model.Group_Id
})?.FirstOrDefault();
AuditedId += (headmaster?.Id ?? 0) + ",";
subItem.UserId = (headmaster?.Id ?? 0);
}
//教务长审核
else if (subItem.PostType == 4)
{
var headmaster = accountRepository.GetAccountListExtRepository(new Model.ViewModel.User.RB_Account_ViewModel()
{
Post_Id = Common.Config.JiaoWuZhang,
Group_Id = model.Group_Id
})?.FirstOrDefault();
AuditedId += (headmaster?.Id ?? 0) + ",";
subItem.UserId = (headmaster?.Id ?? 0);
}
}
}
var levance = new RB_Education_Relevance()
{
ConditionId = model.RelationId,
AuditDescription = item.NodeName,
AuditedId = "",
AuditWay = item.FlowAduitList[0].AuditWay,
AuditType = item.FlowAduitList[0].AuditType,
OriginalAuditId = 0,
RoleOrInitiator = 0,
PostIds = string.Join(",", item.FlowAduitList.Where(qitem => qitem.AuditType == Common.Enum.User.WFTAuditTypeEnum.Role).Select(qitem => qitem.PostType)),
UserIds = string.Join(",", item.FlowAduitList.Where(qitem => qitem.AuditType == Common.Enum.User.WFTAuditTypeEnum.SpecifiedMember).Select(qitem => qitem.UserId)),
ToAuditId = AuditedId.TrimEnd(','),
Sort = item.SortNum,
SpecialNode = item.FlowAduitList[0].IsSpecNode,
Stauts = Common.Enum.User.WFRrocessStatus.NotAudit,
WorkFlowId = Common.Config.BackClassFlowId,
};
var backLevanceId = student_BackRelevanceRepository.Insert(levance);
levance.Id = backLevanceId;
flag = backLevanceId > 0;
if (index == 0)
{
foreach (var subItem in item.FlowAduitList)
{
var recordModel = new RB_Education_Record_ViewModel()
{
ConditionId = model.RelationId,
AuditStatus = Common.Enum.User.WFRrocessStatus.NotAudit,
AuditId = levance.Id,
AuditEmId = subItem.UserId,
CreateBy = model.CreateBy,
CreateTime = DateTime.Now,
UpdateBy = model.CreateBy,
UpdateTime = DateTime.Now,
Description = "",
BackrelevanceId = levance.Id,
};
flag = student_BackRecordRepository.Insert(recordModel) > 0;
}
}
}
index++;
}
var newId = base.Insert(model);
model.Id = newId;
flag = newId > 0;
}
return flag;
}
}
......
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
 using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.EduTask;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Course
namespace Edu.Repository.EduTask
{
/// <summary>
/// 学员退课单据审核记录仓储层
/// 教务单据审核记录仓储层
/// </summary>
public class RB_Student_BackRecordRepository : BaseRepository<RB_Student_BackRecord>
public class RB_Education_RecordRepository : BaseRepository<RB_Education_Record>
{
/// <summary>
/// 获取学员退课单据审核记录列表
/// 获取教务单据审核记录列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_BackRecord_ViewModel> GetStudentBackRecordListRepository(RB_Student_BackRecord_ViewModel query)
public List<RB_Education_Record_ViewModel> GetEducationRecordListRepository(RB_Education_Record_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM RB_Student_BackRecord
FROM RB_Education_Record
WHERE 1=1
");
if (query != null)
{
if (query.ConditionId > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Student_BackRecord_ViewModel.ConditionId), query.ConditionId);
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Education_Record_ViewModel.ConditionId), query.ConditionId);
}
if (query.AuditStatus > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Student_BackRecord_ViewModel.AuditStatus), query.AuditStatus);
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Education_Record_ViewModel.AuditStatus), query.AuditStatus);
}
}
return Get<RB_Student_BackRecord_ViewModel>(builder.ToString()).ToList();
return Get<RB_Education_Record_ViewModel>(builder.ToString()).ToList();
}
}
}
using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Course
namespace Edu.Repository.EduTask
{
/// <summary>
/// 退款单据审核人员信息仓储层
/// 教务单据审核人员信息仓储层
/// </summary>
public class RB_Student_BackRelevanceRepository : BaseRepository<RB_Student_BackRelevance>
public class RB_Education_RelevanceRepository : BaseRepository<RB_Education_Relevance>
{
/// <summary>
/// 获取学生退课审核列表
/// 获取教务审核列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_BackRelevance_ViewModel> GetStudentBackRelevanceListRepository(RB_Student_BackRelevance_ViewModel query)
public List<RB_Education_Relevance_ViewModel> GetStudentBackRelevanceListRepository(RB_Education_Relevance_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM RB_Student_BackRelevance
FROM RB_Education_Relevance
WHERE 1=1
");
if (query != null)
{
if (query.ConditionId > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Student_BackRelevance_ViewModel.ConditionId), query.ConditionId);
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Education_Relevance_ViewModel.ConditionId), query.ConditionId);
}
}
builder.AppendFormat(" ORDER BY Sort ASC ");
return Get<RB_Student_BackRelevance_ViewModel>(builder.ToString()).ToList();
return Get<RB_Education_Relevance_ViewModel>(builder.ToString()).ToList();
}
}
}
\ No newline at end of file
......@@ -115,8 +115,12 @@ namespace Edu.WebApi.Controllers.Course
var SpecialNode = base.ParmJObj.GetInt("SpecialNode");
//抄送人
string RecipientIds = base.ParmJObj.GetStringValue("RecipientIds");
var flag = studentBillModule.SetBackBillAduitModule(BackId, AuditStatus, Description, base.UserInfo,out string message, SpecialNode: SpecialNode, BackMoney: BackMoney, RecipientIds: RecipientIds);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
//var flag = studentBillModule.SetBackBillAduitModule(BackId, AuditStatus, Description, base.UserInfo, out string message, SpecialNode: SpecialNode, BackMoney: BackMoney, RecipientIds: RecipientIds);
//return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
return ApiResult.Failed();
}
/// <summary>
......
......@@ -531,6 +531,7 @@ namespace Edu.WebApi.Controllers.Duty
item.Evaluate,
item.VisitTimes,
item.Remark,
item.Age,
CreateTimeStr = Common.ConvertHelper.FormatDate(item.CreateTime)
});
}
......@@ -559,7 +560,8 @@ namespace Edu.WebApi.Controllers.Duty
PlanId = base.ParmJObj.GetInt("PlanId"),
Remark = base.ParmJObj.GetStringValue("Remark"),
Evaluate = base.ParmJObj.GetStringValue("Evaluate"),
VisitorStatus = base.ParmJObj.GetInt("VisitorStatus")
VisitorStatus = base.ParmJObj.GetInt("VisitorStatus"),
Age=base.ParmJObj.GetInt("Age"),
};
model.Group_Id = base.UserInfo.Group_Id;
model.Status = Common.Enum.DateStateEnum.Normal;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment