Commit 063afbf9 by wyc

考勤上报加载上月调整,logo和医院名称(appsettings.json)

parent 49b5b0c8
...@@ -21,7 +21,9 @@ public AppController(ILogger<AppController> logger, IConfiguration configuration ...@@ -21,7 +21,9 @@ public AppController(ILogger<AppController> logger, IConfiguration configuration
public ActionResult AppOptions() public ActionResult AppOptions()
{ {
var OpenOAuth = _configuration.GetValue<bool>("AppOptions:OpenOAuth", false); var OpenOAuth = _configuration.GetValue<bool>("AppOptions:OpenOAuth", false);
return Ok(new ApiResponse(ResponseType.OK, "", new { OpenOAuth })); var siteTitle = _configuration.GetValue("AppOptions:SiteTitle", "");
var siteLogo = _configuration.GetValue("AppOptions:SiteLogo", "");
return Ok(new ApiResponse(ResponseType.OK, "", new { OpenOAuth, siteTitle, siteLogo }));
} }
} }
} }
\ No newline at end of file
...@@ -2,13 +2,16 @@ ...@@ -2,13 +2,16 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using AngleSharp.Dom.Events; using AngleSharp.Dom.Events;
using K4os.Hash.xxHash;
using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.EntityModels.Entity; using Performance.EntityModels.Entity;
using Performance.Repository; using Performance.Repository;
using Performance.Repository.Repository; using Performance.Repository.Repository;
using static Performance.Services.ExtractExcelService.WriteDataHelper;
namespace Performance.Services namespace Performance.Services
{ {
...@@ -32,6 +35,7 @@ public class CopyService : IAutoInjection ...@@ -32,6 +35,7 @@ public class CopyService : IAutoInjection
private readonly PerforPerAttendanceDeptRepository _perforPerAttendanceDeptRepository; private readonly PerforPerAttendanceDeptRepository _perforPerAttendanceDeptRepository;
private readonly PerforCofDeptDetailRepository _perforCofDeptDetailRepository; private readonly PerforCofDeptDetailRepository _perforCofDeptDetailRepository;
private readonly PerforCofEmpDetailRepository _perforCofEmpDetailRepository; private readonly PerforCofEmpDetailRepository _perforCofEmpDetailRepository;
private readonly PerforPeremployeeRepository _perforPeremployeeRepository;
public CopyService( public CopyService(
ILogger<ConfigService> logger, ILogger<ConfigService> logger,
...@@ -51,7 +55,8 @@ public class CopyService : IAutoInjection ...@@ -51,7 +55,8 @@ public class CopyService : IAutoInjection
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository, PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforPerAttendanceDeptRepository perforPerAttendanceDeptRepository, PerforPerAttendanceDeptRepository perforPerAttendanceDeptRepository,
PerforCofDeptDetailRepository perforCofDeptDetailRepository, PerforCofDeptDetailRepository perforCofDeptDetailRepository,
PerforCofEmpDetailRepository perforCofEmpDetailRepository PerforCofEmpDetailRepository perforCofEmpDetailRepository,
PerforPeremployeeRepository perforPeremployeeRepository
) )
{ {
_logger = logger; _logger = logger;
...@@ -72,6 +77,7 @@ PerforCofEmpDetailRepository perforCofEmpDetailRepository ...@@ -72,6 +77,7 @@ PerforCofEmpDetailRepository perforCofEmpDetailRepository
_perforPerAttendanceDeptRepository = perforPerAttendanceDeptRepository; _perforPerAttendanceDeptRepository = perforPerAttendanceDeptRepository;
_perforCofDeptDetailRepository = perforCofDeptDetailRepository; _perforCofDeptDetailRepository = perforCofDeptDetailRepository;
_perforCofEmpDetailRepository = perforCofEmpDetailRepository; _perforCofEmpDetailRepository = perforCofEmpDetailRepository;
_perforPeremployeeRepository = perforPeremployeeRepository;
} }
...@@ -322,67 +328,69 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId) ...@@ -322,67 +328,69 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId)
var attendanceTypes = _pperAttendanceTypeRepository.GetEntities(g => g.AllotId == prevAllotId || g.AllotId == allot.ID) ?? new List<per_attendance_type>(); var attendanceTypes = _pperAttendanceTypeRepository.GetEntities(g => g.AllotId == prevAllotId || g.AllotId == allot.ID) ?? new List<per_attendance_type>();
//查询上月有没有类型,没有就跳过 //查询上月有没有类型,没有就跳过
var prevAttTypes = attendanceTypes.Where(w => w.AllotId == prevAllotId).ToList(); var prevAttTypes = attendanceTypes.Where(w => w.AllotId == prevAllotId).ToList();
if (prevAttTypes.Any()) if (!prevAttTypes.Any()) return;
// 删除当月的考勤类型
var delAttTypes = attendanceTypes.Where(w => w.AllotId == allot.ID).ToList();
if (delAttTypes.Any())
{
_pperAttendanceTypeRepository.RemoveRange(delAttTypes.ToArray());
}
//插入上月的考勤类型
var newAttTypes = prevAttTypes.Select(t => new per_attendance_type
{ {
// 删除当月的考勤类型 AllotId = allot.ID,
var delAttTypes = attendanceTypes.Where(w => w.AllotId == allot.ID).ToList(); AttendanceName = t.AttendanceName,
if (delAttTypes.Any()) HospitalId = t.HospitalId,
IsDeduction = t.IsDeduction,
IsDefault = t.IsDefault,
}).ToList();
var successfulType = _pperAttendanceTypeRepository.AddRange(newAttTypes.ToArray());
if (successfulType)
{
var prevPerEmployee = _perforPeremployeeRepository.GetEntities(g => g.AllotId == prevAllotId);
if (!prevPerEmployee.Any()) return;
// 删除当月的考勤上报
var delAttDepts = _perforPerAttendanceDeptRepository.GetEntities(w => w.AllotId == allot.ID).ToList();
if (delAttDepts.Any())
{ {
_pperAttendanceTypeRepository.RemoveRange(delAttTypes.ToArray()); _perforPerAttendanceDeptRepository.RemoveRange(delAttDepts.ToArray());
} }
//插入上月的考勤类型 //查询默认考勤类型
var newAttTypes = prevAttTypes.Select(t => new per_attendance_type var typeDefault = newAttTypes.Find(f => f.IsDefault == (int)Attendance.Default.默认);
var cofaccounting = _cofaccountingRepository.GetEntities(g => g.AllotId == prevAllotId);
int currentMonth = DateTime.DaysInMonth(allot.Year, allot.Month);
var newAttDepts = prevPerEmployee.Select(t =>
{ {
AllotId = allot.ID, var code = cofaccounting
AttendanceName = t.AttendanceName, .Where(p => p.UnitType == t.UnitType && p.AccountingUnit == t.AccountingUnit)
HospitalId = t.HospitalId, .Select(p => p.Code)
IsDeduction = t.IsDeduction, .FirstOrDefault() ?? "";
IsDefault = t.IsDefault, var newDept = new per_attendance_dept
}).ToList();
var successfulType = _pperAttendanceTypeRepository.AddRange(newAttTypes.ToArray());
if (successfulType)
{
var attendanceDepts = _perforPerAttendanceDeptRepository.GetEntities(t => t.AllotId == prevAllotId || t.AllotId == allot.ID)
?? new List<per_attendance_dept>();
var prevAttDepts = attendanceDepts.Where(w => w.AllotId == prevAllotId).ToList();
if (prevAttDepts.Any())
{ {
// 删除当月的考勤上报 HospitalId = t.HospitalId,
var delAttDepts = attendanceDepts.Where(w => w.AllotId == allot.ID).ToList(); AllotId = allot.ID,
if (delAttDepts.Any()) PersonnelName = t.DoctorName,
{ PersonnelNumber = t.PersonnelNumber,
_perforPerAttendanceDeptRepository.RemoveRange(delAttDepts.ToArray()); PermanentStaff = t.PermanentStaff ?? 0,
} Code = code,
var newAttDepts = prevAttDepts.Select(t => new per_attendance_dept UnitType = t.UnitType,
{ AccountingUnit = t.AccountingUnit,
HospitalId = t.HospitalId, State = (int)Attendance.Report.未提交
AllotId = allot.ID, };
PersonnelName = t.PersonnelName,
PersonnelNumber = t.PersonnelNumber, for (int i = 1; i <= currentMonth; i++)
PermanentStaff = t.PermanentStaff, {
Code = t.Code, typeof(per_attendance_dept).GetProperty($"Day{i:d2}")?.SetValue(newDept, typeDefault.Id);
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
State = (int)Attendance.Report.未提交
}).ToList();
//查询默认考勤类型
var typeDefault = newAttTypes.Find(f => f.IsDefault == (int)Attendance.Default.默认);
if (typeDefault != null)
{
foreach (var item in newAttDepts)
{
for (int i = 1; i <= 31; i++)
{
typeof(per_attendance_dept).GetProperty($"Day{i:d2}")?.SetValue(item, typeDefault.Id);
}
}
}
_perforPerAttendanceDeptRepository.AddRange(newAttDepts.ToArray());
} }
}
return newDept;
}).ToList();
_perforPerAttendanceDeptRepository.AddRange(newAttDepts.ToArray());
} }
} }
public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyData = false) public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyData = false)
{ {
var flag = delHistotyData; var flag = delHistotyData;
...@@ -421,7 +429,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -421,7 +429,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
UpdateTime = dateTimeNow, UpdateTime = dateTimeNow,
}); });
var aCategoryTemp = _perforPerAssessCategoryRepository.AddRange(newaCategorys.ToArray()); var aCategoryTemp = _perforPerAssessCategoryRepository.AddRange(newaCategorys.ToArray());
//if (!aCategoryTemp) throw new PerformanceException("考核分类未继承成功,请检查后在尝试!");
} }
} }
var aCategoryss = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID); var aCategoryss = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
...@@ -445,7 +452,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -445,7 +452,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
}); });
var aSchemeTemp = _perforPerAssessSchemeRepository.AddRange(newaSchemes.ToArray()); var aSchemeTemp = _perforPerAssessSchemeRepository.AddRange(newaSchemes.ToArray());
// if (!aSchemeTemp) throw new PerformanceException("考核方案未继承成功,请检查后在尝试!");
} }
} }
var aSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID); var aSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
...@@ -474,8 +480,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -474,8 +480,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
UpdateTime = dateTimeNow, UpdateTime = dateTimeNow,
}); });
var aSchemeItemsTemp = _perforPerAssessSchemeItemsRepository.AddRange(newaSchemeItems.ToArray()); var aSchemeItemsTemp = _perforPerAssessSchemeItemsRepository.AddRange(newaSchemeItems.ToArray());
// if (!aSchemeItemsTemp) throw new PerformanceException("考核方案指标未继承成功,请检查后在尝试!");
} }
} }
var aSchemeItemss = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID); var aSchemeItemss = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
...@@ -499,7 +503,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -499,7 +503,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
UpdateTime = dateTimeNow, UpdateTime = dateTimeNow,
}); });
var aSchemeTargetTemp = _perforPerAssessSchemeTargetRepository.AddRange(newaSchemeTarget.ToArray()); var aSchemeTargetTemp = _perforPerAssessSchemeTargetRepository.AddRange(newaSchemeTarget.ToArray());
// if (!aSchemeTargetTemp) throw new PerformanceException("考核对象未继承成功,请检查后在尝试!");
} }
} }
...@@ -546,7 +549,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat ...@@ -546,7 +549,6 @@ public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyDat
AuditRemark = null, AuditRemark = null,
}); });
var aIssueSchemeTemp = _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess.ToArray()); var aIssueSchemeTemp = _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess.ToArray());
// if (!aSchemeItemsTemp) throw new PerformanceException("考核下发未继承成功,请检查后在尝试!");
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment