public void SaveOrder2Cabinet(Sender sender, SaveOrder2CabinetArgs args) { try { using (ObjectProxy op = new ObjectProxy(true)) { Order2Cabinet obj = new Order2Cabinet(); obj.CabinetID = args.Order2Cabinet.CabinetID; if (op.LoadOrder2CabinetByCabinetID(obj) == 0) { args.Order2Cabinet.Created = DateTime.Now; args.Order2Cabinet.CreatedBy = sender.UserCode + "." + sender.UserName; args.Order2Cabinet.Modified = DateTime.Now; args.Order2Cabinet.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertOrder2Cabinet(args.Order2Cabinet); } else { op.UpdateOrder2CabinetByCabinetID(args.Order2Cabinet); } op.CommitTransaction(); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public int UpdateCabinetStatus(Order2Cabinet obj, OprationType Opration, Sender sender) { try { using (ObjectProxy op = new ObjectProxy(true)) { int resurt = op.UpdateCabinetStatus(obj, Opration, sender); op.CommitTransaction();//加入事物处理,保证数据统一 return(resurt); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public Order2Cabinet GetOrder2Cabinet(Sender sender, Guid CabinetID) { try { using (ObjectProxy op = new ObjectProxy()) { Order2Cabinet obj = new Order2Cabinet(); obj.CabinetID = CabinetID; if (op.LoadOrder2CabinetByCabinetID(obj) == 0) { return(null); } return(obj); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public Order2Cabinet GetOrder2CabinetByOrderID_CabinetName(Sender sender, Guid OrderID, string CabinetName) { try { using (ObjectProxy op = new ObjectProxy()) { Order2Cabinet obj = new Order2Cabinet(); obj.OrderID = OrderID; obj.CabinetName = CabinetName; if (op.LoadOrder2CabinetByOrderID_CabinetName(obj) == 0) { return(null); } return(obj); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
private void btnSave_Click(object sender, EventArgs e) { try { if (this.listPackage.Items.Count == 0) { throw new Exception("未添加任何包数据。"); } using (ProxyBE bll = new ProxyBE()) { Order order = bll.Client.GetOrder(CGlobal.SenderUser, OrderID); //订单添加板件明细 List <OrderDetail> suborders = new List <OrderDetail>(); List <OrderDetail> details = bll.Client.GetOrderDetails(CGlobal.SenderUser, OrderID); Order2Cabinet cabinet = bll.Client.GetOrder2Cabinet(CGlobal.SenderUser, this.CabinetID); int itemsQty = 1; foreach (ListViewItem li in this.listPackage.Items) { int Qty = int.Parse(li.SubItems[2].Text); for (int i = 0; i < Qty; i++) { OrderDetail subOrder = new OrderDetail(); subOrder.ItemID = Guid.NewGuid(); subOrder.OrderID = this.OrderID; subOrder.BarcodeNo = order.OrderNo + ((char)(64 + cabinet.Sequence)).ToString() + (itemsQty + details.Count + 50).ToString("000"); subOrder.ItemName = li.SubItems[1].Text; subOrder.MadeBattchNum = ""; subOrder.MaterialType = ""; subOrder.MadeLength = 0; subOrder.MadeWidth = 0; subOrder.MadeHeight = 0; subOrder.Qty = 1; subOrder.TextureDirection = ""; subOrder.Edge1 = ""; subOrder.Edge2 = ""; subOrder.Edge3 = ""; subOrder.Edge4 = ""; subOrder.HoleDesc = ""; subOrder.EndLength = 0; subOrder.EndWidth = 0; subOrder.FrontLabel = ""; subOrder.BackLabel = ""; subOrder.PackageCategory = ""; subOrder.PackageSizeType = ""; subOrder.IsSpecialShap = false; subOrder.CabinetID = this.CabinetID; subOrder.Remarks = ""; subOrder.EdgeDesc = ""; subOrder.DamageQty = 0; subOrder.Created = DateTime.Now; suborders.Add(subOrder); Mes.Client.Service.BE.Package p = new Mes.Client.Service.BE.Package(); p.OrderID = OrderID; int pageNum = bll.Client.GetMaxPackageNum(CGlobal.SenderUser, OrderID, subOrder.CabinetID); p.CabinetID = subOrder.CabinetID; p.PackageNum = pageNum; p.PackageBarcode = string.Format("0{0}{1}", order.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00")); p.PackageID = Guid.NewGuid(); p.ItemsQty = 1; //保存条码数据 PackageDetail obj = new PackageDetail(); obj.DetailID = Guid.NewGuid(); obj.ItemID = subOrder.ItemID; obj.PakageID = p.PackageID; obj.IsPlanning = true; obj.IsPakaged = true; obj.IsDisabled = false; obj.IsOptimized = true; obj.LayerNum = 0; obj.Qty = 1; obj.CheckedBy = CGlobal.SenderUser.UserCode + "." + CGlobal.SenderUser.UserName; SavePackageArgs saveArgs = new SavePackageArgs(); saveArgs.Package = p; PackageDetail detail = new PackageDetail(); detail.DetailID = Guid.NewGuid(); detail.CheckedBy = CGlobal.SenderUser.UserCode; detail.IsDisabled = false; detail.IsOptimized = true; detail.IsPakaged = true; detail.IsPlanning = true; detail.ItemID = subOrder.ItemID; detail.LayerNum = 0; detail.PakageID = obj.PakageID; detail.Qty = 1; saveArgs.PackageDetail = detail; bll.Client.SavePackage(CGlobal.SenderUser, saveArgs); itemsQty++; } } SaveOrderArgs saveOrderArgs = new SaveOrderArgs(); saveOrderArgs.Order = order; saveOrderArgs.OrderDetails = suborders; bll.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs); } this.DialogResult = System.Windows.Forms.DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private void initTree() { try { TreeNode selected = null; if (this.tvPackage.SelectedNode != null) { selected = this.tvPackage.SelectedNode; } this.tvPackage.Nodes.Clear(); SearchPackageArgs args = new SearchPackageArgs(); if (CurrentOrder != null) { args.OrderID = CurrentOrder.OrderID; } else { return; } if (CurrentPackage != null) { args.CabinetID = CurrentPackage.CabinetID; } if (!string.IsNullOrEmpty(this.txtCabinetName.Text)) { args.CabinetName = this.txtCabinetName.Text; } args.OrderBy = "PackageNum ASC"; using (ProxyBE p = new ProxyBE()) { SearchResult sr = p.Client.SearchPackage(CGlobal.SenderUser, args); DataTable tb_cabinet = sr.DataSet.Tables[0].DefaultView.ToTable(true, "CabinetID"); foreach (DataRow cabinet_row in tb_cabinet.Rows) { Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, new Guid(cabinet_row["CabinetID"].ToString())); if (cabinet == null) { return; } TreeNode rootnode = new TreeNode(); rootnode.Text = string.Format("{0}({1},{2},{3},{4})", cabinet.CabinetName, cabinet.Size, cabinet.Color, cabinet.MaterialCategory, cabinet.MaterialStyle); rootnode.Tag = "C," + cabinet.CabinetID; DataRow[] rows = sr.DataSet.Tables[0].Select("CabinetID='" + cabinet_row["CabinetID"].ToString() + "'"); foreach (DataRow row in rows) { TreeNode tn = new TreeNode(); SearchPackageDetailArgs suborderArgs = new SearchPackageDetailArgs(); suborderArgs.PackageID = new Guid(row["PackageID"].ToString()); SearchResult subSr = p.Client.SearchPackageDetail(CGlobal.SenderUser, suborderArgs); decimal weight = 0; foreach (DataRow rw in subSr.DataSet.Tables[0].Rows) { TreeNode subnode = new TreeNode(); subnode.Text = string.Format("{0},{1}:{2} * {3} * {4}", rw["BarcodeNo"].ToString(), rw["ItemName"].ToString(), decimal.Parse(rw["MadeLength"].ToString()).ToString("#"), decimal.Parse(rw["MadeWidth"].ToString()).ToString("#"), decimal.Parse(rw["MadeHeight"].ToString()).ToString("#")); subnode.Tag = "B," + rw["ItemID"].ToString(); tn.Nodes.Add(subnode); weight += weight = decimal.Parse(rw["MadeHeight"].ToString()) * decimal.Parse(rw["MadeLength"].ToString()) * decimal.Parse(rw["MadeWidth"].ToString()) * 0.000001M * Density; } tn.Text = string.Format("第{0}包,包重:{1}KG,板件数量:{2}块", row["PackageNum"].ToString(), weight.ToString("#0.00"), subSr.Total); tn.Tag = "P," + row["PackageID"].ToString(); if (selected == null && this.CurrentPackage != null) { if (row["PackageID"].ToString() == this.CurrentPackage.PackageID.ToString()) { selected = tn; } } rootnode.Nodes.Add(tn); } if (selected != null && selected.Text != "") { this.tvPackage.SelectedNode = selected; selected.Expand(); } rootnode.Expand(); this.tvPackage.Nodes.Add(rootnode); } } } catch (Exception ex) { throw new Exception("加载数据失败。原因:" + ex.Message); } }
private void ScanBarcode() { if (this.InvokeRequired) { this.Invoke(new dreadbarcode(ScanBarcode), null); } else { if (WorkFlowID == Guid.Empty) { throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。"); } if (WorkShiftID == Guid.Empty) { throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。"); } string ItemBarcode = this.txtBarcode.Text.Trim(); if (string.IsNullOrEmpty(ItemBarcode)) { this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = "【提示】请扫描板件条码"; PlayVoice("请扫描板件条码"); return; } #region 完成当前分包操作 if (ItemBarcode.IndexOf(FinishedBarcode) >= 0 && !string.IsNullOrEmpty(FinishedBarcode)) { try { //打印分包标签 PlayVoice("打印标签"); //PrintDocument(); StartPrint(this.CurrentPackage.PackageID); this.txtBarcode.Text = ""; this.txtBarcode.Focus(); this.CurrentPackage = null; } catch (Exception ex) { this.CurrentPackage = null; throw ex; } return; } #endregion using (ProxyBE p = new ProxyBE()) { OrderDetail subOrder = p.Client.GetOrderDetailByBarcode(CGlobal.SenderUser, ItemBarcode); if (subOrder == null) { this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = string.Format("提示:【{0}】条码无效", ItemBarcode); PlayVoice("条码错误"); return; } Order order = p.Client.GetOrder(CGlobal.SenderUser, subOrder.OrderID); //初始化订单数据:如果当前订单ID与条码的订单ID不一至时则重置订单信息 if (CurrentOrder == null) { this.CurrentOrder = order; this.txtOrderNo.Text = this.CurrentOrder.OrderNo; } //判断当前的板件是否为同一订单板件 else if (subOrder.OrderID != this.CurrentOrder.OrderID) { this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = "【错误】板件订单号不一致"; PlayVoice("订单不一致"); MessageBox.Show("板件订单号不一致"); return; } List <PackageDetail> pdsubOrder = p.Client.GetPackageDetailsByItemID(CGlobal.SenderUser, subOrder.ItemID); pdsubOrder = pdsubOrder.FindAll(li => li.IsPakaged == false); if (pdsubOrder.Count == 0) { this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = string.Format("提示:【{0}】条码重复扫描", ItemBarcode); PlayVoice("重复扫描"); return; } decimal weight = subOrder.MadeHeight * subOrder.MadeLength * subOrder.MadeWidth * 0.000001M * Density; if (this.CurrentPackage != null) { if (this.CurrentPackage.Weight + weight >= MaxWeight) { //打印分包标签 PlayVoice("打印标签"); StartPrint(this.CurrentPackage.PackageID); this.txtBarcode.Text = ""; this.txtBarcode.Focus(); this.CurrentPackage = null; } } Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, subOrder.CabinetID); if (cabinet != null) { //初始化包数据 if (this.CurrentPackage == null) { Mes.Client.Service.BE.Package pack = new Mes.Client.Service.BE.Package(); pack.OrderID = this.CurrentOrder.OrderID; int pageNum = 0; pageNum = p.Client.GetMaxPackageNum(CGlobal.SenderUser, pack.OrderID, subOrder.CabinetID); pack.CabinetID = subOrder.CabinetID; pack.PackageNum = pageNum; pack.PackageID = Guid.NewGuid(); pack.PackageBarcode = string.Format("0{0}{1}", CurrentOrder.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00")); pack.PackageLength = 0; pack.PackageHeight = 0; pack.PackageWidth = 0; pack.ItemsQty = 0; this.CurrentPackage = pack; this.txtCabinetName.Text = cabinet.CabinetName; } else if (CurrentPackage.CabinetID != cabinet.CabinetID) { this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = "【错误】柜体不一致!"; PlayVoice("柜体不一致"); return; } } else { lblMsg.Text = string.Format("提示:【{0}】条码所属柜体数据丢失,请查看订单是否有误!", ItemBarcode); PlayVoice("订单错误"); return; } try { p.Client.ScanBarcode(CGlobal.SenderUser, ItemBarcode, WorkShiftID, WorkFlowID); } catch (Exception ex) { PLogger.LogError(ex); this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = ex.Message; PlayVoice("扫描失败"); return; } this.CurrentPackage.Weight += weight; this.CurrentPackage.ItemsQty += 1; SavePackageArgs saveArgs = new SavePackageArgs(); saveArgs.Package = this.CurrentPackage; PackageDetail packageDetail = pdsubOrder[0]; packageDetail.IsPakaged = true; packageDetail.PakageID = this.CurrentPackage.PackageID; saveArgs.PackageDetail = packageDetail; p.Client.SavePackage(CGlobal.SenderUser, saveArgs); this.CurrentPackage = p.Client.GetPackage(CGlobal.SenderUser, this.CurrentPackage.PackageID); this.gbPackage.Text = string.Format("当前:第{0}包", this.CurrentPackage.PackageNum); //刷新列表 biForm(); this.txtBarcode.Clear(); this.txtBarcode.Focus(); lblMsg.Text = "扫描完成"; PlayVoice("OK"); //检查是否已经全部扫描完成 if (this.listBarcodes.Items.Count == 0) { //打印分包标签 PlayVoice("打印标签"); //PrintDocument(); StartPrint(this.CurrentPackage.PackageID); this.txtBarcode.Text = ""; this.txtBarcode.Focus(); this.CurrentPackage = null; cabinet.CabinetStatus = "F"; SaveOrder2CabinetArgs cabinetArgs = new SaveOrder2CabinetArgs(); cabinetArgs.Order2Cabinet = cabinet; p.Client.SaveOrder2Cabinet(CGlobal.SenderUser, cabinetArgs); SearchPackageDetailArgs p_args = new SearchPackageDetailArgs(); p_args.IsDisabled = false; p_args.OrderID = CurrentOrder.OrderID; p_args.IsPakaged = false; SearchResult p_sr = p.Client.SearchPackageDetail(CGlobal.SenderUser, p_args); if (p_sr.Total == 0) { //Order order = p.Client.GetOrder(CGlobal.SenderUser, CurrentOrder.OrderID); order.Status = "I"; //全部打包完成后,订单状态变成待入库 SaveOrderArgs saveOrderArgs = new SaveOrderArgs(); saveOrderArgs.Order = order; p.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs); } } //加载树 initTree(); } } }
public void CreatedScheduling(Sender sender, SaveCreatedSchedulingArgs args) { try { using (ObjectProxy op = new ObjectProxy(true)) { #region 部件工序 if (args.OrderWorkFlows != null) { foreach (OrderWorkFlow workflow in args.OrderWorkFlows) { OrderWorkFlow ow = new OrderWorkFlow(); ow.WorkingID = workflow.WorkingID; if (op.LoadOrderWorkFlowByWorkingID(ow) == 0) { op.InsertOrderWorkFlow(workflow); } else { op.UpdateOrderWorkFlowByWorkingID(workflow); } } } #endregion #region 排产计划 if (args.OrderSchedulings != null) { foreach (OrderScheduling item in args.OrderSchedulings) { OrderScheduling subobj = new OrderScheduling(); subobj.MadeID = item.MadeID; if (op.LoadOrderSchedulingByMadeID(subobj) == 0) { item.Created = DateTime.Now; item.CreatedBy = sender.UserCode + "." + sender.UserName; item.Modified = DateTime.Now; item.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertOrderScheduling(item); } else { item.Modified = DateTime.Now; item.ModifiedBy = sender.UserCode + "." + sender.UserName; op.UpdateOrderSchedulingByMadeID(item); } } } //工作车间生产计划 if (args.WorkCenterSchedulings != null) { foreach (WorkCenterScheduling item in args.WorkCenterSchedulings) { WorkCenterScheduling wcs = new WorkCenterScheduling(); wcs.WorkID = item.WorkID; if (op.LoadWorkCenterSchedulingByWorkID(wcs) == 0) { item.Created = DateTime.Now; item.CreatedBy = sender.UserCode + "." + sender.UserName; item.Modified = DateTime.Now; item.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertWorkCenterScheduling(item); } else { item.Modified = DateTime.Now; item.ModifiedBy = sender.UserCode + "." + sender.UserName; op.UpdateWorkCenterSchedulingByWorkID(item); } } } #endregion #region 包装数据 if (args.PackageDetails != null) { foreach (PackageDetail item in args.PackageDetails) { PackageDetail subobj = new PackageDetail(); subobj.DetailID = item.DetailID; if (op.LoadPackageDetailByDetailID(subobj) == 0) { item.Created = DateTime.Now; item.CreatedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); item.Modified = DateTime.Now; item.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); op.InsertPackageDetail(item); } else { item.Modified = DateTime.Now; item.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); op.UpdatePackageDetailByDetailID(item); } } } #endregion #region 修改柜体状态 List <Guid> OrderIDs = new List <Guid>(); if (args.CabinetIDs != null) { foreach (Guid CabinetID in args.CabinetIDs) { Order2Cabinet cabinet = new Order2Cabinet(); cabinet.CabinetID = CabinetID; if (op.LoadOrder2CabinetByCabinetID(cabinet) != 0) { if (!OrderIDs.Contains(cabinet.OrderID)) { OrderIDs.Add(cabinet.OrderID); } Order order = new Order(); order.OrderID = cabinet.OrderID; if (op.LoadOrder(order) != 0) { //订单日志 OrderLog log = new OrderLog(); log.LogID = Guid.NewGuid(); log.OrderID = order.OrderID; log.LogType = "订单排产"; log.Remark = "完成排产"; log.Created = DateTime.Now; log.CreatedBy = sender.UserCode + "." + sender.UserName; op.InsertOrderLog(log); //流程步骤 //OrderTask ot = new OrderTask(); //ot.Action = "排产完成,待订单优化"; //ot.CurrentStep = "订单排产"; //ot.ActionRemarksType = "订单系统操作"; //ot.ActionRemarks = "排产完成,待订单优化"; //ot.Resource = "订单排产组"; //ot.NextResources = "订单优化组"; //ot.NextStep = "待生产优化"; cabinet.BattchCode = args.BattchCode; cabinet.CabinetStatus = "M";//待生产 op.UpdateOrder2CabinetByCabinetID(cabinet); SaveOrderArgs orderargs = new SaveOrderArgs(); orderargs.Order = order; //orderargs.OrderTask = ot; //orderargs.Order2Cabinets = new List<Order2Cabinet>() { cabinet }; //this.SubmitTask(op, sender, orderargs); } } } foreach (Guid orderID in OrderIDs) { //op.UpdateMadeOrderStatus(orderID); } } #endregion op.CommitTransaction(); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public DataSet GetCommonLabelDataSource(Guid CabinetID, string CategoryName, string LogoFile) { DataSet ds = new DataSet("tbPackageDataTable"); using (ProxyBE p = new ProxyBE()) { Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, CabinetID); SearchOrder2CabinetArgs args = new SearchOrder2CabinetArgs(); args.OrderIDs = new List <Guid> { cabinet.OrderID }; //args.CabinetName = cabinet.CabinetName; args.CabinetID = CabinetID; SearchResult sr = p.Client.SearchOrder2Cabinet(CGlobal.SenderUser, args); if (sr.Total == 0) { return(ds); } #region 100*70的条码 DataTable tb = new DataTable(); tb.Columns.Add(new DataColumn("OrderNo", typeof(string))); tb.Columns.Add(new DataColumn("OutOrderNo", typeof(string))); tb.Columns.Add(new DataColumn("PurchaseNo", typeof(string))); tb.Columns.Add(new DataColumn("CustomerName", typeof(string))); tb.Columns.Add(new DataColumn("Address", typeof(string))); tb.Columns.Add(new DataColumn("LinkMan", typeof(string))); tb.Columns.Add(new DataColumn("Mobile", typeof(string))); tb.Columns.Add(new DataColumn("CabinetName", typeof(string))); tb.Columns.Add(new DataColumn("MaterialStyle", typeof(string))); tb.Columns.Add(new DataColumn("Size", typeof(string))); tb.Columns.Add(new DataColumn("Color", typeof(string))); tb.Columns.Add(new DataColumn("Logo", typeof(byte[]))); tb.Columns.Add(new DataColumn("PrintDate", typeof(string))); tb.Columns.Add(new DataColumn("Remark", typeof(string))); tb.Columns.Add(new DataColumn("CategoryName", typeof(string))); DataRow row = sr.DataSet.Tables[0].Rows[0]; string[] c = CategoryName.Split(','); foreach (string s in c) { DataRow newRow = tb.NewRow(); newRow["OrderNo"] = row["OrderNo"]; newRow["OutOrderNo"] = row["OutOrderNo"]; newRow["PurchaseNo"] = row["PurchaseNo"]; newRow["CustomerName"] = row["CustomerName"]; newRow["Address"] = row["Address"]; newRow["LinkMan"] = row["LinkMan"]; newRow["Mobile"] = row["Mobile"]; newRow["CabinetName"] = row["CabinetName"]; newRow["Size"] = row["Size"]; newRow["Color"] = row["Color"]; newRow["MaterialStyle"] = row["MaterialStyle"]; newRow["Address"] = row["Province"].ToString() + row["City"].ToString() + row["Address"].ToString(); newRow["Logo"] = getLogoFile(LogoFile); newRow["PrintDate"] = DateTime.Now.ToString("yyyy年MM月dd日"); newRow["Remark"] = ""; newRow["CategoryName"] = s; tb.Rows.Add(newRow); } ds.Tables.Add(tb); #endregion } return(ds); }