コード例 #1
0
        public IQueryable <MaterialDemandSummaryDTO> GetDetailInfo(MaterialDemandSummaryDTO searchModel, Page page, out int totalcount)
        {
            var query = from M in DataContext.Material_Demand_Summary
                        join plantbom in DataContext.System_OrganizationBOM
                        on M.BG_Organization_UID equals plantbom.ChildOrg_UID
                        join plantorg in DataContext.System_Organization
                        on plantbom.ParentOrg_UID equals plantorg.Organization_UID
                        join bgorg in DataContext.System_Organization
                        on M.BG_Organization_UID equals bgorg.Organization_UID
                        join funplantorg in DataContext.System_Organization
                        on M.FunPlant_Organization_UID equals funplantorg.Organization_UID
                        join statusenum in DataContext.Enumeration
                        on M.Status_UID equals statusenum.Enum_UID
                        join mat in DataContext.Material_Info
                        on M.Material_UID equals mat.Material_Uid
                        join appuser in DataContext.System_Users
                        on M.Applicant_UID equals appuser.Account_UID
                        join apruser in DataContext.System_Users
                        on M.Approver_UID equals apruser.Account_UID
                        select new MaterialDemandSummaryDTO
            {
                Material_Demand_Summary_UID = M.Material_Demand_Summary_UID,
                Plant                     = plantorg.Organization_Name,
                BG                        = bgorg.Organization_Name,
                FunPlant                  = funplantorg.Organization_Name,
                Status                    = statusenum.Enum_Value,
                Material_Id               = mat.Material_Id,
                Material_Name             = mat.Material_Name,
                Material_Types            = mat.Material_Types,
                NormalDemand_Qty          = M.NormalDemand_Qty,
                SparepartsDemand_Qty      = M.SparepartsDemand_Qty,
                Repair_Demand_Qty         = M.Repair_Demand_Qty,
                Be_Purchase_Qty           = M.Be_Purchase_Qty,
                Calculation_Date          = M.Calculation_Date,
                Demand_Date               = M.Demand_Date,
                ApplicantUser             = appuser.User_Name,
                Applicant_Date            = M.Applicant_Date,
                ApproverUser              = apruser.User_Name,
                Approver_Date             = M.Approver_Date,
                BG_Organization_UID       = M.BG_Organization_UID,
                Status_UID                = M.Status_UID,
                FunPlant_Organization_UID = M.FunPlant_Organization_UID
            };

            query = query.Where(m => m.BG_Organization_UID == searchModel.BG_Organization_UID &
                                m.Demand_Date == searchModel.Demand_Date & m.Status_UID == searchModel.Status_UID);
            totalcount = query.Count();
            query      = query.OrderByDescending(m => m.Applicant_Date).GetPage(page);
            return(query);
        }
コード例 #2
0
 public string AddMatDemandSummaryAPI(MaterialDemandSummaryDTO dto)
 {
     return(storageManageService.AddMatDemandSummary(dto));
 }
コード例 #3
0
        public IQueryable <MaterialDemandSummaryDTO> GetInfo(MaterialDemandSummaryDTO searchModel, Page page, out int totalcount)
        {
            var query1 = from M in DataContext.Material_Demand_Summary
                         //fky2017/11/13
                         //where M.Status_UID != 414
                         where M.Status_UID != 439
                         group M by new
            {
                M.BG_Organization_UID,
                M.Demand_Date,
                M.Status_UID
            } into g
                                                   select new
            {
                MaxUid = g.Max(m => m.Material_Demand_Summary_UID)
            };

            if (searchModel.Status_UID != 0)
            {
                query1 = from M in DataContext.Material_Demand_Summary
                         where M.Status_UID == searchModel.Status_UID
                         group M by new
                {
                    M.BG_Organization_UID,
                    M.Demand_Date
                } into g
                    select new
                {
                    MaxUid = g.Max(m => m.Material_Demand_Summary_UID)
                };
            }


            var query = from M in DataContext.Material_Demand_Summary
                        join plantbom in DataContext.System_OrganizationBOM on
                        M.BG_Organization_UID equals plantbom.ChildOrg_UID
                        join plant in DataContext.System_Organization on
                        plantbom.ParentOrg_UID equals plant.Organization_UID
                        join status in DataContext.Enumeration on
                        M.Status_UID equals status.Enum_UID
                        join appuser in DataContext.System_Users on
                        M.Applicant_UID equals appuser.Account_UID
                        join apruser in DataContext.System_Users on
                        M.Approver_UID equals apruser.Account_UID
                        join bgorg in DataContext.System_Organization
                        on M.BG_Organization_UID equals bgorg.Organization_UID
                        join funplantorg in DataContext.System_Organization
                        on M.FunPlant_Organization_UID equals funplantorg.Organization_UID
                        join temp in query1 on M.Material_Demand_Summary_UID equals temp.MaxUid
                        select new MaterialDemandSummaryDTO
            {
                Material_Demand_Summary_UID = M.Material_Demand_Summary_UID,
                Plant = plant.Organization_Name,
                BG    = bgorg.Organization_Name,
                FunPlant_Organization_UID = M.FunPlant_Organization_UID,
                FunPlant            = funplantorg.Organization_Name,
                Status              = status.Enum_Value,
                Calculation_Date    = M.Calculation_Date,
                Demand_Date         = M.Demand_Date,
                ApplicantUser       = appuser.User_Name,
                Applicant_Date      = M.Applicant_Date,
                ApproverUser        = apruser.User_Name,
                Approver_Date       = M.Approver_Date,
                Status_UID          = M.Status_UID,
                BG_Organization_UID = M.BG_Organization_UID
            };

            if (searchModel.BG_Organization_UID != 0)
            {
                query = query.Where(m => m.BG_Organization_UID == searchModel.BG_Organization_UID);
            }
            if (searchModel.Calculation_Date.Year != 1)
            {
                DateTime nextday = searchModel.Calculation_Date.AddDays(1);
                query = query.Where(m => m.Calculation_Date >= searchModel.Calculation_Date & m.Calculation_Date < nextday);
            }
            if (searchModel.Demand_Date.Year != 1)
            {
                query = query.Where(m => m.Demand_Date == searchModel.Demand_Date);
            }
            if (!string.IsNullOrWhiteSpace(searchModel.ApplicantUser))
            {
                query = query.Where(m => m.ApplicantUser.Contains(searchModel.ApplicantUser));
            }
            if (!string.IsNullOrWhiteSpace(searchModel.ApproverUser))
            {
                query = query.Where(m => m.ApproverUser.Contains(searchModel.ApproverUser));
            }
            if (searchModel.FunPlant_Organization_UID != 0)
            {
                query = query.Where(m => m.FunPlant_Organization_UID == searchModel.FunPlant_Organization_UID);
            }

            List <int> Plant_UIDs = GetOpType(searchModel.Plant_UID).Select(o => o.Organization_UID).ToList();

            if (Plant_UIDs.Count > 0)
            {
                query = query.Where(m => Plant_UIDs.Contains(m.BG_Organization_UID));
            }
            totalcount = query.Count();
            query      = query.OrderByDescending(m => m.Applicant_Date).GetPage(page);
            return(query);
        }