Example #1
0
        public void SaveWorkOrders(Sender sender, SaveWorkOrderArgs args)
        {
            try
            {
                using (ObjectProxy op = new ObjectProxy(true))
                {
                    if (args.WorkOrders != null)
                    {
                        foreach (WorkOrder Item in args.WorkOrders)
                        {
                            string key   = "W" + DateTime.Now.ToString("yy");
                            int    index = this.GetIncrease(sender, key);
                            Item.WorkOrderNo = key + DateTime.Now.Month.ToString("00") + index.ToString("00000");
                            Item.Created     = DateTime.Now;
                            Item.CreatedBy   = sender.UserCode + "." + sender.UserName;
                            op.InsertWorkOrder(Item);
                        }
                    }

                    if (args.ProductionOrder != null)
                    {
                        op.UpdateProductionOrderByProductionID(args.ProductionOrder);
                    }

                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }
Example #2
0
        public void SaveWorkOrders()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    SaveWorkOrderArgs args = new SaveWorkOrderArgs();
                    WorkOrder obj = new WorkOrder();
                    if (string.IsNullOrEmpty(Request["ProductionIDs"]))
                    {
                        throw new Exception("参数错误!");
                    }
                    string[] array = Request["ProductionIDs"].TrimEnd(',').Split(',');
                    for (int i = 0; i < array.Length; i++)
                    {
                        Guid ProductionID = new Guid(array[i]);
                        ProductionOrder productionorder = p.Client.GetProductionOrder(SenderUser, ProductionID);
                        if (productionorder == null)
                        {
                            throw new Exception(string.Format("生产订单{0}不存在!", productionorder.ProduceNo));
                        }
                        if (productionorder.Status!= ProductionOrderStatus.Y.ToString())
                        {
                            throw new Exception(string.Format("生产订单{0}未排单!", productionorder.ProduceNo));
                        }
                        productionorder.Status = ProductionOrderStatus.K.ToString();
                        args.ProductionOrder = productionorder;

                        #region 工单
                        //一阶组件
                        List<ProductComponent> componentlist = p.Client.GetProductComponentByOrderID(SenderUser, productionorder.OrderID);
                        //组件对照表
                        List<ComponentType> typelist = p.Client.GetAllComponentTypes(SenderUser);

                        pageValues = new List<ProductComponent>();
                        foreach (ProductComponent Item in componentlist)
                        {
                            FindLastChild(typelist, Item.ComponentTypeID, Item.ProductCode);
                        }

                        List <WorkOrder> list = new List<WorkOrder>();
                        foreach (ProductComponent Item in pageValues)
                        {
                            var componentmodel= p.Client.GetProductComponentByComponentTypeID(SenderUser, Item.ComponentTypeID, Item.ProductCode);
                            if (componentmodel != null)
                            {
                                WorkOrder model = new WorkOrder()
                                {
                                    WorkOrderID = Guid.NewGuid(),
                                    OrderID = productionorder.OrderID,
                                    ProductionID = productionorder.ProductionID,
                                    Status = "N",
                                    ComponentID= componentmodel.ComponentID,
                                    ComponentTypeID = componentmodel.ComponentTypeID,
                                }; 
                                list.Add(model);
                            }
                        }
                        args.WorkOrders = list;

                        #endregion
                    }
                    if (args.WorkOrders.Count < 1)
                    {
                        throw new Exception("递归数据查询中未找到任何数据!");
                    }
                    p.Client.SaveWorkOrders(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }