Commit b10f7779 authored by 吴春's avatar 吴春

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

parents c22b9ac1 4251e0aa
......@@ -309,7 +309,9 @@ namespace Edu.Common
}
}
/// <summary>
/// 是否发送短信
/// </summary>
public static int IsSendMsg
{
get
......@@ -333,5 +335,17 @@ namespace Edu.Common
return fileExportPath;
}
}
/// <summary>
/// 退课流程编号
/// </summary>
public static int BackClassFlowId
{
get
{
int.TryParse(ReadConfigKey("BackClassFlowId"), out int BackClassFlowId);
return BackClassFlowId;
}
}
}
}
\ No newline at end of file
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.Course
{
/// <summary>
/// 退课状态枚举
/// </summary>
public enum BackClassAuditStatusEnum
{
/// <summary>
/// 审核中
/// </summary>
[EnumField("审核中")]
InReview = 1,
/// <summary>
/// 通过
/// </summary>
[EnumField("通过")]
Pass = 2,
/// <summary>
/// 驳回
/// </summary>
[EnumField("驳回")]
Rejected = 3,
/// <summary>
/// 作废
/// </summary>
[EnumField("作废")]
Delete = 4,
}
}
\ No newline at end of file
......@@ -32,4 +32,27 @@ namespace Edu.Common.Enum.Course
[EnumField("生成中")]
Create = 4
}
/// <summary>
/// 绩效状态
/// </summary>
public enum PerfStateEnum
{
/// <summary>
/// 待确认
/// </summary>
[EnumField("待确认")]
Wait = 1,
/// <summary>
/// 已确认
/// </summary>
[EnumField("已确认")]
Confirmed = 2,
/// <summary>
/// 不发放绩效
/// </summary>
[EnumField("不发放绩效")]
Cancel = 3
}
}
......@@ -32,7 +32,7 @@ namespace Edu.Model.Entity.Course
public string GuestName { get; set; }
/// <summary>
/// 状态 1正常 2退学
/// 状态 1正常 2退学 3-申请中,4-驳回申请
/// </summary>
public int GuestState { get; set; }
......
using System;
using Edu.Common.Enum.Course;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
......@@ -75,7 +76,7 @@ namespace Edu.Model.Entity.Course
/// <summary>
/// 审核状态
/// </summary>
public int AuditStatus { get; set; }
public BackClassAuditStatusEnum AuditStatus { get; set; }
/// <summary>
/// 抄送人(多个逗号分隔)
......
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 教师绩效实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Teaching_Perf
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 教师id
/// </summary>
public int TeacherId { get; set; }
/// <summary>
/// 班级Id
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 原带班人数
/// </summary>
public int BaseStuNum { get; set; }
/// <summary>
/// 原课时费
/// </summary>
public decimal BaseHourFee { get; set; }
/// <summary>
/// 增加带班人数
/// </summary>
public int AddStuNum { get; set; }
/// <summary>
/// 增加课时费
/// </summary>
public decimal AddHourFee { get; set; }
/// <summary>
/// 班级人数
/// </summary>
public int ClassPeopelNum { get; set; }
/// <summary>
/// 结课时间
/// </summary>
public DateTime EndDate { get; set; }
/// <summary>
/// 满班率
/// </summary>
public decimal FullClassRate { get; set; }
/// <summary>
/// 平均上课率
/// </summary>
public decimal AvgCheckRate { get; set; }
/// <summary>
/// 累计课时
/// </summary>
public int ClassHours { get; set; }
/// <summary>
/// 课时奖金
/// </summary>
public decimal UnitPrice { get; set; }
/// <summary>
/// 累计绩效金额
/// </summary>
public decimal Money { get; set; }
/// <summary>
/// 财务单据id
/// </summary>
public int FinanceId { get; set; }
/// <summary>
/// 枚举 绩效状态 1待确认 2已确认 3不发放绩效
/// </summary>
public PerfStateEnum PerfState { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 校区id
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 奖金对照
/// </summary>
public string BonusJson { get; set; }
/// <summary>
/// 课时费对照
/// </summary>
public string ClassFeeJson { get; set; }
/// <summary>
/// 确认时间
/// </summary>
public DateTime? ConfirmDate { get; set; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 绩效备注实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Teaching_PerfRemark
{
/// <summary>
/// id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 绩效编号
/// </summary>
public int PerfId { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Content { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}
......@@ -22,6 +22,11 @@ namespace Edu.Model.Entity.Course
/// </summary>
public int Type { get; set; }
/// <summary>
/// 班级类型ids
/// </summary>
public string ClassTypeIds { get; set; }
/// <summary>
/// 基础课时费用
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Flow
{
/// <summary>
/// 流程节点审核信息实体
/// </summary>
public class RB_Flow_AduitInfo
/// <summary>
/// 流程节点审核信息实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Flow_AduitInfo
{
/// <summary>
/// 主键编号
......@@ -24,6 +27,11 @@ namespace Edu.Model.Entity.Flow
/// </summary>
public int FlowId { get; set; }
/// <summary>
/// 审核人民说明信息(比如:关联销售,指定成员名称)
/// </summary>
public string AduitName { get; set; }
/// <summary>
/// 审核类型(1-指定人员,2-指定角色)
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Flow
{
/// <summary>
/// 流程节点实体类
/// </summary>
public class RB_Flow_Node
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Flow_Node
{
/// <summary>
/// 节点编号(主键)
......
......@@ -24,5 +24,21 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public string BirthDay { get; set; }
/// <summary>
/// 学员状态
/// </summary>
public string GuestStateStr
{
get { string str = "";
switch (this.GuestState)
{
case 1: str = "正常";break;
case 2: str = "退学"; break;
case 3: str = "申请退学中"; break;
case 4: str = "驳回申请"; break;
}
return str;
}
}
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 教师备注实体类
/// </summary>
[Serializable]
public class RB_Teaching_PerfRemark_ViewModel : Entity.Course.RB_Teaching_PerfRemark
{
/// <summary>
/// ids
/// </summary>
public string PerfIds { get; set; }
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 教师绩效实体类
/// </summary>
[Serializable]
public class RB_Teaching_Perf_ViewModel : Entity.Course.RB_Teaching_Perf
{
/// <summary>
/// 班级名称
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 教师名称
/// </summary>
public string TeacherName { get; set; }
/// <summary>
/// 教师头像
/// </summary>
public string TeacherIcon { get; set; }
/// <summary>
/// 结课开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结课结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 操作开始时间
/// </summary>
public string OPStartTime { get; set; }
/// <summary>
/// 操作结束时间
/// </summary>
public string OPEndTime { get; set; }
/// <summary>
/// 是否已确认 1是 2否
/// </summary>
public int Q_IsComfirm { get; set; }
/// <summary>
/// 是否已制单 1是 2否
/// </summary>
public int Q_IsCreateFinance { get; set; }
/// <summary>
/// 备注列表
/// </summary>
public List<RB_Teaching_PerfRemark_ViewModel> RemarkList { get; set; }
/// <summary>
/// 奖金对照
/// </summary>
public List<RB_Teaching_Rewards_Rate_ViewModel> JJList { get; set; }
/// <summary>
/// 课时费对照
/// </summary>
public List<RB_Teaching_Rewards_Rate_ViewModel> KSList { get; set; }
}
}
\ No newline at end of file
......@@ -20,7 +20,7 @@ namespace Edu.Module.Course
/// <summary>
/// 订单处理类
/// </summary>
public class OrderModule
public partial class OrderModule
{
/// <summary>
/// 订单
......
using Edu.Model.CacheModel;
using Edu.Model.ViewModel.Course;
using Edu.Repository.Course;
using Edu.Repository.Flow;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Module.Course
{
/// <summary>
/// 订单处理类
/// </summary>
public partial class OrderModule
{
/// <summary>
/// 学员退课单据仓储层对象
/// </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>
/// 流程仓储层对象
/// </summary>
private readonly RB_FlowRepository flowRepository = new RB_FlowRepository();
/// <summary>
/// 创建退课流程
/// </summary>
/// <param name="GuestId"></param>
/// <param name="OrderId"></param>
/// <param name="reason"></param>
/// <param name="userinfo"></param>
/// <param name="message"></param>
/// <returns></returns>
public virtual bool CreateBackClassApplyModule(int GuestId,int OrderId,string reason, UserInfo userinfo,out string message)
{
bool flag = false;
message = "";
var guestModel = order_GuestRepository.GetEntity(GuestId);
var orderModel = orderRepository.GetEntity(OrderId);
if (guestModel == null)
{
message = "旅客信息不正确!";
return false;
}
if (orderModel == null)
{
message = "订单信息不正确!";
return false;
}
//获取退课流程
var backClassFlow = flowRepository.GetFlowRepository(Common.Config.BackClassFlowId);
if (backClassFlow == null)
{
message = "未配置退课流程!";
return false;
}
var backClassModel = new RB_Student_BackClass_ViewModel()
{
BackId=0,
//AuditStatus=
};
return flag;
}
}
}
This diff is collapsed.
......@@ -45,34 +45,17 @@ namespace Edu.Module.System
public List<RB_Flow_ViewModel> GetFlowPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Flow_ViewModel query)
{
var list = flowRepository.GetFlowPageListRepository(pageIndex, pageSize, out rowsCount, query);
return list;
}
/// <summary>
/// 获取流程信息
/// </summary>
/// <param name="Id"></param>
/// <param name="FlowId"></param>
/// <returns></returns>
public RB_Flow_ViewModel GetFlowModule(object Id)
public RB_Flow_ViewModel GetFlowModule(object FlowId)
{
var extModel = flowRepository.GetEntity<RB_Flow_ViewModel>(Id);
if (extModel != null)
{
if (extModel.FlowId > 0)
{
var auditList = flow_AduitInfoRepository.GetFlowAduitInfoListRepository(new RB_Flow_AduitInfo_ViewModel() { FlowId = extModel.FlowId });
extModel.FlowNodeList = flow_NodeRepository.GetFlowNodeListRepository(new RB_Flow_Node_ViewModel() { FlowId = extModel.FlowId });
if (extModel.FlowNodeList != null && extModel.FlowNodeList.Count > 0)
{
foreach (var item in extModel.FlowNodeList)
{
item.FlowAduitList = auditList?.Where(qitem => qitem.NodeId == item.NodeId)?.ToList();
}
}
}
}
return extModel;
return flowRepository.GetFlowRepository(FlowId);
}
......
......@@ -91,5 +91,41 @@ namespace Edu.Repository.Course
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 班级总人数
/// </summary>
/// <param name="classId"></param>
/// <returns></returns>
public int GetClassToalPeopleNum(int classId,int groupId)
{
string sql = $@"SELECT count(*) AS Num FROM(SELECT OrderGuestId FROM rb_class_check WHERE `Status`=0 AND Group_Id={groupId} AND ClassId ={classId} GROUP BY OrderGuestId)t";
var obj = ExecuteScalar(sql);
if (obj != null)
{
return Convert.ToInt32(obj);
}
else {
return 0;
}
}
/// <summary>
/// 获取平均上课率
/// </summary>
/// <param name="classId"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public decimal GetClassAvgTakeClassRate(int classId, int group_Id)
{
string sql1 = $@"SELECT COUNT(0) AS TotalNum FROM rb_class_check WHERE `Status`=0 AND Group_Id={group_Id} AND ClassId = {classId};";
string sql2 = $@"SELECT COUNT(0) AS TotalNum FROM rb_class_check WHERE `Status`=0 AND Group_Id={group_Id} AND CheckStatus =0 AND ClassId = {classId};";
var obj1 = ExecuteScalar(sql1);
var obj2 = ExecuteScalar(sql2);
int Num1 = Convert.ToInt32(obj1 ?? "0"), Num2 = Convert.ToInt32(obj2 ?? "0");
if (Num1 == 0) { return 0; }
decimal avgClassRate = Math.Round(Convert.ToDecimal(Num2) / Num1, 2, MidpointRounding.AwayFromZero);
return avgClassRate;
}
}
}
......@@ -251,5 +251,29 @@ LEFT JOIN rb_teacher as c on c.TId=a.TeacherId
builder.AppendFormat(@" order by ClassDate desc ");
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 获取班级累计上课时间(分钟)
/// </summary>
/// <param name="classId"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public int GetClassTotalMinute(int classId, int group_Id)
{
string sql = $@"SELECT SUM(t.minNum) AS minNum FROM(
SELECT TIMESTAMPDIFF(MINUTE, CONCAT('2020-12-16',' ',t.StartTime), CONCAT('2020-12-16',' ',t.EndTime)) AS minNum FROM rb_class_plan p
INNER JOIN rb_class_time t on p.ClassPlanId = t.ClassPlanId
WHERE p.`Status`=0 AND p.Group_Id={group_Id} AND p.ClassId ={classId}
)t;
";
var obj = ExecuteScalar(sql);
if (obj != null)
{
return Convert.ToInt32(obj);
}
else {
return 0;
}
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 绩效备注仓储层
/// </summary>
public class RB_Teaching_PerfRemarkRepository : BaseRepository<RB_Teaching_PerfRemark>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Teaching_PerfRemark_ViewModel> GetList(RB_Teaching_PerfRemark_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.PerfId > 0)
{
where += $@" and {nameof(RB_Teaching_PerfRemark.PerfId)} ={demodel.PerfId}";
}
if (!string.IsNullOrEmpty(demodel.PerfIds))
{
where += $@" and {nameof(RB_Teaching_PerfRemark.PerfId)} in({demodel.PerfIds})";
}
string sql = $@" select * from RB_Teaching_PerfRemark where {where} order by Id desc";
return Get<RB_Teaching_PerfRemark_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取最后一条记录
/// </summary>
/// <param name="perfId"></param>
/// <returns></returns>
public RB_Teaching_PerfRemark_ViewModel GetLastRemark(int perfId)
{
string where = $@" 1=1";
where += $@" and {nameof(RB_Teaching_PerfRemark.PerfId)} ={perfId}";
string sql = $@" select * from RB_Teaching_PerfRemark where {where} order by Id desc limit 1";
return Get<RB_Teaching_PerfRemark_ViewModel>(sql).FirstOrDefault();
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.Course;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 教师绩效仓储层
/// </summary>
public class RB_Teaching_PerfRepository : BaseRepository<RB_Teaching_Perf>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Teaching_Perf_ViewModel> GetList(RB_Teaching_Perf_ViewModel demodel)
{
string where = $@" 1=1 and p.Status =0";
if (demodel.Group_Id > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.School_Id)} ={demodel.School_Id}";
}
if (demodel.ClassId > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.ClassName))
{
where += $@" and c.{nameof(RB_Class.ClassName)} like '%{demodel.ClassName}%'";
}
if (demodel.TeacherId > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.TeacherId)} ={demodel.TeacherId}";
}
if (!string.IsNullOrEmpty(demodel.TeacherName))
{
where += $@" and t.{nameof(RB_Teacher.TeacherName)} like '%{demodel.TeacherName}%'";
}
if (demodel.Q_IsCreateFinance == 1)
{
where += $@" and p.{nameof(RB_Teaching_Perf.FinanceId)} >0";
}
else if (demodel.Q_IsCreateFinance == 2)
{
where += $@" and p.{nameof(RB_Teaching_Perf.FinanceId)} =0";
}
if (demodel.Q_IsComfirm == 1)
{
where += $@" and p.{nameof(RB_Teaching_Perf.PerfState)} =2";
}
else if (demodel.Q_IsComfirm == 2)
{
where += $@" and p.{nameof(RB_Teaching_Perf.PerfState)} in(1,3)";
}
if (!string.IsNullOrEmpty(demodel.StartTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.EndDate)} >='{demodel.StartTime}'";
}
if (!string.IsNullOrEmpty(demodel.EndTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.EndDate)} <='{demodel.EndTime} 23:59:59'";
}
if (!string.IsNullOrEmpty(demodel.OPStartTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.ConfirmDate)} >='{demodel.OPStartTime}'";
}
if (!string.IsNullOrEmpty(demodel.OPEndTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.ConfirmDate)} <='{demodel.OPEndTime} 23:59:59'";
}
string sql = $@" select p.*,t.TeacherName,t.TeacherIcon,c.ClassName from RB_Teaching_Perf p
left join rb_teacher t on p.TeacherId = t.TId
left join rb_class c on p.ClassId = c.ClassId
where {where} order by p.Id desc";
return Get<RB_Teaching_Perf_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Teaching_Perf_ViewModel> GetPageList(int pageIndex,int pageSize,out long count, RB_Teaching_Perf_ViewModel demodel)
{
string where = $@" 1=1 and p.Status =0";
if (demodel.Group_Id > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.School_Id)} ={demodel.School_Id}";
}
if (demodel.ClassId > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.ClassName))
{
where += $@" and c.{nameof(RB_Class.ClassName)} like '%{demodel.ClassName}%'";
}
if (demodel.TeacherId > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.TeacherId)} ={demodel.TeacherId}";
}
if (!string.IsNullOrEmpty(demodel.TeacherName))
{
where += $@" and t.{nameof(RB_Teacher.TeacherName)} like '%{demodel.TeacherName}%'";
}
if (demodel.PerfState > 0)
{
where += $@" and p.{nameof(RB_Teaching_Perf.PerfState)} ={(int)demodel.PerfState}";
}
if (demodel.Q_IsCreateFinance == 1)
{
where += $@" and p.{nameof(RB_Teaching_Perf.FinanceId)} >0";
}
else if (demodel.Q_IsCreateFinance == 2)
{
where += $@" and p.{nameof(RB_Teaching_Perf.FinanceId)} =0";
}
if (demodel.Q_IsComfirm == 1)
{
where += $@" and p.{nameof(RB_Teaching_Perf.PerfState)} =2";
}
else if (demodel.Q_IsComfirm == 2)
{
where += $@" and p.{nameof(RB_Teaching_Perf.PerfState)} in(1,3)";
}
if (!string.IsNullOrEmpty(demodel.StartTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.EndDate)} >='{demodel.StartTime}'";
}
if (!string.IsNullOrEmpty(demodel.EndTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.EndDate)} <='{demodel.EndTime} 23:59:59'";
}
if (!string.IsNullOrEmpty(demodel.OPStartTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.ConfirmDate)} >='{demodel.OPStartTime}'";
}
if (!string.IsNullOrEmpty(demodel.OPEndTime))
{
where += $@" and p.{nameof(RB_Teaching_Perf.ConfirmDate)} <='{demodel.OPEndTime} 23:59:59'";
}
string sql = $@" select p.*,t.TeacherName,t.TeacherIcon,c.ClassName from RB_Teaching_Perf p
left join rb_teacher t on p.TeacherId = t.TId
left join rb_class c on p.ClassId = c.ClassId
where {where} order by p.Id desc";
return GetPage<RB_Teaching_Perf_ViewModel>(pageIndex, pageSize, out count, sql).ToList();
}
}
}
......@@ -13,6 +13,16 @@ namespace Edu.Repository.Flow
/// </summary>
public class RB_FlowRepository : BaseRepository<RB_Flow>
{
/// <summary>
/// 流程节点仓储层对象
/// </summary>
private readonly RB_Flow_NodeRepository flow_NodeRepository = new RB_Flow_NodeRepository();
/// <summary>
/// 流程节点审核人
/// </summary>
private readonly RB_Flow_AduitInfoRepository flow_AduitInfoRepository = new RB_Flow_AduitInfoRepository();
/// <summary>
/// 获取流程设置分页列表
/// </summary>
......@@ -39,5 +49,31 @@ WHERE 1=1
}
return GetPage<RB_Flow_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取流程信息
/// </summary>
/// <param name="FlowId"></param>
/// <returns></returns>
public RB_Flow_ViewModel GetFlowRepository(object FlowId)
{
var extModel = base.GetEntity<RB_Flow_ViewModel>(FlowId);
if (extModel != null)
{
if (extModel.FlowId > 0)
{
var auditList = flow_AduitInfoRepository.GetFlowAduitInfoListRepository(new RB_Flow_AduitInfo_ViewModel() { FlowId = extModel.FlowId });
extModel.FlowNodeList = flow_NodeRepository.GetFlowNodeListRepository(new RB_Flow_Node_ViewModel() { FlowId = extModel.FlowId });
if (extModel.FlowNodeList != null && extModel.FlowNodeList.Count > 0)
{
foreach (var item in extModel.FlowNodeList)
{
item.FlowAduitList = auditList?.Where(qitem => qitem.NodeId == item.NodeId)?.ToList();
}
}
}
}
return extModel;
}
}
}
......@@ -330,9 +330,14 @@ FROM
LEFT JOIN rb_school AS s ON A.School_Id=s.SId
LEFT JOIN rb_department AS d ON A.Dept_Id=d.DeptId
LEFT JOIN rb_post AS p ON A.Post_Id=p.PostId
LEFT JOIN (SELECT AccountId,AccountType,MAX(Content) as AccountRemark from rb_accountremark where Group_Id=100000 and `Status`=0 GROUP BY AccountId,AccountType ORDER BY CreateTime desc)
as ar on a.AccountId=ar.AccountId and A.AccountType=ar.AccountType
WHERE 1=1 {4}
LEFT JOIN (
SELECT AccountId,AccountType,MAX(Content) AS AccountRemark
FROM rb_accountremark
WHERE `Status`=0
GROUP BY AccountId,AccountType
ORDER BY CreateTime DESC
) AS ar on a.AccountId=ar.AccountId AND A.AccountType=ar.AccountType
WHERE 1=1 {4}
", where.ToString(), wheremanager.ToString(), whereteacher.ToString(), whereassist.ToString(), where2.ToString());
return builder.ToString();
}
......
......@@ -23,7 +23,7 @@ namespace Edu.WebApi.Controllers.Course
/// <summary>
/// 订单处理类对象
/// </summary>
private readonly OrderModule orderModule = new OrderModule();
private readonly OrderModule orderModule = AOP.AOPHelper.CreateAOPObject<OrderModule>();
#region 产品管理
......@@ -715,8 +715,11 @@ namespace Edu.WebApi.Controllers.Course
x.Id,
x.GuestName,
x.GuestState,
x.OrderId,
x.GuestStateStr,
x.Profession,
x.Sex,
SexStr= x.Sex==1?"男":"女",
x.Age,
x.Mobile,
x.Basics,
......@@ -728,7 +731,7 @@ namespace Edu.WebApi.Controllers.Course
LearningGoalsName = x.LearningGoals.ToName(),
x.Contact,
x.ContactMobile,
UpdateTime = x.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss")
UpdateTime = x.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"),
});
return ApiResult.Success("", pageModel);
}
......@@ -924,5 +927,21 @@ namespace Edu.WebApi.Controllers.Course
}
#endregion
#region 退课申请
/// <summary>
/// 退课申请
/// </summary>
/// <returns></returns>
public ApiResult BackClassApply()
{
var GuestId = base.ParmJObj.GetInt("GuestId");
var OrderId = base.ParmJObj.GetInt("OrderId");
//申请原因
var applyReason = base.ParmJObj.GetStringValue("applyReason");
bool flag = orderModule.CreateBackClassApplyModule(GuestId, OrderId, applyReason, base.UserInfo, out string message);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
#endregion
}
}
......@@ -504,5 +504,212 @@ namespace Edu.WebApi.Controllers.Course
}));
}
#endregion
#region 教师绩效
/// <summary>
/// 教师绩效分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTeachingPerfPageList()
{
var userInfo = base.UserInfo;
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var dmodel = JsonHelper.DeserializeObject<RB_Teaching_Perf_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
var list = teachingRewardsModule.GetTeachingPerfPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = list.Select(x => new
{
x.Id,
x.TeacherId,
x.TeacherIcon,
x.TeacherName,
x.BaseHourFee,
x.AddHourFee,
x.BaseStuNum,
x.AddStuNum,
x.ClassName,
x.ClassPeopelNum,
x.EndDate,
x.ConfirmDate,
x.FullClassRate,
x.AvgCheckRate,
x.ClassHours,
x.UnitPrice,
x.Money,
x.FinanceId,
x.PerfState,
PerfStateName = x.PerfState.ToName(),
RemarkList = x.RemarkList.Select(z => new
{
z.Id,
z.Content,
CreateBy = UserReidsCache.GetUserLoginInfo(z.CreateBy)?.AccountName ?? "",
CreateTime = z.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")
}),
x.UpdateBy,
UpdateByName = UserReidsCache.GetUserLoginInfo(x.UpdateBy)?.AccountName ?? "",
UpdateTime = x.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"),
JJList = x.JJList.Select(z=>new {
z.Id,
z.StartValue,
z.EndValue,
FullClassList = z.FullClassList.Select(y=>new {
y.Id,
y.StartValue,
y.EndValue,
y.ClassMoney,
y.PeopelNum
})
}),
JJFullRate = GetFullRateList(x.JJList).Select(y=>new {
y.Id,
y.StartValue,
y.EndValue
}),
KSList = x.KSList.Select(z => new {
z.Id,
z.StartValue,
z.EndValue,
FullClassList = z.FullClassList.Select(y => new {
y.Id,
y.StartValue,
y.EndValue,
y.ClassMoney,
y.PeopelNum
})
}),
KSFullRate = GetFullRateList(x.KSList).Select(y => new {
y.Id,
y.StartValue,
y.EndValue
}),
});
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 获取满班率
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public List<RB_Teaching_Rewards_Rate_ViewModel> GetFullRateList(List<RB_Teaching_Rewards_Rate_ViewModel> list)
{
if (list.Any())
{
return list.FirstOrDefault().FullClassList;
}
return new List<RB_Teaching_Rewards_Rate_ViewModel>();
}
/// <summary>
/// 修改备注
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeachingPerfRemark() {
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PerfId = parms.GetInt("PerfId", 0);
string Remark = parms.GetStringValue("Remark");
if (PerfId <= 0) {
return ApiResult.ParamIsNull();
}
bool flag = teachingRewardsModule.SetTeachingPerfRemark(PerfId, Remark, userInfo);
if (flag)
{
return ApiResult.Success();
}
else {
return ApiResult.Failed();
}
}
/// <summary>
/// 设置教师绩效状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeachingPerfState()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PerfId = parms.GetInt("PerfId", 0);
int Type = parms.GetInt("Type", 0);// 类型 1确认绩效 2不发放绩效 3恢复绩效 4撤销绩效
if (PerfId <= 0)
{
return ApiResult.ParamIsNull();
}
string msg = teachingRewardsModule.SetTeachingPerfState(PerfId, Type, userInfo);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 生成绩效
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeachingPerfCreate()
{
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int ClassId = parms.GetInt("ClassId", 0);
if (ClassId <= 0)
{
return ApiResult.ParamIsNull();
}
string msg = teachingRewardsModule.SetTeachingPerfCreate(ClassId);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 绩效一键制单
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeachingPerfFinance()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PerfId = parms.GetInt("PerfId", 0);
int IsPublic = parms.GetInt("IsPublic", 0);
int CurrencyId = parms.GetInt("CurrencyId", 0);
if (PerfId <= 0)
{
return ApiResult.ParamIsNull();
}
string msg = teachingRewardsModule.SetTeachingPerfFinance(PerfId, IsPublic, CurrencyId, userInfo);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
#endregion
}
}
......@@ -25,7 +25,7 @@ namespace Edu.WebApi.Controllers.Public
/// <summary>
/// 流程设置处理类对象
/// </summary>
private readonly BasicFlowModule basicFlowModule = new BasicFlowModule();
private readonly BasicFlowModule basicFlowModule = AOP.AOPHelper.CreateAOPObject<BasicFlowModule>();
/// <summary>
......@@ -35,8 +35,8 @@ namespace Edu.WebApi.Controllers.Public
[HttpPost]
public ApiResult GetBackClassFlow()
{
var Id = base.ParmJObj.GetInt("Id");
var flowModel = basicFlowModule.GetFlowModule(Id);
var FlowId = base.ParmJObj.GetInt("FlowId");
var flowModel = basicFlowModule.GetFlowModule(FlowId);
return ApiResult.Success(data: flowModel);
}
......
......@@ -50,7 +50,7 @@ namespace Edu.WebApi.Controllers.User
var model = accountModule.GetAccountListExtModule(new RB_Account_ViewModel()
{
Account = account.Trim(),
AccountType = (AccountTypeEnum)accountType
//AccountType = (AccountTypeEnum)accountType
})?.FirstOrDefault();
if (model == null)
{
......
......@@ -40,5 +40,7 @@
},
"VirtualDirectory": "WebFile",
//是否是线上环境
"IsOnline": false
"IsOnline": false,
//退课流程编号
"BackClassFlowId": 1
}
\ No newline at end of file
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