From 206d2c5c432044a63915f513411b42285d25e508 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Sat, 25 Nov 2023 16:03:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/SGGLDB_V2023-11-25.sql | 2 + SGGL/BLL/CQMS/WBS/ControlItemInitService.cs | 2 + SGGL/BLL/CQMS/WBS/WorkPackageService.cs | 41 ++++++++++++++++++- .../CQMS/Check/EditSpotCheck.aspx.cs | 32 ++++++++++++++- .../CQMS/WBS/ControlItemInitEdit.aspx | 5 +++ .../CQMS/WBS/ControlItemInitEdit.aspx.cs | 5 +++ .../WBS/ControlItemInitEdit.aspx.designer.cs | 9 ++++ .../CQMS/WBS/ControlItemInitSet.aspx | 1 + .../CQMS/WBS/ControlItemInitSet.aspx.cs | 2 +- SGGL/Model/Model.cs | 24 +++++++++++ .../Controllers/CQMS/SpotCheckController.cs | 32 ++++++++++++++- 11 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2023-11-25.sql diff --git a/DataBase/版本日志/SGGLDB_V2023-11-25.sql b/DataBase/版本日志/SGGLDB_V2023-11-25.sql new file mode 100644 index 00000000..2c5a219f --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2023-11-25.sql @@ -0,0 +1,2 @@ +alter table [dbo].[WBS_ControlItemInit] add IsJDItem bit null +GO \ No newline at end of file diff --git a/SGGL/BLL/CQMS/WBS/ControlItemInitService.cs b/SGGL/BLL/CQMS/WBS/ControlItemInitService.cs index bbd0b196..f7603317 100644 --- a/SGGL/BLL/CQMS/WBS/ControlItemInitService.cs +++ b/SGGL/BLL/CQMS/WBS/ControlItemInitService.cs @@ -51,6 +51,7 @@ namespace BLL newControlItem.Standard = controlItem.Standard; newControlItem.ClauseNo = controlItem.ClauseNo; newControlItem.CheckAcceptType = controlItem.CheckAcceptType; + newControlItem.IsJDItem = controlItem.IsJDItem; db.WBS_ControlItemInit.InsertOnSubmit(newControlItem); db.SubmitChanges(); @@ -75,6 +76,7 @@ namespace BLL newControlItem.Standard = controlItem.Standard; newControlItem.ClauseNo = controlItem.ClauseNo; newControlItem.CheckAcceptType = controlItem.CheckAcceptType; + newControlItem.IsJDItem = controlItem.IsJDItem; db.SubmitChanges(); } diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs index fd000c2f..6f3ccb43 100644 --- a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs +++ b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs @@ -444,7 +444,7 @@ namespace BLL List newList = new List(); if (getWBSs.Count() > 0) { - + var projectTypes = getWBSs.Where(x => x.WBSType == "ProjectType" && x.SupId == "0"); int a = 1; foreach (var item in projectTypes) @@ -827,6 +827,45 @@ namespace BLL } } + /// + /// 更新分部分项工程实际完成时间 + /// + /// + public static void UpdateWorkPackageRealEndDate2(string workPackageId) + { + using (var db = new Model.SGGLDB(Funs.ConnString)) + { + var workPackage = db.WBS_WorkPackage.FirstOrDefault(x => x.WorkPackageId == workPackageId); + if (workPackage != null) + { + workPackage.RealEndDate = DateTime.Now; + UpdateWorkPackages(db, workPackage, null, null, null, workPackage.RealEndDate); + db.SubmitChanges(); + var unitWork = db.WBS_UnitWork.FirstOrDefault(x => x.UnitWorkId == workPackage.UnitWorkId); + //获取是否存在其他未完成的分部分项 + var notEndOthenWorkPackage = db.WBS_WorkPackage.FirstOrDefault(x => x.UnitWorkId == unitWork.UnitWorkId && x.IsApprove == true && x.RealEndDate == null); + if (notEndOthenWorkPackage == null) + { + if (workPackage.RealEndDate != null) + { + if (unitWork.RealEndDate == null) + { + unitWork.RealEndDate = workPackage.RealEndDate; + } + else + { + if (unitWork.RealEndDate < workPackage.RealEndDate) + { + unitWork.RealEndDate = workPackage.RealEndDate; + } + } + } + } + } + db.SubmitChanges(); + } + } + #region 根据工作包ID获取wbs节点及父节点字符串 /// /// 根据工作包ID获取wbs节点及父节点字符串 diff --git a/SGGL/FineUIPro.Web/CQMS/Check/EditSpotCheck.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Check/EditSpotCheck.aspx.cs index d999a89d..a3abb8b3 100644 --- a/SGGL/FineUIPro.Web/CQMS/Check/EditSpotCheck.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Check/EditSpotCheck.aspx.cs @@ -967,6 +967,12 @@ namespace FineUIPro.Web.CQMS.Check foreach (var item in list) { Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(item.ControlItemAndCycleId); + Model.WBS_ControlItemInit cInit = BLL.ControlItemInitService.GetControlItemInitByCode(c.InitControlItemCode); + bool isJDItem = false; + if (cInit != null && cInit.IsJDItem.HasValue) + { + isJDItem = cInit.IsJDItem.Value; + } if (c != null) { if (!string.IsNullOrEmpty(c.HGForms) || !string.IsNullOrEmpty(c.SHForms)) @@ -980,7 +986,18 @@ namespace FineUIPro.Web.CQMS.Check { c.RealEndDate = DateTime.Now; BLL.ControlItemAndCycleService.UpdateControlItemAndCycle(c); - BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + if (isJDItem) //进度完成项 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate2(c.WorkPackageId); + } + else //非进度完成项 + { + Model.WBS_WorkPackage workPackage = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); + if (workPackage.RealEndDate == null) //分部分项还未生成实际完成时间 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + } + } } else //检查多次 { @@ -989,7 +1006,18 @@ namespace FineUIPro.Web.CQMS.Check { c.RealEndDate = DateTime.Now; BLL.ControlItemAndCycleService.UpdateControlItemAndCycle(c); - BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + if (isJDItem) //进度完成项 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate2(c.WorkPackageId); + } + else //非进度完成项 + { + Model.WBS_WorkPackage workPackage = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); + if (workPackage.RealEndDate == null) //分部分项还未生成实际完成时间 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + } + } } } } diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx index 2c8dd5ea..668efa6b 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx @@ -77,6 +77,11 @@ + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.cs index d81af6f6..d1e2ae7e 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.cs @@ -102,6 +102,10 @@ namespace FineUIPro.Web.CQMS.WBS this.txtSHForms.Text = controlItem.SHForms; this.txtStandard.Text = controlItem.Standard; this.txtClauseNo.Text = controlItem.ClauseNo; + if (controlItem.IsJDItem == true) + { + this.cbIsJDItem.Checked = true; + } } } } @@ -130,6 +134,7 @@ namespace FineUIPro.Web.CQMS.WBS newControlItem.SHForms = this.txtSHForms.Text.Trim(); newControlItem.Standard = this.txtStandard.Text.Trim(); newControlItem.ClauseNo = this.txtClauseNo.Text.Trim(); + newControlItem.IsJDItem = this.cbIsJDItem.Checked; if (Request.Params["type"] == "add") { BLL.ControlItemInitService.AddControlItemInit(newControlItem); diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.designer.cs index 52473a32..e21574dd 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitEdit.aspx.designer.cs @@ -147,6 +147,15 @@ namespace FineUIPro.Web.CQMS.WBS { /// protected global::FineUIPro.TextBox txtClauseNo; + /// + /// cbIsJDItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.CheckBox cbIsJDItem; + /// /// Toolbar1 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx index 05076cf0..488f2215 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx @@ -88,6 +88,7 @@ + diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx.cs index 4bad54d8..b2a3a6e2 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ControlItemInitSet.aspx.cs @@ -455,7 +455,7 @@ namespace FineUIPro.Web.CQMS.WBS /// private void BindGrid() { - string strSql = @"SELECT ControlItemCode,WorkPackageCode,ControlItemContent,ControlPoint,ControlItemDef,Weights,HGForms,SHForms,Standard,ClauseNo" + string strSql = @"SELECT ControlItemCode,WorkPackageCode,ControlItemContent,ControlPoint,ControlItemDef,Weights,HGForms,SHForms,Standard,ClauseNo,IsJDItem" + @" FROM WBS_ControlItemInit "; List listStr = new List(); strSql += " where WorkPackageCode = @WorkPackageCode"; diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 6b2ee015..5bd66bdd 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -296714,6 +296714,8 @@ namespace Model private string _CheckAcceptType; + private System.Nullable _IsJDItem; + private EntityRef _WBS_WorkPackageInit; #region 可扩展性方法定义 @@ -296742,6 +296744,8 @@ namespace Model partial void OnClauseNoChanged(); partial void OnCheckAcceptTypeChanging(string value); partial void OnCheckAcceptTypeChanged(); + partial void OnIsJDItemChanging(System.Nullable value); + partial void OnIsJDItemChanged(); #endregion public WBS_ControlItemInit() @@ -296974,6 +296978,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsJDItem", DbType="Bit")] + public System.Nullable IsJDItem + { + get + { + return this._IsJDItem; + } + set + { + if ((this._IsJDItem != value)) + { + this.OnIsJDItemChanging(value); + this.SendPropertyChanging(); + this._IsJDItem = value; + this.SendPropertyChanged("IsJDItem"); + this.OnIsJDItemChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_WBS_ControlItemInit_WBS_WorkPackageInit", Storage="_WBS_WorkPackageInit", ThisKey="WorkPackageCode", OtherKey="WorkPackageCode", IsForeignKey=true)] public WBS_WorkPackageInit WBS_WorkPackageInit { diff --git a/SGGL/WebAPI/Controllers/CQMS/SpotCheckController.cs b/SGGL/WebAPI/Controllers/CQMS/SpotCheckController.cs index 4df65c82..534e786b 100644 --- a/SGGL/WebAPI/Controllers/CQMS/SpotCheckController.cs +++ b/SGGL/WebAPI/Controllers/CQMS/SpotCheckController.cs @@ -327,6 +327,12 @@ namespace Mvc.Controllers //更新明细记录 //判断明细是否需要上传资料 Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleByIdForApi(item.ControlItemAndCycleId); + Model.WBS_ControlItemInit cInit = BLL.ControlItemInitService.GetControlItemInitByCode(c.InitControlItemCode); + bool isJDItem = false; + if (cInit != null && cInit.IsJDItem.HasValue) + { + isJDItem = cInit.IsJDItem.Value; + } if (c != null) { if (string.IsNullOrEmpty(c.HGForms) && string.IsNullOrEmpty(c.SHForms)) @@ -345,7 +351,18 @@ namespace Mvc.Controllers { c.RealEndDate = DateTime.Now; BLL.ControlItemAndCycleService.UpdateControlItemAndCycle(c); - BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + if (isJDItem) //进度完成项 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate2(c.WorkPackageId); + } + else //非进度完成项 + { + Model.WBS_WorkPackage workPackage = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); + if (workPackage.RealEndDate == null) //分部分项还未生成实际完成时间 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + } + } } else //检查多次 { @@ -354,7 +371,18 @@ namespace Mvc.Controllers { c.RealEndDate = DateTime.Now; BLL.ControlItemAndCycleService.UpdateControlItemAndCycle(c); - BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + if (isJDItem) //进度完成项 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate2(c.WorkPackageId); + } + else //非进度完成项 + { + Model.WBS_WorkPackage workPackage = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); + if (workPackage.RealEndDate == null) //分部分项还未生成实际完成时间 + { + BLL.WorkPackageService.UpdateWorkPackageRealEndDate(c.WorkPackageId); + } + } } } }