Commit ba828a21 by wyc

考核管理优化

parent 6abb1e02
......@@ -38,9 +38,6 @@ public AssessNewController(AssessNewService service, ClaimService claim)
/// 考核类别列表
/// </summary>
/// <param name="allotId"></param>
/// <remarks>
/// 接口很简单,只是展示了考核分类数据(per_assess_category)
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("category/list")]
......@@ -52,13 +49,10 @@ public ApiResponse<List<per_assess_category>> CategoryList([FromQuery] int allot
/// 考核类别新增
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 编码自动生成,不能修改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("category/add")]
public ApiResponse<AddAssessCategoryRequest> CategoryAdd([FromBody] AddAssessCategoryRequest request)
public ApiResponse CategoryAdd([FromBody] AddAssessCategoryRequest request)
{
var userid = claim.GetUserId();
return _service.CategoryAdd(request, userid);
......@@ -67,13 +61,10 @@ public ApiResponse<AddAssessCategoryRequest> CategoryAdd([FromBody] AddAssessCat
/// 考核类别修改
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 编码不能修改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("category/update")]
public ApiResponse<UpdateAssessCategoryRequest> CategoryUpdate([FromBody] UpdateAssessCategoryRequest request)
public ApiResponse CategoryUpdate([FromBody] UpdateAssessCategoryRequest request)
{
var userid = claim.GetUserId();
return _service.CategoryUpdate(request, userid);
......@@ -82,9 +73,6 @@ public ApiResponse<UpdateAssessCategoryRequest> CategoryUpdate([FromBody] Update
/// 考核类别删除
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 允许批量删除,删除时要检查有没有外表引用,提示一起删除
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("category/delete")]
......@@ -97,29 +85,21 @@ public ApiResponse CategoryDelete([FromBody] BatchAssessCategoryRequest request)
/// 考核下发(检查下发受影响的上报内容)
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 类似考勤下发,需要检查受影响的内容返回展示
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("category/issue/check")]
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck([FromBody] BatchAssessCategoryRequest request)
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck([FromBody] UpdateAssessCategoryRequest request)
{
return _service.CategoryIssueCheck(request);
}
/// <summary>
/// 考核下发(把当前考核类别下所有方案下发)
/// </summary>
/// <remarks>
/// 下发分两类数据:
/// 责任科室总清单:考核分类/考核方案/考核指标 三种分类汇总集成到表中
/// 责任科室总清单明细:责任科室总清单 和 被考核核算单元 需要组合到一起存到明细表中
/// </remarks>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("category/issue/confirm")]
public ApiResponse CategoryIssueConfirm([FromBody] BatchAssessCategoryRequest request)
public ApiResponse CategoryIssueConfirm([FromBody] UpdateAssessCategoryRequest request)
{
var userid = claim.GetUserId();
return _service.CategoryIssueConfirm(request, userid);
......@@ -149,7 +129,7 @@ public ApiResponse SchemeList([FromBody] QuerySchemeList query)
/// <returns></returns>
[HttpPost]
[Route("scheme/add")]
public ApiResponse<AddAssessSchemeRequest> SchemeAdd([FromBody] AddAssessSchemeRequest request)
public ApiResponse SchemeAdd([FromBody] AddAssessSchemeRequest request)
{
var userid = claim.GetUserId();
return _service.SchemeAdd(request, userid);
......@@ -357,9 +337,10 @@ public ApiResponse SchemeItemsUpload([FromQuery] int schemeId, int allotId, [Fro
/// <returns></returns>
[HttpPost]
[Route("scheme/items/target/list")]
public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList([FromBody] QuerySchemeItemsTargetList query)
[ProducesResponseType(typeof(PagedList<AssessSchemeTargetResponse>), StatusCodes.Status200OK)]
public ApiResponse SchemeItemsTargetList([FromBody] QuerySchemeItemsTargetList query)
{
return _service.SchemeItemsTargetList(query);
return new ApiResponse(ResponseType.OK, "", _service.SchemeItemsTargetList(query));
}
/// <summary>
......
......@@ -312,9 +312,6 @@
考核类别列表
</summary>
<param name="allotId"></param>
<remarks>
接口很简单,只是展示了考核分类数据(per_assess_category)
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryAdd(Performance.DtoModels.Request.AddAssessCategoryRequest)">
......@@ -322,9 +319,6 @@
考核类别新增
</summary>
<param name="request"></param>
<remarks>
编码自动生成,不能修改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryUpdate(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
......@@ -332,9 +326,6 @@
考核类别修改
</summary>
<param name="request"></param>
<remarks>
编码不能修改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryDelete(Performance.DtoModels.Request.BatchAssessCategoryRequest)">
......@@ -342,30 +333,19 @@
考核类别删除
</summary>
<param name="request"></param>
<remarks>
允许批量删除,删除时要检查有没有外表引用,提示一起删除
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueCheck(Performance.DtoModels.Request.BatchAssessCategoryRequest)">
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueCheck(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
<summary>
考核下发(检查下发受影响的上报内容)
</summary>
<param name="request"></param>
<remarks>
类似考勤下发,需要检查受影响的内容返回展示
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueConfirm(Performance.DtoModels.Request.BatchAssessCategoryRequest)">
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueConfirm(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
<summary>
考核下发(把当前考核类别下所有方案下发)
</summary>
<remarks>
下发分两类数据:
责任科室总清单:考核分类/考核方案/考核指标 三种分类汇总集成到表中
责任科室总清单明细:责任科室总清单 和 被考核核算单元 需要组合到一起存到明细表中
</remarks>
<param name="request"></param>
<returns></returns>
</member>
......
......@@ -2120,6 +2120,11 @@
操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
</summary>
</member>
<member name="P:Performance.DtoModels.Request.EditSchemeEnterAudit.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="P:Performance.DtoModels.Request.EditAssessSchemeEnterRequest.Score">
<summary>
考核扣分
......@@ -3204,6 +3209,21 @@
状态
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.SubmitTime">
<summary>
提交时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AuditBy">
<summary>
审核人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AuditTime">
<summary>
审核时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.Count">
<summary>
总下发数
......@@ -3319,6 +3339,11 @@
审核时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.ItemName1">
<summary>
一级指标名称
......
......@@ -6800,6 +6800,11 @@
审核时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="T:Performance.EntityModels.per_assess_scheme">
<summary>
考核方案
......
......@@ -13,6 +13,7 @@ public class AddAssessCategoryRequest
}
public class UpdateAssessCategoryRequest : AddAssessCategoryRequest
{
public int SchemeId { get; set; }
public int CategoryId { get; set; }
}
public class BatchAssessCategoryRequest
......
......@@ -29,6 +29,10 @@ public class EditSchemeEnterAudit
/// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
/// </summary>
public Assess.AssessState State { get; set; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
}
......
......@@ -46,8 +46,13 @@ public class BatchAssessSchemeItemsRequest
public class QuerySchemeItemsTargetList
{
public int AllotId { get; set; }
public int AssessId { get; set; }
public int SchemeId { get; set; }
public Assess.SchemeItemsTarget SchemeItemsTarget { get; set; }
public string UnitType { get; set; }
public string AccountingUnit { get; set; }
public int Page { get; set; } = 1;
public int PageSize { get; set; } = 20;
}
public class QuerySchemeItemsList
......
......@@ -48,6 +48,7 @@ public class AssessSchemeDataResponse
public class AssessSchemeTargetResponse
{
public int SchemeId { get; set; }
/// <summary>
/// 目标Id
/// </summary>
......@@ -121,6 +122,19 @@ public class AssessSchemeEnterListResponse
/// </summary>
public int State { get; set; }
/// <summary>
/// 提交时间
/// </summary>
public DateTime? SubmitTime { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string? AuditBy { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditTime { get; set; }
/// <summary>
/// 总下发数
/// </summary>
public int Count { get; set; }
......@@ -216,6 +230,10 @@ public class AssessSchemeEnterDetaiListResponse
/// 审核时间
/// </summary>
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
}
//上传
public class AssessSchemeItemsUploadResponse
......
......@@ -65,9 +65,6 @@ public PerAssessmentStatisticsResponse(per_assess_issue_scheme item)
}
/// <summary>
///
/// </summary>
......
......@@ -141,5 +141,9 @@ public class per_assess_issue_scheme
/// 审核时间
/// </summary>
public DateTime? AuditTime { get; set; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
}
}
......@@ -343,15 +343,15 @@ public IEnumerable<view_attendance> GetAttendance(int allotId)
/// <param name="categoryId"></param>
/// <param name="allotId"></param>
/// <returns></returns>
public IEnumerable<view_assess_issue> GetAssessIssue(int[] categoryId, int allotId)
public IEnumerable<view_assess_issue> GetAssessIssue(int allotId)
{
var connection = context.Database.GetDbConnection();
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string query = $@"SELECT * FROM view_assess_issue where AssessId in @categoryId and AllotId = @allotId";
return connection.Query<view_assess_issue>(query, new { categoryId, allotId }, commandTimeout: 60 * 60);
string query = $@"SELECT * FROM view_assess_issue where AllotId = @allotId";
return connection.Query<view_assess_issue>(query, new { allotId }, commandTimeout: 60 * 60);
}
catch (Exception)
{
......
......@@ -47,9 +47,6 @@ public class AssessNewService : IAutoInjection
PerforCofaccountingRepository cofaccountingRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforUserRepository userRepository
)
{
this.mapper = mapper;
......@@ -67,18 +64,12 @@ PerforUserRepository userRepository
#region 考核类别
public ApiResponse<List<per_assess_category>> CategoryList(int allotId)
{
var result = perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allotId).OrderByDescending(w => w.UpdateTime).ToList();
var result = perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allotId);
if (result != null)
result = result.OrderByDescending(w => w.UpdateTime).ToList();
return new ApiResponse<List<per_assess_category>>(ResponseType.OK, result);
else
{
return new ApiResponse<List<per_assess_category>>(ResponseType.NotFound, "暂无数据");
}
}
public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryRequest request, int userid)
public ApiResponse CategoryAdd(AddAssessCategoryRequest request, int userid)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
......@@ -87,67 +78,75 @@ public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryReques
var temp = categoryData.FirstOrDefault(w => w.AllotId == request.AllotId && w.AssessName == request.Category);
if (temp != null)
throw new PerformanceException("当前考核类别已存在");
//查询最大编号或赋初始值
int codeMax = 0;
if (!categoryData.Select(w => w.AssessCode).Any())
codeMax = categoryData.Max(w => int.Parse(w.AssessCode.Substring(1)));
var assessCode = "";
if (codeMax <= 999)
{
assessCode = "A" + (codeMax + 1).ToString("D3");
}
else
{
assessCode = "A" + (codeMax + 1).ToString();
}
if (categoryData.Any())
int.TryParse(categoryData.Max(w => w.AssessCode.Substring(1)), out codeMax);
string assessCode = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}";
var dateTime = DateTime.Now;
var per_assess_category = new per_assess_category()
{
AllotId = request.AllotId,
AssessCode = assessCode,
AssessName = request.Category,
CreateBy = userid,
CreateTime = DateTime.Now,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = DateTime.Now,
UpdateTime = dateTime,
};
if (perforPerAssessCategoryRepository.Add(per_assess_category)) return new ApiResponse<AddAssessCategoryRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessCategoryRequest>(ResponseType.Fail, "添加失败");
if (perforPerAssessCategoryRepository.Add(per_assess_category))
return new ApiResponse(ResponseType.OK, "添加成功");
else return new ApiResponse(ResponseType.Fail, "添加失败");
}
public ApiResponse<UpdateAssessCategoryRequest> CategoryUpdate(UpdateAssessCategoryRequest request, int userid)
public ApiResponse CategoryUpdate(UpdateAssessCategoryRequest request, int userid)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var any = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (any == null)
throw new PerformanceException("当前操作错误,请刷新后重试");
any.AllotId = request.AllotId;
any.AssessName = request.Category;
any.UpdateBy = userid;
any.UpdateTime = DateTime.Now;
if (perforPerAssessCategoryRepository.Update(any)) return new ApiResponse<UpdateAssessCategoryRequest>(ResponseType.OK, "修改成功");
else return new ApiResponse<UpdateAssessCategoryRequest>(ResponseType.Fail, "修改失败");
var dateTime = DateTime.Now;
any.UpdateTime = dateTime;
if (perforPerAssessCategoryRepository.Update(any))
return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败");
}
public ApiResponse CategoryDelete(BatchAssessCategoryRequest request)
{
var temp = perforPerAssessSchemeRepository.GetEntity(w => request.CategoryId.Contains(w.AssessId));
if (temp != null || temp?.Id > 0)
throw new PerformanceException("请先删除类别下的方案");
var any = perforPerAssessCategoryRepository.GetEntities(w => request.CategoryId.Contains(w.Id)).ToList();
if (perforPerAssessCategoryRepository.RemoveRange(any.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
var any = perforPerAssessCategoryRepository.GetEntities(w => request.CategoryId.Contains(w.Id));
if (any == null)
throw new PerformanceException("当前操作错误,请刷新后重试");
if (perforPerAssessCategoryRepository.RemoveRange(any.ToArray()))
return new ApiResponse(ResponseType.OK, "删除成功");
else return new ApiResponse(ResponseType.Fail, "删除失败");
}
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(BatchAssessCategoryRequest request)
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(UpdateAssessCategoryRequest request)
{
if (request.AllotId <= 0)
throw new PerformanceException("绩效记录不存在");
var issueDatas = perforPerallotRepository.GetAssessIssue(request.CategoryId, request.AllotId);
var issueSchemeDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => request.CategoryId.Contains(w.AssessId));
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var issueDatas = perforPerallotRepository.GetAssessIssue(request.AllotId);
var issueSchemeDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == request.AllotId);
if (request.CategoryId > 0)
{
issueDatas = issueDatas.Where(w => w.AssessId == request.CategoryId).ToList();
issueSchemeDatas = issueSchemeDatas.Where(w => w.AssessId == request.CategoryId).ToList();
}
if (request.SchemeId > 0)
{
issueDatas = issueDatas.Where(w => w.SchemeId == request.SchemeId).ToList();
issueSchemeDatas = issueSchemeDatas.Where(w => w.SchemeId == request.SchemeId).ToList();
}
var statisticdates = new List<PerAssessmentStatisticsResponse>();
Func<per_assess_issue_scheme, view_assess_issue, bool> func = (schemes, issues) =>
{
var result =
schemes.AllotId == issues.AllotId &&
schemes.AssessId == issues.AssessId &&
schemes.AssessCode == issues.AssessCode &&
schemes.AssessName == issues.AssessName &&
......@@ -162,8 +161,8 @@ public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(Bat
schemes.UnitType == issues.UnitType &&
schemes.AccountingUnit == issues.AccountingUnit &&
schemes.TargetUnitCode == issues.TargetUnitCode &&
schemes.TargetUnitType == issues.UnitType &&
schemes.TargetAccountingUnit == issues.AccountingUnit;
schemes.TargetUnitType == issues.TargetUnitType &&
schemes.TargetAccountingUnit == issues.TargetAccountingUnit;
return result;
};
statisticdates = issueDatas.Select(issue =>
......@@ -197,14 +196,24 @@ public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(Bat
return new ApiResponse<List<PerAssessmentStatisticsResponse>>(ResponseType.OK, statisticdates);
}
//考核下发(把当前考核类别下所有方案下发)
public ApiResponse CategoryIssueConfirm(BatchAssessCategoryRequest request, int userid)
public ApiResponse CategoryIssueConfirm(UpdateAssessCategoryRequest request, int userid)
{
var categoryIssueCheck = CategoryIssueCheck(request).Data;
var schemedatas = perforPerAssessIssueSchemeRepository.GetEntities(w => request.CategoryId.Contains(w.AssessId));
if (categoryIssueCheck == null)
throw new PerformanceException("暂无数据需要下发");
var schemedatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == request.AllotId);
if (request.CategoryId > 0)
{
schemedatas = schemedatas.Where(w => w.AssessId == request.CategoryId).ToList();
}
if (request.SchemeId > 0)
{
schemedatas = schemedatas.Where(w => w.SchemeId == request.SchemeId).ToList();
}
var insertIssueChecks = categoryIssueCheck.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList();
var updateIssueChecks = categoryIssueCheck.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
var deleteIssueChecks = categoryIssueCheck.Where(w => w.OperationType == (int)Attendance.OperationType.删除).Select(w => w.Id).ToList();
var dateTime = DateTime.Now;
if (insertIssueChecks.Any())
{
var inserts = insertIssueChecks.Select(item =>
......@@ -234,9 +243,9 @@ public ApiResponse CategoryIssueConfirm(BatchAssessCategoryRequest request, int
TargetAccountingUnit = item.TargetAccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = userid,
CreateTime = DateTime.Now,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = DateTime.Now,
UpdateTime = dateTime,
};
}).ToList();
perforPerAssessIssueSchemeRepository.AddRange(inserts.ToArray());
......@@ -264,17 +273,20 @@ public ApiResponse CategoryIssueConfirm(BatchAssessCategoryRequest request, int
data.AssessNorm = item.AssessNorm;
data.UnitCode = item.UnitCode;
data.UnitType = item.UnitType;
data.Score = 0;
data.ScoreRemark = "";
data.AccountingUnit = item.AccountingUnit;
data.TargetUnitCode = item.TargetUnitCode;
data.TargetUnitType = item.TargetUnitType;
data.TargetAccountingUnit = item.TargetAccountingUnit;
data.State = (int)Assess.AssessState.未提交;
data.UpdateBy = userid;
data.UpdateTime = DateTime.Now;
data.UpdateTime = dateTime;
data.SubmitBy = null;
data.SubmitTime = null;
data.AuditBy = null;
data.AuditTime = null;
data.AuditRemark = null;
updateIssuedates.Add(data);
}
perforPerAssessIssueSchemeRepository.UpdateRange(updateIssuedates.ToArray());
......@@ -284,11 +296,9 @@ public ApiResponse CategoryIssueConfirm(BatchAssessCategoryRequest request, int
var daletes = schemedatas.Where(w => deleteIssueChecks.Contains(w.Id)).ToList();
perforPerAssessIssueSchemeRepository.RemoveRange(daletes.ToArray());
}
perforPerallotRepository.PerAssessIssueSchemeBackup(request.AllotId);
return new ApiResponse(ResponseType.OK, "下发成功");
}
#endregion
#region 考核方案
public PagedList<AssessSchemeDataResponse> SchemeList(QuerySchemeList query)
......@@ -309,10 +319,10 @@ public PagedList<AssessSchemeDataResponse> SchemeList(QuerySchemeList query)
if (!string.IsNullOrEmpty(query.SchemeName))
result = result.Where(w => w.SchemeName.Contains(query.SchemeName)).ToList();
var totalItems = result.Count();
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize);
return new PagedList<AssessSchemeDataResponse>(result, totalItems, query.Page, query.PageSize);
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeDataResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest request, int userid)
public ApiResponse SchemeAdd(AddAssessSchemeRequest request, int userid)
{
var categorydata = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (categorydata == null)
......@@ -323,17 +333,10 @@ public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest requ
throw new PerformanceException("当前考核方案已存在");
//查询最大编号或赋初始值
int codeMax = 0;
if (!schemeData.Select(w => w.SchemeCode).Any())
codeMax = schemeData.Max(w => int.Parse(w.SchemeCode.Substring(1)));
var schemeCode = "";
if (codeMax <= 999999)
{
schemeCode = "A" + (codeMax + 1).ToString("D6");
}
else
{
schemeCode = "A" + (codeMax + 1).ToString();
}
if (schemeData.Any())
int.TryParse(schemeData.Max(w => w.SchemeCode.Substring(1)), out codeMax);
string schemeCode = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}";
var dateTime = DateTime.Now;
var per_assess_scheme = new per_assess_scheme()
{
AllotId = categorydata.AllotId,
......@@ -341,12 +344,13 @@ public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest requ
SchemeCode = schemeCode,
SchemeName = request.SchemeName,
CreateBy = userid,
CreateTime = DateTime.Now,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = DateTime.Now,
UpdateTime = dateTime,
};
if (perforPerAssessSchemeRepository.Add(per_assess_scheme)) return new ApiResponse<AddAssessSchemeRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessSchemeRequest>(ResponseType.Fail, "添加失败");
if (perforPerAssessSchemeRepository.Add(per_assess_scheme))
return new ApiResponse(ResponseType.OK, "添加成功");
else return new ApiResponse(ResponseType.Fail, "添加失败");
}
public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeRequest request, int userid)
{
......@@ -397,9 +401,6 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
using (ExcelPackage package = new ExcelPackage(fs))
{
var worksheet = package.Workbook.Worksheets.Add(name);
if (rows != null && rows.Count() > 0)
{
for (int col = 0; col < headList.Count; col++)
{
worksheet.SetValue(1, col + 1, headList[col].Alias);
......@@ -434,7 +435,6 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
worksheet.Column(col).Width = worksheet.Column(col).Width > 20 ? 20 : worksheet.Column(col).Width;
}
#endregion
}
package.Save();
}
return filepath;
......@@ -449,8 +449,8 @@ public PagedList<per_assess_scheme_items> SchemeItemsList(QuerySchemeItemsList q
&& (string.IsNullOrEmpty(query.AccountingUnit) || w.AccountingUnit.Contains(query.AccountingUnit))
&& (string.IsNullOrEmpty(query.ItemName2) || w.ItemName2.Contains(query.ItemName2))).ToList();
var totalItems = result.Count();
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize);
return new PagedList<per_assess_scheme_items>(result, totalItems, query.Page, query.PageSize);
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<per_assess_scheme_items>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
// 考核指标项新增
public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeItemsRequest request, int userid)
......@@ -466,26 +466,19 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt
if (temp != null)
throw new PerformanceException("当前指标已存在");
int codeMax = 0;
if (categoryData.Select(w => w.ItemCode).Any())
codeMax = categoryData.Max(w => int.Parse(w.ItemCode.Substring(1)));
var code = "";
if (codeMax <= 9999)
{
code = "A" + (codeMax + 1).ToString("D4");
}
else
{
code = "A" + (codeMax + 1).ToString();
}
if (categoryData.Any())
int.TryParse(categoryData.Max(w => w.ItemCode.Substring(1)), out codeMax);
string code = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}";
var dateTime = DateTime.Now;
var data = mapper.Map<per_assess_scheme_items>(request);
data.AllotId = request.AllotId;
data.AssessId = scheme.AssessId;
data.ItemCode = code;
data.UnitCode = cofAccounting.Code;
data.CreateBy = userid;
data.CreateTime = DateTime.Now;
data.CreateTime = dateTime;
data.UpdateBy = userid;
data.UpdateTime = DateTime.Now;
data.UpdateTime = dateTime;
if (perforPerAssessSchemeItemsRepository.Add(data)) return new ApiResponse<AddAssessSchemeItemsRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessSchemeItemsRequest>(ResponseType.Fail, "添加失败");
}
......@@ -516,15 +509,15 @@ public ApiResponse SchemeItemsDelete(BatchAssessSchemeItemsRequest request)
else return new ApiResponse(ResponseType.Fail, "删除失败");
}
//考核对象核算单元列表清单
public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList(QuerySchemeItemsTargetList query)
public PagedList<AssessSchemeTargetResponse> SchemeItemsTargetList(QuerySchemeItemsTargetList query)
{
//查询全部的方案
var schemes = perforPerAssessSchemeRepository.GetEntities(w => w.AllotId == query.AllotId);
//查询方案的考核对象
var schemeTargets = perforPerAssessSchemeTargetRepository.GetEntities(w => w.AllotId == query.AllotId);
var schemeTargets = perforPerAssessSchemeTargetRepository.GetEntities(w => w.AssessId == query.AssessId && w.AllotId == query.AllotId);
//查询当前方案的考核对象
var currentTargers = schemeTargets.Where(w => w.SchemeId == query.SchemeId).ToList();
//查询其他方案的考核对象
////查询其他方案的考核对象
var otherTargers = schemeTargets.Where(w => w.SchemeId != query.SchemeId).ToList();
//查询全部的核算单元
var cofaccounting = cofaccountingRepository.GetEntities(w => w.AllotId == query.AllotId);
......@@ -538,6 +531,7 @@ public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList(Query
if (currentScheme?.Id > 0)
{
data.TargetId = currentScheme.Id;
data.SchemeId = currentScheme.SchemeId;
data.CreateBy = currentScheme.CreateBy;
data.CreateTime = currentScheme.CreateTime;
data.UpdateBy = currentScheme.UpdateBy;
......@@ -547,6 +541,8 @@ public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList(Query
}
else if (otherScheme?.Id > 0)
{
data.TargetId = otherScheme.Id;
data.SchemeId = otherScheme.SchemeId;
data.SchemeName = schemes.Where(w => w.Id == otherScheme.SchemeId).FirstOrDefault().SchemeName;
data.SchemeState = (int)Assess.SchemeItemsTarget.已设置其他方案;
}
......@@ -560,9 +556,13 @@ public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList(Query
if ((int)query.SchemeItemsTarget == (int)Assess.SchemeItemsTarget.未设置方案)
result = result.Where(w => w.SchemeState == (int)query.SchemeItemsTarget).ToList();
if ((int)query.SchemeItemsTarget == (int)Assess.SchemeItemsTarget.已设置方案)
result = result.Where(w => w.SchemeState != (int)Assess.SchemeItemsTarget.未设置方案).OrderByDescending(w => w.UpdateTime).ToList();
result = result.Where(w => w.SchemeState == (int)Assess.SchemeItemsTarget.已设置方案).ToList();
result = result.OrderBy(w => Array.IndexOf(stateOrders, w.SchemeState)).ToList();
return new ApiResponse<List<AssessSchemeTargetResponse>>(ResponseType.OK, result);
result = result.Where(w => (string.IsNullOrEmpty(query.UnitType) || w.UnitType.Contains(query.UnitType))
&& (string.IsNullOrEmpty(query.AccountingUnit) || w.AccountingUnit.Contains(query.AccountingUnit))).ToList();
var totalItems = result.Count();
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeTargetResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
// 考核对象核算单元保存
public ApiResponse SchemeItemsTargetSave(TargetAssessSchemeItemsRequest request, int userid)
......@@ -571,7 +571,7 @@ public ApiResponse SchemeItemsTargetSave(TargetAssessSchemeItemsRequest request,
throw new PerformanceException("当前没有需要添加或者修改的内容");
var schemes = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId);
var dateTime = DateTime.Now;
foreach (var item in request.SchemeTargetResponse)
{
var any = perforPerAssessSchemeTargetRepository.GetEntity(w => w.Id == item.TargetId);
......@@ -581,7 +581,7 @@ public ApiResponse SchemeItemsTargetSave(TargetAssessSchemeItemsRequest request,
any.AssessId = schemes.AssessId;
any.SchemeId = request.SchemeId;
any.UpdateBy = userid;
any.UpdateTime = DateTime.Now;
any.UpdateTime = dateTime;
perforPerAssessSchemeTargetRepository.Update(any);
}
else
......@@ -592,9 +592,9 @@ public ApiResponse SchemeItemsTargetSave(TargetAssessSchemeItemsRequest request,
data.SchemeId = request.SchemeId;
data.UnitCode = item.Code;
data.CreateBy = userid;
data.CreateTime = DateTime.Now;
data.CreateTime = dateTime;
data.UpdateBy = userid;
data.UpdateTime = DateTime.Now;
data.UpdateTime = dateTime;
perforPerAssessSchemeTargetRepository.Add(data);
}
}
......@@ -725,17 +725,9 @@ public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload
{
t.sort = sort++;
int codeMax = 0;
if (itemsDatas.Select(w => w.ItemCode).Any())
codeMax = itemsDatas.Max(w => int.Parse(w.ItemCode.Substring(1)));
var code = "";
if (codeMax <= 9999)
{
code = "A" + (codeMax + sort).ToString("D4");
}
else
{
code = "A" + (codeMax + sort).ToString();
}
if (itemsDatas.Any())
int.TryParse(itemsDatas.Max(w => w.ItemCode.Substring(1)), out codeMax);
string code = codeMax <= 999 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}";
t.ItemCode = code;
});
var dataUpdates = upload.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
......@@ -746,6 +738,7 @@ public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload
from temp2 in tempJoin.DefaultIfEmpty()
where temp2 == null
select temp1;
var dateTime = DateTime.Now;
if (dataAdds.Any())
{
var inserts = dataAdds.Select(item =>
......@@ -764,9 +757,9 @@ public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload
UnitType = item.UnitType,
AccountingUnit = item.AccountingUnit,
CreateBy = userid,
CreateTime = DateTime.Now,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = DateTime.Now,
UpdateTime = dateTime,
};
}).ToList();
perforPerAssessSchemeItemsRepository.AddRange(inserts.ToArray());
......@@ -786,7 +779,7 @@ public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload
itemsData.UnitType = item.UnitType;
itemsData.AccountingUnit = item.AccountingUnit;
itemsData.UpdateBy = userid;
itemsData.UpdateTime = DateTime.Now;
itemsData.UpdateTime = dateTime;
itemsdatas.Add(itemsData);
}
perforPerAssessSchemeItemsRepository.UpdateRange(itemsdatas.ToArray());
......@@ -820,6 +813,9 @@ public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allo
ItemId = w.Key.ItemId,
ItemName2 = w.Key.ItemName2,
Count = w.Count(),
SubmitTime = w.OrderByDescending(o => o.SubmitTime).Select(s => s.SubmitTime).FirstOrDefault(),
AuditBy = w.OrderByDescending(o => o.AuditTime).Select(s => s.AuditBy).FirstOrDefault(),
AuditTime = w.OrderByDescending(o => o.AuditTime).Select(s => s.AuditTime).FirstOrDefault(),
ConfirmCount = 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.待审核)
......@@ -846,11 +842,12 @@ public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(Query
(string.IsNullOrEmpty(query.ItemName2) || w.ItemName2.Contains(query.ItemName2))
).ToList();
var stateOrders = new int[] { (int)Assess.AssessState.待审核, (int)Assess.AssessState.驳回, (int)Assess.AssessState.审核通过, (int)Assess.AssessState.未提交 };
var datas = mapper.Map<List<AssessSchemeEnterDetaiListResponse>>(issueSchemes);
datas = datas.OrderBy(w => stateOrders.Contains(w.State) ? Array.IndexOf(stateOrders, w.State) : int.MaxValue).ToList();
var totalItems = issueSchemes.Count();
var pagedIssueSchemes = issueSchemes.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize);
var datas = mapper.Map<List<AssessSchemeEnterDetaiListResponse>>(pagedIssueSchemes);
datas = datas.OrderBy(w => stateOrders.Contains(w.State) ? Array.IndexOf(stateOrders, w.State) : int.MaxValue).OrderByDescending(w => w.UpdateTime).ToList();
return new PagedList<AssessSchemeEnterDetaiListResponse>(datas, totalItems, query.Page, query.PageSize);
var pagedIssueSchemes = datas.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeEnterDetaiListResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName)
{
......@@ -858,12 +855,12 @@ public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName)
var temp = issueSchemes.FirstOrDefault(w => w.State == (int)Assess.AssessState.未提交);
if (temp != null || temp?.Id > 0)
throw new PerformanceException("未提交的数据无法审核");
var dateTime = DateTime.Now;
foreach (var issueScheme in issueSchemes)
{
issueScheme.State = (int)audit.State;
issueScheme.AuditBy = realName;
issueScheme.AuditTime = DateTime.Now;
issueScheme.AuditTime = dateTime;
}
perforPerAssessIssueSchemeRepository.UpdateRange(issueSchemes.ToArray());
return new ApiResponse(ResponseType.OK, "修改成功");
......@@ -886,11 +883,12 @@ public ApiResponse SchemeEnterSubmit(int allotId, int itemId, int userid)
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == allotId && w.ItemId == itemId);
if (!issueSchemes.Any())
throw new PerformanceException("未找到需要提交的数据,请稍后在试");
var dateTime = DateTime.Now;
foreach (var item in issueSchemes)
{
item.State = (int)Assess.AssessState.待审核;
item.SubmitBy = userid;
item.SubmitTime = DateTime.Now;
item.SubmitTime = dateTime;
}
if (perforPerAssessIssueSchemeRepository.UpdateRange(issueSchemes.ToArray())) return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败");
......
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