using Hh.Mes.Common.log; using Hh.Mes.Common.Request; using Hh.Mes.Pojo.System; using Hh.Mes.POJO.Entity; using Hh.Mes.POJO.Response; using Hh.Mes.POJO.WebEntity; using Hh.Mes.Service.Repository; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; namespace Hh.Mes.Service.Configure { public class WorkcenterService : RepositorySqlSugar<base_work_center> { /// <summary> /// 查询 /// </summary> /// <param name="pageReq"></param> /// <param name="entity"></param> /// <returns></returns> public dynamic Load(PageReq pageReq, base_work_center entity) { return ExceptionsHelp.Instance.ExecuteT(() => { var result = new Response<List<base_work_center>>(); var expression = LinqWhere(entity); //先组合查询表达式 var query = Context.Queryable<base_work_center>().Where(expression); //Exel为ture就不分页,因为导出的话是全部导出 if (pageReq != null) { int total = 0; result.Result = query.ToOffsetPage(pageReq.page, pageReq.limit, ref total); result.Count = total; } else { result.Result = query.ToList(); result.Count = result.Result.Count; } return result; }, catchRetrunValue: "list"); } /// <summary> /// 新增 /// </summary> /// <param name="entity"></param> /// <returns></returns> public dynamic Ins(base_work_center entity, string user) { return ExceptionsHelp.Instance.ExecuteT(() => { var response = new Response(); entity.createBy = user; entity.createTime = DateTime.Now.ToLocalTime(); var result = Context.Insertable(entity).ExecuteCommand(); if (result <= 0) { return response.ResponseError(SystemVariable.dataActionError); } return response; }); } /// <summary> /// 修改 /// </summary> /// <param name="entity"></param> /// <returns></returns> public dynamic Upd(base_work_center entity, string user) { return ExceptionsHelp.Instance.ExecuteT(() => { var response = new Response(); entity.updateBy = user; entity.updateTime = DateTime.Now.ToLocalTime(); var result = Context.Updateable(entity).ExecuteCommand(); if (result <= 0) { return response.ResponseError(SystemVariable.dataActionError); } return response; }); } /// <summary> /// 删除 /// </summary> /// <param name="ids"></param> /// <returns></returns> public dynamic DelByIds(int[] ids) { var response = new Response(); return ExceptionsHelp.Instance.ExecuteT(() => { //根据id获取工作中心编码 var workCenterCodes = Context.Queryable<base_work_center>().In(x => x.id, ids).Select(x => x.workCenterCode).ToList(); //查看工作中心与工位关系表是否存在改工作中心编码的数据 var Exit = Context.Queryable<base_work_center_station_rel>().In(x => x.workCenterCode, workCenterCodes).ToList(); if (Exit!=null) { Context.Deleteable<base_work_center_station_rel>().Where(x => workCenterCodes.Contains(x.workCenterCode)).ExecuteCommand(); } var result = Context.Deleteable<base_work_center>().Where(x => ids.Contains(x.id)).ExecuteCommand(); if (result <= 0) { return response.ResponseError(SystemVariable.dataActionError); } return response; }); } /// <summary> /// 导出 /// </summary> /// <param name="entity"></param> /// <returns></returns> public Response ExportData(base_work_center entity) { return Load(null, entity); } public Expression<Func<base_work_center, bool>> LinqWhere(base_work_center model) { try { var exp = Expressionable.Create<base_work_center>(); //数据过滤条件 //if (!string.IsNullOrWhiteSpace(model.XXX)) exp.And(x => x.XXX.Contains(model.XXX)); if (!string.IsNullOrWhiteSpace(model.workCenterCode)) { exp.And(x => x.workCenterCode.Contains(model.workCenterCode)); } if (!string.IsNullOrWhiteSpace(model.workCenterName)) { exp.And(x => x.workCenterName.Contains(model.workCenterName)); } return exp.ToExpression();//拼接表达式 } catch (Exception ex) { throw new Exception($"{ex.Message}"); } } /// <summary> /// 获取绑定在该工作中心的工位 /// </summary> /// <param name="workCenterCode"></param> /// <returns></returns> public dynamic GetWorkCenterCode(string workCenterCode) { var response = new Response(); return ExceptionsHelp.Instance.ExecuteT(() => { response.Result = Context.Queryable<base_work_center_station_rel>().Where(x => x.workCenterCode == workCenterCode).ToList(); return response; }); } /// <summary> /// 任务中心工位关系表的新增与删除 /// </summary> /// <returns></returns> public dynamic OperateWorkCenterStation(string stationCode, string workCenterCode, bool checkeds, Guid WorkKey) { var response = new Response(); return ExceptionsHelp.Instance.ExecuteT(() => { string[] strArray = stationCode.Split(new char[] { ',' }); //int[] intArray = Array.ConvertAll<string, int>(strArray, s => int.Parse(s)); if (checkeds) { //var headPro = base.Context.Queryable<base_workCenter>().First(x => x.key == WorkKey); foreach (var item in strArray) { var model = new base_work_center_station_rel { workCenterCode = workCenterCode, workStationCode = item }; Context.Insertable(model).AddQueue(); } response.Status = Context.SaveQueues() > 0; if (!response.Status) { response.Message = "添加工位失败"; } } else { foreach (var item in strArray) { Context.Deleteable<base_work_center_station_rel>().Where(x => x.workStationCode == item && x.workCenterCode == workCenterCode).AddQueue(); } response.Status = Context.SaveQueues() > 0; if (!response.Status) { response.Message = "删除工位失败"; } } return response; }); } /// <summary> /// 获取绑定在该工作中心的班组 /// </summary> /// <param name="workCenterCode"></param> /// <returns></returns> public dynamic GetWorkCenterTeamCode(string workCenterCode) { var response = new Response(); return ExceptionsHelp.Instance.ExecuteT(() => { response.Result = Context.Queryable<base_work_center_team_rel>().Where(x => x.workCenterCode == workCenterCode).ToList(); return response; }); } /// <summary> /// 任务中心班组关系表的新增与删除 /// </summary> /// <returns></returns> public dynamic OperateWorkCenterTeam(string teamCode, string workCenterCode, bool checkeds, Guid WorkKey) { var response = new Response(); return ExceptionsHelp.Instance.ExecuteT(() => { string[] strArray = teamCode.Split(new char[] { ',' }); if (checkeds) { foreach (var item in strArray) { Context.Deleteable<base_work_center_team_rel>().Where(x => x.teamCode == item && x.workCenterCode == workCenterCode).ExecuteCommand(); var model = new base_work_center_team_rel { workCenterCode = workCenterCode, teamCode = item }; Context.Insertable(model).AddQueue(); } response.Status = Context.SaveQueues() > 0; if (!response.Status) { response.Message = "添加班组失败"; } } else { foreach (var item in strArray) { Context.Deleteable<base_work_center_team_rel>().Where(x => x.teamCode == item && x.workCenterCode == workCenterCode).AddQueue(); } response.Status = Context.SaveQueues() > 0; if (!response.Status) { response.Message = "删除班组失败"; } } return response; }); } } }