This commit is contained in:
2022-09-02 17:29:15 +08:00
56 changed files with 842 additions and 304 deletions
+20 -16
View File
@@ -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
+3 -3
View File
@@ -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))
{
+24 -20
View File
@@ -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
View File
@@ -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>
+1 -1
View File
@@ -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);
}
}
}
+22 -1
View File
@@ -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>
+10 -5
View File
@@ -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)
{
+9 -5
View File
@@ -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
+4 -3
View File
@@ -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.
@@ -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
View File
@@ -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
View File
@@ -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;
}
}
}
}
+2 -2
View File
@@ -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
View File
@@ -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);
+2 -1
View File
@@ -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
View File
@@ -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
+3 -2
View File
@@ -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
}
}
+31 -7
View File
@@ -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>
-8
View File
@@ -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.