Пример #1
0
    public DataTable GetAllPlanData()
    {
        DataTable table = new DataTable();
        JObject   SQLWorkOrderFileds = PMAppSettings.TableFileds.SelectToken("SQLWorkPlanFiled").ToObject <JObject>();
        string    SQLWorkPlanFiled   = "";

        foreach (var item in SQLWorkOrderFileds)
        {
            if (string.IsNullOrEmpty(SQLWorkPlanFiled))
            {
                SQLWorkPlanFiled += item.Key;
            }
            else
            {
                SQLWorkPlanFiled += "," + item.Key;
            }
        }
        SqlCommand cmd = PMCommand.SchCmd();

        cmd.CommandText = "select " + SQLWorkPlanFiled + " from View_WorkPlansBars where WorkPlanID in (select WorkPlanID from PMS_WorkPlans where Status = 'Released' and sysid = '" + PMUser.UserSysID + "')";
        SqlDataAdapter da = new SqlDataAdapter(cmd);

        da.Fill(table);
        da.Dispose();
        cmd.Connection.Dispose();
        foreach (var item in SQLWorkOrderFileds)
        {
            table.Columns[item.Key].ColumnName = item.Value.Value <string>();
        }
        return(table);
    }
Пример #2
0
        public static void GetWorkPlanInfo(string colName)
        {
            SqlCommand cmd = PMCommand.SchCmd();

            if (string.IsNullOrEmpty(colName))
            {
                cmd.CommandText = "select * from PMS_WorkPlans where sysID = '" + UserModels.PMUser.UserSysID + "' and Status = '" + PMAppSettings.PMPlState + "'";
            }
            else
            {
                cmd.CommandText = "select " + colName + " from PMS_WorkPlans where sysID = '" + UserModels.PMUser.UserSysID + "' and Status = '" + PMAppSettings.PMPlState + "'";
            }
            //cmd.CommandText = "select Owner,WorkPlanId,WorkPlanName from PMS_WorkPlans where sysID = '" + AppSettings.PMSysid + "' and Status = '" + AppSettings.PMPlState + "'";
            SqlDataReader rd = cmd.ExecuteReader();

            rd.Read();
            Owner        = rd["Owner"].ToString();
            WorkPlanName = rd["WorkPlanName"].ToString();
            WorkPlanId   = rd["WorkPlanId"].ToString();
            DateTime tmp = DateTime.Now;

            try
            {
                Convert.ToDateTime(rd["planReleaseTime"].ToString());
            }
            catch (Exception)
            {
            }

            ReleaseTime = tmp.Year.ToString() + "/" + tmp.Month.ToString() + "/" + tmp.Day.ToString() + " " + tmp.Hour.ToString() + ":" + tmp.Minute.ToString();
            rd.Close();
            cmd.Connection.Dispose();
        }
Пример #3
0
        public ActionResult <DataTable> GetMenu()
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "SELECT resName,ViewName FROM View_PmViewGroup  where sysID = '" + PMUser.UserSysID + "' and VGlobal = 'export'";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            return(table);
        }
Пример #4
0
        public ActionResult <DataTable> ParseMessage()
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "select eventType from wapEventRep";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Close();
            return(table);
        }
Пример #5
0
        public static DataTable GetUseDate()
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "select distinct useDate  from stsMainResUsuage order by useDate";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Close();
            return(table);
        }
Пример #6
0
        public static DataTable GetAllResUsuage()
        {
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select mainResName,useDate,dayAllWorkHour,dayPlanWorkHour,dayResRatio from stsMainResUsuage where workplanid = '" + PlanModels.Workplaninfo.WorkPlanId + "' and mainResName in (select resname from View_PmViewGroup where sysid = '33' and ViewName = 'AllBT')";
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable();

            da.Fill(data);
            da.Dispose();
            cmd.Connection.Close();
            return(data);
        }
Пример #7
0
        public ActionResult <string> GetMenu()
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "select * from STS_MainMenu";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            return("");
        }
Пример #8
0
        /// <summary>
        /// 获取辅助资源使用情况
        /// </summary>
        /// <returns></returns>
        public static DataTable GetScndUsuageData()
        {
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select scndResName,scndResType,allQty,useQty,startDateTime,endDateTime from stsScndUsuage where workplanid = '" + Workplaninfo.WorkPlanId + "' order by scndResName,startDateTime";
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable();

            da.Fill(data);
            da.Dispose();
            cmd.Connection.Dispose();
            return(data);
        }
Пример #9
0
        public ActionResult <DataTable> GetCurProduct(string res_name)
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "select * from wapMesEventRec where ResName='" + res_name + "' and EventName='EndSetup'";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Close();
            return(table);
        }
Пример #10
0
        public ActionResult <DataTable> Get_Tag_Event(string res_name)
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "select * from wapMesEventRec where ResName = '" + res_name + "' and MesDate <= '" + DateTime.Now.Date + "' order by PMUID desc";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Close();
            return(table);
        }
Пример #11
0
        /// <summary>
        /// 获取设备稼动率的方法
        /// </summary>
        /// <param name="resName">设备名称</param>
        /// <returns>DataTable</returns>
        public static DataTable GetResUsuage(string resName)
        {
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select useDate,dayAllWorkHour,dayPlanWorkHour,dayResRatio from stsMainResUsuage where workplanid = '" + PlanModels.Workplaninfo.WorkPlanId + "' and mainResName = '" + resName + "'";
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable()
            {
                TableName = resName
            };

            da.Fill(data);
            da.Dispose();
            cmd.Connection.Close();
            return(data);
        }
Пример #12
0
        /// <summary>
        /// 获取设备组下的设备名称
        /// </summary>
        /// <param name="resGroup">设备组名</param>
        /// <returns>DataTable</returns>
        public static DataTable GetResList(string resGroup)
        {
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select resname from View_PmViewGroup where sysid = '" + UserModels.PMUser.UserSysID + "' and ViewName = '" + resGroup + "'";
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable()
            {
                TableName = resGroup
            };

            da.Fill(data);
            da.Dispose();
            cmd.Connection.Close();
            return(data);
        }
Пример #13
0
        public ActionResult <DataTable> GetPlan(string resname)
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();
            //string today = DateTime.Now.ToString("yyyy-MM-dd");
            //string tomorrow = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
            string   today    = "2020-03-30"; //测试数据
            string   tomorrow = "2020-04-23"; //测试数据
            DateTime dt       = DateTime.Now.AddDays(1);

            cmd.CommandText = "SELECT planStartTime,planendtime,workID,pmOpName,finishedQty,TaskFinishState,itemAttr1,itemAttr2,itemAttr3,itemAttr4,productID,pmResName,jobQty,plannedqty,AllFinishedQty,dayShift FROM User_MesDailyData where pmResName='" + resname + "' and sysID = '" + PMUser.UserSysID + "' and planStartTime >= '" + today + "' and planStartTime < '" + tomorrow + "' and datatype = 'P' ORDER BY planStartTime";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            return(table);
        }
Пример #14
0
        public JObject MGetHistoryData()
        {
            JObject   obj    = PMAppSettings.TableFileds.SelectToken("HistoryTableFiled").ToObject <JObject>();
            string    sqlStr = "";
            DataTable table  = new DataTable();

            foreach (var item in obj)
            {
                if (string.IsNullOrEmpty(sqlStr))
                {
                    sqlStr += item.Key;
                }
                else
                {
                    sqlStr += "," + item.Key;
                }
            }
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "SELECT " + sqlStr + " from wapMesEventRec order by EventTime desc";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            foreach (var item in obj)
            {
                table.Columns[item.Key].ColumnName = item.Value.Value <string>();
            }
            JObject tableData = new JObject {
                { "total", table.Rows.Count },
                { "rows", JsonConvert.SerializeObject(table) }
            };
            //tableData.Add("total", dt.Rows.Count);
            //tableData.Add("rows", JsonConvert.SerializeObject(dt));
            JObject data = new JObject {
                { "code", "0" },
                { "data", tableData },
                { "msg", "successful" }
            };

            return(data);
        }
Пример #15
0
        /// <summary>
        /// 获取设备组
        /// </summary>
        /// <returns>DataTable</returns>
        public static DataTable GetResGroup()
        {
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select DISTINCT ViewName from View_PmViewGroup where sysid = '" + UserModels.PMUser.UserSysID + "' and VGlobal = 'export'";
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable();

            da.Fill(data);
            da.Dispose();
            if (data.Rows.Count < 1)
            {
                cmd.CommandText = "select DISTINCT ViewName from View_PmViewGroup  where sysid = '" + UserModels.PMUser.UserSysID + "'";
                da = new SqlDataAdapter(cmd);
                da.Fill(data);
                da.Dispose();
            }
            cmd.Connection.Close();
            return(data);
        }
Пример #16
0
        public static string GetPmViewGroupTable(string value)
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();

            cmd.CommandText = "SELECT resName  FROM View_PmViewGroup where sysID ='" + PMStaticModels.UserModels.PMUser.UserSysID + "' and ViewName  = '" + value + "'";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            if (table.Rows.Count == 0)
            {
                return("视图中没有设备");
            }
            else
            {
                return(PMPublicFuncs.DatatableToJson(table));
            }
        }
Пример #17
0
        public static DataTable GetProductOutPut(int isfinal, string OpName)
        {
            SqlCommand cmd         = PMCommand.SchCmd();
            string     itemAttrstr = "\'\'";

            for (int i = 0; i < Convert.ToInt32(PMSettings.PMAppSettings.ItemAttrCount); i++)
            {
                if (itemAttrstr != "\'\'")
                {
                    itemAttrstr += ",itemattr" + (i + 1);
                }
                else
                {
                    itemAttrstr  = "";
                    itemAttrstr += "itemattr" + (i + 1);
                }
            }
            if (isfinal == 0 && !string.IsNullOrEmpty(OpName))
            {
                cmd.CommandText = "select itemname,opName,outputqty,exportdate," + itemAttrstr + ",desp from stsItemOpDailyExport where workplanid = '" + PlanModels.Workplaninfo.WorkPlanId + "' and isFinial ='0' and opname='" + OpName + "'";
            }
            else if (isfinal == 0 && string.IsNullOrEmpty(OpName))
            {
                cmd.CommandText = "select itemname,opName,outputqty,exportdate," + itemAttrstr + ",desp from stsItemOpDailyExport where workplanid = '" + PlanModels.Workplaninfo.WorkPlanId + "' and isFinial ='0'";
            }
            else if (isfinal == 1)
            {
                cmd.CommandText = "select itemname,outputqty,exportdate," + itemAttrstr + ",desp from stsItemOpDailyExport where workplanid = '" + PlanModels.Workplaninfo.WorkPlanId + "' and isFinial ='1'";
            }
            else
            {
                cmd.CommandText = "select itemname,outputqty,exportdate," + itemAttrstr + ",desp from stsItemOpDailyExport where workplanid = '" + PlanModels.Workplaninfo.WorkPlanId + "'";
            }
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable();

            da.Fill(data);
            da.Dispose();
            cmd.Connection.Dispose();
            return(data);
        }
Пример #18
0
        public static DataTable GetWorkOrder(string colName, string filter, string ordertype)
        {
            // colName: colname1,colname2,
            // filter:colname1 = 'value1',and colname2 = 'value2'
            // ordertype colname1,colname2 DESC
            DataTable  table = new DataTable();
            SqlCommand cmd   = PMCommand.SchCmd();
            string     cmdselectstring;

            if (string.IsNullOrEmpty(colName))
            {
                cmdselectstring = "SELECT * FROM User_WorkOrder";
            }
            else
            {
                cmdselectstring = "SELECT " + colName + " FROM User_WorkOrder";
            }
            string cmdfilterstring;

            if (string.IsNullOrEmpty(filter))
            {
                cmdfilterstring = " where workPlanID in (SELECT workPlanID FROM PMS_WorkPlans where sysID = '" + UserModels.PMUser.UserSysID + "' and Status = '" + PMAppSettings.PMOcState + "')";
            }
            else
            {
                cmdfilterstring = " where " + filter + " and workPlanID in (SELECT workPlanID FROM PMS_WorkPlans where sysID = '" + UserModels.PMUser.UserSysID + "' and Status = '" + PMAppSettings.PMOcState + "')";
            }
            cmd.CommandText = cmdselectstring + cmdfilterstring;
            if (string.IsNullOrEmpty(ordertype) == false)
            {
                cmd.CommandText += "order by " + ordertype;
            }
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            return(table);
        }
Пример #19
0
        public ActionResult <List <GantaData> > GetTodayGantattData()
        {
            List <GantaData> list  = new List <GantaData>();
            DataTable        table = new DataTable();
            SqlCommand       cmd   = PMCommand.SchCmd();

            cmd.CommandText = "Select realOpName,PlannedStart,PlanedFinish from PMS_Bars where WorkPlanID = '" + Workplaninfo.WorkPlanId + "' and PlannedStart > '" + DateTime.Now.ToString() + "' order by realOpName,PlannedStart";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Dispose();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                GantaData gantaData = new GantaData {
                    RealOpName    = table.Rows[i]["realOpName"].ToString(),
                    PlannedStart  = table.Rows[i]["PlannedStart"].ToString(),
                    PlannedFinish = table.Rows[i]["PlannedFinish"].ToString()
                };
                list.Add(gantaData);
            }
            return(list);
        }
Пример #20
0
        public ActionResult <DateTime> GetWorkOrderStartTime(string resname, string timeType)
        {
            string colName;

            if (timeType.ToUpper() == "S")
            {
                colName = "MesStartTime";
            }
            else
            {
                colName = "MesEndTime";
            }
            DateTime   starttime;
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select " + colName + " from wapMesEventRec where resname = '" + resname + "' order by mesendtime DESC";
            SqlDataReader rd = cmd.ExecuteReader();

            rd.Read();
            starttime = Convert.ToDateTime(rd[0]);
            rd.Close();
            cmd.Connection.Close();
            return(starttime);
        }
Пример #21
0
        /// <summary>
        /// 获取导航栏的数据
        /// </summary>
        /// <returns></returns>
        public static string StrNavName()
        {
            List <string> groupList = new List <string>();
            SqlCommand    cmd       = PMCommand.SchCmd();

            cmd.CommandText = "SELECT distinct viewname FROM View_PmViewGroup where SYSID ='" + PMStaticModels.UserModels.PMUser.UserSysID + "' and vglobal = 'export'";
            SqlDataReader rd = cmd.ExecuteReader();

            while (rd.Read())
            {
                groupList.Add(rd[0].ToString());
            }
            rd.Close();
            if (groupList.Count == 0)
            {
                cmd.CommandText = "SELECT distinct viewname FROM View_PmViewGroup where SYSID ='" + PMStaticModels.UserModels.PMUser.UserSysID + "'";
                rd = cmd.ExecuteReader();
                while (rd.Read())
                {
                    groupList.Add(rd[0].ToString());
                }
                rd.Close();
                if (groupList.Count == 0)
                {
                    return("没有为设备创建视图");
                }
                else
                {
                    return(PMPublicFuncs.ListToJson(groupList));
                }
            }
            else
            {
                return(PMPublicFuncs.ListToJson(groupList));
            }
        }
Пример #22
0
        public ActionResult <DataTable> GetMesState(string planlist)
        {
            //https://localhost:44303/api/RateFactory/GetWorkOrderMesState?workIDList=[{'workid':'workid1','opname':'MI'},{}]
            DataTable MesData    = new DataTable();
            DataTable workidlist = JsonConvert.DeserializeObject <DataTable>(planlist.ToString());
            //workidlist  =  workIDList.ToString()
            DataTable workorderstate = new DataTable();

            workorderstate.Columns.Add("workID");
            workorderstate.Columns.Add("opname");
            workorderstate.Columns.Add("state");
            workorderstate.Columns.Add("DayShift");
            workorderstate.Columns.Add("plannedqty");
            workorderstate.Columns.Add("finishqty");
            workorderstate.Columns.Add("BadQty");
            workorderstate.Columns.Add("pmResName");
            SqlCommand cmd = PMCommand.SchCmd();

            cmd.CommandText = "select * from wapMesEventRec where MesDate <= '" + DateTime.Now.Date + "' order by PMUID";
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(MesData);
            da.Dispose();
            cmd.Connection.Close();
            foreach (DataRow item in workidlist.Rows)
            {
                DataRow[] dr = MesData.Select("workid ='" + item[0].ToString() + "' and Opname = '" + item[1].ToString() + "' and DayShift = '" + item[2].ToString() + "'");

                if (dr.Count() > 0)
                {
                    int BadQty    = 0;
                    int finishQty = 0;
                    for (int i = 0; i < dr.Count(); i++)
                    {
                        string state = dr[i][2].ToString();
                        BadQty    += Convert.ToInt32(dr[i][20]);
                        finishQty += Convert.ToInt32(dr[i][10]);
                        if (state.ToLower() == "startsetup")
                        {
                            DataRow newdr = workorderstate.NewRow();
                            newdr[0] = item[0].ToString();
                            newdr[1] = item[1].ToString();
                            newdr[2] = "2";
                            newdr[3] = item[2].ToString();
                            newdr[5] = finishQty;
                            newdr[6] = BadQty;
                            newdr[7] = dr[i][4].ToString();;
                            workorderstate.Rows.Add(newdr);
                        }
                        else if (state.ToLower() == "endsetup")
                        {
                            DataRow newdr = workorderstate.NewRow();
                            newdr[0] = item[0].ToString();
                            newdr[1] = item[1].ToString();
                            newdr[3] = item[2].ToString();
                            newdr[2] = "3";
                            newdr[5] = finishQty;
                            newdr[6] = BadQty;
                            newdr[7] = dr[i][4].ToString();
                            workorderstate.Rows.Add(newdr);
                        }
                        else if (state.ToLower() == "report")
                        {
                            DataRow newdr = workorderstate.NewRow();
                            newdr[0] = item[0].ToString();
                            newdr[1] = item[1].ToString();
                            newdr[3] = item[2].ToString();
                            newdr[2] = "3";
                            newdr[5] = finishQty;
                            newdr[6] = BadQty;
                            newdr[7] = dr[i][4].ToString();
                            workorderstate.Rows.Add(newdr);
                        }
                        else if (state.ToLower() == "startrest")
                        {
                            DataRow newdr = workorderstate.NewRow();
                            newdr[0] = item[0].ToString();
                            newdr[1] = item[1].ToString();
                            newdr[3] = item[2].ToString();
                            newdr[2] = "5";
                            newdr[5] = finishQty;
                            newdr[6] = BadQty;
                            newdr[7] = dr[i][4].ToString();
                            workorderstate.Rows.Add(newdr);
                        }
                        else if (state.ToLower() == "endrest")
                        {
                            DataRow newdr = workorderstate.NewRow();
                            newdr[0] = item[0].ToString();
                            newdr[1] = item[1].ToString();
                            newdr[3] = item[2].ToString();
                            newdr[2] = "3";
                            newdr[5] = finishQty;
                            newdr[6] = BadQty;
                            newdr[7] = dr[i][4].ToString();
                            workorderstate.Rows.Add(newdr);
                        }
                        else if (state.ToLower() == "startproduct")
                        {
                            DataRow[] finishdr       = MesData.Select("EventName ='startproduct' and workid = '" + item[0].ToString() + "' and opname = '" + item[1].ToString() + "' and DayShift = '" + item[2].ToString() + "'");
                            decimal   allfinishedQty = 0;
                            decimal   planQty        = Convert.ToDecimal(finishdr[finishdr.Length - 1]["PlanQty"]);
                            decimal   jobQty         = 0;
                            allfinishedQty = Convert.ToDecimal(finishdr[finishdr.Length - 1]["FinishedQty"]) + Convert.ToDecimal(finishdr[finishdr.Length - 1]["FailedQty"]) + Convert.ToDecimal(finishdr[finishdr.Length - 1]["ScrappedQty"]);
                            jobQty         = Convert.ToDecimal(finishdr[finishdr.Length - 1]["JobQty"]);
                            planQty        = planQty - allfinishedQty;

                            if (planQty <= allfinishedQty)
                            {
                                DataRow newdr = workorderstate.NewRow();
                                newdr[0] = item[0].ToString();
                                newdr[1] = item[1].ToString();
                                newdr[3] = item[2].ToString();
                                newdr[2] = "4";
                                newdr[4] = planQty;
                                newdr[5] = finishQty;
                                newdr[6] = BadQty;
                                newdr[7] = dr[i][4].ToString();
                                workorderstate.Rows.Add(newdr);
                            }
                            else
                            {
                                DataRow newdr = workorderstate.NewRow();
                                newdr[0] = item[0].ToString();
                                newdr[1] = item[1].ToString();
                                newdr[3] = item[2].ToString();
                                newdr[2] = "3";
                                newdr[4] = planQty;
                                newdr[5] = finishQty;
                                newdr[6] = BadQty;
                                newdr[7] = dr[i][4].ToString();
                                workorderstate.Rows.Add(newdr);
                            }
                        }
                    }
                }
            }
            return(workorderstate);
        }
Пример #23
0
        public ActionResult <List <string> > BtnReportClick(JObject report_datas)
        {
            //返回数据的redata说明:
            //row1:执行状态, 0为执行失败,1为执行成功
            //row2:信息列,备注消息详情或者返回数据
            //row3,按钮要变成的状态
            List <string> redata       = new List <string>();//q
            int           BtnState     = Convert.ToInt32(report_datas["BtnState"]);
            string        ResName      = report_datas["ResName"].ToString();
            string        WorkID       = report_datas["WorkID"].ToString();
            string        OpName       = report_datas["OpName"].ToString();
            string        ProductID    = report_datas["ProductID"].ToString();
            string        Description  = report_datas["Description"].ToString();
            string        MesStartTime = report_datas["MesStartTime"].ToString();
            string        JobQty       = report_datas["JobQty"].ToString();
            string        FinishedQty  = report_datas["FinishedQty"].ToString();
            int           BadQty       = Convert.ToInt32(report_datas["BadQty"]);
            string        ScrappedQty  = report_datas["ScrappedQty"].ToString();
            string        MesEndTime   = report_datas["MesEndTime"].ToString();
            string        DayShift     = report_datas["dayShift"].ToString();
            string        ErrorAttr    = report_datas["ErrorAttr"].ToString();
            string        PlanQty      = report_datas["PlannedQty"].ToString();
            string        Operator     = PMUser.UserName;

            if (BtnState == 1)
            {
                //执行切换开始操作
                int        maxuid = GetTableMaxUID(PMCommand.SchCmd(), "wapMesEventRec", "PMUID");
                SqlCommand cmd    = PMCommand.SchCmd();
                cmd.CommandText = "insert into wapMesEventRec (PMUID,EventType,EventName,EventMessage,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,FailedQty,ScrappedQty,MesStartTime,MesEndTime,MesDate,MesOperator,DayShift,PlanQty) " +
                                  "values ('" + maxuid + "','S','StartSetup','开始生产切换','" + ResName + "','" + WorkID + "','" + OpName + "','" + ProductID + "','" + Description + "','" + JobQty + "','0','0','0','" + DateTime.Now.ToString() + "','" + DateTime.Now.ToString() + "','" + DateTime.Now.Date + "','" + Operator + "','" + DayShift + "','" + PlanQty + "')";
                int state = cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                redata.Add(state.ToString());
                redata.Add("开始生产成功,进入工单切换状态。");
                redata.Add("2");
                redata.Add(Operator);
            }
            else if (BtnState == 2)
            {
                //执行换线结束操作
                //获取当前订单MES开始时间
                SqlCommand cmd = PMCommand.SchCmd();
                //cmd.CommandText = "select messtarttime from wapMesEventRec where  workid = '" + WorkID + "'and opname = '" + OpName + "' and resname = '" + ResName + "' and jobqty = '" + JobQty + "'";
                //SqlDataReader rd = cmd.ExecuteReader();
                //if (rd.Read())
                //{
                //    MesEndTime = rd[0].ToString();
                //}
                //rd.Close();
                MesStartTime = GetWorkOrderStartTime(ResName, "S").Value.ToString();
                int maxuid = GetTableMaxUID(PMCommand.SchCmd(), "wapMesEventRec", "PMUID");
                cmd.CommandText = "insert into wapMesEventRec (PMUID,EventType,EventName,EventMessage,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,FailedQty,ScrappedQty,MesStartTime,MesEndTime,MesDate,MesOperator,DayShift,PlanQty) " +
                                  "values ('" + maxuid + "','S','EndSetup','结束生产切换','" + ResName + "','" + WorkID + "','" + OpName + "','" + ProductID + "','" + Description + "','" + JobQty + "','0','0','0','" + MesStartTime + "','" + DateTime.Now.ToString() + "','" + DateTime.Now.Date + "','" + Operator + "','" + DayShift + "','" + PlanQty + "')";

                int state = cmd.ExecuteNonQuery();
                ////插入开始生产开始时间
                //maxuid = PMFunc.Func.GetTableMaxUID("sch", "wapMesEventRec", "PMUID");
                //cmd.CommandText = "insert into wapMesEventRec (PMUID,EventType,EventName,EventMessage,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,FailedQty,ScrappedQty,MesStartTime,MesEndTime,MesDate,MesOperator) " +
                //                                      "values ('" + maxuid + "','S','StartProduct','开始生产','" + ResName + "','" + WorkID + "','" + OpName + "','" + ProductID + "','" + Description + "','" + JobQty + "','0','0','0','" + DateTime.Now.ToString() + "','1900-01-01 0:00:00','" + DateTime.Now.Date + "','" + MesOperator + "')";
                //state = cmd.ExecuteNonQuery();
                ////插入开始生产开始时间
                cmd.Connection.Close();
                redata.Add(state.ToString());
                redata.Add("结束生产切换,进入工单生产状态。");
                redata.Add("3");
                redata.Add(Operator);
            }
            else if (BtnState == 3)
            {
                //执行报工操作
                int        maxuid = GetTableMaxUID(PMCommand.SchCmd(), "wapMesEventRec", "PMUID");
                SqlCommand cmd    = PMCommand.SchCmd();
                cmd.CommandText = "insert into wapMesEventRec (PMUID,EventType,EventName,EventMessage,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,FailedQty,ScrappedQty,MesStartTime,MesEndTime,MesDate,MesOperator,DayShift,PlanQty) " +
                                  "values ('" + maxuid + "','P','StartProduct','报工','" + ResName + "','" + WorkID + "','" + OpName + "','" + ProductID + "','" + Description + "','" + JobQty + "','" + FinishedQty + "'," + BadQty + ",'" + ScrappedQty + "','" + MesStartTime + "','" + MesEndTime + "','" + DateTime.Now.Date + "','" + Operator + "','" + DayShift + "','" + PlanQty + "')";
                int state = cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                //报工完成后,判断是否当前订单已经完成
                //如果想知道是否完成,那么应该先知道数据库中这个工单所有的报工数据
                //cmd.CommandText = "select * from wapMesEventRec where workid = '" + WorkID + "' and  opname = '" + OpName + "'and EventName = 'StartProduct'";
                //DataTable MesData = new DataTable();
                //SqlDataAdapter da = new SqlDataAdapter(cmd);
                //da.Fill(MesData);
                //da.Dispose();
                //cmd.Connection.Close();
                //decimal allfinishedQty = 0;
                //if (MesData.Rows.Count > 0)
                //{
                //    foreach (DataRow item in MesData.Rows)
                //    {
                //        allfinishedQty += Convert.ToDecimal(item["FinishedQty"]) + Convert.ToDecimal(item["FailedQty"]) + Convert.ToDecimal(item["ScrappedQty"]);
                //    }
                //}
                //if (allfinishedQty >= Convert.ToDecimal(JobQty))
                //{
                //    redata.Add(state.ToString());
                //    redata.Add("报工成功。");
                //    redata.Add("4");
                //}
                //else
                //{
                //    redata.Add(state.ToString());
                //    redata.Add("报工成功。");
                //    redata.Add("3");
                //}

                if (Convert.ToInt32(PlanQty) == Convert.ToInt32(FinishedQty) + Convert.ToInt32(BadQty) + Convert.ToInt32(ScrappedQty))
                {
                    redata.Add(state.ToString());
                    redata.Add("报工成功。");
                    redata.Add("4");
                    redata.Add(Operator);
                }
                else
                {
                    redata.Add(state.ToString());
                    redata.Add("报工成功。");
                    redata.Add("3");
                    redata.Add(Operator);
                }
            }
            else if (BtnState == 4)
            {
                //执行工单完结
            }
            else if (BtnState == 5)
            {
                //执行工单继续生产(工单暂停的事件)
                //执行切换开始操作
                SqlCommand cmd = PMCommand.SchCmd();
                //cmd.CommandText = "select messtarttime from wapMesEventRec where  workid = '" + WorkID + "'and opname = '" + OpName + "' and resname = '" + ResName + "' and jobqty = '" + JobQty + "'";
                //SqlDataReader rd = cmd.ExecuteReader();
                //if (rd.Read())
                //{
                //    MesEndTime = rd[0].ToString();
                //}
                //rd.Close();
                int maxuid = GetTableMaxUID(PMCommand.SchCmd(), "wapMesEventRec", "PMUID");
                cmd.CommandText = "insert into wapMesEventRec (PMUID,EventType,EventName,EventMessage,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,FailedQty,ScrappedQty,MesStartTime,MesEndTime,MesDate,MesOperator,DayShift,ErrorAttr,PlanQty) " +
                                  "values ('" + maxuid + "','S','StartRest','暂停生产','" + ResName + "','" + WorkID + "','" + OpName + "','" + ProductID + "','" + Description + "','" + JobQty + "','0','0','0','" + "" + "','','','" + Operator + "','" + DayShift + "','" + ErrorAttr + "','" + PlanQty + "')";

                int state = cmd.ExecuteNonQuery();
                ////插入开始生产开始时间
                //maxuid = PMFunc.Func.GetTableMaxUID("sch", "wapMesEventRec", "PMUID");
                //cmd.CommandText = "insert into wapMesEventRec (PMUID,EventType,EventName,EventMessage,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,FailedQty,ScrappedQty,MesStartTime,MesEndTime,MesDate,MesOperator) " +
                //                                      "values ('" + maxuid + "','S','StartProduct','开始生产','" + ResName + "','" + WorkID + "','" + OpName + "','" + ProductID + "','" + Description + "','" + JobQty + "','0','0','0','" + DateTime.Now.ToString() + "','1900-01-01 0:00:00','" + DateTime.Now.Date + "','" + MesOperator + "')";
                //state = cmd.ExecuteNonQuery();
                ////插入开始生产开始时间
                cmd.Connection.Close();
                redata.Add(state.ToString());
                redata.Add("暂停生产。");
                redata.Add("5");
                redata.Add(Operator);
            }
            else
            {
                redata.Add("System Error");
                redata.Add("Button state is wrong!");
            }
            return(redata);
        }