Merge branch 'master' of https://gitee.com/frane-yang/SGGL_CWCEC
This commit is contained in:
+20
-16
@@ -538,36 +538,40 @@ GO
|
||||
--GO
|
||||
|
||||
/*项目*/
|
||||
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('D097252D-B42A-4CAE-9030-A5C351057ABD','Menu_ProjectSet','项目设置',1,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('E116D85E-6215-4299-9EEA-FBC46B0E6163','Menu_CQMS','质量管理',2,'MenuType_P')
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('CF2CA03F-84B3-432E-AEAC-4ECF7890D6D7','Menu_PZHGL','施工管理',2,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('35282E20-81AB-4DA2-80F2-8F136776642D','Menu_HSSE','安全管理',3,'MenuType_P')
|
||||
VALUES('E116D85E-6215-4299-9EEA-FBC46B0E6163','Menu_CQMS','质量管理',3,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('B4F6F0B8-C7AD-421A-9BE3-DCC70EB39A8C','Menu_JDGL','进度管理',4,'MenuType_P')
|
||||
VALUES('B4F6F0B8-C7AD-421A-9BE3-DCC70EB39A8C','Menu_JDGL','进度/计划',4,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('CE689095-841F-4714-A2B4-BF72D13E2B94','Menu_HJGL','焊接管理',5,'MenuType_P')
|
||||
VALUES('35282E20-81AB-4DA2-80F2-8F136776642D','Menu_HSSE','HSE管理',5,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('CE689095-841F-4714-A2B4-BF72D13E2B94','Menu_HJGL','焊接管理',6,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('7AD04F82-91B3-4579-993C-8C8FAC503864','Menu_TestRun','试车管理',6,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('CF2CA03F-84B3-432E-AEAC-4ECF7890D6D7','Menu_PZHGL','施工综合',7,'MenuType_P')
|
||||
VALUES('7AD04F82-91B3-4579-993C-8C8FAC503864','Menu_TestRun','试车管理',7,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('85CF0BBF-A3F3-42DF-89DC-CE9A4886BCA1','Menu_DigitalSite','视频监控',8,'MenuType_P')
|
||||
VALUES('126FB0AC-521C-4145-86FC-B507D83B7646','Menu_Change','变更管理',8,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('C0457DFF-AAA3-4019-AC9B-34BF22BF3A0E','Menu_DocControl','文控管理',9,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('0B13D4A9-E047-4C18-AD68-8D3724D4F0A8','Menu_Attendance','现场考勤',10,'MenuType_P')
|
||||
GO
|
||||
INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
VALUES('85CF0BBF-A3F3-42DF-89DC-CE9A4886BCA1','Menu_Video','视频监控',11,'MenuType_P')
|
||||
GO
|
||||
--INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
--VALUES('0B13D4A9-E047-4C18-AD68-8D3724D4F0A8','Menu_Video','现场考勤',9,'MenuType_P')
|
||||
--GO
|
||||
--INSERT INTO Sys_Const (ID,ConstValue,ConstText,SortIndex,GroupId)
|
||||
--VALUES('69B856E6-E385-4771-9341-23E7416C46F1','Menu_PDigData','项目考勤',9,'MenuType_P')
|
||||
--GO
|
||||
|
||||
--项目类型
|
||||
INSERT INTO dbo.Sys_Const(ID, ConstValue, ConstText, SortIndex, GroupId)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE SitePerson_Person ADD RawPassword NVARCHAR(100) NULL
|
||||
GO
|
||||
ALTER TABLE Sys_user ADD RawPassword NVARCHAR(100) NULL
|
||||
GO
|
||||
@@ -0,0 +1,9 @@
|
||||
-- 重置双氧水项目人员下发状态 为空
|
||||
disable trigger [dbo].[SitePerson_Person_Bak_TRIGGER] on [dbo].[SitePerson_Person]
|
||||
go
|
||||
update SitePerson_Person set ExchangeTime=null,ExchangeTime2=null where ProjectId='0d511d27-c4ea-49ba-bd75-7b1c49a04382'
|
||||
go
|
||||
update SitePerson_Person_Bak set ExchangeTime=null,ExchangeTime2=null where ProjectId='0d511d27-c4ea-49ba-bd75-7b1c49a04382'
|
||||
go
|
||||
enable trigger [dbo].[SitePerson_Person_Bak_TRIGGER] on [dbo].[SitePerson_Person]
|
||||
go
|
||||
@@ -0,0 +1,4 @@
|
||||
--ADD BY YangHongwei 2022-08-04
|
||||
1、宏宜项目(许洪涛):考勤月记录校正数据方法优化。
|
||||
2、现场人员同步门禁状态重置按钮功能实现。
|
||||
--END
|
||||
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE [dbo].[EduTrain_TrainRecord] DROP CONSTRAINT [FK_EduTrain_TrainRecord_Training_Plan]
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
--ADD BY YangHongwei 2022-08-29
|
||||
1、旭科项目(张英魁)处理未做培训计划,直接按照考试计划考试的情况,新增按钮,手动将这部分考试记录归到到培训记录中。
|
||||
--END
|
||||
@@ -22,8 +22,7 @@ namespace BLL
|
||||
{
|
||||
var getUser = from x in db.SitePerson_Person
|
||||
where (x.Telephone == userInfo.Account || x.PersonName == userInfo.Account)
|
||||
&& (x.Password == Funs.EncryptionPassword(userInfo.Password)
|
||||
|| (x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password))
|
||||
&& x.Password == Funs.EncryptionPassword(userInfo.Password)
|
||||
&& x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) && x.IsUsed == true
|
||||
select new Model.UserItem
|
||||
{
|
||||
@@ -812,7 +811,8 @@ namespace BLL
|
||||
{
|
||||
newPerson.IsUsed = false;
|
||||
}
|
||||
newPerson.Password = PersonService.GetPersonPassWord(person.IdentityCard);
|
||||
newPerson.RawPassword = Funs.getInitialPassword(person.UnitId, person.IdentityCard);
|
||||
newPerson.Password = Funs.EncryptionPassword(newPerson.RawPassword);
|
||||
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
|
||||
if (!string.IsNullOrEmpty(rootUrl) && !string.IsNullOrEmpty(person.PhotoUrl))
|
||||
{
|
||||
|
||||
@@ -202,6 +202,7 @@ namespace BLL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//// 获取得到的单选题、多选题、判断题 数量
|
||||
int getDiffTestType1Count = sumTestType1Count - getTestTrainingItemList.Where(x => x.TestType == "1").Count();
|
||||
int getDiffTestType2Count = sumTestType2Count - getTestTrainingItemList.Where(x => x.TestType == "2").Count();
|
||||
@@ -502,11 +503,11 @@ namespace BLL
|
||||
/// </summary>
|
||||
/// <param name="testRecordItemId"></param>
|
||||
/// <param name="answerItems"></param>
|
||||
public static void getTestRecordItemAnswerBySelectedItem(Model.Training_TestRecordItem getTItemT, string selectedItem)
|
||||
public static void getTestRecordItemAnswerBySelectedItem(string testRecordItemId, string selectedItem)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
var getTItem = db.Training_TestRecordItem.FirstOrDefault(x => x.TestRecordItemId == getTItemT.TestRecordItemId);
|
||||
var getTItem = db.Training_TestRecordItem.FirstOrDefault(x => x.TestRecordItemId == testRecordItemId);
|
||||
if (getTItem != null)
|
||||
{
|
||||
getTItem.SubjectScore = 0;
|
||||
@@ -588,28 +589,31 @@ namespace BLL
|
||||
/// <param name="testRecord"></param>
|
||||
public static string getResitTestRecord(Model.Training_TestRecord getTestRecord)
|
||||
{
|
||||
Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
TestRecordId = SQLHelper.GetNewID(),
|
||||
ProjectId = getTestRecord.ProjectId,
|
||||
TestPlanId = getTestRecord.TestPlanId,
|
||||
TestManId = getTestRecord.TestManId,
|
||||
TestType = getTestRecord.TestType,
|
||||
TemporaryUser = getTestRecord.TemporaryUser,
|
||||
Duration = getTestRecord.Duration,
|
||||
// TestStartTime = DateTime.Now,
|
||||
};
|
||||
Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
|
||||
{
|
||||
TestRecordId = SQLHelper.GetNewID(),
|
||||
ProjectId = getTestRecord.ProjectId,
|
||||
TestPlanId = getTestRecord.TestPlanId,
|
||||
TestManId = getTestRecord.TestManId,
|
||||
TestType = getTestRecord.TestType,
|
||||
TemporaryUser = getTestRecord.TemporaryUser,
|
||||
Duration = getTestRecord.Duration,
|
||||
// TestStartTime = DateTime.Now,
|
||||
};
|
||||
|
||||
Funs.DB.Training_TestRecord.InsertOnSubmit(newTestRecord);
|
||||
Funs.DB.SubmitChanges();
|
||||
db.Training_TestRecord.InsertOnSubmit(newTestRecord);
|
||||
db.SubmitChanges();
|
||||
|
||||
var getTestPlan = Funs.DB.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == newTestRecord.TestPlanId);
|
||||
var person = PersonService.GetPersonByUserId(newTestRecord.TestManId, getTestPlan.ProjectId);
|
||||
if (getTestPlan != null && person != null)
|
||||
{
|
||||
CreateTestRecordItem(getTestPlan, newTestRecord.TestRecordId, person);
|
||||
var getTestPlan = db.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == newTestRecord.TestPlanId);
|
||||
var person =db.SitePerson_Person.FirstOrDefault(x=>x.PersonId == getTestRecord.TestManId);
|
||||
if (getTestPlan != null && person != null)
|
||||
{
|
||||
CreateTestRecordItem(getTestPlan, newTestRecord.TestRecordId, person);
|
||||
}
|
||||
return newTestRecord.TestRecordId;
|
||||
}
|
||||
return newTestRecord.TestRecordId;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -184,5 +184,96 @@ namespace BLL
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 将相关未做培训 但考试考生内容 写培训记录归档
|
||||
/// <summary>
|
||||
/// 将相关未做培训 但考试考生内容 写培训记录归档
|
||||
/// </summary>
|
||||
/// <param name="getTestPlan"></param>
|
||||
|
||||
public static void InsertTrainRecordNoTrainingPlan(Model.Training_TestPlan getTestPlan)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
Model.EduTrain_TrainRecord newTrainRecord = new Model.EduTrain_TrainRecord
|
||||
{
|
||||
TrainingId = SQLHelper.GetNewID(),
|
||||
TrainingCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectTrainRecordMenuId, getTestPlan.ProjectId, Const.UnitId_CWCEC),
|
||||
ProjectId = getTestPlan.ProjectId,
|
||||
TrainTitle = getTestPlan.PlanName,
|
||||
TrainContent = getTestPlan.PlanName,
|
||||
TrainStartDate = getTestPlan.TestStartTime,
|
||||
TeachHour = getTestPlan.Duration,
|
||||
TrainEndDate = getTestPlan.TestEndTime,
|
||||
TeachMan = UserService.GetUserNameByUserId(getTestPlan.PlanManId),
|
||||
TeachAddress = getTestPlan.TestPalce,
|
||||
Remark = "来源:考试计划",
|
||||
TrainTypeId = Const.EntryTrainTypeId,
|
||||
UnitIds = getTestPlan.UnitIds,
|
||||
States = Const.State_2,
|
||||
WorkPostIds = getTestPlan.WorkPostIds,
|
||||
PlanId = getTestPlan.TestPlanId,
|
||||
};
|
||||
newTrainRecord.CompileMan = newTrainRecord.TeachMan;
|
||||
///获取培训人员
|
||||
var getTestRecords = from x in db.Training_TestRecord
|
||||
where x.TestPlanId == getTestPlan.TestPlanId
|
||||
select x;
|
||||
newTrainRecord.TrainPersonNum = getTestRecords.Count();
|
||||
///新增培训记录
|
||||
db.EduTrain_TrainRecord.InsertOnSubmit(newTrainRecord);
|
||||
db.SubmitChanges();
|
||||
|
||||
////及格分数
|
||||
int passScore = 80;
|
||||
var testRule = db.Sys_TestRule.FirstOrDefault();
|
||||
if (testRule != null)
|
||||
{
|
||||
passScore = testRule.PassingScore;
|
||||
}
|
||||
|
||||
foreach (var item in getTestRecords)
|
||||
{
|
||||
var getItem = db.EduTrain_TrainRecordDetail.FirstOrDefault(x => x.PersonId == item.TestManId && x.CheckResult);
|
||||
if (getItem == null)
|
||||
{
|
||||
|
||||
decimal gScores = item.TestScores ?? 0;
|
||||
bool result = false;
|
||||
if (gScores >= passScore)
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
|
||||
Model.EduTrain_TrainRecordDetail newDetail = new Model.EduTrain_TrainRecordDetail
|
||||
{
|
||||
TrainDetailId = SQLHelper.GetNewID(),
|
||||
TrainingId = newTrainRecord.TrainingId,
|
||||
PersonId = item.TestManId,
|
||||
CheckScore = gScores,
|
||||
CheckResult = result,
|
||||
};
|
||||
db.EduTrain_TrainRecordDetail.InsertOnSubmit(newDetail);
|
||||
db.SubmitChanges();
|
||||
|
||||
///// 培训考试 通过 更新卡号
|
||||
if (result)
|
||||
{
|
||||
var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == newDetail.PersonId);
|
||||
if (getPerson != null && string.IsNullOrEmpty(getPerson.CardNo))
|
||||
{
|
||||
getPerson.CardNo = SQLHelper.RunProcNewId("SpGetNewNumber", "SitePerson_Person", "CardNo", getPerson.ProjectId, UnitService.GetUnitCodeByUnitId(getPerson.UnitId));
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////增加一条编码记录
|
||||
CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectTrainRecordMenuId, newTrainRecord.ProjectId, null, newTrainRecord.TrainingId, newTrainRecord.TrainStartDate);
|
||||
CommonService.btnSaveData(newTrainRecord.ProjectId, Const.ProjectTrainRecordMenuId, newTrainRecord.TrainingId, getTestPlan.PlanManId, true, newTrainRecord.TrainTitle, "../EduTrain/TrainRecordView.aspx?TrainingId={0}");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
+72
-1
@@ -4,8 +4,8 @@ namespace BLL
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.Linq;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
|
||||
@@ -146,6 +146,7 @@ namespace BLL
|
||||
//}
|
||||
|
||||
private static object locker = new object();
|
||||
|
||||
/// <summary>
|
||||
/// 数据库上下文。
|
||||
/// </summary>
|
||||
@@ -195,6 +196,76 @@ namespace BLL
|
||||
//return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "MD5");
|
||||
}
|
||||
|
||||
#region 获取用户初始密码
|
||||
/// <summary>
|
||||
/// 获取用户初始密码
|
||||
/// </summary>
|
||||
/// <param name="password"></param>
|
||||
/// <returns></returns>
|
||||
public static string getInitialPassword(string unitId, string idCard)
|
||||
{
|
||||
string prefixValue = "CWCEC";
|
||||
string suffixValue = "1234";
|
||||
//var getUnit = UnitService.GetUnitByUnitId(unitId);
|
||||
//if (getUnit != null)
|
||||
//{
|
||||
// if (!string.IsNullOrEmpty(getUnit.UnitCode))
|
||||
// {
|
||||
// if (getUnit.UnitCode.Length > 10)
|
||||
// {
|
||||
// prefixValue = getUnit.UnitCode.Substring(getUnit.UnitCode.Length - 10);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// prefixValue = getUnit.UnitCode;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
if (!string.IsNullOrEmpty(idCard))
|
||||
{
|
||||
if (idCard.Length > 4)
|
||||
{
|
||||
suffixValue = idCard.Substring(idCard.Length - 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
suffixValue = idCard;
|
||||
}
|
||||
}
|
||||
return prefixValue + "." + suffixValue;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 验证密码
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="c"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsLetter(char c)
|
||||
{
|
||||
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
|
||||
}
|
||||
|
||||
public static bool IsDigit(char c)
|
||||
{
|
||||
return c >= '0' && c <= '9';
|
||||
}
|
||||
|
||||
static bool IsSymbol(char c)
|
||||
{
|
||||
return c > 32 && c < 127 && !IsDigit(c) && !IsLetter(c);
|
||||
}
|
||||
|
||||
public static bool IsValIDPassword(string password)
|
||||
{
|
||||
return
|
||||
password.Any(c => IsLetter(c)) &&
|
||||
password.Any(c => IsDigit(c)) &&
|
||||
password.Any(c => IsSymbol(c));
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 为目标下拉框加上 "请选择" 项
|
||||
/// </summary>
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace BLL
|
||||
/// <returns></returns>
|
||||
public static Model.Training_TestPlan GetTestPlanByPlanId(string planId)
|
||||
{
|
||||
return Funs.DB.Training_TestPlan.FirstOrDefault(x => x.PlanId == planId);
|
||||
return Funs.DB.Training_TestPlan.FirstOrDefault(x => x.PlanId == planId || x.TestPlanId ==planId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,6 +222,7 @@ namespace BLL
|
||||
return personName;
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 根据UserId主键获取人员信息
|
||||
/// </summary>
|
||||
@@ -437,7 +438,8 @@ namespace BLL
|
||||
ProvinceCode = person.ProvinceCode,
|
||||
IsCardNoOK=IDCardValid.CheckIDCard(person.IdentityCard),
|
||||
};
|
||||
|
||||
newPerson.RawPassword = Funs.getInitialPassword(person.UnitId, person.IdentityCard);
|
||||
newPerson.Password = Funs.EncryptionPassword(newPerson.RawPassword);
|
||||
if (person.InTime.HasValue)
|
||||
{
|
||||
newPerson.InTime = person.InTime;
|
||||
@@ -532,11 +534,30 @@ namespace BLL
|
||||
newPerson.CountryCode = person.CountryCode;
|
||||
newPerson.ProvinceCode = person.ProvinceCode;
|
||||
newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard);
|
||||
|
||||
newPerson.RawPassword = Funs.getInitialPassword(person.UnitId, person.IdentityCard);
|
||||
newPerson.Password = Funs.EncryptionPassword(newPerson.RawPassword);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改密码
|
||||
/// </summary>
|
||||
/// <param name="personId"></param>
|
||||
/// <param name="password"></param>
|
||||
public static void UpdateSitePersonPassword(string personId, string password)
|
||||
{
|
||||
var m = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == personId);
|
||||
if (m != null)
|
||||
{
|
||||
m.RawPassword = password;
|
||||
m.Password = Funs.EncryptionPassword(password);
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 人员离岗
|
||||
/// </summary>
|
||||
|
||||
@@ -272,12 +272,14 @@ namespace BLL
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime dateS = DateTime.Now.AddMonths(-3);
|
||||
dateS = Funs.GetNewDateTimeOrNow(DateTime.Now.AddMonths(-3).Year + "-" + DateTime.Now.AddMonths(-3).Month + "-01");
|
||||
var getNums = from x in db.SitePerson_PersonInOutNumber
|
||||
where x.ProjectId == projectId && x.InOutDate.AddMonths(3) >= DateTime.Now
|
||||
where x.ProjectId == projectId && x.InOutDate >= dateS
|
||||
orderby x.InOutDate
|
||||
select x;
|
||||
select x;
|
||||
var getInouts = from x in db.SitePerson_PersonInOut
|
||||
where x.ProjectId == projectId && x.ChangeTime.Value.AddMonths(3) >= DateTime.Now
|
||||
where x.ProjectId == projectId && x.ChangeTime.Value >= dateS
|
||||
select x;
|
||||
int SafeHours = 0;
|
||||
foreach (var itemNum in getNums)
|
||||
@@ -287,7 +289,7 @@ namespace BLL
|
||||
var getAllPersonInOutList = from x in getInouts
|
||||
where x.ChangeTime > date.AddDays(-1) && x.ChangeTime < date.AddDays(1)
|
||||
select x;
|
||||
|
||||
|
||||
if (getAllPersonInOutList.Count() > 0)
|
||||
{
|
||||
/// 出场记录
|
||||
@@ -301,13 +303,16 @@ namespace BLL
|
||||
{
|
||||
SafeHours = getMaxInOutDate.WorkHours ?? 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
SafeHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == projectId && x.InOutDate < dateS).Max(x => x.WorkHours) ?? 0;
|
||||
}
|
||||
}
|
||||
|
||||
int getOutPersonCount = getPersonOutTimes.Select(x => x.PersonId).Distinct().Count();
|
||||
SafeHours += getOutPersonCount * 8;
|
||||
}
|
||||
|
||||
|
||||
//SafeHours = Convert.ToInt32(SafeHours * 1.0 / 60);
|
||||
if (itemNum != null)
|
||||
{
|
||||
|
||||
@@ -13,13 +13,17 @@
|
||||
/// <returns></returns>
|
||||
public static int getPassScore()
|
||||
{
|
||||
int passScore = 80;
|
||||
var testRule = Funs.DB.Sys_TestRule.FirstOrDefault();
|
||||
if (testRule != null)
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
passScore = testRule.PassingScore;
|
||||
int passScore = 80;
|
||||
var testRule =db.Sys_TestRule.FirstOrDefault();
|
||||
if (testRule != null)
|
||||
{
|
||||
passScore = testRule.PassingScore;
|
||||
}
|
||||
|
||||
return passScore;
|
||||
}
|
||||
return passScore;
|
||||
}
|
||||
|
||||
#region 菜单编码模板
|
||||
|
||||
@@ -176,12 +176,12 @@ namespace BLL
|
||||
/// <param name="password"></param>
|
||||
public static void UpdatePassword(string userId, string password)
|
||||
{
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
Model.Sys_User m = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
|
||||
Model.Sys_User m = Funs.DB.Sys_User.FirstOrDefault(e => e.UserId == userId);
|
||||
if (m != null)
|
||||
{
|
||||
m.RawPassword = password;
|
||||
m.Password = Funs.EncryptionPassword(password);
|
||||
db.SubmitChanges();
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,6 +199,7 @@ namespace BLL
|
||||
Account = user.Account,
|
||||
UserName = user.UserName,
|
||||
UserCode = user.UserCode,
|
||||
RawPassword = user.RawPassword,
|
||||
Password = user.Password,
|
||||
UnitId = user.UnitId,
|
||||
RoleId = user.RoleId,
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -57,6 +57,8 @@
|
||||
</f:CheckBox>
|
||||
<f:Label runat="server" Text="红色表示分数低于80分。" CssClass="LabelColor"></f:Label>
|
||||
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
|
||||
<f:Button ID="btnRefresh" Text="校正重复试题" Icon="ArrowRefresh" runat="server" Hidden="true" OnClick="btnRefresh_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnOut" OnClick="btnMenuOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
|
||||
EnableAjax="false" DisableControlBeforePostBack="false">
|
||||
</f:Button>
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
using Aspose.Words;
|
||||
using BLL;
|
||||
using BLL;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
public partial class TestRecord : PageBase
|
||||
@@ -316,6 +314,7 @@ namespace FineUIPro.Web.HSSE.EduTrain
|
||||
if (buttonList.Contains(BLL.Const.BtnDelete))
|
||||
{
|
||||
this.btnMenuDelete.Hidden = false;
|
||||
this.btnRefresh.Hidden= false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -331,5 +330,49 @@ namespace FineUIPro.Web.HSSE.EduTrain
|
||||
|
||||
PrinterDocService.PrinterDocMethod(Const.ProjectTestRecordMenuId, Grid1.SelectedRowID, "试卷");
|
||||
}
|
||||
|
||||
protected void btnRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
int countRecod = 0;
|
||||
var getData = from x in Funs.DB.Training_TestRecordItem
|
||||
join y in Funs.DB.Training_TestRecord on x.TestRecordId equals y.TestRecordId
|
||||
where y.ProjectId == this.CurrUser.LoginProjectId
|
||||
group x by new { x.TestRecordId, x.TrainingItemCode } into g
|
||||
where g.Count() > 1
|
||||
select new { g.FirstOrDefault().TestRecordId, g.FirstOrDefault().TrainingItemCode, gCount= g.Count() };
|
||||
if (getData.Count() > 0)
|
||||
{
|
||||
List<string> TestRecordIdList = getData.Select(x => x.TestRecordId).Distinct().ToList();
|
||||
foreach (var item in getData)
|
||||
{
|
||||
var getTestRecordItem = Funs.DB.Training_TestRecordItem.FirstOrDefault(x => x.TestRecordId == item.TestRecordId
|
||||
&& x.TrainingItemCode == item.TrainingItemCode && (!x.SubjectScore.HasValue || x.SubjectScore < x.Score ));
|
||||
if (getTestRecordItem == null)
|
||||
{
|
||||
getTestRecordItem = Funs.DB.Training_TestRecordItem.FirstOrDefault(x => x.TestRecordId == item.TestRecordId
|
||||
&& x.TrainingItemCode == item.TrainingItemCode);
|
||||
}
|
||||
|
||||
if (getTestRecordItem != null)
|
||||
{
|
||||
Funs.DB.Training_TestRecordItem.DeleteOnSubmit(getTestRecordItem);
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item in TestRecordIdList)
|
||||
{
|
||||
var getTestRecord = Funs.DB.Training_TestRecord.FirstOrDefault(x => x.TestRecordId == item);
|
||||
if (getTestRecord != null)
|
||||
{
|
||||
getTestRecord.TestScores = Funs.DB.Training_TestRecordItem.Where(x => x.TestRecordId == item).Sum(x => x.SubjectScore ?? 0);
|
||||
Funs.DB.SubmitChanges();
|
||||
countRecod++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Alert.ShowInTop("操作完成,共处理"+countRecod.ToString()+"条考试记录", MessageBoxIcon.Success);
|
||||
}
|
||||
}
|
||||
}
|
||||
+38
-27
@@ -7,11 +7,13 @@
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
|
||||
|
||||
public partial class TestRecord {
|
||||
|
||||
namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
|
||||
|
||||
public partial class TestRecord
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
@@ -20,7 +22,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
@@ -29,7 +31,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
@@ -38,7 +40,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
@@ -47,7 +49,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
@@ -56,7 +58,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtName 控件。
|
||||
/// </summary>
|
||||
@@ -65,7 +67,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtName;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtMinScores 控件。
|
||||
/// </summary>
|
||||
@@ -74,7 +76,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.NumberBox txtMinScores;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtMaxScores 控件。
|
||||
/// </summary>
|
||||
@@ -83,7 +85,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.NumberBox txtMaxScores;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// IsTemp 控件。
|
||||
/// </summary>
|
||||
@@ -92,7 +94,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox IsTemp;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtStartDate 控件。
|
||||
/// </summary>
|
||||
@@ -101,7 +103,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtStartDate;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtEndDate 控件。
|
||||
/// </summary>
|
||||
@@ -110,7 +112,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtEndDate;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ckIsNULL 控件。
|
||||
/// </summary>
|
||||
@@ -119,7 +121,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox ckIsNULL;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarFill1 控件。
|
||||
/// </summary>
|
||||
@@ -128,7 +130,16 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarFill ToolbarFill1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnRefresh 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnRefresh;
|
||||
|
||||
/// <summary>
|
||||
/// btnOut 控件。
|
||||
/// </summary>
|
||||
@@ -137,7 +148,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnOut;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// labNumber 控件。
|
||||
/// </summary>
|
||||
@@ -146,7 +157,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label labNumber;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarSeparator1 控件。
|
||||
/// </summary>
|
||||
@@ -155,7 +166,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarText1 控件。
|
||||
/// </summary>
|
||||
@@ -164,7 +175,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarText ToolbarText1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ddlPageSize 控件。
|
||||
/// </summary>
|
||||
@@ -173,7 +184,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlPageSize;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
@@ -182,7 +193,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Menu1 控件。
|
||||
/// </summary>
|
||||
@@ -191,7 +202,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Menu Menu1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuView 控件。
|
||||
/// </summary>
|
||||
@@ -200,7 +211,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnMenuView;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPrinter 控件。
|
||||
/// </summary>
|
||||
@@ -209,7 +220,7 @@ namespace FineUIPro.Web.HSSE.EduTrain {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnPrinter;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuDelete 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BLL;
|
||||
using FineUIPro.Web.BoSheng;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -548,7 +549,7 @@ namespace FineUIPro.Web.HSSE.EduTrain
|
||||
{
|
||||
var getTrainRecordDetail = Funs.DB.EduTrain_TrainRecordDetail.Where(x => x.TrainingId == itemRecord.TrainingId);
|
||||
if (itemRecord.TrainPersonNum > getTrainRecordDetail.Count())
|
||||
{
|
||||
{
|
||||
var getTrainingTasks = from x in Funs.DB.Training_Task
|
||||
where x.PlanId == itemRecord.PlanId
|
||||
select x;
|
||||
@@ -628,14 +629,36 @@ namespace FineUIPro.Web.HSSE.EduTrain
|
||||
Alert.ShowInTop("刷新完成!", MessageBoxIcon.Success);
|
||||
}
|
||||
|
||||
var getTestPlanStates = from x in Funs.DB.Training_TestPlan
|
||||
join y in Funs.DB.Training_Plan on x.PlanId equals y.PlanId
|
||||
where x.States == Const.State_3 && y.States == Const.State_2
|
||||
select x;
|
||||
foreach (var item in getTestPlanStates)
|
||||
var getTestPlans = from x in Funs.DB.Training_TestPlan
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3
|
||||
select x;
|
||||
|
||||
var getTestPlanStates = from x in getTestPlans
|
||||
join y in Funs.DB.Training_Plan on x.PlanId equals y.PlanId
|
||||
where x.PlanId != null && y.States == Const.State_2
|
||||
select x;
|
||||
if (getTestPlanStates.Count() > 0)
|
||||
{
|
||||
////TODO 讲培训计划 考试记录 写入到培训记录
|
||||
BLL. APITrainRecordService.InsertTrainRecord(item);
|
||||
foreach (var item in getTestPlanStates)
|
||||
{
|
||||
////TODO 讲培训计划 考试记录 写入到培训记录
|
||||
BLL.APITrainRecordService.InsertTrainRecord(item);
|
||||
}
|
||||
}
|
||||
|
||||
var getTestPlanS = from x in getTestPlans
|
||||
join y in Funs.DB.EduTrain_TrainRecord on x.TestPlanId equals y.PlanId into jonPerson
|
||||
from y in jonPerson.DefaultIfEmpty()
|
||||
where x.PlanId == null && y.TrainingId == null
|
||||
orderby y.TrainStartDate
|
||||
select x;
|
||||
if (getTestPlanS.Count() > 0)
|
||||
{
|
||||
foreach (var item in getTestPlanS)
|
||||
{
|
||||
//// 将相关未做培训 但考试考生内容 写培训记录归档
|
||||
BLL.APITrainRecordService.InsertTrainRecordNoTrainingPlan(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonIn.aspx.cs" Inherits="FineUIPro.Web.HSSE.SitePerson.PersonIn" %>
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonIn.aspx.cs"
|
||||
Inherits="FineUIPro.Web.HSSE.SitePerson.PersonIn" ValidateRequest="false" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
|
||||
@@ -1097,7 +1097,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
{
|
||||
Model.QualityAudit_PersonQuality newPersonQuality = new Model.QualityAudit_PersonQuality
|
||||
{
|
||||
PersonQualityId = SQLHelper.GetNewID(typeof(Model.QualityAudit_PersonQuality)),
|
||||
PersonQualityId = SQLHelper.GetNewID(),
|
||||
PersonId = newPerson.PersonId,
|
||||
CompileMan = this.CurrUser.UserId,
|
||||
CompileDate = DateTime.Now
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonList.aspx.cs" Inherits="FineUIPro.Web.HSSE.SitePerson.PersonList" %>
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonList.aspx.cs"
|
||||
Inherits="FineUIPro.Web.HSSE.SitePerson.PersonList" ValidateRequest="false" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
@@ -66,8 +67,8 @@
|
||||
</f:TextBox>
|
||||
<f:ToolbarFill runat="server">
|
||||
</f:ToolbarFill>
|
||||
<f:Button ID="btSearch" ToolTip="查询" Icon="SystemSearch" runat="server" OnClick="TextBox_TextChanged"></f:Button>
|
||||
<f:Button ID="btnNew" ToolTip="增加" Icon="Add" runat="server" Hidden="true" OnClick="btnNew_Click">
|
||||
<f:Button ID="btSearch" Text="查询" Icon="SystemSearch" runat="server" OnClick="TextBox_TextChanged"></f:Button>
|
||||
<f:Button ID="btnNew" Text="增加" Icon="Add" runat="server" Hidden="true" OnClick="btnNew_Click">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
@@ -76,7 +77,7 @@
|
||||
<f:Toolbar ID="Toolbar1" Position="Top" ToolbarAlign="Right" runat="server">
|
||||
<Items>
|
||||
<f:RadioButtonList ID="rblPost" runat="server" AutoPostBack="true" Width="220px"
|
||||
OnSelectedIndexChanged="TextBox_TextChanged">
|
||||
OnSelectedIndexChanged="TextBox_TextChanged" AutoColumnWidth="true">
|
||||
<f:RadioItem Value="-1" Text="全部" Selected="true" />
|
||||
<f:RadioItem Value="1" Text="在岗" />
|
||||
<f:RadioItem Value="0" Text="不在岗" />
|
||||
@@ -91,17 +92,20 @@
|
||||
AutoPostBack="true" OnCheckedChanged="TextBox_TextChanged">
|
||||
</f:CheckBox>
|
||||
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
|
||||
<f:Button ID="btnPersonOut" ToolTip="批量出场" Icon="UserGo" runat="server" Hidden="true" OnClick="btnPersonOut_Click">
|
||||
<f:Button ID="btnPersonOut" Text="批量出场" ToolTip="批量出场" Icon="UserGo" runat="server"
|
||||
Hidden="true" OnClick="btnPersonOut_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnImport" ToolTip="导入" Icon="ApplicationGet" Hidden="true" runat="server"
|
||||
<f:Button ID="btnImport" Text="导入" ToolTip="导入" Icon="ApplicationGet" Hidden="true" runat="server"
|
||||
OnClick="btnImport_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
|
||||
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" Text="导出" ToolTip="导出" Icon="FolderUp"
|
||||
EnableAjax="false" DisableControlBeforePostBack="false">
|
||||
</f:Button>
|
||||
<f:Button ID="btnQR" ToolTip="批量生成二维码" Icon="TableRefresh" runat="server" OnClick="btnQR_Click">
|
||||
<f:Button ID="btnQR" Text="二维码" ToolTip="批量生成二维码" Icon="TableRefresh" runat="server" OnClick="btnQR_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnPhoto" ToolTip="刷新照片转二进制" Icon="ArrowRefresh" runat="server" OnClick="btnPhoto_Click">
|
||||
<f:Button ID="btnPersonStates" Text="重置下发状态" ToolTip="重置下发状态" Icon="DatabaseRefresh" runat="server" OnClick="btnPersonStates_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnPhoto" Text="照片二进制" ToolTip="刷新照片转二进制" Icon="ArrowRefresh" runat="server" OnClick="btnPhoto_Click">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
@@ -159,11 +163,11 @@
|
||||
</f:Panel>
|
||||
<f:Window ID="Window1" Title="编辑人员信息" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window1_Close" IsModal="true"
|
||||
Width="1000px" Height="660px">
|
||||
Width="1200px" Height="660px">
|
||||
</f:Window>
|
||||
<f:Window ID="Window2" Title="导入人员信息" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window2_Close" IsModal="false"
|
||||
CloseAction="HidePostBack" Width="1200px" Height="600px">
|
||||
CloseAction="HidePostBack" Width="1200px" Height="650px">
|
||||
</f:Window>
|
||||
<f:Window ID="Window3" Title="编辑人员信息" Hidden="true" EnableIFrame="true" EnableMaximize="true"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window3_Close" IsModal="true"
|
||||
|
||||
@@ -684,5 +684,23 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
{
|
||||
this.drpPost.SelectedValueArray = Funs.RemoveDropDownListNull(this.drpPost.SelectedValueArray);
|
||||
}
|
||||
|
||||
protected void btnPersonStates_Click(object sender, EventArgs e)
|
||||
{
|
||||
var getPersons = from x in Funs.DB.SitePerson_Person
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId && x.ExchangeTime.HasValue
|
||||
select x;
|
||||
int pcount = getPersons.Count();
|
||||
if (pcount > 0)
|
||||
{
|
||||
foreach (var item in getPersons)
|
||||
{
|
||||
item.ExchangeTime = null;
|
||||
item.ExchangeTime2 = null;
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
Alert.ShowInTop("操作完成,重置人员" + pcount.ToString() + "条", MessageBoxIcon.Success);
|
||||
}
|
||||
}
|
||||
}
|
||||
+52
-41
@@ -7,11 +7,13 @@
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
|
||||
|
||||
public partial class PersonList {
|
||||
|
||||
namespace FineUIPro.Web.HSSE.SitePerson
|
||||
{
|
||||
|
||||
|
||||
public partial class PersonList
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
@@ -20,7 +22,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
@@ -29,7 +31,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
@@ -38,7 +40,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// panelLeftRegion 控件。
|
||||
/// </summary>
|
||||
@@ -47,7 +49,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel panelLeftRegion;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// tvProjectAndUnit 控件。
|
||||
/// </summary>
|
||||
@@ -56,7 +58,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tree tvProjectAndUnit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar2 控件。
|
||||
/// </summary>
|
||||
@@ -65,7 +67,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPersonUnit 控件。
|
||||
/// </summary>
|
||||
@@ -74,7 +76,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPersonUnit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// panelCenterRegion 控件。
|
||||
/// </summary>
|
||||
@@ -83,7 +85,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel panelCenterRegion;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
@@ -92,7 +94,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar3 控件。
|
||||
/// </summary>
|
||||
@@ -101,7 +103,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar3;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtPersonName 控件。
|
||||
/// </summary>
|
||||
@@ -110,7 +112,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtPersonName;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpPost 控件。
|
||||
/// </summary>
|
||||
@@ -119,7 +121,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList drpPost;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpTreamGroup 控件。
|
||||
/// </summary>
|
||||
@@ -128,7 +130,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList drpTreamGroup;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtIdentityCard 控件。
|
||||
/// </summary>
|
||||
@@ -137,7 +139,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtIdentityCard;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btSearch 控件。
|
||||
/// </summary>
|
||||
@@ -146,7 +148,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btSearch;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnNew 控件。
|
||||
/// </summary>
|
||||
@@ -155,7 +157,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnNew;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
@@ -164,7 +166,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// rblPost 控件。
|
||||
/// </summary>
|
||||
@@ -173,7 +175,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.RadioButtonList rblPost;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ckJT 控件。
|
||||
/// </summary>
|
||||
@@ -182,7 +184,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox ckJT;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ckTrain 控件。
|
||||
/// </summary>
|
||||
@@ -191,7 +193,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox ckTrain;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ckIdCardInfoNotOK 控件。
|
||||
/// </summary>
|
||||
@@ -200,7 +202,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBox ckIdCardInfoNotOK;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarFill1 控件。
|
||||
/// </summary>
|
||||
@@ -209,7 +211,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarFill ToolbarFill1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPersonOut 控件。
|
||||
/// </summary>
|
||||
@@ -218,7 +220,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPersonOut;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnImport 控件。
|
||||
/// </summary>
|
||||
@@ -227,7 +229,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnImport;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnOut 控件。
|
||||
/// </summary>
|
||||
@@ -236,7 +238,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnOut;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnQR 控件。
|
||||
/// </summary>
|
||||
@@ -245,7 +247,16 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnQR;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPersonStates 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPersonStates;
|
||||
|
||||
/// <summary>
|
||||
/// btnPhoto 控件。
|
||||
/// </summary>
|
||||
@@ -254,7 +265,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPhoto;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarSeparator1 控件。
|
||||
/// </summary>
|
||||
@@ -263,7 +274,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ToolbarText1 控件。
|
||||
/// </summary>
|
||||
@@ -272,7 +283,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ToolbarText ToolbarText1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ddlPageSize 控件。
|
||||
/// </summary>
|
||||
@@ -281,7 +292,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlPageSize;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
@@ -290,7 +301,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window2 控件。
|
||||
/// </summary>
|
||||
@@ -299,7 +310,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window3 控件。
|
||||
/// </summary>
|
||||
@@ -308,7 +319,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window3;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// WindowPunishRecord 控件。
|
||||
/// </summary>
|
||||
@@ -317,7 +328,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window WindowPunishRecord;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Menu1 控件。
|
||||
/// </summary>
|
||||
@@ -326,7 +337,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Menu Menu1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuEdit 控件。
|
||||
/// </summary>
|
||||
@@ -335,7 +346,7 @@ namespace FineUIPro.Web.HSSE.SitePerson {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.MenuButton btnMenuEdit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnMenuDelete 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonListEdit.aspx.cs" Inherits="FineUIPro.Web.HSSE.SitePerson.PersonListEdit" %>
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PersonListEdit.aspx.cs"
|
||||
Inherits="FineUIPro.Web.HSSE.SitePerson.PersonListEdit" ValidateRequest="false" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
@@ -98,7 +99,8 @@
|
||||
</f:DropDownBox>
|
||||
<f:DropDownList ID="drpMainCNProfessional" runat="server" Label="主专业" EnableEdit="true" LabelAlign="Right" LabelWidth="110px">
|
||||
</f:DropDownList>
|
||||
<f:DropDownList ID="drpAuditor" runat="server" Label="审核人" LabelAlign="Right" EnableEdit="true" LabelWidth="110px">
|
||||
<f:DropDownList ID="drpAuditor" runat="server" Label="审核人" LabelAlign="Right" EnableEdit="true" LabelWidth="110px"
|
||||
AutoPostBack="true" OnSelectedIndexChanged="drpAuditor_SelectedIndexChanged">
|
||||
</f:DropDownList>
|
||||
<f:CheckBox runat="server" ID="ckIsForeign" Label="外籍" LabelAlign="Right" LabelWidth="110px"></f:CheckBox>
|
||||
<f:DatePicker ID="txtBirthday" runat="server" Label="出生日期" LabelAlign="Right" LabelWidth="110px">
|
||||
|
||||
@@ -251,6 +251,11 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
this.rblIsUsed.SelectedValue = "True";
|
||||
this.rblIsCardUsed.SelectedValue = "True";
|
||||
}
|
||||
|
||||
if (this.drpAuditor.SelectedValue != this.CurrUser.UserId)
|
||||
{
|
||||
this.txtAuditorDate.Readonly = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -898,5 +903,20 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 审核人下拉框
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void drpAuditor_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.txtAuditorDate.Readonly = false;
|
||||
/// 当审核人为当前人是 审核时间可读
|
||||
if (this.drpAuditor.SelectedValue != this.CurrUser.UserId)
|
||||
{
|
||||
this.txtAuditorDate.Readonly = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,11 +140,11 @@
|
||||
</div>
|
||||
<div class="bi-flex-vertical-center-adapt-layout bi-flex-horizontal-layout v-middle h-left"
|
||||
style="height: 100%; position: relative; float: right;">
|
||||
<div
|
||||
<%-- <div
|
||||
class="bi-single bi-basic-button cursor-pointer bi-button button-common bi-label bi-flex-center-adapt-layout clear"
|
||||
style="height: 16px; line-height: 16px; position: relative; flex-shrink: 0; color:#fff">
|
||||
忘记密码?
|
||||
</div>
|
||||
</div>--%>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bi-horizon-auto-layout" style="position: relative;">
|
||||
|
||||
@@ -40,6 +40,9 @@
|
||||
<f:Button ID="btnCustomQuery" Text="自定义查询" Icon="SystemSearch" runat="server"
|
||||
OnClick="btnCustomQuery_Click" Hidden="true">
|
||||
</f:Button>
|
||||
<f:Button ID="btnPassRefresh" Icon="TableRefresh" runat="server" Text="重置所有人密码" ToolTip="重置所有人密码"
|
||||
OnClick="btnPassRefresh_Click" Hidden="true">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
|
||||
@@ -43,7 +43,15 @@ namespace FineUIPro.Web.Personal
|
||||
this.btnCustomQuery.Hidden = false;
|
||||
this.lbSystemVersion.Hidden = false;
|
||||
this.lbSystemVersion.Text = Funs.SystemVersion;
|
||||
this.btnPassRefresh.Hidden = false;
|
||||
}
|
||||
if (this.CurrUser.UserId == Const.sysglyId)
|
||||
{
|
||||
this.lbSystemVersion.Hidden = false;
|
||||
this.lbSystemVersion.Text = Funs.SystemVersion;
|
||||
this.btnPassRefresh.Hidden = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,5 +162,34 @@ namespace FineUIPro.Web.Personal
|
||||
{
|
||||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../SysManage/CustomQuery.aspx"), "查询"));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnPassRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
var getUsers = from x in Funs.DB.Sys_User
|
||||
where x.RawPassword == null
|
||||
select x;
|
||||
foreach (var item in getUsers)
|
||||
{
|
||||
string password = Funs.getInitialPassword(item.UnitId, item.IdentityCard);
|
||||
UserService.UpdatePassword(item.UserId, password);
|
||||
}
|
||||
|
||||
var getPersons = from x in Funs.DB.SitePerson_Person
|
||||
where x.RawPassword == null
|
||||
select x;
|
||||
foreach (var item in getPersons)
|
||||
{
|
||||
string password = Funs.getInitialPassword(item.UnitId, item.IdentityCard);
|
||||
PersonService.UpdateSitePersonPassword(item.PersonId, password);
|
||||
}
|
||||
|
||||
ShowNotify("重置成功!", MessageBoxIcon.Success);
|
||||
}
|
||||
}
|
||||
}
|
||||
+49
-38
@@ -7,11 +7,13 @@
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.Personal {
|
||||
|
||||
|
||||
public partial class PersonalInfo {
|
||||
|
||||
namespace FineUIPro.Web.Personal
|
||||
{
|
||||
|
||||
|
||||
public partial class PersonalInfo
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
@@ -20,7 +22,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
@@ -29,7 +31,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel2 控件。
|
||||
/// </summary>
|
||||
@@ -38,7 +40,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// TabStrip1 控件。
|
||||
/// </summary>
|
||||
@@ -47,7 +49,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TabStrip TabStrip1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Tab1 控件。
|
||||
/// </summary>
|
||||
@@ -56,7 +58,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tab Tab1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
@@ -65,7 +67,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// lbSystemVersion 控件。
|
||||
/// </summary>
|
||||
@@ -74,7 +76,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Label lbSystemVersion;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnSave 控件。
|
||||
/// </summary>
|
||||
@@ -83,7 +85,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnSave;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnCustomQuery 控件。
|
||||
/// </summary>
|
||||
@@ -92,7 +94,16 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnCustomQuery;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// btnPassRefresh 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnPassRefresh;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm1 控件。
|
||||
/// </summary>
|
||||
@@ -101,7 +112,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel3 控件。
|
||||
/// </summary>
|
||||
@@ -110,7 +121,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel3;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
@@ -119,7 +130,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtUserName 控件。
|
||||
/// </summary>
|
||||
@@ -128,7 +139,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtUserName;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtUserCode 控件。
|
||||
/// </summary>
|
||||
@@ -137,7 +148,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtUserCode;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpSex 控件。
|
||||
/// </summary>
|
||||
@@ -146,7 +157,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox drpSex;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// dpBirthDay 控件。
|
||||
/// </summary>
|
||||
@@ -155,7 +166,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox dpBirthDay;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpMarriage 控件。
|
||||
/// </summary>
|
||||
@@ -164,7 +175,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox drpMarriage;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpNation 控件。
|
||||
/// </summary>
|
||||
@@ -173,7 +184,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox drpNation;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpUnit 控件。
|
||||
/// </summary>
|
||||
@@ -182,7 +193,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox drpUnit;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel4 控件。
|
||||
/// </summary>
|
||||
@@ -191,7 +202,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel4;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtAccount 控件。
|
||||
/// </summary>
|
||||
@@ -200,7 +211,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtAccount;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtIdentityCard 控件。
|
||||
/// </summary>
|
||||
@@ -209,7 +220,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtIdentityCard;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtEmail 控件。
|
||||
/// </summary>
|
||||
@@ -218,7 +229,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtEmail;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtTelephone 控件。
|
||||
/// </summary>
|
||||
@@ -227,7 +238,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtTelephone;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpEducation 控件。
|
||||
/// </summary>
|
||||
@@ -236,7 +247,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox drpEducation;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtHometown 控件。
|
||||
/// </summary>
|
||||
@@ -245,7 +256,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtHometown;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// drpPosition 控件。
|
||||
/// </summary>
|
||||
@@ -254,7 +265,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox drpPosition;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Panel5 控件。
|
||||
/// </summary>
|
||||
@@ -263,7 +274,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel5;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Image1 控件。
|
||||
/// </summary>
|
||||
@@ -272,7 +283,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Image Image1;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Form7 控件。
|
||||
/// </summary>
|
||||
@@ -281,7 +292,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form Form7;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// txtPerformance 控件。
|
||||
/// </summary>
|
||||
@@ -290,7 +301,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextArea txtPerformance;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Tab2 控件。
|
||||
/// </summary>
|
||||
@@ -299,7 +310,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tab Tab2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm2 控件。
|
||||
/// </summary>
|
||||
@@ -308,7 +319,7 @@ namespace FineUIPro.Web.Personal {
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm2;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
|
||||
@@ -105,7 +105,12 @@
|
||||
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
|
||||
{
|
||||
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
|
||||
BLL.UserService.UpdatePassword(rowID, BLL.Const.Password);
|
||||
var getUser = UserService.GetUserByUserId(rowID);
|
||||
if (getUser != null)
|
||||
{
|
||||
string password = Funs.getInitialPassword(getUser.UnitId, getUser.IdentityCard);
|
||||
BLL.UserService.UpdatePassword(rowID, password);
|
||||
}
|
||||
}
|
||||
BindGrid();
|
||||
ShowNotify("密码已重置为原始密码!", MessageBoxIcon.Success);
|
||||
|
||||
@@ -89,6 +89,22 @@ namespace FineUIPro.Web.SysManage
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.txtNewPassword.Text.Length < 8)
|
||||
{
|
||||
Alert.ShowInParent("密码长度至少8位!");
|
||||
return;
|
||||
}
|
||||
if (this.txtNewPassword.Text != this.txtConfirmPassword.Text)
|
||||
{
|
||||
Alert.ShowInParent("确认密码输入不一致!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Funs.IsValIDPassword(this.txtNewPassword.Text))
|
||||
{
|
||||
Alert.ShowInParent("密码必须包含字母、数字、特殊符号!");
|
||||
return;
|
||||
}
|
||||
BLL.UserService.UpdatePassword(user.UserId, this.txtNewPassword.Text);
|
||||
|
||||
BLL.LogService.AddSys_Log(this.CurrUser, "修改密码", string.Empty, BLL.Const.UserMenuId, Const.BtnModify);
|
||||
|
||||
@@ -366,7 +366,8 @@ namespace FineUIPro.Web.SysManage
|
||||
var getUser = Funs.DB.Sys_User.FirstOrDefault(x => x.Account == userViews[i].Account);
|
||||
if (getUser == null)
|
||||
{
|
||||
newUser.Password = Funs.EncryptionPassword(Const.Password);
|
||||
newUser.RawPassword = Funs.getInitialPassword(newUser.UnitId, newUser.IdentityCard);
|
||||
newUser.Password = Funs.EncryptionPassword(newUser.RawPassword);
|
||||
BLL.UserService.AddUser(newUser);
|
||||
insertCount++;
|
||||
}
|
||||
|
||||
@@ -235,8 +235,9 @@ namespace FineUIPro.Web.SysManage
|
||||
}
|
||||
if (string.IsNullOrEmpty(this.UserId))
|
||||
{
|
||||
newUser.Password = Funs.EncryptionPassword(Const.Password);
|
||||
newUser.UserId = SQLHelper.GetNewID(typeof(Model.Sys_User));
|
||||
newUser.RawPassword = Funs.getInitialPassword(newUser.UnitId, newUser.IdentityCard);
|
||||
newUser.Password = Funs.EncryptionPassword(newUser.RawPassword);
|
||||
newUser.UserId = SQLHelper.GetNewID();
|
||||
newUser.DataSources = this.CurrUser.LoginProjectId;
|
||||
UserService.AddUser(newUser);
|
||||
LogService.AddSys_Log(this.CurrUser, newUser.UserCode, newUser.UserId, BLL.Const.UserMenuId, BLL.Const.BtnAdd);
|
||||
@@ -324,10 +325,12 @@ namespace FineUIPro.Web.SysManage
|
||||
/// <param name="e"></param>
|
||||
protected void btnArrowRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(this.UserId))
|
||||
var getUser = UserService.GetUserByUserId(this.UserId);
|
||||
if (getUser != null)
|
||||
{
|
||||
BLL.UserService.UpdatePassword(this.UserId, BLL.Const.Password);
|
||||
ShowNotify("密码已重置为原始密码!", MessageBoxIcon.Success);
|
||||
string passWord = Funs.getInitialPassword(getUser.UnitId, getUser.IdentityCard);
|
||||
BLL.UserService.UpdatePassword(this.UserId, passWord);
|
||||
ShowNotify("密码已重置为原始密码!密码为" + passWord, MessageBoxIcon.Success);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+52
-4
@@ -255428,7 +255428,7 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")]
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")]
|
||||
public string Address
|
||||
{
|
||||
get
|
||||
@@ -255492,7 +255492,7 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")]
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
|
||||
public string WorkAreaName
|
||||
{
|
||||
get
|
||||
@@ -257937,6 +257937,8 @@ namespace Model
|
||||
|
||||
private System.Nullable<bool> _IsCardNoOK;
|
||||
|
||||
private string _RawPassword;
|
||||
|
||||
private EntitySet<Accident_AccidentPersonRecord> _Accident_AccidentPersonRecord;
|
||||
|
||||
private EntitySet<Accident_AccidentReportOtherItem> _Accident_AccidentReportOtherItem;
|
||||
@@ -258117,6 +258119,8 @@ namespace Model
|
||||
partial void OnRealNameUpdateTimeChanged();
|
||||
partial void OnIsCardNoOKChanging(System.Nullable<bool> value);
|
||||
partial void OnIsCardNoOKChanged();
|
||||
partial void OnRawPasswordChanging(string value);
|
||||
partial void OnRawPasswordChanged();
|
||||
#endregion
|
||||
|
||||
public SitePerson_Person()
|
||||
@@ -259365,6 +259369,26 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RawPassword", DbType="NVarChar(100)")]
|
||||
public string RawPassword
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._RawPassword;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._RawPassword != value))
|
||||
{
|
||||
this.OnRawPasswordChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._RawPassword = value;
|
||||
this.SendPropertyChanged("RawPassword");
|
||||
this.OnRawPasswordChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[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> Accident_AccidentPersonRecord
|
||||
{
|
||||
@@ -274254,6 +274278,8 @@ namespace Model
|
||||
|
||||
private string _WorkNo;
|
||||
|
||||
private string _RawPassword;
|
||||
|
||||
private EntitySet<Comprehensive_NCRManagement> _Comprehensive_NCRManagement;
|
||||
|
||||
private EntitySet<Comprehensive_PressurePipe> _Comprehensive_PressurePipe;
|
||||
@@ -274998,6 +275024,8 @@ namespace Model
|
||||
partial void OnViceCNProfessionalIdChanged();
|
||||
partial void OnWorkNoChanging(string value);
|
||||
partial void OnWorkNoChanged();
|
||||
partial void OnRawPasswordChanging(string value);
|
||||
partial void OnRawPasswordChanged();
|
||||
#endregion
|
||||
|
||||
public Sys_User()
|
||||
@@ -276322,6 +276350,26 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RawPassword", DbType="NVarChar(100)")]
|
||||
public string RawPassword
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._RawPassword;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._RawPassword != value))
|
||||
{
|
||||
this.OnRawPasswordChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._RawPassword = value;
|
||||
this.SendPropertyChanged("RawPassword");
|
||||
this.OnRawPasswordChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Comprehensive_NCRManagement_Sys_User", Storage="_Comprehensive_NCRManagement", ThisKey="UserId", OtherKey="CompileMan", DeleteRule="NO ACTION")]
|
||||
public EntitySet<Comprehensive_NCRManagement> Comprehensive_NCRManagement
|
||||
{
|
||||
@@ -337439,7 +337487,7 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")]
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")]
|
||||
public string Address
|
||||
{
|
||||
get
|
||||
@@ -337455,7 +337503,7 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")]
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
|
||||
public string WorkAreaName
|
||||
{
|
||||
get
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>bin\Debug\AOP.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
@@ -76,6 +76,7 @@
|
||||
<WCFMetadata Include="Connected Services\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -192,59 +192,62 @@ namespace WebAPI.Controllers
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
var getTestPlan = Funs.DB.Training_TestPlan.FirstOrDefault(e => e.TestPlanId == testPlanId && e.States != "3" && e.TestStartTime <= DateTime.Now && e.TestEndTime >= DateTime.Now);
|
||||
if (getTestPlan != null)
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
var person = PersonService.GetPersonByUserId(personId, getTestPlan.ProjectId);
|
||||
if (person != null )
|
||||
var getTestPlan = db.Training_TestPlan.FirstOrDefault(e => e.TestPlanId == testPlanId && e.States != "3" && e.TestStartTime <= DateTime.Now && e.TestEndTime >= DateTime.Now);
|
||||
if (getTestPlan != null)
|
||||
{
|
||||
//2-考试中;生成考试试卷
|
||||
if (getTestPlan.States == "2" )
|
||||
var person = PersonService.GetPersonByUserId(personId, getTestPlan.ProjectId);
|
||||
if (person != null)
|
||||
{
|
||||
var testRecord = Funs.DB.Training_TestRecord.FirstOrDefault(x => x.TestPlanId == getTestPlan.TestPlanId && x.TestManId == person.PersonId && !x.TestEndTime.HasValue);
|
||||
if (testRecord != null)
|
||||
//2-考试中;生成考试试卷
|
||||
if (getTestPlan.States == "2")
|
||||
{
|
||||
string testRecordId = APITestRecordService.CreateTestRecordItem(getTestPlan, testRecord.TestRecordId, person);
|
||||
responeData.code = 2;
|
||||
responeData.data = new { testRecordId };
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(getTestPlan.PlanId) && getTestPlan.UnitIds.Contains(person.UnitId) && (getTestPlan.WorkPostIds == null || getTestPlan.WorkPostIds.Contains(person.WorkPostId)))
|
||||
{
|
||||
//0-待提交;1-已发布未考试 将人员添加进考试记录
|
||||
var testTRecord = Funs.DB.Training_TestRecord.FirstOrDefault(x => x.TestPlanId == testPlanId && x.TestManId == personId);
|
||||
if ((getTestPlan.States == "0" || getTestPlan.States == "1") && testTRecord == null && !string.IsNullOrEmpty(personId))
|
||||
var testRecord = db.Training_TestRecord.FirstOrDefault(x => x.TestPlanId == getTestPlan.TestPlanId && x.TestManId == person.PersonId && !x.TestEndTime.HasValue);
|
||||
if (testRecord != null)
|
||||
{
|
||||
Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
|
||||
string testRecordId = APITestRecordService.CreateTestRecordItem(getTestPlan, testRecord.TestRecordId, person);
|
||||
responeData.code = 2;
|
||||
responeData.data = new { testRecordId };
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(getTestPlan.PlanId) && getTestPlan.UnitIds.Contains(person.UnitId) && (getTestPlan.WorkPostIds == null || getTestPlan.WorkPostIds.Contains(person.WorkPostId)))
|
||||
{
|
||||
//0-待提交;1-已发布未考试 将人员添加进考试记录
|
||||
var testTRecord = db.Training_TestRecord.FirstOrDefault(x => x.TestPlanId == testPlanId && x.TestManId == personId);
|
||||
if ((getTestPlan.States == "0" || getTestPlan.States == "1") && testTRecord == null && !string.IsNullOrEmpty(personId))
|
||||
{
|
||||
TestRecordId = SQLHelper.GetNewID(),
|
||||
ProjectId = getTestPlan.ProjectId,
|
||||
TestPlanId = getTestPlan.TestPlanId,
|
||||
TestManId = personId,
|
||||
};
|
||||
if (string.IsNullOrEmpty(newTestRecord.TestType))
|
||||
{
|
||||
var getTrainTypeName = Funs.DB.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == newTestRecord.TestPlanId);
|
||||
if (getTrainTypeName != null)
|
||||
Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
|
||||
{
|
||||
newTestRecord.TestType = getTrainTypeName.PlanName;
|
||||
TestRecordId = SQLHelper.GetNewID(),
|
||||
ProjectId = getTestPlan.ProjectId,
|
||||
TestPlanId = getTestPlan.TestPlanId,
|
||||
TestManId = personId,
|
||||
};
|
||||
if (string.IsNullOrEmpty(newTestRecord.TestType))
|
||||
{
|
||||
var getTrainTypeName = db.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == newTestRecord.TestPlanId);
|
||||
if (getTrainTypeName != null)
|
||||
{
|
||||
newTestRecord.TestType = getTrainTypeName.PlanName;
|
||||
}
|
||||
}
|
||||
TestRecordService.AddTestRecord(newTestRecord);
|
||||
responeData.code = 3;
|
||||
responeData.message = "您已加入考试计划!";
|
||||
}
|
||||
TestRecordService.AddTestRecord(newTestRecord);
|
||||
responeData.code = 3;
|
||||
responeData.message = "您已加入考试计划!";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (responeData.code == 1)
|
||||
{
|
||||
//其他状态时 查看考试计划详细页
|
||||
responeData.data = APITestPlanService.getTestPlanByTestPlanId(testPlanId);
|
||||
if (responeData.code == 1)
|
||||
{
|
||||
//其他状态时 查看考试计划详细页
|
||||
responeData.data = APITestPlanService.getTestPlanByTestPlanId(testPlanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -321,7 +321,7 @@ namespace WebAPI.Controllers
|
||||
var getItem = TestRecordItemService.GetTestRecordItemTestRecordItemId(testRecordItemId);
|
||||
if (getItem != null)
|
||||
{
|
||||
APITestRecordService.getTestRecordItemAnswerBySelectedItem(getItem, selectedItem);
|
||||
APITestRecordService.getTestRecordItemAnswerBySelectedItem(testRecordItemId, selectedItem);
|
||||
var testRecord = Funs.DB.Training_TestRecord.FirstOrDefault(x => x.TestRecordId == getItem.TestRecordId && x.TestStartTime.Value.AddMinutes(x.Duration) < DateTime.Now);
|
||||
if (testRecord != null)
|
||||
{
|
||||
|
||||
@@ -298,27 +298,16 @@ namespace WebAPI.Controllers
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
var getItem = TestRecordItemService.GetTestRecordItemTestRecordItemId(testRecordItemId);
|
||||
if (getItem != null)
|
||||
if (!string.IsNullOrEmpty(testRecordItemId) && !string.IsNullOrEmpty(selectedItem))
|
||||
{
|
||||
APITestRecordService.getTestRecordItemAnswerBySelectedItem(getItem, selectedItem);
|
||||
var testRecord = Funs.DB.Training_TestRecord.FirstOrDefault(x => x.TestRecordId == getItem.TestRecordId && x.TestStartTime.Value.AddMinutes(x.Duration) < DateTime.Now);
|
||||
if (testRecord != null)
|
||||
{
|
||||
//更新没有结束时间且超时的考试记录
|
||||
int closeCount = TestRecordService.UpdateTestEndTimeNull(getItem.TestRecordId);
|
||||
if (closeCount > 0)
|
||||
{
|
||||
responeData.code = 2;
|
||||
responeData.message = "本次考试已结束,系统自动交卷!";
|
||||
}
|
||||
}
|
||||
APITestRecordService.getTestRecordItemAnswerBySelectedItem(testRecordItemId, selectedItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = "试题有问题!";
|
||||
responeData.message = "答题为空选项!";
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -340,36 +329,82 @@ namespace WebAPI.Controllers
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
var getTestRecord = Funs.DB.Training_TestRecord.FirstOrDefault(e => e.TestRecordId == testRecordId);
|
||||
if (getTestRecord != null)
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
string returnTestRecordId = string.Empty;
|
||||
////考试分数
|
||||
decimal getTestScores = APITestRecordService.getSubmitTestRecord(getTestRecord);
|
||||
////及格分数
|
||||
int getPassScores = SysConstSetService.getPassScore();
|
||||
if (getTestScores <= getPassScores)
|
||||
{
|
||||
int testCount = Funs.DB.Training_TestRecord.Where(x => x.TestPlanId == getTestRecord.TestPlanId && x.TestManId == getTestRecord.TestManId).Count();
|
||||
if (testCount < 2)
|
||||
decimal getTestScores = 0;
|
||||
var getTestRecord =db.Training_TestRecord.FirstOrDefault(e => e.TestRecordId == testRecordId);
|
||||
if (getTestRecord != null)
|
||||
{
|
||||
if (getTestRecord.TestStartTime.HasValue)
|
||||
{
|
||||
////重新生成一条考试记录 以及考试试卷
|
||||
returnTestRecordId = APITestRecordService.getResitTestRecord(getTestRecord);
|
||||
responeData.message = "考试不合格!您的成绩为:【" + getTestScores.ToString() + "】,您将进入补考。";
|
||||
getTestRecord.TestEndTime = DateTime.Now;
|
||||
var getRItem = db.Training_TestRecordItem.Where(x => x.TestRecordId == testRecordId);
|
||||
if (getRItem.Count() > 0)
|
||||
{
|
||||
getTestRecord.TestScores = getRItem.Sum(x => x.SubjectScore ?? 0);
|
||||
}
|
||||
db.SubmitChanges();
|
||||
getTestScores = getTestRecord.TestScores ?? 0;
|
||||
}
|
||||
|
||||
////考试分数
|
||||
int getPassScores = SysConstSetService.getPassScore();
|
||||
if (getTestScores <= getPassScores)
|
||||
{
|
||||
int testCount = db.Training_TestRecord.Where(x => x.TestPlanId == getTestRecord.TestPlanId && x.TestManId == getTestRecord.TestManId).Count();
|
||||
if (testCount < 2)
|
||||
{
|
||||
////重新生成一条考试记录 以及考试试卷
|
||||
returnTestRecordId = APITestRecordService.getResitTestRecord(getTestRecord);
|
||||
responeData.message = "考试不合格!您的成绩为:【" + getTestScores.ToString() + "】,您将进入补考。";
|
||||
}
|
||||
else
|
||||
{
|
||||
// APITestRecordService.updateAll(getTestRecord.TestPlanId);
|
||||
responeData.message = "考试不合格!您的成绩为:【" + getTestScores.ToString() + "】,请再次参加培训后补考。";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// APITestRecordService.updateAll(getTestRecord.TestPlanId);
|
||||
responeData.message = "考试不合格!您的成绩为:【" + getTestScores.ToString() + "】,请再次参加培训后补考。";
|
||||
// APITestRecordService.updateAll(getTestRecord.TestPlanId);
|
||||
responeData.message = "恭喜考试通过!您的成绩为:【" + getTestScores.ToString() + "】。";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// APITestRecordService.updateAll(getTestRecord.TestPlanId);
|
||||
responeData.message = "恭喜考试通过!您的成绩为:【" + getTestScores.ToString() + "】。";
|
||||
}
|
||||
|
||||
responeData.data = new { getTestScores, getPassScores, returnTestRecordId };
|
||||
responeData.data = new { getTestScores, getPassScores, returnTestRecordId };
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = ex.Message;
|
||||
}
|
||||
|
||||
return responeData;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 重考
|
||||
/// </summary>
|
||||
/// <param name="testRecordId">试卷ID</param>
|
||||
public Model.ResponeData getRetakeTestRecordByTestRecordId(string testRecordId)
|
||||
{
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
string returnTestRecordId = string.Empty;
|
||||
var getTestRecord = db.Training_TestRecord.FirstOrDefault(e => e.TestRecordId == testRecordId);
|
||||
if (getTestRecord != null)
|
||||
{
|
||||
////重新生成一条考试记录 以及考试试卷
|
||||
returnTestRecordId = APITestRecordService.getResitTestRecord(getTestRecord);
|
||||
responeData.data = new { returnTestRecordId };
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -380,6 +415,5 @@ namespace WebAPI.Controllers
|
||||
|
||||
return responeData;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -885,21 +885,45 @@ namespace WebAPI.Controllers
|
||||
}
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = ex.Message;
|
||||
ErrLogInfo.WriteLog(ex, "WX接口-更新人员数据交换时间", "PersonController.getUpdatePersonExchangeTime");
|
||||
}
|
||||
return responeData;
|
||||
}
|
||||
|
||||
var getPersonb = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == personId);
|
||||
if (getPersonb != null && !string.IsNullOrEmpty(type))
|
||||
/// <summary>
|
||||
/// 更新人员数据交换时间
|
||||
/// </summary>
|
||||
/// <param name="projectId"></param>
|
||||
/// <param name="idCard"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
public Model.ResponeData getUpdatePersonExchangeTime(string projectId, string idCard, string type)
|
||||
{
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.IdentityCard ==idCard);
|
||||
if (getPerson != null && !string.IsNullOrEmpty(type))
|
||||
{
|
||||
if (type == "1")
|
||||
{
|
||||
getPersonb.ExchangeTime2 = DateTime.Now;
|
||||
if (!getPersonb.ExchangeTime.HasValue)
|
||||
getPerson.ExchangeTime2 = DateTime.Now;
|
||||
if (!getPerson.ExchangeTime.HasValue)
|
||||
{
|
||||
getPersonb.ExchangeTime = DateTime.Now;
|
||||
getPerson.ExchangeTime = DateTime.Now;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
getPersonb.ExchangeTime = DateTime.Now;
|
||||
getPerson.ExchangeTime = DateTime.Now;
|
||||
}
|
||||
db.SubmitChanges();
|
||||
}
|
||||
@@ -909,7 +933,7 @@ namespace WebAPI.Controllers
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = ex.Message;
|
||||
ErrLogInfo.WriteLog(ex, "WX接口-更新人员数据交换时间", "PersonController.getUpdatePersonExchangeTime");
|
||||
ErrLogInfo.WriteLog(ex, "WX接口-更新人员数据交换时间", "PersonController.getUpdatePersonExchangeTime");
|
||||
}
|
||||
return responeData;
|
||||
}
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||
<SiteUrlToLaunchAfterPublish />
|
||||
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
|
||||
<ExcludeApp_Data>False</ExcludeApp_Data>
|
||||
<publishUrl>F:\Package\中化五环\SGGLAPI</publishUrl>
|
||||
<DeleteExistingFiles>True</DeleteExistingFiles>
|
||||
<PrecompileBeforePublish>True</PrecompileBeforePublish>
|
||||
<EnableUpdateable>True</EnableUpdateable>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
|
||||
<ExcludeApp_Data>false</ExcludeApp_Data>
|
||||
<publishUrl>E:\Package\中国五环工程有限公司\SGGLAPI</publishUrl>
|
||||
<DeleteExistingFiles>true</DeleteExistingFiles>
|
||||
<PrecompileBeforePublish>true</PrecompileBeforePublish>
|
||||
<EnableUpdateable>true</EnableUpdateable>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<WDPMergeOption>DonotMerge</WDPMergeOption>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,8 +0,0 @@
|
||||
publickey
|
||||
|
||||
<RSAKeyValue><Modulus>rnq6pYDFkcrpzVtMrLbf2dvDPs2FDo5yeDub6YCnl0hXov3MVEVMbVe3NCnC5Thl3dwm14yI9/vNIGdH5M4getAkMnkG8tNA60NPjtHUzyoZSpVYCUOmB30s5vx+4IBkPh8R4ynkJYyUxkl61/0h6y7A86qz4jNivxAKt2a0vQxk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
|
||||
|
||||
|
||||
privatekey:
|
||||
|
||||
<RSAKeyValue><Modulus>1oowM965L1r9NM10IruHI+4v4cF8cMrZ1PMaG/D1oNOww8YGEYjKiQ2iAjAtJi4OQX6sxI7BHJad/CGNKeE12ywplO18J8vL/YvEq38DMen22ungNAjSmC6zmIngvBrIiyW2Cyws/9JQKxT02I1tZlEQ9q4ZxCc3PLFazTD0sIk=</Modulus><Exponent>AQAB</Exponent><P>2K+KCTgEGJAvPzB6pYcDmE2n/gIIy6dOiaNQtTWRUrttC+DaU8ZlORlYH6+lWcekYhGnf+dVjfuGE3w45JVKxw==</P><Q>/Xb6T/4tizVbVpjLd47SN+c1yEcCubLhv7HHd/9E2K5olboWvOGxUbr53F4FOmTu9CWpybbCKLReJWPQxq5aLw==</Q><DP>eA1Ztx3X9xv7cVEUwpz5OurbhnnuEZdShiN71comB+Zb1lbv37Zt4qLOFlAklodr5gHOAalT12Rhtm3+v3aPhQ==</DP><DQ>5VjUNK+1PEKijGAjs+I627TN2JRQpgFz/gX6jN0hycM/BURmMLEzxtWeI0W8C1OrWKX/1XMWishya/i+wBihpw==</DQ><InverseQ>wE16uAx/ztTMObpArwC2eGhh+oCwXsnUPoFSQtLHeEbxx/Cf424wKr2ceV/Fe9YKQp5XLdOpJkCDDAF+2k4X1A==</InverseQ><D>0rF/yVEQeQtY5ERpq7qTa5v99i448eSlrVbZ61rnP3zmej29s/atQY/b7V422OoeIgAv2BGCYXshyH2CzwBYDAtGkz+qvaZtPvWIYPadTvgU5W/QgX8r/ozqFBHu17APSSBmJWulShxj6r9kOmgxW4HzwVQ/iQgyQ5Z+qgpf50k=</D></RSAKeyValue>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user