xu.lu 3 gadi atpakaļ
vecāks
revīzija
93bd03aff8

+ 3 - 0
WCS_Client/Frm/FrmMain.cs

@@ -123,6 +123,9 @@ namespace WCS_Client
                 ////MBtn_Monitor
                 AddMenu("MBtn_Monitor", "MBtn_SCANN", "扫码信息查询", typeof(Frm.MBtn_SCANN), Btn_Click);
                 AddMenu("MBtn_Monitor", "MBtn_EQUMsg", "设备信号查询", typeof(Frm.FrmEquMsg), Btn_Click);
+
+                AddMenu("MBtn_Monitor", "MBtn_ALARAMRE", "历史报警记录", typeof(Frm.Frm_ALARAMRE), Btn_Click);
+                AddMenu("MBtn_Monitor", "MBtn_ALARAMERStatistics", "历史报警记录统计", typeof(Frm.Frm_ALARAMERStatistics), Btn_Click);
                 //AddMenu("MBtn_Monitor", "MBtn_Mont", "设备监控查看", typeof(Frm.Frm_YongGuanMontior), Btn_Click);
 
                 //MBtn_Sys

+ 4 - 2
WCS_Client/Frm/MBtn_AgvTask/FrmCMByWorkShop.Designer.cs

@@ -57,6 +57,8 @@
             // cmbWorkShopNO
             // 
             this.cmbWorkShopNO.FormattingEnabled = true;
+            this.cmbWorkShopNO.Items.AddRange(new object[] {
+            "205"});
             this.cmbWorkShopNO.Location = new System.Drawing.Point(167, 46);
             this.cmbWorkShopNO.Name = "cmbWorkShopNO";
             this.cmbWorkShopNO.Size = new System.Drawing.Size(202, 23);
@@ -75,7 +77,7 @@
             // 
             this.btnSave.Location = new System.Drawing.Point(167, 185);
             this.btnSave.Name = "btnSave";
-            this.btnSave.Size = new System.Drawing.Size(75, 23);
+            this.btnSave.Size = new System.Drawing.Size(75, 34);
             this.btnSave.TabIndex = 4;
             this.btnSave.Text = "保存";
             this.btnSave.UseVisualStyleBackColor = true;
@@ -85,7 +87,7 @@
             // 
             this.btnCancel.Location = new System.Drawing.Point(294, 185);
             this.btnCancel.Name = "btnCancel";
-            this.btnCancel.Size = new System.Drawing.Size(75, 23);
+            this.btnCancel.Size = new System.Drawing.Size(75, 34);
             this.btnCancel.TabIndex = 5;
             this.btnCancel.Text = "取消";
             this.btnCancel.UseVisualStyleBackColor = true;

+ 22 - 7
WCS_Client/Frm/MBtn_AgvTask/FrmCMByWorkShop.cs

@@ -40,13 +40,28 @@ namespace WCS_Client.Frm
             cmbWorkShopNO.Items.Clear();
             TryCachHelper.TryExecute((db) =>
             {
-                if (cmbWorkShopNO.Text == "1")
-                {
-                    cmbProLine.Items.Add("Mw_1_A");
-                    cmbProLine.Items.Add("Mw_1_B");
-                    cmbProLine.Items.Add("Mw_1_C");               
-                }
-               
+                if (cmbWorkShopNO.Text == "205")
+                {                 
+                    cmbProLine.Items.Add("Opp_205_A1");
+                    cmbProLine.Items.Add("Opp_205_B1");
+                    cmbProLine.Items.Add("Opp_205_AA1");
+                    cmbProLine.Items.Add("Opp_205_AB1");
+                    cmbProLine.Items.Add("Opp_205_AC1");
+                    cmbProLine.Items.Add("Opp_205_AD1");
+                    cmbProLine.Items.Add("Opp_205_AE1");
+                    cmbProLine.Items.Add("Opp_205_AF1");
+                    cmbProLine.Items.Add("Opp_205_AG1");
+                    cmbProLine.Items.Add("Opp_205_AH1");
+                    cmbProLine.Items.Add("Opp_205_AJ1");
+                    cmbProLine.Items.Add("Opp_205_BK1");
+                    cmbProLine.Items.Add("Opp_205_BA1");
+                    cmbProLine.Items.Add("Opp_205_BB1");
+                    cmbProLine.Items.Add("Opp_205_BC1");
+                    cmbProLine.Items.Add("Opp_205_BD1");
+                    cmbProLine.Items.Add("Opp_205_BE1");
+                    cmbProLine.Items.Add("Opp_205_BF1");
+                    cmbProLine.Items.Add("Opp_205_BG1");
+                }               
             });
         }
     }

+ 130 - 21
WCS_Client/Frm/MBtn_AgvTask/MBtn_AgvTask.cs

@@ -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);

+ 14 - 5
WCS_Client/Frm/MBtn_AgvTask_Dis/MBtn_AgvTask_Dis.cs

@@ -30,12 +30,14 @@ namespace WCS_Client.Frm.MBtn_AgvTaskDis
             {
                 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),
@@ -45,7 +47,13 @@ namespace WCS_Client.Frm.MBtn_AgvTaskDis
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "a.ID like '%{0}%'" };
 
             LCIList.Add(LCItemUtil.Add_TextboxX("AGVID", "AGV任务号:", 20, SubmitMethods, null));
-            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "a.AGVID like '%{0}%'" }; ;
+            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}%'" };
@@ -109,10 +117,11 @@ namespace WCS_Client.Frm.MBtn_AgvTaskDis
         }
         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 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 >= 100";
+                                left join dbo.WCS_MAPPINGENTRY d on a.AGVStatus=d.MEP_MAPPINGNO and d.MEP_MAPPINGTYPE='AGVStatus' Where 1=1 and a.Status >= 100";
             string _Orderby = "a.CreateTime desc";
 
             PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage1.GetQueryWhere(), PageIndex, PageSize);

+ 20 - 9
WCS_Client/Frm/MBtn_Monitor/Frm_ALARAMERStatistics.cs

@@ -35,7 +35,7 @@ namespace WCS_Client.Frm
             //LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ALARAMR_EQUNO like '%{0}%'" };
 
             LCIList.Add(LCItemUtil.Add_TextboxX("ALARAMR_EQUTYPE", "设备类型:", 20, SubmitMethods, null));
-            ////LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ALARAMR_EQUTYPE like '%{0}%'" };
+            //LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ALARAMR_EQUTYPE like '%{0}%'" };
 
             LCIList.Add(LCItemUtil.Add_ComboBoxEx("ALARAMR_ALARAMSTARTTIME", "统计类型:", 20, null, SubmitMethods));
 
@@ -64,35 +64,46 @@ namespace WCS_Client.Frm
         }
         private PageData QueryPageDataMethodsms(int PageIndex, int PageSize)
         {
-            string _SQLText = string.Format(@"SELECT [ALARAMR_EQUNO],[ALARAMR_EQUTYPE],COUNT(*) AS ALARAMR_TOTAL
-             FROM [dbo].[WCS_ALARAMRECORD] where 1=1");
+            string _SQLText = string.Format(@"select  DEVICECODE ALARAMR_EQUNO,DEVICENAME ALARAMR_EQUTYPE,count(1) ALARAMR_TOTAL from (
+select m.DEVICECODE,n.NAME DEVICENAME,m.SCAlarm alarm,m.FRAME ALARAMSTARTTIME,(select top 1 b.UPDATETIME from WCS_SRM537 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID) ALARAMENDTIME,'' as  ALARAMMSG 
+,datediff(second,m.UPDATETIME,(select top 1 b.UPDATETIME from WCS_SRM537 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID)) as FAULTTIME from  WCS_SRM537 m
+left join WCS_DEVICE  n on m.DEVICECODE=n.CODE
+union all
+select m.DEVICECODE,n.NAME DEVICENAME,m.Fault alarm,m.FRAME ALARAMSTARTTIME,(select top 1 b.UPDATETIME from WCS_RGV523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID) ALARAMENDTIME,'' as  ALARAMMSG 
+,datediff(second,m.UPDATETIME,(select top 1 b.UPDATETIME from WCS_RGV523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID)) as FAULTTIME from  WCS_RGV523 m
+left join WCS_DEVICE  n on m.DEVICECODE=n.CODE
+union all
+select  m.DEVICECODE,n.NAME DEVICENAME,m.Alarm alarm,m.FRAME ALARAMSTARTTIME,(select top 1 b.UPDATETIME from WCS_STATION523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID) ALARAMENDTIME,'' as  ALARAMMSG 
+,datediff(second,m.UPDATETIME,(select top 1 b.UPDATETIME from WCS_STATION523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID)) as FAULTTIME from  WCS_STATION523 m
+left join WCS_DEVICE  n on m.DEVICECODE=n.CODE) as deviceinfo 
+WHERE 1=1  and alarm>0");
             object chooseCommValue = ((ComboBoxEx)uC_QueryPage1.GetLCItem("ALARAMR_ALARAMSTARTTIME").Control).Text;
             object chooseTextValue = ((TextBoxX)uC_QueryPage1.GetLCItem("ALARAMR_EQUNO").Control).Text;
             object chooseTextValue1 = ((TextBoxX)uC_QueryPage1.GetLCItem("ALARAMR_EQUTYPE").Control).Text;
             if (!string.IsNullOrEmpty(chooseTextValue.ToString())) 
             {
-                _SQLText = _SQLText + string.Format(" and ALARAMR_EQUNO like '%{0}%'", chooseTextValue.ToString());
+                _SQLText = _SQLText + string.Format(" and DEVICECODE like '%{0}%'", chooseTextValue.ToString());
             }
 
             if (!string.IsNullOrEmpty(chooseTextValue1.ToString()))
             {
-                _SQLText = _SQLText + string.Format(" and ALARAMR_EQUTYPE like '%{0}%'", chooseTextValue.ToString());
+                _SQLText = _SQLText + string.Format(" and DEVICENAME like '%{0}%'", chooseTextValue.ToString());
             }
             if (chooseCommValue.ToString() == "按日统计")
             {
-                _SQLText = _SQLText + " and DateDiff(dd,ALARAMR_ALARAMSTARTTIME,getdate())= 0   group by [ALARAMR_EQUNO],[ALARAMR_EQUTYPE]";
+                _SQLText = _SQLText + " and DateDiff(dd,ALARAMSTARTTIME,getdate())= 0   group by DEVICECODE,DEVICENAME";
             } 
             else if (chooseCommValue.ToString() == "按月统计") 
             {
-                _SQLText = _SQLText + " and DateDiff(mm,ALARAMR_ALARAMSTARTTIME,getdate())= 0   group by [ALARAMR_EQUNO],[ALARAMR_EQUTYPE]";
+                _SQLText = _SQLText + " and DateDiff(mm,ALARAMSTARTTIME,getdate())= 0   group by DEVICECODE,DEVICENAME";
             }
             else if (chooseCommValue.ToString() == "按年统计")
             {
-                _SQLText = _SQLText + " and DateDiff(yy,ALARAMR_ALARAMSTARTTIME,getdate())= 0   group by [ALARAMR_EQUNO],[ALARAMR_EQUTYPE]";
+                _SQLText = _SQLText + " and DateDiff(yy,ALARAMSTARTTIME,getdate())= 0   group by DEVICECODE,DEVICENAME";
             }
             else if (chooseCommValue.ToString() == "所有数据")
             {
-                _SQLText = _SQLText + " group by [ALARAMR_EQUNO],[ALARAMR_EQUTYPE]";
+                _SQLText = _SQLText + " group by DEVICECODE,DEVICENAME";
             }
             string _Orderby = "ALARAMR_EQUNO desc";
 

+ 33 - 13
WCS_Client/Frm/MBtn_Monitor/Frm_ALARAMRE.cs

@@ -25,19 +25,26 @@ namespace WCS_Client.Frm
         {
             List<GridColumn> GCList = new List<GridColumn>()
             {
-                SuperGridUtil.Get_GridColumn("ALARAMR_EQUNO", "设备编号", 80),
-                SuperGridUtil.Get_GridColumn("ALARAMR_EQUTYPE", "设备类型", 100),
-                SuperGridUtil.Get_GridColumn("ALARAMR_ALARAMNO", "故障代码", 100),
-                SuperGridUtil.Get_GridColumn("ALARAMR_ALARAMMSG", "故障信息", 400),
-                SuperGridUtil.Get_Datetime_GridColumn("ALARAMR_ALARAMSTARTTIME", "报警时间", 200),
-                SuperGridUtil.Get_Datetime_GridColumn("ALARAMR_ALARAMENDTIME", "结束时间", 200)
+                //SuperGridUtil.Get_GridColumn("ALARAMR_EQUNO", "设备编号", 80),
+                //SuperGridUtil.Get_GridColumn("ALARAMR_EQUTYPE", "设备类型", 100),
+                //SuperGridUtil.Get_GridColumn("ALARAMR_ALARAMNO", "故障代码", 100),
+                //SuperGridUtil.Get_GridColumn("ALARAMR_ALARAMMSG", "故障信息", 400),
+                //SuperGridUtil.Get_Datetime_GridColumn("ALARAMR_ALARAMSTARTTIME", "报警时间", 200),
+                //SuperGridUtil.Get_Datetime_GridColumn("ALARAMR_ALARAMENDTIME", "结束时间", 200)
+                SuperGridUtil.Get_GridColumn("DEVICECODE", "设备编号", 100),
+                SuperGridUtil.Get_GridColumn("DEVICENAME", "设备名称", 120),
+                SuperGridUtil.Get_GridColumn("ALARAMMSG", "故障信息", 800),
+                SuperGridUtil.Get_Datetime_GridColumn("ALARAMSTARTTIME", "报警时间", 200),
+                SuperGridUtil.Get_Datetime_GridColumn("ALARAMENDTIME", "结束时间", 200),
+                SuperGridUtil.Get_GridColumn("FAULTTIME", "故障时间(秒)", 100)
+
             };
             List<LayoutControlItem> LCIList = new List<LayoutControlItem>();
-            LCIList.Add(LCItemUtil.Add_TextboxX("ALARAMR_EQUNO", "设备编号:", 20, SubmitMethods, null));
-            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ALARAMR_EQUNO like '%{0}%'" };
+            LCIList.Add(LCItemUtil.Add_TextboxX("DEVICECODE", "设备编号:", 20, SubmitMethods, null));
+            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "DEVICECODE like '%{0}%'" };
 
-            LCIList.Add(LCItemUtil.Add_TextboxX("ALARAMR_EQUTYPE", "设备类型:", 20, SubmitMethods, null));
-            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ALARAMR_EQUTYPE like '%{0}%'" };
+            LCIList.Add(LCItemUtil.Add_TextboxX("DEVICENAME", "设备名称:", 20, SubmitMethods, null));
+            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "DEVICENAME like '%{0}%'" };
 
             LCIList.Add(LCItemUtil.Add_ButtonX("btn_QDB", "查询", 80, 30, SubmitMethods));
             LCIList.Add(LCItemUtil.Add_ButtonX("btn_QClear", "重置", 80, 30, SubmitMethods));
@@ -50,9 +57,22 @@ namespace WCS_Client.Frm
         }
         private PageData QueryPageDataMethodsms(int PageIndex, int PageSize)
         {
-            string _SQLText = string.Format(@"SELECT [ALARAMR_EQUNO],[ALARAMR_EQUTYPE],[ALARAMR_ALARAMNO],[ALARAMR_ALARAMMSG],[ALARAMR_ALARAMSTARTTIME],[ALARAMR_ALARAMENDTIME]
-  FROM [dbo].[WCS_ALARAMRECORD] where 1=1 and [ALARAMR_ALARAMENDTIME] is not null");
-            string _Orderby = "ALARAMR_ALARAMSTARTTIME desc";
+            string _SQLText = string.Format(@"select * from (
+select '设备报警' TYPE, m.ID,m.DEVICECODE,n.NAME DEVICENAME,m.SCAlarm alarm,m.FRAME ALARAMSTARTTIME,
+(select top 1 b.UPDATETIME from WCS_SRM537 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID) ALARAMENDTIME,'' as  ALARAMMSG 
+,datediff(second,m.UPDATETIME,(select top 1 b.UPDATETIME from WCS_SRM537 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID)) as FAULTTIME from  WCS_SRM537 m
+left join WCS_DEVICE  n on m.DEVICECODE=n.CODE
+union all
+select '设备报警' TYPE, m.ID,m.DEVICECODE,n.NAME DEVICENAME,m.Fault alarm,m.FRAME ALARAMSTARTTIME,(select top 1 b.UPDATETIME from WCS_RGV523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID) ALARAMENDTIME,'' as  ALARAMMSG 
+,datediff(second,m.UPDATETIME,(select top 1 b.UPDATETIME from WCS_RGV523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID)) as FAULTTIME from  WCS_RGV523 m
+left join WCS_DEVICE  n on m.DEVICECODE=n.CODE
+union all
+select '设备报警' TYPE, m.ID,m.DEVICECODE,n.NAME DEVICENAME,m.Alarm alarm,m.FRAME ALARAMSTARTTIME,
+(select top 1 b.UPDATETIME from WCS_STATION523 b left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID) ALARAMENDTIME,'' as  ALARAMMSG 
+,datediff(second,m.UPDATETIME,(select top 1 b.UPDATETIME from WCS_STATION523 b 
+left join WCS_DEVICE  g on b.DEVICECODE=g.CODE where b.id>m.ID)) as FAULTTIME from  WCS_STATION523 m
+left join WCS_DEVICE  n on m.DEVICECODE=n.CODE) as deviceinfo WHERE 1=1  and alarm>0");
+            string _Orderby = "ALARAMSTARTTIME desc";
 
             PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage1.GetQueryWhere(), PageIndex, 1000);
             return pd;

+ 8 - 3
WCS_Client/Frm/MBtn_Task/FrmWCS_Task.cs

@@ -58,7 +58,7 @@ namespace WCS_Client.Frm
             List<LayoutControlItem> LCIList = new List<LayoutControlItem>();
 
             LCIList.Add(LCItemUtil.Add_TextboxX("ID", "WCS任务号:", 20, SubmitMethods, null));
-            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ID like '%{0}%'" };
+            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "t.ID like '%{0}%'" };
 
             LCIList.Add(LCItemUtil.Add_TextboxX("WMSTASK", "WMS任务号:", 20, SubmitMethods, null));
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "WMSTASK like '%{0}%'" };
@@ -78,6 +78,9 @@ namespace WCS_Client.Frm
             LCIList.Add(LCItemUtil.Add_TextboxX("ADDRTO", "目的地址:", 20, SubmitMethods, null));
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ADDRTO like '%{0}%'" };
 
+            LCIList.Add(LCItemUtil.Add_TextboxX("Position", "目标产线:", 20, SubmitMethods, null));
+            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "Position like '%{0}%'" };
+
             LCIList.Add(LCItemUtil.Add_TextboxX("DEVICE", "堆垛机编号:", 20, SubmitMethods, null));
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "DEVICE like '%{0}%'" };
 
@@ -140,9 +143,11 @@ namespace WCS_Client.Frm
         //获取数据集
         private PageData QueryPageDataMethods(int PageIndex, int PageSize)
         {
-            string _SQLText = @"select t.*,m.MEP_MAPPINGCHNAME task_comtypech,me.MEP_MAPPINGCHNAME task_wkstatusch from dbo.WCS_TASK t
+            string _SQLText = @"select t.*,m.MEP_MAPPINGCHNAME task_comtypech,me.MEP_MAPPINGCHNAME task_wkstatusch,Position from dbo.WCS_TASK t
 left join WCS_MAPPINGENTRY m on t.TYPE = m.MEP_MAPPINGNO and m.MEP_MAPPINGTYPE = 'TYPE'
-left join WCS_MAPPINGENTRY me on t.STATUS = me.MEP_MAPPINGNO and me.MEP_MAPPINGTYPE = 'STATUS' where 1=1 and STATUS < 99 ";
+left join WCS_MAPPINGENTRY me on t.STATUS = me.MEP_MAPPINGNO and me.MEP_MAPPINGTYPE = 'STATUS' 
+left join WCS_AGVTask  agv on agv.ID=t.AgvTask
+where 1=1 and t.STATUS < 99  ";
             string _Orderby = "CREATETIME desc ";
 
             PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage1.GetQueryWhere(), PageIndex, PageSize);

+ 9 - 3
WCS_Client/Frm/MBtn_Task/FrmWCS_TaskDIS.cs

@@ -37,6 +37,7 @@ namespace WCS_Client.Frm
                 SuperGridUtil.Get_GridColumn("ADDRCURRENT", "当前地址", 80),
                 SuperGridUtil.Get_GridColumn("ADDRNEXT", "下个地址", 80),
                 SuperGridUtil.Get_GridColumn("ADDRTO", "目的地址", 100),
+                SuperGridUtil.Get_GridColumn("ADDRline", "目标产线", 100),
                 SuperGridUtil.Get_GridColumn("DEVICE", "堆垛机编号", 80),
                 SuperGridUtil.Get_GridColumn("TUNNEL", "巷道", 70),
                 SuperGridUtil.Get_GridColumn("Priority", "优先级", 60),
@@ -61,7 +62,7 @@ namespace WCS_Client.Frm
             List<LayoutControlItem> LCIList = new List<LayoutControlItem>();
 
             LCIList.Add(LCItemUtil.Add_TextboxX("ID", "WCS任务号:", 20, SubmitMethods, null));
-            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ID like '%{0}%'" };
+            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "t.ID like '%{0}%'" };
 
             LCIList.Add(LCItemUtil.Add_TextboxX("WMSTASK", "WMS任务号:", 20, SubmitMethods, null));
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "WMSTASK like '%{0}%'" };
@@ -81,6 +82,9 @@ namespace WCS_Client.Frm
             LCIList.Add(LCItemUtil.Add_TextboxX("ADDRTO", "目的地址:", 20, SubmitMethods, null));
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "ADDRTO like '%{0}%'" };
 
+            LCIList.Add(LCItemUtil.Add_TextboxX("Position", "目标产线:", 20, SubmitMethods, null));
+            LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "Position like '%{0}%'" };
+
             LCIList.Add(LCItemUtil.Add_TextboxX("DEVICE", "堆垛机编号:", 20, SubmitMethods, null));
             LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "DEVICE like '%{0}%'" };
 
@@ -138,9 +142,11 @@ namespace WCS_Client.Frm
         }
         private PageData QueryPageDataMethods(int PageIndex, int PageSize)
         {
-            string _SQLText = @"select t.*,m.MEP_MAPPINGCHNAME task_comtypech,me.MEP_MAPPINGCHNAME task_wkstatusch from dbo.WCS_TASK t 
+            string _SQLText = @"select t.*,m.MEP_MAPPINGCHNAME task_comtypech,me.MEP_MAPPINGCHNAME task_wkstatusch,a.Position from dbo.WCS_TASK t 
 left join WCS_MAPPINGENTRY m on t.TYPE = m.MEP_MAPPINGNO and m.MEP_MAPPINGTYPE = 'TYPE' 
-left join WCS_MAPPINGENTRY me on t.STATUS = me.MEP_MAPPINGNO and me.MEP_MAPPINGTYPE = 'STATUS' where 1=1 and STATUS > 98 ";
+left join WCS_MAPPINGENTRY me on t.STATUS = me.MEP_MAPPINGNO and me.MEP_MAPPINGTYPE = 'STATUS'
+left join WCS_AGVTASK a on a.ID=t.AgvTask 
+where 1=1 and t.STATUS > 98 ";
             string _Orderby = "CREATETIME desc ";
 
             PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage1.GetQueryWhere(), PageIndex, PageSize);

+ 31 - 9
WCS_Client/Workflow/BaseWorkflow.cs

@@ -6,6 +6,9 @@ using System.Text;
 using WCS_Client.Models;
 using WCS_Client.Utility;
 using WCS_Client.Workflow;
+using static WCS_Client.Frm.WCS_RGV523;
+using static WCS_Client.Frm.WCS_SC537;
+using static WCS_Client.Frm.WCS_STATION523;
 using WCS_TASK = WCS.Entity.WCS_TASK;
 
 namespace WCS_Client
@@ -181,6 +184,32 @@ namespace WCS_Client
 
                 if (dt != null && dt.Rows.Count > 0)
                 {
+                    //设备报警赋值
+                    if (dt.Rows[0][1].ToString() == "设备报警")
+                    {
+                        for (int i = 0; i < dt.Rows.Count; i++)
+                        {
+                            TryCachHelper.TryExecute((db) =>
+                            {
+                                Type eType;
+                                if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 3) == "RGV")
+                                {
+                                    eType = typeof(RGVFault);
+                                }
+                                else if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 2) == "SC")
+                                {
+                                    eType = typeof(SCAlarm);
+                                }
+                                else
+                                {
+                                    eType = typeof(StationFault);
+                                }
+                                var eItem = Enum.Parse(eType, dt.Rows[i]["alarm"].ToString());
+                                var a = Enum.Parse(eType, "65");
+                                dt.Rows[i]["ALARAMMSG"] = eItem.ToString();
+                            });
+                        }
+                    }
                     PageData PageDataItem = new PageData();
                     PageDataItem.PageIndex = PageIndex;
                     PageDataItem.PageSize = PageSize;
@@ -972,16 +1001,9 @@ namespace WCS_Client
                     TaskType = Frm.AGVTaskType.叫料,
                     CreateTime = DateTime.Now,
                     UpdateTime = DateTime.Now,
-                    Workshop = int.Parse(txtcbworkshopno) == 13 || int.Parse(txtcbworkshopno) == 14 ? 1314 : int.Parse(txtcbworkshopno),
+                    Workshop = int.Parse(txtcbworkshopno),
+                    Station = "G1340"
                 };
-                if (agvtask.Workshop == 1)
-                    agvtask.Station = "2122";
-                else if (agvtask.Workshop == 2)
-                    agvtask.Station = "2131";
-                else if (agvtask.Workshop == 3)
-                    agvtask.Station = "2143 ";
-                else if (agvtask.Workshop == 1314)
-                    agvtask.Station = "2086";
                 int task_id = db.Insertable(agvtask).ExecuteReturnIdentity();
                 if (task_id <= 0)
                 {