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;
|
}
|
|
/// <summary>
|
/// 数据绑定
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
protected override List<object> GetDataSource(out string msg)
|
{
|
var materials = MaterialViewService.GetInstance().QueryByParam(new QueryParam
|
{
|
Filter = new Dictionary<string, object> { { "Code", tbMCode.Text.Trim() } }
|
}, out msg);
|
|
var res = new List<object>();
|
|
materials.ForEach(x =>
|
{
|
x.Quantity = 1;
|
res.Add(x);
|
});
|
return res;
|
}
|
|
/// <summary>
|
/// 确认物料是否存在
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
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<string, object> { {"Code" ,tbMCode.Text.Trim() } }
|
}, out msg);
|
var res = new List<object>();
|
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<string>();
|
var placeMaterial = PlaceMaterialViewService.GetInstance().QueryByParam(new QueryParam
|
{
|
Search = new Dictionary<string, object> { { "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;
|
}
|
}
|
|
|
|
/// <summary>
|
/// 点击重置按钮后触发的事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
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;
|
}
|
|
/// <summary>
|
/// 生成主任务
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
protected void btnSubmit_Click(object sender, EventArgs e)
|
{
|
if (string.IsNullOrEmpty(tbTaskNo.Text.Trim()))
|
{
|
Alert.ShowInTop("未获取到主任务号!");
|
return;
|
}
|
string msg;
|
|
|
var materialIdQuantityDict = new Dictionary<int, int>();
|
|
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<MaterialViewEntity>();
|
|
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);
|
}
|
}
|
}
|