public HomeModel Index(HomeRequest request)
        {
            var userCases = _listingBuilder.GetAll();

            return new HomeModel
                {
                    Cases = userCases,
                    Queues = _currentUser.Queues.ToArray()
                };
        }
Exemple #2
0
        /// <summary>
        /// 获取库存信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public RawMaterialStockModel GetRawMaterialStockData(HomeRequest request)
        {
            //建筑钢筋
            var buildingData = GetStockRecordByRebarType(1, request);
            //型钢
            var sectionData = GetStockRecordByRebarType(2, request);
            var retData     = new RawMaterialStockModel()
            {
                BuildingSteel = new RebarTypeRetModel(buildingData),
                SectionSteel  = new RebarTypeRetModel(sectionData)
            };

            return(retData);
        }
Exemple #3
0
        public HttpResponseMessage Post([FromBody] HomeRequest request)
        {
            HttpResponseMessage response;

            try
            {
                HomeResponse homeResponse = new HomeResponse();
                homeResponse.AllEvents = new ObservableCollection <TechReady.Common.Models.Event>();

                using (DbModel.TechReadyDbContext ctx = new DbModel.TechReadyDbContext())
                {
                    var events = (from c in ctx.Events
                                  where (c.EventStatus == DbModel.EventStatus.Tentative || c.EventStatus == DbModel.EventStatus.Confirmed) &&
                                  c.EventVisibility == DbModel.EventVisibility.Visible
                                  select c).ToList();


                    foreach (var ev in events)
                    {
                        try
                        {
                            if (ev.EventToDate.HasValue &&
                                (DateTime.Now.Date - ev.EventToDate.Value.Date).TotalDays > 1)
                            {
                                continue;
                            }

                            homeResponse.AllEvents.Add(CreateDxEvent(ev));
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Trace.WriteLine(ex.Message);
                        }
                    }
                }

                response = this.Request.CreateResponse(HttpStatusCode.OK, homeResponse);
                response.Content.Headers.Expires = new DateTimeOffset(DateTime.Now.AddSeconds(300));
            }
            catch (Exception ex)
            {
                HttpError myCustomError = new HttpError(ex.Message)
                {
                    { "IsSuccess", false }
                };
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, myCustomError));
            }
            return(response);
        }
        public async Task GetEvents()
        {
            try
            {
                this.OperationInProgress = true;

                ObservableCollection <Event> model = await LocalStorage.ReadJsonFromFile <ObservableCollection <Event> >("allevents");
                await SetEvents(model);

                if (NetworkHelper.IsNetworkAvailable() == false)
                {
                    if (model == null)
                    {
                        await MessageHelper.ShowMessage("Please connect to internet to download latest events");

                        return;
                    }
                }
                else
                {
                    HomeRequest request = new HomeRequest()
                    {
                    };

                    var result = await ServiceProxy.CallService("api/Events", JsonConvert.SerializeObject(request));

                    if (result.IsSuccess)
                    {
                        var homeResponse = JsonConvert.DeserializeObject <HomeResponse>(result.response);

                        model = homeResponse.AllEvents;
                        await LocalStorage.SaveJsonToFile(homeResponse.AllEvents, "allevents");
                    }
                    else
                    {
                        //await MessageHelper.ShowMessage(result.Error.Message);
                    }
                }

                await SetEvents(model);
            }
            catch
            {
            }
            finally
            {
                this.OperationInProgress = false;
            }
        }
Exemple #5
0
        /// <summary>
        /// 获取批次计划数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private List <PlanDataModel> GetBatchNeedList(HomeRequest request, List <string> demandNumList)
        {
            #region 查询条件
            var whereBatch = new Where <TbFactoryBatchNeedPlan>();
            whereBatch.And(p => p.Examinestatus == "审核完成");
            whereBatch.And(p => p.RawMaterialDemandNum.In(demandNumList));
            #endregion

            var batchList = Db.Context.From <TbFactoryBatchNeedPlan>().Select(
                TbFactoryBatchNeedPlan._.RawMaterialDemandNum.As("DemandPlanCode"),
                TbFactoryBatchNeedPlan._.BatchPlanNum,
                TbFactoryBatchNeedPlan._.SteelsTypeCode.As("RebarType"),
                TbFactoryBatchNeedPlan._.BatchPlanTotal.As("TotalWeight"))
                            .Where(whereBatch).ToList <PlanDataModel>();
            return(batchList);
        }
Exemple #6
0
        /// <summary>
        /// 获取月度计划数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private List <PlanDataModel> GetPlanDataList(HomeRequest request)
        {
            #region 查询条件
            var whereMonth = new Where <TbRawMaterialMonthDemandPlan>();
            if (!string.IsNullOrEmpty(request.ProcessFactoryCode))
            {
                whereMonth.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            //组织机构
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> workAreaList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 4);
                if (workAreaList.Count > 0)
                {
                    whereMonth.And(p => p.WorkAreaCode.In(workAreaList));
                }
            }
            string demandMonth = request.DayMonth.ToString("yyyy-MM");
            whereMonth.And(p => p.Examinestatus == "审核完成" && p.DemandMonth == demandMonth);
            #endregion

            var monthList = Db.Context.From <TbRawMaterialMonthDemandPlan>().Select(
                TbRawMaterialMonthDemandPlan._.BranchCode,
                TbRawMaterialMonthDemandPlan._.WorkAreaCode,
                TbRawMaterialMonthDemandPlan._.DemandPlanCode,
                TbRawMaterialMonthDemandPlan._.RebarType,
                TbRawMaterialMonthDemandPlan._.InsertTime,
                TbRawMaterialMonthDemandPlan._.PlanTotal.As("TotalWeight"))
                            .Where(whereMonth).ToList <PlanDataModel>();

            if (monthList.Any())
            {
                var codeList       = monthList.Select(p => p.DemandPlanCode).ToList();
                var supplyPlanList = Repository <TbRawMaterialMonthDemandSupplyPlan> .Query(p => p.DemandPlanCode.In(codeList)).ToList();

                if (supplyPlanList.Any())
                {
                    supplyPlanList.ForEach(x =>
                    {
                        var item          = monthList.First(p => p.DemandPlanCode == x.DemandPlanCode);
                        item.TotalWeight += x.SupplyPlanNum.Value;
                        item.BatchPlanNum = x.SupplyPlanCode;
                    });
                }
            }
            return(monthList);
        }
        public void TestAddHome(long userId, string homeType, string address, string state, string zipCode)
        {
            var con     = new UserManagementAPIs.Controllers.HomeController(logger);
            var komeReq = new HomeRequest()
            {
                Home = new Home()
                {
                    Address  = address,
                    HomeType = homeType,
                    State    = state,
                    Zipcode  = zipCode,
                }
            };
            var result = con.AddHome(userId, komeReq);

            Assert.Equal(System.Net.HttpStatusCode.OK, result.HttpStatusCode);
        }
Exemple #8
0
        /// <summary>
        /// 获取年月日数据
        /// </summary>
        /// <returns></returns>
        public DMYDataModel GetDMYData(HomeRequest request)
        {
            request.DayMonth = DateTime.Now;
            //查找订单信息
            var orderList = GetOverReceiveData(request);
            //已接单,加工完成
            var receiveData = orderList.Item1;
            var overData    = orderList.Item2;
            var retData     = new DMYDataModel()
            {
                YearData  = new DataModel(1, receiveData, overData),
                MonthData = new DataModel(2, receiveData, overData),
                DayData   = new DataModel(3, receiveData, overData)
            };

            return(retData);
        }
Exemple #9
0
        public BaseResponse UpdateHome(long id, HomeRequest home)
        {
            BaseResponse resp = new BaseResponse();

            try
            {
                if (ValidateRequest.UpdateHome(id, home))
                {
                    var homeCrud = new HomeCRUD();
                    if (new UserCRUD().IsUserExists(id) || homeCrud.IsUserHomeExists(home.Home.Id))
                    {
                        home.Home.UserId = id;
                        homeCrud.UpdateHome(home.Home);
                        if (home.Home.Id > 0)
                        {
                            resp.OK();
                        }
                        else
                        {
                            resp.Conflict();
                        }
                    }
                    else
                    {
                        resp.Conflict();
                        resp.HttpStatusMessage = Constants.InValidUser;
                    }
                }
                else
                {
                    resp.BadRequest();
                }
            }
            catch (Exception es)
            {
                string req = JsonConvert.SerializeObject(home);
                logger.Error(string.Format("UpdateHome, UserID={0}, Req={1}", id, req));
                logger.Error("UpdateHome " + es.StackTrace);
                resp.InternalServerError();
            }
            return(resp);
        }
Exemple #10
0
        public HomeRequest GetHome()
        {
            var homeRequest = new HomeRequest();

            var footer = GlobalAttributesCache.Value("AvalancheFooterPage").AsIntegerOrNull();

            if (footer != null)
            {
                homeRequest.Footer = GetPage(footer.Value);
            }

            var header = GlobalAttributesCache.Value("AvalancheHeaderPage").AsIntegerOrNull();

            if (header != null)
            {
                homeRequest.Header = GetPage(header.Value);
            }

            homeRequest.Page = GetPage(GlobalAttributesCache.Value("AvalancheHomePage").AsInteger());
            return(homeRequest);
        }
Exemple #11
0
        /// <summary>
        /// 获取生产计划阶段数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PlanRawMaterialStockModel GetRawMaterialStockPlanData(HomeRequest request)
        {
            #region 查询条件
            var whereSupply = new Where <TbSupplyList>();
            whereSupply.And(p => p.StateCode != "未供货");
            #endregion

            var retData = new PlanRawMaterialStockModel();
            //月度计划
            var monthList = GetPlanDataList(request);
            if (!monthList.Any())
            {
                return(retData);
            }
            var monthPlan = new RawMaterialStockModel(monthList);
            retData.MonthPlan = monthPlan;
            //批次计划
            List <string> demandNumList = monthList.Select(p => p.DemandPlanCode).ToList();
            var           bpn           = monthList.Where(p => p.BatchPlanNum != null).Select(p => p.BatchPlanNum).Distinct().ToList();
            demandNumList.AddRange(bpn);
            var batchList = GetBatchNeedList(request, demandNumList);
            if (!batchList.Any())
            {
                return(retData);
            }
            var batchPlan = new RawMaterialStockModel(batchList);
            retData.BatchPlan = batchPlan;
            //供应
            var batchPlanNumList = batchList.Select(p => p.BatchPlanNum).ToList();
            whereSupply.And(p => p.BatchPlanNum.In(batchPlanNumList));
            var supplyList = Db.Context.From <TbSupplyList>().Select(
                TbSupplyList._.SteelsTypeCode.As("RebarType"),
                TbSupplyList._.HasSupplierTotal.As("TotalWeight"))
                             .Where(whereSupply).ToList <PlanDataModel>();
            var supplyData = new RawMaterialStockModel(supplyList);
            retData.SupplyData = supplyData;
            retData.LabShow();
            return(retData);
        }
Exemple #12
0
        /// <summary>
        /// 加工订单统计图
        /// </summary>
        /// <returns></returns>
        public OrderDataModel GetOrderInfoReport(HomeRequest request)
        {
            var retData = new OrderDataModel();
            //订单信息
            var orderInfo = CreatOrderInfo(request);

            if (!orderInfo.Item2.Any())
            {
                return(retData);
            }
            retData = orderInfo.Item1;
            //配送超期
            var where = new Where <TbDistributionPlanInfo>();
            where.And(p => p.OrderCode.In(orderInfo.Item2));
            where.And(new WhereClip("(DistributionStart='配送完成' and DATEPART(day,DeliveryCompleteTime)>DATEPART(day,DistributionTime)) or (DistributionStart='未配送' and DistributionTime>GETDATE())"));
            var data = Db.Context.From <TbDistributionPlanInfo>()
                       .Select(TbDistributionPlanInfo._.ID, TbCompany._.ParentCompanyCode)
                       .LeftJoin <TbCompany>((a, c) => a.SiteCode == c.CompanyCode)
                       .Where(where).ToList();

            retData.Distribution = data.GroupBy(p => p.ParentCompanyCode).Count();
            return(retData);
        }
Exemple #13
0
        /// <summary>
        /// 获取年月日数据
        /// </summary>
        /// <returns></returns>
        public ActionResult GetDMYData(HomeRequest request)
        {
            var data = _Home.GetDMYData(request);

            return(Content(data.ToJson()));
        }
 public HomeViewModel Home(HomeRequest request)
 {
     return new HomeViewModel();
 }
Exemple #15
0
 public HomeModel Execute(HomeRequest request)
 {
     return new HomeModel();
 }
 public HomeViewModel Index(HomeRequest input)
 {
     return new HomeViewModel();
 }
Exemple #17
0
        /// <summary>
        /// 报警饼图信息分析
        /// </summary>
        /// <param name="Year"></param>
        /// <param name="Month"></param>
        /// <returns></returns>
        public ActionResult GetAlarmMessage(HomeRequest request)
        {
            var data = _User.GetAlarmMessage(request);

            return(Content(data.ToJson()));
        }
Exemple #18
0
        /// <summary>
        /// 根据不同类型获取库存
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        private List <RebarTypeModel> GetStockRecordByRebarType(int type, HomeRequest request)
        {
            #region 查询条件
            var where = new Where <TbRawMaterialStockRecord>();
            var where2 = new Where <TbWorkOrderDetail>();
            where2.And <TbWorkOrder>((a, c) => c.Examinestatus == "审核完成" && c.ProcessingState == "Received");
            if (!string.IsNullOrEmpty(request.ProcessFactoryCode))
            {
                where.And <TbStorage>((a, c) => c.ProcessFactoryCode == request.ProcessFactoryCode);
                where2.And <TbWorkOrder>((a, c) => c.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            //组织机构
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> workAreaList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 4);
                if (workAreaList.Count > 0)
                {
                    where.And(p => p.WorkAreaCode.In(workAreaList));
                }
                List <string> siteCodeList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                if (siteCodeList.Count > 0)
                {
                    where2.And <TbWorkOrder>((a, c) => c.SiteCode.In(siteCodeList));
                }
            }
            if (type == 1)
            {
                where.And <TbRawMaterialArchives>((a, c) => c.RebarType == "BuildingSteel");
                where2.And <TbRawMaterialArchives>((a, c) => c.RebarType == "BuildingSteel");
            }
            else
            {
                where.And <TbRawMaterialArchives>((a, c) => c.RebarType == "SectionSteel");
                where2.And <TbRawMaterialArchives>((a, c) => c.RebarType == "SectionSteel");
            }
            #endregion

            var retList = Db.Context.From <TbRawMaterialStockRecord>().Select(
                TbRawMaterialStockRecord._.MaterialCode,
                TbRawMaterialStockRecord._.UseCount.Sum().As("UseCount"),
                TbRawMaterialStockRecord._.LockCount.Sum().As("LockCount"))
                          .LeftJoin <TbStorage>((a, c) => a.StorageCode == c.StorageCode)
                          .LeftJoin <TbRawMaterialArchives>((a, c) => a.MaterialCode == c.MaterialCode)
                          .Where(where)
                          .GroupBy(p => p.MaterialCode)
                          .ToList <RebarTypeModel>();
            if (retList.Any())
            {
                //查找加工订单使用量
                var orderList = Db.Context.From <TbWorkOrderDetail>().Select(
                    TbWorkOrderDetail._.MaterialCode,
                    TbWorkOrderDetail._.WeightSmallPlan.Sum().As("UseCount"))
                                .LeftJoin <TbWorkOrder>((a, c) => a.OrderCode == c.OrderCode)
                                .LeftJoin <TbRawMaterialArchives>((a, c) => a.MaterialCode == c.MaterialCode)
                                .Where(where2)
                                .GroupBy(p => p.MaterialCode)
                                .ToList <RebarTypeModel>();
                if (orderList.Any())
                {
                    retList.ForEach(x =>
                    {
                        var material = orderList.FirstOrDefault(p => p.MaterialCode == x.MaterialCode);
                        if (material != null)
                        {
                            x.UseCount -= material.UseCount;
                        }
                    });
                }
            }
            return(retList);
        }
Exemple #19
0
        /// <summary>
        /// 获取接单,加工完成
        /// </summary>
        /// <param name="request"></param>
        /// <returns>已接单,加工完成</returns>
        private Tuple <List <TbWorkOrder>, List <TbWorkOrderDetail> > GetOverReceiveData(HomeRequest request)
        {
            var where = new Where <TbWorkOrder>();
            var whereOver = new Where <TbWorkOrderDetail>();

            if (!string.IsNullOrEmpty(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            //组织机构
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> SiteList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                if (SiteList.Count > 0)
                {
                    where.And(p => p.SiteCode.In(SiteList));
                }
            }
            where.And(new WhereClip("YEAR(TbWorkOrder.InsertTime)=" + request.DayMonth.Year));
            where.And(p => p.ProcessingState != "ConfirmWork");
            //已接单
            var orderList = Db.Context.From <TbWorkOrder>()
                            .Select(TbWorkOrder._.WeightTotal, TbWorkOrder._.OrderCode, TbCompany._.ParentCompanyCode, TbWorkOrder._.DistributionTime, TbWorkOrder._.InsertTime)
                            .LeftJoin <TbCompany>((a, c) => a.SiteCode == c.CompanyCode)
                            .Where(where).ToList();
            var receiveData = orderList.ToList();
            //加工完成
            var oderCodeList = orderList.Select(p => p.OrderCode).ToList();

            whereOver.And(p => p.OrderCode.In(oderCodeList));
            whereOver.And(new WhereClip("YEAR(FinishTime)=" + request.DayMonth.Year));
            var overData = Db.Context.From <TbWorkOrderDetail>().Select(TbWorkOrderDetail._.WeightSmallPlan, TbWorkOrderDetail._.FinishTime, TbWorkOrderDetail._.OrderCode).Where(whereOver).ToList();

            return(new Tuple <List <TbWorkOrder>, List <TbWorkOrderDetail> >(receiveData, overData));
        }
Exemple #20
0
        /// <summary>
        /// 供应量需求量统计
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public Tuple <List <MoreReportModel>, List <MoreReportModel> > GetSupplyrMore(HomeRequest request)
        {
            var where = new Where <TbFactoryBatchNeedPlan>();
            var where2 = new Where <TbSupplyList>();

            //组织机构
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> SiteList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 4);
                if (SiteList.Count > 0)
                {
                    where.And(p => p.WorkAreaCode.In(SiteList));
                    where2.And(p => p.WorkAreaCode.In(SiteList));
                }
            }
            if (!string.IsNullOrEmpty(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
                where2.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            //需求量
            where.And(new WhereClip("YEAR(InsertTime)=" + request.DayMonth.Year));
            var group     = new GroupByClip("month(InsertTime)");
            var select    = new Field("convert(varchar,month(InsertTime))+'月' name,SUM(BatchPlanTotal) as y");
            var batchList = Db.Context.From <TbFactoryBatchNeedPlan>().Select(select)
                            .Where(where)
                            .GroupBy(group).ToList <MoreReportModel>();

            CreatLast(batchList);
            //供应量
            where2.And(new WhereClip("YEAR(SupplyCompleteTime)=" + request.DayMonth.Year));
            var group2     = new GroupByClip("month(SupplyCompleteTime)");
            var select2    = new Field("convert(varchar,month(SupplyCompleteTime))+'月' name,SUM(HasSupplierTotal) as y");
            var supplyList = Db.Context.From <TbSupplyList>().Select(select2)
                             .Where(where2)
                             .GroupBy(group2).ToList <MoreReportModel>();

            CreatLast(supplyList);
            return(new Tuple <List <MoreReportModel>, List <MoreReportModel> >(batchList, supplyList));
        }
Exemple #21
0
        /// <summary>
        /// 签收超期
        /// </summary>
        /// <param name="DateType"></param>
        /// <returns></returns>
        public ActionResult GetQsCsYjList(HomeRequest request)
        {
            var data = _User.GetQsCsYjList(request);

            return(Content(data.ToJson()));
        }
Exemple #22
0
        /// <summary>
        /// 加工厂数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetFactoryInfo(HomeRequest request)
        {
            var data = _Home.GetFactoryInfo(request);

            return(Content(data.ToJson()));
        }
Exemple #23
0
        /// <summary>
        /// 组织机构标签(加工厂)
        /// </summary>
        /// <returns></returns>
        public List <OrgLabData> GetOrgLabDataForFactory(HomeRequest request)
        {
            #region 查询条件

            var where = new Where <TbOrderProgress>();
            ////组织机构
            //if (!string.IsNullOrEmpty(request.CodeList))
            //{
            //    var list = request.CodeList.Split(',').ToList();
            //    if (list.Count < 500)
            //        where.And(p => p.SiteCode.In(list));
            //}
            //组织机构
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> siteCodeList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                if (siteCodeList.Count > 0)
                {
                    where.And(p => p.SiteCode.In(siteCodeList));
                }
            }
            if (!string.IsNullOrEmpty(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }

            where.And(new WhereClip("(YEAR(DistributionTime)=" + request.DayMonth.Year + " and MONTH(DistributionTime)=" + request.DayMonth.Month + ") or (DistributionTime<'" + request.DayMonth + "' and (ProcessingState!='Finishing'))"));

            #endregion

            var retData   = new List <OrgLabData>();
            var orderList = Db.Context.From <TbOrderProgress>()
                            .Select(TbOrderProgress._.ProcessingState,
                                    TbOrderProgress._.FinishProcessingDateTime,
                                    TbOrderProgress._.DistributionTime,
                                    TbOrderProgress._.SiteCode,
                                    TbCompany._.ParentCompanyCode)
                            .LeftJoin <TbCompany>((a, c) => a.SiteCode == c.CompanyCode)
                            .Where(where).ToList();
            if (!orderList.Any())
            {
                return(retData);
            }
            //订单,未完成,滞后
            var orgList = orderList.Select(p => p.SiteCode).Distinct().ToList();
            orgList.ForEach(x =>
            {
                var oList   = orderList.Where(p => p.SiteCode == x).ToList();
                var labList = new List <OrgLab>();
                labList.Add(new OrgLab("订单", oList.Count, "blue"));
                labList.Add(new OrgLab("未完成", oList.Count(p => p.ProcessingState != "Finishing"), "#FFB90F"));
                var zh = oList.Count(p => p.ProcessingState != "Finishing" && ((p.FinishProcessingDateTime != null && p.DistributionTime < p.FinishProcessingDateTime) ||
                                                                               (p.FinishProcessingDateTime == null && p.DistributionTime < DateTime.Now.Date)));
                labList.Add(new OrgLab("滞后", zh, "red"));
                var item = new OrgLabData()
                {
                    OrgCode = x,
                    LeveL   = 5,
                    LabList = labList
                };
                if (zh > 0)
                {
                    item.pCode = oList[0].ParentCompanyCode;
                }
                retData.Add(item);
            });
            return(retData);
        }
Exemple #24
0
        /// <summary>
        /// 获取生产计划阶段数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetRawMaterialStockPlanData(HomeRequest request)
        {
            var data = _Home.GetRawMaterialStockPlanData(request);

            return(Content(data.ToJson()));
        }
Exemple #25
0
        /// <summary>
        /// 组织机构标签(经理部)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <OrgLabData> GetOrgLabDataForJLB(HomeRequest request)
        {
            var retData = new List <OrgLabData>();
            //月度计划
            var monthList = GetPlanDataList(request);

            if (!monthList.Any())
            {
                return(retData);
            }
            //供应清单
            var supplyList = GetSupplyData(monthList);
            //分部
            var branchCode = monthList.Select(p => p.BranchCode).Distinct().ToList();
            //工区
            var workAreaCode = monthList.Select(p => p.WorkAreaCode).Distinct().ToList();
            //站点标签
            var sLab = GetOrgLabDataForFactory(request);

            retData.AddRange(sLab);
            var branchLab = new List <OrgLabData>();

            workAreaCode.ForEach(x =>
            {
                var labList  = new List <OrgLab>();
                var blabList = new List <OrgLab>();
                var item     = new OrgLabData()
                {
                    OrgCode = x
                };
                var wdata = GetMonthPlanLab(monthList.Where(p => p.WorkAreaCode == x).ToList());
                bool isw  = false;
                if (wdata.TooFewCount > 0)
                {
                    isw = true;
                    labList.Add(new OrgLab("计划不足!", 0, "blue"));
                }
                else if (wdata.TooMuchCount > 0)
                {
                    isw = true;
                    labList.Add(new OrgLab("计划过多!", 0, "blue"));
                }
                else if (wdata.OverTime > 0)
                {
                    isw = true;
                    labList.Add(new OrgLab("超时未提交!", 0, "blue"));
                }
                if (isw)
                {
                    blabList.Add(new OrgLab("月度计划!", 0, "blue", 1));
                }
                var iszh = retData.Count(p => p.pCode == x);
                if (iszh > 0)
                {
                    labList.Add(new OrgLab("进度滞后!", 0, "red"));
                    blabList.Add(new OrgLab("进度滞后!", 0, "red", 2));
                    item.pCode = wdata.pCode;
                }

                var sdata = CreatSupplyRetData(supplyList.Where(p => p.WorkAreaCode == x).ToList());
                if (sdata.OverTime.Count > 0)
                {
                    labList.Add(new OrgLab("延期供货!", 0, "#FF60AF"));
                    blabList.Add(new OrgLab("材料供应!", 0, "#FF60AF"));
                }
                else if (sdata.OverTimeNoSupply.Count > 0)
                {
                    labList.Add(new OrgLab("超期未供货!", 0, "#FF60AF"));
                    blabList.Add(new OrgLab("材料供应!", 0, "#FF60AF", 3));
                }
                item.LabList = labList;
                item.LeveL   = 4;
                retData.Add(item);
                //查找分部lab
                var bl = branchLab.FirstOrDefault(p => p.OrgCode == wdata.pCode);
                if (bl != null)
                {
                    if (bl.LabList.Count < 3)
                    {
                        blabList.ForEach(j =>
                        {
                            var a = bl.LabList.FirstOrDefault(p => p.Name == j.Name);
                            if (a == null)
                            {
                                bl.LabList.Add(j);
                            }
                        });
                        bl.LabList = bl.LabList.OrderBy(p => p.Order).ToList();
                    }
                }
                else
                {
                    var bitem = new OrgLabData()
                    {
                        OrgCode = wdata.pCode,
                        LeveL   = 3,
                        LabList = blabList
                    };
                    branchLab.Add(bitem);
                }
            });
            retData.AddRange(branchLab);
            return(retData);
        }
Exemple #26
0
        /// <summary>
        /// 加工订单统计图
        /// </summary>
        /// <returns></returns>
        public ActionResult GetOrderInfoReport(HomeRequest request)
        {
            var data = _Home.GetOrderInfoReport(request);

            return(Content(data.ToJson()));
        }
Exemple #27
0
        public GuideData GetFactoryInfo(HomeRequest request)
        {
            var where = new Where <TbDistributionPlanInfo>();
            where.And(p => p.Examinestatus == "审核完成");
            if (!string.IsNullOrWhiteSpace(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }
            //订单信息
            var orderList = Db.Context.From <TbDistributionPlanInfo>()
                            .Select(TbDistributionPlanInfo._.All, TbCompany._.ParentCompanyCode, TbOrderProgress._.FinishProcessingDateTime)
                            .LeftJoin <TbCompany>((a, c) => a.SiteCode == c.CompanyCode)
                            .LeftJoin <TbOrderProgress>((a, c) => a.OrderCode == c.OrderCode)
                            .Where(where).ToList();
            //本月
            var orderMonth = orderList.Where(p => (p.InsertTime.Value.Year == DateTime.Now.Year && p.InsertTime.Value.Month == DateTime.Now.Month) ||
                                             (p.DistributionTime.Value.Year == DateTime.Now.Year && p.DistributionTime.Value.Month == DateTime.Now.Month)).ToList();
            var monthInfo = CreatGuideData(orderMonth, 1);

            monthInfo.Site     = orderMonth.GroupBy(p => p.SiteCode).Count();
            monthInfo.WorkArea = orderMonth.GroupBy(p => p.ParentCompanyCode).Count();
            //综合
            var TotalInfo = CreatGuideData(orderList, 2);

            //月均数,历史月份的总和
            if (orderList.Any())
            {
                var      tlist = orderList.OrderBy(p => p.InsertTime).ToList();
                DateTime dt1   = tlist[0].InsertTime.Value;
                DateTime dt2   = tlist[(orderList.Count - 1)].InsertTime.Value;
                int      Year  = dt2.Year - dt1.Year;
                int      Month = ((dt2.Year - dt1.Year) * 12 + (dt2.Month - dt1.Month)) + 1;
                TotalInfo.Site        = orderList.Count / Month;
                TotalInfo.TotalWeight = (orderList.Sum(p => p.WeightTotal) / Month).Value;
            }
            //报表
            var    reportInfo    = new FactoryItmeData();
            string CapacityMonth = DateTime.Now.Year + "-";
            int    month         = DateTime.Now.Month;

            if (month < 10)
            {
                CapacityMonth += "0" + DateTime.Now.Month;
            }
            else
            {
                CapacityMonth += DateTime.Now.Month;
            }
            var data = _WorkOrderLogic.GetCapacityNum(request.ProcessFactoryCode, CapacityMonth);

            if (data != null && data.Rows.Count > 0)
            {
                reportInfo.TotalRate = (decimal)data.Rows[0]["Capacity"];
                reportInfo.OrderRate = (decimal)data.Rows[0]["WeightSmallPlan"];
                reportInfo.OtherRate = (decimal)data.Rows[0]["ActualLoadNew"];
            }
            //联系人
            var storage = Db.Context.From <TbStorage>()
                          .Select(TbStorage._.StorageAdd, TbStorage._.Tel, TbUser._.UserName)
                          .LeftJoin <TbUser>((a, c) => a.UserCode == c.UserCode)
                          .Where(p => p.ProcessFactoryCode == request.ProcessFactoryCode).First();
            var retData = new GuideData()
            {
                MonthInfo  = monthInfo,
                TotalInfo  = TotalInfo,
                ReportInfo = reportInfo,
                Tel        = storage.Tel,
                Address    = storage.StorageAdd,
                Contacts   = storage.UserName
            };

            return(retData);
        }
Exemple #28
0
        /// <summary>
        /// 组织机构标签(经理部)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetOrgLabDataForJLB(HomeRequest request)
        {
            var data = _Home.GetOrgLabDataForJLB(request);

            return(Content(data.ToJson()));
        }
Exemple #29
0
        /// <summary>
        /// 接单信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private Tuple <OrderDataModel, List <string> > CreatOrderInfo(HomeRequest request)
        {
            #region 查询条件
            var where = new Where <TbOrderProgress>();
            //组织机构
            if (!string.IsNullOrWhiteSpace(request.SiteCode))
            {
                List <string> SiteList = _WorkOrderLogic.GetCompanyWorkAreaOrSiteList(request.SiteCode, 5);
                if (SiteList.Count > 0)
                {
                    where.And(p => p.SiteCode.In(SiteList));
                }
            }
            if (!string.IsNullOrEmpty(request.ProcessFactoryCode))
            {
                where.And(p => p.ProcessFactoryCode == request.ProcessFactoryCode);
            }

            where.And(new WhereClip("(YEAR(DistributionTime)=" + request.DayMonth.Year + " and MONTH(DistributionTime)=" + request.DayMonth.Month + ") or (DistributionTime<'" + request.DayMonth + "' and (ProcessingState!='Finishing'))"));

            #endregion

            var retData  = new OrderDataModel();
            var codeList = new List <string>();
            //订单信息
            var orderList = GetOverReceiveData(request);
            if (orderList.Item1.Any())
            {
                var receiveList = orderList.Item1.Where(p => p.InsertTime.Month == request.DayMonth.Month).ToList();
                retData.OrderCount = receiveList.Count;
                retData.OrderTotal = receiveList.Sum(p => p.WeightTotal);
                retData.TotalCount = orderList.Item1.GroupBy(p => p.ParentCompanyCode).Count();
                codeList.AddRange(receiveList.Select(p => p.OrderCode).ToList());
            }
            if (orderList.Item2.Any())
            {
                var overList = orderList.Item2.Where(p => p.FinishTime.Value.Month == request.DayMonth.Month).ToList();
                retData.OverTotal = overList.Sum(p => p.WeightSmallPlan);
                retData.OverCount = overList.Select(p => p.OrderCode).Distinct().Count();
                codeList.AddRange(overList.Select(p => p.OrderCode).ToList());
            }
            //计划完成
            var planOrderList = Db.Context.From <TbOrderProgress>()
                                .Select(TbOrderProgress._.ProcessingState, TbOrderProgress._.OrderCode, TbOrderProgress._.FinishProcessingDateTime, TbOrderProgress._.DistributionTime, TbOrderProgress._.SiteCode)
                                .Where(where).ToList();
            var orderCodeList = planOrderList.Select(p => p.OrderCode).ToList();
            codeList.AddRange(orderCodeList);
            var orderDetailList = Repository <TbWorkOrderDetail> .Query(p => p.OrderCode.In(orderCodeList) && p.DaetailWorkStrat == "未加工").ToList();

            if (orderDetailList.Any())
            {
                retData.PlanCount = planOrderList.Count;
                retData.PlanTotal = orderDetailList.Sum(p => p.WeightSmallPlan);
            }
            //未完成
            retData.NotOver = planOrderList.Count(p => p.ProcessingState != "Finishing");
            //滞后
            codeList = codeList.Distinct().ToList();
            var lag = GetLagData(orderCodeList);
            retData.Lag       = lag.Number;
            retData.LagCount  = lag.TotalCount;
            retData.LagWeight = lag.TotalWeight;
            return(new Tuple <OrderDataModel, List <string> >(retData, codeList));
        }
Exemple #30
0
        /// <summary>
        /// 供应量需求量统计
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ActionResult GetSupplyrMore(HomeRequest request)
        {
            var data = _Home.GetSupplyrMore(request);

            return(Content(data.ToJson()));
        }
Exemple #31
0
 public HomeResponse Get(HomeRequest request)
 {
     return(new HomeResponse());
 }
Exemple #32
0
 public HomeModel Execute(HomeRequest request)
 {
     return(new HomeModel());
 }
Exemple #33
0
 public HomeModel Get(HomeRequest input)
 {
     return new HomeModel();
 }
Exemple #34
0
 public async Task <ActionResult> Get(HomeRequest request, CancellationToken cancel)
 {
     return(View(await _mediator.BuildAsync <HomeRequest, HomeViewModel>(request, User.GetAppIdentity(), cancel)));
 }