public Response InsertOrder(InterfaceOrderModel interfaceorder) { Response Response = new Response(); if (!CheckLogin()) { Response.Code = 500; Response.Status = false; Response.Message = "请先登录!"; return(Response); } try { #region 保存订单接口主表 InterfaceOrderHeader headdata = _unitWork.FindSingle <InterfaceOrderHeader>(u => u.Code.Equals(interfaceorder.interfaceOrderHeader.Code)); interfaceorder.interfaceOrderHeader.Id = headdata?.Id; if (interfaceorder.interfaceOrderHeader.PartMaterialCode == null) { interfaceorder.interfaceOrderHeader.PartMaterialCode = interfaceorder.interfaceOrderHeader.ProductCode; } if (interfaceorder.interfaceOrderHeader.Id == null) { if (interfaceorder.interfaceOrderHeader.CreateBy == null) { interfaceorder.interfaceOrderHeader.CreateBy = "system"; interfaceorder.interfaceOrderHeader.CreateTime = DateTime.Now; } _unitWork.Add(interfaceorder.interfaceOrderHeader); } else { if (interfaceorder.interfaceOrderHeader.UpdateBy == null) { interfaceorder.interfaceOrderHeader.UpdateBy = "system"; interfaceorder.interfaceOrderHeader.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(interfaceorder.interfaceOrderHeader); } #endregion #region 保存订单主表 OrderHeader orderHeader = _unitWork.FindSingle <OrderHeader>(u => u.Code.Equals(interfaceorder.interfaceOrderHeader.Code)); if (orderHeader == null) { orderHeader = new OrderHeader(); } orderHeader.Code = interfaceorder.interfaceOrderHeader.Code; orderHeader.MachineType = interfaceorder.interfaceOrderHeader.MachineType; orderHeader.ProductCode = interfaceorder.interfaceOrderHeader.ProductCode; if (orderHeader.PartMaterialCode == null) { orderHeader.PartMaterialCode = interfaceorder.interfaceOrderHeader.ProductCode; } else { orderHeader.PartMaterialCode = interfaceorder.interfaceOrderHeader.PartMaterialCode; } orderHeader.PlanQty = (interfaceorder.interfaceOrderHeader.PlanQty == null ? 0 : interfaceorder.interfaceOrderHeader.PlanQty); orderHeader.CompleteQty = (interfaceorder.interfaceOrderHeader.CompleteQty == null ? 0 : interfaceorder.interfaceOrderHeader.CompleteQty); orderHeader.NGQty = (interfaceorder.interfaceOrderHeader.NGQty == null ? 0 : interfaceorder.interfaceOrderHeader.NGQty); if (interfaceorder.interfaceOrderHeader.Status == null) { orderHeader.Status = OrderStatus.已准备; } else { orderHeader.Status = interfaceorder.interfaceOrderHeader.Status; } if (interfaceorder.interfaceOrderHeader.Type == null) { orderHeader.Type = OrderType.正常工单; } else { orderHeader.Type = interfaceorder.interfaceOrderHeader.Type; } if (interfaceorder.interfaceOrderHeader.LineId == null) { var workship = _unitWork.FindSingle <ProductHeader>(u => u.Code == interfaceorder.interfaceOrderHeader.ProductCode).WorkShop; orderHeader.LineId = _unitWork.FindSingle <Line>(u => u.WorkshopCode.Equals(workship)).Id; } else { orderHeader.LineId = interfaceorder.interfaceOrderHeader.LineId; } if (interfaceorder.interfaceOrderHeader.Priority == null) { orderHeader.Priority = 5; } else { orderHeader.Priority = interfaceorder.interfaceOrderHeader.Priority; } orderHeader.LotNo = interfaceorder.interfaceOrderHeader.LotNo; if (interfaceorder.interfaceOrderHeader.LineId == null) { orderHeader.WorkFactory = _unitWork.Find <Factory>(null).Select(u => u.FactoryCode).FirstOrDefault(); } else { orderHeader.WorkFactory = interfaceorder.interfaceOrderHeader.WorkFactory; } orderHeader.PlanStartTime = interfaceorder.interfaceOrderHeader.PlanStartTime; orderHeader.PlanEndTime = interfaceorder.interfaceOrderHeader.PlanEndTime; orderHeader.ActualStartTime = interfaceorder.interfaceOrderHeader.ActualStartTime; orderHeader.ActualEndTime = interfaceorder.interfaceOrderHeader.ActualEndTime; orderHeader.ReserveNo = interfaceorder.interfaceOrderHeader.ReserveNo; orderHeader.ReserveRowNo = interfaceorder.interfaceOrderHeader.ReserveRowNo; orderHeader.CreateTime = interfaceorder.interfaceOrderHeader.CreateTime; orderHeader.CreateBy = interfaceorder.interfaceOrderHeader.CreateBy; orderHeader.UpdateTime = interfaceorder.interfaceOrderHeader.UpdateTime; orderHeader.UpdateBy = interfaceorder.interfaceOrderHeader.UpdateBy; if (orderHeader.Id == null) { if (orderHeader.CreateBy == null) { orderHeader.CreateBy = "system"; orderHeader.CreateTime = DateTime.Now; } _unitWork.Add(orderHeader); } else { if (orderHeader.UpdateBy == null) { orderHeader.UpdateBy = "system"; orderHeader.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(orderHeader); } #endregion foreach (var item in interfaceorder.interfaceOrderDetails) { try { #region 保存订单接口子表 InterfaceOrderDetiail data = _context.Set <InterfaceOrderDetiail>().AsQueryable().Where(u => u.OrderCode.Equals(item.OrderCode) && u.DrawingNumber.Equals(item.DrawingNumber)).SingleOrDefault(); item.Id = data?.Id; if (item.Id == null) { if (item.CreateBy == null) { item.CreateBy = "system"; item.CreateTime = DateTime.Now; } _unitWork.Add(item); } else { if (item.UpdateBy == null) { item.UpdateBy = "system"; item.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(item); } #endregion #region 保存订单子表 OrderDetiail orderDetail = _context.Set <OrderDetiail>().AsQueryable().Where(u => u.OrderCode.Equals(item.OrderCode) && u.DrawingNumber.Equals(item.DrawingNumber)).SingleOrDefault(); if (orderDetail == null) { orderDetail = new OrderDetiail(); } orderDetail.OrderCode = item.OrderCode; orderDetail.OrderHeaderId = orderHeader.Id; orderDetail.DrawingNumber = item.DrawingNumber; orderDetail.SerialNumber = item.SerialNumber; orderDetail.ExecuteStatus = "ready"; orderDetail.QualityStatus = "good"; orderDetail.StationTraceId = item.StationTraceId; orderDetail.StartTime = item.StartTime; orderDetail.EndTime = item.EndTime; orderDetail.PrintCount = 0; orderDetail.CreateTime = item.CreateTime; orderDetail.CreateBy = item.CreateBy; orderDetail.UpdateTime = item.UpdateTime; orderDetail.UpdateBy = item.UpdateBy; if (orderDetail.Id == null) { if (orderDetail.CreateBy == null) { orderDetail.CreateBy = "system"; orderDetail.CreateTime = DateTime.Now; } _unitWork.Add(orderDetail); } else { if (orderDetail.UpdateBy == null) { orderDetail.UpdateBy = "system"; orderDetail.UpdateTime = DateTime.Now; } _unitWork.UpdateByTracking(orderDetail); } #endregion } catch (Exception ex) { #region 记录订单接口子表错误信息 InterfaceOrderDetiail data = _context.Set <InterfaceOrderDetiail>().AsQueryable().Where(u => u.OrderCode.Equals(item.OrderCode) && u.DrawingNumber.Equals(item.DrawingNumber)).SingleOrDefault(); if (data != null) { data.ErrorMessage = ex.Message; if (data.UpdateBy == null) { data.UpdateBy = "system"; data.UpdateTime = DateTime.Now; } _unitWork.Update(data); } #endregion Response.Code = 500; Response.Status = false; Response.Message = (Response.Message == "操作成功" ? "" : Response.Message) + "\r\n" + "订单号:" + item.OrderCode + ",产品图号:" + item.DrawingNumber + "同步失败:" + ex.Message; } } } catch (Exception ex) { #region 记录订单接口主表错误信息 try { InterfaceOrderHeader data = _context.Set <InterfaceOrderHeader>().AsQueryable().Where(u => u.Code.Equals(interfaceorder.interfaceOrderHeader.Code)).SingleOrDefault(); if (data != null) { data.ErrorMessage = ex.Message; if (data.UpdateBy == null) { data.UpdateBy = "system"; data.UpdateTime = DateTime.Now; } _unitWork.Update(data); } } catch (Exception) { } #endregion Response.Code = 500; Response.Status = false; Response.Message = (Response.Message == "操作成功" ? "" : Response.Message) + "\r\n" + "同步失败:" + ex.Message; } return(Response); }
public string TransmitOrder([FromBody] InterfaceOrderModel interfaceorder) { return(JsonHelper.Instance.Serialize(_app.InsertOrder(interfaceorder))); }