using FineUIPro; using iWareCommon.Common.Entity; using iWareDataCore.BASE.Entity; using iWareDataCore.BASE.Service; using iWareDataCore.TASK.Entity; using iWareDataCore.TASK.Service; using iWareWms; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace iWareWms.View.TASK.MainTaskView { public partial class CreateMainTask : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //var screenWidth = (int)Session[_screenWidth]; //GridMainTask.Width = new System.Web.UI.WebControls.Unit((int)screenWidth * 0.85); tbTaskNo.Text = DateTime.Now.ToFileTime().ToString(); btnSubmit.Enabled = false; tbId.Text = "0"; } } protected override Grid GetGrid() { return GridMainTask; } /// /// 数据绑定 /// /// /// protected override List GetDataSource(out string msg) { var materials = MaterialViewService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary { { "Code", tbMCode.Text.Trim() } } }, out msg); var res = new List(); materials.ForEach(x => { x.Quantity = 1; res.Add(x); }); return res; } /// /// 确认物料是否存在 /// /// /// protected void btnConfirm_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(tbMCode.Text)) { ShowNotify("请先确认物料"); return; } string msg; var materialViews = MaterialViewService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary { {"Code" ,tbMCode.Text.Trim() } } }, out msg); var res = new List(); if (materialViews != null && materialViews.Count>0) { materialViews.ForEach(x => { x.Quantity = 1; res.Add(x); }); GridMainTask.DataSource = res; GridMainTask.DataBind(); }else { Alert.ShowInTop("此物料不存在,请先录入!"); return; } tbMCode.Enabled = false; btnConfirm.Enabled = false; btnSubmit.Enabled = true; //出库任务时,判断库存是否有此物料 var list = new List(); var placeMaterial = PlaceMaterialViewService.GetInstance().QueryByParam(new QueryParam { Search = new Dictionary { { "MaterialCode", tbMCode.Text.Trim() } } }, out msg); placeMaterial.ForEach(x => list.Add(x.MaterialCode)); if (!list.Contains(tbMCode.Text.ToString()) || list.Count == 0) { ddlTaskType.SelectedValue = "0"; ddlTaskType.SelectedIndex = 0; return; } else { ddlTaskType.SelectedValue = "1"; ddlTaskType.SelectedIndex = 1; return; } } /// /// 点击重置按钮后触发的事件 /// /// /// protected void btnCancel_Click(object sender, EventArgs e) { tbMCode.Text = string.Empty; tbMCode.Focus(); GridMainTask.DataSource = null; GridMainTask.DataBind(); tbTaskNo.Text = DateTime.Now.ToFileTime().ToString(); tbMateriaCode.Text = string.Empty; tbId.Text = "-1"; tbMCode.Enabled = true; btnConfirm.Enabled = true; btnSubmit.Enabled = false; ddlTaskType.Enabled = false; } /// /// 生成主任务 /// /// /// protected void btnSubmit_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(tbTaskNo.Text.Trim())) { Alert.ShowInTop("未获取到主任务号!"); return; } string msg; var materialIdQuantityDict = new Dictionary(); for (var i = 0; i < GetGrid().GetMergedData().Count; i++) { var detail = GetGrid().GetMergedData()[i]; var id = int.Parse(detail["values"]["Id"].ToString()); var code = detail["values"]["Code"].ToString(); var quantity = int.Parse(detail["values"]["Quantity"].ToString()); if (quantity > 0) { if (materialIdQuantityDict.ContainsKey(id)) { materialIdQuantityDict[id] += quantity; } else { materialIdQuantityDict.Add(id, quantity); } } } var materials = new List(); var sourcePlaceCode = ""; var toPlaceCode = ""; if (ddlTaskType.SelectedValue == "0")//入库 { sourcePlaceCode = "100101";//gate11库位号 //查找空闲的库位 var placeviewlst = PlaceService.GetInstance().GetEmptyAndInOutGate(); if (placeviewlst == null && placeviewlst.Count<4) { Alert.ShowInTop("空库位不足!"); return; } toPlaceCode = placeviewlst.FirstOrDefault(x => x.PlaceTypeName== "普通库位").Code; } else//出库 { //查找要出库的库位信息 string scode= PlaceMaterialViewService.GetInstance().GetPlaceMaterialViews(tbMCode.Text.Trim()); if (string.IsNullOrEmpty(scode)) { Alert.ShowInTop("物料所在库位未找到!"); return; } sourcePlaceCode=scode; toPlaceCode = "100202";//gate22库位号 } int type = int.Parse(ddlTaskType.SelectedValue); var mainTask = MainTaskService.GetInstance().SaveMainTask(new MainTaskEntity { TaskNo = tbTaskNo.Text.Trim(), TaskType = type, MaterialCode = tbMCode.Text.ToString(), SysCode = "1", SendTime = DateTime.Now, SourcePlace = sourcePlaceCode, ToPlace = toPlaceCode, ProcessCardNumber = "", Quantity = 1, Status = 0, DecompositionTime = DateTime.Now, WipStatus = 0, DecompositionTimes = 0, PackageNo = "", IsLots = 0, Priority = 0, },type, out msg); if (!string.IsNullOrEmpty(msg)) { Alert.ShowInTop(msg); return; } WriteLog("主任务生成" + tbTaskNo.Text.Trim() + msg, "生成任务"); Alert.ShowInTop("生成成功!"); btnCancel_Click(null, null); } } }