人员字典验证修改返回表格信息

parent cbddac61
...@@ -253,11 +253,7 @@ public ApiResponse GetBatchPersonStructrue(int hospitalId) ...@@ -253,11 +253,7 @@ public ApiResponse GetBatchPersonStructrue(int hospitalId)
[Route("person/{allotId}/BathSavePerson/{hospitalId}")] [Route("person/{allotId}/BathSavePerson/{hospitalId}")]
public ApiResponse BathSavePerson(int allotId, int hospitalId, SaveCollectData request) public ApiResponse BathSavePerson(int allotId, int hospitalId, SaveCollectData request)
{ {
var result = personService.BathSavePerson(allotId, hospitalId, request); return personService.BathSavePerson(allotId, hospitalId, request);
if (result)
return new ApiResponse(ResponseType.OK);
else
return new ApiResponse(ResponseType.Error, "出勤天数或预留比例格式错误");
} }
/// <summary> /// <summary>
......
...@@ -562,7 +562,7 @@ public ApiResponse ConfirmAudit(int userid, AprAmountAuditRequest request) ...@@ -562,7 +562,7 @@ public ApiResponse ConfirmAudit(int userid, AprAmountAuditRequest request)
error.AddRange(err); error.AddRange(err);
if (error.Count > 0) if (error.Count > 0)
return new ApiResponse(ResponseType.WarningTable, "当前操作已拒绝", error); return new ApiResponse(ResponseType.WarningTable, "验证不通过,当前操作已拒绝", error);
var allApramounts = perapramountRepository.GetEntities(t => t.AllotId == request.AllotId); var allApramounts = perapramountRepository.GetEntities(t => t.AllotId == request.AllotId);
foreach (var member in request.Members) foreach (var member in request.Members)
...@@ -986,7 +986,7 @@ public ApiResponse ConfirmAuditHide(int userid, AprAmountAuditRequest request) ...@@ -986,7 +986,7 @@ public ApiResponse ConfirmAuditHide(int userid, AprAmountAuditRequest request)
error.AddRange(err); error.AddRange(err);
if (error.Count > 0) if (error.Count > 0)
return new ApiResponse(ResponseType.WarningTable, "当前操作已拒绝", error); return new ApiResponse(ResponseType.WarningTable, "验证不通过,当前操作已拒绝", error);
var allApramounts = _hideRepository.GetEntities(t => t.AllotId == request.AllotId); var allApramounts = _hideRepository.GetEntities(t => t.AllotId == request.AllotId);
foreach (var member in request.Members) foreach (var member in request.Members)
......
...@@ -745,33 +745,98 @@ public HandsonTable GetDepartmentHands(int hospitalId) ...@@ -745,33 +745,98 @@ public HandsonTable GetDepartmentHands(int hospitalId)
return handson; return handson;
} }
public bool BathSavePerson(int AllotId, int HospitalId, SaveCollectData request) public ApiResponse BathSavePerson(int AllotId, int HospitalId, SaveCollectData request)
{ {
var dict = new Dictionary<string, string>(); var dict = new Dictionary<string, string>();
Person.ForEach(t => dict.Add(t.Item1, t.Item2)); Person.ForEach(t => dict.Add(t.Item1, t.Item2));
var dicData = CreateDataRow(request, dict); var dicData = CreateDataRow(request, dict);
List<per_employee> employees = new List<per_employee>(); if (dicData == null || dicData.Count == 0)
var persons = peremployeeRepository.GetEntities(t => t.HospitalId == HospitalId && t.AllotId == AllotId); return new ApiResponse(ResponseType.Error, "空数据,无效操作");
var delPersonsNum = new List<string>(); var jsons = JsonHelper.Serialize(dicData);
foreach (var item in dicData) var newEmployees = JsonHelper.Deserialize<List<per_employee>>(jsons);
var oldEmployees = peremployeeRepository.GetEntities(t => t.HospitalId == HospitalId && t.AllotId == AllotId);
List<Dictionary<string, string>> error = new List<Dictionary<string, string>>();
for (int i = 0; i < newEmployees.Count; i++)
{ {
var json = JsonHelper.Serialize(item); if (newEmployees[i].PersonnelNumber?.Trim() == "2095")
var data = JsonHelper.Deserialize<per_employee>(json); {
}
if (string.IsNullOrEmpty(newEmployees[i].UnitType?.Trim())
|| string.IsNullOrEmpty(newEmployees[i].Department?.Trim())
|| string.IsNullOrEmpty(newEmployees[i].AccountingUnit?.Trim())
|| string.IsNullOrEmpty(newEmployees[i].DoctorName?.Trim())
|| string.IsNullOrEmpty(newEmployees[i].PersonnelNumber?.Trim()))
{
error.Add(new Dictionary<string, string>
{
{ "行号", $"第{i+1}行" },
{ "人员工号", newEmployees[i].PersonnelNumber??"" },
{ "姓名", newEmployees[i].DoctorName??"" },
{ "来源", "粘贴数据" },
{ "错误原因", "“关键信息缺失”请补全或删除" },
});
}
if (newEmployees.Count(w => w.PersonnelNumber == newEmployees[i].PersonnelNumber) > 1)
{
error.Add(new Dictionary<string, string>
{
{ "行号", $"第{i+1}行" },
{ "人员工号", newEmployees[i].PersonnelNumber??"" },
{ "姓名", newEmployees[i].DoctorName??"" },
{ "来源", "粘贴数据" },
{ "错误原因", "“人员工号”重复" },
});
}
var oldEmp = oldEmployees.FirstOrDefault(w => w.PersonnelNumber == newEmployees[i].PersonnelNumber);
if (!string.IsNullOrEmpty(newEmployees[i].DoctorName) && oldEmp != null && oldEmp.DoctorName != newEmployees[i].DoctorName)
{
error.Add(new Dictionary<string, string>
{
{ "行号", $"第{i+1}行" },
{ "人员工号", newEmployees[i].PersonnelNumber??"" },
{ "姓名", newEmployees[i].DoctorName??"" },
{ "来源", "“粘贴数据”与“历史数据”比对" },
{ "错误原因", $"原名“{oldEmp.DoctorName}”,工号相同但姓名不同,请删除“历史数据”中该员工" },
});
}
}
//if (!string.IsNullOrEmpty(item["AttendanceDay"]) && !string.IsNullOrEmpty(item["ReservedRatio"]))
//{
// decimal attendanceDay = ConvertHelper.To<decimal>(item["AttendanceDay"]), reservedRatio = ConvertHelper.To<decimal>(item["ReservedRatio"]);
// if ((!Regex.IsMatch(item["AttendanceDay"], "^(?:[0-2]*[0-9]?|30|31)$")) || (!Regex.IsMatch(item["ReservedRatio"], @"^(0.\d{1,2}|0|1)?$")))
// return false;
//}
for (int i = 0; i < oldEmployees.Count; i++)
{
if (oldEmployees.Count(w => w.PersonnelNumber == oldEmployees[i].PersonnelNumber) > 1)
{
error.Add(new Dictionary<string, string>
{
{ "行号", $"第{i+1}行" },
{ "人员工号", oldEmployees[i].PersonnelNumber??"" },
{ "姓名", oldEmployees[i].DoctorName??"" },
{ "来源", "历史数据" },
{ "错误原因", "“人员工号”重复" },
});
}
}
if (error.Count > 0)
return new ApiResponse(ResponseType.WarningTable, "验证不通过,当前操作已拒绝", error);
List<per_employee> employees = new List<per_employee>();
var delPersonsNum = new List<string>();
foreach (var data in newEmployees)
{
var any = employees.Any(w => w.Department?.Trim() == data.Department?.Trim() && w.DoctorName?.Trim() == data.DoctorName?.Trim()); var any = employees.Any(w => w.Department?.Trim() == data.Department?.Trim() && w.DoctorName?.Trim() == data.DoctorName?.Trim());
if (!string.IsNullOrEmpty(data.Department?.Trim()) && !string.IsNullOrEmpty(data.AccountingUnit?.Trim()) && !string.IsNullOrEmpty(data.DoctorName?.Trim()) && !any) if (!string.IsNullOrEmpty(data.Department?.Trim()) && !string.IsNullOrEmpty(data.AccountingUnit?.Trim()) && !string.IsNullOrEmpty(data.DoctorName?.Trim()) && !any)
{ {
if (persons != null && persons.Any(t => t.PersonnelNumber?.Trim() == data.PersonnelNumber?.Trim())) if (oldEmployees != null && oldEmployees.Any(t => t.PersonnelNumber?.Trim() == data.PersonnelNumber?.Trim()))
delPersonsNum.Add(data.PersonnelNumber); delPersonsNum.Add(data.PersonnelNumber);
data.HospitalId = HospitalId; data.HospitalId = HospitalId;
...@@ -784,7 +849,7 @@ public bool BathSavePerson(int AllotId, int HospitalId, SaveCollectData request) ...@@ -784,7 +849,7 @@ public bool BathSavePerson(int AllotId, int HospitalId, SaveCollectData request)
} }
} }
var delPerson = persons?.Where(t => delPersonsNum.Contains(t.PersonnelNumber)); var delPerson = oldEmployees?.Where(t => delPersonsNum.Contains(t.PersonnelNumber));
if (delPerson != null && delPerson.Any()) if (delPerson != null && delPerson.Any())
peremployeeRepository.RemoveRange(delPerson.ToArray()); peremployeeRepository.RemoveRange(delPerson.ToArray());
if (employees != null && employees.Any()) if (employees != null && employees.Any())
...@@ -792,7 +857,7 @@ public bool BathSavePerson(int AllotId, int HospitalId, SaveCollectData request) ...@@ -792,7 +857,7 @@ public bool BathSavePerson(int AllotId, int HospitalId, SaveCollectData request)
//个人绩效查询用户添加 //个人绩效查询用户添加
SaveQueryRole(HospitalId, request); SaveQueryRole(HospitalId, request);
return true; return new ApiResponse(ResponseType.OK, "");
} }
public void SaveDeptDicHands(int HospitalId, SaveCollectData request) public void SaveDeptDicHands(int HospitalId, SaveCollectData request)
......
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