예제 #1
0
        public dynamic Get(RequestWrapper query)
        {
            query.LoadSettingXmlString(@"
            <settings defaultOrderBy='ID'>
                <select>*</select>
                <from>minimes_order_record</from>
                <where defaultForAll='true' defaultCp='equal' defaultIgnoreEmpty='true' >
                    <field name='PlanDate'		cp='daterange'></field>
                     <field name='OrderNo'		cp='equal'></field>   
                     <field name='TenantId'		cp='equal'></field>   
                </where>
            </settings>");
            var service = new minimes_order_recordService();
            var pQuery  = query.ToParamQuery();
            var result  = service.GetDynamicListWithPaging(pQuery);

            return(result);
        }
예제 #2
0
        public dynamic Get(RequestWrapper query)
        {
            try
            {
                query.LoadSettingXmlString(@"
            <settings defaultOrderBy='OrderPlanDate DESC'>
                <select>WorkShopName,WorkShopId,LineId,LineName,OrderNo,ProductName,ProductCode,
                PlanDate,OrderPlanDate,Qty,PlanQty,ActualMould,StandardMould,StopTime,TenantID, UPH</select>
                <from> minimes_order_record</from>
                <where defaultForAll='true' defaultCp='equal' defaultIgnoreEmpty='true' >
                     <field name='WorkShopId'		cp='equal'></field>   
                     <field name='LineId'		cp='equal'></field>   
                     <field name='OrderPlanDate'		cp='DateRange'></field>   
                     <field name='OrderNo'		cp='equal'></field>   
                     <field name='ProductName'		cp='equal'></field>
                     <field name='ProductCode'		cp='equal'></field>   
                </where>
            </settings>");
                var service = new minimes_order_recordService();
                var pQuery  = query.ToParamQuery();
                var result  = service.GetDynamicListWithPaging(pQuery);
                foreach (var item in result.rows)
                {
                    #region 时间稼动率&实际UPH&生产效率

                    //生产时间
                    int    ProductTime = lineboardController.GetProductTime(item.OrderNo, item.TenantID) - lineboardController.GetLostTime(item.OrderNo, item.TenantID);
                    double Utilization = 0;
                    if (ProductTime != 0)
                    {
                        Utilization = Math.Round((double)(ProductTime - item.StopTime) * 100 / (ProductTime), 2);
                    }
                    //时间稼动率
                    ((IDictionary <string, object>)item).Add("Utilization", Utilization);

                    //生产时间
                    ((IDictionary <string, object>)item).Add("ProductTime", ProductTime);

                    double PlanRatio = 0;
                    int    CurUPH    = 0;
                    if (ProductTime != 0)
                    {
                        CurUPH = item.Qty / ProductTime * 60;
                    }
                    if (item.UPH > 0)
                    {
                        PlanRatio = Math.Round((double)CurUPH * 100 / item.UPH, 2);
                    }
                    //实际UPH
                    ((IDictionary <string, object>)item).Add("CurUPH", CurUPH);

                    //生产效率
                    ((IDictionary <string, object>)item).Add("PlanRatio", PlanRatio);

                    #endregion

                    #region 计划达成率&备存数量&备存计划达成率

                    double RatioQty    = 0;
                    double ReserveRate = 0;
                    int    ReserveQty  = 0;

                    if (item.Qty <= item.PlanQty)
                    {
                        RatioQty    = Math.Round((double)item.Qty * 100 / item.PlanQty, 2);
                        ReserveRate = 0;
                    }
                    else
                    {
                        RatioQty = 100;
                        if (item.Qty > item.PlanQty)//当实际产量>计划产量时,才有备存数量
                        {
                            ReserveQty = item.Qty - item.PlanQty;
                        }
                        ReserveRate = Math.Round((double)ReserveQty * 100 / item.PlanQty, 2);
                    }
                    //计划达成率
                    ((IDictionary <string, object>)item).Add("RatioQty", RatioQty);

                    //备存数量
                    ((IDictionary <string, object>)item).Add("ReserveQty", ReserveQty);

                    //备存计划达成率
                    ((IDictionary <string, object>)item).Add("ReserveRate", ReserveRate);

                    #endregion

                    #region 模穴率

                    //模穴率
                    double MouldRate = 0;
                    if (item.StandardMould != 0)
                    {
                        MouldRate = Math.Round((double)item.ActualMould * 100 / item.StandardMould, 2);
                    }
                    ((IDictionary <string, object>)item).Add("MouldRate", MouldRate);

                    #endregion
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }