diff --git a/DataBase/版本日志/SGGLDB_WH_2023-08-29.sql b/DataBase/版本日志/SGGLDB_WH_2023-08-29.sql new file mode 100644 index 00000000..549a4d24 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-08-29.sql @@ -0,0 +1,40 @@ + +--޸ֶγ +ALTER TABLE PreRun_TechnologySysPiping ALTER Column NameSpecifications varchar(max) null; +ALTER TABLE PreRun_TechnologySysPiping ALTER Column Materials varchar(max) null; +GO +--ɾеı +ALTER TABLE PreRun_WorkPackage DROP COLUMN WorkPackCode +GO +--ϵͳ +truncate table PreRun_SubSysWorkPackage +--ϵͳϵͳ +alter table PreRun_SubSysWorkPackage add SystemId varchar(50) NULL +GO + +IF object_id(N'PreRun_TechnologySysPiping',N'U') is not null +drop table dbo.PreRun_TechnologySysPiping +CREATE TABLE [dbo].[PreRun_TechnologySysPiping]( + [TechnologyId] [varchar](50) NOT NULL, + [SystemId] [varchar](50) NULL, + [ProjectId] [varchar](50) NULL, + [TagNumber] [varchar](50) NULL, + [NameSpecifications] [varchar](max) NULL, + [DrawingNo] [varchar](50) NULL, + [Materials] [varchar](max) NULL, + [NumOperate] [varchar](50) NULL, + [NumStandby] [varchar](50) NULL, + [WeightSingle] [varchar](50) NULL, + [WeightTotal] [varchar](50) NULL, + [Remark] [nvarchar](150) NULL, + [AddUser] [varchar](50) NULL, + [AddTime] [datetime] NULL, + [Sort] [int] NULL, + CONSTRAINT [PK_PreRun_TechnologySysPiping] PRIMARY KEY CLUSTERED +( + [TechnologyId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] +GO + + diff --git a/SGGL/FineUIPro.Web/CQMS/Solution/EditConstructSolution.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Solution/EditConstructSolution.aspx.cs index 44d331e3..f551f717 100644 --- a/SGGL/FineUIPro.Web/CQMS/Solution/EditConstructSolution.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Solution/EditConstructSolution.aspx.cs @@ -173,7 +173,7 @@ namespace FineUIPro.Web.CQMS.Solution txtSolutionName.Enabled = false; txtCNProfessional.Enabled = false; txtUnitWork.Enabled = false; - ContactImg = -1; + ContactImg = 0; Panel2.Enabled = false; } //提交版本人多次修改 diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx index 926bd886..74109dcf 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx @@ -150,10 +150,10 @@ + - <%-- - --%> diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.cs index dd8aa1e6..8129f893 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.cs @@ -1374,5 +1374,86 @@ namespace FineUIPro.Web.CQMS.WBS } } #endregion + + #region 拷贝单位工程下勾选状态 + /// + /// 拷贝单位工程下勾选状态 + /// + /// + /// + protected void btnMenuCopy_Click(object sender, EventArgs e) + { + if (this.trWBS.SelectedNode != null) + { + string unitWorkId = string.Empty; + var newUnitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(this.trWBS.SelectedNode.NodeID); + if (newUnitWork != null) + { + unitWorkId = newUnitWork.UnitWorkId; + } + else + { + var div = BLL.DivisionProjectService.GetDivisionProjectById(this.trWBS.SelectedNode.NodeID); + if (div != null) + { + if (!string.IsNullOrEmpty(div.UnitWorkId)) + { + unitWorkId = div.UnitWorkId; + } + } + else + { + var div2 = (from x in Funs.DB.WBS_DivisionProject where x.CNProfessionalId != null && x.CNProfessionalId == this.trWBS.SelectedNodeID select x).FirstOrDefault(); + if (div2 != null) + { + if (!string.IsNullOrEmpty(div2.UnitWorkId)) + { + unitWorkId = div2.UnitWorkId; + } + } + else + { + var nodeId = this.trWBS.SelectedNodeID.Split('|')[0]; + var uw = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(nodeId); + if (uw != null) + { + unitWorkId = uw.UnitWorkId; + } + } + } + } + var unitWork = (from x in Funs.DB.WBS_UnitWork + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId != unitWorkId + select x).FirstOrDefault(); + + var oldDivsionProject = (from x in Funs.DB.WBS_DivisionProject + where x.ProjectId == this.CurrUser.LoginProjectId && x.IsSelected == true + && x.UnitWorkId == unitWork.UnitWorkId + select x).ToList(); + foreach (var item in oldDivsionProject) + { + var div = Funs.DB.WBS_DivisionProject.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == unitWorkId && x.DivisionCode == item.DivisionCode); + if (div != null) + { + div.IsSelected = true; + Funs.DB.SubmitChanges(); + + var breakdownProjects = (from x in Funs.DB.WBS_BreakdownProject + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkId + && x.DivisionProjectId == div.DivisionProjectId + select x).ToList(); + foreach (var b in breakdownProjects) + { + b.IsSelected = true; + Funs.DB.SubmitChanges(); + } + } + } + ShowNotify("拷贝成功", MessageBoxIcon.Success); + } + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.designer.cs index cbed3b5f..7b718290 100644 --- a/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/WBS/ProjectControlPoint.aspx.designer.cs @@ -219,6 +219,15 @@ namespace FineUIPro.Web.CQMS.WBS { /// protected global::FineUIPro.MenuButton btnMenuEdit; + /// + /// btnMenuCopy 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuCopy; + /// /// btnMenuDelete 控件。 /// diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx index 8a061f51..e4b3418d 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx @@ -73,7 +73,7 @@ - + @@ -262,7 +262,7 @@ - + @@ -374,7 +374,7 @@ - + @@ -513,7 +513,7 @@ - + diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx.cs index d3ecedd1..5a290c54 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SysPipingDeviceImport.aspx.cs @@ -48,7 +48,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId).ToList(); - var onePreRunLs = allPreRunLs.Where(p => p.PreRunLevel == 1); + var onePreRunLs = allPreRunLs.Where(p => p.PreRunLevel == 1).OrderBy(x => x.Sort); foreach (var item in onePreRunLs) { TreeNode rootUnitNode = new TreeNode();//定义根节点 @@ -71,7 +71,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun private void BindNodes(TreeNode node, List list, string parentId) { - var itemList = list.Where(p => p.ParentId == parentId).ToList(); + var itemList = list.Where(p => p.ParentId == parentId).OrderBy(x => x.Sort).ToList(); if (itemList.Count > 0) { foreach (var item in itemList) @@ -305,8 +305,11 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun var existPropertys = Funs.DB.PreRun_PropertySysPiping.Where(a => pipingCodes.Contains(a.PipingCode) && a.SystemId == tvControlItem.SelectedNodeID && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); if (existPropertys.Count > 0) { - ShowNotify($"管道号({string.Join(",", existPropertys.ConvertAll(s => s.PipingCode))})已存在!", MessageBoxIcon.Warning); - return; + //删除已经存在的信息 + Funs.DB.PreRun_PropertySysPiping.DeleteAllOnSubmit(existPropertys); + Funs.DB.SubmitChanges(); + //ShowNotify($"管道号({string.Join(",", existPropertys.ConvertAll(s => s.PipingCode))})已存在!", MessageBoxIcon.Warning); + //return; } List list = new List(); //数据导入 @@ -350,6 +353,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ShowNotify("文件无数据!", MessageBoxIcon.Warning); } ZxtgdBrid(); + ShowNotify("导入成功!", MessageBoxIcon.Success); } catch (Exception ex) { @@ -533,8 +537,11 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun var existTechnologys = Funs.DB.PreRun_TechnologySysPiping.Where(a => tagNumbers.Contains(a.TagNumber) && a.SystemId == tvControlItem.SelectedNodeID && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); if (existTechnologys.Count > 0) { - ShowNotify($"设备位号({string.Join(",", existTechnologys.ConvertAll(s => s.TagNumber))})已存在!", MessageBoxIcon.Warning); - return; + //删除已经存在的信息 + Funs.DB.PreRun_TechnologySysPiping.DeleteAllOnSubmit(existTechnologys); + Funs.DB.SubmitChanges(); + //ShowNotify($"设备位号({string.Join(",", existTechnologys.ConvertAll(s => s.TagNumber))})已存在!", MessageBoxIcon.Warning); + //return; } string nameSpecificationStr = string.Empty; string materialStr = string.Empty; @@ -621,6 +628,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun ShowNotify("文件无数据!", MessageBoxIcon.Warning); } ZxtgyBrid(); + ShowNotify("导入成功!", MessageBoxIcon.Success); } catch (Exception ex) { diff --git a/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs b/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs index 16ec59c2..5eb994b6 100644 --- a/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs +++ b/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs @@ -45,9 +45,13 @@ namespace FineUIPro.Web.common this.divSafeWorkTime.InnerHtml = wHours.ToString(); //本月安全人工时 - int wHoursMonth = db.SitePerson_PersonInOutNumber.Where(x => x.InOutDate > DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.Day)) - && x.ProjectId == ProjectId) - .Max(x => x.WorkHours) ?? 0; + int wHoursMonth = 0; + DateTime? sDate = Funs.GetNewDateTime(DateTime.Now.Year.ToString()+"-"+ DateTime.Now.Month.ToString()); + var dayReports = BLL.SitePerson_MonthReportService.getMonthReports(this.ProjectId, sDate); + if (dayReports.Count>0) + { + wHoursMonth = Convert.ToInt32(dayReports[0].DayWorkTime); + } this.divSafeWorkTimeMonth.InnerHtml = wHoursMonth.ToString(); //安全培训累计人员 diff --git a/SGGL/FineUIPro.Web/common/main_new.aspx.cs b/SGGL/FineUIPro.Web/common/main_new.aspx.cs index b80aea12..ce922ece 100644 --- a/SGGL/FineUIPro.Web/common/main_new.aspx.cs +++ b/SGGL/FineUIPro.Web/common/main_new.aspx.cs @@ -34,10 +34,19 @@ namespace FineUIPro.Web.common this.divSafeWorkTime.InnerHtml = wHours.ToString(); //本月安全人工时 - int wHoursMonth = db.SitePerson_PersonInOutNumber.Where(x => x.InOutDate > DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.Day))) - .Max(x => x.WorkHours) ?? 0; + int wHoursMonth = 0; + DateTime? sDate = Funs.GetNewDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString()); + var dayReports = getMonthReportsByCompany(sDate); + if (dayReports.Count > 0) + { + wHoursMonth = Convert.ToInt32(dayReports[0].DayWorkTime); + } this.divSafeWorkTimeMonth.InnerHtml = wHoursMonth.ToString(); + //int wHoursMonth = db.SitePerson_PersonInOutNumber.Where(x => x.InOutDate > DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.Day))) + // .Max(x => x.WorkHours) ?? 0; + //this.divSafeWorkTimeMonth.InnerHtml = wHoursMonth.ToString(); + //安全培训累计人员 var getTrainRecord = db.EduTrain_TrainRecord.Max(x=>x.TrainPersonNum)??0; this.divSafePersonNum.InnerHtml = getTrainRecord.ToString(); @@ -110,6 +119,50 @@ namespace FineUIPro.Web.common } } + #region 当月人工时 + /// + /// 获取出入记录人工时-月报(项目级别) + /// + /// + public static List getMonthReportsByCompany(DateTime? sDate) + { + Model.SGGLDB db = Funs.DB; + List reports = new List(); + var getAllPersonInOutList = from x in db.SitePerson_PersonInOutNumber + + select x; + if (getAllPersonInOutList.Count() > 0) + { + var getInMonths = (from x in getAllPersonInOutList select new { x.InOutDate.Year, x.InOutDate.Month }).Distinct(); + if (sDate.HasValue) + { + getInMonths = getInMonths.Where(x => x.Year == sDate.Value.Year && x.Month == sDate.Value.Month); + } + foreach (var item in getInMonths) + { + DateTime compileDate = Funs.GetNewDateTimeOrNow(item.Year.ToString() + "-" + item.Month.ToString()); + var getNow = getAllPersonInOutList.Where(x => x.InOutDate.Year == compileDate.Year && x.InOutDate.Month == compileDate.Month).Max(x => x.WorkHours); + if (getNow.HasValue) + { + Model.SitePerson_MonthReport reportItem = new Model.SitePerson_MonthReport + { + MonthReportId = SQLHelper.GetNewID(), + + CompileDate = Funs.GetNewDateTime(item.Year.ToString() + "-" + item.Month.ToString()), + TotalPersonWorkTime = getNow, + }; + DateTime upDate = compileDate.AddMonths(-1); + var getMax = getAllPersonInOutList.Where(x => x.InOutDate.Year == upDate.Year && x.InOutDate.Month == upDate.Month).Max(x => x.WorkHours) ?? 0; + reportItem.DayWorkTime = (getNow ?? 0) - getMax; + reports.Add(reportItem); + } + + } + } + return reports; + } + #endregion + #region 项目信息 protected string Project { diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 41cac1d2..51b60f25 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -90816,7 +90816,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionMachineCode", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionMachineCode", DbType="NVarChar(100)")] public string InspectionMachineCode { get @@ -91747,7 +91747,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionPersonCode", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionPersonCode", DbType="NVarChar(100)")] public string InspectionPersonCode { get @@ -320055,7 +320055,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ConstValue", DbType="NVarChar(200)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ConstValue", DbType="NVarChar(500)")] public string ConstValue { get