333 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			333 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
| using BLL;
 | ||
| using Newtonsoft.Json.Linq;
 | ||
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Data;
 | ||
| using System.Data.SqlClient;
 | ||
| using System.Linq;
 | ||
| 
 | ||
| namespace FineUIPro.Web.OfficeCheck.Check
 | ||
| {
 | ||
|     public partial class CheckContentEdit1 : PageBase
 | ||
|     {
 | ||
|         #region 定义项
 | ||
|         /// <summary>
 | ||
|         /// 主键
 | ||
|         /// </summary>
 | ||
|         public string CheckNoticeId
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 return (string)ViewState["CheckNoticeId"];
 | ||
|             }
 | ||
|             set
 | ||
|             {
 | ||
|                 ViewState["CheckNoticeId"] = value;
 | ||
|             }
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         #region 加载
 | ||
|         protected void Page_Load(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (!IsPostBack)
 | ||
|             {
 | ||
|                 this.GetButtonPower();
 | ||
|                 BLL.ProjectService.InitAllProjectDropDownList(this.drpSubjectProject, true);
 | ||
|                 string type = Request.Params["type"];//查看
 | ||
|                 if (type == "1")
 | ||
|                 {
 | ||
|                     this.btnSave.Hidden = true;
 | ||
|                 }
 | ||
|                 this.CheckNoticeId = Request.Params["CheckNoticeId"];
 | ||
|                 if (!string.IsNullOrEmpty(this.CheckNoticeId))
 | ||
|                 {
 | ||
|                     var table1 = BLL.CheckTable1Service.GetCheckTable1ByCheckNoticeId(this.CheckNoticeId);
 | ||
|                     if (table1 != null)
 | ||
|                     {
 | ||
|                         if (!string.IsNullOrEmpty(table1.SubjectProjectId))
 | ||
|                         {
 | ||
|                             this.drpSubjectProject.SelectedValue = table1.SubjectProjectId;
 | ||
|                         }
 | ||
|                         if (!string.IsNullOrEmpty(table1.CheckMan))
 | ||
|                         {
 | ||
|                             this.txtCheckMan.Text = table1.CheckMan;
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             this.txtCheckMan.Text = this.CurrUser.UserName;
 | ||
|                         }
 | ||
|                         this.txtCheckLeader.Text = table1.CheckLeader;
 | ||
|                         this.txtSubjectUnitMan.Text = table1.SubjectUnitMan;
 | ||
|                         this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", table1.CheckDate);
 | ||
|                         this.txtSubjectUnitDate.Text = string.Format("{0:yyyy-MM-dd}", table1.SubjectUnitDate);
 | ||
|                         if (table1.Total100Score.HasValue)
 | ||
|                         {
 | ||
|                             this.lbTotal100Score.Text = "本表百分制得分 = (实查项实得分之和/实查项应得满分之和*100)   " + table1.Total100Score + "   分";
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             this.lbTotal100Score.Text = "本表百分制得分 = (实查项实得分之和/实查项应得满分之和*100)       分";
 | ||
|                         }
 | ||
| 
 | ||
|                         if (table1.TotalLastScore.HasValue)
 | ||
|                         {
 | ||
|                             this.lbTotalLastScore.Text = "综合评定得分 = 本表得分 - 负面清单罚分 =   " + table1.TotalLastScore + "   分";
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             this.lbTotalLastScore.Text = "综合评定得分 = 本表得分 - 负面清单罚分 =       分";
 | ||
|                         }
 | ||
| 
 | ||
|                         this.lbEvaluationResult.Text = table1.EvaluationResult;
 | ||
|                     }
 | ||
|                     this.BindGrid();
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         #region 数据绑定
 | ||
|         private void BindGrid()
 | ||
|         {
 | ||
|             string strSql = @"SELECT [ID], 
 | ||
|                                      [SortIndex], 
 | ||
|                                      [CheckItem], 
 | ||
|                                      [CheckStandard], 
 | ||
|                                      [CheckMethod], 
 | ||
|                                      [CheckResult], 
 | ||
|                                      [BaseScore], 
 | ||
|                                      [DeletScore], 
 | ||
|                                      [GetScore], 
 | ||
|                                      [Type], 
 | ||
|                                      [CheckNoticeId]"
 | ||
|                          + @" FROM ProjectSupervision_Check1"
 | ||
|                          + @" WHERE Type='1' AND CheckNoticeId=@CheckNoticeId ORDER BY SortIndex";
 | ||
|             SqlParameter[] parameter = new SqlParameter[]
 | ||
|                     {
 | ||
|                         new SqlParameter("@CheckNoticeId",this.CheckNoticeId),
 | ||
|                     };
 | ||
|             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | ||
|             this.Grid1.DataSource = tb;
 | ||
|             //求和
 | ||
|             this.OutputSummaryData(tb);
 | ||
| 
 | ||
|             if (tb.Rows.Count == 0)
 | ||
|             {
 | ||
|                 string strSql2 = @"SELECT [ID], 
 | ||
|                                           [SortIndex], 
 | ||
|                                           [CheckItem], 
 | ||
|                                           [CheckStandard], 
 | ||
|                                           [CheckMethod], 
 | ||
|                                           [BaseScore], 
 | ||
|                                           [Type], 
 | ||
|                                           [Indexs],
 | ||
|                                           NULL as DeletScore,
 | ||
|                                           [BaseScore] AS GetScore"
 | ||
|                             + @" FROM [dbo].[ProjectSupervision_CheckTemplate]"
 | ||
|                             + @" WHERE Type='1' ORDER BY [Indexs]";
 | ||
|                 List<SqlParameter> listStr2 = new List<SqlParameter>();
 | ||
| 
 | ||
|                 SqlParameter[] parameter2 = listStr2.ToArray();
 | ||
|                 DataTable tb2 = SQLHelper.GetDataTableRunText(strSql2, parameter2);
 | ||
|                 this.Grid1.DataSource = tb2;
 | ||
|                 //求和
 | ||
|                 this.OutputSummaryData(tb2);
 | ||
|             }
 | ||
|             this.Grid1.DataBind();
 | ||
|         }
 | ||
|         /// <summary>
 | ||
|         /// 合计值
 | ||
|         /// </summary>
 | ||
|         /// <param name="source"></param>
 | ||
|         private void OutputSummaryData(DataTable source)
 | ||
|         {
 | ||
|             decimal baseScoreTotal = 0;
 | ||
|             decimal deletScoreTotal = 0;
 | ||
|             decimal getScoreTotal = 0;
 | ||
|             List<string> lists = new List<string>();
 | ||
|             foreach (DataRow row in source.Rows)
 | ||
|             {
 | ||
|                 var checks = BLL.ProjectSupervision_Check1Service.GetCheck1ByCheckItem(row["CheckItem"].ToString(), this.CheckNoticeId);
 | ||
|                 if (checks != null)
 | ||
|                 {
 | ||
|                     if (!lists.Contains(checks.CheckItem))
 | ||
|                     {
 | ||
|                         baseScoreTotal += Funs.GetNewDecimalOrZero(row["BaseScore"].ToString());
 | ||
|                         deletScoreTotal += Funs.GetNewDecimalOrZero(row["DeletScore"].ToString());
 | ||
|                         getScoreTotal += Funs.GetNewDecimalOrZero(row["GetScore"].ToString());
 | ||
| 
 | ||
|                         lists.Add(row["CheckItem"].ToString());
 | ||
|                     }
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     var temp = Funs.DB.ProjectSupervision_CheckTemplate.FirstOrDefault(x => x.CheckItem == row["CheckItem"].ToString() && x.Type == "1");
 | ||
|                     if (temp != null)
 | ||
|                     {
 | ||
|                         if (!lists.Contains(temp.CheckItem))
 | ||
|                         {
 | ||
|                             baseScoreTotal += Funs.GetNewDecimalOrZero(row["BaseScore"].ToString());
 | ||
|                             deletScoreTotal += Funs.GetNewDecimalOrZero(row["DeletScore"].ToString());
 | ||
|                             getScoreTotal += Funs.GetNewDecimalOrZero(row["GetScore"].ToString());
 | ||
| 
 | ||
|                             lists.Add(row["CheckItem"].ToString());
 | ||
|                         }
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             JObject summary = new JObject();
 | ||
|             summary.Add("CheckItem", "合计分");
 | ||
|             summary.Add("BaseScore", baseScoreTotal);
 | ||
|             summary.Add("DeletScore", deletScoreTotal);
 | ||
|             summary.Add("GetScore", getScoreTotal);
 | ||
|             this.Grid1.SummaryData = summary;
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         #region 排序
 | ||
|         /// <summary>
 | ||
|         /// 排序
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | ||
|         {
 | ||
|             BindGrid();
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         #region 保存按钮事件
 | ||
|         /// <summary>
 | ||
|         ///  保存按钮事件
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void btnSave_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (this.drpSubjectProject.SelectedValue == BLL.Const._Null)
 | ||
|             {
 | ||
|                 Alert.ShowInTop("请选择项目名称!", MessageBoxIcon.Warning);
 | ||
|                 return;
 | ||
|             }
 | ||
|             if (this.Grid1.GetModifiedData().Count > 0)
 | ||
|             {
 | ||
|                 BLL.ProjectSupervision_Check1Service.DeleteCheckByNoticeId(this.CheckNoticeId);
 | ||
| 
 | ||
|                 JArray teamGroupData = this.Grid1.GetMergedData();
 | ||
|                 foreach (JObject teamGroupRow in teamGroupData)
 | ||
|                 {
 | ||
|                     JObject values = teamGroupRow.Value<JObject>("values");
 | ||
|                     var checks = BLL.ProjectSupervision_Check1Service.GetCheck1ByCheckItem(values.Value<string>("CheckItem"), this.CheckNoticeId);
 | ||
|                     if (checks == null)
 | ||
|                     {
 | ||
|                         Model.ProjectSupervision_Check1 newCheck = new Model.ProjectSupervision_Check1();
 | ||
|                         newCheck.ID = SQLHelper.GetNewID(typeof(Model.ProjectSupervision_Check1));
 | ||
|                         newCheck.SortIndex = Funs.GetNewInt(values.Value<string>("SortIndex"));
 | ||
|                         newCheck.CheckItem = values.Value<string>("CheckItem");
 | ||
|                         newCheck.CheckStandard = values.Value<string>("CheckStandard");
 | ||
|                         newCheck.CheckMethod = values.Value<string>("CheckMethod");
 | ||
|                         newCheck.CheckResult = values.Value<string>("CheckResult");
 | ||
|                         newCheck.BaseScore = Funs.GetNewDecimalOrZero(values.Value<string>("BaseScore"));
 | ||
|                         newCheck.DeletScore = Funs.GetNewDecimalOrZero(values.Value<string>("DeletScore"));
 | ||
|                         newCheck.GetScore = Funs.GetNewDecimalOrZero(values.Value<string>("GetScore"));
 | ||
|                         newCheck.Type = "1";
 | ||
|                         newCheck.CheckNoticeId = this.CheckNoticeId;
 | ||
|                         BLL.ProjectSupervision_Check1Service.AddCheck1(newCheck);
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         Model.ProjectSupervision_Check1 newCheck = new Model.ProjectSupervision_Check1();
 | ||
|                         newCheck.ID = SQLHelper.GetNewID(typeof(Model.ProjectSupervision_Check1));
 | ||
|                         newCheck.SortIndex = checks.SortIndex;
 | ||
|                         newCheck.CheckItem = checks.CheckItem;
 | ||
|                         newCheck.CheckStandard = values.Value<string>("CheckStandard");
 | ||
|                         newCheck.CheckMethod = checks.CheckMethod;
 | ||
|                         newCheck.CheckResult = checks.CheckResult;
 | ||
|                         newCheck.BaseScore = checks.BaseScore;
 | ||
|                         newCheck.DeletScore = checks.DeletScore;
 | ||
|                         newCheck.GetScore = checks.GetScore;
 | ||
|                         newCheck.Type = "1";
 | ||
|                         newCheck.CheckNoticeId = this.CheckNoticeId;
 | ||
|                         BLL.ProjectSupervision_Check1Service.AddCheck1(newCheck);
 | ||
|                     }
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             decimal totalBaseScore = 0; ///总基准分
 | ||
|             decimal totalDeletScore = 0; ///总扣减分
 | ||
|             decimal totalGetScore = 0; ///总得分
 | ||
|             decimal total100Score = 0; ///换算100分制
 | ||
|             decimal totalLastScore = 0; ///综合得分
 | ||
|             var tale1Item = from x in Funs.DB.ProjectSupervision_Check1 where x.CheckNoticeId == this.CheckNoticeId && x.Type == "1" orderby x.SortIndex select x;
 | ||
|             if (tale1Item.Count() > 0)
 | ||
|             {
 | ||
|                 List<string> lists = new List<string>();
 | ||
|                 foreach (var item in tale1Item)
 | ||
|                 {
 | ||
|                     var result = lists.Exists(t => t == item.CheckItem);//如果是相同的检查项目,则只增加其中一条的分数
 | ||
|                     if (!result)
 | ||
|                     {
 | ||
|                         totalBaseScore += item.BaseScore.Value;
 | ||
|                         totalDeletScore += item.DeletScore.Value;
 | ||
|                         lists.Add(item.CheckItem);
 | ||
|                     }
 | ||
|                 }
 | ||
| 
 | ||
|                 if (totalBaseScore > 0)
 | ||
|                 {
 | ||
|                     totalGetScore = totalBaseScore - totalDeletScore;
 | ||
|                     decimal sS = (totalGetScore / totalBaseScore) * 100;
 | ||
|                     total100Score = Math.Round(sS, 2);
 | ||
|                     totalLastScore = (total100Score - Funs.GetNewDecimalOrZero(this.hdTotalDeletScore6_7.Text));
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             BLL.CheckTable1Service.DeleteCheckTable1ByNoticeId(this.CheckNoticeId);
 | ||
|             Model.ProjectSupervision_CheckTable1 table1 = new Model.ProjectSupervision_CheckTable1();
 | ||
|             if (this.drpSubjectProject.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpSubjectProject.SelectedValue))
 | ||
|             {
 | ||
|                 table1.SubjectProjectId = this.drpSubjectProject.SelectedValue;
 | ||
|             }
 | ||
| 
 | ||
|             table1.CheckMan = this.txtCheckMan.Text.Trim();
 | ||
|             table1.CheckLeader = this.txtCheckLeader.Text.Trim();
 | ||
|             table1.CheckDate = Funs.GetNewDateTime(this.txtCheckDate.Text);
 | ||
|             table1.SubjectUnitMan = this.txtSubjectUnitMan.Text.Trim();
 | ||
|             table1.SubjectUnitDate = Funs.GetNewDateTime(this.txtSubjectUnitDate.Text);
 | ||
|             table1.TotalBaseScore = totalBaseScore;
 | ||
|             table1.TotalDeletScore = totalDeletScore;
 | ||
|             table1.TotalGetScore = totalGetScore;
 | ||
|             table1.Total100Score = total100Score;
 | ||
|             table1.TotalLastScore = totalLastScore;
 | ||
|             table1.EvaluationResult = Funs.ReturnEvaluationResultByScore(table1.TotalLastScore);
 | ||
|             table1.CheckNoticeId = this.CheckNoticeId;
 | ||
|             table1.CheckItemId = SQLHelper.GetNewID(typeof(Model.ProjectSupervision_CheckTable1));
 | ||
|             BLL.CheckTable1Service.AddCheckTable1(table1);
 | ||
| 
 | ||
|             ShowNotify("保存成功!", MessageBoxIcon.Success);
 | ||
|             PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
 | ||
|         }
 | ||
|         #endregion 
 | ||
| 
 | ||
|         #region 按钮权限
 | ||
|         /// <summary>
 | ||
|         /// 获取按钮权限
 | ||
|         /// </summary>
 | ||
|         /// <param name="button"></param>
 | ||
|         /// <returns></returns>
 | ||
|         private void GetButtonPower()
 | ||
|         {
 | ||
|             var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.CheckNoticeMenuId);
 | ||
|             if (buttonList.Count() > 0)
 | ||
|             {
 | ||
|                 if (buttonList.Contains(BLL.Const.BtnSave))
 | ||
|                 {
 | ||
|                     this.btnSave.Hidden = false;
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|         #endregion
 | ||
|     }
 | ||
| } |