report bug fixed

This commit is contained in:
SamSys
2025-03-10 20:01:42 +03:30
parent 1158c85d5e
commit 61440c2a1b

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using _0_Framework.Application;
using AccountMangement.Infrastructure.EFCore;
@@ -196,6 +197,8 @@ public class ReportRepository : IReportRepository
var allCheckoutLeftworkEmployeeIds = allCheckoutLeftworks.Select(x => x.EmployeeId);
var allCheckoutLeftworkWorkshopIds = allCheckoutLeftworks.Select(x => x.WorkshopId).ToList();
var allCheckoutToBeTople = allCheckoutLeftworks.Select(x => new { x.EmployeeId, x.WorkshopId }).ToList();
//تمام تصفیه حساب های ایجاد شده ماه مورد نظر
var allCheckoutCreated = _context.CheckoutSet
.Where(x => allCheckoutLeftworkEmployeeIds.Contains(x.EmployeeId))
@@ -214,8 +217,13 @@ public class ReportRepository : IReportRepository
var contractsAccountLeftWorks = _accountContext.AccountLeftWorks
.Where(x => x.RoleId == 5)
.Where(x => x.StartWorkGr < nextMonthEnd && x.LeftWorkGr > nextMonthStart);
var allContractAccountLeftWorkWorkshopIds = contractsAccountLeftWorks.Select(x => x.WorkshopId).ToList();
//#if DEBUG
// contractsAccountLeftWorks = contractsAccountLeftWorks.Where(x => x.AccountId == 25);
// allContractAccountLeftWorkWorkshopIds = allContractAccountLeftWorkWorkshopIds.Where(x=>x == 296).ToList();
//#endif
//یافتن کارگاه هایی که فعال هستند و طرف حساب انها فعال است
var contractWorkshopEmployer = _context.WorkshopEmployers
@@ -228,7 +236,7 @@ public class ReportRepository : IReportRepository
//یافتن کارگاه های استثنا بدون قردادمالی
var contractWithOutInstitutionContract = contractWorkshopEmployer.Where(x => x.Employer.ContractingPartyId == 30428)
.GroupBy(x => x.Workshop).Select(x => x.Key.id);
.GroupBy(x => x.Workshop).Select(x => x.Key.id).ToList();
//یافتن قردادمالی برای کارگاه های یافت شده در تاریخ مورد نظر
var contractFindHasInstitutionContract = _context.InstitutionContractSet
@@ -236,11 +244,13 @@ public class ReportRepository : IReportRepository
.Select(c => c.ContractingPartyId);
//فیلتر کارگاه های غیر استثنا با کمک کوئری بالا
var contractWithInstitutionContract = contractWorkshopEmployer.Where(x => x.Employer.ContractingPartyId != 30428 && contractFindHasInstitutionContract.Contains(x.Employer.ContractingPartyId)).GroupBy(x => x.WorkshopId).Select(x => x.Key);
var contractWithInstitutionContract = contractWorkshopEmployer.Where(x => x.Employer.ContractingPartyId != 30428 && contractFindHasInstitutionContract
.Contains(x.Employer.ContractingPartyId)).GroupBy(x => x.WorkshopId)
.Select(x => x.Key).ToList();
//ترکیب کارگاه های استثنا و دارای قراداد
var contractMixWitAndWitOut = contractWithInstitutionContract.Concat(contractWithOutInstitutionContract);
var contractMixWitAndWitOut = contractWithInstitutionContract.Concat(contractWithOutInstitutionContract).ToList();
//تمام پرسنل فعال برای قراداد در ماه مورد نظر
@@ -251,6 +261,7 @@ public class ReportRepository : IReportRepository
//تمام قرارداد های ایجاد شده ماه مورد نظر
var allContractLeftworkEmployeeIds = allContractLeftworks.Select(x => x.EmployeeId);
var allContracToBeTople = allContractLeftworks.Select(x => new { x.EmployeeId , x.WorkshopId}).ToList();
var allContractLeftworkWorkshopIds = allContractLeftworks.Select(x => x.WorkshopId).ToList();
var allContractCreated = _context.Contracts
.Where(x => allContractLeftworkEmployeeIds.Contains(x.EmployeeId))
@@ -313,8 +324,9 @@ public class ReportRepository : IReportRepository
var checkoutAccountGroupresult = checkoutAccountGroup.Select(grouped =>
{
int checkoutToBe = allCheckoutLeftworkWorkshopIds.Count(n => grouped.WorkshopList.Contains(n));
var toBe = allCheckoutToBeTople.Where(n => grouped.WorkshopList.Contains(n.WorkshopId)).GroupBy(n => n.EmployeeId).Select(n => n.Key).ToList();
int checkoutToBe = toBe.Count;
//int checkoutToBe = allCheckoutLeftworkWorkshopIds.Count(n => grouped.WorkshopList.Contains(n));
int createdCheckouts = allChekoutCreated.Count(n => grouped.WorkshopList.Contains(n));
int signedCheckout = allCheckoutSignedList.Count(n => grouped.WorkshopList.Contains(n));
@@ -356,8 +368,8 @@ public class ReportRepository : IReportRepository
var contractAccountGroupResult = contractAccountGroup.Select(grouped =>
{
int contractToBe = allContractLeftworkWorkshopIds.Count(n => grouped.WorkshopList.Contains(n));
var toBe = allContracToBeTople.Where(n => grouped.WorkshopList.Contains(n.WorkshopId)).GroupBy(n=>n.EmployeeId).Select(n=>n.Key).ToList();
int contractToBe = toBe.Count;
int createdContracts = allContractCreatedlist.Count(n => grouped.WorkshopList.Contains(n));
int signedContracts = allContractSignedList.Count(n => grouped.WorkshopList.Contains(n));
if (contractToBe > 0)
@@ -389,7 +401,7 @@ public class ReportRepository : IReportRepository
//قرارداد
var contractPercent = (createdContracts * 100) / contractToBe;
var contractPercent = contractToBe > 0 ? (createdContracts * 100) / contractToBe : 0;
//امضاء قراداد
var contractSignaturePercent = createdContracts > 0 ? (signedContracts * 100) / createdContracts : 0;
// تصفیه
@@ -817,12 +829,17 @@ public class ReportRepository : IReportRepository
//قرارداد هایی که امضاء شده
var allContractSigned = allContractCreated.Count(x => x.Signature == "1");
Console.WriteLine("ajax 1 >>>>>: " + watch.Elapsed);
var workshops = _context.Workshops.Where(x => allContractLeftworksWorkshopIdList.Contains(x.id)).ToList();
var workshops = _context.Workshops.Include(x=>x.LeftWorks).Where(x => allContractLeftworksWorkshopIdList.Contains(x.id)).ToList();
var workshopListResult = workshops
.Select(workshop =>
{
var contractToBe = allContractLeftworkEmployeeIdsList.Count(x=> x.WorkshopId == workshop.id);
var contractCreated = allContractCreatedWorkshopIdList.Count(x => x.WorkshopIds == workshop.id);
.Select(workshop =>
{
var toBe = workshop.LeftWorks.Where(x =>
x.StartWorkDate <= nextMonthEnd && x.LeftWorkDate > nextMonthStart)
.GroupBy(x => x.EmployeeId)
.Select(x => x.Key).ToList();
var contractToBe = toBe.Count();
//var contractToBe = allContractLeftworkEmployeeIdsList.Count(x=> x.WorkshopId == workshop.id);
var contractCreated = allContractCreatedWorkshopIdList.Count(x => x.WorkshopIds == workshop.id);
if (contractToBe > 0)
{
return new workshopSearch()
@@ -1257,11 +1274,16 @@ public class ReportRepository : IReportRepository
//قرارداد هایی که امضاء شده
var allContractSigned = allContractCreated.Count(x => x.Signature == "1");
Console.WriteLine("ajax 1 >>>>>: " + watch.Elapsed);
var workshops = _context.Workshops.Where(x => allContractLeftworkWorkshopIds.Contains(x.id)).ToList();
var workshops = _context.Workshops.Include(x=>x.LeftWorks).Where(x => allContractLeftworkWorkshopIds.Contains(x.id)).ToList();
var workshopListResult = workshops
.Select(workshop =>
{
var contractToBe = allContractToBe.Count(x => x.WorkshopId == workshop.id);
var toBe = workshop.LeftWorks.Where(x =>
x.StartWorkDate <= currentMonthEnd && x.LeftWorkDate > currentMonthStart)
.GroupBy(x => x.EmployeeId)
.Select(x => x.Key).ToList();
var contractToBe = toBe.Count();
//var contractToBe = allContractToBe.Count(x => x.WorkshopId == workshop.id);
var contractCreated = createdContractTople.Count(x => x.WorkshopId == workshop.id);
if (contractToBe > 0)
{