绿十字逻辑调整

This commit is contained in:
2025-04-21 17:49:22 +08:00
parent e6060701b3
commit 0ae5525c72
5 changed files with 69 additions and 42 deletions

View File

@@ -12,9 +12,9 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Site
public class SiteSafeGreenCrossSmartController : BaseController
{
private readonly ISiteSafeGreenCrossSmartService siteSafeGreenCrossSmartService;
private readonly ISiteSafeGreenCrossSmartService _siteSafeGreenCrossSmartService;
public SiteSafeGreenCrossSmartController(ISiteSafeGreenCrossSmartService siteSafeGreenCrossSmartService) {
siteSafeGreenCrossSmartService = siteSafeGreenCrossSmartService;
_siteSafeGreenCrossSmartService = siteSafeGreenCrossSmartService;
}
@@ -22,7 +22,7 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Site
[HttpGet("greencross")]
public IActionResult GetGeenCrossSmartScreenForMonth()
{
var response = siteSafeGreenCrossSmartService.GetGeenCrossSmartScreenForMonth();
var response = _siteSafeGreenCrossSmartService.GetGeenCrossSmartScreenForMonth();
return SUCCESS(response);
}

View File

@@ -28,8 +28,14 @@ namespace DOAN.Model.MES.Andon.Dto
public string UpdatedBy { get; set; }
public DateTime? UpdatedTime { get; set; }
}
/// <summary>
/// 现场安全绿色十字架输入输出对象
/// </summary>
public class SiteSafeGreenCrossBoardDto
{
public int Id { get; set; }
public int SafeDateInt { get; set; }
public int SafeNum { get; set; } = 0;
}
}

View File

@@ -26,6 +26,7 @@ namespace DOAN.Service.MES.Andon.Service
var response = Queryable()
.Where(predicate.ToExpression())
.OrderBy(it=>it.SafeDate)
.ToPage<SiteSafeGreenCross, SiteSafeGreenCrossDto>(parm);
return response;

View File

@@ -10,6 +10,6 @@ namespace DOAN.Service.MES.SmartScreen.Site.IService
public interface ISiteSafeGreenCrossSmartService
{
public List<SiteSafeGreenCrossDto> GetGeenCrossSmartScreenForMonth();
public List<SiteSafeGreenCrossBoardDto> GetGeenCrossSmartScreenForMonth();
}
}

View File

@@ -1,54 +1,74 @@
using DOAN.Model.MES.Andon;
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;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DOAN.Service.MES.SmartScreen.Site
{
[AppService(ServiceType = typeof(ISiteSafeGreenCrossSmartService), ServiceLifetime = LifeTime.Transient)]
public class SiteSafeGreenCrossSmartService : BaseService<SiteSafeGreenCross>, ISiteSafeGreenCrossSmartService
[AppService(
ServiceType = typeof(ISiteSafeGreenCrossSmartService),
ServiceLifetime = LifeTime.Transient
)]
public class SiteSafeGreenCrossSmartService
: BaseService<SiteSafeGreenCross>,
ISiteSafeGreenCrossSmartService
{
public List<SiteSafeGreenCrossDto> GetGeenCrossSmartScreenForMonth()
public List<SiteSafeGreenCrossBoardDto> GetGeenCrossSmartScreenForMonth()
{
UseTran2(() =>
{
DateTime nowDate = DateTime.Now.Date;
bool TodayExist = Context.Queryable<SiteSafeGreenCross>().Where(it => it.SafeDate == nowDate).Any();
if (!TodayExist)
{
Context.Insertable(new SiteSafeGreenCross()
{
SafeDate = nowDate,
SafeNum = 1,
CreatedBy = "auto",
CreatedTime = DateTime.Now,
UpdatedBy = "auto",
UpdatedTime = DateTime.Now
}).ExecuteCommand();
}
});
// 获取本月第一天
DateTime firstDayOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
// 获取本月最后一天
DateTime lastDayOfMonth = firstDayOfMonth.AddMonths(1).AddDays(-1);
var list = Context.Queryable<SiteSafeGreenCross>().Where(it => it.SafeDate >= firstDayOfMonth && it.SafeDate <= lastDayOfMonth)
.ToList().Adapt<List<SiteSafeGreenCrossDto>>();
// 获取当天
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<SiteSafeGreenCross>()
.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<SiteSafeGreenCross>()
.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;
}
}