事项看板展示优化

This commit is contained in:
夏菊 2025-03-24 16:57:46 +08:00
parent e863a39cde
commit 2c74bec311
7 changed files with 149 additions and 58 deletions

View File

@ -0,0 +1,79 @@
--
ALTER PROCEDURE [dbo].[Sp_GJSX_getlist]
-- Add the parameters for the stored procedure here
@ProjectId nvarchar(max),
@sql_where varchar(max)
AS
BEGIN
IF EXISTS(select * from tempdb..sysobjects where id=object_id('tempdb..#GJSX_List'))
BEGIN
DROP TABLE #GJSX_List
END
DECLARE @Sql NVARCHAR(max)
select * into #GJSX_List
from(
select
a.GJSXID
,a.ProjectId
,a.detail
,b.username
,a.createDate
,User_ReceiveID=STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.User_ReceiveID + ',') >0 FOR XML PATH('')), 1, 1,'')
, CNProfessionalId=STUFF(( SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%',',' +a.CNProfessional_ID + ',') >0 FOR XML PATH('')), 1, 1,'')
,Base_Project.ProjectName
,Base_Unit.unitname
,a.CloseDate
--,a.state
--,case a.state when 2 then '正在进行' when 3 then '正在进行' when 0 then '已关闭' when 1 then '编辑中' end as stateStr
,case a.state when 2 then (case when GETDATE()>a.CompleteDate then 4 else a.state end) when 3 then (case when GETDATE()>a.CompleteDate then 4 else a.state end) when 0 then a.state when 1 then a.state end as state
,case a.state when 2 then (case when GETDATE()>a.CompleteDate then '已超期' else '正在进行' end) when 3 then (case when GETDATE()>a.CompleteDate then '已超期' else '正在进行' end) when 0 then '已关闭' when 1 then '编辑中' end as stateStr
,QuestionTypeName=STUFF(( SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%',',' +a.QuestionTypeID + ',') >0 FOR XML PATH('')), 1, 1,'')
,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
,a.IsManypeople
,a.CompleteDate
,a.AttachUrl
,user_Acceptance =STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.user_Acceptance + ',') >0 FOR XML PATH('')), 1, 1,'')
from GJSX as a left join Sys_User as b on a.UserId=b.UserId
left join [dbo].[Base_Project] on a.ProjectId =Base_Project.ProjectId
left join [dbo].[Base_Unit] on a.UnitId=Base_Unit.UnitId
--left join [dbo].[Base_QuestionType] on a.QuestionTypeID=Base_QuestionType.QuestionTypeID
--left join[dbo].[Base_GJSXType] on a.GJSXTypeID = Base_GJSXType.GJSXTypeID
where a.ProjectId=@ProjectId
) as a
set @Sql ='select * from #GJSX_List where 1=1 ' +@sql_where +' order by state desc,GJSXID desc'
exec(@Sql)
--select
--a.GJSXID
--,a.ProjectId
--,a.detail
--,b.username
--,a.createDate
--,User_ReceiveID=STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.User_ReceiveID + ',') >0 FOR XML PATH('')), 1, 1,'')
--, CNProfessionalId=STUFF(( SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%',',' +a.CNProfessional_ID + ',') >0 FOR XML PATH('')), 1, 1,'')
--,Base_Project.ProjectName
--,Base_Unit.unitname
--,a.CloseDate
--,case a.state when 2 then '正在进行' when 3 then '待办' when 0 then '已关闭' when 1 then '开放' end as state
--,QuestionTypeName=STUFF(( SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%',',' +a.QuestionTypeID + ',') >0 FOR XML PATH('')), 1, 1,'')
--,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
--,a.IsManypeople
--,a.CompleteDate
--,a.AttachUrl
--,user_Acceptance =STUFF(( SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%',',' +a.user_Acceptance + ',') >0 FOR XML PATH('')), 1, 1,'')
--from GJSX as a left join Sys_User as b on a.UserId=b.UserId
--left join [dbo].[Base_Project] on a.ProjectId =Base_Project.ProjectId
--left join [dbo].[Base_Unit] on a.UnitId=Base_Unit.UnitId
----left join [dbo].[Base_QuestionType] on a.QuestionTypeID=Base_QuestionType.QuestionTypeID
----left join[dbo].[Base_GJSXType] on a.GJSXTypeID = Base_GJSXType.GJSXTypeID
--where a.ProjectId=@ProjectId
END
GO

View File

@ -39,7 +39,7 @@
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="员工信息" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="GJSXID" EnableColumnLines="true"
DataIDField="GJSXID" AllowSorting="true" SortField="GJSXID"
DataIDField="GJSXID" AllowSorting="true" SortField="state"
SortDirection="desc" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true"
PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true"
OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
@ -97,9 +97,9 @@
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<%--<f:RenderField Width="100px" ColumnID="GJSXID" DataField="GJSXID" SortField="GJSXID" Hidden="true"
FieldType="String" HeaderText="事项ID" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>--%>
<f:RenderField Width="100px" ColumnID="GJSXID" DataField="GJSXID" SortField="GJSXID"
FieldType="String" HeaderText="编号" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="QuestionTypeName" DataField="QuestionTypeName"
FieldType="String" HeaderText="紧急程度" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>

View File

@ -79,21 +79,27 @@ namespace FineUIPro.Web.PZHGL.GJSX
if (state == "0")
{
//Grid1.Rows[i].RowCssClass = "green";
Grid1.Rows[i].CellCssClasses[5] = "green";
Grid1.Rows[i].CellCssClasses[6] = "green";
}
else if (state == "2" || state == "3")
{
if (DateTime.Now > dtCompleteDate.AddDays(1))
{
//Grid1.Rows[i].RowCssClass = "red";
Grid1.Rows[i].CellCssClasses[5] = "red";
//Grid1.Rows[i].Cells[5].Text = "red";
}
else
{
//Grid1.Rows[i].RowCssClass = "blue";
Grid1.Rows[i].CellCssClasses[5] = "blue";
}
Grid1.Rows[i].CellCssClasses[6] = "blue";
//if (DateTime.Now > dtCompleteDate.AddDays(1))
//{
// //Grid1.Rows[i].RowCssClass = "red";
// Grid1.Rows[i].CellCssClasses[6] = "red";
// //var ssss = Grid1.Rows[i].;
// //Grid1.Rows[i].Cells[6].Text = "超期";
//}
//else
//{
// //Grid1.Rows[i].RowCssClass = "blue";
// Grid1.Rows[i].CellCssClasses[6] = "blue";
//}
}
else if (state == "4")
{
Grid1.Rows[i].CellCssClasses[6] = "red";
}
}
}
@ -125,14 +131,14 @@ namespace FineUIPro.Web.PZHGL.GJSX
int i = 0;
foreach (var item in stateList)
{
if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null && item != "4")
{
strSql += $" OR state = '{item}' ";
}
else if (item == "4")
{
strSql += " OR (state <> '0' and getdate() > DATEADD(day, 1, CompleteDate)) ";
}
//if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null && item != "4")
//{
strSql += $" OR state = '{item}' ";
//}
//else if (item == "4")
//{
// strSql += " OR (state <> '0' and getdate() > DATEADD(day, 1, CompleteDate)) ";
//}
i++;
}
strSql += ")";
@ -527,41 +533,44 @@ namespace FineUIPro.Web.PZHGL.GJSX
cell.SetCellValue((i - 1).ToString());
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["QuestionTypeName"].ToString());
cell.SetCellValue(tb.Rows[j]["GJSXID"].ToString());
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["CNProfessionalID"].ToString());
cell.SetCellValue(tb.Rows[j]["QuestionTypeName"].ToString());
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["Detail"].ToString());
cell.SetCellValue(tb.Rows[j]["CNProfessionalID"].ToString());
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["GJSXTypeName"].ToString());
cell.SetCellValue(tb.Rows[j]["Detail"].ToString());
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["StateStr"].ToString());
cell.SetCellValue(tb.Rows[j]["GJSXTypeName"].ToString());
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(createDate);
cell.SetCellValue(tb.Rows[j]["StateStr"].ToString());
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(completeDate);
cell.SetCellValue(createDate);
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(closeDate);
cell.SetCellValue(completeDate);
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["unitname"].ToString());
cell.SetCellValue(closeDate);
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["username"].ToString());
cell.SetCellValue(tb.Rows[j]["unitname"].ToString());
cell = row.CreateCell(11);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["User_Acceptance"].ToString());
cell.SetCellValue(tb.Rows[j]["username"].ToString());
cell = row.CreateCell(12);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["User_Acceptance"].ToString());
cell = row.CreateCell(13);
cell.CellStyle = cellStyle;
cell.SetCellValue(tb.Rows[j]["User_ReceiveID"].ToString());
//cell = row.CreateCell(13);
//cell = row.CreateCell(14);
//cell.CellStyle = cellStyle;
//cell.SetCellValue("");
i++;

View File

@ -33,7 +33,7 @@
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="关键事项" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="GJSXID" EnableColumnLines="true"
DataIDField="GJSXID" AllowSorting="true" SortField="GJSXID"
DataIDField="GJSXID" AllowSorting="true" SortField="state2"
SortDirection="desc" OnSort="Grid1_Sort" AllowPaging="true" IsDatabasePaging="true"
PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true"
OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
@ -85,9 +85,9 @@
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<%--<f:RenderField Width="120px" ColumnID="GJSXID" DataField="GJSXID" SortField="GJSXID"
FieldType="String" HeaderText="事项ID" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>--%>
<f:RenderField Width="120px" ColumnID="GJSXID" DataField="GJSXID" SortField="GJSXID"
FieldType="String" HeaderText="编号" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="QuestionTypeName" DataField="QuestionTypeName"
FieldType="String" HeaderText="紧急程度" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>

View File

@ -62,8 +62,11 @@ namespace FineUIPro.Web.PZHGL.GJSX
a.GJSXID,a.ProjectId,a.detail,a.Userid,b.username,a.createDate
,User_ReceiveID = STUFF((SELECT ',' + p2.UserName FROM dbo.Sys_User as p2 where PATINDEX('%,' + RTRIM(p2.UserId) + ',%', ',' + a.User_ReceiveID + ',') > 0 FOR XML PATH('')), 1, 1,'')
, CNProfessionalId = STUFF((SELECT ',' + Base_CNProfessional.ProfessionalName FROM dbo.Base_CNProfessional where PATINDEX('%,' + RTRIM(Base_CNProfessional.CNProfessionalId) + ',%', ',' + a.CNProfessional_ID + ',') > 0 FOR XML PATH('')), 1, 1,'')
,Base_Project.ProjectName,Base_Unit.unitname,a.CloseDate,a.state
,case a.state when 2 then '' when 3 then '' when 0 then '' when 1 then '' end as stateStr
,Base_Project.ProjectName,Base_Unit.unitname,a.CloseDate
,case a.state when 2 then (case when GETDATE()>a.CompleteDate then 4 else a.state end) when 3 then (case when GETDATE()>a.CompleteDate then 4 else a.state end) when 0 then a.state when 1 then a.state end as state2
,case a.state when 2 then (case when GETDATE()>a.CompleteDate then '' else '' end) when 3 then (case when GETDATE()>a.CompleteDate then '' else '' end) when 0 then '' when 1 then '' end as stateStr
--,a.state
--,case a.state when 2 then '' when 3 then '' when 0 then '' when 1 then '' end as stateStr
,QuestionTypeName = STUFF((SELECT ',' + Base_QuestionType.QuestionTypeName FROM dbo.Base_QuestionType where PATINDEX('%,' + RTRIM(Base_QuestionType.QuestionTypeID) + ',%', ',' + a.QuestionTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
,GJSXTypeName = STUFF((SELECT ',' + Base_GJSXType.GJSXTypeName FROM dbo.Base_GJSXType where PATINDEX('%,' + RTRIM(Base_GJSXType.GJSXTypeID) + ',%', ',' + a.GJSXTypeID + ',') > 0 FOR XML PATH('')), 1, 1,'')
,a.IsManypeople,a.CompleteDate,a.AttachUrl
@ -108,7 +111,7 @@ namespace FineUIPro.Web.PZHGL.GJSX
strSql += " AND a.CsUsers like'%" + uid + "%' ";
}
strSql += " order by a.GJSXID desc ";
strSql += " order by state2 desc,a.GJSXID asc ";
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
@ -129,20 +132,20 @@ namespace FineUIPro.Web.PZHGL.GJSX
if (state == "0")
{
//Grid1.Rows[i].RowCssClass = "green";
Grid1.Rows[i].CellCssClasses[5] = "green";
Grid1.Rows[i].CellCssClasses[6] = "green";
}
else if (state == "2" || state == "3")
{
if (DateTime.Now > dtCompleteDate.AddDays(1))
{
//Grid1.Rows[i].RowCssClass = "red";
Grid1.Rows[i].CellCssClasses[5] = "red";
Grid1.Rows[i].CellCssClasses[6] = "red";
//Grid1.Rows[i].Cells[5].Text = "red";
}
else
{
//Grid1.Rows[i].RowCssClass = "blue";
Grid1.Rows[i].CellCssClasses[5] = "blue";
Grid1.Rows[i].CellCssClasses[6] = "blue";
}
}
}

View File

@ -67,7 +67,7 @@ namespace FineUIPro.Web
businessColumn.title = "关键事项关闭率";
var allItems = from x in db.GJSX
where x.ProjectId == this.CurrUser.LoginProjectId
where x.ProjectId == this.CurrUser.LoginProjectId && x.State != "1"
orderby x.GJSXID
select x;
int closeNum = allItems.Where(x => x.State == "0").Count();
@ -104,7 +104,7 @@ namespace FineUIPro.Web
businessColumn.xFontNum = 8;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
select x;
Model.SingleSerie s = new Model.SingleSerie();
Model.SingleSerie s2 = new Model.SingleSerie();
@ -143,11 +143,11 @@ namespace FineUIPro.Web
businessColumn.xFontNum = 5;
//var userIds = BLL.GJSXService.GetGJSXUserList(this.ProjectId);
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
select x;
//按照未关闭数取前10
var groupedUser = (from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId && x.State != "0"
where x.ProjectId == this.ProjectId && x.State != "0" && x.State != "1"
select x).GroupBy(p => p.User_Acceptance)
.Select(g => new
{
@ -193,7 +193,7 @@ namespace FineUIPro.Web
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
where x.ProjectId == this.ProjectId && x.State != "1" && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
select x;
StringBuilder sb = new StringBuilder();
sb.Append("<table id=\"myTable\" class=\"myTableClass\" > ");
@ -264,7 +264,7 @@ namespace FineUIPro.Web
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(7)
select x;
@ -300,7 +300,7 @@ namespace FineUIPro.Web
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(7)
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(14)
select x;
@ -336,7 +336,7 @@ namespace FineUIPro.Web
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(14)
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(21)
select x;
@ -372,7 +372,7 @@ namespace FineUIPro.Web
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(21)
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(30)
select x;
@ -408,7 +408,7 @@ namespace FineUIPro.Web
Model.SGGLDB db = Funs.DB;
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(30)
select x;
Model.SingleSerie s = new Model.SingleSerie();
@ -455,7 +455,7 @@ namespace FineUIPro.Web
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
//全平台
var overallItems = from x in Funs.DB.GJSX
where (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
where (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate) && x.State != "1"
select new
{
x.GJSXTypeId,
@ -463,7 +463,7 @@ namespace FineUIPro.Web
};
//本项目
var allItems = from x in Funs.DB.GJSX
where x.ProjectId == this.ProjectId
where x.ProjectId == this.ProjectId && x.State != "1"
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
select new
{