using FineUIPro; using Model; using Newtonsoft.Json; using NPOI.POIFS.Crypt.Dsig; using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace BLL { public static class CQMSDataService { public static SGGLDB db = Funs.DB; #region 获取列表 /// /// 记录数 /// public static int count { get; set; } public static List GetCQMSData_CQMSByModle(CQMSData_CQMS table) { var db = Funs.DB; var q = from x in db.CQMSData_CQMS where (string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) && (string.IsNullOrEmpty(table.UnitId) || x.UnitId.Contains(table.UnitId)) && (string.IsNullOrEmpty(table.CollCropCode) || x.CollCropCode.Contains(table.CollCropCode)) && (string.IsNullOrEmpty(table.UnitName) || x.UnitName.Contains(table.UnitName)) orderby x.ReportDate descending select x ; return q.ToList(); } /// 获取分页列表 /// /// 页码 /// 每页数量 /// public static IEnumerable getListData(CQMSData_CQMS table, Grid Grid1) { var q = GetCQMSData_CQMSByModle(table); count = q.Count(); if (count == 0) return null; // q= q.Take(Grid1.PageSize * Grid1.PageIndex).Skip(Grid1.PageSize * (Grid1.PageIndex)).ToList(); // q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); return from x in q select new { x.Id, x.UnitId, x.CollCropCode, x.UnitName, x.ReportDate, x.TrainPersonNum, x.TechnicalDisclosePersonNum, x.UseNum, x.OKNum, x.CompanyPersonNum, x.BranchPersonNum, x.ProjectPersonNum, x.ProblemNum, x.ProblemCompletedNum, x.ProblemNotCompletedNum, x.SNum, x.ANum, x.BNum, x.CNum, x.KeyProcessNum, x.KeyProcessOKNum, x.SpecialProcessNum, x.SpecialProcessOKNum, x.ConcealedWorksNum, x.ConcealedWorksOKNum, x.UnitProjectOnesNum, x.UnitProjectOnesOKNum, x.MaterialInRecheckNum, x.MaterialInRecheckOKNum, x.SingleProjectNum, x.UnitProjectNum, x.SubProjectNum, x.SubdivisionalWorksNum, x.InspectionLotNum, x.State, x.CreateDate, x.CreateMan }; } #endregion 获取列表 public static void AddCQMSData_CQMS(CQMSData_CQMS newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var table = new CQMSData_CQMS { Id = newtable.Id, UnitId = newtable.UnitId, CollCropCode = newtable.CollCropCode, UnitName = newtable.UnitName, ReportDate = newtable.ReportDate, TrainPersonNum = newtable.TrainPersonNum, TechnicalDisclosePersonNum = newtable.TechnicalDisclosePersonNum, UseNum = newtable.UseNum, OKNum = newtable.OKNum, CompanyPersonNum = newtable.CompanyPersonNum, BranchPersonNum = newtable.BranchPersonNum, ProjectPersonNum = newtable.ProjectPersonNum, ProblemNum = newtable.ProblemNum, ProblemCompletedNum = newtable.ProblemCompletedNum, ProblemNotCompletedNum = newtable.ProblemNotCompletedNum, SNum = newtable.SNum, ANum = newtable.ANum, BNum = newtable.BNum, CNum = newtable.CNum, KeyProcessNum = newtable.KeyProcessNum, KeyProcessOKNum = newtable.KeyProcessOKNum, SpecialProcessNum = newtable.SpecialProcessNum, SpecialProcessOKNum = newtable.SpecialProcessOKNum, ConcealedWorksNum = newtable.ConcealedWorksNum, ConcealedWorksOKNum = newtable.ConcealedWorksOKNum, UnitProjectOnesNum = newtable.UnitProjectOnesNum, UnitProjectOnesOKNum = newtable.UnitProjectOnesOKNum, MaterialInRecheckNum = newtable.MaterialInRecheckNum, MaterialInRecheckOKNum = newtable.MaterialInRecheckOKNum, SingleProjectNum = newtable.SingleProjectNum, UnitProjectNum = newtable.UnitProjectNum, SubProjectNum = newtable.SubProjectNum, SubdivisionalWorksNum = newtable.SubdivisionalWorksNum, InspectionLotNum = newtable.InspectionLotNum, State = newtable.State, CreateDate = newtable.CreateDate, CreateMan = newtable.CreateMan }; db.CQMSData_CQMS.InsertOnSubmit(table); db.SubmitChanges(); } } public static void UpdateCQMSData_CQMS(CQMSData_CQMS newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var table = db.CQMSData_CQMS.FirstOrDefault(x => x.Id == newtable.Id); if (table != null) { table.Id = newtable.Id; table.UnitId = newtable.UnitId; table.CollCropCode = newtable.CollCropCode; table.UnitName = newtable.UnitName; table.ReportDate = newtable.ReportDate; table.TrainPersonNum = newtable.TrainPersonNum; table.TechnicalDisclosePersonNum = newtable.TechnicalDisclosePersonNum; table.UseNum = newtable.UseNum; table.OKNum = newtable.OKNum; table.CompanyPersonNum = newtable.CompanyPersonNum; table.BranchPersonNum = newtable.BranchPersonNum; table.ProjectPersonNum = newtable.ProjectPersonNum; table.ProblemNum = newtable.ProblemNum; table.ProblemCompletedNum = newtable.ProblemCompletedNum; table.ProblemNotCompletedNum = newtable.ProblemNotCompletedNum; table.SNum = newtable.SNum; table.ANum = newtable.ANum; table.BNum = newtable.BNum; table.CNum = newtable.CNum; table.KeyProcessNum = newtable.KeyProcessNum; table.KeyProcessOKNum = newtable.KeyProcessOKNum; table.SpecialProcessNum = newtable.SpecialProcessNum; table.SpecialProcessOKNum = newtable.SpecialProcessOKNum; table.ConcealedWorksNum = newtable.ConcealedWorksNum; table.ConcealedWorksOKNum = newtable.ConcealedWorksOKNum; table.UnitProjectOnesNum = newtable.UnitProjectOnesNum; table.UnitProjectOnesOKNum = newtable.UnitProjectOnesOKNum; table.MaterialInRecheckNum = newtable.MaterialInRecheckNum; table.MaterialInRecheckOKNum = newtable.MaterialInRecheckOKNum; table.SingleProjectNum = newtable.SingleProjectNum; table.UnitProjectNum = newtable.UnitProjectNum; table.SubProjectNum = newtable.SubProjectNum; table.SubdivisionalWorksNum = newtable.SubdivisionalWorksNum; table.InspectionLotNum = newtable.InspectionLotNum; table.State = newtable.State; table.CreateMan = newtable.CreateMan; table.CreateDate = newtable.CreateDate; db.SubmitChanges(); } } } public static void DeleteCQMSData_CQMSById(string id) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var table = db.CQMSData_CQMS.FirstOrDefault(x => x.Id == id); if (table != null) { db.CQMSData_CQMS.DeleteOnSubmit(table); db.SubmitChanges(); } } } public static CQMSData_CQMS GetCQMSData_CQMSById(string id) { var db = Funs.DB; return db.CQMSData_CQMS.FirstOrDefault(x => x.Id == id); } public static CQMSData GetItemById(string id) { var model = GetCQMSData_CQMSById(id); var data = new CQMSData(); var item = new CqmsDataItem(); if (model != null) { item.Id = model.Id; item.ReportDate = model.ReportDate.Value.ToShortDateString(); item.UnitId = model.UnitId; item.CollCropCode = model.CollCropCode; item.TrainPersonNum = model.TrainPersonNum; item.TechnicalDisclosePersonNum = model.TechnicalDisclosePersonNum; item.UseNum = model.UseNum; item.OKNum = model.OKNum; item.CompanyPersonNum = model.CompanyPersonNum; item.BranchPersonNum = model.BranchPersonNum; item.ProjectPersonNum = model.ProjectPersonNum; item.ProblemNum = model.ProblemNum; item.ProblemCompletedNum = model.ProblemCompletedNum; item.ProblemNotCompletedNum = model.ProblemNotCompletedNum; item.ProblemRate = ""; item.SNum = model.SNum; item.ANum = model.ANum; item.BNum = model.BNum; item.CNum = model.CNum; item.KeyProcessNum = model.KeyProcessNum; item.KeyProcessOKNum = model.KeyProcessOKNum; item.KeyProcessRate = ""; item.SpecialProcessNum = model.SpecialProcessNum; item.SpecialProcessOKNum = model.SpecialProcessOKNum; item.SpecialProcessRate = ""; item.ConcealedWorksNum = model.ConcealedWorksNum; item.ConcealedWorksOKNum = model.ConcealedWorksOKNum; item.ConcealedWorksRate = ""; item.UnitProjectOnesNum = model.UnitProjectOnesNum; item.UnitProjectOnesOKNum = model.UnitProjectOnesOKNum; item.UnitProjectOnesRate = ""; item.MaterialInRecheckNum = model.MaterialInRecheckNum; item.MaterialInRecheckOKNum = model.MaterialInRecheckOKNum; item.MaterialInRecheckRate = ""; item.SingleProjectNum = model.SingleProjectNum; item.UnitProjectNum = model.UnitProjectNum; item.SubProjectNum = model.SubProjectNum; item.SubdivisionalWorksNum = model.SubdivisionalWorksNum; item.InspectionLotNum = model.InspectionLotNum; } var cqmsDataItems = new List(); cqmsDataItems.Add(item); data.CQMSDataItems = cqmsDataItems; return data; } public static CQMSData GetTodayCQMSData_CQMS() { // var q = GetTodayData(); var data = new CQMSData(); data = StatisticalData(); //if (q != null && q.State == Const.CNCEC_State_S) //{ // // data = GetDataByCQMSData_CQMS(q); // data = StatisticalData(); //} //else //{ // data = StatisticalData(); //} return data; } public static CQMSData_CQMS GetTodayData() { var q = (from x in Funs.DB.CQMSData_CQMS where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date select x).FirstOrDefault(); return q; } public static void UpdateTodyData_State() { var q = GetTodayData(); if (q != null) { q.State = Const.CNCEC_State_1; UpdateCQMSData_CQMS(q); } } public static bool IsReportByDate(DateTime dateTime) { var result = false; var q = (from x in Funs.DB.CQMSData_CQMS where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date select x).ToList(); if (q.Count > 0) result = true; return result; } /// /// 判断当天是否已统计 /// /// public static bool IsReportByToday() { var result = false; var q = (from x in Funs.DB.CQMSData_CQMS where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date select x).ToList(); if (q.Count > 0) result = true; return result; } public static ReturnData PushCncec(string id) { var baseurl = "/api/CQMSData/SaveCQMSData"; var item = GetItemById(id); var str = JsonConvert.SerializeObject(item); var responeData = ServerService.PushCNCEC(str, baseurl); return responeData; } public static CQMSData StatisticalData() { var thisUnitId = string.Empty; var thisUnit = CommonService.GetIsThisUnit(); if (thisUnit != null) thisUnitId = thisUnit.UnitId; var base_Unit = UnitService.GetUnitByUnitId(thisUnitId); Project_CQMSDataService.StatisticalAllProjectData(); var ProjectData = (from x in Funs.DB.Project_CQMSData_CQMS where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date select x).ToList(); var table = new CQMSData_CQMS { UnitId = thisUnitId, CollCropCode = base_Unit.CollCropCode, UnitName = base_Unit.UnitName, ReportDate = DateTime.Now.Date, TrainPersonNum = ProjectData.Sum(x => x.TrainPersonNum), TechnicalDisclosePersonNum = ProjectData.Sum(x => x.TechnicalDisclosePersonNum), UseNum = ProjectData.Sum(x => x.UseNum), OKNum = ProjectData.Sum(x => x.OKNum), CompanyPersonNum = GetCompanyPersonNum(), BranchPersonNum = GetBranchPersonNum(), ProjectPersonNum = ProjectData.Sum(x => x.ProjectPersonNum), ProblemNum = ProjectData.Sum(x => x.ProblemNum), ProblemCompletedNum = ProjectData.Sum(x => x.ProblemCompletedNum), ProblemNotCompletedNum = ProjectData.Sum(x => x.ProblemNotCompletedNum), SNum = ProjectData.Sum(x => x.SNum), ANum = ProjectData.Sum(x => x.ANum), BNum = ProjectData.Sum(x => x.BNum), CNum = ProjectData.Sum(x => x.CNum), KeyProcessNum = ProjectData.Sum(x => x.KeyProcessNum), KeyProcessOKNum = ProjectData.Sum(x => x.KeyProcessOKNum), SpecialProcessNum = ProjectData.Sum(x => x.SpecialProcessNum), SpecialProcessOKNum = ProjectData.Sum(x => x.SpecialProcessOKNum), ConcealedWorksNum = ProjectData.Sum(x => x.ConcealedWorksNum), ConcealedWorksOKNum = ProjectData.Sum(x => x.ConcealedWorksOKNum), UnitProjectOnesNum = ProjectData.Sum(x => x.UnitProjectOnesNum), UnitProjectOnesOKNum = ProjectData.Sum(x => x.UnitProjectOnesOKNum), MaterialInRecheckNum = ProjectData.Sum(x => x.MaterialInRecheckNum), MaterialInRecheckOKNum = ProjectData.Sum(x => x.MaterialInRecheckOKNum), SingleProjectNum = ProjectData.Sum(x => x.SingleProjectNum), UnitProjectNum = ProjectData.Sum(x => x.UnitProjectNum), SubProjectNum = ProjectData.Sum(x => x.SubProjectNum), SubdivisionalWorksNum = ProjectData.Sum(x => x.SubdivisionalWorksNum), InspectionLotNum = ProjectData.Sum(x => x.InspectionLotNum), CreateMan = Const.sysglyId, CreateDate = DateTime.Now }; if (IsReportByToday()) { table.Id = GetTodayData().Id; table.State = Const.CNCEC_State_1; UpdateCQMSData_CQMS(table); } else { table.Id = SQLHelper.GetNewID(); table.State = Const.CNCEC_State_0; AddCQMSData_CQMS(table); } var data = new CQMSData(); data = GetDataByCQMSData_CQMS(table); return data; } public static CQMSData GetDataByCQMSData_CQMS(CQMSData_CQMS table) { var data = new CQMSData(); var item = new CqmsDataItem(); item.Id = table.Id; item.ReportDate = table.ReportDate.Value.ToShortDateString(); item.UnitId = table.UnitId; item.CollCropCode = table.CollCropCode; item.TrainPersonNum = table.TrainPersonNum; item.TechnicalDisclosePersonNum = table.TechnicalDisclosePersonNum; item.UseNum = table.UseNum; item.OKNum = table.OKNum; item.CompanyPersonNum = table.CompanyPersonNum; item.BranchPersonNum = table.BranchPersonNum; item.ProjectPersonNum = table.ProjectPersonNum; item.ProblemNum = table.ProblemNum; item.ProblemCompletedNum = table.ProblemCompletedNum; item.ProblemNotCompletedNum = table.ProblemNotCompletedNum; item.ProblemRate = ""; item.SNum = table.SNum; item.ANum = table.ANum; item.BNum = table.BNum; item.CNum = table.CNum; item.KeyProcessNum = table.KeyProcessNum; item.KeyProcessOKNum = table.KeyProcessOKNum; item.KeyProcessRate = ""; item.SpecialProcessNum = table.SpecialProcessNum; item.SpecialProcessOKNum = table.SpecialProcessOKNum; item.SpecialProcessRate = ""; item.ConcealedWorksNum = table.ConcealedWorksNum; item.ConcealedWorksOKNum = table.ConcealedWorksOKNum; item.ConcealedWorksRate = ""; item.UnitProjectOnesNum = table.UnitProjectOnesNum; item.UnitProjectOnesOKNum = table.UnitProjectOnesOKNum; item.UnitProjectOnesRate = ""; item.MaterialInRecheckNum = table.MaterialInRecheckNum; item.MaterialInRecheckOKNum = table.MaterialInRecheckOKNum; item.MaterialInRecheckRate = ""; item.SingleProjectNum = table.SingleProjectNum; item.UnitProjectNum = table.UnitProjectNum; item.SubProjectNum = table.SubProjectNum; item.SubdivisionalWorksNum = table.SubdivisionalWorksNum; item.InspectionLotNum = table.InspectionLotNum; var cqmsDataItems = new List(); cqmsDataItems.Add(item); data.CQMSDataItems = cqmsDataItems; return data; } /// /// 获取企业总部人数 /// /// public static int GetCompanyPersonNum() { var unitId = string.Empty; var thisUnit = CommonService.GetIsThisUnit(); if (thisUnit != null) unitId = thisUnit.UnitId; var result = (from x in Funs.DB.Person_CompanyBranchPerson join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId where x.IsOnJob == true && y.IsCQMS == true && x.UnitId == unitId select x).Count(); return result; } /// /// 获取分支机构人数 /// /// public static int GetBranchPersonNum() { var unitId = string.Empty; var thisUnit = CommonService.GetIsThisUnit(); if (thisUnit != null) unitId = thisUnit.UnitId; var result = (from x in Funs.DB.Person_CompanyBranchPerson join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId where x.IsOnJob == true && y.IsCQMS == true && x.UnitId != unitId select x).Count(); return result; } } }