Example #1
0
        public bool PauseOrder_Call(string jsonedata)
        {
            COrderList mesEvent = JsonConvert.DeserializeObject <COrderList>(jsonedata);
            //写队列
            WriteMesEvent writeMes = new WriteMesEvent();

            if (writeMes.WriteMesEvent_Call(mesEvent, 3))
            {
                SqlCommand cmd = PmConnections.SchCmd();
                cmd.CommandText = "UPDATE User_MesDailyData SET TaskFinishState = '3',MesResName = '" + mesEvent.MesResName + "', MesOpName = '" + mesEvent.MesOpName + "', bgPerson = '" +
                                  mesEvent.MesOperator + "', updateDateTime = '" + DateTime.Now + "' WHERE UID = '" + mesEvent.OrderUID + "'";
                int result = cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                if (result == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        public List <CFinishHistory> GetOpFinishHistory(string orderuid)
        {
            SqlCommand cmd = PmConnections.SchCmd();

            cmd.CommandText = "SELECT eventMessage,eventTime,finishedQty,failedQty,planQty,jobQty,mesOperator FROM wapMesEventRec WHERE OrderUID = '" + orderuid + "' ORDER BY EventTime";
            SqlDataAdapter da        = new SqlDataAdapter(cmd);
            DataTable      dthistory = new DataTable();

            da.Fill(dthistory);
            da.Dispose();
            cmd.Connection.Close();
            List <CFinishHistory> cFinishHistories = new List <CFinishHistory>();

            foreach (DataRow item in dthistory.Rows)
            {
                CFinishHistory cFinish = new CFinishHistory
                {
                    EventMessage = item["eventMessage"].ToString(),
                    EventTime    = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(item["eventTime"]), 1),
                    FinishedQty  = Convert.ToDouble(item["finishedQty"]),
                    FailedQty    = Convert.ToDouble(item["failedQty"]),
                    PlannedQty   = Convert.ToDouble(item["planQty"]),
                    JobQty       = Convert.ToDouble(item["jobQty"]),
                    MesOperator  = item["mesOperator"].ToString()
                };
                cFinishHistories.Add(cFinish);
            }
            return(cFinishHistories);
        }
Example #3
0
        private bool IsAdmin(int empid, int userSysID)
        {
            SqlCommand cmd = PmConnections.ModCmd();

            cmd.CommandText = "SELECT userName,shopUSergroupid,sysid FROM wapUser WHERE userName in (SELECT USERNAME FROM wapEmpUserMap WHERE empid = '" + empid + "') and sysid = '" + userSysID + "'";
            SqlDataAdapter adapter     = new SqlDataAdapter(cmd);
            DataTable      dtusergroup = new DataTable();

            adapter.Fill(dtusergroup);
            adapter.Dispose();
            bool isadmin = false;

            if (dtusergroup.Rows.Count > 0)
            {
                foreach (DataRow item in dtusergroup.Rows)
                {
                    if (item["shopUSergroupid"].ToString().ToUpper() != "ADMIN")
                    {
                        continue;
                    }
                    else
                    {
                        isadmin = true;
                        break;
                    }
                }
            }
            else
            {
                isadmin = false;
            }
            return(isadmin);
        }
Example #4
0
        public CLogin ForceOut(string userName, string userpass)
        {
            PublicFunc.DeleteUserResLock(GetUpdateVal());
            SqlCommand cmd = PmConnections.CtrlCmd();

            cmd.CommandText = "SELECT online FROM wapUserstate WHERE empid = '" + GetUpdateVal() + "'";
            SqlDataReader rd = cmd.ExecuteReader();

            if (rd.Read())
            {
                if (Convert.ToBoolean(rd[0]))
                {
                    rd.Close();
                    cmd.CommandText = "DELETE FROM wapUserstate WHERE empid = '" + GetUpdateVal() + "'";
                    cmd.ExecuteNonQuery();
                }
                rd.Close();
                cmd.Connection.Close();
                return(Login(userName, userpass));
            }
            else
            {
                return(Login(userName, userpass));
            }
        }
Example #5
0
        public void SetResUnused(string resName, string useType)
        {
            SqlCommand cmd = PmConnections.SchCmd();

            cmd.CommandText = "DELETE FROM wapResLockState WHERE ResName = '" + resName + "' and ResEventType = '" + useType + "'";
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();
        }
Example #6
0
        //查询是否有其他订单是否换班
        private void EndOtherOrder(string resname)
        {
            MUnStartList      unStartList = new MUnStartList();
            List <COrderList> cOrders     = unStartList.GetUnStartOrderList(resname);

            if (cOrders.Count > 0)
            {
                foreach (COrderList item in cOrders)
                {
                    //查询下一个班次是哪天,第几个班次
                    SqlCommand cmd = PmConnections.SchCmd();
                    cmd.CommandText = "SELECT MAX(dayShift) FROM User_MesDailyData WHERE pmResName = '" + item.PmResName + "' and mesDailyDate ='" + PublicFunc.GetDailyDate(thisresname) + "'";
                    SqlDataReader rd = cmd.ExecuteReader();
                    rd.Read();
                    int maxdayshift = Convert.ToInt32(rd[0]);
                    rd.Close();
                    cmd.Connection.Close();
                    int      nextdayshift;
                    DateTime nextdailydate;
                    if (item.DayShift < maxdayshift)
                    {
                        nextdayshift  = item.DayShift + 1;
                        nextdailydate = PublicFunc.GetDailyDate(thisresname);
                    }
                    else
                    {
                        nextdayshift  = 1;
                        nextdailydate = PublicFunc.GetDailyDate(thisresname).AddDays(1);
                    }
                    //先查找这个设备上的下个班次是否有这个订单
                    cmd = PmConnections.SchCmd();
                    //SELECT COUNT(UID) FROM [sch_test].[dbo].[User_MesDailyData] where pmResName = '纽威立式车床17:2' and  mesDailyDate = '2020-6-20' and workID = '0021905001' and dayShift = 1 and productID = '8311280776' and pmOpName = '精车一'
                    cmd.CommandText = "SELECT COUNT(UID) FROM User_MesDailyData WHERE pmResName = '" + thisresname + "' and mesDailyDate = '" + nextdailydate + "' and dayshift = '" + nextdayshift +
                                      "' and workid = '" + item.WorkID + "' and productid = '" + item.ProductID + "' and pmOpName = '" + item.PmOpName + "'";
                    rd = cmd.ExecuteReader();
                    rd.Read();
                    int hasthisorder = Convert.ToInt32(rd[0]);
                    rd.Close();
                    cmd.Connection.Close();

                    if (hasthisorder < 1)
                    {
                        cmd             = PmConnections.SchCmd();
                        cmd.CommandText = "UPDATE User_MesDailyData SET mesDailyDate = '" + nextdailydate + "', dayshift = '" + nextdayshift + "' WHERE UID = '" + item.OrderUID + "'";
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                    }
                    else
                    {
                        cmd             = PmConnections.SchCmd();
                        cmd.CommandText = "UPDATE User_MesDailyData SET TaskFinishState = '5' WHERE UID = '" + item.OrderUID + "'";
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                    }
                }
            }
        }
Example #7
0
        public bool Report_Call(string jsonedata)
        {
            COrderList    mesEvent = JsonConvert.DeserializeObject <COrderList>(jsonedata);
            WriteMesEvent writeMes = new WriteMesEvent();

            if (writeMes.WriteMesEvent_Call(mesEvent, 2))
            {
                //更新mesdailydata
                SqlCommand cmd = PmConnections.SchCmd();
                cmd.CommandText = "SELECT finishedQty,AllfinishedQty,AllJobTaskQty FROM User_MesDailyData WHERE UID = '" + mesEvent.OrderUID + "'";
                SqlDataReader rd = cmd.ExecuteReader();
                rd.Read();
                double serverallfinishedQty = Convert.ToDouble(rd[1]);
                double serverfinishedqty    = Convert.ToDouble(rd[0]);
                double alljobtaskqty        = Convert.ToDouble(rd[2]);
                rd.Close();
                int taskfinishedstate;
                if ((serverallfinishedQty + mesEvent.FinishedQty + mesEvent.FailedQty) == alljobtaskqty)
                {
                    taskfinishedstate = 4;
                }
                else
                {
                    if ((serverfinishedqty + mesEvent.FinishedQty + mesEvent.FailedQty) >= mesEvent.Plannedqty)
                    {
                        taskfinishedstate = 4;
                    }
                    else
                    {
                        taskfinishedstate = 2;
                    }
                }

                cmd.CommandText = "UPDATE User_MesDailyData SET mesResName = '" + mesEvent.MesResName + "', mesOpName = '" + mesEvent.MesOpName + "',finishedQty = finishedQty + '" + (mesEvent.FinishedQty + mesEvent.FailedQty) +
                                  "', failQty = failQty + '" + mesEvent.FailedQty + "', endDateTime = '" + mesEvent.ReportTime + "', updateDateTime = '" + DateTime.Now + "', bgPerson = '" + mesEvent.MesOperator +
                                  "',ScrappedQty = ScrappedQty + '" + mesEvent.ScrappedQty + "', TaskFinishState = '" + taskfinishedstate + "',UserComment = '" + mesEvent.UserComment + " ' WHERE UID = '" + mesEvent.OrderUID + "'";
                cmd.ExecuteNonQuery();
                cmd.CommandText = "UPDATE User_MesDailyData SET AllFinishedQty = AllFinishedQty + '" + (mesEvent.FinishedQty + mesEvent.FailedQty) + "', updateDateTime ='" + DateTime.Now + "' WHERE workID = '" + mesEvent.WorkID +
                                  "' and productID = '" + mesEvent.ProductID + "' and pmOpName = '" + mesEvent.PmOpName + "'";
                int result = cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                if (result > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #8
0
        public void SetResUsed(string empid, string resName, string useType, string lockedStartTime, string lockedEndTime, string eventMessage)
        {
            int        pmuid    = PublicFunc.GetMaxUID("S", "wapResLockState", "PMUID");
            string     username = PublicFunc.GetEmpName(Convert.ToInt32(empid));
            SqlCommand cmd      = PmConnections.SchCmd();

            cmd.CommandText = "INSERT INTO wapResLockState (PMUID,ResName,LockedStartTime,LockedEndTime,LockedPerson,ResEventType,ResEventComment) VALUES ('"
                              + pmuid + "','" + resName + "','" + lockedStartTime + "','" + lockedEndTime + "','" + username + "','" + useType + "','" + eventMessage + "')";
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();
        }
Example #9
0
        public DataTable Operate(string empName)
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PmConnections.SchCmd();

            cmd.CommandText = "select * from wapMesEventRec where MesOperator = '" + empName + "'";
            SqlDataAdapter ad = new SqlDataAdapter(cmd);

            ad.Fill(table);
            ad.Dispose();
            cmd.Connection.Close();
            return(table);
        }
Example #10
0
        public List <string> GetCanResList_Call(string jsonedata)
        {
            COrderList    mesEvent    = JsonConvert.DeserializeObject <COrderList>(jsonedata);
            List <string> canuseres   = new List <string>();
            SqlCommand    cmd         = PmConnections.ModCmd();
            string        thisresname = mesEvent.MesResName;
            string        thisopname  = mesEvent.PmOpName;
            string        thisproduct = mesEvent.ProductID;
            string        usersysid   = PmUser.UserSysID.ToString();

            cmd.CommandText = "SELECT resourceName,capacity FROM vResPrcsOpItem WHERE itemname ='" + thisproduct + "' and operationName = '" + thisopname + "' and sysid = '" + usersysid + "'";
            SqlDataAdapter da      = new SqlDataAdapter(cmd);
            DataTable      canress = new DataTable();

            da.Fill(canress);
            da.Dispose();
            cmd.Connection.Close();
            foreach (DataRow dr in canress.Rows)
            {
                int    rescount = Convert.ToInt32(dr[1]);
                string resname  = dr[0].ToString();
                if (resname == thisresname)
                {
                    continue;
                }
                if (rescount > 1)
                {
                    for (int i = 1; i <= rescount; i++)
                    {
                        if (resname + ":" + i.ToString() == thisresname)
                        {
                            continue;
                        }
                        else
                        {
                            canuseres.Add(resname + ":" + i.ToString());
                        }
                    }
                }
                else if (rescount == 0)
                {
                    continue;
                }
                else
                {
                    canuseres.Add(resname);
                }
            }
            return(canuseres);
        }
Example #11
0
        public Boolean SignOut(string empid)
        {
            SqlCommand cmd = PmConnections.CtrlCmd();

            cmd.CommandText = "delete from wapUserstate where Empid = '" + empid + "'";
            int count = cmd.ExecuteNonQuery();

            cmd.Connection.Close();
            if (count > 0)
            {
                return(true);
            }
            return(false);
        }
Example #12
0
        public bool CanChangePass(string empid, string password)
        {
            SqlCommand cmd = PmConnections.ModCmd();

            cmd.CommandText = "select count(*) from wapEmpList where empID = '" + empid + "' and password = '******'";
            int count = Convert.ToInt32(cmd.ExecuteScalar());

            cmd.Connection.Close();
            if (count > 0)
            {
                return(true);
            }
            return(false);
        }
Example #13
0
        public Boolean HasLogin(string userName, string userGuid)
        {
            SqlCommand cmd = PmConnections.CtrlCmd();

            cmd.CommandText = "select count(empID) from wapUserstate where empID = '" + userName + "' and userGuid = '" + userGuid + "'";
            //int count = Convert.ToInt32(cmd.ExecuteReader());
            int count = Convert.ToInt32(cmd.ExecuteScalar());

            cmd.Connection.Close();
            if (count > 0)
            {
                return(true);
            }
            return(false);
        }
Example #14
0
        public bool UpdateUserinfo(string userinfo)
        {
            CUserInfo  mesEvent = JsonConvert.DeserializeObject <CUserInfo>(userinfo);
            SqlCommand cmd      = PmConnections.ModCmd();

            cmd.CommandText = "UPDATE wapEmpList SET phoneNum = '" + mesEvent.PhoneNumber + "',email = '" + mesEvent.Email + "' WHERE SYSID = '" + mesEvent.UserSysID + "' and empid = '" + mesEvent.EmpID + "'";
            int result = cmd.ExecuteNonQuery();

            if (result == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #15
0
        public bool BeginDown_Call(string orderuid, string resName, string dayshift)
        {
            SqlCommand cmd = PmConnections.SchCmd();

            cmd.CommandText = "UPDATE User_MesDailyData SET pmresname = '" + resName + "', updateDatetime ='" + DateTime.Now + "', bgPerson = '" + PmUser.UserName + "',dayShift = '" + dayshift + "',mesdailydate = '" + DateTime.Now.Date + "' WHERE  UID = '" + orderuid + "'";
            int result = cmd.ExecuteNonQuery();

            cmd.Connection.Close();
            if (result == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #16
0
        public bool OrderAjustmest_Call(string jsonEdata)
        {
            COrderList mesEvent = JsonConvert.DeserializeObject <COrderList>(jsonEdata);
            SqlCommand cmd      = PmConnections.SchCmd();

            cmd.CommandText = "UPDATE User_MesDailyData SET adjustment = '1' WHERE UID = '" + mesEvent.OrderUID + "'";
            int result = cmd.ExecuteNonQuery();

            cmd.Connection.Close();
            if (result == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #17
0
        public DataTable GetUserLog(string empid, int logtype)
        {
            DataTable  table = new DataTable();
            SqlCommand cmd   = PmConnections.CtrlCmd();
            DateTime   start;
            DateTime   end;

            if (logtype == 0)
            {
                end             = DateTime.Now.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
                start           = DateTime.Now.Date;
                cmd.CommandText = "select * from wapUserlog where empID = '" + empid + "'and logTime >= '" + start + "' and logTime <= '" + end + "' ORDER BY logTime DESC";
            }
            else if (logtype == 1)
            {
                end             = DateTime.Now.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
                start           = DateTime.Now.Date.AddDays(-3);
                cmd.CommandText = "select * from wapUserlog where empID = '" + empid + "' and logTime >= '" + start + "' and logTime <= '" + end + "' ORDER BY logTime DESC";
            }
            else if (logtype == 2)
            {
                end             = DateTime.Now.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
                start           = DateTime.Now.Date.AddDays(-7);
                cmd.CommandText = "select * from wapUserlog where empID = '" + empid + "' and logTime >= '" + start + "' and logTime <= '" + end + "' ORDER BY logTime DESC";
            }
            else if (logtype == 3)
            {
                end             = DateTime.Now.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
                start           = DateTime.Now.Date.AddMonths(-1);
                cmd.CommandText = "select * from wapUserlog where empID = '" + empid + "' and logTime >= '" + start + "' and logTime <= '" + end + "' ORDER BY logTime DESC";
            }
            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(table);
            da.Dispose();
            cmd.Connection.Close();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                string mobietype = CreateMobelType(table.Rows[i]["webinfomation"].ToString());
                table.Rows[i]["webinfomation"] = mobietype;
            }
            table.AcceptChanges();
            return(table);
        }
Example #18
0
        public CUserInfo GetInformation(string localGuid, string userEmpid)
        {
            CUserInfo  cUser = new CUserInfo();
            SqlCommand cmd   = PmConnections.CtrlCmd();

            cmd.CommandText = "SELECT userGUID FROM wapUserstate WHERE empID = '" + userEmpid + "'";
            SqlDataReader rd = cmd.ExecuteReader();

            if (rd.Read())
            {
                //可能存在BUG
                string serverUserguid = rd[0].ToString();
                if (serverUserguid == localGuid)
                {
                    cUser.Email               = PmUser.Email;
                    cUser.EmpID               = PmUser.EmpID;
                    cUser.EmpWorkID           = PmUser.EmpWorkID;
                    cUser.FunctionList        = PmUser.FunctionList;
                    cUser.IsAdmin             = PmUser.IsAdmin;
                    cUser.PhoneNumber         = PmUser.PhoneNumber;
                    cUser.UsercusID           = PmUser.UsercusID;
                    cUser.UserDesc            = PmUser.UserDesc;
                    cUser.UserGuid            = PmUser.UserGuid;
                    cUser.UserIpAdress        = PmUser.UserIpAdress;
                    cUser.UserName            = PmUser.UserName;
                    cUser.UserShopUserGroupID = PmUser.UserShopUserGroupID;
                    cUser.UserSysID           = PmUser.UserSysID;
                    cUser.UserSysName         = PmUser.UserSysName;
                    cUser.UserAgent           = PmUser.UserAgent;
                }
                else
                {
                    cUser.AlertMessage = "请不要越权操作!";
                }
            }
            else
            {
                cUser.AlertMessage = "请不要越权操作!";
            }
            return(cUser);
        }
Example #19
0
        public Boolean ChangePass(string empid, string oldpass, string newPass)
        {
            string  pass      = GetSafePass(empid, newPass);
            string  olpass    = GetSafePass(empid, oldpass);
            Boolean canChange = CanChangePass(empid, olpass);

            if (canChange)
            {
                SqlCommand cmd = PmConnections.ModCmd();
                cmd.CommandText = "update wapEmpList set password ='******' where empID = '" + empid + "'";
                int count = cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                if (count > 0)
                {
                    return(true);
                }
                return(false);
            }
            else
            {
                return(false);
            }
        }
Example #20
0
 public bool Resume_Call(string jsonedata)
 {
     COrderList mesEvent = JsonConvert.DeserializeObject<COrderList>(jsonedata);
     WriteMesEvent writeMes = new WriteMesEvent();
     if(writeMes.WriteMesEvent_Call(mesEvent,4))
     {
         SqlCommand cmd = PmConnections.SchCmd();
         cmd.CommandText = "UPDATE User_MesDailyData SET TaskFinishState = '0' WHERE UID = '" + mesEvent.OrderUID + "'";
         int result = cmd.ExecuteNonQuery();
         cmd.Connection.Close();
         if (result == 1)
         {
             return true;
         }
         else
         {
             return false;
         }
     }
     else
     {
         return false;
     }
 }
Example #21
0
        public bool ChangeResource_Call(string jsonedata)
        {
            COrderList    mesEvent = JsonConvert.DeserializeObject <COrderList>(jsonedata);
            WriteMesEvent writeMes = new WriteMesEvent();

            if (writeMes.WriteMesEvent_Call(mesEvent, 5))
            {
                SqlCommand cmd = PmConnections.SchCmd();
                cmd.CommandText = "UPDATE User_MesDailyData SET pmResName  = '" + mesEvent.ChangeResName + "' WHERE UID = '" + mesEvent.OrderUID + "'";
                int result = cmd.ExecuteNonQuery();
                if (result == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #22
0
        /// <summary>
        /// 执行写入mes事件队列的方法
        /// </summary>
        /// <param name="edata">api接收到的数据</param>
        /// <param name="writetype">0:开始切换;1:结束切换;2:报工;3:暂停;4:恢复生产;5:切换设备;6:换班</param>
        /// <returns>SQL执行结果bool值</returns>
        public bool WriteMesEvent_Call(COrderList edata, int writetype)
        {
            SqlCommand cmd    = PmConnections.SchCmd();
            int        maxUID = PublicFunc.GetMaxUID("S", "wapMesEventRec", "PMUID");

            if (writetype == 0)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID) VALUES ('" +
                                  maxUID + "','S','StartChange','开始切换','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID + "','" + edata.ItemDesp +
                                  "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty + "','" + edata.DayShift +
                                  "','" + edata.Plannedqty + "','" + edata.OrderUID + "')";
            }
            else if (writetype == 1)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID) VALUES ('" +
                                  maxUID + "','E','EndChange','结束切换','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID + "','" + edata.ItemDesp +
                                  "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty + "','" + edata.DayShift +
                                  "','" + edata.Plannedqty + "','" + edata.OrderUID + "')";
            }
            else if (writetype == 2)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID,MesAttr1) VALUES ('" +
                                  maxUID + "','R','Report','报工','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID + "','" + edata.ItemDesp +
                                  "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty + "','" + edata.DayShift +
                                  "','" + edata.Plannedqty + "','" + edata.OrderUID + "','" + edata.UserComment + "')";
            }
            else if (writetype == 3)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID) VALUES ('" +
                                  maxUID + "','P','Pause','暂停生产','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID + "','" + edata.ItemDesp +
                                  "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty + "','" + edata.DayShift +
                                  "','" + edata.Plannedqty + "','" + edata.OrderUID + "')";
            }
            else if (writetype == 4)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID) VALUES ('" +
                                  maxUID + "','U','Resume','恢复生产','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID + "','" + edata.ItemDesp +
                                  "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty + "','" + edata.DayShift +
                                  "','" + edata.Plannedqty + "','" + edata.OrderUID + "')";
            }
            else if (writetype == 5)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID) VALUES ('" +
                                  maxUID + "','C','ChangeRes','推送订单到=>" + edata.ChangeResName + "','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID
                                  + "','" + edata.ItemDesp + "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty
                                  + "','" + edata.DayShift + "','" + edata.Plannedqty + "','" + edata.OrderUID + "')";
            }
            else if (writetype == 6)
            {
                cmd.CommandText = @"INSERT INTO wapMesEventRec 
                (PMUID,EventType,EventName,EventMessage,EventTime,ResName,WorkID,OpName,ProductID,Description,JobQty,FinishedQty,MesDate,MesOperator,FailedQty,ScrappedQty,DayShift,PlanQty,OrderUID) VALUES ('" +
                                  maxUID + "','EW','EndWorking','换班','" + DateTime.Now + "','" + edata.MesResName + "','" + edata.WorkID + "','" + edata.MesOpName + "','" + edata.ProductID
                                  + "','" + edata.ItemDesp + "','" + edata.JobQty + "','" + edata.FinishedQty + "','" + DateTime.Now.Date + "','" + edata.MesOperator + "','" + edata.FailedQty + "','" + edata.ScrappedQty
                                  + "','" + edata.DayShift + "','" + edata.Plannedqty + "','" + edata.OrderUID + "')";
            }
            int result = cmd.ExecuteNonQuery();

            cmd.Connection.Close();
            if (result == 1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #23
0
        public List <COrderList> CanDownThisRes_Call(string resname, int dayshift)
        {
            SqlCommand cmd = PmConnections.SchCmd();

            cmd.CommandText = "SELECT * FROM User_MesDailyData WHERE  resCanUsed like '%" + resname.Split(':')[0] + "%' and datatype = 'P' and dailyDate >='" + DateTime.Now + "' and TaskFinishState < '4' ORDER BY workid,productid,pmresname,pmopname,PlanStartTime Desc";
            SqlDataAdapter da   = new SqlDataAdapter(cmd);
            DataTable      data = new DataTable();

            da.Fill(data);
            da.Dispose();
            cmd.Connection.Close();

            //获取现有设备上的工单数据
            cmd.CommandText = "SELECT pmresname,pmopname,workid FROM User_MesDailyData WHERE pmresname = '" + resname + "' and datatype ='P'  and taskfinishstate < 4 and dailydate = '" + DateTime.Now.Date + "' and dayshift = '" + dayshift + "'";
            da = new SqlDataAdapter(cmd);
            DataTable dtthisrestasks = new DataTable();

            da.Fill(dtthisrestasks);
            da.Dispose();
            cmd.Connection.Close();

            //对拉取过来的数据去重
            DataTable newdata = data.Clone();
            string    thisworkid, preworkid = string.Empty;
            string    thisproduct, preproduct = string.Empty;
            string    thisresname, preresname = string.Empty;
            string    thisopname, preopname = string.Empty;

            for (int i = 0; i < data.Rows.Count; i++)
            {
                if (i == 0)
                {
                    preworkid  = data.Rows[i]["workid"].ToString();
                    preproduct = data.Rows[i]["productid"].ToString();
                    preresname = data.Rows[i]["pmresname"].ToString();
                    preopname  = data.Rows[i]["pmopname"].ToString();
                    continue;
                }
                else
                {
                    thisworkid  = data.Rows[i]["workid"].ToString();
                    thisproduct = data.Rows[i]["productid"].ToString();
                    thisresname = data.Rows[i]["pmresname"].ToString();
                    thisopname  = data.Rows[i]["pmopname"].ToString();
                    DataRow[] finddr = dtthisrestasks.Select("pmresname = '" + data.Rows[i]["pmresname"].ToString() + "' and pmopname = '"
                                                             + data.Rows[i]["pmopname"].ToString() + "' and  workid = '" + data.Rows[i]["workid"].ToString() + "'");
                    if (finddr.Count() > 0)
                    {
                        continue;
                    }
                    if (thisworkid == preworkid)
                    {
                        //工单一样,比较产品是否一样
                        if (thisproduct == preproduct)
                        {
                            //产品一样 比较设备是否一样
                            if (thisresname == preresname)
                            {
                                //如果设备一样,比较工序是否一样
                                if (thisopname == preopname)
                                {
                                    continue;
                                }
                                else
                                {
                                    DataRow dr = newdata.NewRow();
                                    dr.ItemArray = data.Rows[i].ItemArray;
                                    newdata.Rows.Add(dr);
                                }
                            }
                            else
                            {
                                //设备不一样 添加
                                DataRow dr = newdata.NewRow();
                                dr.ItemArray = data.Rows[i].ItemArray;
                                newdata.Rows.Add(dr);
                            }
                        }
                        else
                        {
                            //如果产品不一样,添加
                            DataRow dr = newdata.NewRow();
                            dr.ItemArray = data.Rows[i].ItemArray;
                            newdata.Rows.Add(dr);
                        }
                    }
                    else
                    {
                        //工单不一样,直接添加
                        DataRow dr = newdata.NewRow();
                        dr.ItemArray = data.Rows[i].ItemArray;
                        newdata.Rows.Add(dr);
                    }
                    preworkid  = thisworkid;
                    preproduct = thisproduct;
                    preresname = thisresname;
                    preopname  = thisopname;
                }
            }
            DataView dv = newdata.DefaultView;

            dv.Sort = "PlanStartTime ASC";
            newdata = dv.ToTable();

            List <COrderList> orderlist = new List <COrderList>();

            if (newdata.Rows.Count > 0)
            {
                foreach (DataRow item in newdata.Rows)
                {
                    DataRow    checkeddata = PublicFunc.CheckEmptyVal(data, item);
                    COrderList cOrder      = new COrderList()
                    {
                        MesResName      = checkeddata["MesResName"].ToString(),
                        MesOpName       = checkeddata["MesOpName"].ToString(),
                        MesOperator     = checkeddata["bgPerson"].ToString(),
                        WorkID          = checkeddata["WorkID"].ToString(),
                        PlanStartTime   = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(checkeddata["PlanStartTime"]), 1),
                        Planendtime     = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(checkeddata["Planendtime"]), 1),
                        PmResName       = checkeddata["PmResName"].ToString(),
                        PmOpName        = checkeddata["PmOpName"].ToString(),
                        ProductID       = checkeddata["ProductID"].ToString(),
                        TaskFinishState = Convert.ToInt32(checkeddata["TaskFinishState"]),
                        FinishedQty     = Convert.ToDouble(checkeddata["FinishedQty"]),
                        Plannedqty      = Convert.ToDouble(checkeddata["Plannedqty"]),
                        FailedQty       = Convert.ToDouble(checkeddata["FailQty"]),
                        AllFinishedQty  = Convert.ToDouble(checkeddata["AllFinishedQty"]),
                        JobQty          = Convert.ToDouble(checkeddata["JobQty"]),
                        ItemAttr1       = checkeddata["ItemAttr1"].ToString(),
                        ItemAttr2       = checkeddata["ItemAttr2"].ToString(),
                        ItemAttr3       = checkeddata["ItemAttr3"].ToString(),
                        ItemAttr4       = checkeddata["ItemAttr4"].ToString(),
                        DayShift        = Convert.ToInt32(checkeddata["DayShift"]),
                        ItemDesp        = checkeddata["itemDesp"].ToString(),
                        WorkHours       = Convert.ToDouble(checkeddata["workHour"]),
                        SetupTime       = Convert.ToDouble(checkeddata["setupTime"]),
                        OrderUID        = Convert.ToInt32(checkeddata["UID"]),
                        BomComused      = Convert.ToDouble(checkeddata["AllJobTaskqty"]) / Convert.ToDouble(checkeddata["JobQty"]),
                        CanReport       = true,
                        CanReportQty    = Convert.ToDouble(checkeddata["AllJobTaskqty"]) - Convert.ToDouble(checkeddata["AllFinishedQty"]),
                        ChangeResName   = string.Empty
                    };
                    orderlist.Add(cOrder);
                }
                bool hasoutput = false;
                foreach (COrderList c in orderlist)
                {
                    if (c.TaskFinishState != 0 && c.TaskFinishState != 3)
                    {
                        hasoutput = true;
                    }
                    else
                    {
                        continue;
                    }
                }
                if (hasoutput == true)
                {
                    foreach (COrderList c in orderlist)
                    {
                        if (c.TaskFinishState != 0)
                        {
                            c.CanReport = true;
                        }
                        else
                        {
                            c.CanReport = false;
                        }
                    }
                }
            }
            //处理重复的数据
            return(orderlist);
        }
Example #24
0
        public COpFinish GetOpFinishedData(string jsonedata)
        {
            COrderList order = JsonConvert.DeserializeObject <COrderList>(jsonedata);
            SqlCommand cmd   = PmConnections.SchCmd();

            //获取计划数据
            cmd.CommandText = "SELECT * FROM User_MesDailyData WHERE UID = '" + order.OrderUID + "'";
            SqlDataReader rd = cmd.ExecuteReader();

            rd.Read();
            DateTime planstarttime     = Convert.ToDateTime(rd["planStartTime"]);
            DateTime planendtime       = Convert.ToDateTime(rd["planEndTime"]);
            double   plannedsetuphours = Convert.ToDouble(rd["setupTime"]);
            int      setuptime         = Convert.ToInt32(plannedsetuphours * 60);
            double   plannedqty        = Convert.ToDouble(rd["plannedQty"]);
            double   plannedhours      = Convert.ToDouble(rd["workHour"]);
            double   failedqty         = Convert.ToDouble(rd["failQty"]);
            double   finishedqty       = Convert.ToDouble(rd["finishedqty"]);

            rd.Close();
            DateTime plansetupstarttime = planstarttime.AddMinutes(-setuptime);
            DateTime plansetupendtime   = planstarttime;

            //获取实际数据
            cmd.CommandText = "SELECT * FROM wapMesEventRec WHERE OrderUID = '" + order.OrderUID + "' order by EventTime";
            SqlDataAdapter da        = new SqlDataAdapter(cmd);
            DataTable      dtmesdata = new DataTable();

            da.Fill(dtmesdata);
            da.Dispose();
            cmd.Connection.Close();
            //计算数据
            COpFinish returndata = new COpFinish
            {
                PlanStartTime      = PublicFunc.ForMatDateTimeStr(planstarttime, 1),
                PlanEndTime        = PublicFunc.ForMatDateTimeStr(planendtime, 1),
                PlannedHours       = plannedhours * 3600,
                PlannedQty         = plannedqty,
                PlanSetupStartTime = PublicFunc.ForMatDateTimeStr(plansetupstarttime, 1),
                PlanSetupEndTime   = PublicFunc.ForMatDateTimeStr(plansetupendtime, 1),
                PlannedSetupHours  = plannedsetuphours * 3600,
                FinishedQty        = finishedqty,
                FailedQty          = failedqty
            };
            //开始计算mes数据
            //获取mes切换开始时间
            double messetuphours = 0;
            double meshours      = 0;

            for (int i = 0; i < dtmesdata.Rows.Count; i++)
            {
                if (dtmesdata.Rows[i]["EventType"].ToString().Equals("S"))
                {
                    messetuphours += (Convert.ToDateTime(dtmesdata.Rows[i + 1]["EventTime"]) - Convert.ToDateTime(dtmesdata.Rows[i]["EventTime"])).TotalSeconds;
                    if (dtmesdata.Rows[i + 1]["EventType"].ToString().Equals("E"))
                    {
                        returndata.MesSetupStartTime = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(dtmesdata.Rows[i]["EventTime"]), 1);
                        returndata.MesSetupEndTime   = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(dtmesdata.Rows[i + 1]["EventTime"]), 1);
                    }
                }
                if (dtmesdata.Rows[i]["EventType"].ToString().Equals("E"))
                {
                    if (dtmesdata.Rows[i + 1]["EventType"].ToString().Equals("R"))
                    {
                        meshours += (Convert.ToDateTime(dtmesdata.Rows[i + 1]["EventTime"]) - Convert.ToDateTime(dtmesdata.Rows[i]["EventTime"])).TotalSeconds;
                        returndata.MesStartTime = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(dtmesdata.Rows[i]["EventTime"]), 1);
                        returndata.MesEndTime   = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(dtmesdata.Rows[i + 1]["EventTime"]), 1);
                    }
                }
            }
            returndata.MesSetupHours = Convert.ToDouble(messetuphours.ToString("0.00"));
            returndata.MesHours      = Convert.ToDouble(meshours.ToString("0.00"));
            return(returndata);
        }
Example #25
0
        public List <COrderList> GetUnStartOrderList(string resName)
        {
            int        dayshift     = PublicFunc.GetDayShift(resName);
            DateTime   mesdailydate = PublicFunc.GetDailyDate(resName);
            SqlCommand cmd          = PmConnections.SchCmd();

            cmd.CommandText = "SELECT * FROM User_MesDailyData WHERE pmResName = '" + resName + "' and datatype = 'P' and mesdailyDate ='" + mesdailydate.Date + "' and TaskFinishState < '4' and dayShift = '" + dayshift + "' ORDER BY mesdailyDate,planStartTime";
            //cmd.CommandText = "SELECT * FROM User_MesDailyData WHERE pmResName = '" + resName + "' and datatype = 'P'and TaskFinishState < '4' and dayShift = '" + shift + "'ORDER BY dailyDate,planStartTime";
            SqlDataAdapter da         = new SqlDataAdapter(cmd);
            DataTable      returndata = new DataTable();

            da.Fill(returndata);
            da.Dispose();
            cmd.Connection.Close();
            if (returndata.Rows.Count < 1)
            {
                return(null);
            }
            else
            {
                List <COrderList> LiReturnData = new List <COrderList>();
                foreach (DataRow item in returndata.Rows)
                {
                    DataRow    checkeddata = PublicFunc.CheckEmptyVal(returndata, item);
                    COrderList li          = new COrderList
                    {
                        MesResName        = checkeddata["MesResName"].ToString(),
                        MesOpName         = checkeddata["MesOpName"].ToString(),
                        MesOperator       = checkeddata["bgPerson"].ToString(),
                        WorkID            = checkeddata["WorkID"].ToString(),
                        PlanStartTime     = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(checkeddata["PlanStartTime"]), 1),
                        Planendtime       = PublicFunc.ForMatDateTimeStr(Convert.ToDateTime(checkeddata["Planendtime"]), 1),
                        PmResName         = checkeddata["PmResName"].ToString(),
                        PmOpName          = checkeddata["PmOpName"].ToString(),
                        ProductID         = checkeddata["ProductID"].ToString(),
                        TaskFinishState   = Convert.ToInt32(checkeddata["TaskFinishState"]),
                        FinishedQty       = Convert.ToDouble(checkeddata["FinishedQty"]),
                        Plannedqty        = Convert.ToDouble(checkeddata["Plannedqty"]),
                        FailedQty         = Convert.ToDouble(checkeddata["FailQty"]),
                        AllFinishedQty    = Convert.ToDouble(checkeddata["AllFinishedQty"]),
                        JobQty            = Convert.ToDouble(checkeddata["JobQty"]),
                        ItemAttr1         = checkeddata["ItemAttr1"].ToString(),
                        ItemAttr2         = checkeddata["ItemAttr2"].ToString(),
                        ItemAttr3         = checkeddata["ItemAttr3"].ToString(),
                        ItemAttr4         = checkeddata["ItemAttr4"].ToString(),
                        DayShift          = Convert.ToInt32(checkeddata["DayShift"]),
                        ItemDesp          = checkeddata["itemDesp"].ToString(),
                        WorkHours         = Convert.ToDouble(checkeddata["workHour"]),
                        SetupTime         = Convert.ToDouble(checkeddata["setupTime"]),
                        OrderUID          = Convert.ToInt32(checkeddata["UID"]),
                        BomComused        = Convert.ToDouble(checkeddata["AllJobTaskqty"]) / Convert.ToDouble(checkeddata["JobQty"]),
                        CanReport         = true,
                        CanReportQty      = Convert.ToDouble(checkeddata["AllJobTaskqty"]) - Convert.ToDouble(checkeddata["AllFinishedQty"]) - Convert.ToDouble(checkeddata["FailQty"]),
                        ChangeResName     = string.Empty,
                        ReportTime        = Convert.ToDateTime(checkeddata["updateDatetime"]),
                        JobDemandDay      = Convert.ToDateTime(checkeddata["jobDemandDay"]),
                        ScrappedQty       = Convert.ToDouble(checkeddata["ScrappedQty"]),
                        Ajustment         = Convert.ToBoolean(checkeddata["adjustment"]),
                        UnitPrice         = Convert.ToDouble(checkeddata["unitPrice"]),
                        MesSetupStartTime = Convert.ToDateTime(checkeddata["setupStartTime"]),
                        MesSetupEndTime   = Convert.ToDateTime(checkeddata["setupEndTime"]),
                        MesStartTime      = Convert.ToDateTime(checkeddata["startDateTime"]),
                        MesEndTime        = Convert.ToDateTime(checkeddata["endDateTime"]),
                        UserComment       = checkeddata["userComment"].ToString()
                    };
                    LiReturnData.Add(li);
                }
                //public DateTime MesStartTime { get; set; }
                //public DateTime MesEndTime { get; set; }
                //public DateTime MesSetupStartTime { get; set; }
                //public DateTime MesSetupEndtime { get; set; }
                bool hasoutput = false;
                foreach (COrderList c in LiReturnData)
                {
                    if (c.TaskFinishState != 0 && c.TaskFinishState != 3)
                    {
                        hasoutput = true;
                    }
                    else
                    {
                        continue;
                    }
                }
                if (hasoutput == true)
                {
                    foreach (COrderList c in LiReturnData)
                    {
                        if (c.TaskFinishState != 0)
                        {
                            c.CanReport = true;
                        }
                        else
                        {
                            c.CanReport = false;
                        }
                    }
                }
                return(LiReturnData);
            }
        }
Example #26
0
        public bool EndWork(string jsonedata)
        {
            COrderList    mesEvent = JsonConvert.DeserializeObject <COrderList>(jsonedata);
            WriteMesEvent writeMes = new WriteMesEvent();

            if (writeMes.WriteMesEvent_Call(mesEvent, 6))
            {
                thisresname = mesEvent.MesResName;
                SqlDataReader rd;
                SqlCommand    cmd;
                int           taskfinishedstate = -1;
                if (mesEvent.TaskFinishState == 2)
                {
                    //更新mesdailydata
                    cmd             = PmConnections.SchCmd();
                    cmd.CommandText = "SELECT finishedQty,AllfinishedQty,AllJobTaskQty FROM User_MesDailyData WHERE UID = '" + mesEvent.OrderUID + "'";
                    rd = cmd.ExecuteReader();
                    rd.Read();
                    double serverallfinishedQty = Convert.ToDouble(rd[1]);
                    double serverfinishedqty    = Convert.ToDouble(rd[0]);
                    double alljobtaskqty        = Convert.ToDouble(rd[2]);
                    rd.Close();
                    if ((serverallfinishedQty + mesEvent.FinishedQty + mesEvent.FailedQty) == alljobtaskqty)
                    {
                        taskfinishedstate = 4;
                    }
                    else
                    {
                        if ((serverfinishedqty + mesEvent.FinishedQty + mesEvent.FailedQty) >= mesEvent.Plannedqty)
                        {
                            taskfinishedstate = 4;
                        }
                        else
                        {
                            taskfinishedstate = 2;
                        }
                    }

                    cmd.CommandText = "UPDATE User_MesDailyData SET mesResName = '" + mesEvent.MesResName + "', mesOpName = '" + mesEvent.MesOpName + "',finishedQty = finishedQty + '" + (mesEvent.FinishedQty + mesEvent.FailedQty) +
                                      "', failQty = failQty + '" + mesEvent.FailedQty + "', endDateTime = '" + mesEvent.ReportTime + "', updateDateTime = '" + DateTime.Now + "', bgPerson = '" + mesEvent.MesOperator +
                                      "',ScrappedQty = ScrappedQty + '" + mesEvent.ScrappedQty + "', TaskFinishState = '" + taskfinishedstate + "' WHERE UID = '" + mesEvent.OrderUID + "'";
                    cmd.ExecuteNonQuery();
                    cmd.CommandText = "UPDATE User_MesDailyData SET AllFinishedQty = AllFinishedQty + '" + (mesEvent.FinishedQty + mesEvent.FailedQty) + "', updateDateTime ='" + DateTime.Now + "' WHERE workID = '" + mesEvent.WorkID +
                                      "' and productID = '" + mesEvent.ProductID + "' and pmOpName = '" + mesEvent.PmOpName + "'";
                    cmd.ExecuteNonQuery();
                    cmd.Connection.Close();
                }

                //查询下一个班次是哪天,第几个班次
                cmd             = PmConnections.SchCmd();
                cmd.CommandText = "SELECT MAX(dayShift) FROM User_MesDailyData WHERE pmResName = '" + mesEvent.PmResName + "' and mesDailyDate ='" + PublicFunc.GetDailyDate(thisresname) + "'";
                rd = cmd.ExecuteReader();
                rd.Read();
                int maxdayshift = Convert.ToInt32(rd[0]);
                rd.Close();
                cmd.Connection.Close();
                int      nextdayshift;
                DateTime nextdailydate;
                if (mesEvent.DayShift < maxdayshift)
                {
                    nextdayshift  = mesEvent.DayShift + 1;
                    nextdailydate = PublicFunc.GetDailyDate(thisresname);
                }
                else
                {
                    nextdayshift  = 1;
                    nextdailydate = PublicFunc.GetDailyDate(thisresname).AddDays(1);
                }
                //先查找这个设备上的下个班次是否有这个订单
                cmd = PmConnections.SchCmd();
                //SELECT COUNT(UID) FROM [sch_test].[dbo].[User_MesDailyData] where pmResName = '纽威立式车床17:2' and  mesDailyDate = '2020-6-20' and workID = '0021905001' and dayShift = 1 and productID = '8311280776' and pmOpName = '精车一'
                cmd.CommandText = "SELECT COUNT(UID) FROM User_MesDailyData WHERE pmResName = '" + thisresname + "' and mesDailyDate = '" + nextdailydate + "' and dayshift = '" + nextdayshift +
                                  "' and workid = '" + mesEvent.WorkID + "' and productid = '" + mesEvent.ProductID + "' and pmOpName = '" + mesEvent.PmOpName + "'";
                rd = cmd.ExecuteReader();
                rd.Read();
                int hasthisorder = Convert.ToInt32(rd[0]);
                rd.Close();
                cmd.Connection.Close();
                if (taskfinishedstate == 4)
                {
                    EndOtherOrder(thisresname);
                    return(true);
                }
                else
                {
                    if (hasthisorder < 1)
                    {
                        cmd             = PmConnections.SchCmd();
                        cmd.CommandText = "UPDATE User_MesDailyData SET mesDailyDate = '" + nextdailydate + "', dayshift = '" + nextdayshift + "' WHERE UID = '" + mesEvent.OrderUID + "'";
                        int result = cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                        if (result > 0)
                        {
                            EndOtherOrder(thisresname);
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        cmd             = PmConnections.SchCmd();
                        cmd.CommandText = "UPDATE User_MesDailyData SET TaskFinishState = '5' WHERE UID = '" + mesEvent.OrderUID + "'";
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                        EndOtherOrder(thisresname);
                        return(true);
                    }
                }
            }
            else
            {
                return(false);
            }
        }
Example #27
0
        public CLogin Login(string userName, string userPass)
        {
            if (CUserInfo.LogedUserInfo == null)
            {
                CUserInfo.LogedUserInfo = new Dictionary <string, string>();
            }
            // 获取用户的IP地址和浏览器信息
            SqlCommand cmd = PmConnections.ModCmd();

            cmd.CommandText = "SELECT *  FROM wapEmpList WHERE " + PmSettings.LoginColName + " = '" + userName + "'";
            DataTable      dtuserdata  = new DataTable();
            SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);

            dataAdapter.Fill(dtuserdata);
            dataAdapter.Dispose();
            cmd.Connection.Close();
            if (dtuserdata.Rows.Count > 0)
            {
                DataRow data = PublicFunc.CheckEmptyVal(dtuserdata.Clone(), dtuserdata.Rows[0]);
                PmUser.EmpID               = Convert.ToInt32(data["empID"]);
                PmUser.UserName            = data["empName"].ToString();
                PmUser.EmpWorkID           = data["empWorkID"].ToString();
                PmUser.UserDesc            = data["dept"].ToString();
                PmUser.PhoneNumber         = data["phoneNum"].ToString();
                PmUser.Email               = data["email"].ToString();
                PmUser.UserSysID           = Convert.ToInt32(data["sysID"]);
                PmUser.UsercusID           = Convert.ToInt32(data["cusID"]);
                PmUser.UserShopUserGroupID = data["shopUserGroupID"].ToString();
                PmUser.UserSysName         = PublicFunc.GetSysName(PmUser.UserSysID);
                PmUser.UserIpAdress        = UserIP;
                PmUser.UserPass            = userPass;
                PmUser.UserAgent           = UserAgent;
            }
            CLogin login = new CLogin();

            //查询是否有这个用户名
            if (dtuserdata.Rows.Count == 0)
            {
                login.LoginState = 0;
                login.Message    = "没有这个用户名.";
            }
            //判断密码是否正确
            else
            {
                //服务器获取登录状态
                cmd             = PmConnections.CtrlCmd();
                cmd.CommandText = "SELECT * FROM wapUserstate WHERE empid = '" + userName + "'";
                DataTable dtuserstate = new DataTable();
                dataAdapter = new SqlDataAdapter(cmd);
                dataAdapter.Fill(dtuserstate);
                dataAdapter.Dispose();
                cmd.Connection.Close();
                //判断是否是登录状态
                if (dtuserstate.Rows.Count > 0)
                {
                    //查询用户是否在线
                    if (Convert.ToBoolean(dtuserstate.Rows[0]["online"]))
                    {
                        //用户在线,返回在线消息
                        login.LoginState = 2;
                        login.Message    = "用户已经在IP:" + dtuserstate.Rows[0]["userIpaddress"] + " 上登陆.";
                    }
                    else
                    {
                        //用户不在线,但是密码错误
                        DateTime lasterrortime = Convert.ToDateTime(dtuserstate.Rows[0]["errorTime"]);
                        int      errortimes    = Convert.ToInt32(dtuserstate.Rows[0]["errorTimes"]);
                        int      haslogintimes = pwderrTimes - errortimes;
                        if (haslogintimes > 0)
                        {
                            //可以再次登录
                            if (userPass == dtuserdata.Rows[0]["password"].ToString())
                            {
                                //密码正确,返回登录信息,记录用户为正常登录
                                login.LoginState = 1;
                                login.Message    = "登录成功.";
                                login.UserGuiD   = Guid.NewGuid().ToString();
                                PmUser.UserGuid  = login.UserGuiD;
                                login.EmpID      = PmUser.EmpID;
                                if (CUserInfo.LogedUserInfo.ContainsKey(PmUser.EmpID.ToString()))
                                {
                                    CUserInfo.LogedUserInfo[PmUser.EmpID.ToString()] = PmUser.UserGuid;
                                }
                                else
                                {
                                    CUserInfo.LogedUserInfo.Add(PmUser.EmpID.ToString(), PmUser.UserGuid);
                                }
                                //更新用户信息类
                                PmUser.UserGuid = login.UserGuiD;
                                //查询用户是不是管理员
                                PmUser.IsAdmin = IsAdmin(PmUser.EmpID, PmUser.UserSysID);
                                //获取用户的功能列表
                                PmUser.FunctionList = new List <string>();
                                if (PmUser.IsAdmin == true)
                                {
                                    PmUser.FunctionList.Add("systemsetting");
                                    PmUser.FunctionList.Add("reportsystem");
                                    PmUser.FunctionList.Add("datacenter");
                                    PmUser.FunctionList.Add("planboard");
                                }
                                else
                                {
                                    cmd             = PmConnections.ModCmd();
                                    cmd.CommandText = "SELECT shopUsergroupid FROM wapUser WHERE userName in (SELECT USERNAME FROM wapEmpUserMap WHERE empid = '" + PmUser.EmpID + "')";
                                    SqlDataReader rd = cmd.ExecuteReader();
                                    while (rd.Read())
                                    {
                                        if (rd[0].ToString().ToUpper() == "CFM")
                                        {
                                            PmUser.FunctionList.Add("reportsystem");
                                        }
                                        if (rd[0].ToString().ToUpper() == "REP")
                                        {
                                            PmUser.FunctionList.Add("reportsystem");
                                        }
                                        if (rd[0].ToString().ToUpper() == "VIEW")
                                        {
                                            PmUser.FunctionList.Add("datacenter");
                                        }
                                        if (rd[0].ToString().ToUpper() == "BOARD")
                                        {
                                            PmUser.FunctionList.Add("planboard");
                                        }
                                    }
                                    rd.Close();
                                    cmd.Connection.Close();
                                }
                                //更新登录状态,这里是update
                                cmd             = PmConnections.CtrlCmd();
                                cmd.CommandText = "UPDATE wapUserstate SET userIpaddress = '" + PmUser.UserIpAdress + "',onLine = '1',errorTimes='0',errorTime='" + DateTime.Now + "',message = '登录成功',userGuid = '" + PmUser.UserGuid + "'WHERE empid = '" + GetUpdateVal() + "'";
                                cmd.ExecuteNonQuery();
                                cmd.Connection.Close();
                                PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "登陆成功.", UserAgent);
                            }
                            else
                            {
                                //密码错误,返回登录信息,记录用户密码错误
                                errortimes++;
                                login.LoginState = 0;
                                login.Message    = "用户密码错误!再输入" + (3 - errortimes).ToString() + "次错误密码后,账号将被锁定5分钟.";
                                //更新登录状态,这里是update
                                cmd             = PmConnections.CtrlCmd();
                                cmd.CommandText = "UPDATE wapUserstate SET userIpaddress = '" + PmUser.UserIpAdress + "',onLine = '0',errorTimes='" + errortimes + "',errorTime='" + DateTime.Now + "',message = '密码错误',userGuid = '" + PmUser.UserGuid + "'WHERE empid = '" + GetUpdateVal() + "'";
                                cmd.ExecuteNonQuery();
                                cmd.Connection.Close();
                                PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "密码错误,错误次数:" + errortimes, UserAgent);
                            }
                        }
                        else
                        {
                            if ((DateTime.Now - lasterrortime).TotalSeconds > 300)
                            {
                                //可以验证密码登录
                                if (userPass == dtuserdata.Rows[0]["password"].ToString())
                                {
                                    login.LoginState = 1;
                                    login.Message    = "登录成功.";
                                    login.UserGuiD   = Guid.NewGuid().ToString();
                                    PmUser.UserGuid  = login.UserGuiD;
                                    login.EmpID      = PmUser.EmpID;
                                    if (CUserInfo.LogedUserInfo.ContainsKey(PmUser.EmpID.ToString()))
                                    {
                                        CUserInfo.LogedUserInfo[PmUser.EmpID.ToString()] = PmUser.UserGuid;
                                    }
                                    else
                                    {
                                        CUserInfo.LogedUserInfo.Add(PmUser.EmpID.ToString(), PmUser.UserGuid);
                                    }
                                    //更新用户信息类
                                    PmUser.UserGuid = login.UserGuiD;
                                    //查询用户是不是管理员
                                    PmUser.IsAdmin = IsAdmin(PmUser.EmpID, PmUser.UserSysID);
                                    //获取用户的功能列表
                                    PmUser.FunctionList = new List <string>();
                                    if (PmUser.IsAdmin == true)
                                    {
                                        PmUser.FunctionList.Add("systemsetting");
                                        PmUser.FunctionList.Add("reportsystem");
                                        PmUser.FunctionList.Add("datacenter");
                                        PmUser.FunctionList.Add("planboard");
                                    }
                                    else
                                    {
                                        cmd             = PmConnections.ModCmd();
                                        cmd.CommandText = "SELECT shopUSergroupid FROM wapUser WHERE userName in (SELECT USERNAME FROM wapEmpUserMap WHERE empid = '" + PmUser.EmpID + "') and sysid = '" + PmUser.UserSysID + "'";
                                        SqlDataReader rd = cmd.ExecuteReader();
                                        while (rd.Read())
                                        {
                                            if (rd[0].ToString().ToUpper() == "CFM")
                                            {
                                                PmUser.FunctionList.Add("reportsystem");
                                            }
                                            if (rd[0].ToString().ToUpper() == "REP")
                                            {
                                                PmUser.FunctionList.Add("reportsystem");
                                            }
                                            if (rd[0].ToString().ToUpper() == "VIEW")
                                            {
                                                PmUser.FunctionList.Add("datacenter");
                                            }
                                            if (rd[0].ToString().ToUpper() == "BOARD")
                                            {
                                                PmUser.FunctionList.Add("planboard");
                                            }
                                        }
                                        rd.Close();
                                        cmd.Connection.Close();
                                    }
                                    //更新登录状态,这里是update
                                    cmd             = PmConnections.CtrlCmd();
                                    cmd.CommandText = "UPDATE wapUserstate SET userIpaddress = '" + PmUser.UserIpAdress + "',onLine = '1',errorTimes='0',errorTime='" + DateTime.Now + "',message = '登录成功',userGuid = '" + PmUser.UserGuid + "' WHERE empid = '" + GetUpdateVal() + "'";
                                    cmd.ExecuteNonQuery();
                                    cmd.Connection.Close();
                                    PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "登陆成功.", UserAgent);
                                }
                                //用户密码错误记录密码错误次数
                                else
                                {
                                    //删除登录状态,重新登录
                                    cmd             = PmConnections.CtrlCmd();
                                    cmd.CommandText = "DELETE FROM wapUserstate WHERE empid = '" + GetUpdateVal() + "'";
                                    cmd.ExecuteNonQuery();
                                    cmd.Connection.Close();
                                    //正常退出的用户,判断用户密码是否正确
                                    if (userPass == dtuserdata.Rows[0]["password"].ToString())
                                    {
                                        //密码正确,返回登录信息,记录用户为正常登录
                                        login.LoginState = 1;
                                        login.Message    = "登录成功.";
                                        login.UserGuiD   = Guid.NewGuid().ToString();
                                        PmUser.UserGuid  = login.UserGuiD;
                                        login.EmpID      = PmUser.EmpID;
                                        if (CUserInfo.LogedUserInfo.ContainsKey(PmUser.EmpID.ToString()))
                                        {
                                            CUserInfo.LogedUserInfo[PmUser.EmpID.ToString()] = PmUser.UserGuid;
                                        }
                                        else
                                        {
                                            CUserInfo.LogedUserInfo.Add(PmUser.EmpID.ToString(), PmUser.UserGuid);
                                        }
                                        //更新用户信息类
                                        PmUser.UserGuid = login.UserGuiD;
                                        //查询用户是不是管理员
                                        PmUser.IsAdmin = IsAdmin(PmUser.EmpID, PmUser.UserSysID);
                                        //获取用户的功能列表
                                        PmUser.FunctionList = new List <string>();
                                        if (PmUser.IsAdmin == true)
                                        {
                                            PmUser.FunctionList.Add("systemsetting");
                                            PmUser.FunctionList.Add("reportsystem");
                                            PmUser.FunctionList.Add("datacenter");
                                            PmUser.FunctionList.Add("planboard");
                                        }
                                        else
                                        {
                                            cmd             = PmConnections.ModCmd();
                                            cmd.CommandText = "SELECT shopUSergroupid FROM wapUser WHERE userName in (SELECT USERNAME FROM wapEmpUserMap WHERE empid = '" + PmUser.EmpID + "') and sysid = '" + PmUser.UserSysID + "'";
                                            SqlDataReader rd = cmd.ExecuteReader();
                                            while (rd.Read())
                                            {
                                                if (rd[0].ToString().ToUpper() == "CFM")
                                                {
                                                    PmUser.FunctionList.Add("reportsystem");
                                                }
                                                if (rd[0].ToString().ToUpper() == "REP")
                                                {
                                                    PmUser.FunctionList.Add("reportsystem");
                                                }
                                                if (rd[0].ToString().ToUpper() == "VIEW")
                                                {
                                                    PmUser.FunctionList.Add("datacenter");
                                                }
                                                if (rd[0].ToString().ToUpper() == "BOARD")
                                                {
                                                    PmUser.FunctionList.Add("planboard");
                                                }
                                            }
                                            rd.Close();
                                            cmd.Connection.Close();
                                        }
                                        //更新登录状态
                                        cmd             = PmConnections.CtrlCmd();
                                        cmd.CommandText = "INSERT wapUserstate (empID,empName,userPass,userIpaddress,onLine,errorTimes,errorTime,message,userGuid) VALUES ('" + GetUpdateVal() + "','"
                                                          + PmUser.UserName + "','" + PmUser.UserPass + "','" + PmUser.UserIpAdress + "','1','0','" + DateTime.Now + "','登录成功','" + PmUser.UserGuid + "')";
                                        cmd.ExecuteNonQuery();
                                        cmd.Connection.Close();
                                        if (CUserInfo.LogedUserInfo.ContainsKey(PmUser.UserName))
                                        {
                                            CUserInfo.LogedUserInfo[PmUser.UserName] = PmUser.UserGuid;
                                        }
                                        else
                                        {
                                            CUserInfo.LogedUserInfo.Add(PmUser.UserName, PmUser.UserGuid);
                                        }
                                        PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "登陆成功.", UserAgent);
                                    }
                                    else
                                    {
                                        //密码错误,返回登录信息,记录用户密码错误
                                        login.LoginState = 0;
                                        login.Message    = "用户密码错误!再输入2次错误密码后,账号将被锁定5分钟.";
                                        //更新登录状态
                                        cmd             = PmConnections.CtrlCmd();
                                        cmd.CommandText = "INSERT wapUserstate (empID,empName,userPass,userIpaddress,onLine,errorTimes,errorTime,message,userGuid) VALUES ('" + GetUpdateVal() + "','"
                                                          + PmUser.UserName + "','" + PmUser.UserPass + "','" + PmUser.UserIpAdress + "','0','1','" + DateTime.Now + "','密码错误','" + PmUser.UserGuid + "')";
                                        cmd.ExecuteNonQuery();
                                        cmd.Connection.Close();
                                        PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "密码错误,错误次数:1", UserAgent);
                                    };
                                }
                            }
                            else
                            {
                                login.LoginState = 0;
                                login.Message    = "用户被锁定,请在" + (300 - (DateTime.Now - lasterrortime).TotalSeconds).ToString("0") + "秒后登陆.";
                                PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户锁定", "用户由于密码错误超过3次,用户锁定.", UserAgent);
                            }
                        }
                    }
                }
                else
                {
                    //正常退出的用户,判断用户密码是否正确
                    if (userPass == dtuserdata.Rows[0]["password"].ToString())
                    {
                        //密码正确,返回登录信息,记录用户为正常登录
                        login.LoginState = 1;
                        login.Message    = "登录成功.";
                        login.UserGuiD   = Guid.NewGuid().ToString();
                        PmUser.UserGuid  = login.UserGuiD;
                        login.EmpID      = PmUser.EmpID;
                        if (CUserInfo.LogedUserInfo.ContainsKey(PmUser.EmpID.ToString()))
                        {
                            CUserInfo.LogedUserInfo[PmUser.EmpID.ToString()] = PmUser.UserGuid;
                        }
                        else
                        {
                            CUserInfo.LogedUserInfo.Add(PmUser.EmpID.ToString(), PmUser.UserGuid);
                        }
                        //更新用户信息类
                        PmUser.UserGuid = login.UserGuiD;
                        //查询用户是不是管理员
                        PmUser.IsAdmin = IsAdmin(PmUser.EmpID, PmUser.UserSysID);
                        //获取用户的功能列表
                        PmUser.FunctionList = new List <string>();
                        if (PmUser.IsAdmin == true)
                        {
                            PmUser.FunctionList.Add("systemsetting");
                            PmUser.FunctionList.Add("reportsystem");
                            PmUser.FunctionList.Add("datacenter");
                            PmUser.FunctionList.Add("planboard");
                        }
                        else
                        {
                            cmd             = PmConnections.ModCmd();
                            cmd.CommandText = "SELECT shopUSergroupid FROM wapUser WHERE userName in (SELECT USERNAME FROM wapEmpUserMap WHERE empid = '" + PmUser.EmpID + "') and sysid = '" + PmUser.UserSysID + "'";
                            SqlDataReader rd = cmd.ExecuteReader();
                            while (rd.Read())
                            {
                                if (rd[0].ToString().ToUpper() == "CFM")
                                {
                                    PmUser.FunctionList.Add("reportsystem");
                                }
                                if (rd[0].ToString().ToUpper() == "REP")
                                {
                                    PmUser.FunctionList.Add("reportsystem");
                                }
                                if (rd[0].ToString().ToUpper() == "VIEW")
                                {
                                    PmUser.FunctionList.Add("datacenter");
                                }
                                if (rd[0].ToString().ToUpper() == "BOARD")
                                {
                                    PmUser.FunctionList.Add("planboard");
                                }
                            }
                            rd.Close();
                            cmd.Connection.Close();
                        }
                        //更新登录状态
                        cmd             = PmConnections.CtrlCmd();
                        cmd.CommandText = "INSERT wapUserstate (empID,empName,userPass,userIpaddress,onLine,errorTimes,errorTime,message,userGuid) VALUES ('" + GetUpdateVal() + "','"
                                          + PmUser.UserName + "','" + PmUser.UserPass + "','" + PmUser.UserIpAdress + "','1','0','" + DateTime.Now + "','登录成功','" + PmUser.UserGuid + "')";
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                        PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "登陆成功.", UserAgent);
                    }
                    else
                    {
                        //密码错误,返回登录信息,记录用户密码错误
                        login.LoginState = 0;
                        login.Message    = "用户密码错误!再输入2次错误密码后,账号将被锁定5分钟.";
                        //更新登录状态
                        cmd             = PmConnections.CtrlCmd();
                        cmd.CommandText = "INSERT wapUserstate (empID,empName,userPass,userIpaddress,onLine,errorTimes,errorTime,message,userGuid) VALUES ('" + GetUpdateVal() + "','"
                                          + PmUser.UserName + "','" + PmUser.UserPass + "','" + PmUser.UserIpAdress + "','0','1','" + DateTime.Now + "','密码错误','" + PmUser.UserGuid + "')";
                        cmd.ExecuteNonQuery();
                        cmd.Connection.Close();
                        PublicFunc.WriteUserLog(PmUser.EmpID.ToString(), UserIP, "用户登录", "密码错误,错误次数:1", UserAgent);
                    }
                }
            }
            return(login);
        }