コード例 #1
0
        public object[] GetDisToLineQuery(DisToLineQuery disToLine)
        {
            string sql = @"Select d.segcode,d.sscode,d.mocode,d.mcode,m.mname,
                    h.moplanqty,d.mssdisqty,d.mssleftqty,
                    nvl(wt.cycletime, 0) as cycletime,nvl(mb.mobitemqty, 0) as mobitemqty,
                    (d.mssleftqty / mobitemqty * cycletime) as lefttime,d.status
                          From tbldistolinedetail d
                         Inner join tbldistolinehead h
                            on h.mocode = d.mocode
                           and h.mcode = d.mcode
                          left join tblmaterial m
                            on m.mcode = d.mcode
                         inner join tblmo mo
                            on mo.mocode = d.mocode
                          left join tblmobom mb
                            on mb.mocode = d.mocode
                           and mb.mobitemcode = d.mcode
                          Left join tblplanworktime wt
                            on wt.itemcode = mo.itemcode
                           and wt.sscode = d.sscode
                         Where mo.mostatus not in ('mostatus_initial', 'mostatus_close')
                           and d.status in ('ShortDis', 'ERDis', 'WaitDis', 'Normal')
                    and d.segcode='{0}' and d.sscode='{1}' and d.mocode='{2}' and d.mcode='{3}'";

            sql = string.Format(sql, disToLine.SegCode, disToLine.SSCode, disToLine.MOCode, disToLine.MCode);
            return(DataProvider.CustomQuery(typeof(DisToLineQuery), new SQLCondition(sql)));
        }
コード例 #2
0
        //获取配送实时状态
        public string GetDisToLineStatus(DisToLineQuery disToLine)//ALERTDISER
        {
            SystemSettingFacade systemSettingFacade = new SystemSettingFacade(DataProvider);
            string strNormal = systemSettingFacade.GetParameterAlias("ALERTMATERIALDISGROUP", "ALERTDISNORMAL");
            int    normal    = 0;

            if (!string.IsNullOrEmpty(strNormal))
            {
                normal = Convert.ToInt32(strNormal);
            }
            string strDisER = systemSettingFacade.GetParameterAlias("ALERTMATERIALDISGROUP", "ALERTDISER");
            int    disER    = 0;

            if (!string.IsNullOrEmpty(strDisER))
            {
                disER = Convert.ToInt32(strDisER);
            }
            //状态根据剩余生产时间换算(小于cycleTime为缺料中、小于紧急预警时间为紧急配料、小于正常预警时间为待配送)
            if (disToLine.lefttime < disToLine.CycleTime)
            {
                return("ShortDis");
            }
            if (disToLine.lefttime <= disER)
            {
                return("ERDis");
            }
            if (disToLine.lefttime <= normal)
            {
                return("WaitDis");
            }
            return("Normal");
        }
コード例 #3
0
 private bool NeedAddLine(DisToLineQuery disToLineQuery)
 {
     if (disToLineQuery.status == "ShortDis" || disToLineQuery.status == "ERDis" || disToLineQuery.status == "WaitDis")
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #4
0
        public void BindMessage()
        {
            if (listDisToLine.Count > 0 && messageNO < listDisToLine.Count)
            {
                DisToLineQuery            disToLineQuery            = listDisToLine[messageNO];
                WatchPanelDisToLineFacade watchPanelDisToLineFacade = new WatchPanelDisToLineFacade(this.DataProvider);
                object[] disToLineObjs = watchPanelDisToLineFacade.GetDisToLineQuery(disToLineQuery);
                if (disToLineObjs != null && disToLineObjs.Length > 0)
                {
                    disToLineQuery = disToLineObjs[0] as DisToLineQuery;
                }
                disToLineQuery.status = GetDisToLineStatus(disToLineQuery);
                if (!NeedAddLine(disToLineQuery))
                {
                    listDisToLine.Remove(disToLineQuery);
                }
                string message = disToLineQuery.SegCode + "车间" + disToLineQuery.SSCode + "产线"
                                 + disToLineQuery.MCode + "物料" + GetStatusMessageCHS(disToLineQuery.status);
                this.exceptionMessageControl.ExceptionMessage = message;
                if (disToLineQuery.status == "WaitDis")
                {
                    this.exceptionMessageControl.MessageColor = Color.LightBlue;
                }
                else if (disToLineQuery.status == "ERDis")
                {
                    this.exceptionMessageControl.MessageColor = Color.Yellow;
                }
                else if (disToLineQuery.status == "ShortDis")
                {
                    this.exceptionMessageControl.MessageColor = Color.Red;
                }

                messageNO++;
            }
            else
            {
                this.exceptionMessageControl.ExceptionMessage = string.Empty;
                messageNO = 0;
            }
        }
コード例 #5
0
 private void BindDataTableMaterial(object[] disToLineObjs)
 {
     m_DisToLineDataTable.Rows.Clear();
     if (disToLineObjs.Length <= PageRowNum)//不需要翻页
     {
         foreach (DisToLineQuery disToLine in disToLineObjs)
         {
             DataRow newRow = this.m_DisToLineDataTable.NewRow();
             newRow["SegCode"]    = disToLine.SegCode;
             newRow["SSCode"]     = disToLine.SSCode;
             newRow["MoCode"]     = disToLine.MOCode;
             newRow["MCode"]      = disToLine.MCode;
             newRow["MName"]      = disToLine.MName;
             newRow["MoPlanQty"]  = disToLine.MOPlanQty;
             newRow["MssSisQty"]  = disToLine.MSSDisQty;
             newRow["MssLeftQty"] = disToLine.MSSLeftQty;
             string time = string.Empty;
             if (disToLine.lefttime < 60)
             {
                 time = disToLine.lefttime.ToString() + "秒";
             }
             else if (disToLine.lefttime % 60 > 0)
             {
                 time = (Math.Ceiling(disToLine.lefttime / 60)).ToString() + "分" + Math.Ceiling(disToLine.lefttime % 60) + "秒";
             }
             else
             {
                 time = (Math.Ceiling(disToLine.lefttime / 60)).ToString() + "分";
             }
             newRow["LeftTime"] = time;
             newRow["Status"]   = GetStatusCHS(GetDisToLineStatus(disToLine));
             this.m_DisToLineDataTable.Rows.Add(newRow);
             if (NeedAddLine(disToLine))
             {
                 listDisToLine.Add(disToLine);
             }
         }
     }
     else
     {
         if (_FromIQCCount + PageRowNum < disToLineObjs.Length)
         {
             for (int i = _FromIQCCount; i < _FromIQCCount + PageRowNum; i++)
             {
                 DisToLineQuery disToLine = (DisToLineQuery)disToLineObjs[i];
                 DataRow        newRow    = this.m_DisToLineDataTable.NewRow();
                 newRow["SegCode"]    = disToLine.SegCode;
                 newRow["SSCode"]     = disToLine.SSCode;
                 newRow["MoCode"]     = disToLine.MOCode;
                 newRow["MCode"]      = disToLine.MCode;
                 newRow["MName"]      = disToLine.MName;
                 newRow["MoPlanQty"]  = disToLine.MOPlanQty;
                 newRow["MssSisQty"]  = disToLine.MSSDisQty;
                 newRow["MssLeftQty"] = disToLine.MSSLeftQty;
                 string time = string.Empty;
                 if (disToLine.lefttime < 60)
                 {
                     time = disToLine.lefttime.ToString() + "秒";
                 }
                 else if (disToLine.lefttime % 60 > 0)
                 {
                     time = (Math.Ceiling(Convert.ToDecimal(disToLine.lefttime / 60))).ToString() + "分" + disToLine.lefttime % 60 + "秒";
                 }
                 else
                 {
                     time = (Math.Ceiling(Convert.ToDecimal(disToLine.lefttime / 60))).ToString() + "分";
                 }
                 newRow["LeftTime"] = time;
                 newRow["Status"]   = GetStatusCHS(GetDisToLineStatus(disToLine));
                 this.m_DisToLineDataTable.Rows.Add(newRow);
                 if (NeedAddLine(disToLine))
                 {
                     listDisToLine.Add(disToLine);
                 }
             }
             _FromIQCCount += PageRowNum;
         }
         else
         {
             for (int i = _FromIQCCount; i < disToLineObjs.Length; i++)
             {
                 DisToLineQuery disToLine = (DisToLineQuery)disToLineObjs[i];
                 DataRow        newRow    = this.m_DisToLineDataTable.NewRow();
                 newRow["SegCode"]    = disToLine.SegCode;
                 newRow["SSCode"]     = disToLine.SSCode;
                 newRow["MoCode"]     = disToLine.MOCode;
                 newRow["MCode"]      = disToLine.MCode;
                 newRow["MName"]      = disToLine.MName;
                 newRow["MoPlanQty"]  = disToLine.MOPlanQty;
                 newRow["MssSisQty"]  = disToLine.MSSDisQty;
                 newRow["MssLeftQty"] = disToLine.MSSLeftQty;
                 string time = string.Empty;
                 if (disToLine.lefttime < 60)
                 {
                     time = disToLine.lefttime.ToString() + "秒";
                 }
                 else if (disToLine.lefttime % 60 > 0)
                 {
                     time = (Math.Ceiling(disToLine.lefttime / 60)).ToString() + "分" + Math.Ceiling(disToLine.lefttime % 60) + "秒";
                 }
                 else
                 {
                     time = (Math.Ceiling(disToLine.lefttime / 60)).ToString() + "分";
                 }
                 newRow["LeftTime"] = time;
                 newRow["Status"]   = GetStatusCHS(GetDisToLineStatus(disToLine));
                 this.m_DisToLineDataTable.Rows.Add(newRow);
                 if (NeedAddLine(disToLine))
                 {
                     listDisToLine.Add(disToLine);
                 }
             }
             _FromIQCCount = 0;
         }
     }
     m_DisToLineDataTable.AcceptChanges();
 }