1、项目级看板补充月计划完成情况和周计划完成情况

This commit is contained in:
夏菊 2025-03-25 18:58:30 +08:00
parent 074fc70d96
commit f91524d293
11 changed files with 1837 additions and 1277 deletions

View File

@ -1,8 +1,7 @@
using System;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
@ -20,7 +19,7 @@ namespace BLL
/// <returns></returns>
public static Model.JDGL_WeekPlan GetWeekPlanById(string WeekPlanId)
{
return Funs.DB.JDGL_WeekPlan.FirstOrDefault(e => e.WeekPlanId == WeekPlanId);
return db.JDGL_WeekPlan.FirstOrDefault(e => e.WeekPlanId == WeekPlanId);
}
/// <summary>
@ -30,7 +29,7 @@ namespace BLL
/// <returns></returns>
public static List<Model.JDGL_WeekPlan> GetWeekPlansByWeeks(string projectId, string weekNo)
{
return (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == projectId && x.WeekNo == weekNo select x).ToList();
return (from x in db.JDGL_WeekPlan where x.ProjectId == projectId && x.WeekNo == weekNo select x).ToList();
}
/// <summary>
@ -39,7 +38,6 @@ namespace BLL
/// <param name="WeekPlan"></param>
public static void AddWeekPlan(Model.JDGL_WeekPlan WeekPlan)
{
Model.SGGLDB db = Funs.DB;
Model.JDGL_WeekPlan newWeekPlan = new Model.JDGL_WeekPlan
{
WeekPlanId = WeekPlan.WeekPlanId,
@ -69,7 +67,6 @@ namespace BLL
/// <param name="WeekPlan"></param>
public static void UpdateWeekPlan(Model.JDGL_WeekPlan WeekPlan)
{
Model.SGGLDB db = Funs.DB;
Model.JDGL_WeekPlan newWeekPlan = db.JDGL_WeekPlan.FirstOrDefault(e => e.WeekPlanId == WeekPlan.WeekPlanId);
if (newWeekPlan != null)
{
@ -95,7 +92,6 @@ namespace BLL
/// <param name="WeekPlanId"></param>
public static void DeleteWeekPlanByWeekPlanId(string WeekPlanId)
{
Model.SGGLDB db = Funs.DB;
var q = (from x in db.JDGL_WeekPlan where x.WeekPlanId == WeekPlanId select x).FirstOrDefault();
if (q != null)
{
@ -104,13 +100,24 @@ namespace BLL
}
}
/// <summary>
/// 根据当前时间获取上一个周计划
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static JDGL_WeekPlan GetLastWeekPlan(string projectId)
{
return (from x in db.JDGL_WeekPlan where x.ProjectId == projectId && DateTime.Now > ((DateTime)x.EndDate).AddDays(1) orderby x.EndDate select x).FirstOrDefault();
}
/// <summary>
/// 根据主键删除周计划情况
/// </summary>
/// <param name="WeekPlanId"></param>
/// <param name="projectId"></param>
/// <param name="weekNo"></param>
public static void DeleteAllWeekPlan(string projectId, string weekNo)
{
Model.SGGLDB db = Funs.DB;
var q = from x in db.JDGL_WeekPlan where x.ProjectId == projectId && x.WeekNo == weekNo select x;
if (q != null)
{
@ -118,5 +125,17 @@ namespace BLL
db.SubmitChanges();
}
}
/// <summary>
/// 获取周计划下责任单位Id
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<string> GetWeekPlanUnitIdListByProjectIdWeekNo(string projectId)
{
var lstUnit = (from x in db.JDGL_WeekPlan where x.ProjectId == projectId orderby x.UnitId select x.UnitId).Distinct().ToList();
return lstUnit;
}
}
}

View File

@ -1340,4 +1340,12 @@
<value>Up to standard</value>
<comment>合格</comment>
</data>
<data name="mainProject2_MonthPlanDone" xml:space="preserve">
<value>Completion status of monthly plan</value>
<comment>月计划完成情况</comment>
</data>
<data name="mainProject2_WeekPlanDone" xml:space="preserve">
<value>Completion status of weekly plan</value>
<comment>周计划完成情况</comment>
</data>
</root>

View File

@ -1185,4 +1185,10 @@
<data name="Up_to_standard" xml:space="preserve">
<value>合格</value>
</data>
<data name="mainProject2_MonthPlanDone" xml:space="preserve">
<value>月计划完成情况</value>
</data>
<data name="mainProject2_WeekPlanDone" xml:space="preserve">
<value>周计划完成情况</value>
</data>
</root>

View File

@ -1185,4 +1185,10 @@
<data name="Up_to_standard" xml:space="preserve">
<value>合格</value>
</data>
<data name="mainProject2_MonthPlanDone" xml:space="preserve">
<value>月计划完成情况</value>
</data>
<data name="mainProject2_WeekPlanDone" xml:space="preserve">
<value>周计划完成情况</value>
</data>
</root>

View File

@ -13,13 +13,13 @@ namespace Resources {
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// 一个强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// 若要添加或除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 Visual Studio 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Web.Application.StronglyTypedResourceProxyBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Web.Application.StronglyTypedResourceProxyBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Lan {
@ -33,7 +33,7 @@ namespace Resources {
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
@ -47,8 +47,8 @@ namespace Resources {
}
/// <summary>
/// 覆盖当前线程的 CurrentUICulture 属性
/// 使用此强类型资源类的资源查找。
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
@ -1032,6 +1032,15 @@ namespace Resources {
}
}
/// <summary>
/// 查找类似 月计划完成情况 的本地化字符串。
/// </summary>
internal static string mainProject2_MonthPlanDone {
get {
return ResourceManager.GetString("mainProject2_MonthPlanDone", resourceCulture);
}
}
/// <summary>
/// 查找类似 未遂事件 的本地化字符串。
/// </summary>
@ -1284,6 +1293,15 @@ namespace Resources {
}
}
/// <summary>
/// 查找类似 周计划完成情况 的本地化字符串。
/// </summary>
internal static string mainProject2_WeekPlanDone {
get {
return ResourceManager.GetString("mainProject2_WeekPlanDone", resourceCulture);
}
}
/// <summary>
/// 查找类似 工作台面 的本地化字符串。
/// </summary>

View File

@ -80,7 +80,7 @@ namespace FineUIPro.Web.JDGL.Check
}
else
{
this.txtWeekNo.Text = "0";
this.txtWeekNo.Text = "1";
//this.txtStartDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
//this.txtEndDate.Text = DateTime.Now.AddDays(6).ToString("yyyy-MM-dd");
}

View File

@ -1,4 +1,5 @@
using BLL;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using System;
using System.Collections.Generic;
@ -496,7 +497,7 @@ namespace FineUIPro.Web.PZHGL.GJSX
int i = 2;
for (int j = 0; j < tb.Rows.Count; j++)
{
string state = tb.Rows[j]["State"].ToString();
string state = tb.Rows[j]["State"].ToString().Trim();
string createDate = string.Empty;
if (tb.Rows[j]["CreateDate"] != DBNull.Value)
{
@ -534,7 +535,23 @@ namespace FineUIPro.Web.PZHGL.GJSX
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["GJSXTypeName"].ToString());
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
var stateCellStyle = cellStyle;
//if (state == "0")
//{
// stateCellStyle.FillForegroundColor = IndexedColors.Green.Index;
// //stateCellStyle.FillBackgroundColor = IndexedColors.Green.Index;
//}
//else if (state == "2" || state == "3")
//{
// //stateCellStyle.FillForegroundColor = IndexedColors.Blue.Index;
// stateCellStyle.FillBackgroundColor = IndexedColors.Blue.Index;
//}
//else if (state == "4")
//{
// //stateCellStyle.FillForegroundColor = IndexedColors.Red.Index;
// stateCellStyle.FillBackgroundColor = IndexedColors.Red.Index;
//}
cell.CellStyle = stateCellStyle;
cell.SetCellValue(tb.Rows[j]["StateStr"].ToString());
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;

View File

@ -192,7 +192,7 @@ namespace FineUIPro.Web
{
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
var allItems = from x in db.GJSX
where x.ProjectId == this.ProjectId && x.State != "1" && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
select x;
StringBuilder sb = new StringBuilder();

View File

@ -11,13 +11,13 @@
<link rel="stylesheet" href="css/project.css" />
<link rel="stylesheet" href="css/swiper-bundle.min.css" />
<script src="lib/jquery.js"></script>
<link rel="stylesheet" href="~/res/css/swiper.min.css">
<link rel="stylesheet" href="~/res/css/swiper.min.css" />
<script src="~/res/lib/flex.js"></script>
<script src="~/res/lib/jquery.js"></script>
<script src="~/res/lib/china.js"></script>
<script src="~/res/lib/echarts.min.js"></script>
<script src="~/res/lib/swiper.min.js"></script>
<link rel="stylesheet" href="~/res/css/company.css">
<link rel="stylesheet" href="~/res/css/company.css?v=20250325" />
</head>
<style>
html, body {
@ -83,58 +83,82 @@
<div class="fx-box">
<div class="yj-bars">
<div class="yj-bar">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,Quawarning %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,Quawarning %>" />
</div>
<div class="num"><%=EarlyWarningCounts %></div>
</div>
<div class="yj-bar">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,MechanicalWarning %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,MechanicalWarning %>" />
</div>
<div class="num"><%=JxyjNum %></div>
</div>
</div>
<div class="wd-box">
<div class="tit"><asp:Literal runat="server" Text="<%$ Resources:Lan,DangerousProject %>" /></div>
<div class="tit">
<asp:Literal runat="server" Text="<%$ Resources:Lan,DangerousProject %>" />
</div>
<div class="inner">
<div class="inner-box">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,ApprovalCompleted %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,ApprovalCompleted %>" />
</div>
<div class="num"><%=CompletedNum %></div>
</div>
<span></span>
<div class="inner-box">
<div class="lab" style="width: 1rem"><asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfTrainees %>" /></div>
<div class="lab" style="width: 1rem">
<asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfTrainees %>" />
</div>
<div class="num"><%=TrainPersonNum %></div>
</div>
<span></span>
<div class="inner-box">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfConstructions %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfConstructions %>" />
</div>
<div class="num"><%=ConstructionNum %></div>
</div>
<span></span>
<div class="inner-box">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfCompletions %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfCompletions %>" />
</div>
<div class="num"><%=FinishedNum %></div>
</div>
</div>
</div>
<div class="wd-box">
<div class="tit"><asp:Literal runat="server" Text="<%$ Resources:Lan,SuperDangerousProject %>" /></div>
<div class="tit">
<asp:Literal runat="server" Text="<%$ Resources:Lan,SuperDangerousProject %>" />
</div>
<div class="inner">
<div class="inner-box">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,ApprovalCompleted %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,ApprovalCompleted %>" />
</div>
<div class="num"><%=SuperCompletedNum %></div>
</div>
<span></span>
<div class="inner-box">
<div class="lab" style="width: 1rem;"><asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfTrainees %>" /></div>
<div class="lab" style="width: 1rem;">
<asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfTrainees %>" />
</div>
<div class="num"><%=SuperTrainPersonNum %></div>
</div>
<span></span>
<div class="inner-box">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfConstructions %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfConstructions %>" />
</div>
<div class="num"><%=SuperConstructionNum %></div>
</div>
<span></span>
<div class="inner-box">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfCompletions %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,NumberOfCompletions %>" />
</div>
<div class="num"><%=SuperFinishedNum %></div>
</div>
</div>
@ -150,11 +174,15 @@
<div class="main">
<div class="total">
<div class="glry">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,QualityTraining %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,QualityTraining %>" />
</div>
<div class="num" id="divCqmsPxNum" runat="server">1307</div>
</div>
<div class="glry">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,ConPlanReviewBatch %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,ConPlanReviewBatch %>" />
</div>
<div class="num" id="div_sgfaSpl" runat="server">5217</div>
</div>
</div>
@ -171,19 +199,27 @@
</div>
<div class="total">
<div class="zyp">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,LoseOneSTemper %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,LoseOneSTemper %>" />
</div>
<div class="num"><%=WrokCount0 %>/<%=AllWrokCount0 %></div>
</div>
<div class="zyp">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,altitude %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,altitude %>" />
</div>
<div class="num"><%=WrokCount1 %>/<%=AllWrokCount1 %></div>
</div>
<div class="zyp">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,altitude %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,altitude %>" />
</div>
<div class="num"><%=WrokCount2 %>/<%=AllWrokCount2 %></div>
</div>
<div class="zyp">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,other %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,other %>" />
</div>
<div class="num"><%=WrokCount3 %>/<%=AllWrokCount3 %></div>
</div>
</div>
@ -206,54 +242,74 @@
<div class="c-site">
<div class="num-box">
<div class="num" id="divSafeWorkTime" runat="server">1656059</div>
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,SafetyLaborHours %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,SafetyLaborHours %>" />
</div>
</div>
<div class="num-box">
<div class="num" id="divSafeWorkTimeMonth" runat="server">0</div>
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_SafeWorkHoursThisMonth %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_SafeWorkHoursThisMonth %>" />
</div>
</div>
<div class="num-box">
<div class="num" id="divSafePersonNum" runat="server">1161</div>
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_TotalSafeTrainingPersonnel %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_TotalSafeTrainingPersonnel %>" />
</div>
</div>
<div class="num-box">
<div class="num" id="divSafeManagePersonNum" runat="server">3</div>
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_SafeManagementPersonnel %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_SafeManagementPersonnel %>" />
</div>
</div>
<div class="num-box">
<div class="num" runat="server" id="divWS">4564</div>
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_NearMissIncidents %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_NearMissIncidents %>" />
</div>
</div>
</div>
<div class="aqyh">
<div class="an-boxs">
<div><asp:Literal runat="server" Text="<%$ Resources:Lan,RectificationData %>" /></div>
<div>
<asp:Literal runat="server" Text="<%$ Resources:Lan,RectificationData %>" />
</div>
<div>
<div class="dot">
<div class="dot-c" style="background: #4F97F9;"></div>
</div>
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_TotalRectificationData %>" /></p>
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_TotalRectificationData %>" />
</p>
<p style="color: #4F97F9;" runat="server" id="div_zgsj">265</p>
</div>
<div>
<div class="dot">
<div class="dot-c" style="background: #12CDA2;"></div>
</div>
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,completed %>" /></p>
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,completed %>" />
</p>
<p style="color: #12CDA2;" runat="server" id="div_zgywc">265</p>
</div>
<div>
<div class="dot">
<div class="dot-c" style="background: #FF7474;"></div>
</div>
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_UncompletedRectification %>" /></p>
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_UncompletedRectification %>" />
</p>
<p style="color: #FF7474;" runat="server" id="div_zgwwc">12</p>
</div>
<div>
<div class="dot">
<div class="dot-c" style="background: #FFD130;"></div>
</div>
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_RectificationRate %>" /></p>
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_RectificationRate %>" />
</p>
<p style="color: #FFD130;" runat="server" id="div_zgwcl">100%</p>
</div>
</div>
@ -290,28 +346,57 @@
<div class="ht-boxs">
<div class="ht-box">
<div class="label"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ContractDuration %>" /></div>
<div class="label">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ContractDuration %>" />
</div>
<div class="value" id="divProjectDays" runat="server">0<span>天</span></div>
</div>
<div class="ht-box">
<div class="label"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ContractExpiryDate %>" /></div>
<div class="label">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ContractExpiryDate %>" />
</div>
<div class="value" id="divEndDate" runat="server"></div>
</div>
<div class="ht-box">
<div class="label"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ContractRemaining %>" /></div>
<div class="label">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ContractRemaining %>" />
</div>
<div class="value" id="divRemainingDays" runat="server">0<span>天</span></div>
</div>
</div>
</div>
<div class="site aqtj">
<div class="gjl"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_KeyMattersTimelinessRate %>" /> <span><%=gjsxRate %></span></div>
<div class="site aqtj jdtj">
<div class="gjl">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_KeyMattersTimelinessRate %>" />
<span><%=gjsxRate %></span>
</div>
<div class="label">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ProgressStatistics %>" />
</div>
<div class="main">
<div class="jdtj-tab">
<div class="jdtj-btn jdtj-btn-act" id="span_jdtj" onclick="jdtjOnclick(0)" style="cursor: pointer">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ProgressStatistics %>" />
</div>
<div class="jdtj-btn" onclick="jdtjOnclick(1)" id="span_weekJdtj" style="cursor: pointer">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_WeekPlanDone %>" />
</div>
<div class="jdtj-btn" onclick="jdtjOnclick(2)" id="span_monthJdtj" style="cursor: pointer">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_MonthPlanDone %>" />
</div>
</div>
<%-- <div id="aq-map"></div>--%>
<%--<div id='left_one' style="width: 100%; height: 100%;"></div>--%>
<div id='left_one' style="width: 100%; height: 100%;"></div>
<div id='jdtj-content' class="table" style="width: 100%; height: 100%; display: none;">
<div class="row" id="div_jdtjHead">
<%=WeekJdtjHead %>
</div>
<div class="t-body" id="div_jdtjList">
<%=MonthJdtjHtml %>
</div>
</div>
</div>
</div>
</div>
@ -323,19 +408,27 @@
<div class="main">
<div class="total">
<div class="zg" style="cursor: pointer;" runat="server" onclick="showGztm(0)" id="div_Gzgjsx">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_KeyMatters %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_KeyMatters %>" />
</div>
<div class="num" id="div_gjsx" runat="server">0</div>
</div>
<div class="zg" style="cursor: pointer" runat="server" onclick="showGztm(1)" id="div_Gzdbsx">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PendingMatters %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PendingMatters %>" />
</div>
<div class="num" id="div_dbsx" runat="server">0</div>
</div>
<div class="zg" style="cursor: pointer" runat="server" onclick="showGztm(2)" id="div_Gzgrlc">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PersonalProcess %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PersonalProcess %>" />
</div>
<div class="num" id="div_grlc" runat="server">0</div>
</div>
<div class="zg">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_CompletedTasks %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_CompletedTasks %>" />
</div>
<div class="num" id="div_ybrw" runat="server">0</div>
</div>
</div>
@ -362,15 +455,21 @@
</div>
<div class="total">
<div class="rs">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,CurrentPersonnel %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,CurrentPersonnel %>" />
</div>
<div class="num" id="div_xcrs" runat="server">0</div>
</div>
<div class="rs">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_TotalWorkers %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_TotalWorkers %>" />
</div>
<div class="num" runat="server" id="div_zyxcrs">0</div>
</div>
<div class="rs">
<div class="lab"><asp:Literal runat="server" Text="<%$ Resources:Lan,managersCount %>" /></div>
<div class="lab">
<asp:Literal runat="server" Text="<%$ Resources:Lan,managersCount %>" />
</div>
<div class="num" runat="server" id="div_glxcrs">0</div>
</div>
</div>
@ -382,24 +481,47 @@
</div>
<div class="main" style="padding: .1875rem .25rem;">
<div class="cl-tab">
<div class="cl-btn cl-btn-act" id="span_gdcl" onclick="clOnclick(0)" style="cursor:pointer"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_MaterialLabel %>" /></div>
<div class="cl-btn" onclick="clOnclick(1)" id="span_sbcl" style="cursor:pointer"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PipeMaterials %>" /></div>
<div class="cl-btn cl-btn-act" id="span_gdcl" onclick="clOnclick(0)" style="cursor: pointer">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_MaterialLabel %>" />
</div>
<div class="cl-btn" onclick="clOnclick(1)" id="span_sbcl" style="cursor: pointer">
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PipeMaterials %>" />
</div>
</div>
<div class="table">
<div class="row" id="div_cldhHead">
<div class="th-p"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_MaterialCategory %>" /></div>
<div class="th-p"><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_DesignQuantity %>" /></div>
<div class="th-p">
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PurchaseQuantity %>" /></p>
<p><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PurchaseQuantity %>" /></span><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_Percentage %>" /></span></p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_MaterialCategory %>" />
</div>
<div class="th-p">
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ArrivalQuantity %>" /></p>
<p><span><asp:Literal runat="server" Text="<%$ Resources:Lan,HaveArrived %>" /></span><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_Percentage %>" /></span></p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_DesignQuantity %>" />
</div>
<div class="th-p">
<p><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_IssueQuantity %>" /></p>
<p><span><asp:Literal runat="server" Text="<%$ Resources:Lan,MaterialReceived %>" /></span><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_Percentage %>" /></span></p>
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PurchaseQuantity %>" />
</p>
<p>
<span>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_PurchaseQuantity %>" /></span><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_Percentage %>" /></span>
</p>
</div>
<div class="th-p">
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_ArrivalQuantity %>" />
</p>
<p>
<span>
<asp:Literal runat="server" Text="<%$ Resources:Lan,HaveArrived %>" /></span><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_Percentage %>" /></span>
</p>
</div>
<div class="th-p">
<p>
<asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_IssueQuantity %>" />
</p>
<p>
<span>
<asp:Literal runat="server" Text="<%$ Resources:Lan,MaterialReceived %>" /></span><span><asp:Literal runat="server" Text="<%$ Resources:Lan,mainProject2_Percentage %>" /></span>
</p>
</div>
</div>
<div class="t-body" id="div_cldhList">
@ -557,7 +679,35 @@
</html>
<script src="lib/swiper-bundle.min.js"></script>
<script src="lib/echarts.min.js"></script>
<script>
function jdtjOnclick(objval) {
if (objval == 1) {
$("#span_jdtj").removeClass("jdtj-btn-act");
$("#span_weekJdtj").addClass("jdtj-btn-act");
$("#span_monthJdtj").removeClass("jdtj-btn-act");
$("#jdtj-content").show();
$("#left_one").hide();
$("#div_jdtjHead").html('<%=WeekJdtjHead%>');
$("#div_jdtjList").html('<%=WeekJdtjHtml%>');
} else if (objval == 2) {
$("#span_jdtj").removeClass("jdtj-btn-act");
$("#span_weekJdtj").removeClass("jdtj-btn-act");
$("#span_monthJdtj").addClass("jdtj-btn-act");
$("#jdtj-content").show();
$("#left_one").hide();
$("#div_jdtjHead").html('<%=MonthJdtjHead%>');
$("#div_jdtjList").html('<%=MonthJdtjHtml%>');
} else {
$("#span_jdtj").addClass("jdtj-btn-act");
$("#span_weekJdtj").removeClass("jdtj-btn-act");
$("#span_monthJdtj").removeClass("jdtj-btn-act");
$("#jdtj-content").hide();
$("#left_one").show();
}
}
</script>
<script>
function clOnclick(objval) {

View File

@ -107,6 +107,8 @@ namespace FineUIPro.Web.common
var treeTask = GetTreeAsync();
var personTask = GetPersonAsync();
var weekJdtjTask = GetWeekJDAsync();
var monthJdtjTask = GetMonthJDAsync();
var otherTasks = new List<Task>
{
BindSafetyStatisticsAsync(), // 安全统计模块
@ -150,6 +152,9 @@ namespace FineUIPro.Web.common
Tree = await treeTask;
Person = await personTask;
WeekJdtjHtml = await weekJdtjTask;
MonthJdtjHtml = await monthJdtjTask;
}
}
@ -466,7 +471,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetCompletedNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
return result;
});
@ -478,7 +484,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetConstructionNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetConstructionNum(ProjectId);
return result;
});
@ -489,7 +496,8 @@ namespace FineUIPro.Web.common
/// </summary>
protected async Task<int> getEarlyWarningCounts()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
int allCount = 0;
var getPersonQualitys = from x in Funs.DB.QualityAudit_PersonQuality
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
@ -507,7 +515,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetFinishedNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
return result;
});
@ -519,7 +528,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetJxyjNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
int result = 0;
//机具报验的到期提醒和过期提醒记录数加一起
////机具报验的到期提醒数
@ -539,7 +549,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetSuperCompletedNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
return result;
});
@ -551,7 +562,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetSuperConstructionNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetSuperConstructionNum(ProjectId);
return result;
});
@ -563,7 +575,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetSuperFinishedNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
return result;
});
@ -575,7 +588,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetSuperTrainPersonNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetSuperTrainPersonNum(ProjectId);
return result;
});
@ -587,7 +601,8 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> GetTrainPersonNum()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = Project_HSSEData_HSSEService.GetTrainPersonNum(ProjectId);
return result;
});
@ -675,7 +690,7 @@ namespace FineUIPro.Web.common
var WrokCount1 = getWrokCount1();
var WrokCount2 = getWrokCount2();
var WrokCount3 = getWrokCount3();
await Task.WhenAll( AllWrokCount0, AllWrokCount1, AllWrokCount2, AllWrokCount3, WrokCount0, WrokCount1, WrokCount2, WrokCount3);
await Task.WhenAll(AllWrokCount0, AllWrokCount1, AllWrokCount2, AllWrokCount3, WrokCount0, WrokCount1, WrokCount2, WrokCount3);
this.AllWrokCount0 = await AllWrokCount0;
this.AllWrokCount1 = await AllWrokCount1;
this.AllWrokCount2 = await AllWrokCount2;
@ -695,7 +710,7 @@ namespace FineUIPro.Web.common
select new LicenseDto
{
ProjectId= lm.ProjectId,
ProjectId = lm.ProjectId,
LicenseTypeName = licenseType.LicenseTypeName ?? "",
WorkStatesStr = lm.WorkStates == "1" ? "待开工" :
lm.WorkStates == "2" ? "作业中" :
@ -713,7 +728,8 @@ namespace FineUIPro.Web.common
protected async Task<int> getALLWrokCount0()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证").ToList().Count;
return result;
});
@ -721,7 +737,8 @@ namespace FineUIPro.Web.common
protected async Task<int> getALLWrokCount1()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证").ToList().Count;
return result;
});
@ -729,7 +746,8 @@ namespace FineUIPro.Web.common
protected async Task<int> getALLWrokCount2()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证").ToList().Count;
return result;
});
@ -737,7 +755,8 @@ namespace FineUIPro.Web.common
protected async Task<int> getALLWrokCount3()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证").ToList().Count;
return result;
@ -755,28 +774,32 @@ namespace FineUIPro.Web.common
/// <returns></returns>
protected async Task<int> getWrokCount0()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
});
}
protected async Task<int> getWrokCount1()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
});
}
protected async Task<int> getWrokCount2()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
});
}
protected async Task<int> getWrokCount3()
{
return await Task.Run(() => {
return await Task.Run(() =>
{
var result = GetLicenseQuery().Where(x => x.ProjectId == ProjectId
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
@ -1118,6 +1141,7 @@ namespace FineUIPro.Web.common
}
});
}
protected async Task<string> GetTreeAsync()
{
return await Task.Run(() =>
@ -1159,6 +1183,134 @@ namespace FineUIPro.Web.common
#endregion 线
#region
protected string WeekJdtjHtml;
//protected string WeekJdtjHead = "<div class=\"th-p\" >序号</div><div class=\"th-p\" >单位</div><div class=\"th-p\"><p>上周完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
protected string WeekJdtjHead = "<div class=\"th-p\" >单位</div><div class=\"th-p\"><p>上周完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
protected string MonthJdtjHtml;
//protected string MonthJdtjHead = "<div class=\"th-p\">序号</div><div class=\"th-p\">单位</div><div class=\"th-p\"><p>上月完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
protected string MonthJdtjHead = "<div class=\"th-p\">单位</div><div class=\"th-p\"><p>上月完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div><div class=\"th-p\"><p>累计完成情况</p><p><span>计划项</span><span>完成项</span><span>百分比</span></p></div>";
/// <summary>
/// 周进度完成情况
/// </summary>
/// <returns></returns>
protected async Task<string> GetWeekJDAsync()
{
return await Task.Run(() =>
{
string weekGridHtml = string.Empty;
//获取当前时间所在周信息
var lastWeek = WeekPlanService.GetLastWeekPlan(this.CurrUser.LoginProjectId);
////根据当前时间获取上一个周计划信息
//var lastWeekItem = WeekItemService.GetWeekItemByDateNow(this.CurrUser.LoginProjectId);
if (lastWeek != null)
{
Model.SGGLDB db = Funs.DB;
//1、获取本项目周进度计划中所有责任单位Id
var units = (from x in db.JDGL_WeekPlan
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate <= lastWeek.EndDate
orderby x.UnitId
select new { x.UnitId, y.UnitName }).Distinct().ToList();
//2、获取当前项目指定周所有计划
var allWeekPlans = (from x in db.JDGL_WeekPlan
where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == lastWeek.WeekNo
orderby x.UnitId
select x).ToList();
//3、获取当前项目所有周计划
var allPlans = (from x in db.JDGL_WeekPlan
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate <= lastWeek.EndDate
orderby x.UnitId
select x).ToList();
StringBuilder sb = new StringBuilder();
int index = 1;
foreach (var unit in units)
{
double weekPlanNum = allWeekPlans.Where(x => x.UnitId == unit.UnitId).Count();
double weekPlanOkNum = allWeekPlans.Where(x => x.UnitId == unit.UnitId && x.IsOK == true).Count();
double weekRate = weekPlanNum > 0 ? Math.Round((weekPlanOkNum / weekPlanNum) * 100, 2) : 0;
double allWeekPlanNum = allPlans.Where(x => x.UnitId == unit.UnitId).Count();
double allWeekPlanOkNum = allPlans.Where(x => x.UnitId == unit.UnitId && x.IsOK == true).Count();
double allWeekRate = allWeekPlanNum > 0 ? Math.Round((allWeekPlanOkNum / allWeekPlanNum) * 100, 2) : 0;
sb.Append("<div class=\"row\">");
//sb.Append($"<div class=\"tr\" >{index}</div>");
sb.Append($"<div class=\"tr\" >{unit.UnitName}</div>");
sb.Append($"<div class=\"tr\" ><p><span>{weekPlanNum}</span><span>{weekPlanOkNum}</span><span>{weekRate}%</span></p></div>");
sb.Append($"<div class=\"tr\" ><p><span>{allWeekPlanNum}</span><span>{allWeekPlanOkNum}</span><span>{allWeekRate}%</span></p></div>");
sb.Append("</div>");
index++;
}
weekGridHtml = sb.ToString();
}
return weekGridHtml;
});
}
/// <summary>
/// 月进度完成情况
/// </summary>
/// <returns></returns>
protected async Task<string> GetMonthJDAsync()
{
return await Task.Run(() =>
{
string monthGridHtml = string.Empty;
//统计月份信息
DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01");
if (DateTime.Now.Day < 26)
{
months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.AddMonths(-1).Month.ToString() + "-01");
}
Model.SGGLDB db = Funs.DB;
//1、获取本项目月进度计划中所有责任单位Id
var units = (from x in db.JDGL_MonthPlan
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.CurrUser.LoginProjectId && x.Months <= months
orderby x.UnitId
select new { x.UnitId, y.UnitName }).Distinct().ToList();
//2、获取当前项目指定月所有计划
var allMonthPlans = (from x in db.JDGL_MonthPlan
where x.ProjectId == this.CurrUser.LoginProjectId && x.Months == months
orderby x.UnitId
select x).ToList();
//3、获取当前项目所有月计划
var allPlans = (from x in db.JDGL_MonthPlan
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.CurrUser.LoginProjectId && x.Months <= months
orderby x.UnitId
select x).ToList();
StringBuilder sb = new StringBuilder();
int index = 1;
foreach (var unit in units)
{
double monthPlanNum = allMonthPlans.Where(x => x.UnitId == unit.UnitId).Count();
double monthPlanOkNum = allMonthPlans.Where(x => x.UnitId == unit.UnitId && x.RealDate != null).Count();
double monthRate = monthPlanNum > 0 ? Math.Round((monthPlanOkNum / monthPlanNum) * 100, 2) : 0;
double allMonthPlanNum = allPlans.Where(x => x.UnitId == unit.UnitId).Count();
double allMonthPlanOkNum = allPlans.Where(x => x.UnitId == unit.UnitId && x.RealDate != null).Count();
double allMonthRate = allMonthPlanNum > 0 ? Math.Round((allMonthPlanOkNum / allMonthPlanNum) * 100, 2) : 0;
sb.Append("<div class=\"row\">");
//sb.Append($"<div class=\"tr\" >{index}</div>");
sb.Append($"<div class=\"tr\" >{unit.UnitName}</div>");
sb.Append($"<div class=\"tr\" ><p><span>{monthPlanNum}</span><span>{monthPlanOkNum}</span><span>{monthRate}%</span></p></div>");
sb.Append($"<div class=\"tr\" ><p><span>{allMonthPlanNum}</span><span>{allMonthPlanOkNum}</span><span>{allMonthRate}%</span></p></div>");
sb.Append("</div>");
index++;
}
monthGridHtml = sb.ToString();
return monthGridHtml;
});
}
#endregion
#region
protected string Person
@ -1286,7 +1438,7 @@ namespace FineUIPro.Web.common
select new
{
x.LicenseManagerCode,
WorkAreaName=area.UnitWorkName,
WorkAreaName = area.UnitWorkName,
w.LicenseTypeName,
x.IsHighRisk,
unit.ShortUnitName

File diff suppressed because it is too large Load Diff