|
@@ -26,12 +26,14 @@ namespace WCS_Client.Frm
|
|
|
{
|
|
|
SuperGridUtil.Get_GridColumn("ID", "任务ID", 80),
|
|
|
SuperGridUtil.Get_GridColumn("AGVID", "AGV任务号", 180),
|
|
|
+ SuperGridUtil.Get_GridColumn("WCSTASK", "WCS任务号", 80),
|
|
|
+ SuperGridUtil.Get_GridColumn("WMSTASK", "WMS任务号", 80),
|
|
|
SuperGridUtil.Get_GridColumn("AgvTaskTypeCh", "任务类型", 80),
|
|
|
SuperGridUtil.Get_GridColumn("StatusCh", "任务状态", 80),
|
|
|
SuperGridUtil.Get_GridColumn("AgvStatusCh", "AGV任务状态", 100),
|
|
|
SuperGridUtil.Get_GridColumn("Workshop", "车间", 80),
|
|
|
- SuperGridUtil.Get_GridColumn("Station", "站台地址", 100),
|
|
|
- SuperGridUtil.Get_GridColumn("Position", "起始地址", 80),
|
|
|
+ SuperGridUtil.Get_GridColumn("Station", "站台地址", 60),
|
|
|
+ SuperGridUtil.Get_GridColumn("Position", "起始地址", 100),
|
|
|
SuperGridUtil.Get_GridColumn("CreateTime", "创建时间", 180),
|
|
|
SuperGridUtil.Get_GridColumn("UpdateTime", "修改时间", 180),
|
|
|
SuperGridUtil.Get_GridColumn("AGVUpdateTime", "AGV修改时间", 180),
|
|
@@ -43,6 +45,12 @@ namespace WCS_Client.Frm
|
|
|
LCIList.Add(LCItemUtil.Add_TextboxX("AGVID", "AGV任务号:", 20, SubmitMethods, null));
|
|
|
LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "a.AGVID like '%{0}%'" }; ;
|
|
|
|
|
|
+ LCIList.Add(LCItemUtil.Add_TextboxX("WCSTASK", "WCS任务号:", 20, SubmitMethods, null));
|
|
|
+ LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "t.ID like '%{0}%'" };
|
|
|
+
|
|
|
+ LCIList.Add(LCItemUtil.Add_TextboxX("WESTASK", "WMS任务号:", 20, SubmitMethods, null));
|
|
|
+ LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "t.WMSTASK like '%{0}%'" };
|
|
|
+
|
|
|
LCIList.Add(LCItemUtil.Add_TextboxX("Position", "起始地址:", 20, SubmitMethods, null));
|
|
|
LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "a.Position like '%{0}%'" };
|
|
|
|
|
@@ -97,9 +105,11 @@ namespace WCS_Client.Frm
|
|
|
LCIList.Add(LCItemUtil.Add_ButtonX("btn_CancelAgvTask", "AGV任务取消", 100, 30, SubmitMethods));
|
|
|
LCIList.Add(LCItemUtil.Add_ButtonX("btn_FinishAgvTask", "AGV任务完成", 100, 30, SubmitMethods));
|
|
|
|
|
|
- //LCIList.Add(LCItemUtil.Add_ButtonX("btn_CancelAgvTask_F", "允许放货", 100, 30, SubmitMethods));
|
|
|
- //LCIList.Add(LCItemUtil.Add_ButtonX("btn_CancelAgvTask_F", "允许放货", 100, 30, SubmitMethods));
|
|
|
- //LCIList.Add(LCItemUtil.Add_ButtonX("btn_CMBYWorkShop", "车间叫料", 100, 30, SubmitMethods));
|
|
|
+ LCIList.Add(LCItemUtil.Add_ButtonX("btn_SendAgv", "AGV任务重下", 100, 30, SubmitMethods));
|
|
|
+ LCIList.Add(LCItemUtil.Add_ButtonX("btn_CancelAgvTask_Q", "允许取货", 100, 30, SubmitMethods));
|
|
|
+ LCIList.Add(LCItemUtil.Add_ButtonX("btn_CancelAgvTask_F", "允许放货", 100, 30, SubmitMethods));
|
|
|
+ LCIList.Add(LCItemUtil.Add_ButtonX("btn_AllowLeave", "允许离开", 100, 30, SubmitMethods));
|
|
|
+ LCIList.Add(LCItemUtil.Add_ButtonX("btn_CMBYWorkShop", "车间叫料", 100, 30, SubmitMethods));
|
|
|
}
|
|
|
uC_QueryPage1.Init_QueryPage(60, true, true, "", GCList, LCIList, QueryPageDataMethods, RefreshRoleMethods, DoubleClikMethod, null, null);
|
|
|
uC_QueryPage1.ClearLCItemValue();
|
|
@@ -111,10 +121,11 @@ namespace WCS_Client.Frm
|
|
|
|
|
|
private PageData QueryPageDataMethods(int PageIndex, int PageSize)
|
|
|
{
|
|
|
- string _SQLText = @"SELECT a.*,b.MEP_MAPPINGCHNAME AgvTaskTypeCh,c.MEP_MAPPINGCHNAME StatusCh,d.MEP_MAPPINGCHNAME AgvStatusCh FROM dbo.WCS_AGVTask a
|
|
|
+ string _SQLText = @"SELECT distinct a.*,t.ID WCSTASK,t.WMSTASK,b.MEP_MAPPINGCHNAME AgvTaskTypeCh,c.MEP_MAPPINGCHNAME StatusCh,d.MEP_MAPPINGCHNAME AgvStatusCh FROM dbo.WCS_AGVTask a
|
|
|
+ left join dbo.WCS_TASK t on a.ID=t.AgvTask
|
|
|
left join dbo.WCS_MAPPINGENTRY b on a.TaskType=b.MEP_MAPPINGNO and b.MEP_MAPPINGTYPE='TaskType'
|
|
|
left join dbo.WCS_MAPPINGENTRY c on a.Status=c.MEP_MAPPINGNO and c.MEP_MAPPINGTYPE='AGVStatus'
|
|
|
- left join dbo.WCS_MAPPINGENTRY d on a.AGVStatus=d.MEP_MAPPINGNO and d.MEP_MAPPINGTYPE='AGVStatus' Where 1=1 and Status < (case when b.MEP_MAPPINGCHNAME='入库' then 100 else 99 end) ";
|
|
|
+ left join dbo.WCS_MAPPINGENTRY d on a.AGVStatus=d.MEP_MAPPINGNO and d.MEP_MAPPINGTYPE='AGVStatus' Where 1=1 and a.Status < (case when b.MEP_MAPPINGCHNAME='入库' then 100 else 99 end) ";
|
|
|
string _Orderby = "a.CreateTime desc";
|
|
|
|
|
|
PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage1.GetQueryWhere(), PageIndex, PageSize);
|
|
@@ -136,6 +147,7 @@ namespace WCS_Client.Frm
|
|
|
uC_QueryPage1.RefreshData(1, 0);
|
|
|
uC_QueryPage1.HideOpaqueLayer();
|
|
|
}
|
|
|
+ //重下任务
|
|
|
else if (LCName == "btn_SendAgv")
|
|
|
{
|
|
|
DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows();
|
|
@@ -150,17 +162,21 @@ namespace WCS_Client.Frm
|
|
|
{
|
|
|
string msg = TryCachHelper.TryExecute((db) =>
|
|
|
{
|
|
|
- string out_id = id.ToString();
|
|
|
- //var wcstask = db.Queryable<WCS_TASK>().First(v => v.TASK_ITEM8 == out_id);
|
|
|
- //if (wcstask == null)
|
|
|
- //{
|
|
|
- // throw new Exception(string.Format("AGV任务ID[{0}]未查询到对应的WMS任务", out_id));
|
|
|
- //}
|
|
|
-
|
|
|
- var agvtask = db.Queryable<Middle_AGVTask>().First(v => v.Task_Id == id);
|
|
|
- agvtask.Task_WcsStatus = 1;
|
|
|
- agvtask.Task_AgvStatus = 0;
|
|
|
- db.Updateable(agvtask).UpdateColumns(it => new { it.Task_WcsStatus, it.Task_AgvStatus }).ExecuteCommand();
|
|
|
+ var wcstask = db.Queryable<WCS_TASK>().First(v => v.AgvTask == id);
|
|
|
+ if (wcstask == null)
|
|
|
+ {
|
|
|
+ throw new Exception(string.Format("AGV任务ID[{0}]未查询到对应的WCS任务", id));
|
|
|
+ }
|
|
|
+
|
|
|
+ var agvtask = db.Queryable<WCS_AGVTask>().First(v => v.ID == id);
|
|
|
+ if (agvtask.TaskType == AGVTaskType.叫料)
|
|
|
+ {
|
|
|
+ agvtask.Status = AGVTaskStatus.确认;
|
|
|
+ agvtask.AGVStatus = AGVTaskStatus.新建;
|
|
|
+ db.Updateable(agvtask).UpdateColumns(it => new { it.Status, it.AGVStatus }).ExecuteCommand();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ throw new Exception(string.Format("AGV任务ID[{0}]不是叫料任务,不能重新下发", id));
|
|
|
});
|
|
|
if (string.IsNullOrWhiteSpace(msg)) msg = string.Format("ID[{0}]任务重下成功", id);
|
|
|
MessageUtil.ShowTips(msg);
|
|
@@ -223,7 +239,7 @@ namespace WCS_Client.Frm
|
|
|
{
|
|
|
agvtask.Status = AGVTaskStatus.完成;
|
|
|
agvtask.AGVStatus = AGVTaskStatus.完成;
|
|
|
- }
|
|
|
+ }
|
|
|
agvtask.UpdateTime = DateTime.Now;
|
|
|
db.Updateable(agvtask).UpdateColumns(it => new { it.Status, it.AGVStatus, it.UpdateTime }).ExecuteCommand();
|
|
|
});
|
|
@@ -233,6 +249,100 @@ namespace WCS_Client.Frm
|
|
|
uC_QueryPage1.RefreshData(1, 0);
|
|
|
}
|
|
|
}
|
|
|
+ //允许取货
|
|
|
+ else if (LCName == "btn_CancelAgvTask_Q")
|
|
|
+ {
|
|
|
+ DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows();
|
|
|
+ if (dt == null || dt.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ MessageUtil.ShowTips("请选择任务。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int id = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
|
|
|
+ var result = MessageUtil.ShowYesNoAndWarning(string.Format("id[{0}]的任务确定要允许取货吗(请谨慎操作)?", id));
|
|
|
+ if (result == DialogResult.Yes)
|
|
|
+ {
|
|
|
+ string msg = TryCachHelper.TryExecute((db) =>
|
|
|
+ {
|
|
|
+ var agvtask = db.Queryable<WCS_AGVTask>().First(v => v.ID == id);
|
|
|
+ if (agvtask.AGVStatus == Frm.AGVTaskStatus.请求_允许)
|
|
|
+ {
|
|
|
+ agvtask.Status = Frm.AGVTaskStatus.请求_允许;
|
|
|
+ db.Updateable(agvtask).UpdateColumns(it => new { it.Status }).ExecuteCommand();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new Exception("AGV任务状态非请求_允许状态,不支持允许取货动作。");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (string.IsNullOrWhiteSpace(msg)) msg = string.Format("ID[{0}]任务允许取货成功", id);
|
|
|
+ MessageUtil.ShowTips(msg);
|
|
|
+ uC_QueryPage1.RefreshData(1, 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //允许放货
|
|
|
+ else if (LCName == "btn_CancelAgvTask_F")
|
|
|
+ {
|
|
|
+ DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows();
|
|
|
+ if (dt == null || dt.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ MessageUtil.ShowTips("请选择任务。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int id = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
|
|
|
+ var result = MessageUtil.ShowYesNoAndWarning(string.Format("id[{0}]的任务确定要允许放货吗(请谨慎操作)?", id));
|
|
|
+ if (result == DialogResult.Yes)
|
|
|
+ {
|
|
|
+ string msg = TryCachHelper.TryExecute((db) =>
|
|
|
+ {
|
|
|
+ var agvtask = db.Queryable<WCS_AGVTask>().First(v => v.ID == id);
|
|
|
+ if (agvtask.AGVStatus == Frm.AGVTaskStatus.请求_允许)
|
|
|
+ {
|
|
|
+ agvtask.Status = Frm.AGVTaskStatus.请求_允许;
|
|
|
+ db.Updateable(agvtask).UpdateColumns(it => new { it.Status }).ExecuteCommand();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new Exception("AGV任务状态非请求_允许状态,不支持放货动作。");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (string.IsNullOrWhiteSpace(msg)) msg = string.Format("ID[{0}]任务允许放货成功", id);
|
|
|
+ MessageUtil.ShowTips(msg);
|
|
|
+ uC_QueryPage1.RefreshData(1, 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //允许离开
|
|
|
+ else if (LCName == "btn_AllowLeave")
|
|
|
+ {
|
|
|
+ DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows();
|
|
|
+ if (dt == null || dt.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ MessageUtil.ShowTips("请选择任务。");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int id = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
|
|
|
+ var result = MessageUtil.ShowYesNoAndWarning(string.Format("id[{0}]的任务确定要允许离开吗(请谨慎操作)?", id));
|
|
|
+ if (result == DialogResult.Yes)
|
|
|
+ {
|
|
|
+ string msg = TryCachHelper.TryExecute((db) =>
|
|
|
+ {
|
|
|
+ var agvtask = db.Queryable<WCS_AGVTask>().First(v => v.ID == id);
|
|
|
+ if (agvtask.AGVStatus == Frm.AGVTaskStatus.取放完成)
|
|
|
+ {
|
|
|
+ agvtask.Status = Frm.AGVTaskStatus.取放完成;
|
|
|
+ db.Updateable(agvtask).UpdateColumns(it => new { it.Status }).ExecuteCommand();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new Exception("AGV任务状态异常,不支持离开。");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (string.IsNullOrWhiteSpace(msg)) msg = string.Format("ID[{0}]任务允许离开成功", id);
|
|
|
+ MessageUtil.ShowTips(msg);
|
|
|
+ uC_QueryPage1.RefreshData(1, 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //车间叫料
|
|
|
else if (LCName == "btn_CMBYWorkShop")
|
|
|
{
|
|
|
var frmCMByWorkShop = new FrmCMByWorkShop();
|
|
@@ -240,8 +350,7 @@ namespace WCS_Client.Frm
|
|
|
uC_QueryPage1.RefreshData(1, 0);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- private void DoubleClikMethod(DataRow dr)
|
|
|
+ private void DoubleClikMethod(DataRow dr)
|
|
|
{
|
|
|
//wcs_task_no = Convert.ToInt32(dr["TASK_NO"].ToString());
|
|
|
//FrmWCS_TaskDIS_DTL Frm = new FrmWCS_TaskDIS_DTL(wcs_task_no);
|