20220505 考勤导入功能优化,新增版本号显示。 考试计划详细页新增单独获取考生姓名接口。优化接口请求方法,请求超时时间设置5秒,防止长期占有程序池连接。

This commit is contained in:
杨红卫 2022-05-07 15:12:59 +08:00
parent 93df6c189c
commit fce7d98592
18 changed files with 1725 additions and 42 deletions

1
.gitignore vendored
View File

@ -5,5 +5,4 @@
/SGGLPackFile/PackFile/bin
/SGGLPackFile
/SGGL/FineUIPro.Web/File/Excel/Temp
/SGGL/FineUIPro.Web/common
/SGGL/FineUIPro.Web/FileUpload/QRCodeFile

View File

@ -30,6 +30,7 @@ namespace BLL
}
}
request.Headers.Add("token", "AF17168B-87BD-4GLY-1111-F0A0A1158F9B");
request.Timeout = 5000; /// 设置5秒超时
if (!string.IsNullOrEmpty(data))
{
Stream RequestStream = request.GetRequestStream();
@ -93,6 +94,7 @@ namespace BLL
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = string.IsNullOrEmpty(method) ? "GET" : method;
request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/json;charset=utf-8" : contenttype;
request.Timeout = 5000; /// 设置5秒超时
if (header != null)
{
foreach (var i in header.Keys)
@ -161,6 +163,7 @@ namespace BLL
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = string.IsNullOrEmpty(method) ? "GET" : method;
request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/json;charset=utf-8" : contenttype;
request.Timeout = 5000; /// 设置5秒超时
if (header != null)
{
foreach (var i in header.Keys)

View File

@ -56,35 +56,35 @@ namespace BLL
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getDataLists = from x in db.Training_TestPlan
where x.TestPlanId == testPlanId
select new Model.TestPlanItem
{
TestPlanId = x.TestPlanId,
ProjectId = x.ProjectId,
TestPlanCode = x.PlanCode,
TestPlanName = x.PlanName,
TestPlanManId = x.PlanManId,
TestPlanManName = db.Sys_User.First(y => y.UserId == x.TestPlanId).UserName,
TestPlanDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.PlanDate),
TestStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.TestStartTime),
TestEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.TestEndTime),
Duration = x.Duration,
SValue = x.SValue,
MValue = x.MValue,
JValue = x.JValue,
TotalScore = x.TotalScore ?? 0,
QuestionCount = x.QuestionCount ?? 0,
TestPalce = x.TestPalce,
UnitIds = x.UnitIds,
UnitNames = UnitService.getUnitNamesUnitIds(x.UnitIds),
WorkPostIds = x.WorkPostIds,
WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIds(x.WorkPostIds),
States = x.States,
QRCodeUrl = x.QRCodeUrl.Replace('\\', '/'),
TrainingPlanId = x.PlanId,
};
return getDataLists.FirstOrDefault();
Model.TestPlanItem returnItem = new Model.TestPlanItem();
var getTestP = db.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == testPlanId);
if (getTestP != null)
{
returnItem.TestPlanId = getTestP.TestPlanId;
returnItem.ProjectId = getTestP.ProjectId;
returnItem.TestPlanCode = getTestP.PlanCode;
returnItem.TestPlanName = getTestP.PlanName;
returnItem.TestPlanManId = getTestP.PlanManId;
returnItem.TestPlanManName = UserService.GetUserNameByUserId(getTestP.PlanManId);
returnItem.TestPlanDate = string.Format("{0:yyyy-MM-dd HH:mm}", getTestP.PlanDate);
returnItem.TestStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", getTestP.TestStartTime);
returnItem.TestEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", getTestP.TestEndTime);
returnItem.Duration = getTestP.Duration;
returnItem.SValue = getTestP.SValue;
returnItem.MValue = getTestP.MValue;
returnItem.JValue = getTestP.JValue;
returnItem.TotalScore = getTestP.TotalScore ?? 0;
returnItem.QuestionCount = getTestP.QuestionCount ?? 0;
returnItem.TestPalce = getTestP.TestPalce;
returnItem.UnitIds = getTestP.UnitIds;
returnItem.UnitNames = UnitService.getUnitNamesUnitIds(getTestP.UnitIds);
returnItem.WorkPostIds = getTestP.WorkPostIds;
returnItem.WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIds(getTestP.WorkPostIds);
returnItem.States = getTestP.States;
returnItem.QRCodeUrl = getTestP.QRCodeUrl.Replace('\\', '/');
returnItem.TrainingPlanId = getTestP.PlanId;
}
return returnItem;
}
}
#endregion

View File

@ -21,6 +21,7 @@ namespace BLL
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getDataLists = (from x in db.Training_TestRecord
join y in db.SitePerson_Person on x.TestManId equals y.PersonId
where x.TestPlanId == testPlanId
orderby x.TestStartTime descending
select new Model.TestRecordItem
@ -29,7 +30,7 @@ namespace BLL
ProjectId = x.ProjectId,
TestPlanId = x.TestPlanId,
TestManId = x.TestManId,
TestManName = db.SitePerson_Person.FirstOrDefault(p => p.PersonId == x.TestManId).PersonName,
TestManName = y.PersonName,
TestStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.TestStartTime),
TestEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.TestEndTime),
TestScores = x.TestScores ?? 0,
@ -39,6 +40,25 @@ namespace BLL
return getDataLists;
}
}
/// <summary>
/// 根据TestPlanId获取考试人员列表
/// </summary>
/// <param name="testPlanId"></param>
/// <returns>考试人员</returns>
public static string getTestRecordTestManByTestPlanId(string testPlanId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
var getManList = db.Training_TestRecord.Where(x => x.TestPlanId == testPlanId).Select(x => x.TestManId).Distinct();
if (getManList.Count() > 0)
{
name = PersonService.getPersonsPersonIds(getManList.ToList());
}
return name;
}
}
#endregion
#region ID获取试卷记录详细

View File

@ -197,6 +197,30 @@ namespace BLL
return personId;
}
#region ID得到用户名称字符串
/// <summary>
/// 根据多用户ID得到用户名称字符串
/// </summary>
/// <param name="bigType"></param>
/// <returns></returns>
public static string getPersonsPersonIds(List<string> personIds)
{
string personName = string.Empty;
foreach (string id in personIds)
{
var q = GetPersonNameById(id);
if (q != null)
{
personName += q + ",";
}
}
if (!string.IsNullOrEmpty(personName))
{
personName = personName.Substring(0, personName.Length - 1); ;
}
return personName;
}
#endregion
/// <summary>
/// 根据UserId主键获取人员信息
/// </summary>

View File

@ -29,6 +29,7 @@
Funs.RealNameApiUrl = ConfigurationManager.AppSettings["RealNameApiUrl"];
Funs.ControlApiUrl = ConfigurationManager.AppSettings["ControlApiUrl"];
sysUser = UserService.GetUserByUserId(Const.sysglyId);
Funs.SystemVersion = ConfigurationManager.AppSettings["SystemVersion"];
}
catch (Exception ex)
{

View File

@ -229,7 +229,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
{
DateTime inToOutTime = Convert.ToDateTime(col4);
}
catch (Exception)
catch (Exception ex)
{
result += "第" + (i + 2).ToString() + "行," + "时间" + "," + "[" + col4 + "]错误!" + "|";
}
@ -407,26 +407,39 @@ namespace FineUIPro.Web.HSSE.SitePerson
{
if (string.IsNullOrEmpty(errorInfos))
{
int a = viewCheckings.Count();
for (int i = 0; i < a; i++)
foreach (var item in viewCheckings)
{
Model.SitePerson_Checking newChecking = new Model.SitePerson_Checking
{
CheckingId = viewCheckings[i].CheckingId,
ProjectId = viewCheckings[i].ProjectId,
IdentityCard = viewCheckings[i].IdentityCard,
IntoOutTime = viewCheckings[i].IntoOutTime,
IntoOut = viewCheckings[i].IntoOut,
PersonId = viewCheckings[i].PersonId
CheckingId = item.CheckingId,
ProjectId = item.ProjectId,
IdentityCard = item.IdentityCard,
IntoOutTime = item.IntoOutTime,
IntoOut = item.IntoOut,
PersonId = item.PersonId
};
BLL.SitePerson_CheckingService.AddPersonInfo(newChecking);
}
//int a = viewCheckings.Count();
//for (int i = 0; i < a; i++)
//{
// Model.SitePerson_Checking newChecking = new Model.SitePerson_Checking
// {
// CheckingId = viewCheckings[i].CheckingId,
// ProjectId = viewCheckings[i].ProjectId,
// IdentityCard = viewCheckings[i].IdentityCard,
// IntoOutTime = viewCheckings[i].IntoOutTime,
// IntoOut = viewCheckings[i].IntoOut,
// PersonId = viewCheckings[i].PersonId
// };
// BLL.SitePerson_CheckingService.AddPersonInfo(newChecking);
//}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
string filePath = initFullPath + this.hdFileName.Text;
if (filePath != string.Empty && System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);//删除上传的XLS文件
File.Delete(filePath);//删除上传的XLS文件
}
ShowNotify("导入成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());

View File

@ -32,6 +32,7 @@
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Label runat="server" ID="lbSystemVersion" Hidden="true" Label="系统版本"></f:Label>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server"
OnClick="btnSave_Click">

View File

@ -41,6 +41,8 @@ namespace FineUIPro.Web.Personal
if (this.CurrUser.UserId == Const.hfnbdId)
{
this.btnCustomQuery.Hidden = false;
this.lbSystemVersion.Hidden = false;
this.lbSystemVersion.Text = Funs.SystemVersion;
}
}
}

View File

@ -66,6 +66,15 @@ namespace FineUIPro.Web.Personal {
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// lbSystemVersion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lbSystemVersion;
/// <summary>
/// btnSave 控件。
/// </summary>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Tree>
<TreeNode id="64E43C10-ECA5-4C7D-97C9-670E9F05DC01" Text="材料信息" NavigateUrl="CLGL/Material.aspx">
</TreeNode>
<TreeNode id="414F9650-37F8-4B20-A2BB-EBBD4F620E49" Text="货架信息" NavigateUrl="CLGL/GoodsShelves.aspx"></TreeNode>
<TreeNode id="4B52E7FF-AA04-489B-B0EE-DC31C5C4F45B" Text="施工单位信息" NavigateUrl="CLGL/SubUnit.aspx"></TreeNode>
<TreeNode id="43A118BC-0A81-42F1-B008-829D40CFE625" Text="供应商信息" NavigateUrl="CLGL/Supplier.aspx"></TreeNode>
<TreeNode id="3C87C9C0-1C22-48A0-A767-9537347F6A7D" Text="合同量单" NavigateUrl="CLGL/ContractQuantitySheet.aspx"></TreeNode>
<TreeNode id="94041D2D-ADF5-47CD-8628-11837D32354D" Text="请购单" NavigateUrl="CLGL/PurchaseRequisition.aspx"></TreeNode>
<TreeNode id="0E23EC47-4C05-4783-91C1-1ACFE270C4D4" Text="领料单" NavigateUrl="CLGL/MaterialRecord.aspx"></TreeNode>
</Tree>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,353 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
namespace FineUIPro.Web.common
{
public partial class mainIV : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string roleCNs = Request.Params["roleCNs"];
string roleCNNames = string.Empty;
string unitWorkIds = Request.Params["unitWorkIds"];
List<string> cns = Funs.GetStrListByStr(roleCNs, ',');
List<string> cnNames = new List<string>();
foreach (var cn in cns)
{
var c = BLL.CNProfessionalService.GetCNProfessional(cn);
if (c != null && !cnNames.Contains(c.ProfessionalName))
{
cnNames.Add(c.ProfessionalName);
}
}
List<string> unitWorkIdList = Funs.GetStrListByStr(unitWorkIds, ',');
Model.SGGLDB db = Funs.DB;
//未遂事故
//var wsAccidentList1 = from x in db.Accident_AccidentPersonRecord
// join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
// where y.AccidentTypeName.Contains("未遂") && x.ProjectId == this.CurrUser.LoginProjectId
// select x;
//var wsAccidentList2 = from x in db.Accident_AccidentReportOther
// join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
// where y.ConstText.Contains("未遂") && x.ProjectId == this.CurrUser.LoginProjectId
// select x;
var licenses = from x in db.License_LicenseManager where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x;
List<Model.License_LicenseManager> newlicenses = new List<Model.License_LicenseManager>();
foreach (var item in unitWorkIdList)
{
newlicenses.AddRange(licenses.Where(x => x.WorkAreaId.Contains(item)));
}
newlicenses = newlicenses.Distinct().ToList();
this.divZY.InnerHtml = (newlicenses.Count()).ToString();
//隐患整改
var getRectify = db.Check_RectifyNotices.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId));
List<Model.Check_RectifyNotices> newRectifyNotices = new List<Model.Check_RectifyNotices>();
foreach (var item in unitWorkIdList)
{
newRectifyNotices.AddRange(getRectify.Where(x => x.WorkAreaId.Contains(item)));
}
newRectifyNotices = newRectifyNotices.Distinct().ToList();
this.divYH.InnerHtml = newRectifyNotices.Count().ToString();
//安全人工时
int wHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).Max(x => x.WorkHours) ?? 0;
this.divRGS.InnerHtml = wHours.ToString();
//教育培训
var getTrainRecord = from x in db.EduTrain_TrainRecord where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x;
List<Model.EduTrain_TrainRecord> newTrainRecords = new List<Model.EduTrain_TrainRecord>();
foreach (var item in unitWorkIdList)
{
newTrainRecords.AddRange(getTrainRecord.Where(x => x.UnitWorkIds.Contains(item)));
}
newTrainRecords = newTrainRecords.Distinct().ToList();
this.divPX.InnerHtml = newTrainRecords.Count().ToString();
//质量问题
var checkList = from x in db.Check_CheckControl where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalCode) && unitWorkIdList.Contains(x.UnitWorkId) select x;
this.divZLWT.InnerHtml = checkList.Count().ToString();
//质量共检数据
var inspectionManagementDetails = (from x in db.ProcessControl_InspectionManagementDetail
join y in db.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
where y.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(y.CNProfessionalId) && unitWorkIdList.Contains(x.UnitWorkId)
select new { x.InspectionId, y.IsOnceQualified }).Distinct().ToList();
this.divZLGJ.InnerHtml = inspectionManagementDetails.Count().ToString();
//验收数据
this.divYS.InnerHtml = inspectionManagementDetails.Count(x => x.IsOnceQualified == true).ToString();
//焊工过期人数统计
var welders = from x in db.Comprehensive_InspectionPerson
join y in db.Base_Post on x.PostId equals y.PostId
where x.ProjectId == this.CurrUser.LoginProjectId && y.PostName == "焊工" && x.ValidityDate < DateTime.Now && cns.Contains(x.CNProfessionalId)
select x;
List<Model.Comprehensive_InspectionPerson> newWelders = new List<Model.Comprehensive_InspectionPerson>();
foreach (var item in unitWorkIdList)
{
newWelders.AddRange(welders.Where(x => x.UnitWorkId.Contains(item)));
}
newWelders = newWelders.Distinct().ToList();
this.divHG.InnerHtml = newWelders.Count().ToString();
//竣工资料
this.divJGZL.InnerHtml = inspectionManagementDetails.Count(x => x.IsOnceQualified == true).ToString();
//NCR
var NCRManagements = from x in db.Comprehensive_NCRManagement where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x;
List<Model.Comprehensive_NCRManagement> newNCRManagements = new List<Model.Comprehensive_NCRManagement>();
foreach (var item in unitWorkIdList)
{
newNCRManagements.AddRange(NCRManagements.Where(x => x.UnitWorkId.Contains(item)));
}
newNCRManagements = newNCRManagements.Distinct().ToList();
this.divNCR.InnerHtml = newNCRManagements.Count().ToString();
//变更单
var designChangeOrders = from x in db.Comprehensive_DesignChangeOrder where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x;
List<Model.Comprehensive_DesignChangeOrder> newDesignChangeOrders = new List<Model.Comprehensive_DesignChangeOrder>();
foreach (var item in unitWorkIdList)
{
newDesignChangeOrders.AddRange(designChangeOrders.Where(x => x.UnitWorkId.Contains(item)));
}
newDesignChangeOrders = newDesignChangeOrders.Distinct().ToList();
this.divBG.InnerHtml = newDesignChangeOrders.Count().ToString();
//签证
var siteVisas = from x in db.Comprehensive_SiteVisaManagement where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) && unitWorkIdList.Contains(x.UnitWorkId) select x;
this.divQZ.InnerHtml = siteVisas.Count().ToString();
//材料到货情况
string contractQuantitySheetsStr = string.Empty;
long projectId = BLL.ProjectService.GetCLProjectCodeByProjectId(this.CurrUser.LoginProjectId);
var contractQuantitySheets = from x in Funs.DB.CLGL_ContractQuantitySheet where x.ProjectId == projectId.ToString() && cnNames.Contains(x.Major) select x;
if (contractQuantitySheets.Count() > 0)
{
contractQuantitySheetsStr = "<div class='jd-item'><div class='item jd-title'>序号</div><div class='item jd-title'>材料用途</div><div class='item jd-title'>合同号</div><div class='item jd-title'>专业</div><div class='item jd-title'>材料编码</div><div class='item jd-title'>位号</div><div class='item jd-title'>采购量</div><div class='item jd-title'>装置号</div><div class='item jd-title'>主项号</div><div class='item jd-title'>企业中文名称</div><div class='item jd-title'>备注</div></div>";
int i = 1;
foreach (var item in contractQuantitySheets)
{
contractQuantitySheetsStr += "<div class='jd-item'><div class='item'>"
+ i + "</div><div class='item'>"
+ item.MaterialUse + "</div><div class='item'>"
+ item.ContractCode + "</div><div class='item'>"
+ item.Major + "</div><div class='item'>"
+ item.MaterialCode + "</div><div class='item'>"
+ item.TagNo + "</div><div class='item'>"
+ item.BuyQuantity + "</div><div class='item'>"
+ item.DeviceCode + "</div><div class='item'>"
+ item.MainItemCode + "</div><div class='item'>"
+ item.UnitName + "</div><div class='item'>"
+ item.Remark + "</div></div>";
i++;
}
}
this.divGZL.InnerHtml = contractQuantitySheetsStr;
this.hdContractQuantitySheets.Value = contractQuantitySheetsStr;
//材料出库情况
string materialRecordsStr = string.Empty;
var materialRecords = from x in db.CLGL_PickMaterialRecord where x.ProjectId == projectId.ToString() && cnNames.Contains(x.Major) select x;
if (contractQuantitySheets.Count() > 0)
{
materialRecordsStr = "<div class='jd-item'><div class='item jd-title'>序号</div><div class='item jd-title'>领料单号</div><div class='item jd-title'>领料时间</div><div class='item jd-title'>领料单位</div><div class='item jd-title'>领料截止时间</div><div class='item jd-title'>专业</div><div class='item jd-title'>材料编码</div><div class='item jd-title'>位号</div><div class='item jd-title'>申领量</div><div class='item jd-title'>批准量</div><div class='item jd-title'>实发量</div><div class='item jd-title'>装置号</div><div class='item jd-title'>主项号</div><div class='item jd-title'>发料备注</div></div>";
int i = 1;
foreach (var item in materialRecords)
{
materialRecordsStr += "<div class='jd-item'><div class='item'>"
+ i + "</div><div class='item'>"
+ item.PickCode + "</div><div class='item'>"
+ (item.PickDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.PickDate.Value) : "") + "</div><div class='item'>"
+ item.PickUnit + "</div><div class='item'>"
+ (item.PickLimitDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.PickLimitDate.Value) : "") + "</div><div class='item'>"
+ item.Major + "</div><div class='item'>"
+ item.MaterialCode + "</div><div class='item'>"
+ item.TagNo + "</div><div class='item'>"
+ item.ClaimQuantity + "</div><div class='item'>"
+ item.ApproveQuantity + "</div><div class='item'>"
+ item.ActualQuantity + "</div><div class='item'>"
+ item.DeviceCode + "</div><div class='item'>"
+ item.MainItemCode + "</div><div class='item'>"
+ item.Remark + "</div></div>";
i++;
}
}
this.hdMaterialRecords.Value = materialRecordsStr;
}
}
#region 线
protected string Two
{
get
{
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<string> listCategories = new List<string>();
businessColumn.title = "赢得值曲线";
var views = (from x in Funs.DB.View_JDGL_ProgressCompletion where x.ProjectId == this.CurrUser.LoginProjectId orderby x.Months select x).ToList();
Model.SingleSerie s = new Model.SingleSerie();
Model.SingleSerie s2 = new Model.SingleSerie();
Model.SingleSerie s3 = new Model.SingleSerie();
Model.SingleSerie s4 = new Model.SingleSerie();
List<double> listdata = new List<double>();
List<double> listdata2 = new List<double>();
List<double> listdata3 = new List<double>();
List<double> listdata4 = new List<double>();
for (int i = 0; i < views.Count; i++)
{
listCategories.Add(views[i].MonthStr);
listdata.Add(Convert.ToDouble(views[i].PlanNum));
listdata2.Add(Convert.ToDouble(views[i].TotalPlanNum));
listdata3.Add(Convert.ToDouble(views[i].RealNum));
listdata4.Add(Convert.ToDouble(views[i].TotalRealNum));
}
s.data = listdata;
s2.data = listdata2;
s3.data = listdata3;
s4.data = listdata4;
series.Add(s);
series.Add(s2);
series.Add(s3);
series.Add(s4);
businessColumn.categories = listCategories;
businessColumn.series = series;
return JsonConvert.SerializeObject(businessColumn);
}
}
#endregion
#region
protected string Person
{
get
{
string roleCNs = Request.Params["roleCNs"];
string unitWorkIds = Request.Params["unitWorkIds"];
Model.SGGLDB db = Funs.DB;
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<string> listCategories = new List<string>();
var persons = from x in db.SitePerson_Person where x.ProjectId == this.CurrUser.LoginProjectId && x.IsUsed == true select x;
persons = persons.Where(x => roleCNs.Split(',').Contains(x.MainCNProfessionalId));
List<Model.SitePerson_Person> newPersons = new List<Model.SitePerson_Person>();
if (!string.IsNullOrEmpty(unitWorkIds))
{
string[] unitWorkIdList = unitWorkIds.Split(',');
foreach (var item in unitWorkIdList)
{
newPersons.AddRange(persons.Where(x => x.WorkAreaId.Contains(item)));
}
}
newPersons = newPersons.Distinct().ToList();
Model.SingleSerie s = new Model.SingleSerie();
List<double> listdata = new List<double>();
//木工
listCategories.Add("木工");
int workPostCount1 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Carpentry);
listdata.Add(workPostCount1);
//钢筋工
listCategories.Add("钢筋工");
int workPostCount2 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_SteelWorker);
listdata.Add(workPostCount2);
//瓦工
listCategories.Add("瓦工");
int workPostCount3 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Bricklayer);
listdata.Add(workPostCount3);
//混凝土工
listCategories.Add("混凝土工");
int workPostCount4 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_ConcreteWorker);
listdata.Add(workPostCount4);
//钳工
listCategories.Add("钳工");
int workPostCount5 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Fitter1 || x.WorkPostId == Const.WorkPost_Fitter2);
listdata.Add(workPostCount5);
//焊工
listCategories.Add("焊工");
int workPostCount6 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Welder1 || x.WorkPostId == Const.WorkPost_Welder2 ||
x.WorkPostId == Const.WorkPost_Welder3 || x.WorkPostId == Const.WorkPost_Welder4 || x.WorkPostId == Const.WorkPost_Welder5);
listdata.Add(workPostCount6);
//铆工
listCategories.Add("铆工");
int workPostCount7 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Riveter);
listdata.Add(workPostCount7);
//管工
listCategories.Add("管工");
int workPostCount8 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Foreman);
listdata.Add(workPostCount8);
//电工
listCategories.Add("电工");
int workPostCount9 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Electrician1 || x.WorkPostId == Const.WorkPost_Electrician2
|| x.WorkPostId == Const.WorkPost_Electrician3);
listdata.Add(workPostCount9);
//仪表工
listCategories.Add("仪表工");
int workPostCount10 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_Instrumentalist);
listdata.Add(workPostCount10);
//防腐保温工
listCategories.Add("防腐保温工");
int workPostCount11 = newPersons.Count(x => x.WorkPostId == Const.WorkPost_AnticorrosionWorker);
listdata.Add(workPostCount11);
//防腐保温工
listCategories.Add("管理人员");
int workPostCount12 = (from x in newPersons
join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where y.PostType == Const.PostType_1
select x).Count();
listdata.Add(workPostCount12);
//其他
listCategories.Add("其他");
int workPostCount13 = newPersons.Count() - workPostCount1 - workPostCount2 - workPostCount3 - workPostCount4 - workPostCount5 - workPostCount6 - workPostCount7
- workPostCount8 - workPostCount9 - workPostCount10 - workPostCount11 - workPostCount12;
listdata.Add(workPostCount13);
s.data = listdata;
series.Add(s);
businessColumn.categories = listCategories;
businessColumn.title = newPersons.Count().ToString();
businessColumn.series = series;
return JsonConvert.SerializeObject(businessColumn);
}
}
#endregion
#region
protected string swiper_One
{
get
{
string roleCNs = Request.Params["roleCNs"];
var getGJSX = (from x in Funs.DB.GJSX
join y in Funs.DB.Base_QuestionType on x.QuestionTypeID equals y.QuestionTypeID
where x.ProjectId == this.CurrUser.LoginProjectId && x.State != "0" && roleCNs.Split(',').Contains(x.CNProfessional_ID)
&& x.User_ReceiveID.Contains(this.CurrUser.UserId)
orderby x.CreateDate
select new { x.GJSXID, x.Detail, x.CreateDate, x.ProjectId, y.QuestionTypeName }).Distinct().Take(20);
string strNoticeHtml = string.Empty;
var readIds = from x in Funs.DB.Sys_UserRead where x.UserId == this.CurrUser.UserId select x.DataId;
foreach (var item in getGJSX)
{
string url = "../PZHGL/GJSX/GJSXListEdit.aspx?EditType=Edit&Id=" + item.GJSXID;
if (item.QuestionTypeName.Contains("紧急"))
{
strNoticeHtml += "<li data-id=\"" + url + "\" notice-id=\"" + item.GJSXID + "\" class=\"c-item swiper-slide\"><div class=\"tit\" title=\"" + item.Detail + "\"><div class=\"flex\" ><div class=\"tit-t flex1\" style=\"color:red;\">" + item.Detail + "</div><div class=\"tit-v\">" + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "</div></div></div></li>";
}
else if (item.QuestionTypeName.Contains("重要"))
{
strNoticeHtml += "<li data-id=\"" + url + "\" notice-id=\"" + item.GJSXID + "\" class=\"c-item swiper-slide\"><div class=\"tit\" title=\"" + item.Detail + "\"><div class=\"flex\" ><div class=\"tit-t flex1\" style=\"color:yellow;\">" + item.Detail + "</div><div class=\"tit-v\">" + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "</div></div></div></li>";
}
else
{
strNoticeHtml += "<li data-id=\"" + url + "\" notice-id=\"" + item.GJSXID + "\" class=\"c-item swiper-slide\"><div class=\"tit\" title=\"" + item.Detail + "\"><div class=\"flex\" ><div class=\"tit-t flex1\">" + item.Detail + "</div><div class=\"tit-v\">" + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "</div></div></div></li>";
}
}
return "<ul class=\"content-ul swiper-wrapper\">" + strNoticeHtml + "</ul>";
}
}
#endregion
protected void imgBtn_Click(object sender, EventArgs e)
{
Model.GJSX gjsx = BLL.GJSXService.GetGJSXById(this.hdNoticeId.Value);
if (gjsx != null)
{
BLL.APIUserService.getSaveUserRead(BLL.Const.GJSXMenuId, gjsx.ProjectId, this.CurrUser.UserId, gjsx.GJSXID);
}
}
}
}

View File

@ -0,0 +1,195 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.common {
public partial class mainIV {
/// <summary>
/// hdNoticeId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hdNoticeId;
/// <summary>
/// imgBtn 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Button imgBtn;
/// <summary>
/// swiper2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl swiper2;
/// <summary>
/// divZY 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divZY;
/// <summary>
/// divYH 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divYH;
/// <summary>
/// divRGS 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divRGS;
/// <summary>
/// divQT 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divQT;
/// <summary>
/// divPX 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPX;
/// <summary>
/// divZLWT 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divZLWT;
/// <summary>
/// divZLGJ 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divZLGJ;
/// <summary>
/// divYS 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divYS;
/// <summary>
/// divHG 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divHG;
/// <summary>
/// divJGZL 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divJGZL;
/// <summary>
/// divNCR 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divNCR;
/// <summary>
/// divBG 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divBG;
/// <summary>
/// divQZ 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divQZ;
/// <summary>
/// divMonth 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divMonth;
/// <summary>
/// divGZL 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divGZL;
/// <summary>
/// hdContractQuantitySheets 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlInputHidden hdContractQuantitySheets;
/// <summary>
/// hdMaterialRecords 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlInputHidden hdMaterialRecords;
}
}

View File

@ -30,6 +30,26 @@ namespace WebAPI.Controllers
}
return responeData;
}
/// <summary>
/// 获取考生
/// </summary>
/// <param name="testPlanId"></param>
/// <returns></returns>
public Model.ResponeData getTestRecordTestManByTestPlanId(string testPlanId)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APITestRecordService.getTestRecordTestManByTestPlanId(testPlanId);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
#region ID获取试卷记录详细

View File

@ -12,7 +12,7 @@
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>E:\Package\中化五环\SGGLAPI</publishUrl>
<publishUrl>F:\Package\中化五环\SGGLAPI</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>True</EnableUpdateable>