|
@@ -2325,38 +2325,84 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
var jw = JsonView(false,"请传入正确的数据!");
|
|
|
if (dto.Data.Any()) {
|
|
|
|
|
|
- var ids = dto.Data.Select(x => x.AssessmentContentSettingId).ToList();
|
|
|
- var QueryContent_DB = _sqlSugar.Queryable<Per_AssessmentContentSetting>()
|
|
|
- .InnerJoin<Per_AssessmentSetting>((a, b) => b.IsDel == 0 && a.AssessmentSettingId == b.Id)
|
|
|
- .Where((a, b) => a.IsDel == 0 && ids.Contains(a.Id))
|
|
|
- .Select((a, b) => new
|
|
|
- {
|
|
|
- ContentSettingId = a.Id,
|
|
|
- SettingId = b.Id,
|
|
|
- a.TargetValue,
|
|
|
- b.AssessmentStandard,
|
|
|
- MergeStr = $"【项名称:{b.Name}/目标值:{a.TargetValue}/评估标准:{b.AssessmentStandard}】"
|
|
|
- })
|
|
|
- .ToList()
|
|
|
- .ToDictionary(x=> x.ContentSettingId);
|
|
|
-
|
|
|
- //删除上级未确认数据
|
|
|
- //添加新数据
|
|
|
-
|
|
|
- var entityList = dto.Data.Select(x => new Per_AssessmentScore
|
|
|
+ if (!DateTime.TryParse(dto.AssessmenData, out DateTime yearMonth_Dt))
|
|
|
{
|
|
|
- Id = x.ScoreId,
|
|
|
- AssessmentContentSettingId = x.AssessmentContentSettingId,
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- CreateUserId = dto.CreateUserId,
|
|
|
- Details = QueryContent_DB[x.AssessmentContentSettingId].MergeStr,
|
|
|
- HigherUpAssessment = x.HigherUpAssessment,
|
|
|
- HigherUpUserId = x.LeadersId,
|
|
|
- HigherUpConfig = 0,
|
|
|
- SelfAssessment = x.SelfAssessment,
|
|
|
- IsDel = 0,
|
|
|
- })
|
|
|
- .ToList();
|
|
|
+ jw.Data = "月份参数有误!";
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var ids = dto.Data.Select(x => x.AssessmentContentSettingId).ToList();
|
|
|
+ var QueryContent_DB = _sqlSugar.Queryable<Per_AssessmentContentSetting>()
|
|
|
+ .InnerJoin<Per_AssessmentSetting>((a, b) => b.IsDel == 0 && a.AssessmentSettingId == b.Id)
|
|
|
+ .Where((a, b) => a.IsDel == 0 && ids.Contains(a.Id))
|
|
|
+ .Select((a, b) => new
|
|
|
+ {
|
|
|
+ ContentSettingId = a.Id,
|
|
|
+ SettingId = b.Id,
|
|
|
+ a.TargetValue,
|
|
|
+ b.AssessmentStandard,
|
|
|
+ MergeStr = $"【项名称:{b.Name}/目标值:{a.TargetValue}/评估标准:{b.AssessmentStandard}】",
|
|
|
+ a.AssessmentProportionChi,
|
|
|
+ b.Name
|
|
|
+ })
|
|
|
+ .ToList()
|
|
|
+ .ToDictionary(x => x.ContentSettingId);
|
|
|
+
|
|
|
+ //删除上级未确认数据
|
|
|
+ var expressionWhere = Expressionable
|
|
|
+ .Create<Per_AssessmentScore>()
|
|
|
+ .And(x => x.YearMonth.Year == yearMonth_Dt.Year && x.YearMonth.Month == yearMonth_Dt.Month)
|
|
|
+ .And(x => ids.Contains(x.AssessmentContentSettingId))
|
|
|
+ .And(x => x.HigherUpConfig == 0)
|
|
|
+ .ToExpression();
|
|
|
+ _sqlSugar.BeginTran();
|
|
|
+ _sqlSugar.Updateable<Per_AssessmentScore>()
|
|
|
+ .Where(expressionWhere)
|
|
|
+ .SetColumns(x => new Per_AssessmentScore { IsDel = 1, DeleteUserId = dto.CreateUserId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") })
|
|
|
+ .ExecuteCommand();
|
|
|
+
|
|
|
+ var entityList = new List<Per_AssessmentScore>();
|
|
|
+ foreach (var x in dto.Data)
|
|
|
+ {
|
|
|
+ if (x.HigherUpAssessment > 100 || x.SelfAssessment > 100)
|
|
|
+ {
|
|
|
+ jw.Msg = QueryContent_DB[x.AssessmentContentSettingId].Name + "项分数不能超过100。";
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ Per_AssessmentScore item = new Per_AssessmentScore
|
|
|
+ {
|
|
|
+ AssessmentContentSettingId = x.AssessmentContentSettingId,
|
|
|
+ CreateTime = DateTime.Now,
|
|
|
+ CreateUserId = dto.CreateUserId,
|
|
|
+ Details = QueryContent_DB[x.AssessmentContentSettingId].MergeStr,
|
|
|
+ HigherUpAssessment = x.HigherUpAssessment,
|
|
|
+ HigherUpUserId = x.LeadersId,
|
|
|
+ HigherUpConfig = x.HigherUpAssessment > 0 ? 1 : 0,
|
|
|
+ SelfAssessment = x.SelfAssessment,
|
|
|
+ IsDel = 0,
|
|
|
+ Status = x.Status,
|
|
|
+ YearMonth = yearMonth_Dt,
|
|
|
+ Score = x.SelfAssessment * 0.3M + x.HigherUpAssessment * 0.7M,
|
|
|
+ ScoreTotal = (x.SelfAssessment * 0.3M + x.HigherUpAssessment * 0.7M) * QueryContent_DB[x.AssessmentContentSettingId].AssessmentProportionChi,
|
|
|
+ };
|
|
|
+ entityList.Add(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ var influenceRow = _sqlSugar.Insertable(entityList).ExecuteCommand();
|
|
|
+ _sqlSugar.CommitTran();
|
|
|
+ jw.Code = 200;
|
|
|
+ jw.Data = $"{influenceRow}条数据操作成功!";
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ jw.Code = 500;
|
|
|
+ jw.Data = $"API ERROR ({ex.Message})";
|
|
|
+ }
|
|
|
}
|
|
|
return Ok(jw);
|
|
|
}
|