新增获取流程信息

master
xiaochanghai 10 months ago
parent 5506d8d753
commit 99788091f4
  1. 3223
      Model/Tiobon.Web.pdm
  2. 14
      Tiobon.Core.Api/Controllers/CommonController.cs
  3. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 9
      Tiobon.Core.IServices/ICommonServices.cs
  5. 74
      Tiobon.Core.Model/ViewModels/Menu.cs
  6. 339
      Tiobon.Core.Services/CommonServices.cs

File diff suppressed because it is too large Load Diff

@ -113,4 +113,18 @@ public class CommonController : BaseApiController
return await _commonServices.ImportExcelAsync(file, menuName, langId, userId);
}
#endregion
#region 获取流程信息
/// <summary>
/// 获取流程信息
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
[HttpPost, Route("GetFlowInfo")]
public async Task<ServiceResult<FlowReturn>> GetFlowInfoAsync([FromBody] FlowParam param)
{
return await _commonServices.GetFlowInfoAsync(param);
}
#endregion
}

@ -297,6 +297,13 @@
<param name="langId">多语</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.CommonController.GetFlowInfoAsync(Tiobon.Core.Model.FlowParam)">
<summary>
获取流程信息
</summary>
<param name="param"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Controllers.DbFirstController.#ctor(SqlSugar.ISqlSugarClient,Microsoft.AspNetCore.Hosting.IWebHostEnvironment)">
<summary>
构造函数

@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Tiobon.Core.Common;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
@ -17,12 +16,12 @@ public interface ICommonServices : IBaseServices<RootEntityTkey<int>>
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
Task<ServiceResult<MenuReturn>> GetMenuAsync([FromBody] MenuParam param);
Task<ServiceResult<MenuReturn>> GetMenuAsync(MenuParam param);
Task<ServiceResult<ModuleReturn>> GetModuleInfoAsync([FromBody] ModuleParam param);
Task<ServiceResult<ModuleReturn>> GetModuleInfoAsync(ModuleParam param);
Task<ServiceResult<ModuleESSReturn>> GetESSModuleInfoAsync([FromBody] ModuleParam param);
Task<ServiceResult<ModuleESSReturn>> GetESSModuleInfoAsync(ModuleParam param);
Task<ServiceResult<CommonSelect>> GetSelectAsync(string type, string keyWords);
@ -31,4 +30,6 @@ public interface ICommonServices : IBaseServices<RootEntityTkey<int>>
Task<ServiceResult<QueryExportReturn>> DownImportTemplateAsync(QueryExport param);
Task<ServiceResult<QueryExportReturn>> ImportExcelAsync(IFormFile file, string menuName, int langId, int userId);
Task<ServiceResult<FlowReturn>> GetFlowInfoAsync(FlowParam param);
}

@ -1,4 +1,5 @@
using SqlSugar;
using System.Data;
using SqlSugar;
namespace Tiobon.Core.Model;
@ -75,7 +76,7 @@ public class Toolbar
public string fnType { get; set; }
public string position { get; set; }
public string icon { get; set; }
public bool display { get; set; }
public bool display { get; set; } = true;
}
public class JM_TableColumnT1
{
@ -186,3 +187,72 @@ public class DT_Procedure
public string DownExcelTemplate { get; set; }
public string ExportExcel { get; set; }
}
public class FlowParam
{
public string doType { get; set; }
public int? id { get; set; }
public FlowJsonParam jsonParam { get; set; }
public int langId { get; set; }
public string menuName { get; set; }
public string timestamp { get; set; }
public string token { get; set; }
public int? userId { get; set; }
}
public class FlowJsonParam
{
public int? FlowID { get; set; }
}
public class FlowReturn
{
public JM_PageFormT1 JM_PageFormT1 { get; set; } = new JM_PageFormT1();
public List<DT_PageMutiMsg> DT_PageMutiMsg { get; set; } = new List<DT_PageMutiMsg>();
public JM_PageFormActionsT1 JM_PageFormActionsT1 { get; set; } = new JM_PageFormActionsT1();
public FlowJM_TableColumnT1 JM_TableColumnT1 { get; set; } = new FlowJM_TableColumnT1();
public DataTable DT_TableDataT1 { get; set; }
}
public class JM_PageFormActionsT1
{
public List<Toolbar> Toolbar { get; set; }
}
public class JM_PageFormT1
{
public List<PageForm> PageForm { get; set; } = new List<PageForm>();
}
public class PageForm
{
public string FlowPageStyle { get; set; }
public string RowDisplayType { get; set; }
public string apiName { get; set; }
public string disabled { get; set; }
public string labelAlign { get; set; }
public string labelCol { get; set; }
public int labelWidth { get; set; }
public string layout { get; set; }
public string pageTitle { get; set; }
}
public class FlowJM_TableColumnT1
{
public List<FlowTableColumn> TableColumn { get; set; }
}
public class FlowTableColumn
{
public bool canBatchPageDisplay { get; set; }
public int colNum { get; set; }
public int columnWidth { get; set; }
public string dataSource { get; set; }
public string dataType { get; set; }
public bool defaultHidden { get; set; }
public int dynamicShow { get; set; }
public bool editable { get; set; }
public string elementType { get; set; }
public string field { get; set; }
public bool isPrimaryKey { get; set; }
public int isSingleColumn { get; set; }
public string label { get; set; }
public bool @required { get; set; }
public bool multipleSelect { get; set; }
public int rowNum { get; set; }
}

@ -8,6 +8,7 @@ using Newtonsoft.Json.Linq;
using SqlSugar;
using Tiobon.Core.Common;
using Tiobon.Core.Common.DB.Dapper;
using Tiobon.Core.Common.Helper;
using Tiobon.Core.DataAccess;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
@ -1610,4 +1611,342 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
return new ServiceResult<QueryExportReturn>() { Success = true, Message = "查询成功", Data = result, };
}
#endregion
#region 获取流程信息
/// <summary>
/// 获取流程信息
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<ServiceResult<FlowReturn>> GetFlowInfoAsync(FlowParam param)
{
var flowReturn = new FlowReturn();
#region JM_PageFormT1
var sql = $@"DECLARE
@SQL NVARCHAR (MAX) = '',
@DoType NVARCHAR (MAX) = '{param.doType}'
BEGIN
SET @SQL =
[dbo].[Fs_UserMenuFnKeyPriv2] ({param.langId},
{param.userId},
'{param.menuName}',
9)
SET @SQL =
replace (@SQL,
'""layout"":""horizontal""',
'""layout"":""horizontal"",""FlowPageStyle"":""'
+ (SELECT isnull (FlowPageStyle, 'All')
FROM Ghrw_Flow
WHERE FlowID = {param.jsonParam.FlowID})
+ '""')
SET @SQL =
replace
(@SQL,
'<DoTypeTrueOrFalse>',
CASE WHEN @DoType = 'Query' THEN 'true' ELSE +'""false""' END)
EXECUTE (@SQL)
END";
var result = await Db.Ado.GetStringAsync(sql);
flowReturn.JM_PageFormT1.PageForm = JsonHelper.JsonToObj<List<PageForm>>(result);
#endregion
#region DT_PageMutiMsg
sql = @"SELECT Langkey field,
CASE {2}
WHEN 1 THEN isnull (Value01, LangValue)
WHEN 2 THEN isnull (Value02, LangValue)
WHEN 3 THEN isnull (Value03, LangValue)
WHEN 4 THEN isnull (Value04, LangValue)
WHEN 5 THEN isnull (Value05, LangValue)
WHEN 6 THEN isnull (Value06, LangValue)
WHEN 7 THEN isnull (Value07, LangValue)
WHEN 8 THEN isnull (Value08, LangValue)
WHEN 9 THEN isnull (Value09, LangValue)
WHEN 10 THEN isnull (Value10, LangValue)
END label
FROM Ghrs_LangKey
WHERE IsEnable = 1
AND (LangKey LIKE 'GHR_Page%' OR LangKey LIKE 'GHR_Common%')";
sql = string.Format(sql, param.menuName, App.User.ID, param.langId);
flowReturn.DT_PageMutiMsg = await Db.Ado.SqlQueryAsync<DT_PageMutiMsg>(sql);
#endregion
#region JM_PageFormActionsT1
sql = $@"SELECT field fnKey, [dbo].[FLangKeyToValue] (mkey, {param.langId}, label) fnTitle, icon
FROM Ghrs_PageSettingEdit
WHERE IsEnable = 1
AND pageNo = '{param.menuName}'
AND elementType = 'FnKey'";
flowReturn.JM_PageFormActionsT1.Toolbar = await Db.Ado.SqlQueryAsync<Toolbar>(sql);
#endregion
#region JM_TableColumnT1
sql = $@"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = ''
BEGIN
IF OBJECT_ID ('tempdb.[dbo].[#TempInitUserPageEditColumn]') IS NOT NULL
DROP TABLE [dbo].[#TempInitUserPageEditColumn]
CREATE TABLE [dbo].[#TempInitUserPageEditColumn]
(
InitID INT IDENTITY (1,1),
field NVARCHAR (100),
label NVARCHAR (100),
required NVARCHAR (100),
editable NVARCHAR (100),
rowNum INT,
colNum INT,
elementType NVARCHAR (100),
dataSource NVARCHAR (100),
defaultHidden NVARCHAR (100),
isPrimaryKey NVARCHAR (100),
isSingleColumn INT,
dataType NVARCHAR (100),
columnWidth NVARCHAR (100),
dynamicShow INT,
PrivFlag INT,
multipleSelect NVARCHAR (100),
canBatchPageDisplay NVARCHAR (100)
)
INSERT INTO [#TempInitUserPageEditColumn]
SELECT pp.ColumnName field,
pp.ColumnLabel label,
iif (pp.IsRequired = 1, 'true', 'false') required,
iif
(pp.Editable = 1 AND isnull (kk.PrivFlag, 1) = 2,
'true',
'false') editable,
pp.SortNo rowNum,
1 colNum,
pp.ColumnType elementType,
CASE
WHEN pp.ColumnType = 'StaffSelect'
THEN
isnull (DataSourceType, 'StaffWithoutPriv')
WHEN pp.ColumnType = 'OrgTreeSelect'
THEN
isnull (DataSourceType, 'OrgTreeWithPriv')
ELSE
dbo.FS_GetdataSourceBySet
('', pp.DataSourceType, pp.DataSource)
END dataSource,
'false' defaultHidden,
'true' isPrimaryKey,
0 isSingleColumn,
pp.dataType,
pp.columnWidth,
pp.dynamicShow,
isnull (kk.PrivFlag, 1) PrivFlag, --
iif (pp.IsMultipleSelect = 1, 'true', 'false'),
iif (pp.IsBatchPageDisplay = 1, 'true', 'false')
FROM Ghrw_FlowPageDesign pp
LEFT JOIN Ghrw_FlowNodesColumnPriv kk
ON pp.FlowID = kk.FlowID
AND pp.FlowPageDesignId = kk.FlowPageDesignId
AND kk.IsEnable = 1
AND kk.NodeID = 'sid-start-node'
WHERE pp.FlowID = @FlowID
AND pp.IsEnable = 1
AND isnull (kk.PrivFlag, 1) ! = 0 --
ORDER BY pp.SortNo
IF @DoType = 'Import'
BEGIN
SELECT Row_Number () OVER (ORDER BY rowNum, colNum) SortNum,
field,
label,
dataSource,
required,
dataType,
CONVERT (NVARCHAR (1000), '') commentText,
elementType
FROM [#TempInitUserPageEditColumn]
WHERE field ! = 'AttachmentIDs' AND dynamicShow ! = 0
RETURN
END
SET @JsonString1 =
(SELECT field,
label,
required,
editable,
rowNum,
colNum,
elementType,
dataSource,
defaultHidden,
isPrimaryKey,
isSingleColumn,
dataType,
CONVERT (INT, columnWidth) columnWidth,
dynamicShow,
multipleSelect,
canBatchPageDisplay
FROM [dbo].[#TempInitUserPageEditColumn]
FOR JSON PATH)
SET @JsonString1 =
replace
(replace (@JsonString1, '""true""', 'true'), '""false""', 'false')
SET @SQL = 'select ''' + @JsonString1 + ''' [#Json#TableColumn]'
EXEC sp_executesql @SQL
END";
result = await Db.Ado.GetStringAsync(sql);
flowReturn.JM_TableColumnT1.TableColumn = JsonHelper.JsonToObj<List<FlowTableColumn>>(result);
#endregion
#region DT_TableDataT1
#region 特殊处理
switch (param.menuName)
{
case "F_ESS_VN_BenefitApply":
sql = @$"DECLARE
@SQL NVARCHAR (MAX) = '',
@FlowID INT = {param.jsonParam.FlowID},
@langId INT = {param.langId},
@DoType NVARCHAR (MAX) = '{param.doType}',
@SQL2 NVARCHAR (MAX) = '',
@JsonString NVARCHAR (MAX) = '',
@JsonString1 NVARCHAR (MAX) = '',
@JsonString2 NVARCHAR (MAX) = '',
@ID INT = {param.id},
@userId INT = {param.userId}
BEGIN
IF @DoType IN ('Update', 'Copy') --
BEGIN
SELECT StaffID,
ApplyDate,
Reverse1,
BenefitType,
ConnectDate,
Family,
ToDoType,
WorkID,
JSON_QUERY
(
dbo.FS_GetTableAttachment
('Ghrz_VN_BenefitApply', BenefitID, @langId))
#Json#AttachmentIDs,
SortNo,
IsDefault,
RemarkSz,
BenefitID,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.CreateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, ' ')
+ ' '
+ CONVERT (NVARCHAR (16), CreateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000079', @langId, ' ')
CreateDataInfo,
isnull
(
(SELECT CASE
WHEN @langId = 1 THEN UserName
ELSE UserEname
END
FROM Ghrs_User kk
WHERE kk.UserId = a.UpdateBy),
'')
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000078', @langId, '于')
+ ' '
+ CONVERT (NVARCHAR (16), UpdateTime, 121)
+ ' '
+ [dbo].[FLangKeyToValue]
('GHR_Common_000080', @langId, ' ')
UpdateDataInfo
FROM Ghrz_VN_BenefitApply a
WHERE BenefitID = @ID
END
IF @DoType = 'Insert' --
BEGIN
SELECT (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId) StaffID,
CONVERT (NVARCHAR (10), getdate (), 23) ApplyDate,
(SELECT DeptID
FROM dbo.Ghra_Staff
WHERE StaffID = (SELECT UserStaffID
FROM dbo.Ghrs_User
WHERE UserId = @userId)) Reverse1,
NULL BenefitType,
NULL ConnectDate,
NULL Family,
NULL ToDoType,
NULL WorkID,
NULL AttachmentIDs,
NULL SortNo,
0 IsDefault,
0 BenefitID,
'' RemarkSz
END
IF @DoType = 'ReApply' -- ReApply:
BEGIN
SELECT StaffID,
ApplyDate,
Reverse1,
BenefitType,
ConnectDate,
Family,
ToDoType,
NULL WorkID,
AttachmentIDs,
SortNo,
IsDefault,
0 BenefitID,
RemarkSz
FROM Ghrz_VN_BenefitApply
WHERE WorkID = @ID --
END
END";
break;
case "F_ESS_TrainRequestApply":
break;
}
#endregion
flowReturn.DT_TableDataT1 = await Db.Ado.GetDataTableAsync(sql);
#endregion
return new ServiceResult<FlowReturn>() { Success = true, Message = "查询成功", Data = flowReturn };
}
#endregion
}

Loading…
Cancel
Save