using System; using SqlSugar; using Infrastructure.Attribute; using Infrastructure.Extensions; using DOAN.Model; using DOAN.Model.Dto; using DOAN.Model.MES.group; using DOAN.Model.MES.group.Dto; using DOAN.Repository; using DOAN.Service.group.IService; using System.Linq; using DOAN.Model.MES.group.Dto; using Aliyun.OSS; using Microsoft.AspNetCore.Http.HttpResults; namespace DOAN.Service.Business { /// /// 排班Service业务层处理 /// [AppService(ServiceType = typeof(IGroupScheduleService), ServiceLifetime = LifeTime.Transient)] public class GroupScheduleService : BaseService, IGroupScheduleService { /// /// 查询排班列表 /// /// /// public PagedInfo GetList(GroupScheduleQueryDto parm) { var predicate = Expressionable.Create(); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public GroupSchedule GetInfo(string Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加排班 /// /// /// public GroupSchedule AddGroupSchedule(GroupSchedule model) { return Context.Insertable(model).ExecuteReturnEntity(); } /// /// 修改排班 /// /// /// public int UpdateGroupSchedule(GroupSchedule model) { //var response = Update(w => w.Id == model.Id, it => new GroupSchedule() //{ // ScheduleDate = model.ScheduleDate, // GroupName = model.GroupName, // GrouoCode = model.GrouoCode, // BelongRoute = model.BelongRoute, // Remark = model.Remark, // Status = model.Status, // CreatedBy = model.CreatedBy, // CreatedTime = model.CreatedTime, // UpdatedBy = model.UpdatedBy, // UpdatedTime = model.UpdatedTime, //}); //return response; return Update(model, true); } /// /// 1 根据日期获取班组 /// /// /// public PagedInfo ListGroupByDate(GroupScheduleQueryDto2 query) { query.ScheduleDate = query.ScheduleDate.Date; return Queryable().Where(it => it.ScheduleDate == query.ScheduleDate).ToPage(query); } /// /// 查询班组绑定的人员 /// /// /// public List SearchPerson_group_bind(string group_schedule_id) { List peopleList = Context.Queryable() .LeftJoin((rel, p) => rel.FkPersonId == p.Id) .Where((rel, p) => rel.FkGroupId == group_schedule_id) .Select((rel, p) => p).ToList(); return peopleList; } /// /// 查询班组未绑定的人员 /// /// /// /// public List SearchPerson_group_bind_No(string group_schedule_id) { // 查询日期内所有绑定人员 //查询指定日期排班 var ScheduleDate1= SqlFunc.Subqueryable().Where(it => it.Id == group_schedule_id).Select(it => it.ScheduleDate); var ScheduleDate2 = SqlFunc.Subqueryable().Where(it => it.ScheduleDate == ScheduleDate1); //查询排班所有绑定的人员 var query = SqlFunc.Subqueryable() .LeftJoin((rel, p) => rel.FkPersonId == p.Id) .Where((rel, p) => ScheduleDate2.Where(it => it.Id == rel.FkGroupId).Any()); // 查询排班内所有未绑定人员 return Context.Queryable().Where(it => query.Where((rel, p) => p.Id == it.Id).NotAny()).ToList(); } public int GroupAddPerson(string group_schedule_id, string person_id,string CreatedBy) { GroupRelPersonGroup relPersonGroup = new GroupRelPersonGroup(); relPersonGroup.FkGroupId = group_schedule_id; relPersonGroup.FkPersonId = person_id; relPersonGroup.CreatedTime = DateTime.Now; relPersonGroup.CreatedBy = CreatedBy; return Context.Insertable(relPersonGroup).ExecuteCommand(); } public int GroupRemovePerson(string group_schedule_id, string person_id) { return Context.Deleteable() .Where(it=>it.FkGroupId == group_schedule_id) .Where(it=>it.FkPersonId == person_id) .ExecuteCommand(); } } }