using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DOAN.Model.MES.Andon; using DOAN.Model.MES.Andon.Dto; using DOAN.Model.MES.quality.FQC; using DOAN.Service.MES.SmartScreen.Quality.IService; using DOAN.Service.MES.SmartScreen.Site.IService; using Infrastructure.Attribute; using Mapster; namespace DOAN.Service.MES.SmartScreen.Site { [AppService( ServiceType = typeof(ISiteSafeGreenCrossSmartService), ServiceLifetime = LifeTime.Transient )] public class SiteSafeGreenCrossSmartService : BaseService, ISiteSafeGreenCrossSmartService { public List GetGeenCrossSmartScreenForMonth() { // 获取本月第一天 DateTime firstDayOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); // 获取本月最后一天 DateTime lastDayOfMonth = firstDayOfMonth.AddMonths(1).AddDays(-1); // 获取当天 DateTime nowDate = DateTime.Now.Date; UseTran2(() => { for (int i = 1; i < nowDate.Day; i++) { // 判断该日期记录是否存在 DateTime checkDate = new DateTime(nowDate.Year, nowDate.Month, i); bool isExist = Context .Queryable() .Where(it => it.SafeDate >= firstDayOfMonth) .Where(it => it.SafeDate == checkDate) .Any(); if (!isExist) { Context .Insertable( new SiteSafeGreenCross() { SafeDate = checkDate, SafeNum = 1, CreatedBy = "auto", CreatedTime = DateTime.Now, UpdatedBy = "auto", UpdatedTime = DateTime.Now } ) .ExecuteCommand(); } } }); var list = Context .Queryable() .Where(it => it.SafeDate >= firstDayOfMonth && it.SafeDate <= lastDayOfMonth) .Select(it => new SiteSafeGreenCrossBoardDto { Id = it.Id, SafeDateInt = it.SafeDate != null ? it.SafeDate.Value.Day : 0, SafeNum = it.SafeNum ?? 0 }) .ToList(); return list; } } }