This commit is contained in:
2026-04-07 16:57:01 +08:00
14 changed files with 346 additions and 61 deletions
+26
View File
@@ -1517,5 +1517,31 @@ namespace BLL
return strValues; return strValues;
} }
public static string getStrTrainingTestRecordByPersonId(string personId)
{
string strValues = string.Empty;
var getDataLists = from x in Funs.DB.Training_TestRecord
join z in Funs.DB.Training_TestPlan on x.TestPlanId equals z.TestPlanId
where x.TestManId == personId
orderby z.PlanDate descending
select new
{
z.PlanName,
z.PlanDate,
CheckResultName = x.TestScores >=60 ? "合格" : "不合格",
z.TestPlanId,
};
if (getDataLists.Count() > 0)
{
foreach (var item in getDataLists)
{
string strV = string.Format("{0:yyyy-MM-dd HH:mm}", item.PlanDate) + " " + item.PlanName + " " + item.CheckResultName + "";
strValues += strV;
}
}
return strValues;
}
} }
} }
+5 -4
View File
@@ -1,5 +1,6 @@
using Model; using Model;
using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@@ -125,9 +126,7 @@ namespace BLL
{ {
var twPipeMatMatchOutputs = new List<Tw_PipeMatMatchOutput>(); var twPipeMatMatchOutputs = new List<Tw_PipeMatMatchOutput>();
var pipelineModel = PipelineService.GetPipelineByPipelineId(pipelineId); var pipelineModel = PipelineService.GetPipelineByPipelineId(pipelineId);
string warehouseCode = PipelineService string warehouseCode = BLL.Base_WarehouseService.GetWarehouseByWarehouseId(PipelineService.GetPipelineByPipelineId(pipelineModel.PipelineId).WarehouseId).WarehouseName;
.GetPipeArea().FirstOrDefault(x => x.Value == pipelineModel.PipeArea.ToString())
?.Text;
// 获取所需材料列表 // 获取所需材料列表
var requiredMaterials = (from x in db.HJGL_PipeLineMat var requiredMaterials = (from x in db.HJGL_PipeLineMat
join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode
@@ -152,7 +151,9 @@ namespace BLL
).ToList(); ).ToList();
twPipeMatMatchOutputs = GetMatMatchOutput(requiredMaterials, warehouseCode, pipelineModel.ProjectId); twPipeMatMatchOutputs = GetMatMatchOutput(requiredMaterials, warehouseCode, pipelineModel.ProjectId);
var result = twPipeMatMatchOutputs.Count == 0 ? 0 : twPipeMatMatchOutputs.Sum(x => x.MatchRate) / twPipeMatMatchOutputs.Count; var result = twPipeMatMatchOutputs.Any()
? twPipeMatMatchOutputs.Average(x => x.MatchRate)
: 0;
return result; return result;
} }
} }
+2 -2
View File
@@ -750,7 +750,7 @@ namespace BLL
ProjectId = weldTask.ProjectId, ProjectId = weldTask.ProjectId,
// CusBillCode = string.Format("{0:yyyyMMdd}", DateTime.Now) + UnitService.GetUnitCodeByUnitId(weldTask.UnitId) + "-" + UnitWorkService.getUnitWorkByUnitWorkId(weldTask.UnitWorkId)?.UnitWorkCode + "AP-PF01", // CusBillCode = string.Format("{0:yyyyMMdd}", DateTime.Now) + UnitService.GetUnitCodeByUnitId(weldTask.UnitId) + "-" + UnitWorkService.getUnitWorkByUnitWorkId(weldTask.UnitWorkId)?.UnitWorkCode + "AP-PF01",
CusBillCode = TwInOutplanmasterService.GetCusBillCodeByTaskCode(weldTaskCode, TwConst.TypeInt., TwConst.Category.), CusBillCode = TwInOutplanmasterService.GetCusBillCodeByTaskCode(weldTaskCode, TwConst.TypeInt., TwConst.Category.),
WarehouseCode = PipelineService.GetPipeArea().Where(x => x.Value == PipelineService.GetPipelineByPipelineId(weldTask.PipelineId).PipeArea).Select(x => x.Text).FirstOrDefault(), WarehouseCode = BLL.Base_WarehouseService.GetWarehouseByWarehouseId(PipelineService.GetPipelineByPipelineId(weldTask.PipelineId).WarehouseId).WarehouseName,
Source = 1, Source = 1,
InOutType = (int)TwConst.InOutType., InOutType = (int)TwConst.InOutType.,
TypeInt = (int)TwConst.TypeInt., TypeInt = (int)TwConst.TypeInt.,
@@ -789,7 +789,7 @@ namespace BLL
Id = Guid.NewGuid().ToString(), Id = Guid.NewGuid().ToString(),
ProjectId = weldTask.ProjectId, ProjectId = weldTask.ProjectId,
CusBillCode = TwInOutplanmasterService.GetCusBillCodeByTaskCode(weldTaskCode, TwConst.TypeInt., TwConst.Category.), CusBillCode = TwInOutplanmasterService.GetCusBillCodeByTaskCode(weldTaskCode, TwConst.TypeInt., TwConst.Category.),
WarehouseCode = PipelineService.GetPipeArea().Where(x => x.Value == PipelineService.GetPipelineByPipelineId(weldTask.PipelineId).PipeArea).Select(x => x.Text).FirstOrDefault(), WarehouseCode = BLL.Base_WarehouseService.GetWarehouseByWarehouseId(PipelineService.GetPipelineByPipelineId(weldTask.PipelineId).WarehouseId).WarehouseName,
Source = 1, Source = 1,
InOutType = (int)TwConst.InOutType., InOutType = (int)TwConst.InOutType.,
TypeInt = (int)TwConst.TypeInt., TypeInt = (int)TwConst.TypeInt.,
@@ -45,7 +45,10 @@ namespace BLL
public static IEnumerable getListData(string projectId, string checkMan, string type, string workAreaName, string responsibilityUnitName, DateTime? startTime, DateTime? endTime, DateTime? startRectificationTime, DateTime? endRectificationTime public static IEnumerable getListData(string projectId, string checkMan, string type, string workAreaName, string responsibilityUnitName, DateTime? startTime, DateTime? endTime, DateTime? startRectificationTime, DateTime? endRectificationTime
, string states, string personId, string unitId, Grid Grid1) , string states, string personId, string unitId, Grid Grid1)
{ {
IQueryable<Model.View_Hazard_HazardRegisterList> getDataList = getDataLists; var db= Funs.DB;
IQueryable<Model.View_Hazard_HazardRegisterList> getDataList = from x in db.View_Hazard_HazardRegisterList
where x.ProblemTypes == "1"
select x;
if (!string.IsNullOrEmpty(projectId)) if (!string.IsNullOrEmpty(projectId))
{ {
getDataList = getDataList.Where(e => e.ProjectId == projectId); getDataList = getDataList.Where(e => e.ProjectId == projectId);
@@ -101,7 +104,7 @@ namespace BLL
return null; return null;
} }
getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in getDataList return (from x in getDataList
select new select new
{ {
x.HazardRegisterId, x.HazardRegisterId,
@@ -122,7 +125,7 @@ namespace BLL
x.CheckManName, x.CheckManName,
x.RegisterDate, x.RegisterDate,
x.StatesStr, x.StatesStr,
}; }).ToList();
} }
#endregion #endregion
+183 -5
View File
@@ -1,4 +1,5 @@
using FineUIPro; using FineUIPro;
using Model;
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
@@ -20,10 +21,6 @@ namespace BLL
set; set;
} }
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.SitePerson_PersonInOut> getDataLists = from x in Funs.DB.SitePerson_PersonInOut select x;
/// <summary> /// <summary>
/// 获取分页列表 /// 获取分页列表
@@ -37,7 +34,8 @@ namespace BLL
/// <returns></returns> /// <returns></returns>
public static IEnumerable getListData(string projectId, string unitId, string name, string idCard, string inOutWay, DateTime? startDate, DateTime? endDate, Grid Grid1) public static IEnumerable getListData(string projectId, string unitId, string name, string idCard, string inOutWay, DateTime? startDate, DateTime? endDate, Grid Grid1)
{ {
IQueryable<Model.SitePerson_PersonInOut> getDataList = getDataLists.Where(x => x.ProjectId == projectId && (inOutWay == "0" || x.InOutWay == inOutWay)); IQueryable<Model.SitePerson_PersonInOut> getDataList = from x in Funs.DB.SitePerson_PersonInOut select x;
getDataList = getDataList.Where(x => x.ProjectId == projectId && (inOutWay == "0" || x.InOutWay == inOutWay));
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{ {
getDataList = getDataList.Where(e => e.UnitId == unitId); getDataList = getDataList.Where(e => e.UnitId == unitId);
@@ -183,6 +181,88 @@ namespace BLL
} }
} }
} }
public static void AddPersonInOut(List<Model.SitePerson_PersonInOut> personInOutList)
{
using (Model.SGGLDB db1 = new Model.SGGLDB(Funs.ConnString))
{
List<string> personIds = new List<string>();
List<SitePerson_PersonInOut> newPersonInOutList = new List<SitePerson_PersonInOut>();
List<SitePerson_PersonInOut> needInsertPersonInOutList = new List<SitePerson_PersonInOut>();
foreach (var personInOut in personInOutList)
{
Model.SitePerson_PersonInOut newPersonInOut = new Model.SitePerson_PersonInOut
{
PersonInOutId = SQLHelper.GetNewID(),
IsIn = personInOut.IsIn ?? true,
ChangeTime = personInOut.ChangeTime,
InOutWay = personInOut.InOutWay ?? Const.InOutWay_Other,
WorkAreaId = personInOut.WorkAreaId,
WorkAreaName = personInOut.WorkAreaName,
OldID = personInOut.OldID,
Address = personInOut.Address,
Remark = personInOut.Remark,
};
if (!string.IsNullOrEmpty(personInOut.PersonId))
{
personIds.Add(personInOut.PersonId);
}
if (!string.IsNullOrEmpty(personInOut.IdentityCard))
{
personIds.Add(personInOut.IdentityCard);
}
newPersonInOutList.Add(personInOut);
}
List<Model.SitePerson_Person> person_Peoples = new List<Model.SitePerson_Person>();
person_Peoples.AddRange(db1.SitePerson_Person.Where(x => x.ProjectId == personInOutList[0].ProjectId && personIds.Contains(x.PersonId)).ToList());
person_Peoples.AddRange(db1.SitePerson_Person.Where(x => x.ProjectId == personInOutList[0].ProjectId && personIds.Contains(x.IdentityCard)).ToList());
foreach (var newPersonInOut in newPersonInOutList)
{
Model.SitePerson_Person getPerson = new Model.SitePerson_Person();
getPerson = person_Peoples.FirstOrDefault(x => x.PersonId == newPersonInOut.PersonId || x.IdentityCard == newPersonInOut.IdentityCard);
if (getPerson != null && !string.IsNullOrEmpty(getPerson.PersonId))
{
newPersonInOut.ProjectId = getPerson.ProjectId;
newPersonInOut.PersonId = getPerson.PersonId;
newPersonInOut.PersonName = getPerson.PersonName;
newPersonInOut.IdentityCard = getPerson.IdentityCard;
newPersonInOut.UnitId = getPerson.UnitId;
newPersonInOut.UnitName = UnitService.GetUnitNameByUnitId(getPerson.UnitId);
newPersonInOut.WorkPostId = getPerson.WorkPostId;
if (!string.IsNullOrEmpty(getPerson.WorkPostId))
{
var getWorkPost = WorkPostService.GetWorkPostById(getPerson.WorkPostId);
if (getWorkPost != null)
{
newPersonInOut.WorkPostName = getWorkPost.WorkPostName;
newPersonInOut.PostType = getWorkPost.PostType;
}
}
if (string.IsNullOrEmpty(newPersonInOut.WorkAreaName) && !string.IsNullOrEmpty(newPersonInOut.WorkAreaId))
{
newPersonInOut.WorkAreaName = UnitWorkService.GetUnitWorkName(newPersonInOut.WorkAreaId);
}
}
if (!getPerson.OutTime.HasValue || getPerson.OutTime > DateTime.Now)
{
//// 插入当日记录表
needInsertPersonInOutList.Add(newPersonInOut);
}
}
db1.SitePerson_PersonInOut.InsertAllOnSubmit(newPersonInOutList);
db1.SubmitChanges();
if (needInsertPersonInOutList.Count>0)
{
//// 插入当日记录表
PersonInOutService.InsertPersonInOutNowNow(needInsertPersonInOutList);
}
}
}
#endregion #endregion
#region #region
@@ -273,6 +353,104 @@ namespace BLL
} }
} }
} }
public static void InsertPersonInOutNowNow(List<Model.SitePerson_PersonInOut> PersonInOuts)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List<string> unitIds = new List<string>();
List<SitePerson_PersonInOutNow> newPersonInOutList = new List<SitePerson_PersonInOutNow>();
foreach (var PersonInOut in PersonInOuts)
{
Model.SitePerson_PersonInOutNow newPersonInOut = new Model.SitePerson_PersonInOutNow
{
PersonInOutId = PersonInOut.PersonInOutId,
ProjectId = PersonInOut.ProjectId,
UnitId = PersonInOut.UnitId,
UnitName = PersonInOut.UnitName,
PersonId = PersonInOut.PersonId,
PersonName = PersonInOut.PersonName,
IsIn = PersonInOut.IsIn,
ChangeTime = PersonInOut.ChangeTime,
WorkPostId = PersonInOut.WorkPostId,
WorkPostName = PersonInOut.WorkPostName,
PostType = PersonInOut.PostType,
Name = PersonInOut.PersonName,
IdentityCard = PersonInOut.IdentityCard,
IdcardNumber = PersonInOut.IdentityCard,
CheckType = "ZHENGCHANG_KAOQINLEIBIE",
CheckWay = "FACE_FANGSHI",
InOutWay = PersonInOut.InOutWay,
Address = PersonInOut.Address,
Remark = PersonInOut.Remark,
};
unitIds.Add(PersonInOut.UnitId);
newPersonInOutList.Add(newPersonInOut);
}
db.SitePerson_PersonInOutNow.InsertAllOnSubmit(newPersonInOutList);
db.SubmitChanges();
string proCode = ProjectService.GetContractNoByProjectId(PersonInOuts[0].ProjectId);
var getRealNameP = db.RealName_Project.FirstOrDefault(x => x.ProCode == proCode);
/// 监理 业主 不进入
var getPUnitS = db.Project_ProjectUnit.Where(x => x.ProjectId == PersonInOuts[0].ProjectId && unitIds.Contains(x.UnitId)).ToList();
foreach (var newPersonInOut in newPersonInOutList)
{
var getPUnit = getPUnitS.FirstOrDefault(x => x.UnitId == newPersonInOut.UnitId);
if (getPUnit.UnitType != Const.ProjectUnitType_3 && getPUnit.UnitType != Const.ProjectUnitType_4 && getPUnit.IsSynchro == true)
{
if (getRealNameP != null && newPersonInOut.ChangeTime.HasValue)
{
var getNow = db.RealName_PersonInOutNow.FirstOrDefault(x => x.PersonInOutId == newPersonInOut.PersonInOutId);
if (getNow == null)
{
int hour = newPersonInOut.ChangeTime.Value.Hour;
bool isIn = newPersonInOut.IsIn ?? true;
DateTime date = newPersonInOut.ChangeTime.Value;
var getMorning = db.RealName_PersonInOutNow.FirstOrDefault(x => x.PersonId == newPersonInOut.PersonId
&& ((x.ChangeTime.Value.Hour < 12 && hour < 12) || (x.ChangeTime.Value.Hour >= 12 && hour >= 12))
&& x.ChangeTime >= date.Date && x.ChangeTime.Value < date.Date.AddDays(1)
&& ((x.IsIn == true && x.ChangeTime < date) || (x.IsIn == false && x.ChangeTime > date)));
if (getMorning == null)
{
Model.RealName_PersonInOutNow newR = new Model.RealName_PersonInOutNow
{
PersonInOutId = newPersonInOut.PersonInOutId,
ProjectId = newPersonInOut.ProjectId,
UnitId = newPersonInOut.UnitId,
PersonId = newPersonInOut.PersonId,
IsIn = newPersonInOut.IsIn,
ChangeTime = newPersonInOut.ChangeTime,
WorkPostId = newPersonInOut.WorkPostId,
PostType = newPersonInOut.PostType,
ProCode = proCode,
Name = newPersonInOut.PersonName,
IdcardType = "SHENFEN_ZHENGJIAN",
IdcardNumber = newPersonInOut.IdentityCard,
CheckType = "ZHENGCHANG_KAOQINLEIBIE",
CheckWay = "FACE_FANGSHI",
};
db.RealName_PersonInOutNow.InsertOnSubmit(newR);
}
}
}
}
}
db.SubmitChanges();
var getLastList = from x in db.SitePerson_PersonInOutNow
where x.ChangeTime <= PersonInOuts[0].ChangeTime.Value.AddHours(-48)
select x;
if (getLastList.Count() > 0)
{
db.SitePerson_PersonInOutNow.DeleteAllOnSubmit(getLastList);
db.SubmitChanges();
}
}
}
#endregion #endregion
#region #region
+17 -6
View File
@@ -280,16 +280,27 @@ namespace FineUIPro.Web.CLGL
} }
string planId = Grid1.SelectedRowID; string planId = Grid1.SelectedRowID;
var planMaster = BLL.TwInOutplanmasterService.GetById(planId); var planMaster = BLL.TwInOutplanmasterService.GetById(planId);
if (planMaster.State != (int)TwConst.State.) switch (planMaster.State)
{
Alert.ShowInTop("请选择有效的计划!", MessageBoxIcon.Warning);
return;
}
else
{ {
case (int)TwConst.State.:
planMaster.State= (int)TwConst.State.;
planMaster.AuditMan = null;
planMaster.AuditDate = null;
TwInOutplanmasterService.Update(planMaster);
BindGrid();
ShowNotify("撤销审核成功!", MessageBoxIcon.Success);
break;
case (int)TwConst.State.:
TwInputmasterService.RevokeGenInMasterByPlanId(planId); TwInputmasterService.RevokeGenInMasterByPlanId(planId);
BindGrid(); BindGrid();
ShowNotify("撤销入库单成功!", MessageBoxIcon.Success); ShowNotify("撤销入库单成功!", MessageBoxIcon.Success);
break;
default:
Alert.ShowInTop("请选择有效的计划!", MessageBoxIcon.Warning);
break;
} }
} }
+4 -1
View File
@@ -17017,7 +17017,10 @@
</COMReference> </COMReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v18.0\WebApplications\Microsoft.WebApplication.targets" />
<ProjectExtensions> <ProjectExtensions>
<VisualStudio> <VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
@@ -1316,8 +1316,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
} }
} }
protected void btnPrintJoint_Click(object sender, EventArgs e) protected void btnPrintJoint_Click(object sender, EventArgs e)
{ {
var rows = Grid1.SelectedRowIndexArray; var rows = Grid1.SelectedRowIndexArray;
@@ -69,6 +69,7 @@
</f:ToolbarFill> </f:ToolbarFill>
<f:HiddenField runat="server" ID="hdRemark"> <f:HiddenField runat="server" ID="hdRemark">
</f:HiddenField> </f:HiddenField>
<%--<f:Button ID="btnPull" runat="server" OnClick="btnPull_Click" ToolTip="获取" Text="获取" > <%--<f:Button ID="btnPull" runat="server" OnClick="btnPull_Click" ToolTip="获取" Text="获取" >
</f:Button>--%> </f:Button>--%>
<f:Button ID="btnNew" Icon="Add" runat="server" OnClick="btnNew_Click" ToolTip="编制" Hidden="true"> <f:Button ID="btnNew" Icon="Add" runat="server" OnClick="btnNew_Click" ToolTip="编制" Hidden="true">
@@ -64,7 +64,7 @@ namespace FineUIPro.Web.HSSE.License
/// </summary> /// </summary>
private void BindGrid() private void BindGrid()
{ {
string strSql = "SELECT LicenseManager.LicenseManagerId,LicenseManager.ProjectId,LicenseManager.LicenseTypeId,CodeRecords.Code AS LicenseManagerCode,LicenseManager.LicenseManageName,LicenseManager.UnitId,LicenseManager.LicenseManageContents,LicenseManager.CompileMan,LicenseManager.CompileDate,LicenseManager.States,LicenseManager.ProjectCode,LicenseManager.ProjectName,LicenseManager.LicenseTypeName,LicenseManager.UnitName,LicenseManager.PersonName,LicenseManager.WorkAreaName,LicenseManager.StartDate,LicenseManager.EndDate" string strSql = "SELECT LicenseManager.LicenseManagerId,LicenseManager.ProjectId,LicenseManager.LicenseTypeId,CodeRecords.Code AS LicenseManagerCode,LicenseManager.LicenseManageName,LicenseManager.UnitId,LicenseManager.LicenseManageContents,LicenseManager.CompileMan,LicenseManager.CompileDate,LicenseManager.States,LicenseManager.ProjectCode,LicenseManager.ProjectName,LicenseManager.LicenseTypeName,LicenseManager.UnitName,LicenseManager.UserName,LicenseManager.WorkAreaName,LicenseManager.StartDate,LicenseManager.EndDate"
+ @" ,(CASE WHEN LicenseManager.States = " + BLL.Const.State_0 + " OR LicenseManager.States IS NULL THEN '待['+OperatePerson.PersonName+']提交' WHEN LicenseManager.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperatePerson.PersonName+']办理' END) AS FlowOperateName,LicenseManager.SourceDes" + @" ,(CASE WHEN LicenseManager.States = " + BLL.Const.State_0 + " OR LicenseManager.States IS NULL THEN '待['+OperatePerson.PersonName+']提交' WHEN LicenseManager.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperatePerson.PersonName+']办理' END) AS FlowOperateName,LicenseManager.SourceDes"
+ @" FROM View_License_LicenseManager AS LicenseManager " + @" FROM View_License_LicenseManager AS LicenseManager "
+ @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON LicenseManager.LicenseManagerId=CodeRecords.DataId " + @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON LicenseManager.LicenseManagerId=CodeRecords.DataId "
@@ -51,11 +51,11 @@ namespace FineUIPro.Web.common
this.tvControlItem.Nodes.Add(rootNode2); this.tvControlItem.Nodes.Add(rootNode2);
// 优化:一次性获取所有管线统计数据,避免 N+1 查询 // 优化:一次性获取所有管线统计数据,避免 N+1 查询
var pipelineCountByUnitWork = (from x in Funs.DB.HJGL_Pipeline var pipelineCountByUnitWork = (from x in Funs.DB.View_HJGL_Pipeline
where x.ProjectId == this.CurrUser.LoginProjectId where x.ProjectId == this.CurrUser.LoginProjectId
group x by x.UnitWorkId into g group x by x.UnitWorkId into g
select new { UnitWorkId = g.Key, Count = g.Count() }) select new { UnitWorkId = g.Key, Count = g.Count(), TotalDin = g.Sum(x => x.TotalDin) })
.ToDictionary(x => x.UnitWorkId, x => x.Count); .ToDictionary(x => x.UnitWorkId, x => new { x.Count, x.TotalDin });
var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
// 获取当前用户所在单位 // 获取当前用户所在单位
@@ -77,11 +77,11 @@ namespace FineUIPro.Web.common
foreach (var q in unitWork1) foreach (var q in unitWork1)
{ {
// 优化:从内存字典中获取管线数量,避免数据库查询 // 优化:从内存字典中获取管线数量,避免数据库查询
int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId] : 0; int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId].Count : 0;
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
TreeNode tn1 = new TreeNode(); TreeNode tn1 = new TreeNode();
tn1.NodeID = q.UnitWorkId; tn1.NodeID = q.UnitWorkId;
tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线" ;
tn1.ToolTip = "施工单位:" + unitNamesUnitIds; tn1.ToolTip = "施工单位:" + unitNamesUnitIds;
tn1.EnableClickEvent = true; tn1.EnableClickEvent = true;
rootNode1.Nodes.Add(tn1); rootNode1.Nodes.Add(tn1);
@@ -92,11 +92,11 @@ namespace FineUIPro.Web.common
foreach (var q in unitWork2) foreach (var q in unitWork2)
{ {
// 优化:从内存字典中获取管线数量,避免数据库查询 // 优化:从内存字典中获取管线数量,避免数据库查询
int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId] : 0; int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId].Count : 0;
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
TreeNode tn2 = new TreeNode(); TreeNode tn2 = new TreeNode();
tn2.NodeID = q.UnitWorkId; tn2.NodeID = q.UnitWorkId;
tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线" ;
tn2.ToolTip = "施工单位:" + unitNamesUnitIds; tn2.ToolTip = "施工单位:" + unitNamesUnitIds;
tn2.EnableClickEvent = true; tn2.EnableClickEvent = true;
rootNode2.Nodes.Add(tn2); rootNode2.Nodes.Add(tn2);
@@ -257,6 +257,7 @@ JointData AS (
j.Size, j.Size,
j.WeldingDailyId, j.WeldingDailyId,
j.JointAttribute, j.JointAttribute,
j.PipelineId,
p.PipeArea, p.PipeArea,
p.UnitWorkId p.UnitWorkId
FROM dbo.HJGL_WeldJoint j FROM dbo.HJGL_WeldJoint j
@@ -323,6 +324,7 @@ JointData AS (
j.Size, j.Size,
j.WeldingDailyId, j.WeldingDailyId,
j.JointAttribute, j.JointAttribute,
j.PipelineId,
p.PipeArea, p.PipeArea,
p.UnitWorkId p.UnitWorkId
FROM dbo.HJGL_WeldJoint j FROM dbo.HJGL_WeldJoint j
+19
View File
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Model.APIItem
{
public class PersonInOutItem
{
public string projectId { get; set; }
public string idCard { get; set; }
public int isIn { get; set; }
public DateTime changeTime { get; set; }
public string deviceIp { get; set; }
}
}
+1
View File
@@ -156,6 +156,7 @@
<Compile Include="APIItem\Law_RulesRegulations.cs" /> <Compile Include="APIItem\Law_RulesRegulations.cs" />
<Compile Include="APIItem\NoticeOutput.cs" /> <Compile Include="APIItem\NoticeOutput.cs" />
<Compile Include="APIItem\OperationReportDto.cs" /> <Compile Include="APIItem\OperationReportDto.cs" />
<Compile Include="APIItem\PersonInOutItem.cs" />
<Compile Include="APIItem\ProjectItem.cs" /> <Compile Include="APIItem\ProjectItem.cs" />
<Compile Include="APIItem\HSSE\PunishNoticeItem.cs" /> <Compile Include="APIItem\HSSE\PunishNoticeItem.cs" />
<Compile Include="APIItem\HSSE\PunishNoticeItemItem.cs" /> <Compile Include="APIItem\HSSE\PunishNoticeItemItem.cs" />
+57 -15
View File
@@ -1,6 +1,7 @@
using BLL; using BLL;
using Model; using Model;
using System; using System;
using System.Collections.Generic;
using System.Configuration; using System.Configuration;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@@ -112,7 +113,7 @@ namespace WebAPI.Controllers
/// <param name="pageindex">页码(从1开始)</param> /// <param name="pageindex">页码(从1开始)</param>
/// <param name="returnAll">是否返回全部数据</param> /// <param name="returnAll">是否返回全部数据</param>
/// <returns></returns> /// <returns></returns>
public Model.ResponeData getPersonByFilter([FromUri] Model.ProjectPersonInput filter, int? pagesize = 15, int? pageindex = 1, bool? returnAll = false) public Model.ResponeData getPersonByFilter([FromUri] Model.ProjectPersonInput filter, int? pagesize = 15, int? pageindex = 1, bool ? returnAll = false)
{ {
var responeData = new Model.ResponeData(); var responeData = new Model.ResponeData();
try try
@@ -382,12 +383,12 @@ namespace WebAPI.Controllers
/// <param name="trainTypeId">培训类型ID(可为空)</param> /// <param name="trainTypeId">培训类型ID(可为空)</param>
/// <param name="pageIndex">分页</param> /// <param name="pageIndex">分页</param>
/// <returns></returns> /// <returns></returns>
public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex, string startDate, string endDate) public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex)
{ {
var responeData = new Model.ResponeData(); var responeData = new Model.ResponeData();
try try
{ {
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, null).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId,null).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
int pageCount = getDataList.Count; int pageCount = getDataList.Count;
if (pageCount > 0 && pageIndex > 0) if (pageCount > 0 && pageIndex > 0)
{ {
@@ -413,12 +414,12 @@ namespace WebAPI.Controllers
/// <param name="name"></param> /// <param name="name"></param>
/// <param name="pageIndex"></param> /// <param name="pageIndex"></param>
/// <returns></returns> /// <returns></returns>
public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, int pageIndex) public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId,string name, int pageIndex)
{ {
var responeData = new Model.ResponeData(); var responeData = new Model.ResponeData();
try try
{ {
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId, name).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId,name).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
int pageCount = getDataList.Count; int pageCount = getDataList.Count;
if (pageCount > 0 && pageIndex > 0) if (pageCount > 0 && pageIndex > 0)
{ {
@@ -693,6 +694,9 @@ namespace WebAPI.Controllers
/// <param name="isIn"></param> /// <param name="isIn"></param>
/// <param name="changeTime"></param> /// <param name="changeTime"></param>
/// <returns></returns> /// <returns></returns>
///
[HttpGet]
public Model.ResponeData getPersonInOut(string projectId, string idCard, int isIn, DateTime changeTime) public Model.ResponeData getPersonInOut(string projectId, string idCard, int isIn, DateTime changeTime)
{ {
var responeData = new Model.ResponeData(); var responeData = new Model.ResponeData();
@@ -705,7 +709,7 @@ namespace WebAPI.Controllers
IdentityCard = idCard, IdentityCard = idCard,
IsIn = isIn == 1 ? true : false, IsIn = isIn == 1 ? true : false,
ChangeTime = changeTime, ChangeTime = changeTime,
InOutWay = Const.InOutWay_1, InOutWay = Const.InOutWay_1
}; };
PersonInOutService.AddPersonInOut(newInOut); PersonInOutService.AddPersonInOut(newInOut);
@@ -719,6 +723,41 @@ namespace WebAPI.Controllers
} }
return responeData; return responeData;
} }
[HttpPost]
public Model.ResponeData getPersonInOut([FromBody] List<Model.APIItem.PersonInOutItem> personInOutItem)
{
var responeData = new Model.ResponeData();
if (personInOutItem.Count > 0)
{
try
{
List<SitePerson_PersonInOut> newInOutList = new List<SitePerson_PersonInOut>();
foreach (var item in personInOutItem)
{
Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
{
ProjectId = item.projectId,
IdentityCard = item.idCard,
IsIn = item.isIn == 1 ? true : false,
ChangeTime = item.changeTime,
InOutWay = Const.InOutWay_1,
Address = item.deviceIp
};
newInOutList.Add(newInOut);
}
PersonInOutService.AddPersonInOut(newInOutList);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
}
return responeData;
}
#endregion #endregion
#region #region
@@ -779,7 +818,7 @@ namespace WebAPI.Controllers
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard
where x.ProjectId == projectId && !x.ExchangeTime.HasValue where x.ProjectId == projectId && !x.ExchangeTime.HasValue
&& x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null && x.States == Const.ProjectPersonStates_1 && x.CardNo.Length> 5 && persons.PhotoUrl != null
select new select new
{ {
x.PersonId, x.PersonId,
@@ -798,7 +837,7 @@ namespace WebAPI.Controllers
TrainRecord = APIPersonService.getStrTrainRecordByPersonId(x.PersonId), TrainRecord = APIPersonService.getStrTrainRecordByPersonId(x.PersonId),
x.ExchangeTime, x.ExchangeTime,
x.ExchangeTime2, x.ExchangeTime2,
PhotoUrl = persons.PhotoUrl.Replace('\\', '/'), PhotoUrl=persons.PhotoUrl.Replace('\\', '/'),
}).Take(200).ToList(); }).Take(200).ToList();
} }
catch (Exception ex) catch (Exception ex)
@@ -819,10 +858,9 @@ namespace WebAPI.Controllers
responeData.data = (from x in Funs.DB.SitePerson_Person responeData.data = (from x in Funs.DB.SitePerson_Person
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard join persons in Funs.DB.Person_Persons on x.IdentityCard equals persons.IdentityCard
join traindetail in Funs.DB.EduTrain_TrainRecordDetail on x.PersonId equals traindetail.PersonId join traindetail in Funs.DB.Training_TestRecord on x.PersonId equals traindetail.TestManId
join train in Funs.DB.EduTrain_TrainRecord on traindetail.TrainingId equals train.TrainingId where x.ProjectId == projectId && !x.ExchangeTime.HasValue && traindetail.ProjectId == projectId
where x.ProjectId == projectId && !x.ExchangeTime.HasValue && train.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null && traindetail.TestScores >= 60
&& x.States == Const.ProjectPersonStates_1 && x.CardNo.Length > 5 && persons.PhotoUrl != null
// where personIds.Contains(x.PersonId) // where personIds.Contains(x.PersonId)
select new select new
{ {
@@ -841,7 +879,7 @@ namespace WebAPI.Controllers
Funs.DB.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName, Funs.DB.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName,
persons.Telephone, persons.Telephone,
persons.Address, persons.Address,
TrainRecord = APIPersonService.getStrTrainRecordByPersonId(x.PersonId), TrainRecord = APIPersonService.getStrTrainingTestRecordByPersonId(x.PersonId),
x.ExchangeTime, x.ExchangeTime,
x.ExchangeTime2, x.ExchangeTime2,
x.AuditorDate, x.AuditorDate,
@@ -927,7 +965,7 @@ namespace WebAPI.Controllers
/// <param name="idCard"></param> /// <param name="idCard"></param>
/// <param name="type"></param> /// <param name="type"></param>
/// <returns></returns> /// <returns></returns>
public Model.ResponeData getUpdatePersonExchangeTime(string projectId, string idCard, string type) public Model.ResponeData getUpdatePersonExchangeTime(string projectId,string idCard, string type)
{ {
var responeData = new Model.ResponeData(); var responeData = new Model.ResponeData();
try try
@@ -940,7 +978,7 @@ namespace WebAPI.Controllers
else else
{ {
responeData.code = 1; responeData.code = 1;
responeData.message = "当前项目不存在身份证为:" + idCard.ToString() + "的人员!"; responeData.message = "当前项目不存在身份证为:" + idCard.ToString() +"的人员!";
} }
} }
@@ -985,6 +1023,10 @@ namespace WebAPI.Controllers
} }
#endregion #endregion
#region - #region -
/// <summary> /// <summary>
/// 获取人员信息出入场记录 /// 获取人员信息出入场记录