Commit b903aaf0 authored by liudong1993's avatar liudong1993

1 教育财务课时费调整

parent 12e0beeb
using Edu.Common.Enum.WeChat;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.WeChat
{
/// <summary>
/// 企业微信客户线索规则实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_WeChat_CustomerClueRule
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 可放弃部分客户的查询类型 1并且 2或者
/// </summary>
public int RuleSelectType { get; set; }
/// <summary>
/// 限制内容 json格式
/// </summary>
public string RuleSelectValue { get; set; }
/// <summary>
/// 是否默认 1是 2否
/// </summary>
public int IsDefault { get; set; }
/// <summary>
/// 部门ids
/// </summary>
public string DeptIds { get; set; }
/// <summary>
/// 员工ids
/// </summary>
public string EmpIds { get; set; }
/// <summary>
/// 分配方式 1依次轮流 2随机分配
/// </summary>
public int RuleAllotWay { get; set; }
/// <summary>
/// 排序 越小的 优先级越高
/// </summary>
public int Sort { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_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; }
}
}
using Edu.Common.Enum.WeChat;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.WeChat
{
/// <summary>
/// 企业微信客户操作实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_WeChat_CustomerConfig
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 员工领取公海客户时需审核 1是 2否
/// </summary>
public int IsPublicAudit { get; set; }
/// <summary>
/// 可以领取的部门ids 不限-1
/// </summary>
public string PublicGetDept { get; set; }
/// <summary>
/// 放弃到公海类型 1全部客户 2部分客户
/// </summary>
public int AbandonType { get; set; }
/// <summary>
/// 可放弃标签ids (暂时启用, 看看筛选项情况)
/// </summary>
public string LableIds { get; set; }
/// <summary>
/// 可放弃客户阶段ids (暂时启用, 看看筛选项情况)
/// </summary>
public string StageIds { get; set; }
/// <summary>
/// 可放弃到公海的部门 -1不限
/// </summary>
public string AbandonDept { get; set; }
/// <summary>
/// 放弃后是否需要审核 1是 2否
/// </summary>
public int AbandonAudit { get; set; }
/// <summary>
/// 放弃的原因 直接List<string>
/// </summary>
public string AbandonReason { get; set; }
/// <summary>
/// 允许申请成为协作人部门 -1不限 0未开启
/// </summary>
public string ApplyForTeamDept { get; set; }
/// <summary>
/// 允许添加协作人部门 -1不限 0未开启
/// </summary>
public string AddTeamDept { get; set; }
/// <summary>
/// 允许转移客户的部门 -1不限 0未开启
/// </summary>
public string TransferCustomerDept { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_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>
/// 线索类型 1手动分配 2自动分配
/// </summary>
public int ClueType { get; set; }
/// <summary>
/// 线索手动分配方式 1依次轮流 2随机分配
/// </summary>
public int ClueAllotWay { get; set; }
/// <summary>
/// 可放弃部分客户的查询类型 1并且 2或者
/// </summary>
public int AbandonSelectType { get; set; }
/// <summary>
/// 限制内容 json格式 List<CustomerCommissionSelectModel>
/// </summary>
public string AbandonSelectValue { get; set; }
/// <summary>
/// 可以领取的人员ids 不限-1
/// </summary>
public string PublicGetEmp { get; set; }
/// <summary>
/// 可放弃到公海的人员 -1不限
/// </summary>
public string AbandonEmp { get; set; }
/// <summary>
/// 允许申请成为协作人人员 -1不限
/// </summary>
public string ApplyForTeamEmp { get; set; }
/// <summary>
/// 允许添加协作人人员 -1不限
/// </summary>
public string AddTeamEmp { get; set; }
/// <summary>
/// 允许转移客户的人员 -1不限
/// </summary>
public string TransferCustomerEmp { get; set; }
}
}
...@@ -167,5 +167,30 @@ namespace Edu.Model.Entity.WeChat ...@@ -167,5 +167,30 @@ namespace Edu.Model.Entity.WeChat
/// 微信客户来源 /// 微信客户来源
/// </summary> /// </summary>
public int WeChatAddWay { get; set; } public int WeChatAddWay { get; set; }
/// <summary>
/// 客户状态 1正常客户 2线索 3公海
/// </summary>
public int CustomerState { get; set; }
/// <summary>
/// 线索状态 1未处理 2待回访 3无效线索 4已转客户
/// </summary>
public int ClueState { get; set; }
/// <summary>
/// 转客户时间 ClueState=4
/// </summary>
public DateTime? TurnCustomerTime { get; set; }
/// <summary>
/// 分配状态 1待分配 2已分配
/// </summary>
public int AllotState { get; set; }
/// <summary>
/// 分配客户时间
/// </summary>
public DateTime? AllotCustomerTime { get; set; }
} }
} }
...@@ -120,6 +120,11 @@ namespace Edu.Model.ViewModel.Grade ...@@ -120,6 +120,11 @@ namespace Edu.Model.ViewModel.Grade
/// </summary> /// </summary>
public string ClassNo { get; set; } public string ClassNo { get; set; }
/// <summary>
/// 校区
/// </summary>
public string SName { get; set; }
/// <summary> /// <summary>
/// 班级类型 /// 班级类型
/// </summary> /// </summary>
......
...@@ -37,6 +37,11 @@ namespace Edu.Model.ViewModel.Sell ...@@ -37,6 +37,11 @@ namespace Edu.Model.ViewModel.Sell
/// </summary> /// </summary>
public string ClassName { get; set; } public string ClassName { get; set; }
/// <summary>
/// 校区
/// </summary>
public string SName { get; set; }
/// <summary> /// <summary>
/// 班级编号 /// 班级编号
/// </summary> /// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Enum.Sale;
using Edu.Model.Entity.WeChat;
using Edu.Model.Public;
namespace Edu.Model.ViewModel.WeChat
{
/// <summary>
/// 企业微信客户操作扩展类
/// </summary>
public class RB_WeChat_CustomerConfig_ViewModel : RB_WeChat_CustomerConfig
{
/// <summary>
/// 可以领取的部门
/// </summary>
public List<User.RB_Department_ViewModel> PublicGetDeptList { get; set; }
/// <summary>
/// 可放弃到公海的部门
/// </summary>
public List<User.RB_Department_ViewModel> AbandonDeptList { get; set; }
/// <summary>
/// 允许申请成为协作人部门
/// </summary>
public List<User.RB_Department_ViewModel> ApplyForTeamDeptList { get; set; }
/// <summary>
/// 允许添加协作人部门
/// </summary>
public List<User.RB_Department_ViewModel> AddTeamDeptList { get; set; }
/// <summary>
/// 允许转移客户的部门
/// </summary>
public List<User.RB_Department_ViewModel> TransferCustomerDeptList { get; set; }
/// <summary>
/// 可以领取的人员
/// </summary>
public List<User.Employee_ViewModel> PublicGetEmpList { get; set; }
/// <summary>
/// 可放弃到公海的人员
/// </summary>
public List<User.Employee_ViewModel> AbandonEmpList { get; set; }
/// <summary>
/// 允许申请成为协作人人员
/// </summary>
public List<User.Employee_ViewModel> ApplyForTeamEmpList { get; set; }
/// <summary>
/// 允许添加协作人人员
/// </summary>
public List<User.Employee_ViewModel> AddTeamEmpList { get; set; }
/// <summary>
/// 允许转移客户的人员
/// </summary>
public List<User.Employee_ViewModel> TransferCustomerEmpList { get; set; }
/// <summary>
/// 放弃原因
/// </summary>
public List<string> AbandonReasonList { get; set; }
/// <summary>
/// 阶段
/// </summary>
public List<RB_WeChat_CustomerStage_ViewModel> StageList { get; set; }
/// <summary>
/// 标签
/// </summary>
public List<RB_WeChat_Lable_ViewModel> LableList { get; set; }
/// <summary>
/// 部分客户筛选列表
/// </summary>
public List<CustomerCommissionSelectModel> AbandonKHSelect { get; set; }
}
/// <summary>
/// 字段Model 用于客户筛选
/// </summary>
public class CustomerCommissionSelectModel
{
/// <summary>
/// 标识
/// </summary>
public int Id { get; set; }
/// <summary>
/// 字段名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 类型 1包含 2等于 3日期 4日期范围 5数值
/// </summary>
public int Type { get; set; }
/// <summary>
/// 方向 1包含所有/等于/等于 2包含任意/不等于/大于 3不包含/为空/大于等于 4为空/不为空/小于 5不为空/模糊/小于等于 对应 type的1/2/5
/// </summary>
public int Direction { get; set; }
/// <summary>
/// 开始值
/// </summary>
public string StartValue { get; set; }
/// <summary>
/// 结束值
/// </summary>
public string EndValue { get; set; }
/// <summary>
/// 自定义字段 1是 2标签 3客户阶段
/// </summary>
public int IsCustom { get; set; }
}
}
...@@ -101,6 +101,10 @@ namespace Edu.Module.Course ...@@ -101,6 +101,10 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_GroupRepository groupRepository = new RB_GroupRepository(); private readonly RB_GroupRepository groupRepository = new RB_GroupRepository();
/// <summary> /// <summary>
/// 校区
/// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
/// <summary>
/// 账户 /// 账户
/// </summary> /// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository(); private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
...@@ -596,7 +600,7 @@ namespace Edu.Module.Course ...@@ -596,7 +600,7 @@ namespace Edu.Module.Course
Group_Id = dmodel.Group_Id, Group_Id = dmodel.Group_Id,
Id = 0, Id = 0,
Money = ksNum * unitPrice, Money = ksNum * unitPrice,
School_Id = dmodel.School_Id, School_Id = item.School_Id,
Status = 0, Status = 0,
TeacherId = item.TeacherId, TeacherId = item.TeacherId,
Type = item.TeacherId == item.Teacher_Id ? 1 : 2, Type = item.TeacherId == item.Teacher_Id ? 1 : 2,
...@@ -1891,9 +1895,17 @@ namespace Edu.Module.Course ...@@ -1891,9 +1895,17 @@ namespace Edu.Module.Course
var model = teaching_BonusRepository.GetEntity<RB_Teaching_Bonus_ViewModel>(periodId); var model = teaching_BonusRepository.GetEntity<RB_Teaching_Bonus_ViewModel>(periodId);
if (model == null) { return "周期不存在"; } if (model == null) { return "周期不存在"; }
List<int> EmpIdList = new List<int>(); List<int> EmpIdList = new List<int>();
List<string> EmpTIdList = new List<string>();
if (!string.IsNullOrEmpty(model.EmpIds)) if (!string.IsNullOrEmpty(model.EmpIds))
{ {
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]"); if (model.Id >= 40)
{
EmpTIdList = JsonHelper.DeserializeObject<List<string>>(model.EmpIds);
}
else
{
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]");
}
} }
...@@ -1904,21 +1916,34 @@ namespace Edu.Module.Course ...@@ -1904,21 +1916,34 @@ namespace Edu.Module.Course
string teacherIds = model.TeacherIds; string teacherIds = model.TeacherIds;
var tlist = teacherRepository.GetTeacherListRepository(new RB_Teacher_ViewModel() { Group_Id = userInfo.Group_Id, QTIds = teacherIds, IsQLeave = 1 }); var tlist = teacherRepository.GetTeacherListRepository(new RB_Teacher_ViewModel() { Group_Id = userInfo.Group_Id, QTIds = teacherIds, IsQLeave = 1 });
string[] teacherIdArr = model.TeacherIds.Split(",");
List<object> RList = new List<object>(); List<object> RList = new List<object>();
foreach (var qitem in teacherIdArr) //查询所有校区
var schoolList = dlist.Select(x => x.School_Id).Distinct().ToList();
if (!schoolList.Any()) { return RList; }
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = userInfo.Group_Id, QSIds = string.Join(",", schoolList) });
foreach (var sitem in slist)
{ {
int teacherId = Convert.ToInt32(qitem); string[] teacherIdArr = model.TeacherIds.Split(",");
string teacherName = tlist.Where(x => x.TId == teacherId).FirstOrDefault()?.TeacherName ?? ""; foreach (var qitem in teacherIdArr)
//教师累计奖励金额
decimal money = dlist.Where(x => x.TeacherId == teacherId).Sum(x => x.Money);
RList.Add(new
{ {
TeacherId = teacherId, int teacherId = Convert.ToInt32(qitem);
TeacherName = teacherName, string teacherName = tlist.Where(x => x.TId == teacherId).FirstOrDefault()?.TeacherName ?? "";
Money = money, //教师累计奖励金额
IsGiveOut = EmpIdList.Contains(teacherId) ? 1 : 2 decimal money = dlist.Where(x => x.TeacherId == teacherId && x.School_Id == sitem.SId).Sum(x => x.Money);
}); if (money > 0)
{
RList.Add(new
{
TSId = sitem.SId + "-" + teacherId,
SchoolId = sitem.SId,
SchoolName = sitem.SName,
TeacherId = teacherId,
TeacherName = teacherName,
Money = money,
IsGiveOut = model.Id >= 40 ? (EmpTIdList.Contains(sitem.SId + "-" + teacherId) ? 1 : 2) : (EmpIdList.Contains(teacherId) ? 1 : 2)
});
}
}
} }
return RList; return RList;
} }
...@@ -1936,20 +1961,46 @@ namespace Edu.Module.Course ...@@ -1936,20 +1961,46 @@ namespace Edu.Module.Course
if (model == null) { return "周期不存在"; } if (model == null) { return "周期不存在"; }
if (model.Group_Id != userInfo.Group_Id) { return "集团不正确"; } if (model.Group_Id != userInfo.Group_Id) { return "集团不正确"; }
List<int> EmpIdList = new List<int>(); List<int> EmpIdList = new List<int>();
List<string> EmpTIdList = new List<string>();
if (!string.IsNullOrEmpty(model.EmpIds)) if (!string.IsNullOrEmpty(model.EmpIds))
{ {
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]"); if (model.Id >= 40)
{
EmpTIdList = JsonHelper.DeserializeObject<List<string>>(model.EmpIds);
}
else
{
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]");
}
} }
List<int> NewIdList = JsonHelper.DeserializeObject<List<int>>("[" + empIds + "]"); if (model.Id >= 40)
foreach (var item in NewIdList)
{ {
if (EmpIdList.Contains(item)) List<string> NewIdList = JsonHelper.DeserializeObject<List<string>>(empIds);
foreach (var item in NewIdList)
{ {
return "用户ID" + item + "已发放了提成,无法重复发放"; if (EmpTIdList.Contains(item))
{
return "用户ID" + item + "已发放了提成,无法重复发放";
}
} }
EmpTIdList.AddRange(NewIdList);
}
else
{
List<int> NewIdList = JsonHelper.DeserializeObject<List<int>>("[" + empIds + "]");
foreach (var item in NewIdList)
{
if (EmpIdList.Contains(item))
{
return "用户ID" + item + "已发放了提成,无法重复发放";
}
}
EmpIdList.AddRange(NewIdList);
} }
EmpIdList.AddRange(NewIdList);
string empids2 = string.Join(",", EmpIdList); string empids2 = string.Join(",", EmpIdList);
if (model.Id >= 40) {
empids2 = JsonHelper.Serialize(EmpTIdList);
}
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Teaching_Bonus_ViewModel.EmpIds),empids2} { nameof(RB_Teaching_Bonus_ViewModel.EmpIds),empids2}
}; };
......
...@@ -3453,7 +3453,8 @@ namespace Edu.Module.Finance ...@@ -3453,7 +3453,8 @@ namespace Edu.Module.Finance
UnitPrice = unitPrice, UnitPrice = unitPrice,
Money = KSMoney, Money = KSMoney,
BaseHoursEnabled = item.BaseHoursEnabled, BaseHoursEnabled = item.BaseHoursEnabled,
EnableTime = item.EnableTime EnableTime = item.EnableTime,
SName = item.SName
}); });
} }
...@@ -3569,7 +3570,8 @@ namespace Edu.Module.Finance ...@@ -3569,7 +3570,8 @@ namespace Edu.Module.Finance
UnitPrice = unitPrice, UnitPrice = unitPrice,
Money = KSMoney, Money = KSMoney,
BaseHoursEnabled = item.BaseHoursEnabled, BaseHoursEnabled = item.BaseHoursEnabled,
EnableTime = item.EnableTime EnableTime = item.EnableTime,
SName = item.SName
}); });
} }
...@@ -3632,6 +3634,7 @@ namespace Edu.Module.Finance ...@@ -3632,6 +3634,7 @@ namespace Edu.Module.Finance
{ {
new ExcelColumn(value: item.Date.ToString("yyyy-MM-dd")){ }, new ExcelColumn(value: item.Date.ToString("yyyy-MM-dd")){ },
new ExcelColumn(value: item.TimeBucket){ }, new ExcelColumn(value: item.TimeBucket){ },
new ExcelColumn(value: item.SName){ },
new ExcelColumn(value: item.ClassNo){ }, new ExcelColumn(value: item.ClassNo){ },
new ExcelColumn(value: item.ClassName){ }, new ExcelColumn(value: item.ClassName){ },
new ExcelColumn(value: item.CourseName){ }, new ExcelColumn(value: item.CourseName){ },
...@@ -3663,6 +3666,7 @@ namespace Edu.Module.Finance ...@@ -3663,6 +3666,7 @@ namespace Edu.Module.Finance
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: TKSNum.ToString("#0.00")){ }, new ExcelColumn(value: TKSNum.ToString("#0.00")){ },
new ExcelColumn(value: TDKNum.ToString("#0.00")){ }, new ExcelColumn(value: TDKNum.ToString("#0.00")){ },
new ExcelColumn(value: THours.ToString("#0.00")){ }, new ExcelColumn(value: THours.ToString("#0.00")){ },
......
This diff is collapsed.
...@@ -439,7 +439,7 @@ GROUP BY tt.TeacherId,tt.OrderGuestId ...@@ -439,7 +439,7 @@ GROUP BY tt.TeacherId,tt.OrderGuestId
} }
if (schoolId >= 0) if (schoolId >= 0)
{ {
where += $@" and t2.School_Id ={schoolId}"; where += $@" and c.School_Id ={schoolId}";
} }
if (classId > 0) if (classId > 0)
{ {
...@@ -447,11 +447,12 @@ GROUP BY tt.TeacherId,tt.OrderGuestId ...@@ -447,11 +447,12 @@ GROUP BY tt.TeacherId,tt.OrderGuestId
} }
string sql = $@" string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,s.SName,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId LEFT JOIN rb_class c on p.ClassId = c.ClassId
LEFT JOIN rb_course co on c.CouseId = co.CourseId LEFT JOIN rb_course co on c.CouseId = co.CourseId
left join rb_school s on s.SId = c.School_Id
WHERE p.`Status`=0 and p.Group_Id ={group_Id} {where} and p.ClassDate >= '{startMonth}' and p.ClassDate <='{endMonth} 23:59:59' WHERE p.`Status`=0 and p.Group_Id ={group_Id} {where} and p.ClassDate >= '{startMonth}' and p.ClassDate <='{endMonth} 23:59:59'
GROUP BY p.TeacherId,p.ClassId,p.ClassTimeId GROUP BY p.TeacherId,p.ClassId,p.ClassTimeId
ORDER BY p.ClassDate ASC ORDER BY p.ClassDate ASC
...@@ -478,7 +479,7 @@ ORDER BY p.ClassDate ASC ...@@ -478,7 +479,7 @@ ORDER BY p.ClassDate ASC
} }
if (schoolId >= 0) if (schoolId >= 0)
{ {
where += $@" and t2.School_Id ={schoolId}"; where += $@" and c.School_Id ={schoolId}";
} }
if (classId > 0) if (classId > 0)
{ {
...@@ -486,11 +487,12 @@ ORDER BY p.ClassDate ASC ...@@ -486,11 +487,12 @@ ORDER BY p.ClassDate ASC
} }
string sql = $@" string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,s.SName,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId LEFT JOIN rb_class c on p.ClassId = c.ClassId
LEFT JOIN rb_course co on c.CouseId = co.CourseId LEFT JOIN rb_course co on c.CouseId = co.CourseId
left join rb_school s on s.SId = c.School_Id
WHERE p.`Status`=0 and p.Group_Id ={group_Id} {where} and p.ClassDate >= '{startMonth}' and p.ClassDate <='{endMonth} 23:59:59' WHERE p.`Status`=0 and p.Group_Id ={group_Id} {where} and p.ClassDate >= '{startMonth}' and p.ClassDate <='{endMonth} 23:59:59'
GROUP BY p.TeacherId,p.ClassId,p.ClassTimeId GROUP BY p.TeacherId,p.ClassId,p.ClassTimeId
ORDER BY p.ClassDate ASC ORDER BY p.ClassDate ASC
...@@ -523,7 +525,7 @@ ORDER BY p.ClassDate ASC ...@@ -523,7 +525,7 @@ ORDER BY p.ClassDate ASC
} }
if (schoolId >= 0) if (schoolId >= 0)
{ {
where += $@" and t2.School_Id ={schoolId}"; where += $@" and c.School_Id ={schoolId}";
} }
if (classId > 0) if (classId > 0)
{ {
...@@ -598,7 +600,7 @@ ORDER BY tt.ClassDate ASC ...@@ -598,7 +600,7 @@ ORDER BY tt.ClassDate ASC
} }
if (schoolId >= 0) if (schoolId >= 0)
{ {
where += $@" and t2.School_Id ={schoolId}"; where += $@" and c.School_Id ={schoolId}";
} }
if (classId > 0) if (classId > 0)
{ {
......
...@@ -126,7 +126,7 @@ where {where} order by bd.Date asc"; ...@@ -126,7 +126,7 @@ where {where} order by bd.Date asc";
{ {
where += $@" and b.{nameof(RB_Teaching_BonusDetail.Group_Id)} ={demodel.Group_Id}"; where += $@" and b.{nameof(RB_Teaching_BonusDetail.Group_Id)} ={demodel.Group_Id}";
} }
if (demodel.School_Id > 0) if (demodel.School_Id >= 0)
{ {
where += $@" and b.{nameof(RB_Teaching_BonusDetail.School_Id)} ={demodel.School_Id}"; where += $@" and b.{nameof(RB_Teaching_BonusDetail.School_Id)} ={demodel.School_Id}";
} }
...@@ -155,9 +155,10 @@ where {where} order by bd.Date asc"; ...@@ -155,9 +155,10 @@ where {where} order by bd.Date asc";
where += $@" and b.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}"; where += $@" and b.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}";
} }
string sql = $@" select b.*,t.TeacherName,c.ClassName,c.ClassNo from RB_Teaching_BonusDetail b string sql = $@" select b.*,t.TeacherName,c.ClassName,c.ClassNo,s.SName from RB_Teaching_BonusDetail b
left join rb_teacher t on b.TeacherId = t.TId left join rb_teacher t on b.TeacherId = t.TId
left join rb_class c on b.ClassId = c.ClassId left join rb_class c on b.ClassId = c.ClassId
left join rb_school s on b.School_Id = s.SId
where {where} order by b.TeacherId asc,b.Date asc"; where {where} order by b.TeacherId asc,b.Date asc";
return Get<RB_Teaching_BonusDetail_ViewModel>(sql).ToList(); return Get<RB_Teaching_BonusDetail_ViewModel>(sql).ToList();
} }
...@@ -175,7 +176,7 @@ where {where} order by b.TeacherId asc,b.Date asc"; ...@@ -175,7 +176,7 @@ where {where} order by b.TeacherId asc,b.Date asc";
{ {
where += $@" and b.{nameof(RB_Teaching_BonusDetail.Group_Id)} ={demodel.Group_Id}"; where += $@" and b.{nameof(RB_Teaching_BonusDetail.Group_Id)} ={demodel.Group_Id}";
} }
if (demodel.School_Id > 0) if (demodel.School_Id >= 0)
{ {
where += $@" and b.{nameof(RB_Teaching_BonusDetail.School_Id)} ={demodel.School_Id}"; where += $@" and b.{nameof(RB_Teaching_BonusDetail.School_Id)} ={demodel.School_Id}";
} }
...@@ -204,15 +205,16 @@ where {where} order by b.TeacherId asc,b.Date asc"; ...@@ -204,15 +205,16 @@ where {where} order by b.TeacherId asc,b.Date asc";
where += $@" and b.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}"; where += $@" and b.{nameof(RB_Teaching_BonusDetail.Type)} ={demodel.Type}";
} }
string sql = $@" select b.TeacherId,t.TeacherName,b.UnitPrice, string sql = $@" select b.TeacherId,t.TeacherName,b.UnitPrice,s.SId,s.SName,
SUM(CASE WHEN b.Type =1 THEN b.CourseHour ELSE 0 END) AS CourseHour, SUM(CASE WHEN b.Type =1 THEN b.CourseHour ELSE 0 END) AS CourseHour,
SUM(CASE WHEN b.Type =2 THEN b.CourseHour ELSE 0 END) AS DCourseHour, SUM(CASE WHEN b.Type =2 THEN b.CourseHour ELSE 0 END) AS DCourseHour,
SUM(b.DeductionHour) AS DeductionHour, SUM(b.DeductionHour) AS DeductionHour,
SUM(b.Money) AS Money SUM(b.Money) AS Money
from RB_Teaching_BonusDetail b from RB_Teaching_BonusDetail b
left join rb_teacher t on b.TeacherId = t.TId left join rb_teacher t on b.TeacherId = t.TId
left join rb_school s on b.School_Id = s.SId
where {where} where {where}
GROUP BY b.TeacherId,t.TeacherName,b.UnitPrice GROUP BY b.TeacherId,t.TeacherName,b.UnitPrice,s.SId
"; ";
return Get<RB_Teaching_BonusDetail_ViewModel>(sql).ToList(); return Get<RB_Teaching_BonusDetail_ViewModel>(sql).ToList();
} }
......
using Edu.Common.Enum;
using Edu.Model.Entity.WeChat;
using Edu.Model.ViewModel.WeChat;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
using VT.FW.DB.Dapper;
namespace Edu.Repository.WeChat
{
/// <summary>
/// 企业微信客户操作仓储层
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_WeChat_CustomerConfigRepository : BaseRepository<RB_WeChat_CustomerConfig>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_WeChat_CustomerConfig_ViewModel> GetList(RB_WeChat_CustomerConfig_ViewModel demodel)
{
DynamicParameters parameters = new DynamicParameters();
string where = $@" 1=1 and r.{nameof(RB_WeChat_CustomerConfig_ViewModel.Status)} =0";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_WeChat_CustomerConfig_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
string sql = $@"
SELECT * From RB_WeChat_CustomerConfig r
WHERE {where}
ORDER BY r.Id DESC ";
return Get<RB_WeChat_CustomerConfig_ViewModel>(sql, parameters).ToList();
}
}
}
...@@ -42,6 +42,18 @@ namespace Edu.Repository.WeChat ...@@ -42,6 +42,18 @@ namespace Edu.Repository.WeChat
{ {
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.FriendState)} ={demodel.FriendState}"; where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.FriendState)} ={demodel.FriendState}";
} }
if (demodel.CustomerState > 0)
{
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.CustomerState)} ={demodel.CustomerState}";
}
if (demodel.ClueState > 0)
{
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.ClueState)} ={demodel.ClueState}";
}
if (demodel.AllotState > 0)
{
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.AllotState)} ={demodel.AllotState}";
}
if (demodel.StageId > 0) if (demodel.StageId > 0)
{ {
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.StageId)} ={demodel.StageId}"; where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.StageId)} ={demodel.StageId}";
...@@ -243,23 +255,25 @@ namespace Edu.Repository.WeChat ...@@ -243,23 +255,25 @@ namespace Edu.Repository.WeChat
where += ")"; where += ")";
break; break;
case 3://日期 case 3://日期
List<string> vList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(item.StartValue);
string vstr = "'" + string.Join("','", vList) + "'";
if (item.IsCustom == 1) if (item.IsCustom == 1)
{ {
where += $@" r.CustomContent -> '$.{item.Name}' ='{item.StartValue}' "; where += $@" r.CustomContent -> '$.{item.Name}' in({vstr}) ";
} }
else else
{ {
where += $@" r.{item.Name} ='{item.StartValue}' "; where += $@" r.{item.Name} in({vstr}) ";
} }
break; break;
case 4://日期范围 case 4://日期范围
if (item.IsCustom == 1) if (item.IsCustom == 1)
{ {
where += $@" r.CustomContent -> '$.{item.Name}' >='{item.StartValue}' and r.CustomContent -> '$.{item.Name}' <='{item.EndValue}' "; where += $@" r.CustomContent -> '$.{item.Name}' >='{item.StartValue}' and r.CustomContent -> '$.{item.Name}' <='{item.EndValue} 23:59:59' ";
} }
else else
{ {
where += $@" r.{item.Name} >='{item.StartValue}' and r.{item.Name} <='{item.EndValue}' "; where += $@" r.{item.Name} >='{item.StartValue}' and r.{item.Name} <='{item.EndValue} 23:59:59' ";
} }
break; break;
case 5://数值 case 5://数值
...@@ -381,6 +395,10 @@ ORDER BY {orderByStr} "; ...@@ -381,6 +395,10 @@ ORDER BY {orderByStr} ";
{ {
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.IsPublic)} ={demodel.IsPublic}"; where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.IsPublic)} ={demodel.IsPublic}";
} }
if (demodel.CustomerState > 0)
{
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.CustomerState)} ={demodel.CustomerState}";
}
if (demodel.StageId > 0) if (demodel.StageId > 0)
{ {
where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.StageId)} ={demodel.StageId}"; where += $@" and r.{nameof(RB_WeChat_CustomerInfo_ViewModel.StageId)} ={demodel.StageId}";
......
...@@ -266,6 +266,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -266,6 +266,7 @@ namespace Edu.WebApi.Controllers.Course
Date = x.Date.ToString("yyyyMMdd"), Date = x.Date.ToString("yyyyMMdd"),
x.TeacherId, x.TeacherId,
x.TeacherName, x.TeacherName,
x.SName,
x.ClassId, x.ClassId,
x.ClassName, x.ClassName,
x.ClassNo, x.ClassNo,
...@@ -276,15 +277,19 @@ namespace Edu.WebApi.Controllers.Course ...@@ -276,15 +277,19 @@ namespace Edu.WebApi.Controllers.Course
x.CheckInNum, x.CheckInNum,
x.Money x.Money
}), }),
Statistics = slit.Select(x => new Statistics = slit.GroupBy(x => x.SName).Select(x => new
{ {
x.TeacherId, x.Key,
x.TeacherName, TeacherList = x.Select(y => new
x.UnitPrice, {
x.CourseHour, y.TeacherId,
x.DCourseHour, y.TeacherName,
x.DeductionHour, y.UnitPrice,
x.Money y.CourseHour,
y.DCourseHour,
y.DeductionHour,
y.Money
})
}) })
}); });
} }
...@@ -311,6 +316,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -311,6 +316,7 @@ namespace Edu.WebApi.Controllers.Course
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "日期") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }, new ExcelColumn(value: "日期") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "老师") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }, new ExcelColumn(value: "老师") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "校区") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "班号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }, new ExcelColumn(value: "班号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "班级") { CellWidth = 25, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }, new ExcelColumn(value: "班级") { CellWidth = 25, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "类型") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }, new ExcelColumn(value: "类型") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
...@@ -335,6 +341,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -335,6 +341,7 @@ namespace Edu.WebApi.Controllers.Course
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: item.Date.ToString("yyyyMMdd")){ }, new ExcelColumn(value: item.Date.ToString("yyyyMMdd")){ },
new ExcelColumn(value: item.TeacherName){ }, new ExcelColumn(value: item.TeacherName){ },
new ExcelColumn(value: item.SName){ },
new ExcelColumn(value: item.ClassNo){ }, new ExcelColumn(value: item.ClassNo){ },
new ExcelColumn(value: item.ClassName){ }, new ExcelColumn(value: item.ClassName){ },
new ExcelColumn(value: item.Type==1?"带班":"代课"){ }, new ExcelColumn(value: item.Type==1?"带班":"代课"){ },
...@@ -367,6 +374,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -367,6 +374,7 @@ namespace Edu.WebApi.Controllers.Course
datarows = new ExcelDataSource() datarows = new ExcelDataSource()
{ {
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "校区"){ },
new ExcelColumn(value: "老师"){ }, new ExcelColumn(value: "老师"){ },
new ExcelColumn(value: "基础课时"){ }, new ExcelColumn(value: "基础课时"){ },
new ExcelColumn(value: "带班课时"){ }, new ExcelColumn(value: "带班课时"){ },
...@@ -385,6 +393,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -385,6 +393,7 @@ namespace Edu.WebApi.Controllers.Course
datarows = new ExcelDataSource() datarows = new ExcelDataSource()
{ {
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: item.SName){ },
new ExcelColumn(value: item.TeacherName){ }, new ExcelColumn(value: item.TeacherName){ },
new ExcelColumn(value: item.DeductionHour.ToString()){ }, new ExcelColumn(value: item.DeductionHour.ToString()){ },
new ExcelColumn(value: item.CourseHour.ToString()){ }, new ExcelColumn(value: item.CourseHour.ToString()){ },
......
...@@ -1649,6 +1649,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1649,6 +1649,7 @@ namespace Edu.WebApi.Controllers.Finance
x.TimeBucket, x.TimeBucket,
x.TeacherId, x.TeacherId,
x.TeacherName, x.TeacherName,
x.SName,
x.ClassId, x.ClassId,
x.ClassName, x.ClassName,
x.ClassNo, x.ClassNo,
...@@ -1678,6 +1679,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1678,6 +1679,7 @@ namespace Edu.WebApi.Controllers.Finance
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:"上课日期"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"上课日期"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"上课时间段"){CellWidth=20,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"上课时间段"){CellWidth=20,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"校区"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"班级编号"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"班级编号"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"班级"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"班级"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"课程"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"课程"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
......
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