Commit 0e4d060b by wyc

考核管理条件调整

parent ba828a21
...@@ -93,7 +93,7 @@ public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck([Fr ...@@ -93,7 +93,7 @@ public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck([Fr
return _service.CategoryIssueCheck(request); return _service.CategoryIssueCheck(request);
} }
/// <summary> /// <summary>
/// 考核下发(把当前考核类别下所有方案下发) /// 考核下发
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
......
...@@ -344,7 +344,7 @@ ...@@ -344,7 +344,7 @@
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueConfirm(Performance.DtoModels.Request.UpdateAssessCategoryRequest)"> <member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueConfirm(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
<summary> <summary>
考核下发(把当前考核类别下所有方案下发) 考核下发
</summary> </summary>
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
......
...@@ -3089,6 +3089,11 @@ ...@@ -3089,6 +3089,11 @@
考核类型ID 考核类型ID
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessName"> <member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessName">
<summary> <summary>
考核类别名称 考核类别名称
...@@ -3189,6 +3194,11 @@ ...@@ -3189,6 +3194,11 @@
考核类型ID 考核类型ID
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessName"> <member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessName">
<summary> <summary>
考核类型 考核类型
...@@ -3199,6 +3209,11 @@ ...@@ -3199,6 +3209,11 @@
考核指标Id 考核指标Id
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.ItemCode">
<summary>
考核指标编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.ItemName2"> <member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.ItemName2">
<summary> <summary>
二级指标名称 二级指标名称
...@@ -3244,6 +3259,11 @@ ...@@ -3244,6 +3259,11 @@
待审核数 待审核数
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.TargetUnitType"> <member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.TargetUnitType">
<summary> <summary>
考核目标核算组别 考核目标核算组别
......
...@@ -23,7 +23,8 @@ public class QuerySchemeEnterDetailList ...@@ -23,7 +23,8 @@ public class QuerySchemeEnterDetailList
public class EditSchemeEnterAudit public class EditSchemeEnterAudit
{ {
public int AllotId { get; set; } public int AllotId { get; set; }
public int[] IssueId { get; set; } public int IssueId { get; set; }
public int ItemId { get; set; }
/// <summary> /// <summary>
/// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4, /// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
......
...@@ -17,6 +17,10 @@ public class AssessSchemeDataResponse ...@@ -17,6 +17,10 @@ public class AssessSchemeDataResponse
/// </summary> /// </summary>
public int AssessId { get; set; } public int AssessId { get; set; }
/// <summary> /// <summary>
/// 考核类型编码
/// </summary>
public string AssessCode { get; set; }
/// <summary>
/// 考核类别名称 /// 考核类别名称
/// </summary> /// </summary>
public string AssessName { get; set; } public string AssessName { get; set; }
...@@ -106,6 +110,10 @@ public class AssessSchemeEnterListResponse ...@@ -106,6 +110,10 @@ public class AssessSchemeEnterListResponse
/// </summary> /// </summary>
public int AssessId { get; set; } public int AssessId { get; set; }
/// <summary> /// <summary>
/// 考核类型编码
/// </summary>
public string AssessCode { get; set; }
/// <summary>
/// 考核类型 /// 考核类型
/// </summary> /// </summary>
public string AssessName { get; set; } public string AssessName { get; set; }
...@@ -114,6 +122,10 @@ public class AssessSchemeEnterListResponse ...@@ -114,6 +122,10 @@ public class AssessSchemeEnterListResponse
/// </summary> /// </summary>
public int? ItemId { get; set; } public int? ItemId { get; set; }
/// <summary> /// <summary>
/// 考核指标编码
/// </summary>
public string ItemCode { get; set; }
/// <summary>
/// 二级指标名称 /// 二级指标名称
/// </summary> /// </summary>
public string ItemName2 { get; set; } public string ItemName2 { get; set; }
...@@ -150,6 +162,10 @@ public class AssessSchemeEnterListResponse ...@@ -150,6 +162,10 @@ public class AssessSchemeEnterListResponse
/// 待审核数 /// 待审核数
/// </summary> /// </summary>
public int AwaitCount { get; set; } public int AwaitCount { get; set; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
} }
public class AssessSchemeEnterDetaiListResponse public class AssessSchemeEnterDetaiListResponse
{ {
......
...@@ -81,7 +81,7 @@ public ApiResponse CategoryAdd(AddAssessCategoryRequest request, int userid) ...@@ -81,7 +81,7 @@ public ApiResponse CategoryAdd(AddAssessCategoryRequest request, int userid)
int codeMax = 0; int codeMax = 0;
if (categoryData.Any()) if (categoryData.Any())
int.TryParse(categoryData.Max(w => w.AssessCode.Substring(1)), out codeMax); int.TryParse(categoryData.Max(w => w.AssessCode.Substring(1)), out codeMax);
string assessCode = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}"; string assessCode = codeMax <= 99 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}";
var dateTime = DateTime.Now; var dateTime = DateTime.Now;
var per_assess_category = new per_assess_category() var per_assess_category = new per_assess_category()
{ {
...@@ -143,6 +143,8 @@ public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(Upd ...@@ -143,6 +143,8 @@ public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(Upd
issueDatas = issueDatas.Where(w => w.SchemeId == request.SchemeId).ToList(); issueDatas = issueDatas.Where(w => w.SchemeId == request.SchemeId).ToList();
issueSchemeDatas = issueSchemeDatas.Where(w => w.SchemeId == request.SchemeId).ToList(); issueSchemeDatas = issueSchemeDatas.Where(w => w.SchemeId == request.SchemeId).ToList();
} }
if (issueDatas.Count() <= 0 || !issueDatas.Any())
throw new PerformanceException("未设置考核内容或未设置考核单元!");
var statisticdates = new List<PerAssessmentStatisticsResponse>(); var statisticdates = new List<PerAssessmentStatisticsResponse>();
Func<per_assess_issue_scheme, view_assess_issue, bool> func = (schemes, issues) => Func<per_assess_issue_scheme, view_assess_issue, bool> func = (schemes, issues) =>
{ {
...@@ -235,7 +237,7 @@ public ApiResponse CategoryIssueConfirm(UpdateAssessCategoryRequest request, int ...@@ -235,7 +237,7 @@ public ApiResponse CategoryIssueConfirm(UpdateAssessCategoryRequest request, int
AssessNorm = item.AssessNorm, AssessNorm = item.AssessNorm,
UnitCode = item.UnitCode, UnitCode = item.UnitCode,
UnitType = item.UnitType, UnitType = item.UnitType,
Score = 0, Score = null,
ScoreRemark = "", ScoreRemark = "",
AccountingUnit = item.AccountingUnit, AccountingUnit = item.AccountingUnit,
TargetUnitCode = item.TargetUnitCode, TargetUnitCode = item.TargetUnitCode,
...@@ -273,7 +275,7 @@ public ApiResponse CategoryIssueConfirm(UpdateAssessCategoryRequest request, int ...@@ -273,7 +275,7 @@ public ApiResponse CategoryIssueConfirm(UpdateAssessCategoryRequest request, int
data.AssessNorm = item.AssessNorm; data.AssessNorm = item.AssessNorm;
data.UnitCode = item.UnitCode; data.UnitCode = item.UnitCode;
data.UnitType = item.UnitType; data.UnitType = item.UnitType;
data.Score = 0; data.Score = null;
data.ScoreRemark = ""; data.ScoreRemark = "";
data.AccountingUnit = item.AccountingUnit; data.AccountingUnit = item.AccountingUnit;
data.TargetUnitCode = item.TargetUnitCode; data.TargetUnitCode = item.TargetUnitCode;
...@@ -313,6 +315,7 @@ public PagedList<AssessSchemeDataResponse> SchemeList(QuerySchemeList query) ...@@ -313,6 +315,7 @@ public PagedList<AssessSchemeDataResponse> SchemeList(QuerySchemeList query)
var result = mapper.Map<List<AssessSchemeDataResponse>>(scheme); var result = mapper.Map<List<AssessSchemeDataResponse>>(scheme);
foreach (var item in result) foreach (var item in result)
{ {
item.AssessCode = category.FirstOrDefault(w => w.Id == item.AssessId).AssessCode;
item.AssessName = category.FirstOrDefault(w => w.Id == item.AssessId).AssessName; item.AssessName = category.FirstOrDefault(w => w.Id == item.AssessId).AssessName;
} }
result = result.OrderByDescending(w => w.UpdateTime).ToList(); result = result.OrderByDescending(w => w.UpdateTime).ToList();
...@@ -335,7 +338,7 @@ public ApiResponse SchemeAdd(AddAssessSchemeRequest request, int userid) ...@@ -335,7 +338,7 @@ public ApiResponse SchemeAdd(AddAssessSchemeRequest request, int userid)
int codeMax = 0; int codeMax = 0;
if (schemeData.Any()) if (schemeData.Any())
int.TryParse(schemeData.Max(w => w.SchemeCode.Substring(1)), out codeMax); int.TryParse(schemeData.Max(w => w.SchemeCode.Substring(1)), out codeMax);
string schemeCode = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}"; string schemeCode = codeMax <= 101009 ? $"B{101010}" : $"B{codeMax + 1}";
var dateTime = DateTime.Now; var dateTime = DateTime.Now;
var per_assess_scheme = new per_assess_scheme() var per_assess_scheme = new per_assess_scheme()
{ {
...@@ -468,7 +471,7 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt ...@@ -468,7 +471,7 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt
int codeMax = 0; int codeMax = 0;
if (categoryData.Any()) if (categoryData.Any())
int.TryParse(categoryData.Max(w => w.ItemCode.Substring(1)), out codeMax); int.TryParse(categoryData.Max(w => w.ItemCode.Substring(1)), out codeMax);
string code = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}"; string code = codeMax <= 1009 ? $"C{1010}" : $"C{codeMax + 1}";
var dateTime = DateTime.Now; var dateTime = DateTime.Now;
var data = mapper.Map<per_assess_scheme_items>(request); var data = mapper.Map<per_assess_scheme_items>(request);
data.AllotId = request.AllotId; data.AllotId = request.AllotId;
...@@ -651,6 +654,8 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection ...@@ -651,6 +654,8 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection
} }
var dt = Read(path); var dt = Read(path);
var datas = ToListDictionary(dt); var datas = ToListDictionary(dt);
if (datas.Count == 0 || !datas.Any())
throw new PerformanceException("未在文件中找到数据");
Tables error = new Tables("行", "指标编码", "一级指标名称", "二级指标名称", "考核分值", "考核标准", "核算组别", "考核负责部门", "原因"); Tables error = new Tables("行", "指标编码", "一级指标名称", "二级指标名称", "考核分值", "考核标准", "核算组别", "考核负责部门", "原因");
var upload = new List<AssessSchemeItemsUploadResponse>(); var upload = new List<AssessSchemeItemsUploadResponse>();
foreach (var item in datas.Select((value, i) => new { value, index = $"第{i + 1}行" })) foreach (var item in datas.Select((value, i) => new { value, index = $"第{i + 1}行" }))
...@@ -673,7 +678,7 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection ...@@ -673,7 +678,7 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection
error.AddIf(eAScore == 0, item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核分值不能为0,请检查后重试!"); error.AddIf(eAScore == 0, item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核分值不能为0,请检查后重试!");
var cofaccountingdata = cofaccountingdatas.FirstOrDefault(w => w.AccountingUnit == eAccountingUnit && w.UnitType == eUnitType); var cofaccountingdata = cofaccountingdatas.FirstOrDefault(w => w.AccountingUnit == eAccountingUnit && w.UnitType == eUnitType);
error.AddIf(cofaccountingdata == null, item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "未找到考核负责部门,请检查后重试!"); error.AddIf(cofaccountingdata == null, item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "未找到考核负责部门,请检查后重试!");
if (cofaccountingdata == null) continue;
var itemsData = itemsDatas.FirstOrDefault(w => w.ItemCode == eItemCode); var itemsData = itemsDatas.FirstOrDefault(w => w.ItemCode == eItemCode);
var data = new AssessSchemeItemsUploadResponse(); var data = new AssessSchemeItemsUploadResponse();
if (itemsData == null || itemsData?.Id < 0) if (itemsData == null || itemsData?.Id < 0)
...@@ -708,7 +713,7 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection ...@@ -708,7 +713,7 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection
upload.Add(data); upload.Add(data);
} }
if (error.Any()) if (error.Any())
return new ApiResponse(ResponseType.Error, "操作被拒绝,详细请看更多信息", error); return new ApiResponse(ResponseType.WarningTable, "操作被拒绝,详细请看更多信息", error);
saveUploadResult(upload, schemeId, allotId, userid); saveUploadResult(upload, schemeId, allotId, userid);
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
} }
...@@ -716,9 +721,10 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection ...@@ -716,9 +721,10 @@ public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection
public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload, int schemeId, int allotId, int userid) public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload, int schemeId, int allotId, int userid)
{ {
var categoryData = perforPerAssessSchemeRepository.GetEntity(t => t.Id == schemeId); var categoryData = perforPerAssessSchemeRepository.GetEntity(t => t.Id == schemeId);
if (categoryData == null) if (categoryData == null || categoryData.Id < 0)
throw new PerformanceException("方案有误,请刷新重试!"); throw new PerformanceException("方案有误,请刷新重试!");
var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntities(w => w.AllotId == allotId); var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntities(w => w.AllotId == allotId);
var dataDelete = itemsDatas.Where(t => t.SchemeId == schemeId);
var dataAdds = upload.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList(); var dataAdds = upload.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList();
int sort = 0; int sort = 0;
dataAdds.ForEach(t => dataAdds.ForEach(t =>
...@@ -727,12 +733,12 @@ public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload ...@@ -727,12 +733,12 @@ public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload
int codeMax = 0; int codeMax = 0;
if (itemsDatas.Any()) if (itemsDatas.Any())
int.TryParse(itemsDatas.Max(w => w.ItemCode.Substring(1)), out codeMax); int.TryParse(itemsDatas.Max(w => w.ItemCode.Substring(1)), out codeMax);
string code = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}"; string code = codeMax <= 1009 ? $"C{1010 + sort}" : $"C{codeMax + sort}";
t.ItemCode = code; t.ItemCode = code;
}); });
var dataUpdates = upload.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList(); var dataUpdates = upload.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
//删除 //删除
var dataDeletes = from temp1 in itemsDatas var dataDeletes = from temp1 in dataDelete
join temp2 in dataUpdates join temp2 in dataUpdates
on temp1.ItemCode equals temp2.ItemCode into tempJoin on temp1.ItemCode equals temp2.ItemCode into tempJoin
from temp2 in tempJoin.DefaultIfEmpty() from temp2 in tempJoin.DefaultIfEmpty()
...@@ -803,14 +809,17 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo ...@@ -803,14 +809,17 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo
var unitTypes = UnitTypeUtil.GetMaps(userInfo?.URole.Type ?? 0); var unitTypes = UnitTypeUtil.GetMaps(userInfo?.URole.Type ?? 0);
if (unitTypes?.Any() == true) if (unitTypes?.Any() == true)
issueSchemes = issueSchemes.Where(w => w.AccountingUnit == userInfo.User.Department && UnitTypeUtil.Is(w.UnitType, unitTypes)).ToList(); issueSchemes = issueSchemes.Where(w => w.AccountingUnit == userInfo.User.Department && UnitTypeUtil.Is(w.UnitType, unitTypes)).ToList();
var items = issueSchemes.GroupBy(w => new { w.AssessId, w.AssessName, w.ItemId, w.ItemName2, w.UnitType, w.AccountingUnit }) var stateOrders = new int[] { (int)Assess.AssessState.待审核, (int)Assess.AssessState.驳回, (int)Assess.AssessState.审核通过, (int)Assess.AssessState.未提交 };
var items = issueSchemes.GroupBy(w => new { w.AssessId, w.AssessCode, w.AssessName, w.ItemId, w.ItemCode, w.ItemName2, w.UnitType, w.AccountingUnit })
.Select(w => new AssessSchemeEnterListResponse .Select(w => new AssessSchemeEnterListResponse
{ {
AssessId = w.Key.AssessId, AssessId = w.Key.AssessId,
AssessCode = w.Key.AssessCode,
AssessName = w.Key.AssessName, AssessName = w.Key.AssessName,
UnitType = w.Key.UnitType, UnitType = w.Key.UnitType,
AccountingUnit = w.Key.AccountingUnit, AccountingUnit = w.Key.AccountingUnit,
ItemId = w.Key.ItemId, ItemId = w.Key.ItemId,
ItemCode = w.Key.ItemCode,
ItemName2 = w.Key.ItemName2, ItemName2 = w.Key.ItemName2,
Count = w.Count(), Count = w.Count(),
SubmitTime = w.OrderByDescending(o => o.SubmitTime).Select(s => s.SubmitTime).FirstOrDefault(), SubmitTime = w.OrderByDescending(o => o.SubmitTime).Select(s => s.SubmitTime).FirstOrDefault(),
...@@ -818,7 +827,8 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo ...@@ -818,7 +827,8 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo
AuditTime = w.OrderByDescending(o => o.AuditTime).Select(s => s.AuditTime).FirstOrDefault(), AuditTime = w.OrderByDescending(o => o.AuditTime).Select(s => s.AuditTime).FirstOrDefault(),
ConfirmCount = w.Count(p => p.State == (int)Assess.AssessState.审核通过), ConfirmCount = w.Count(p => p.State == (int)Assess.AssessState.审核通过),
RejectCount = w.Count(p => p.State == (int)Assess.AssessState.驳回), RejectCount = w.Count(p => p.State == (int)Assess.AssessState.驳回),
AwaitCount = w.Count(p => p.State == (int)Assess.AssessState.待审核) AwaitCount = w.Count(p => p.State == (int)Assess.AssessState.待审核),
AuditRemark = string.Join(";", w.Select(p => p.AuditRemark).Where(s => !string.IsNullOrEmpty(s)).Distinct()),
}).ToList(); }).ToList();
foreach (var item in items) foreach (var item in items)
...@@ -826,11 +836,12 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo ...@@ -826,11 +836,12 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo
item.State = (int)Assess.AssessState.未提交; item.State = (int)Assess.AssessState.未提交;
if (item.AwaitCount > 0) if (item.AwaitCount > 0)
item.State = (int)Assess.AssessState.待审核; item.State = (int)Assess.AssessState.待审核;
else if (item.RejectCount > 0) if (item.RejectCount > 0)
item.State = (int)Assess.AssessState.驳回; item.State = (int)Assess.AssessState.驳回;
else if (item.ConfirmCount == item.Count) else if (item.ConfirmCount == item.Count)
item.State = (int)Assess.AssessState.审核通过; item.State = (int)Assess.AssessState.审核通过;
} }
items = items.OrderBy(w => stateOrders.Contains(w.State) ? Array.IndexOf(stateOrders, w.State) : int.MaxValue).ToList();
return new ApiResponse<List<AssessSchemeEnterListResponse>>(ResponseType.OK, items); return new ApiResponse<List<AssessSchemeEnterListResponse>>(ResponseType.OK, items);
} }
public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(QuerySchemeEnterDetailList query) public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(QuerySchemeEnterDetailList query)
...@@ -851,7 +862,9 @@ public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(Query ...@@ -851,7 +862,9 @@ public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(Query
} }
public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName) public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName)
{ {
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == audit.AllotId && audit.IssueId.Contains(w.Id)); var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == audit.AllotId && w.ItemId == audit.ItemId);
if (audit.IssueId > 0)
issueSchemes = issueSchemes.Where(w => w.Id == audit.IssueId).ToList();
var temp = issueSchemes.FirstOrDefault(w => w.State == (int)Assess.AssessState.未提交); var temp = issueSchemes.FirstOrDefault(w => w.State == (int)Assess.AssessState.未提交);
if (temp != null || temp?.Id > 0) if (temp != null || temp?.Id > 0)
throw new PerformanceException("未提交的数据无法审核"); throw new PerformanceException("未提交的数据无法审核");
...@@ -859,6 +872,7 @@ public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName) ...@@ -859,6 +872,7 @@ public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName)
foreach (var issueScheme in issueSchemes) foreach (var issueScheme in issueSchemes)
{ {
issueScheme.State = (int)audit.State; issueScheme.State = (int)audit.State;
issueScheme.AuditRemark = audit.AuditRemark;
issueScheme.AuditBy = realName; issueScheme.AuditBy = realName;
issueScheme.AuditTime = dateTime; issueScheme.AuditTime = dateTime;
} }
...@@ -873,6 +887,7 @@ public ApiResponse SchemeEnterEdit(EditAssessSchemeEnterRequest request, int use ...@@ -873,6 +887,7 @@ public ApiResponse SchemeEnterEdit(EditAssessSchemeEnterRequest request, int use
issueSchemes.Score = request.Score; issueSchemes.Score = request.Score;
issueSchemes.ScoreRemark = request.ScoreRemark; issueSchemes.ScoreRemark = request.ScoreRemark;
issueSchemes.UpdateBy = userid; issueSchemes.UpdateBy = userid;
issueSchemes.State = (int)Assess.AssessState.未提交;
issueSchemes.UpdateTime = DateTime.Now; issueSchemes.UpdateTime = DateTime.Now;
if (perforPerAssessIssueSchemeRepository.Update(issueSchemes)) return new ApiResponse(ResponseType.OK, "修改成功"); if (perforPerAssessIssueSchemeRepository.Update(issueSchemes)) return new ApiResponse(ResponseType.OK, "修改成功");
...@@ -880,15 +895,20 @@ public ApiResponse SchemeEnterEdit(EditAssessSchemeEnterRequest request, int use ...@@ -880,15 +895,20 @@ public ApiResponse SchemeEnterEdit(EditAssessSchemeEnterRequest request, int use
} }
public ApiResponse SchemeEnterSubmit(int allotId, int itemId, int userid) public ApiResponse SchemeEnterSubmit(int allotId, int itemId, int userid)
{ {
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == allotId && w.ItemId == itemId); var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == allotId && w.ItemId == itemId && w.State != (int)Assess.AssessState.审核通过);
if (!issueSchemes.Any()) if (!issueSchemes.Any())
throw new PerformanceException("未找到需要提交的数据,请稍后在试"); throw new PerformanceException("未找到需要提交的数据,请稍后在试");
var dateTime = DateTime.Now; var dateTime = DateTime.Now;
foreach (var item in issueSchemes) foreach (var item in issueSchemes)
{ {
item.AuditBy = null;
item.AuditTime = null;
item.AuditRemark = null;
item.State = (int)Assess.AssessState.待审核; item.State = (int)Assess.AssessState.待审核;
item.SubmitBy = userid; item.SubmitBy = userid;
item.SubmitTime = dateTime; item.SubmitTime = dateTime;
item.UpdateBy = userid;
item.UpdateTime = dateTime;
} }
if (perforPerAssessIssueSchemeRepository.UpdateRange(issueSchemes.ToArray())) return new ApiResponse(ResponseType.OK, "修改成功"); if (perforPerAssessIssueSchemeRepository.UpdateRange(issueSchemes.ToArray())) return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败"); else return new ApiResponse(ResponseType.Fail, "修改失败");
...@@ -902,6 +922,8 @@ public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int useri ...@@ -902,6 +922,8 @@ public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int useri
//查询指标 //查询指标
var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntity(t => t.Id == itemId); var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntity(t => t.Id == itemId);
if (itemsDatas == null || itemsDatas.Id < 0)
throw new PerformanceException("上传失败,请刷新后重新上传!");
//查询下发结果 //查询下发结果
var issueDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.ItemId == itemId); var issueDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.ItemId == itemId);
var allot = perforPerallotRepository.GetEntity(w => w.ID == itemsDatas.AllotId); var allot = perforPerallotRepository.GetEntity(w => w.ID == itemsDatas.AllotId);
...@@ -922,6 +944,8 @@ public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int useri ...@@ -922,6 +944,8 @@ public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int useri
} }
var dt = Read(path); var dt = Read(path);
var datas = ToListDictionary(dt); var datas = ToListDictionary(dt);
if (datas.Count == 0 || !datas.Any())
throw new PerformanceException("未在文件中找到数据");
Tables error = new Tables("行", "核算单元", "核算组别", "一级指标名称", "考核项目", "考核分值", "考核扣分", "扣分原因", "原因"); Tables error = new Tables("行", "核算单元", "核算组别", "一级指标名称", "考核项目", "考核分值", "考核扣分", "扣分原因", "原因");
var issues = new List<per_assess_issue_scheme>(); var issues = new List<per_assess_issue_scheme>();
foreach (var item in datas.Select((value, i) => new { value, index = $"第{i + 1}行" })) foreach (var item in datas.Select((value, i) => new { value, index = $"第{i + 1}行" }))
...@@ -945,15 +969,14 @@ public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int useri ...@@ -945,15 +969,14 @@ public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int useri
var issueData = issueDatas.FirstOrDefault(w => w.ItemId == itemId && w.TargetAccountingUnit == eTargetAccountingUnit && w.TargetUnitType == eTargetUnitType); var issueData = issueDatas.FirstOrDefault(w => w.ItemId == itemId && w.TargetAccountingUnit == eTargetAccountingUnit && w.TargetUnitType == eTargetUnitType);
error.AddIf(issueData == null, item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "未找到部门,请检查后重试!"); error.AddIf(issueData == null, item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "未找到部门,请检查后重试!");
if (issueData == null) continue; if (issueData == null) continue;
issueData.Score = escore; issueData.Score = escore == 0 ? null : escore;
issueData.ScoreRemark = eScoreRemark; issueData.ScoreRemark = eScoreRemark;
issueData.UpdateBy = userid; issueData.UpdateBy = userid;
issueData.UpdateTime = DateTime.Now; issueData.UpdateTime = DateTime.Now;
issues.Add(issueData); issues.Add(issueData);
} }
if (error.Any()) if (error.Any())
return new ApiResponse(ResponseType.Error, "操作被拒绝,详细请看更多信息", error); return new ApiResponse(ResponseType.WarningTable, "操作被拒绝,详细请看更多信息", error);
if (issues.Any()) if (issues.Any())
perforPerAssessIssueSchemeRepository.UpdateRange(issues.ToArray()); perforPerAssessIssueSchemeRepository.UpdateRange(issues.ToArray());
return new ApiResponse(ResponseType.OK); return new ApiResponse(ResponseType.OK);
......
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