diff --git a/DataBase/版本日志/SGGLDB_V2022-011-18-001.sql b/DataBase/版本日志/SGGLDB_V2022-11-18-001.sql similarity index 100% rename from DataBase/版本日志/SGGLDB_V2022-011-18-001.sql rename to DataBase/版本日志/SGGLDB_V2022-11-18-001.sql diff --git a/DataBase/版本日志/SGGLDB_V2022-11-30.sql b/DataBase/版本日志/SGGLDB_V2022-11-30.sql new file mode 100644 index 00000000..b7880e34 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2022-11-30.sql @@ -0,0 +1,4 @@ +ALTER TABLE Person_Persons ADD MultiProject BIT NULL +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ŀ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Person_Persons', @level2type=N'COLUMN',@level2name=N'MultiProject' +GO \ No newline at end of file diff --git a/DataBase/版本日志/SGGLDB_V2022-11-30修改明细.txt b/DataBase/版本日志/SGGLDB_V2022-11-30修改明细.txt new file mode 100644 index 00000000..a00d0918 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2022-11-30修改明细.txt @@ -0,0 +1,6 @@ +--ADD BY YangHongwei 2022-11-30 +1、项目人员身份证变化事件优化。 +2、新增人员是否同时在多项目字段。 +--END + + \ No newline at end of file diff --git a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonItemService.cs b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonItemService.cs index 4ff56a60..69faccb3 100644 --- a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonItemService.cs +++ b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonItemService.cs @@ -145,16 +145,19 @@ namespace BLL }; AddPersonItem(newPersonItem); - var getOtherPersons = db.SitePerson_Person.Where(x => x.IdentityCard == sitePerson.IdentityCard && x.ProjectId != sitePerson.ProjectId && x.States == Const.ProjectPersonStates_1); - if (getOtherPersons.Count() > 0) + if (!getPersons.MultiProject.HasValue || getPersons.MultiProject == false) { - foreach (var item in getOtherPersons) - + var getOtherPersons = db.SitePerson_Person.Where(x => x.IdentityCard == sitePerson.IdentityCard && x.ProjectId != sitePerson.ProjectId && x.States == Const.ProjectPersonStates_1); + if (getOtherPersons.Count() > 0) { - item.OutTime = DateTime.Now; - item.States = Const.ProjectPersonStates_2; - item.OutResult = item.OutResult; - db.SubmitChanges(); + foreach (var item in getOtherPersons) + + { + item.OutTime = DateTime.Now; + item.States = Const.ProjectPersonStates_2; + item.OutResult = item.OutResult; + db.SubmitChanges(); + } } } @@ -184,86 +187,90 @@ namespace BLL { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - ///未离场项目 先离场 - OutPersonItem(newitem.PersonId, null, DateTime.Now); var getPerson = Person_PersonsService.GetPerson_PersonsById(newitem.PersonId); if (getPerson != null) { newitem.PersonName = getPerson.PersonName; newitem.IdentityCard = getPerson.IdentityCard; - } - var getPersonItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.PersonId == getPerson.PersonId - && x.InTime <= newitem.InTime && (x.OutTime > newitem.InTime || !x.OutTime.HasValue)); - if (getPersonItem != null) - { - getPersonItem.OutTime = null; - db.SubmitChanges(); - } - else - { - Model.SitePerson_PersonItem newPersonItem = new Model.SitePerson_PersonItem + if (!getPerson.MultiProject.HasValue || getPerson.MultiProject == false) { - PersonItemId = newitem.PersonItemId, - PersonId = newitem.PersonId, - PersonName = newitem.PersonName, - IdentityCard = newitem.IdentityCard, - InTime = newitem.InTime, - // OutTime = newitem.OutTime, - // OutResult = newitem.OutResult, - }; - if (!string.IsNullOrEmpty(newitem.ProjectId)) - { - newPersonItem.ProjectId = newitem.ProjectId; - newPersonItem.ProjectName = ProjectService.GetProjectNameByProjectId(newitem.ProjectId); - } - else - { - newPersonItem.ProjectId = null; - newPersonItem.ProjectName = newitem.ProjectName; - } - if (!string.IsNullOrEmpty(newitem.UnitId)) - { - newPersonItem.UnitId = newitem.UnitId; - newPersonItem.UnitName = UnitService.GetUnitNameByUnitId(newitem.UnitId); - } - else - { - newPersonItem.UnitId = null; - newPersonItem.UnitName = newitem.UnitName; - } - if (!string.IsNullOrEmpty(newitem.WorkPostId)) - { - newPersonItem.WorkPostId = newitem.WorkPostId; - newPersonItem.WorkPostName = WorkPostService.getWorkPostNameById(newitem.WorkPostId); - } - else - { - newPersonItem.WorkPostId = null; - newPersonItem.WorkPostName = newitem.WorkPostName; - } - if (!string.IsNullOrEmpty(newitem.TeamGroupId)) - { - newPersonItem.TeamGroupId = newitem.TeamGroupId; - newPersonItem.TeamGroupName = TeamGroupService.GetTeamGroupNameByTeamGroupId(newitem.TeamGroupId); - } - else - { - newPersonItem.TeamGroupId = null; - newPersonItem.TeamGroupName = newitem.TeamGroupName; - } - if (!string.IsNullOrEmpty(newitem.RoleId)) - { - newPersonItem.RoleId = newitem.RoleId; - newPersonItem.RoleName = RoleService.getRoleNamesRoleIds(newitem.RoleId); - } - else - { - newPersonItem.RoleId = null; - newPersonItem.RoleName = newitem.RoleName; + ///未离场项目 先离场 + OutPersonItem(newitem.PersonId, null, DateTime.Now); } - db.SitePerson_PersonItem.InsertOnSubmit(newPersonItem); - db.SubmitChanges(); + var getPersonItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.PersonId == getPerson.PersonId + && x.InTime <= newitem.InTime && (x.OutTime > newitem.InTime || !x.OutTime.HasValue)); + if (getPersonItem != null) + { + getPersonItem.OutTime = null; + db.SubmitChanges(); + } + else + { + Model.SitePerson_PersonItem newPersonItem = new Model.SitePerson_PersonItem + { + PersonItemId = newitem.PersonItemId, + PersonId = newitem.PersonId, + PersonName = newitem.PersonName, + IdentityCard = newitem.IdentityCard, + InTime = newitem.InTime, + // OutTime = newitem.OutTime, + // OutResult = newitem.OutResult, + }; + if (!string.IsNullOrEmpty(newitem.ProjectId)) + { + newPersonItem.ProjectId = newitem.ProjectId; + newPersonItem.ProjectName = ProjectService.GetProjectNameByProjectId(newitem.ProjectId); + } + else + { + newPersonItem.ProjectId = null; + newPersonItem.ProjectName = newitem.ProjectName; + } + if (!string.IsNullOrEmpty(newitem.UnitId)) + { + newPersonItem.UnitId = newitem.UnitId; + newPersonItem.UnitName = UnitService.GetUnitNameByUnitId(newitem.UnitId); + } + else + { + newPersonItem.UnitId = null; + newPersonItem.UnitName = newitem.UnitName; + } + if (!string.IsNullOrEmpty(newitem.WorkPostId)) + { + newPersonItem.WorkPostId = newitem.WorkPostId; + newPersonItem.WorkPostName = WorkPostService.getWorkPostNameById(newitem.WorkPostId); + } + else + { + newPersonItem.WorkPostId = null; + newPersonItem.WorkPostName = newitem.WorkPostName; + } + if (!string.IsNullOrEmpty(newitem.TeamGroupId)) + { + newPersonItem.TeamGroupId = newitem.TeamGroupId; + newPersonItem.TeamGroupName = TeamGroupService.GetTeamGroupNameByTeamGroupId(newitem.TeamGroupId); + } + else + { + newPersonItem.TeamGroupId = null; + newPersonItem.TeamGroupName = newitem.TeamGroupName; + } + if (!string.IsNullOrEmpty(newitem.RoleId)) + { + newPersonItem.RoleId = newitem.RoleId; + newPersonItem.RoleName = RoleService.getRoleNamesRoleIds(newitem.RoleId); + } + else + { + newPersonItem.RoleId = null; + newPersonItem.RoleName = newitem.RoleName; + } + + db.SitePerson_PersonItem.InsertOnSubmit(newPersonItem); + db.SubmitChanges(); + } } } } diff --git a/SGGL/BLL/Person/Person_PersonsService.cs b/SGGL/BLL/Person/Person_PersonsService.cs index 664737d2..6d97f8bd 100644 --- a/SGGL/BLL/Person/Person_PersonsService.cs +++ b/SGGL/BLL/Person/Person_PersonsService.cs @@ -686,8 +686,9 @@ namespace BLL WorkDate = person.WorkDate, RetirementDate = person.RetirementDate, RelativeName = person.RelativeName, - RelativeTel = person.RelativeTel, - }; + RelativeTel = person.RelativeTel, + MultiProject = person.MultiProject, + }; if (string.IsNullOrEmpty(person.QRCodeAttachUrl)) { @@ -779,6 +780,7 @@ namespace BLL newPerson.RetirementDate = person.RetirementDate; newPerson.RelativeName = person.RelativeName; newPerson.RelativeTel = person.RelativeTel; + newPerson.MultiProject = person.MultiProject; newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); if (string.IsNullOrEmpty(person.QRCodeAttachUrl)) diff --git a/SGGL/FineUIPro.Web/Person/PersonEdit.aspx b/SGGL/FineUIPro.Web/Person/PersonEdit.aspx index 73bde2c0..fa039240 100644 --- a/SGGL/FineUIPro.Web/Person/PersonEdit.aspx +++ b/SGGL/FineUIPro.Web/Person/PersonEdit.aspx @@ -127,7 +127,7 @@ - + @@ -135,6 +135,8 @@ + diff --git a/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.cs b/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.cs index 3ab8f34f..9bdb4c2e 100644 --- a/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.cs @@ -92,6 +92,7 @@ namespace FineUIPro.Web.Person this.txtJobNum.Text = person.JobNum; this.drpUnit.SelectedValue = person.UnitId; this.ckIsPost.Checked = person.IsPost ?? true; + this.ckIsMultiProject.Checked = person.MultiProject ?? false; if (!string.IsNullOrEmpty(person.DepartId)) { this.drpDepart.SelectedValue = person.DepartId; @@ -528,6 +529,7 @@ namespace FineUIPro.Web.Person Address = this.txtAddress.Text.Trim(), SignatureUrl = this.SignatureUrl, IsPost = this.ckIsPost.Checked, + MultiProject=this.ckIsMultiProject.Checked, }; newPerson.RoleIds = Funs.GetStringByArray(this.drpRole.SelectedValueArray); @@ -1087,5 +1089,18 @@ namespace FineUIPro.Web.Person Alert.ShowInParent("人员不在职,则当前人所在的所有项目都将离场!", MessageBoxIcon.Warning); } } + + /// + /// + /// + /// + /// + protected void ckIsMultiProject_CheckedChanged(object sender, CheckedEventArgs e) + { + if (this.ckIsMultiProject.Checked) + { + Alert.ShowInParent("人员可在多个项目上同时在岗!", MessageBoxIcon.Warning); + } + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.designer.cs index d9c97a55..ee95fa48 100644 --- a/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/Person/PersonEdit.aspx.designer.cs @@ -248,6 +248,15 @@ namespace FineUIPro.Web.Person /// protected global::FineUIPro.CheckBox ckIsPost; + /// + /// ckIsMultiProject 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.CheckBox ckIsMultiProject; + /// /// txtBirthday 控件。 /// diff --git a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs index ae5c07de..93deef23 100644 --- a/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs +++ b/SGGL/FineUIPro.Web/Person/ProjectPerson.aspx.cs @@ -20,6 +20,8 @@ namespace FineUIPro.Web.Person this.GetButtonPower(); this.btnNew.OnClientClick = Window1.GetShowReference("ProjectPersonEdit.aspx") + "return false;"; ProjectService.InitProjectShortNameDropDownList(this.drpProject, false); + this.drpProject.SelectedIndex= 0; + Funs.FineUIPleaseSelect(drpProject, "按项目查询"); Funs.FineUIPleaseSelect(drpUnit, "按单位查询"); WorkPostService.InitWorkPostDropDownList(this.drpWorkPost, false); diff --git a/SGGL/FineUIPro.Web/Person/ProjectPersonEdit.aspx.cs b/SGGL/FineUIPro.Web/Person/ProjectPersonEdit.aspx.cs index aa273d0d..0b4279a9 100644 --- a/SGGL/FineUIPro.Web/Person/ProjectPersonEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/Person/ProjectPersonEdit.aspx.cs @@ -281,7 +281,11 @@ namespace FineUIPro.Web.Person var getProjectPerson = SitePerson_PersonService.GetSitePersonById(this.SitePersonId); if (getProjectPerson != null) { - this.txtIdentityCard.Text = getProjectPerson.IdentityCard; + if (!string.IsNullOrEmpty(getProjectPerson.IdentityCard)) + { + this.txtIdentityCard.Text = getProjectPerson.IdentityCard; + } + if (!string.IsNullOrEmpty(getProjectPerson.PersonName)) { this.txtPersonName.Text = getProjectPerson.PersonName; @@ -302,7 +306,7 @@ namespace FineUIPro.Web.Person { this.btnOut.Hidden = false; } - + this.drpProject.SelectedValue = getProjectPerson.ProjectId; InitDropDownListProject(); this.drpUnit.SelectedValue = getProjectPerson.UnitId; diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index e20c2dae..6ff008a1 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -70769,7 +70769,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialName", DbType="NVarChar(30)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialName", DbType="NVarChar(300)")] public string MaterialName { get @@ -70789,7 +70789,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialSpec", DbType="NVarChar(20)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialSpec", DbType="NVarChar(300)")] public string MaterialSpec { get @@ -70809,7 +70809,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialMade", DbType="NVarChar(200)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialMade", DbType="NVarChar(300)")] public string MaterialMade { get @@ -70829,7 +70829,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialDef", DbType="NVarChar(300)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialDef", DbType="NVarChar(3000)")] public string MaterialDef { get @@ -70849,7 +70849,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipeGrade", DbType="NVarChar(50)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipeGrade", DbType="NVarChar(300)")] public string PipeGrade { get @@ -70869,7 +70869,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialUnit", DbType="NVarChar(10)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MaterialUnit", DbType="NVarChar(300)")] public string MaterialUnit { get @@ -71191,7 +71191,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAndModel", DbType="NVarChar(50)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecificationAndModel", DbType="NVarChar(1000)")] public string SpecificationAndModel { get @@ -116316,6 +116316,8 @@ namespace Model private string _PersonType; + private System.Nullable _MultiProject; + private EntitySet _Accident_AccidentHandle; private EntitySet _Accident_AccidentPersonRecord; @@ -116908,6 +116910,8 @@ namespace Model partial void OnCertificateIdChanged(); partial void OnPersonTypeChanging(string value); partial void OnPersonTypeChanged(); + partial void OnMultiProjectChanging(System.Nullable value); + partial void OnMultiProjectChanged(); #endregion public Person_Persons() @@ -118365,6 +118369,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MultiProject", DbType="Bit")] + public System.Nullable MultiProject + { + get + { + return this._MultiProject; + } + set + { + if ((this._MultiProject != value)) + { + this.OnMultiProjectChanging(value); + this.SendPropertyChanging(); + this._MultiProject = value; + this.SendPropertyChanged("MultiProject"); + this.OnMultiProjectChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Accident_AccidentHandle_Person_Persons", Storage="_Accident_AccidentHandle", ThisKey="PersonId", OtherKey="CompileMan", DeleteRule="NO ACTION")] public EntitySet Accident_AccidentHandle {