using FineUIPro; using iWareCommon.Common.Entity; using iWareDataCore.BASE.Entity; using iWareDataCore.BASE.EnumType; using iWareDataCore.BASE.Service; using iWareDataCore.TASK.Entity; using iWareDataCore.TASK.Service; using iWareExcel.EXCEL.Service; using iWareWms; using iWareWms.Code.Excel.Service; using System; using System.Collections.Generic; using System.Linq; using System.Collections.ObjectModel; namespace iWareWms.View.InOut { public partial class InOutList : PageBase { protected void Page_Load(object sender, EventArgs e) { //dpBeginTime.Text = DateTime.Now.AddDays(-10).ToString(); //dpEndTime.Text = DateTime.Now.AddDays(20).ToString(); } protected override Grid GetGrid() { return ListNoGrid; } /// /// 出入库类型,枚举前台显示 /// /// /// protected string GetStatus(object status) { return ((EInOutListStatus)Convert.ToInt32(status)).ToString(); } /// /// 查询未生成的出入库单号,状态 “0”或“1”(0,未生成(无物料),1,已生成(已添加物料)) /// /// /// protected void btnSerch_Click(object sender, EventArgs e) { if (dpBeginTime.SelectedDate == null) { dpBeginTime.SelectedDate = DateTime.Now.AddDays(-10); } if (dpEndTime.SelectedDate == null) { dpEndTime.SelectedDate = DateTime.Now.AddDays(20); } string msg; DateTime endTime = (DateTime)dpEndTime.SelectedDate; DateTime beginTime = (DateTime)dpBeginTime.SelectedDate; var plans = InOutListService.GetInstance().QueryByParam(new QueryParam { Leqd = new Dictionary { { "CreateTime", endTime } }, Geqd = new Dictionary { { "CreateTime", beginTime } }, Search = new Dictionary { { "ListNo", tbListNo.Text } }, Lt = new Dictionary { { "Status", 1 } } }, out msg); var res = new List(); plans.ForEach(x => res.Add(x)); ListNoGrid.DataSource = res; ListNoGrid.DataBind(); } /// /// 保存计划单,状态改为已经生成 /// /// /// protected void btnSubmit_Click(object sender, EventArgs e) { List emptyPlace = new List(); List place = PlaceService.GetInstance().GetEmptyAndInOutGate(); emptyPlace = place.FindAll(x => x.PlaceTypeName == EPlaceType.普通库位.ToString()); string msg; string lno = lbListNo.Text; var inoutdetails = InOutListDetailViewService.GetInstance().GetListDetailByListNo(lno, out msg); if (inoutdetails==null) { Alert.ShowInTop("物料明细不能为空!"); return; } var placeMaterial = PlaceMaterialViewService.GetInstance().QueryByParam(new QueryParam { }, out msg); List mtasklst = new List(); int islots = int.Parse(ddlLots.SelectedValue); for (int i = 0; i < inoutdetails.Count; i++) { MainTaskEntity mtask = new MainTaskEntity() { TaskNo = DateTime.Now.ToFileTime().ToString(), MaterialCode = inoutdetails[i].MaterialCode, SysCode = "1", SendTime = DateTime.Now, ProcessCardNumber = "", Quantity = 1, Status = 0, DecompositionTime = DateTime.Now, WipStatus = 0, DecompositionTimes = 0, PackageNo = "", IsLots = islots, Priority = 0, }; if (inoutdetails[i].TypeName == "入库") { mtask.TaskType = 0; mtask.SourcePlace = "100101"; mtask.ToPlace = emptyPlace[i].Code; } else { var palcecode = placeMaterial.FirstOrDefault(x => x.MaterialCode == inoutdetails[i].MaterialCode); mtask.TaskType = 1; mtask.SourcePlace = palcecode.PlaceCode; mtask.ToPlace = "100202"; } mtasklst.Add(mtask); } MainTaskService.GetInstance().SaveMainTaskList(mtasklst, out msg); if (string.IsNullOrEmpty(msg)) { string listno = lbListNo.Text; int count = InOutListDetailViewService.GetInstance().UpdateByListNo(listno, islots); if (count > 0) { Alert.ShowInTop("出入库单生成成功!"); } ListNoMaterialGrid.DataSource = null; ListNoMaterialGrid.DataBind(); ListNoGrid.DataSource = null; ListNoGrid.DataBind(); } else { Alert.ShowInTop("出入库单生成失败!"); } } /// /// 绑定查看物料 /// /// /// protected override void GridRowCommand(object sender, GridCommandEventArgs e) { btnSubmit.Enabled = true; var grid = ListNoGrid; if (e.CommandName == "Confirm") { var lno = grid.Rows[e.RowIndex].DataKeys[2].ToString(); string msg; var inoutdetails = InOutListDetailViewService.GetInstance().GetListDetailByListNo(lno, out msg); //if (inoutdetails.Count <= 0) //{ // Alert.ShowInTop("此单号还未添加物料。"); // return; //} List listno = new List(); inoutdetails.ForEach(x => listno.Add(x.ListNo)); lbListNo.Text = listno[0]; ListNoMaterialGrid.DataSource = inoutdetails; ListNoMaterialGrid.DataBind(); } //删除出入库单号 if (e.CommandName == "Delete") { int id = Convert.ToInt32(grid.Rows[e.RowIndex].DataKeys[1].ToString()); string msg; int count = InOutListService.GetInstance().Delete(id, out msg); if (count >= 0) { Alert.ShowInTop("删除成功!"); btnSerch_Click(null,null); ListNoMaterialGrid.DataSource = null; ListNoMaterialGrid.DataBind(); } } } /// /// 物料明细删除按钮 /// /// /// protected void btnDelete_Click(object sender, EventArgs e) { //取得选中行ID的集合 List selectedRowIDs = new List(ListNoMaterialGrid.SelectedRowIDArray); int[] selections = ListNoMaterialGrid.SelectedRowIndexArray; string msg = ""; var detail = ListNoMaterialGrid.Rows; List idlist = new List(); for (int i = 0; i < selections.Length; i++) { string RowId = detail[selections[i]].RowID.ToString(); int id = Convert.ToInt32(detail[selections[i]].Values[1].ToString()); if (selectedRowIDs.Contains(RowId)) { idlist.Add(id); } } int count = InOutListDetailService.GetInstance().Delete(idlist, out msg); if (count >= 0) { Alert.ShowInTop("删除成功!"); var inoutdetails = InOutListDetailViewService.GetInstance().GetListDetailByListNo(lbListNo.Text, out msg); List listno = new List(); inoutdetails.ForEach(x => listno.Add(x.ListNo)); ListNoMaterialGrid.DataSource = inoutdetails; ListNoMaterialGrid.DataBind(); } } protected override void GetPath(object userName) { string msg; string listno = tbListNo.Text; var placematerial = InOutListDetailViewService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary { { "ListNo", listno } } }, out msg); var inoutdetails = new List(); placematerial.ForEach(x => inoutdetails.Add(x)); var workBooks = WorkBookService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary { { "Name", "出入库单管理" } } }, out msg); var path = ExcelService.GetInstance().ToExcelByEPPlus(workBooks[0], new Dictionary> { { "出入库单管理", inoutdetails } }, out msg); Session["ExcelPath"] = path; } protected override Window GetWindow() { if (string.IsNullOrEmpty(lbListNo.Text)) { return null; } return Window2; } protected override FineUIPro.Timer GetTimer() { return timer1; } } }