public DataResult GetSmartWorkOrder([FromQuery] int qId, int wId, bool menu) { var result = new DataResult(); if (menu) { var data = SmartWorkOrderHelper.GetMenu(qId, wId); if (qId != 0 && !data.Any()) { result.errno = Error.SmartWorkOrderNotExist; return(result); } result.datas.AddRange(data); } else { var data = SmartWorkOrderHelper.GetDetail(qId, wId).Select(ClassExtension.ParentCopyToChild <SmartWorkOrder, SmartWorkOrderDetail>); if (qId != 0 && !menu) { var d = data.First(); if (d.State != SmartWorkOrderState.未加工) { var taskOrders = SmartTaskOrderHelper.GetDetailByWorkOrderId(d.Id); var flowCards = SmartFlowCardHelper.GetSmartFlowCardsByTaskOrderIds(taskOrders.Select(x => x.Id)); var processes = SmartFlowCardProcessHelper.GetSmartFlowCardProcessesByFlowCardIds(flowCards.Select(x => x.Id)); if (processes.Any()) { var st = processes.Where(x => x.StartTime != default(DateTime)).Min(y => y.StartTime); var et = processes.Where(x => x.EndTime != default(DateTime)).Min(y => y.EndTime); if (d.State == SmartWorkOrderState.已完成 || d.State == SmartWorkOrderState.已取消) { d.Consume = (int)(et - st).TotalSeconds; } else { d.Consume = (int)(DateTime.Now - st).TotalSeconds; } } } } result.datas.AddRange(data); } if (qId != 0 && !result.datas.Any()) { result.errno = Error.SmartWorkOrderNotExist; return(result); } return(result); }
public Result PutSmartWorkOrder([FromBody] IEnumerable <SmartWorkOrder> workOrders) { if (workOrders == null || !workOrders.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (workOrders.Any(x => x.WorkOrder.IsNullOrEmpty())) { return(Result.GenError <Result>(Error.SmartWorkOrderNotEmpty)); } if (workOrders.GroupBy(x => x.WorkOrder).Any(y => y.Count() > 1)) { return(Result.GenError <Result>(Error.SmartWorkOrderDuplicate)); } var wId = workOrders.FirstOrDefault()?.WorkshopId ?? 0; var sames = workOrders.Select(x => x.WorkOrder); var ids = workOrders.Select(x => x.Id); if (SmartWorkOrderHelper.GetHaveSame(wId, sames, ids)) { return(Result.GenError <Result>(Error.SmartWorkOrderIsExist)); } var cnt = SmartWorkOrderHelper.Instance.GetCountByIds(ids); if (cnt != workOrders.Count()) { return(Result.GenError <Result>(Error.SmartWorkOrderNotExist)); } var markedDateTime = DateTime.Now; foreach (var workOrder in workOrders) { workOrder.MarkedDateTime = markedDateTime; workOrder.Remark = workOrder.Remark ?? ""; } SmartWorkOrderHelper.Instance.Update(workOrders); return(Result.GenError <Result>(Error.Success)); }
public Result PostSmartWorkOrder([FromBody] IEnumerable <SmartWorkOrder> workOrders) { if (workOrders == null || !workOrders.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (workOrders.Any(x => x.WorkOrder.IsNullOrEmpty())) { return(Result.GenError <Result>(Error.SmartWorkOrderNotEmpty)); } if (workOrders.GroupBy(x => x.WorkOrder).Any(y => y.Count() > 1)) { return(Result.GenError <Result>(Error.SmartWorkOrderDuplicate)); } var wId = workOrders.FirstOrDefault()?.WorkshopId ?? 0; var sames = workOrders.Select(x => x.WorkOrder); if (SmartWorkOrderHelper.GetHaveSame(wId, sames)) { return(Result.GenError <Result>(Error.SmartWorkOrderIsExist)); } var userId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; foreach (var workOrder in workOrders) { workOrder.CreateUserId = userId; workOrder.MarkedDateTime = markedDateTime; workOrder.Remark = workOrder.Remark ?? ""; } SmartWorkOrderHelper.Instance.Add(workOrders); return(Result.GenError <Result>(Error.Success)); }