diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs index d11330b..2c7cf1f 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs @@ -1,12 +1,7 @@ using ATS.NonCustodial.Application.Base; using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.AppDictionaries; using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.User; -using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppCaseManagements.AppCaseManagement; -using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppCaseManagements.AppCaseManagement.Input; -using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppCaseManagements.AppCaseManagement.Output; -using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppEarlyWarnings; using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppEarlyWarnings.Output; -using ATS.NonCustodial.Application.Contracts.Interfaces.Business.IM.Notifies; using ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics; using ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Input; using ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Output; @@ -21,13 +16,12 @@ using ATS.NonCustodial.Shared.Common.Dtos; using ATS.NonCustodial.Shared.Common.UnifiedResults; using ATS.NonCustodial.Shared.Extensions; using ATS.NonCustodial.Shared.Extensions.Collection; +using ATS.NonCustodial.Shared.Helpers; using AutoMapper.QueryableExtensions; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using NPOI.SS.Formula.Functions; using StackExchange.Profiling.Internal; -using System.Collections.Generic; -using static Microsoft.EntityFrameworkCore.DbLoggerCategory; +using static System.Runtime.InteropServices.JavaScript.JSType; namespace ATS.NonCustodial.Application.Impl.Business { @@ -45,6 +39,7 @@ namespace ATS.NonCustodial.Application.Impl.Business private readonly IAppDictionaryService _appDictionaryService; private readonly IEfRepository _appEarlyWarningRepository; private readonly IUserService _userService; + private readonly IEfRepository _appSupervisedPersonRepository; /// /// @@ -61,7 +56,7 @@ namespace ATS.NonCustodial.Application.Impl.Business IEfRepository appCaseManagementRepository, IEfRepository appCaseSupervisedPersonRepository, IEfRepository appCaseSupervisorRepository - ):base(appCaseManagementRepository, + ) : base(appCaseManagementRepository, appCaseSupervisorRepository, appCaseSupervisedPersonRepository, userService, @@ -72,6 +67,7 @@ namespace ATS.NonCustodial.Application.Impl.Business _appDictionaryService = appDictionaryService; _appEarlyWarningRepository = appEarlyWarningRepository; _userService = userService; + _appSupervisedPersonRepository = appCaseSupervisedPersonRepository; } #endregion Identity @@ -110,18 +106,18 @@ namespace ATS.NonCustodial.Application.Impl.Business //根据当前登录人查看其手里的案件被监管人 var spList = await base.GetCurrentUserCaseListAsync(); //获取案件信息 - var casebaselist = await spList.Where(q => q.AppCaseManagement != null&& caseIdList.Contains(q.AppCaseManagement.Id)).Select(q => q.AppCaseManagement).ToListAsync(); + var casebaselist = await spList.Where(q => q.AppCaseManagement != null && caseIdList.Contains(q.AppCaseManagement.Id)).Select(q => q.AppCaseManagement).ToListAsync(); //获取案件id var casebase = await spList .Where(q => q.AppCaseManagement != null && caseIdList.Contains(q.AppCaseManagement.Id)) .WhereIf(input.CaseProgress != null, a => a.AppCaseManagement.CaseProgress == input.CaseProgress).Select(q => q.AppCaseManagement.Id).ToListAsync(); - var spIds = await spList.Where(q => q.AppCaseSupervisedPerson != null&& casebase.Contains(q.AppCaseSupervisedPerson.CaseId)).Select(w => w.AppCaseSupervisedPerson!.SupervisedPersonId).ToListAsync(); + var spIds = await spList.Where(q => q.AppCaseSupervisedPerson != null && casebase.Contains(q.AppCaseSupervisedPerson.CaseId)).Select(w => w.AppCaseSupervisedPerson!.SupervisedPersonId).ToListAsync(); //查询记录 var query = await _appEarlyWarningRepository - .AsQueryable(false, true).Where(q=> spIds.Contains(q.SupervisedPersonId)) + .AsQueryable(false, true).Where(q => spIds.Contains(q.SupervisedPersonId)) .WhereIf(input.CaseId != default, a => a.CaseId == input.CaseId) .WhereIf(input.SupervisedPersonId != default, w => w.SupervisedPersonId == input.SupervisedPersonId) - .WhereIf(input.SupervisedPersonName.HasValue(),w=>w.SupervisedPersonName.Contains(input.SupervisedPersonName)) + .WhereIf(input.SupervisedPersonName.HasValue(), w => w.SupervisedPersonName.Contains(input.SupervisedPersonName)) .WhereIf(input.TimeSearch?.BeginTime != null && input.TimeSearch?.EndTime != null, q => q.CreatedTime >= input.TimeSearch.BeginTime && q.CreatedTime <= $"{input.TimeSearch.EndTime.Value.ToString("yyyy-MM-dd")} 23:59:59".ToDateTime()) .ToListAsync(); @@ -141,7 +137,7 @@ namespace ATS.NonCustodial.Application.Impl.Business { CaseId = data.Key.CaseId, SupervisedPersonId = data.Key.SupervisedPersonId, - CaseName = casebaselist.Where(q=>q.Id==data.Key.CaseId).First()?.Name, + CaseName = casebaselist.Where(q => q.Id == data.Key.CaseId).First()?.Name, //data.Key.CaseName, SupervisedPersonName = data.Key.SupervisedPersonName, CaseProgress = casebaselist.Where(q => q.Id == data.Key.CaseId).First()?.CaseProgress, @@ -157,7 +153,68 @@ namespace ATS.NonCustodial.Application.Impl.Business return ResultOutput.Ok(pageResult); } + /// + /// 违规记录统计导出 + /// + /// + [HttpPost] + public async Task ViolationStatisticsExportAsync(ViolationStatisticsPageInput input) + { + //获取当前用户权限下的案件ids + var limits = User.limits; + var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => limits.Contains(w.UnitId.ToString())) + .ToListAsync(); + var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + //根据当前登录人查看其手里的案件被监管人 + var spList = await base.GetCurrentUserCaseListAsync(); + //获取案件信息 + var casebaselist = await spList.Where(q => q.AppCaseManagement != null && caseIdList.Contains(q.AppCaseManagement.Id)).Select(q => q.AppCaseManagement).ToListAsync(); + //获取案件id + var casebase = await spList + .Where(q => q.AppCaseManagement != null && caseIdList.Contains(q.AppCaseManagement.Id)) + .WhereIf(input.CaseProgress != null, a => a.AppCaseManagement.CaseProgress == input.CaseProgress).Select(q => q.AppCaseManagement.Id).ToListAsync(); + var spIds = await spList.Where(q => q.AppCaseSupervisedPerson != null && casebase.Contains(q.AppCaseSupervisedPerson.CaseId)).Select(w => w.AppCaseSupervisedPerson!.SupervisedPersonId).ToListAsync(); + //查询记录 + var query = await _appEarlyWarningRepository + .AsQueryable(false, true).Where(q => spIds.Contains(q.SupervisedPersonId)) + .WhereIf(input.CaseId != default, a => a.CaseId == input.CaseId) + .WhereIf(input.SupervisedPersonId != default, w => w.SupervisedPersonId == input.SupervisedPersonId) + .WhereIf(input.SupervisedPersonName.HasValue(), w => w.SupervisedPersonName.Contains(input.SupervisedPersonName)) + .WhereIf(input.TimeSearch?.BeginTime != null && input.TimeSearch?.EndTime != null, q => q.CreatedTime >= input.TimeSearch.BeginTime && q.CreatedTime <= $"{input.TimeSearch.EndTime.Value.ToString("yyyy-MM-dd")} 23:59:59".ToDateTime()) + .ToListAsync(); + + //分组 + var dataGroup = query + .GroupBy(w => new { w.CaseId, w.SupervisedPersonId, w.CaseName, w.SupervisedPersonName }); + + var pageData = dataGroup.Skip((input.PageIndex - 1) * input.PageSize) + .Take(input.PageSize); + //处理身份证字段 + var userList = await _userService.GetAllByConditionAsync(new BatchIdsInput() + { + Ids = pageData.Select(w => w.Key.SupervisedPersonId).ToList() + }); + //(0:待执行 1:侦查阶段 2:已结束,3:审查起诉阶段,4:审理阶段) + + + + + var dataList = pageData.Select(data => new ViolationStatisticsExportDto() + { + CaseId = data.Key.CaseId, + SupervisedPersonId = data.Key.SupervisedPersonId, + CaseName = casebaselist.Where(q => q.Id == data.Key.CaseId).First()?.Name, + //data.Key.CaseName, + SupervisedPersonName = data.Key.SupervisedPersonName, + CaseProgress = casebaselist.Where(q => q.Id == data.Key.CaseId).First()?.CaseProgress.ToDescription(), + Violations = data.Count(), + IdCard = userList.FirstOrDefault(w => w.Id == data.Key.SupervisedPersonId)?.IdCard + }).ToList(); + var memorySystem = ExcelHelper.ToExcel(dataList); + return new FileController().File(memorySystem.ToArray(), "application/ms-excel", DateTime.Now.ToString("f") + ".xlsx"); + } /// /// 违规人数分页查询 @@ -172,12 +229,12 @@ namespace ATS.NonCustodial.Application.Impl.Business var casebase = spList.Select(q => q.Id); //查询记录 var query = await _appEarlyWarningRepository - .AsQueryable(false, true).Where(q => casebase.Contains(q.CaseId)&& !string.IsNullOrEmpty(q.Title)) + .AsQueryable(false, true).Where(q => casebase.Contains(q.CaseId) && !string.IsNullOrEmpty(q.Title)) .WhereIf(input.CaseId != default, a => a.CaseId == input.CaseId) .WhereIf(input.Wglx != null, a => a.EarlyWarningTypeId == input.Wglx) .WhereIf(input.SupervisedPersonId != default, w => w.SupervisedPersonId == input.SupervisedPersonId) .WhereIf(input.TimeSearch?.BeginTime != null && input.TimeSearch?.EndTime != null, q => q.CreatedTime >= input.TimeSearch.BeginTime && q.CreatedTime <= $"{input.TimeSearch.EndTime.Value.ToString("yyyy-MM-dd")} 23:59:59".ToDateTime()) - .OrderByDescending(q=>q.CreatedTime) + .OrderByDescending(q => q.CreatedTime) .ToListAsync(); //分组 @@ -199,9 +256,9 @@ namespace ATS.NonCustodial.Application.Impl.Business //data.Key.CaseName, SupervisedPersonName = data.SupervisedPersonName, IdCard = userList.FirstOrDefault(w => w.Id == data.SupervisedPersonId)?.IdCard, - Wgtime= data?.CreatedTime, + Wgtime = data?.CreatedTime, Wglx = data?.Title, - + }).ToList(); var pageResult = new PagedList() @@ -225,14 +282,133 @@ namespace ATS.NonCustodial.Application.Impl.Business var list = await _appEarlyWarningRepository .AsQueryable(false, true) .WhereIf(input.TimeSearch.BeginTime != null && input.TimeSearch.EndTime != null, q => q.CreatedTime >= input.TimeSearch.BeginTime && q.CreatedTime <= $"{input.TimeSearch.EndTime.Value.ToString("yyyy-MM-dd")} 23:59:59".ToDateTime()) - .WhereIf(input.Wglx!=null, q=>q.EarlyWarningTypeId == input.Wglx) + .WhereIf(input.Wglx != null, q => q.EarlyWarningTypeId == input.Wglx) .Where(q => caseIds.Contains(q.CaseId)).ToListAsync(); - var geruplist = list.Where(q=>!string.IsNullOrEmpty(q.Title)).GroupBy(q => q.Title).Select(q => new { name = q.Key, value = q.Distinct((a, b) => a.SupervisedPersonId == b.SupervisedPersonId).Count() }); - var count = geruplist.Sum(q=>q.value); - return ResultOutput.Ok(new { count=count, data = geruplist,list= list.Distinct((a, b) => a.SupervisedPersonId == b.SupervisedPersonId&&a.Title == b.Title).ToList() }); + var geruplist = list.Where(q => !string.IsNullOrEmpty(q.Title)).GroupBy(q => q.Title).Select(q => new { name = q.Key, value = q.Distinct((a, b) => a.SupervisedPersonId == b.SupervisedPersonId).Count() }); + var count = geruplist.Sum(q => q.value); + return ResultOutput.Ok(new { count = count, data = geruplist, list = list.Distinct((a, b) => a.SupervisedPersonId == b.SupervisedPersonId && a.Title == b.Title).ToList() }); + } + /// + /// 未打卡统计 + /// + /// + [HttpPost] + public async Task NotClockedStatisticsPageAsync(NotClockedInput input) + { + //获取当前用户权限下的案件ids + var limits = User.limits; + var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => limits.Contains(w.UnitId.ToString())) + .ToListAsync(); + var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + + + var caseList = await _appCaseManagementRepository.AsQueryable(false, true) + .Where(w => caseIdList.Contains(w.Id)) + .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) + .ToListAsync(); + + List notClockList = new List(); + foreach (var item in caseList) + { + if (item == null) continue; + var caseType= await _appDictionaryService.GetDicByDicId(item.CaseTypeId); + NotClockListDto notClockListDto = new NotClockListDto(); + notClockListDto.Bmsah = item.Bmsah; + notClockListDto.CaseId = item.Id; + notClockListDto.CaseName = item.Name; + notClockListDto.CreatedTime = item.CreatedTime; + notClockListDto.CaseTypeName = caseType.Name; + notClockListDto.SupervisionUnit = ""; + //根据案件找到被监管 + var supervisedPerson = await _appSupervisedPersonRepository + .AsQueryable(false, true) + .Where(w => w.CaseId == item.Id) + .ToListAsync(); + foreach (var person in supervisedPerson) + { + notClockListDto.SupervisedPersonId = person.SupervisedPersonId; + notClockListDto.SupervisedPersonName = person.SupervisedPersonName; + var earlyList = await _appEarlyWarningRepository + .AsQueryable(false, true) + .Where(w => w.Title == "未打卡" && w.SupervisedPersonId == person.SupervisedPersonId + && w.CaseId == item.Id) + .WhereIf(input.EndCreatedTime.HasValue, w => w.CreatedTime <= input.EndCreatedTime) + .WhereIf(input.StartCreatedTime.HasValue, w => w.CreatedTime >= input.StartCreatedTime) + .ToListAsync(); + notClockListDto.NotClockedCount= earlyList.Count; + notClockList.Add(notClockListDto); + } + + } + + return ResultOutput.Ok(notClockList); } + /// + /// 未打卡统计导出 + /// + /// + /// + public async Task NotClockedStatisticsExportAsync(NotClockedInput input) + { + //获取当前用户权限下的案件ids + var limits = User.limits; + var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => limits.Contains(w.UnitId.ToString())) + .ToListAsync(); + var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); + + + var caseList = await _appCaseManagementRepository.AsQueryable(false, true) + .Where(w => caseIdList.Contains(w.Id)) + .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) + .ToListAsync(); + + List notClockList = new List(); + foreach (var item in caseList) + { + if (item == null) continue; + var caseType = await _appDictionaryService.GetDicByDicId(item.CaseTypeId); + NotClockExportDto notClockListDto = new NotClockExportDto(); + notClockListDto.Bmsah = item.Bmsah; + notClockListDto.CaseId = item.Id; + notClockListDto.CaseName = item.Name; + notClockListDto.CreatedTime = item.CreatedTime; + notClockListDto.CaseTypeName = caseType.Name; + notClockListDto.SupervisionUnit = ""; + //根据案件找到被监管 + var supervisedPerson = await _appSupervisedPersonRepository + .AsQueryable(false, true) + .Where(w => w.CaseId == item.Id) + .ToListAsync(); + foreach (var person in supervisedPerson) + { + notClockListDto.SupervisedPersonId = person.SupervisedPersonId; + notClockListDto.SupervisedPersonName = person.SupervisedPersonName; + var earlyList = await _appEarlyWarningRepository + .AsQueryable(false, true) + .Where(w => w.Title == "未打卡" && w.SupervisedPersonId == person.SupervisedPersonId + && w.CaseId == item.Id) + .WhereIf(input.EndCreatedTime.HasValue, w => w.CreatedTime <= input.EndCreatedTime) + .WhereIf(input.StartCreatedTime.HasValue, w => w.CreatedTime >= input.StartCreatedTime) + .ToListAsync(); + notClockListDto.NotClockedCount = earlyList.Count; + notClockList.Add(notClockListDto); + } + + } + var memorySystem = ExcelHelper.ToExcel(notClockList); + return new FileController().File(memorySystem.ToArray(), "application/ms-excel", DateTime.Now.ToString("f") + ".xlsx"); + + + + } + + + + /// /// 添加违规记录 /// @@ -240,4 +416,8 @@ namespace ATS.NonCustodial.Application.Impl.Business /// public async Task AddAsync(AppViolationStatisticsAddInput input) => await base.AddAsync(input, _appViolationStatisticsRepository); } + public class FileController : ControllerBase + { + + } } \ No newline at end of file diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/IAppViolationStatisticsService.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/IAppViolationStatisticsService.cs index dd19d60..008c839 100644 --- a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/IAppViolationStatisticsService.cs +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/IAppViolationStatisticsService.cs @@ -1,5 +1,6 @@ using ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Input; using ATS.NonCustodial.Shared.Common.UnifiedResults; +using Microsoft.AspNetCore.Mvc; namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics { @@ -21,7 +22,13 @@ namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationSt /// 违规记录统计 /// /// - Task ViolationStatisticsPageAsync(ViolationStatisticsPageInput input); + Task ViolationStatisticsPageAsync(ViolationStatisticsPageInput input); + /// + /// 违规记录统计导出 + /// + /// + /// + Task ViolationStatisticsExportAsync(ViolationStatisticsPageInput input); /// /// 违规人数统计分页 /// @@ -33,6 +40,18 @@ namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationSt /// /// Task ViolationStatisticsAsync(ViolationStatisticsPageInput input); - + /// + /// 未打卡统计 + /// + /// + Task NotClockedStatisticsPageAsync(NotClockedInput input); + + /// + /// 未打卡统计导出 + /// + /// + /// + Task NotClockedStatisticsExportAsync(NotClockedInput input); + } } \ No newline at end of file diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Input/NotClockedInput.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Input/NotClockedInput.cs new file mode 100644 index 0000000..52d0137 --- /dev/null +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Input/NotClockedInput.cs @@ -0,0 +1,37 @@ +using ATS.NonCustodial.Shared.Common.Dtos; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Input +{ + public class NotClockedInput: PageRequestBaseInput + { + /// + /// 案件Id + /// + public long? CaseId { get; set; } + + /// + /// 结束时间 + /// + public DateTime? EndCreatedTime { get; set; } + + /// + /// 开始时间 + /// + public DateTime? StartCreatedTime { get; set; } + + /// + /// 案件进度 + /// + public int? CaseProgress { get; set; } + + /// + /// 被监管人姓名 + /// + public string? SupervisedPersonName { get; set; } + } +} diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/NotClockExportDto.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/NotClockExportDto.cs new file mode 100644 index 0000000..067649e --- /dev/null +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/NotClockExportDto.cs @@ -0,0 +1,68 @@ +using ATS.NonCustodial.Domain.Shared.AggRootEntities; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Output +{ + /// + /// 未打卡统计返回值 + /// + public class NotClockExportDto + { + /// + /// 案件Id + /// + public long CaseId { get; set; } + + /// + /// 案件名称 + /// + [DisplayName("案件名称")] + public string? CaseName { get; set; } + + /// + /// 被监管人Id + /// + public long SupervisedPersonId { get; set; } + + /// + /// 被监管人员 + /// + [DisplayName("被监管人")] + public string? SupervisedPersonName { get; set; } + /// + /// 部门受案号 + /// + [DisplayName("部门受案号")] + public string? Bmsah { get; set; } + + /// + /// 监督单位 + /// + [DisplayName("监督单位")] + public string? SupervisionUnit { get; set; } + + + /// + /// 案件类型 + /// + [DisplayName("案件类型")] + public string? CaseTypeName { get; set; } + + + /// + /// 未打卡次数 + /// + [DisplayName("未打卡次数")] + public int NotClockedCount { get; set; } + /// + /// 案件创建日期 + /// + [DisplayName("案件创建日期")] + public DateTime? CreatedTime { get; set; } + } +} diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/NotClockListDto.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/NotClockListDto.cs new file mode 100644 index 0000000..41b958b --- /dev/null +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/NotClockListDto.cs @@ -0,0 +1,60 @@ +using ATS.NonCustodial.Domain.Shared.AggRootEntities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Output +{ + /// + /// 未打卡统计返回值 + /// + public class NotClockListDto + { + /// + /// 案件Id + /// + public long CaseId { get; set; } + + /// + /// 案件名称 + /// + public string? CaseName { get; set; } + + /// + /// 被监管人Id + /// + public long SupervisedPersonId { get; set; } + + /// + /// 被监管人员 + /// + public string? SupervisedPersonName { get; set; } + /// + /// 部门受案号 + /// + public string? Bmsah { get; set; } + + /// + /// 监督单位 + /// + public string? SupervisionUnit { get; set; } + + + /// + /// 案件类型 + /// + public string? CaseTypeName { get; set; } + + + /// + /// 未打卡次数 + /// + public int NotClockedCount { get; set; } + /// + /// 案件创建日期 + /// + public DateTime? CreatedTime { get; set; } + } +} diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsExportDto.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsExportDto.cs new file mode 100644 index 0000000..2cd0cde --- /dev/null +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsExportDto.cs @@ -0,0 +1,64 @@ +using ATS.NonCustodial.Domain.Shared.AggRootEntities; +using ATS.NonCustodial.Domain.Shared.Enums; +using System.ComponentModel; + +namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationStatistics.Output +{ + /// + /// 违规统计列表Dto + /// + /// Author:mxg + /// CreatedTimed:2022-06-06 05:19 PM + public class ViolationStatisticsExportDto + { + /// + /// 案件Id + /// + public long CaseId { get; set; } + + /// + /// 案件名称 + /// + [DisplayName("案件名称")] + public string? CaseName { get; set; } + + /// + /// 被监管人Id + /// + public long SupervisedPersonId { get; set; } + + /// + /// 被监管人员 + /// + [DisplayName("被监管人员")] + public string? SupervisedPersonName { get; set; } + + /// + /// 身份证号 + /// + [DisplayName("身份证号")] + public string? IdCard { get; set; } + + /// + /// 违规次数 + /// + [DisplayName("违规次数")] + public int Violations { get; set; } + + /// + /// 违规时间 + /// + public DateTime? Wgtime { get; set; } + + /// + /// 违规类型 + /// + public string Wglx { get; set; } + + /// + /// 案件进度 + /// + [DisplayName("案件进度")] + public string? CaseProgress { get; set; } + } +} \ No newline at end of file diff --git a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsListDto.cs b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsListDto.cs index 142ce84..0fa73dd 100644 --- a/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsListDto.cs +++ b/src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Business/ViolationStatistics/Output/ViolationStatisticsListDto.cs @@ -6,8 +6,8 @@ namespace ATS.NonCustodial.Application.Contracts.Interfaces.Business.ViolationSt /// /// 违规统计列表Dto /// - /// Author:mxg - /// CreatedTimed:2022-06-06 05:19 PM + /// Author:zzj + /// CreatedTimed:2025-06-06 05:19 PM public class ViolationStatisticsListDto : EntityAdd { ///