From 3768e3788e39541a4a2629ed7b0cf83b5583ced9 Mon Sep 17 00:00:00 2001 From: geh <1923421292@qq.com> Date: Wed, 16 Apr 2025 10:19:33 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E4=B8=80=E4=BA=BA=E4=B8=80=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/SGGLDB_2025-04-14-geh.sql | 6 +- DataBase/版本日志/SGGLDB_2025-04-15-geh.sql | 72 +++++++++ .../Person/安全教育培训打印整套(电工).doc | Bin 134144 -> 135680 bytes .../HSSE/SitePerson/PersonList.aspx.cs | 18 +-- SUBQHSE/Model/Model.cs | 149 ++++++++++++++++++ .../HSSE/InformedConsentFormController.cs | 103 ++++++++++++ SUBQHSE/WebAPI/WebAPI.csproj | 1 + 7 files changed, 335 insertions(+), 14 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_2025-04-15-geh.sql create mode 100644 SUBQHSE/WebAPI/Controllers/HSSE/InformedConsentFormController.cs diff --git a/DataBase/版本日志/SGGLDB_2025-04-14-geh.sql b/DataBase/版本日志/SGGLDB_2025-04-14-geh.sql index 846fcf4..ceb9bce 100644 --- a/DataBase/版本日志/SGGLDB_2025-04-14-geh.sql +++ b/DataBase/版本日志/SGGLDB_2025-04-14-geh.sql @@ -1,5 +1,5 @@ ALTER TABLE Training_TestRecord -ADD COLUMN Signature NVARCHAR(1000), -ADD COLUMN Fingerprint NVARCHAR(1000), -ADD COLUMN CompanyTrainingItemId NVARCHAR(50); +ADD Signature NVARCHAR(1000), +ADD Fingerprint NVARCHAR(1000), +ADD CompanyTrainingItemId NVARCHAR(50); go \ No newline at end of file diff --git a/DataBase/版本日志/SGGLDB_2025-04-15-geh.sql b/DataBase/版本日志/SGGLDB_2025-04-15-geh.sql new file mode 100644 index 0000000..0526406 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_2025-04-15-geh.sql @@ -0,0 +1,72 @@ + + +CREATE TABLE [dbo].[InformedConsentForm] ( + [FormId] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [WorkPostName] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [JobRiskNotice] nvarchar(max) NULL, + [HealthCommitment] nvarchar(max) NULL, + [SafetyCommitment] nvarchar(max) NULL, + [SafetyQualityResponsibility] nvarchar(max) NULL, +) + +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm', +'COLUMN', N'FormId' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm', +'COLUMN', N'WorkPostName' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位危险告知书', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm', +'COLUMN', N'JobRiskNotice' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'入场工人健康承诺书', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm', +'COLUMN', N'HealthCommitment' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'安全承诺书', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm', +'COLUMN', N'SafetyCommitment' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'安全质量责任书', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm', +'COLUMN', N'SafetyQualityResponsibility' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'告知承诺书', +'SCHEMA', N'dbo', +'TABLE', N'InformedConsentForm' + + + +ALTER TABLE SitePerson_Person +ADD SignTime datetime NULL +go + +EXEC sp_addextendedproperty +'MS_Description', N'签字时间', +'SCHEMA', N'dbo', +'TABLE', N'SitePerson_Person', +'COLUMN', N'SignTime' +GO diff --git a/SUBQHSE/FineUIPro.Web/File/Word/Person/安全教育培训打印整套(电工).doc b/SUBQHSE/FineUIPro.Web/File/Word/Person/安全教育培训打印整套(电工).doc index 444d2f8d33bbbe2cbb7c19a1b3e257a30e5859ea..654848158cc3aeef102d796b870e0185c210abf6 100644 GIT binary patch delta 8602 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 G-Txb@Z0|z= delta 8148 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 x.PersonId == Grid1.SelectedRowID); + var personData = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == Grid1.SelectedRowID); if (person != null) { @@ -903,7 +904,6 @@ namespace FineUIPro.Web.HSSE.SitePerson join user in Funs.DB.Sys_User on TestPlan.PlanManId equals user.UserId into gUser from user in gUser.DefaultIfEmpty() where x.TestManId == person.PersonId - // where x.TestManId == "d9f795a2-b8eb-4872-9e4c-4a3dba028b5c" orderby x.TestEndTime descending select new { @@ -998,20 +998,16 @@ namespace FineUIPro.Web.HSSE.SitePerson helper.AddImage(string.Empty, "sign2", 0, 0, 0, 0); } - DateTime dateTime2 = new DateTime(2024, 6, 25); - // 构建格式化的字符串 - string date2 = $" {dateTime2.Year} 年 {dateTime2.Month:D2} 月 {dateTime2.Day:D2} 日"; + string date2 = personData.SignTime.HasValue + ? $" {personData.SignTime.Value.Year} 年 {personData.SignTime.Value.Month:D2} 月 {personData.SignTime.Value.Day:D2} 日" + : ""; string IdentityCard = person.IdentityCard; string Telephone = person.Telephone; - // 假设我们有一个DateTime对象 - DateTime dateTime = new DateTime(2024, 6, 25); - - // 提取年、月、日 - int year = dateTime.Year; - int month = dateTime.Month; - int day = dateTime.Day; + string year = person.InTime.HasValue ? person.InTime.Value.Year.ToString() : ""; + string month = person.InTime.HasValue ? person.InTime.Value.Month.ToString() : ""; + string day = person.InTime.HasValue ? person.InTime.Value.Day.ToString() : ""; string sign3 = AttachFileService.getFileUrl(person.PersonId + "_3"); if (!string.IsNullOrEmpty(sign3)) diff --git a/SUBQHSE/Model/Model.cs b/SUBQHSE/Model/Model.cs index f8e0ad8..f4004d7 100644 --- a/SUBQHSE/Model/Model.cs +++ b/SUBQHSE/Model/Model.cs @@ -6909,6 +6909,14 @@ namespace Model } } + public System.Data.Linq.Table InformedConsentForm + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table InterFaceLog { get @@ -237894,6 +237902,123 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.InformedConsentForm")] + public partial class InformedConsentForm + { + + private string _FormId; + + private string _WorkPostName; + + private string _JobRiskNotice; + + private string _HealthCommitment; + + private string _SafetyCommitment; + + private string _SafetyQualityResponsibility; + + public InformedConsentForm() + { + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FormId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string FormId + { + get + { + return this._FormId; + } + set + { + if ((this._FormId != value)) + { + this._FormId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkPostName", DbType="NVarChar(50)")] + public string WorkPostName + { + get + { + return this._WorkPostName; + } + set + { + if ((this._WorkPostName != value)) + { + this._WorkPostName = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobRiskNotice", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string JobRiskNotice + { + get + { + return this._JobRiskNotice; + } + set + { + if ((this._JobRiskNotice != value)) + { + this._JobRiskNotice = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HealthCommitment", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string HealthCommitment + { + get + { + return this._HealthCommitment; + } + set + { + if ((this._HealthCommitment != value)) + { + this._HealthCommitment = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SafetyCommitment", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string SafetyCommitment + { + get + { + return this._SafetyCommitment; + } + set + { + if ((this._SafetyCommitment != value)) + { + this._SafetyCommitment = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SafetyQualityResponsibility", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string SafetyQualityResponsibility + { + get + { + return this._SafetyQualityResponsibility; + } + set + { + if ((this._SafetyQualityResponsibility != value)) + { + this._SafetyQualityResponsibility = value; + } + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.InterFaceLog")] public partial class InterFaceLog : INotifyPropertyChanging, INotifyPropertyChanged { @@ -363390,6 +363515,8 @@ namespace Model private string _PersonStates; + private System.Nullable _SignTime; + private EntitySet _Accident_AccidentPersonRecord; private EntitySet _Accident_AccidentReportOtherItem; @@ -363592,6 +363719,8 @@ namespace Model partial void OnLanguagesChanged(); partial void OnPersonStatesChanging(string value); partial void OnPersonStatesChanged(); + partial void OnSignTimeChanging(System.Nullable value); + partial void OnSignTimeChanged(); #endregion public SitePerson_Person() @@ -365022,6 +365151,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SignTime", DbType="DateTime")] + public System.Nullable SignTime + { + get + { + return this._SignTime; + } + set + { + if ((this._SignTime != value)) + { + this.OnSignTimeChanging(value); + this.SendPropertyChanging(); + this._SignTime = value; + this.SendPropertyChanged("SignTime"); + this.OnSignTimeChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Accident_AccidentPersonRecord_SitePerson_Person", Storage="_Accident_AccidentPersonRecord", ThisKey="PersonId", OtherKey="PersonId", DeleteRule="NO ACTION")] public EntitySet Accident_AccidentPersonRecord { diff --git a/SUBQHSE/WebAPI/Controllers/HSSE/InformedConsentFormController.cs b/SUBQHSE/WebAPI/Controllers/HSSE/InformedConsentFormController.cs new file mode 100644 index 0000000..9dd1fec --- /dev/null +++ b/SUBQHSE/WebAPI/Controllers/HSSE/InformedConsentFormController.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using BLL; +using Model; + +namespace WebAPI.Controllers.HSSE +{ + public class InformedConsentFormController:ApiController + { + #region 根据用户获取告知书 + + /// + /// + /// + /// + public Model.ResponeData getFormByWorkPostName(string PersonId) + { + var responeData = new Model.ResponeData(); + try + { + var person = Funs.DB.View_SitePerson_Person.FirstOrDefault(x => x.PersonId == PersonId); + InformedConsentForm getData = new InformedConsentForm(); + if (person != null) + { + string projectName = Funs.DB.Base_Project.First(z => z.ProjectId == person.ProjectId).ProjectName; + string name = person.PersonName; + string IdentityCard = person.IdentityCard; + string Telephone = person.Telephone; + string year = person.InTime.HasValue ? person.InTime.Value.Year.ToString() : ""; + string month = person.InTime.HasValue ? person.InTime.Value.Month.ToString() : ""; + string day = person.InTime.HasValue ? person.InTime.Value.Day.ToString() : ""; + getData = (from x in Funs.DB.InformedConsentForm + where x.WorkPostName == person.WorkPostName + select x).FirstOrDefault(); + if (getData != null) + { + // 替换$name占位符 + getData.JobRiskNotice = getData.JobRiskNotice.Replace("$name", name); + // 替换多个占位符 + getData.HealthCommitment = getData.HealthCommitment.Replace("$name", name) + .Replace("$IdentityCard", IdentityCard) + .Replace("$Telephone", Telephone) + .Replace("$year", year) + .Replace("$month", month) + .Replace("$day", day) + .Replace("$projectName", projectName); + } + } + + responeData.data = new { getData }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + + #endregion + + #region 签字保存后根据人员id修改签字时间 + + /// + /// 保存签字图片的时格式是tokenkey=PersonId_1 + /// + /// + [HttpPost] + public Model.ResponeData updateSignTime(string PersonId, DateTime? newSignTime = null) + { + using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) + { + var responeData = new Model.ResponeData(); + try + { + // 查找要修改的记录 + var person = db.SitePerson_Person.FirstOrDefault(x => x.PersonId == PersonId); + if (person != null) + { + person.SignTime = newSignTime.HasValue ? newSignTime.Value : DateTime.Now; // 更新签字时间 + db.SubmitChanges(); + responeData.code = 1; + responeData.message = "保存成功。"; + } + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/SUBQHSE/WebAPI/WebAPI.csproj b/SUBQHSE/WebAPI/WebAPI.csproj index 81556ae..31706d2 100644 --- a/SUBQHSE/WebAPI/WebAPI.csproj +++ b/SUBQHSE/WebAPI/WebAPI.csproj @@ -201,6 +201,7 @@ + From 7c301ceb729518717e3779bb86ed7f308213f690 Mon Sep 17 00:00:00 2001 From: geh <1923421292@qq.com> Date: Thu, 17 Apr 2025 11:38:17 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/SGGLDB_2025-04-16-geh.sql | 109 ++++++++ SUBQHSE/BLL/HSSE/SitePerson/PersonService.cs | 2 + .../FineUIPro.Web/Controls/SeeQRImage.aspx.cs | 4 + .../HSSE/SitePerson/PersonIn.aspx.cs | 2 + .../HSSE/SitePerson/PersonList.aspx | 21 +- .../HSSE/SitePerson/PersonList.aspx.cs | 70 +++-- .../SitePerson/PersonList.aspx.designer.cs | 13 +- .../HSSE/SitePerson/PersonListEdit.aspx | 14 +- .../HSSE/SitePerson/PersonListEdit.aspx.cs | 18 +- .../PersonListEdit.aspx.designer.cs | 4 +- .../ProjectData/ProjectUnit.aspx | 3 + .../ProjectData/ProjectUnit.aspx.cs | 15 + .../ProjectData/ProjectUnit.aspx.designer.cs | 9 + SUBQHSE/Model/Model.cs | 60 ++++ .../ProjectUnitPenetrateController.cs | 46 +++ .../HSSE/InformedConsentFormController.cs | 2 +- .../WebAPI/Controllers/PersonController.cs | 261 ++++++++++++++++++ .../WebAPI/Filter/TestPermissionAttribute.cs | 12 +- 18 files changed, 622 insertions(+), 43 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_2025-04-16-geh.sql diff --git a/DataBase/版本日志/SGGLDB_2025-04-16-geh.sql b/DataBase/版本日志/SGGLDB_2025-04-16-geh.sql new file mode 100644 index 0000000..864f771 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_2025-04-16-geh.sql @@ -0,0 +1,109 @@ +SELECT Person.PersonId, + Person.CardNo, + Person.PersonName, + Person.Sex, + (Case Person.Sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '' END) AS SexName, + Person.IdentityCard, + Person.Address, + Person.ProjectId, + Person.UnitId, + Person.Birthday, + Person.TeamGroupId, + Person.WorkAreaId, + Person.WorkPostId, + Person.InTime, + Person.OutTime, + Person.OutResult, + Person.Telephone, + Person.PositionId, + Person.PostTitleId, + Person.PhotoUrl, + Person.IsUsed, + (CASE Person.IsUsed WHEN 1 THEN '是' ELSE '否' END) AS IsUsedName, + Person.IsUsedType, + (CASE Person.IsUsedType WHEN '1' THEN '在岗' WHEN '0' THEN '离岗' ELSE '待审核' END) AS IsUsedTypeName, + Person.IsCardUsed, + (CASE Person.IsCardUsed WHEN 'TRUE' THEN '是' ELSE '否' END) AS IsCardUsedName, + Person.PersonIndex, + Project.ProjectCode, + Project.ProjectName, + Unit.UnitCode, + Unit.UnitName, + TeamGroup.TeamGroupName, + --WorkArea.UnitWorkCode AS WorkAreaCode, + WorkAreaCode= STUFF((SELECT ',' + UnitWorkCode FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +Person.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''), + --WorkArea.UnitWorkName AS WorkAreaName + WorkAreaName= STUFF((SELECT ',' + UnitWorkName FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +Person.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''), + Post.WorkPostName, + Position.PositionName, + Title.PostTitleName, + Depart.DepartName, + Depart.DepartId, + Post.PostType, + Post.IsHsse, + (SELECT COUNT(*) FROM EduTrain_TrainRecordDetail T WHERE T.PersonId=Person.PersonId) AS TrainCount, + Person.AuditorId, + sysUser.UserName AS AuditorName, + Person.AuditorDate, + Person.IDCardUrl, + Person.IsForeign, + case when Person.IsForeign=1 then '是' else '否' end as IsForeignStr, + Person.IdcardType, + BasicData1.dictName as IdcardTypeName, + Person.IdcardStartDate, + Person.IdcardEndDate, + Person.IdcardForever, + case when Person.IdcardForever='Y' then '是' else '否' end as IdcardForeverStr, + Person.PoliticsStatus, + BasicData2.dictName as PoliticsStatusName, + Person.IdcardAddress, + Person.Nation, + BasicData3.dictName as NationName, + Person.EduLevel, + BasicData4.dictName as EduLevelName, + Person.MaritalStatus, + BasicData5.dictName as MaritalStatusName, + Person.CountryCode, + Country.cname as CountryName, + Person.ProvinceCode, + City.cname as ProvinceName, + Person.MainCNProfessionalId, + CNProfessional.ProfessionalName as MainCNProfessionalName, + Person.ViceCNProfessionalId, + '' as ViceCNProfessionalName, + Person.IsOutside, + case when Person.IsOutside=1 then '是' else '否' end as IsOutsideStr +FROM SitePerson_Person AS Person +LEFT JOIN Base_Project AS Project ON Project.ProjectId=Person.ProjectId +LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = Person.UnitId +LEFT JOIN ProjectData_TeamGroup AS TeamGroup ON TeamGroup.TeamGroupId=Person.TeamGroupId +--LEFT JOIN WBS_UnitWork AS WorkArea ON WorkArea.UnitWorkId = Person.WorkAreaId +LEFT JOIN Base_WorkPost AS Post ON Post.WorkPostId = Person.WorkPostId +LEFT JOIN Base_Position AS Position ON Position.PositionId = Person.PositionId +Left JOIN Base_PostTitle AS Title ON Title.PostTitleId = Person.PostTitleId +Left JOIN Base_Depart AS Depart ON Depart.DepartId = Person.DepartId +Left JOIN Sys_User AS sysUser ON sysUser.UserId = Person.AuditorId +Left JOIN RealName_BasicData AS BasicData1 ON BasicData1.dictCode = Person.IdcardType +Left JOIN RealName_BasicData AS BasicData2 ON BasicData2.dictCode = Person.PoliticsStatus +Left JOIN RealName_BasicData AS BasicData3 ON BasicData3.dictCode = Person.Nation +Left JOIN RealName_BasicData AS BasicData4 ON BasicData4.dictCode = Person.EduLevel +Left JOIN RealName_BasicData AS BasicData5 ON BasicData5.dictCode = Person.MaritalStatus +Left JOIN RealName_Country AS Country ON Country.CountryId = Person.CountryCode +Left JOIN RealName_City AS City ON City.provinceCode = Person.ProvinceCode +Left JOIN Base_CNProfessional AS CNProfessional ON CNProfessional.CNProfessionalId = Person.MainCNProfessionalId + + + + + +ALTER TABLE SitePerson_Person +ADD IsUsedType char(1) COLLATE Chinese_PRC_CI_AS NULL +go + +EXEC sp_addextendedproperty +'MS_Description', N'人员状态', +'SCHEMA', N'dbo', +'TABLE', N'SitePerson_Person', +'COLUMN', N'IsUsedType' +GO + diff --git a/SUBQHSE/BLL/HSSE/SitePerson/PersonService.cs b/SUBQHSE/BLL/HSSE/SitePerson/PersonService.cs index b7748f9..fa69586 100644 --- a/SUBQHSE/BLL/HSSE/SitePerson/PersonService.cs +++ b/SUBQHSE/BLL/HSSE/SitePerson/PersonService.cs @@ -591,6 +591,7 @@ namespace BLL Major = person.Major, Languages = person.Languages, PersonStates = person.PersonStates, + IsUsedType = person.IsUsedType, }; if (person.InTime.HasValue) @@ -655,6 +656,7 @@ namespace BLL newPerson.MaritalStatus = person.MaritalStatus; newPerson.DepartId = person.DepartId; newPerson.QRCodeAttachUrl = person.QRCodeAttachUrl; + newPerson.IsUsedType = person.IsUsedType; newPerson.Password = GetPersonPassWord(person.IdentityCard); if (!newPerson.OutTime.HasValue) { diff --git a/SUBQHSE/FineUIPro.Web/Controls/SeeQRImage.aspx.cs b/SUBQHSE/FineUIPro.Web/Controls/SeeQRImage.aspx.cs index a76c357..8475ef9 100644 --- a/SUBQHSE/FineUIPro.Web/Controls/SeeQRImage.aspx.cs +++ b/SUBQHSE/FineUIPro.Web/Controls/SeeQRImage.aspx.cs @@ -219,6 +219,10 @@ namespace FineUIPro.Web.Controls } } } + else if (!string.IsNullOrEmpty(Request.Params["ProjectUnitId"])) + { + this.CreateCode_Simple(Request.Params["strCode"]); + } this.Image1.ImageUrl = "~/" + this.QRCodeAttachUrl; } diff --git a/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonIn.aspx.cs b/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonIn.aspx.cs index 795f1f3..0a78588 100644 --- a/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonIn.aspx.cs +++ b/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonIn.aspx.cs @@ -1099,6 +1099,7 @@ namespace FineUIPro.Web.HSSE.SitePerson newPerson.IsForeign = persons[i].IsForeign; newPerson.IsOutside = persons[i].IsOutside; newPerson.IsUsed = persons[i].IsUsedName == "是" ? true : false; + newPerson.IsUsedType = persons[i].IsUsedName == "是" ? "1" : "0"; newPerson.IsCardUsed = persons[i].IsCardUsedName == "是" ? true : false; BLL.PersonService.AddPerson(newPerson); @@ -1142,6 +1143,7 @@ namespace FineUIPro.Web.HSSE.SitePerson getPerson.OutResult = persons[i].OutResult; getPerson.Telephone = persons[i].Telephone; getPerson.IsUsed = persons[i].IsUsedName == "是" ? true : false; + getPerson.IsUsedType = persons[i].IsUsedName == "是" ? "1" : "0"; getPerson.IsCardUsed = persons[i].IsCardUsedName == "是" ? true : false; Funs.DB.SubmitChanges(); } diff --git a/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx b/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx index a7a53b8..f5329db 100644 --- a/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx +++ b/SUBQHSE/FineUIPro.Web/HSSE/SitePerson/PersonList.aspx @@ -8,12 +8,9 @@ 人员信息 @@ -83,10 +80,12 @@ - - - + + + + + @@ -96,6 +95,8 @@ +