|  | @@ -2325,38 +2325,84 @@ OPTION (MAXRECURSION 0); -- 允许无限递归      ";
 | 
												
													
														
															|  |              var jw = JsonView(false,"请传入正确的数据!");
 |  |              var jw = JsonView(false,"请传入正确的数据!");
 | 
												
													
														
															|  |              if (dto.Data.Any()) {
 |  |              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);
 |  |              return Ok(jw);
 | 
												
													
														
															|  |          }
 |  |          }
 |