public DataResult GetFlowStep([FromQuery] int wId, int qId, bool menu, bool report) { var result = new DataResult(); if (menu) { result.datas.AddRange(FlowStepHelper.GetMenuDetails(wId, qId, report)); } else { var data = FlowStepHelper.GetDetails(wId, qId, report); //var defectIds = data.SelectMany(x => x.DefectIds); //var defects = DefectHelper.Instance.GetByIds<Defect>(defectIds); //foreach (var d in data) //{ // d.Defects = d.DefectIds.Where(defectId => defects.Any(x => x.Id == defectId)).Select(defectId => defects.First(x => x.Id == defectId).Name).Join(); //} result.datas.AddRange(data); } if (qId != 0 && !result.datas.Any()) { result.errno = Error.FlowStepNotExist; return(result); } return(result); }
public object PostFlowStep([FromBody] IEnumerable <FlowStep> details) { if (details == null || !details.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (details.Any(x => x.Name.IsNullOrEmpty())) { return(Result.GenError <Result>(Error.FlowStepNotEmpty)); } if (details.GroupBy(x => x.Name).Any(y => y.Count() > 1)) { return(Result.GenError <Result>(Error.FlowStepDuplicate)); } var ids = details.Where(x => x.CategoryId != 0).Select(x => x.CategoryId).Distinct(); var cnt = DeviceCategoryHelper.Instance.GetCountByIds(ids); if (cnt != ids.Count()) { return(Result.GenError <Result>(Error.DeviceCategoryNotExist)); } ids = details.Where(x => x.FormatId != 0).Select(x => x.FormatId).Distinct(); cnt = DeviceCategoryHelper.Instance.GetCountByIds(ids); if (cnt != ids.Count()) { return(Result.GenError <Result>(Error.ArgsFormatNotExist)); } ids = details.SelectMany(x => x.DefectIds).Distinct(); cnt = DefectHelper.Instance.GetCountByIds(ids); if (cnt != ids.Count()) { return(Result.GenError <Result>(Error.DefectNotExist)); } var wId = details.FirstOrDefault()?.WorkshopId ?? 0; var sames = details.Select(x => x.Name); if (FlowStepHelper.GetHaveSame(wId, sames)) { return(Result.GenError <Result>(Error.FlowStepIsExist)); } var userId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; foreach (var detail in details) { detail.CreateUserId = userId; detail.MarkedDateTime = markedDateTime; detail.List = detail.List ?? ""; detail.Remark = detail.Remark ?? ""; } FlowStepHelper.Instance.Add(details); return(Result.GenError <Result>(Error.Success)); }
public object GetFlowCode([FromQuery] int wId, bool menu, int qId, int cId, bool step) { if (step && qId != 0) { var data = FlowCodeHelper.GetDetail(wId, qId); var stepIds = data.SelectMany(x => x.StepIds).Distinct(); if (stepIds.Any()) { var steps = FlowStepHelper.GetDetails(stepIds).ToDictionary(x => x.Id); foreach (var d in data) { d.StepList.AddRange(d.StepIds.Where(stepId => steps.ContainsKey(stepId)).Select(stepId => new { steps[stepId].Id, steps[stepId].Name, steps[stepId].Category, steps[stepId].FormatId, })); } } return(new { errno = 0, errmsg = "成功", datas = data }); } var result = new DataResult(); if (menu) { result.datas.AddRange(FlowCodeHelper.GetMenu(wId, qId, cId)); } else { var data = FlowCodeHelper.GetDetail(wId, qId, cId); var stepIds = data.SelectMany(x => x.StepIds); if (stepIds.Any()) { var steps = FlowStepHelper.Instance.GetByIds <FlowStep>(stepIds).ToDictionary(x => x.Id); foreach (var d in data) { d.Steps = d.StepIds.Where(stepId => steps.ContainsKey(stepId)).Select(stepId => steps[stepId].Name).Join(); } } result.datas.AddRange(data); } if (qId != 0 && !result.datas.Any()) { result.errno = Error.FlowCodeNotExist; return(result); } return(result); }
public object GetCapacity([FromQuery] int qId, int cId, int wId, bool menu, bool step) { if (step && qId != 0) { var data = CapacityHelper.GetDetail(wId, qId); var stepIds = data.SelectMany(x => x.StepIds).Distinct(); if (stepIds.Any()) { var steps = FlowStepHelper.GetDetails(stepIds).ToDictionary(x => x.Id); foreach (var d in data) { d.CapacityList.AddRange(d.StepVList.Where(x => steps.ContainsKey(x.StepId)).Select(x => new { steps[x.StepId].Id, steps[x.StepId].Name, steps[x.StepId].Category, V = x.Number, })); } } return(new { errno = 0, errmsg = "成功", datas = data }); } var result = new DataResult(); result.datas.AddRange(menu ? CapacityHelper.GetMenu(wId, qId, cId) : CapacityHelper.GetDetail(wId, qId, cId)); if (qId != 0 && !result.datas.Any()) { result.errno = Error.CapacityNotExist; return(result); } return(result); }
public object PutFlowStep([FromBody] IEnumerable <FlowStep> details) { if (details == null || !details.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (details.Any(x => x.Id == 0)) { return(Result.GenError <Result>(Error.FlowStepNotExist)); } var markedDateTime = DateTime.Now; foreach (var detail in details) { detail.MarkedDateTime = markedDateTime; detail.Remark = detail.Remark ?? ""; } if (details.Any(x => x.Name.IsNullOrEmpty())) { if (details.Any(x => !x.List.IsNullOrEmpty())) { var eIds = details.SelectMany(x => x.DefectIds).Distinct(); var cnt = DefectHelper.Instance.GetCountByIds(eIds); if (cnt != eIds.Count()) { return(Result.GenError <Result>(Error.DefectNotExist)); } foreach (var detail in details) { detail.MarkedDateTime = markedDateTime; } FlowStepHelper.Defect(details); } else { var ids = details.Select(x => x.Id); var cnt = FlowStepHelper.Instance.GetCountByIds(ids); if (cnt != details.Count()) { return(Result.GenError <Result>(Error.FlowStepNotExist)); } FlowStepHelper.Enable(details); } } else { if (details.GroupBy(x => x.Name).Any(y => y.Count() > 1)) { return(Result.GenError <Result>(Error.FlowStepDuplicate)); } var ids = details.Where(x => x.CategoryId != 0).Select(x => x.CategoryId).Distinct(); var cnt = DeviceCategoryHelper.Instance.GetCountByIds(ids); if (cnt != ids.Count()) { return(Result.GenError <Result>(Error.DeviceCategoryNotExist)); } ids = details.Where(x => x.FormatId != 0).Select(x => x.FormatId).Distinct(); cnt = ArgsFormatHelper.Instance.GetCountByIds(ids); if (cnt != ids.Count()) { return(Result.GenError <Result>(Error.ArgsFormatNotExist)); } ids = details.SelectMany(x => x.DefectIds).Distinct(); cnt = DefectHelper.Instance.GetCountByIds(ids); if (cnt != ids.Count()) { return(Result.GenError <Result>(Error.DefectNotExist)); } var wId = details.FirstOrDefault()?.WorkshopId ?? 0; var sames = details.Select(x => x.Name); ids = details.Select(x => x.Id); if (FlowStepHelper.GetHaveSame(wId, sames, ids)) { return(Result.GenError <Result>(Error.FlowStepIsExist)); } var olds = FlowStepHelper.Instance.GetByIds <FlowStep>(ids); if (olds.Count() != details.Count()) { return(Result.GenError <Result>(Error.FlowStepNotExist)); } FlowStepHelper.Instance.Update(details); } return(Result.GenError <Result>(Error.Success)); }