安邦工具箱培训数据接收接口
This commit is contained in:
parent
197b55e6bd
commit
9f70d34ed2
Binary file not shown.
|
@ -0,0 +1,79 @@
|
||||||
|
{
|
||||||
|
"Version": 1,
|
||||||
|
"WorkspaceRootPath": "D:\\\u6570\u636E\\\u8BFA\u5FC5\u8FBE\\\u4E94\u73AF\\CNCEC_SUBQHSE_WUHUAN\\",
|
||||||
|
"Documents": [],
|
||||||
|
"DocumentGroupContainers": [
|
||||||
|
{
|
||||||
|
"Orientation": 1,
|
||||||
|
"VerticalTabListWidth": 256,
|
||||||
|
"DocumentGroups": [
|
||||||
|
{
|
||||||
|
"DockedHeight": 200,
|
||||||
|
"SelectedChildIndex": -1,
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:132:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:133:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:134:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:1:0:{f2bd8fb8-fc94-3dae-a733-fd993c73cc87}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:129:0:{13b12e3e-c1b4-4539-9371-4fe9a0d523fc}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:2:0:{f2bd8fb8-fc94-3dae-a733-fd993c73cc87}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:3:0:{f2bd8fb8-fc94-3dae-a733-fd993c73cc87}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{1a46fd64-28d5-434c-8eb3-17a02d419b53}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:131:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,142 @@
|
||||||
|
@echo off
|
||||||
|
REM ---------------
|
||||||
|
REM 发布包生成工具
|
||||||
|
REM 执行此文件前请先用Release生成publisher项目
|
||||||
|
REM --------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
REM --------------
|
||||||
|
REM 环境变量设置 Project_Src为如PUBLISHER4_CODING这样的分支
|
||||||
|
REM --------------
|
||||||
|
set PROJECT_SRC=%CD%
|
||||||
|
|
||||||
|
REM 源代码publisher项目文件夹
|
||||||
|
set PUBLISHER_SRC_ROOT=%PROJECT_SRC%\SGGL\FineUIPro.Web
|
||||||
|
|
||||||
|
REM 源代码版本日志文件夹
|
||||||
|
set VerLog_SRC_ROOT=%PROJECT_SRC%\database\版本日志
|
||||||
|
|
||||||
|
REM 包文件夹名
|
||||||
|
SET ReleasePack=PackFile
|
||||||
|
|
||||||
|
REM 发布程序包文件夹
|
||||||
|
SET ReleasePackFolder=%PROJECT_SRC%\SGGL%ReleasePack%
|
||||||
|
|
||||||
|
REM 发布包publisher文件所在文件夹
|
||||||
|
SET RELEASE_PUBLISHER_ROOT=%PROJECT_SRC%\SGGL%ReleasePack%\%ReleasePack%
|
||||||
|
|
||||||
|
REM 发布包版本日志文件所在文件夹
|
||||||
|
SET RELEASE_VerLog_ROOT=%PROJECT_SRC%\SGGL%ReleasePack%\版本日志
|
||||||
|
|
||||||
|
|
||||||
|
REM --------------
|
||||||
|
REM 发布程序包文件夹相关
|
||||||
|
REM --------------
|
||||||
|
|
||||||
|
IF exist %ReleasePackFolder%\nul.ext (
|
||||||
|
@echo 删除已存在的发布程序包文件夹
|
||||||
|
@echo.
|
||||||
|
rd %ReleasePackFolder% /S /Q
|
||||||
|
)
|
||||||
|
mkdir %ReleasePackFolder%
|
||||||
|
|
||||||
|
|
||||||
|
IF exist %RELEASE_VerLog_ROOT%\nul.ext (
|
||||||
|
rd %RELEASE_VerLog_ROOT% /S /Q
|
||||||
|
)
|
||||||
|
mkdir %RELEASE_VerLog_ROOT%
|
||||||
|
|
||||||
|
|
||||||
|
IF errorlevel 1 goto delReleasePackError
|
||||||
|
|
||||||
|
|
||||||
|
@echo 设置.net控制台环境
|
||||||
|
@echo.
|
||||||
|
@call "D:\Visual Studio 2022\Common7\Tools\VsDevCmd.bat"
|
||||||
|
IF errorlevel 1 goto netEnvironmentError
|
||||||
|
|
||||||
|
|
||||||
|
@echo 开始预编译...
|
||||||
|
@echo.
|
||||||
|
aspnet_compiler -p %PUBLISHER_SRC_ROOT% %RELEASE_PUBLISHER_ROOT% -u -v /
|
||||||
|
IF errorlevel 1 goto aspnet_compilerError
|
||||||
|
@echo 预编译完成
|
||||||
|
@echo.
|
||||||
|
|
||||||
|
|
||||||
|
@echo 开始合并程序集...
|
||||||
|
@echo.
|
||||||
|
Aspnet_merge %RELEASE_PUBLISHER_ROOT% -o UI
|
||||||
|
IF errorlevel 1 goto Aspnet_mergeError
|
||||||
|
@echo 合并程序集完成
|
||||||
|
@echo.
|
||||||
|
|
||||||
|
|
||||||
|
REM --------------
|
||||||
|
REM 删除不必要的文件
|
||||||
|
REM --------------
|
||||||
|
|
||||||
|
@echo 开始清理垃圾文件...
|
||||||
|
@echo.
|
||||||
|
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.cs /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.designer.cs /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.csproj /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.csproj.* /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.pdb /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.resx /s /f
|
||||||
|
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.db /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.bak /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.*.bak /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.sln /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.suo /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.scc /s /f
|
||||||
|
rd %RELEASE_PUBLISHER_ROOT%\obj /s /q
|
||||||
|
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\ReadMe.txt /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.pfx /s /f
|
||||||
|
del %RELEASE_PUBLISHER_ROOT%\*.StyleCop /s /f
|
||||||
|
|
||||||
|
@echo 清理完成
|
||||||
|
@echo.
|
||||||
|
|
||||||
|
REM --------------
|
||||||
|
REM 拷贝版本日志
|
||||||
|
REM --------------
|
||||||
|
@echo 拷贝版本日志...
|
||||||
|
@echo.
|
||||||
|
|
||||||
|
copy %VerLog_SRC_ROOT%\*.* %RELEASE_VerLog_ROOT% /Y
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@echo 发布包已生成,存放路径为%ReleasePackFolder%
|
||||||
|
@echo.
|
||||||
|
goto END
|
||||||
|
|
||||||
|
|
||||||
|
:delReleasePackError
|
||||||
|
@echo.
|
||||||
|
@echo 删除包存储文件夹失败!
|
||||||
|
goto END
|
||||||
|
|
||||||
|
:netEnvironmentError
|
||||||
|
@echo.
|
||||||
|
@echo .net环境设置失败!
|
||||||
|
goto END
|
||||||
|
|
||||||
|
:aspnet_compilerError
|
||||||
|
@echo.
|
||||||
|
@echo 预编译失败!
|
||||||
|
goto END
|
||||||
|
|
||||||
|
:Aspnet_mergeError
|
||||||
|
@echo.
|
||||||
|
@echo 合并程序集失败!
|
||||||
|
goto END
|
||||||
|
|
||||||
|
:END
|
||||||
|
pause
|
|
@ -763,6 +763,10 @@ namespace BLL
|
||||||
{
|
{
|
||||||
newPerson.TeamGroupId = person.TeamGroupId;
|
newPerson.TeamGroupId = person.TeamGroupId;
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(person.WorkPostName))
|
||||||
|
{
|
||||||
|
person.WorkPostId = WorkPostService.AddWorkPostByName(person.WorkPostName);
|
||||||
|
}
|
||||||
if (!string.IsNullOrEmpty(person.WorkPostId))
|
if (!string.IsNullOrEmpty(person.WorkPostId))
|
||||||
{
|
{
|
||||||
newPerson.WorkPostId = person.WorkPostId;
|
newPerson.WorkPostId = person.WorkPostId;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BLL
|
||||||
|
{
|
||||||
|
public static class AnBangService
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -85,6 +85,7 @@
|
||||||
<Reference Include="WindowsBase" />
|
<Reference Include="WindowsBase" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="AnBang\AnBangService.cs" />
|
||||||
<Compile Include="API\APIBaseInfoService.cs" />
|
<Compile Include="API\APIBaseInfoService.cs" />
|
||||||
<Compile Include="API\APICommonService.cs" />
|
<Compile Include="API\APICommonService.cs" />
|
||||||
<Compile Include="API\APIDoorServerService.cs" />
|
<Compile Include="API\APIDoorServerService.cs" />
|
||||||
|
|
|
@ -45,7 +45,36 @@ namespace BLL
|
||||||
db.Base_WorkPost.InsertOnSubmit(newWorkPost);
|
db.Base_WorkPost.InsertOnSubmit(newWorkPost);
|
||||||
db.SubmitChanges();
|
db.SubmitChanges();
|
||||||
}
|
}
|
||||||
|
public static string AddWorkPostByName(string workPostName)
|
||||||
|
{
|
||||||
|
string workpostid = String.Empty;
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var model = db.Base_WorkPost.FirstOrDefault(e => e.WorkPostName == workPostName);
|
||||||
|
if (model != null)
|
||||||
|
{
|
||||||
|
workpostid = model.WorkPostId;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Model.Base_WorkPost newWorkPost = new Model.Base_WorkPost
|
||||||
|
{
|
||||||
|
WorkPostId = SQLHelper.GetNewID(),
|
||||||
|
WorkPostCode = "",
|
||||||
|
WorkPostName = workPostName,
|
||||||
|
IsHsse = false,
|
||||||
|
IsCQMS = false,
|
||||||
|
CNCodes = "",
|
||||||
|
};
|
||||||
|
|
||||||
|
db.Base_WorkPost.InsertOnSubmit(newWorkPost);
|
||||||
|
db.SubmitChanges();
|
||||||
|
workpostid = newWorkPost.WorkPostId;
|
||||||
|
}
|
||||||
|
|
||||||
|
return workpostid;
|
||||||
|
}
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 修改
|
/// 修改
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -28,3 +28,248 @@
|
||||||
出错时间:06/21/2024 16:04:10
|
出错时间:06/21/2024 16:04:10
|
||||||
出错时间:06/21/2024 16:04:10
|
出错时间:06/21/2024 16:04:10
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:SqlException
|
||||||
|
错误信息:列名 'NextNum' 无效。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
|
||||||
|
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
|
||||||
|
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
|
||||||
|
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
|
||||||
|
在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
|
||||||
|
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
|
||||||
|
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
|
||||||
|
在 System.Data.Common.DbCommand.ExecuteReader()
|
||||||
|
在 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
|
||||||
|
在 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
|
||||||
|
在 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
|
||||||
|
在 System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
|
||||||
|
在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
|
||||||
|
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
|
||||||
|
在 FineUIPro.Web.common.mainProject2.GetJD() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\common\mainProject2.aspx.cs:行号 720
|
||||||
|
在 FineUIPro.Web.common.mainProject2.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\common\mainProject2.aspx.cs:行号 113
|
||||||
|
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
|
||||||
|
在 System.EventHandler.Invoke(Object sender, EventArgs e)
|
||||||
|
在 System.Web.UI.Control.OnLoad(EventArgs e)
|
||||||
|
在 System.Web.UI.Control.LoadRecursive()
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:06/25/2024 17:08:52
|
||||||
|
出错文件:http://localhost:8579/common/mainProject2.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:06/25/2024 17:08:52
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:SqlException
|
||||||
|
错误信息:参数化查询 '(@ProjectId nvarchar(4000))SELECT NEWID() AS ID, CardNo,PersonNa' 需要参数 '@ProjectId',但未提供该参数。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
|
||||||
|
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
|
||||||
|
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
|
||||||
|
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
|
||||||
|
在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
|
||||||
|
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
|
||||||
|
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
|
||||||
|
在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
|
||||||
|
在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
|
||||||
|
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
|
||||||
|
在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
|
||||||
|
在 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
|
||||||
|
在 BLL.SQLHelper.GetDataTableRunText(String strSql, SqlParameter[] parameters) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\SQLHelper.cs:行号 311
|
||||||
|
在 FineUIPro.Web.HSSE.EduTrain.TrainFind.BindGrid() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\HSSE\EduTrain\TrainFind.aspx.cs:行号 116
|
||||||
|
在 FineUIPro.Web.HSSE.EduTrain.TrainFind.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\HSSE\EduTrain\TrainFind.aspx.cs:行号 59
|
||||||
|
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
|
||||||
|
在 System.EventHandler.Invoke(Object sender, EventArgs e)
|
||||||
|
在 System.Web.UI.Control.OnLoad(EventArgs e)
|
||||||
|
在 System.Web.UI.Control.LoadRecursive()
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:09/03/2024 15:38:17
|
||||||
|
出错文件:http://localhost:8579/HSSE/EduTrain/TrainFind.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:09/03/2024 15:38:17
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:FormatException
|
||||||
|
错误信息:输入字符串的格式不正确。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
|
||||||
|
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
|
||||||
|
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
|
||||||
|
在 System.Convert.ToInt32(Object value)
|
||||||
|
在 FineUIPro.RenderField.DSVurKNBLhHEBGjRDehgsQmnHqGTA(GridRow )
|
||||||
|
在 (GridColumn , GridRow )
|
||||||
|
在 FineUIPro.GridRow.JKAqhrYRKGjUrputGryVTdIrcyJN()
|
||||||
|
在 (GridRow )
|
||||||
|
在 FineUIPro.Grid.JKAqhrYRKGjUrputGryVTdIrcyJN(Int32 , Object )
|
||||||
|
在 (Grid , Int32 , Object )
|
||||||
|
在 FineUIPro.Grid.AYqoKqSqsgZakIKkWuWxQURnixDO(IEnumerable , Boolean )
|
||||||
|
在 (Grid , IEnumerable , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind(Boolean keepCurrentData)
|
||||||
|
在 (Grid , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind()
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.GridBind() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 34
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.btnSearch_Click(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 39
|
||||||
|
在 FineUIPro.Button.OnClick(EventArgs e)
|
||||||
|
在 (Button , EventArgs )
|
||||||
|
在 FineUIPro.Button.RaisePostBackEvent(String eventArgument)
|
||||||
|
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
|
||||||
|
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:09/03/2024 15:53:12
|
||||||
|
出错文件:http://localhost:8579/BoSheng/BoPersonTrainRecord.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:09/03/2024 15:53:12
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:FormatException
|
||||||
|
错误信息:输入字符串的格式不正确。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
|
||||||
|
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
|
||||||
|
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
|
||||||
|
在 System.Convert.ToInt32(Object value)
|
||||||
|
在 FineUIPro.RenderField.DSVurKNBLhHEBGjRDehgsQmnHqGTA(GridRow )
|
||||||
|
在 (GridColumn , GridRow )
|
||||||
|
在 FineUIPro.GridRow.JKAqhrYRKGjUrputGryVTdIrcyJN()
|
||||||
|
在 (GridRow )
|
||||||
|
在 FineUIPro.Grid.JKAqhrYRKGjUrputGryVTdIrcyJN(Int32 , Object )
|
||||||
|
在 (Grid , Int32 , Object )
|
||||||
|
在 FineUIPro.Grid.AYqoKqSqsgZakIKkWuWxQURnixDO(IEnumerable , Boolean )
|
||||||
|
在 (Grid , IEnumerable , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind(Boolean keepCurrentData)
|
||||||
|
在 (Grid , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind()
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.GridBind() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 34
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 22
|
||||||
|
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
|
||||||
|
在 System.EventHandler.Invoke(Object sender, EventArgs e)
|
||||||
|
在 System.Web.UI.Control.OnLoad(EventArgs e)
|
||||||
|
在 System.Web.UI.Control.LoadRecursive()
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:09/03/2024 15:53:47
|
||||||
|
出错文件:http://localhost:8579/BoSheng/BoPersonTrainRecord.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:09/03/2024 15:53:47
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:FormatException
|
||||||
|
错误信息:输入字符串的格式不正确。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
|
||||||
|
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
|
||||||
|
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
|
||||||
|
在 System.Convert.ToInt32(Object value)
|
||||||
|
在 FineUIPro.RenderField.DSVurKNBLhHEBGjRDehgsQmnHqGTA(GridRow )
|
||||||
|
在 (GridColumn , GridRow )
|
||||||
|
在 FineUIPro.GridRow.JKAqhrYRKGjUrputGryVTdIrcyJN()
|
||||||
|
在 (GridRow )
|
||||||
|
在 FineUIPro.Grid.JKAqhrYRKGjUrputGryVTdIrcyJN(Int32 , Object )
|
||||||
|
在 (Grid , Int32 , Object )
|
||||||
|
在 FineUIPro.Grid.AYqoKqSqsgZakIKkWuWxQURnixDO(IEnumerable , Boolean )
|
||||||
|
在 (Grid , IEnumerable , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind(Boolean keepCurrentData)
|
||||||
|
在 (Grid , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind()
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.GridBind() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 34
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 22
|
||||||
|
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
|
||||||
|
在 System.EventHandler.Invoke(Object sender, EventArgs e)
|
||||||
|
在 System.Web.UI.Control.OnLoad(EventArgs e)
|
||||||
|
在 System.Web.UI.Control.LoadRecursive()
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:09/03/2024 15:54:12
|
||||||
|
出错文件:http://localhost:8579/BoSheng/BoPersonTrainRecord.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:09/03/2024 15:54:12
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:FormatException
|
||||||
|
错误信息:输入字符串的格式不正确。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
|
||||||
|
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
|
||||||
|
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
|
||||||
|
在 System.Convert.ToInt32(Object value)
|
||||||
|
在 FineUIPro.RenderField.DSVurKNBLhHEBGjRDehgsQmnHqGTA(GridRow )
|
||||||
|
在 (GridColumn , GridRow )
|
||||||
|
在 FineUIPro.GridRow.JKAqhrYRKGjUrputGryVTdIrcyJN()
|
||||||
|
在 (GridRow )
|
||||||
|
在 FineUIPro.Grid.JKAqhrYRKGjUrputGryVTdIrcyJN(Int32 , Object )
|
||||||
|
在 (Grid , Int32 , Object )
|
||||||
|
在 FineUIPro.Grid.AYqoKqSqsgZakIKkWuWxQURnixDO(IEnumerable , Boolean )
|
||||||
|
在 (Grid , IEnumerable , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind(Boolean keepCurrentData)
|
||||||
|
在 (Grid , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind()
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.GridBind() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 34
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 22
|
||||||
|
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
|
||||||
|
在 System.EventHandler.Invoke(Object sender, EventArgs e)
|
||||||
|
在 System.Web.UI.Control.OnLoad(EventArgs e)
|
||||||
|
在 System.Web.UI.Control.LoadRecursive()
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:09/03/2024 15:54:41
|
||||||
|
出错文件:http://localhost:8579/BoSheng/BoPersonTrainRecord.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:09/03/2024 15:54:41
|
||||||
|
|
||||||
|
|
||||||
|
错误信息开始=====>
|
||||||
|
错误类型:FormatException
|
||||||
|
错误信息:输入字符串的格式不正确。
|
||||||
|
错误堆栈:
|
||||||
|
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
|
||||||
|
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
|
||||||
|
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
|
||||||
|
在 System.Convert.ToInt32(Object value)
|
||||||
|
在 FineUIPro.RenderField.DSVurKNBLhHEBGjRDehgsQmnHqGTA(GridRow )
|
||||||
|
在 (GridColumn , GridRow )
|
||||||
|
在 FineUIPro.GridRow.JKAqhrYRKGjUrputGryVTdIrcyJN()
|
||||||
|
在 (GridRow )
|
||||||
|
在 FineUIPro.Grid.JKAqhrYRKGjUrputGryVTdIrcyJN(Int32 , Object )
|
||||||
|
在 (Grid , Int32 , Object )
|
||||||
|
在 FineUIPro.Grid.AYqoKqSqsgZakIKkWuWxQURnixDO(IEnumerable , Boolean )
|
||||||
|
在 (Grid , IEnumerable , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind(Boolean keepCurrentData)
|
||||||
|
在 (Grid , Boolean )
|
||||||
|
在 FineUIPro.Grid.DataBind()
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.GridBind() 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 34
|
||||||
|
在 FineUIPro.Web.BoSheng.BoPersonTrainRecord.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\五环\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\BoSheng\BoPersonTrainRecord.aspx.cs:行号 22
|
||||||
|
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
|
||||||
|
在 System.EventHandler.Invoke(Object sender, EventArgs e)
|
||||||
|
在 System.Web.UI.Control.OnLoad(EventArgs e)
|
||||||
|
在 System.Web.UI.Control.LoadRecursive()
|
||||||
|
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
||||||
|
出错时间:09/03/2024 15:55:36
|
||||||
|
出错文件:http://localhost:8579/BoSheng/BoPersonTrainRecord.aspx
|
||||||
|
IP地址:::1
|
||||||
|
操作人员:JT
|
||||||
|
|
||||||
|
出错时间:09/03/2024 15:55:36
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,134 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Model.AnBnag
|
||||||
|
{
|
||||||
|
public class PersonInput
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 主键id
|
||||||
|
/// </summary>
|
||||||
|
public string ID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 项目id
|
||||||
|
/// </summary>
|
||||||
|
public string ProjectId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CreateDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人
|
||||||
|
/// </summary>
|
||||||
|
public string CreateUser { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 操作时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? OperDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 操作人
|
||||||
|
/// </summary>
|
||||||
|
public string OperUser { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 姓名
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 性别 1 男 2 女
|
||||||
|
/// </summary>
|
||||||
|
public string Sex { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 出生日期
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? BirthDay { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 地址
|
||||||
|
/// </summary>
|
||||||
|
public string Address { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 民族
|
||||||
|
/// </summary>
|
||||||
|
public string Nation { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 身份证号码
|
||||||
|
/// </summary>
|
||||||
|
public string IdentifyID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 发证机关
|
||||||
|
/// </summary>
|
||||||
|
public string Police { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 有效期开始时间
|
||||||
|
/// </summary>
|
||||||
|
public string ValidPeriodStart { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 有效期结束时间
|
||||||
|
/// </summary>
|
||||||
|
public string ValidPeriodEnd { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 岗位
|
||||||
|
/// </summary>
|
||||||
|
public string Station { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 电话
|
||||||
|
/// </summary>
|
||||||
|
public string Telephone { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Age
|
||||||
|
/// </summary>
|
||||||
|
public int? Age { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 工号
|
||||||
|
/// </summary>
|
||||||
|
public string JobNumber { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 现住址
|
||||||
|
/// </summary>
|
||||||
|
public string NewAddress { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 登记时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? RegisterDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 专业
|
||||||
|
/// </summary>
|
||||||
|
public string Category { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 专业等级
|
||||||
|
/// </summary>
|
||||||
|
public string CategoryLevel { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 入场时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? EntranceDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否离场 1 离场 0 未离场
|
||||||
|
/// </summary>
|
||||||
|
public string IsOut { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 离场时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? LeaveDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否黑名单 1 是 0 否
|
||||||
|
/// </summary>
|
||||||
|
public string IsBlackList { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 设备编号
|
||||||
|
/// </summary>
|
||||||
|
public string DeviceNumber { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 所在单位
|
||||||
|
/// </summary>
|
||||||
|
public string DepartName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 上传时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? UploadTime { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Model.AnBang
|
||||||
|
{
|
||||||
|
public class PersonTrainRecordInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 主键id
|
||||||
|
/// </summary>
|
||||||
|
public string ID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 项目id
|
||||||
|
/// </summary>
|
||||||
|
public string ProjectId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 姓名
|
||||||
|
/// </summary>
|
||||||
|
public string EmpName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 身份证号
|
||||||
|
/// </summary>
|
||||||
|
public string IdentifyId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 工种
|
||||||
|
/// </summary>
|
||||||
|
public string CategoryName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 所在单位
|
||||||
|
/// </summary>
|
||||||
|
public string DepartName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训学时
|
||||||
|
/// </summary>
|
||||||
|
public string TrainPeriod { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 总分
|
||||||
|
/// </summary>
|
||||||
|
public decimal? TotalScore { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 及格分
|
||||||
|
/// </summary>
|
||||||
|
public decimal? PassScore { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 成绩
|
||||||
|
/// </summary>
|
||||||
|
public decimal? Score { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否通过 0否 1是
|
||||||
|
/// </summary>
|
||||||
|
public string IsPass { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 考试批次号
|
||||||
|
/// </summary>
|
||||||
|
public string GroupNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 试卷编号
|
||||||
|
/// </summary>
|
||||||
|
public string ExamNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 考试次数
|
||||||
|
/// </summary>
|
||||||
|
public string ExamCount { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 设备编号
|
||||||
|
/// </summary>
|
||||||
|
public string DeviceNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 答案
|
||||||
|
/// </summary>
|
||||||
|
public string Answers { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训记录名称
|
||||||
|
/// </summary>
|
||||||
|
public string RecordName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训类型
|
||||||
|
/// </summary>
|
||||||
|
public string TrainType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 出卷类型 0 使用原卷 1 重新出卷
|
||||||
|
/// </summary>
|
||||||
|
public string PaperMode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训方式
|
||||||
|
/// </summary>
|
||||||
|
public string TrainMode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训负责人
|
||||||
|
/// </summary>
|
||||||
|
public string TrainPrincipal { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训开始时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? TrainStartDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训结束时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? TrainEndDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训内容
|
||||||
|
/// </summary>
|
||||||
|
public string TrainContent { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训详细信息
|
||||||
|
/// </summary>
|
||||||
|
public string TrainDescript { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,112 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Model.AnBnag
|
||||||
|
{
|
||||||
|
public class TrainInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 主键id
|
||||||
|
/// </summary>
|
||||||
|
public string ID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 项目id
|
||||||
|
/// </summary>
|
||||||
|
public string ProjectId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 名称
|
||||||
|
/// </summary>
|
||||||
|
public string RecordName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训类型
|
||||||
|
/// </summary>
|
||||||
|
public string TrainType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 出卷类型 0 使用原卷 1 重新出卷
|
||||||
|
/// </summary>
|
||||||
|
public string PaperMode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训方式
|
||||||
|
/// </summary>
|
||||||
|
public string TrainMode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训负责人
|
||||||
|
/// </summary>
|
||||||
|
public string TrainPrincipal { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训开始时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? TrainStartDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训结束时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? TrainEndDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训内容
|
||||||
|
/// </summary>
|
||||||
|
public string TrainContent { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训详细信息
|
||||||
|
/// </summary>
|
||||||
|
public string TrainDescript { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训学时
|
||||||
|
/// </summary>
|
||||||
|
public string TrainPeriod { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 人员数量
|
||||||
|
/// </summary>
|
||||||
|
public int PersonCount { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 合格人数
|
||||||
|
/// </summary>
|
||||||
|
public int PassedCount { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 课程数量
|
||||||
|
/// </summary>
|
||||||
|
public int CourseCount { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 课程总时长
|
||||||
|
/// </summary>
|
||||||
|
public string CourseDuration { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 来源 0 项目 1 课程
|
||||||
|
/// </summary>
|
||||||
|
public string Source { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 备注说明
|
||||||
|
/// </summary>
|
||||||
|
public string Description { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 工具箱编号
|
||||||
|
/// </summary>
|
||||||
|
public string DeviceNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 上传时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? UploadTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训单位
|
||||||
|
/// </summary>
|
||||||
|
public string TrainDepart { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CreateDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人
|
||||||
|
/// </summary>
|
||||||
|
public string CreateUser { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 操作时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? OperDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 操作人
|
||||||
|
/// </summary>
|
||||||
|
public string OperUser { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Model.AnBang
|
||||||
|
{
|
||||||
|
public class TrainPersonInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 主键
|
||||||
|
/// </summary>
|
||||||
|
public string ID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 项目ID
|
||||||
|
/// </summary>
|
||||||
|
public string ProjectId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 姓名
|
||||||
|
/// </summary>
|
||||||
|
public string EmpName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 身份证号
|
||||||
|
/// </summary>
|
||||||
|
public string IdentifyId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 岗位
|
||||||
|
/// </summary>
|
||||||
|
public string Station { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 工种
|
||||||
|
/// </summary>
|
||||||
|
public string CategoryName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 所在单位
|
||||||
|
/// </summary>
|
||||||
|
public string DepartName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 签到时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? SignInDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 培训学时
|
||||||
|
/// </summary>
|
||||||
|
public string TrainPeriod { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 状态 0 正常 1 补签
|
||||||
|
/// </summary>
|
||||||
|
public string State { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 总分
|
||||||
|
/// </summary>
|
||||||
|
public decimal? TotalScore { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 及格分
|
||||||
|
/// </summary>
|
||||||
|
public decimal? PassScore { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 成绩
|
||||||
|
/// </summary>
|
||||||
|
public decimal? Score { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否合格 0 不合格 1 合格
|
||||||
|
/// </summary>
|
||||||
|
public string IsPass { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 考试批次号
|
||||||
|
/// </summary>
|
||||||
|
public string GroupNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 试卷编号
|
||||||
|
/// </summary>
|
||||||
|
public string ExamNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 考试次数
|
||||||
|
/// </summary>
|
||||||
|
public int? ExamCount { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 设备编号
|
||||||
|
/// </summary>
|
||||||
|
public string DeviceNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 上传时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? UploadTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 答案
|
||||||
|
/// </summary>
|
||||||
|
public string Answers { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CreateDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人
|
||||||
|
/// </summary>
|
||||||
|
public string CreateUser { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 操作时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? OperDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 操作人
|
||||||
|
/// </summary>
|
||||||
|
public string OperUser { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -23,9 +23,18 @@ namespace Model
|
||||||
public string IsBuild { get; set; }
|
public string IsBuild { get; set; }
|
||||||
public string EMail { get; set; }
|
public string EMail { get; set; }
|
||||||
public string IsHide { get; set; }
|
public string IsHide { get; set; }
|
||||||
public string IsBranch { get; set; }
|
public bool? IsBranch { get; set; }
|
||||||
public string ShortUnitName { get; set; }
|
public string ShortUnitName { get; set; }
|
||||||
public string DataSources { get; set; }
|
public string DataSources { get; set; }
|
||||||
public string FromUnitId { get; set; }
|
public string FromUnitId { get; set; }
|
||||||
|
public string IsChina { get; set; }
|
||||||
|
public string CollCropCode { get; set; }
|
||||||
|
|
||||||
|
public string LinkName { get; set; }
|
||||||
|
public string IdcardType { get; set; }
|
||||||
|
public string IdcardNumber { get; set; }
|
||||||
|
public string CollCropStatus { get; set; }
|
||||||
|
public string LinkMobile { get; set; }
|
||||||
|
public string ProjectId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,10 +27,11 @@
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>TRACE;DEBUG;m</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<Prefer32Bit>false</Prefer32Bit>
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
<DocumentationFile>bin\Debug\Model.xml</DocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
|
@ -59,6 +60,10 @@
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="APIItem\AnBang\PersonInput.cs" />
|
||||||
|
<Compile Include="APIItem\AnBang\PersonTrainRecordInput.cs" />
|
||||||
|
<Compile Include="APIItem\AnBang\TrainInput.cs" />
|
||||||
|
<Compile Include="APIItem\AnBang\TrainPersonInput.cs" />
|
||||||
<Compile Include="APIItem\ArchitectureReport.cs" />
|
<Compile Include="APIItem\ArchitectureReport.cs" />
|
||||||
<Compile Include="APIItem\ArchitectureReportItem.cs" />
|
<Compile Include="APIItem\ArchitectureReportItem.cs" />
|
||||||
<Compile Include="APIItem\BaseInfoItem.cs" />
|
<Compile Include="APIItem\BaseInfoItem.cs" />
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,280 @@
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web.Http;
|
||||||
|
using WebActivatorEx;
|
||||||
|
using WebAPI;
|
||||||
|
using Swashbuckle.Application;
|
||||||
|
using System.Web.Http.Description;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
|
||||||
|
|
||||||
|
namespace WebAPI
|
||||||
|
{
|
||||||
|
public class SwaggerConfig
|
||||||
|
{
|
||||||
|
public static void Register()
|
||||||
|
{
|
||||||
|
var thisAssembly = typeof(SwaggerConfig).Assembly;
|
||||||
|
|
||||||
|
GlobalConfiguration.Configuration
|
||||||
|
.EnableSwagger(c =>
|
||||||
|
{
|
||||||
|
// By default, the service root url is inferred from the request used to access the docs.
|
||||||
|
// However, there may be situations (e.g. proxy and load-balanced environments) where this does not
|
||||||
|
// resolve correctly. You can workaround this by providing your own code to determine the root URL.
|
||||||
|
//
|
||||||
|
//c.RootUrl(req => GetRootUrlFromAppConfig());
|
||||||
|
|
||||||
|
// If schemes are not explicitly provided in a Swagger 2.0 document, then the scheme used to access
|
||||||
|
// the docs is taken as the default. If your API supports multiple schemes and you want to be explicit
|
||||||
|
// about them, you can use the "Schemes" option as shown below.
|
||||||
|
//
|
||||||
|
//c.Schemes(new[] { "http", "https" });
|
||||||
|
|
||||||
|
// Use "SingleApiVersion" to describe a single version API. Swagger 2.0 includes an "Info" object to
|
||||||
|
// hold additional metadata for an API. Version and title are required but you can also provide
|
||||||
|
// additional fields by chaining methods off SingleApiVersion.
|
||||||
|
//
|
||||||
|
c.SingleApiVersion("v1", "WebAPI");
|
||||||
|
|
||||||
|
|
||||||
|
// If you want the output Swagger docs to be indented properly, enable the "PrettyPrint" option.
|
||||||
|
//
|
||||||
|
//c.PrettyPrint();
|
||||||
|
|
||||||
|
// If your API has multiple versions, use "MultipleApiVersions" instead of "SingleApiVersion".
|
||||||
|
// In this case, you must provide a lambda that tells Swashbuckle which actions should be
|
||||||
|
// included in the docs for a given API version. Like "SingleApiVersion", each call to "Version"
|
||||||
|
// returns an "Info" builder so you can provide additional metadata per API version.
|
||||||
|
//
|
||||||
|
//c.MultipleApiVersions(
|
||||||
|
// (apiDesc, targetApiVersion) => ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
|
||||||
|
// (vc) =>
|
||||||
|
// {
|
||||||
|
// vc.Version("Cqms", "质量数据同步");
|
||||||
|
// vc.Version("Hsse", "安全数据同步");
|
||||||
|
// vc.Version("ProjectDataSync", "项目信息数据同步");
|
||||||
|
// vc.Version("v1", "Swashbuckle Dummy API V1");
|
||||||
|
// });
|
||||||
|
|
||||||
|
// You can use "BasicAuth", "ApiKey" or "OAuth2" options to describe security schemes for the API.
|
||||||
|
// See https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md for more details.
|
||||||
|
// NOTE: These only define the schemes and need to be coupled with a corresponding "security" property
|
||||||
|
// at the document or operation level to indicate which schemes are required for an operation. To do this,
|
||||||
|
// you'll need to implement a custom IDocumentFilter and/or IOperationFilter to set these properties
|
||||||
|
// according to your specific authorization implementation
|
||||||
|
//
|
||||||
|
//c.BasicAuth("basic")
|
||||||
|
// .Description("Basic HTTP Authentication");
|
||||||
|
//
|
||||||
|
// NOTE: You must also configure 'EnableApiKeySupport' below in the SwaggerUI section
|
||||||
|
c.ApiKey("token")
|
||||||
|
.Description("API Key Authentication")
|
||||||
|
.Name("token")
|
||||||
|
.In("header");
|
||||||
|
//
|
||||||
|
//c.OAuth2("oauth2")
|
||||||
|
// .Description("OAuth2 Implicit Grant")
|
||||||
|
// .Flow("implicit")
|
||||||
|
// .AuthorizationUrl("http://petstore.swagger.wordnik.com/api/oauth/dialog")
|
||||||
|
// //.TokenUrl("https://tempuri.org/token")
|
||||||
|
// .Scopes(scopes =>
|
||||||
|
// {
|
||||||
|
// scopes.Add("read", "Read access to protected resources");
|
||||||
|
// scopes.Add("write", "Write access to protected resources");
|
||||||
|
// });
|
||||||
|
|
||||||
|
// Set this flag to omit descriptions for any actions decorated with the Obsolete attribute
|
||||||
|
//c.IgnoreObsoleteActions();
|
||||||
|
|
||||||
|
// Each operation be assigned one or more tags which are then used by consumers for various reasons.
|
||||||
|
// For example, the swagger-ui groups operations according to the first tag of each operation.
|
||||||
|
// By default, this will be controller name but you can use the "GroupActionsBy" option to
|
||||||
|
// override with any value.
|
||||||
|
//
|
||||||
|
//c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());
|
||||||
|
|
||||||
|
// You can also specify a custom sort order for groups (as defined by "GroupActionsBy") to dictate
|
||||||
|
// the order in which operations are listed. For example, if the default grouping is in place
|
||||||
|
// (controller name) and you specify a descending alphabetic sort order, then actions from a
|
||||||
|
// ProductsController will be listed before those from a CustomersController. This is typically
|
||||||
|
// used to customize the order of groupings in the swagger-ui.
|
||||||
|
//
|
||||||
|
//c.OrderActionGroupsBy(new DescendingAlphabeticComparer());
|
||||||
|
|
||||||
|
// If you annotate Controllers and API Types with
|
||||||
|
// Xml comments (http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can incorporate
|
||||||
|
// those comments into the generated docs and UI. You can enable this by providing the path to one or
|
||||||
|
// more Xml comment files.
|
||||||
|
//
|
||||||
|
|
||||||
|
c.IncludeXmlComments(GetXmlCommentsPath("Model"));
|
||||||
|
c.IncludeXmlComments(GetXmlCommentsPath(thisAssembly.GetName().Name));
|
||||||
|
|
||||||
|
// Swashbuckle makes a best attempt at generating Swagger compliant JSON schemas for the various types
|
||||||
|
// exposed in your API. However, there may be occasions when more control of the output is needed.
|
||||||
|
// This is supported through the "MapType" and "SchemaFilter" options:
|
||||||
|
//
|
||||||
|
// Use the "MapType" option to override the Schema generation for a specific type.
|
||||||
|
// It should be noted that the resulting Schema will be placed "inline" for any applicable Operations.
|
||||||
|
// While Swagger 2.0 supports inline definitions for "all" Schema types, the swagger-ui tool does not.
|
||||||
|
// It expects "complex" Schemas to be defined separately and referenced. For this reason, you should only
|
||||||
|
// use the "MapType" option when the resulting Schema is a primitive or array type. If you need to alter a
|
||||||
|
// complex Schema, use a Schema filter.
|
||||||
|
//
|
||||||
|
//c.MapType<ProductType>(() => new Schema { type = "integer", format = "int32" });
|
||||||
|
|
||||||
|
// If you want to post-modify "complex" Schemas once they've been generated, across the board or for a
|
||||||
|
// specific type, you can wire up one or more Schema filters.
|
||||||
|
//
|
||||||
|
//c.SchemaFilter<ApplySchemaVendorExtensions>();
|
||||||
|
|
||||||
|
// In a Swagger 2.0 document, complex types are typically declared globally and referenced by unique
|
||||||
|
// Schema Id. By default, Swashbuckle does NOT use the full type name in Schema Ids. In most cases, this
|
||||||
|
// works well because it prevents the "implementation detail" of type namespaces from leaking into your
|
||||||
|
// Swagger docs and UI. However, if you have multiple types in your API with the same class name, you'll
|
||||||
|
// need to opt out of this behavior to avoid Schema Id conflicts.
|
||||||
|
//
|
||||||
|
c.UseFullTypeNameInSchemaIds();
|
||||||
|
|
||||||
|
// Alternatively, you can provide your own custom strategy for inferring SchemaId's for
|
||||||
|
// describing "complex" types in your API.
|
||||||
|
//
|
||||||
|
//c.SchemaId(t => t.FullName.Contains('`') ? t.FullName.Substring(0, t.FullName.IndexOf('`')) : t.FullName);
|
||||||
|
|
||||||
|
// Set this flag to omit schema property descriptions for any type properties decorated with the
|
||||||
|
// Obsolete attribute
|
||||||
|
//c.IgnoreObsoleteProperties();
|
||||||
|
|
||||||
|
// In accordance with the built in JsonSerializer, Swashbuckle will, by default, describe enums as integers.
|
||||||
|
// You can change the serializer behavior by configuring the StringToEnumConverter globally or for a given
|
||||||
|
// enum type. Swashbuckle will honor this change out-of-the-box. However, if you use a different
|
||||||
|
// approach to serialize enums as strings, you can also force Swashbuckle to describe them as strings.
|
||||||
|
//
|
||||||
|
//c.DescribeAllEnumsAsStrings();
|
||||||
|
|
||||||
|
// Similar to Schema filters, Swashbuckle also supports Operation and Document filters:
|
||||||
|
//
|
||||||
|
// Post-modify Operation descriptions once they've been generated by wiring up one or more
|
||||||
|
// Operation filters.
|
||||||
|
//
|
||||||
|
//c.OperationFilter<AddDefaultResponse>();
|
||||||
|
//
|
||||||
|
// If you've defined an OAuth2 flow as described above, you could use a custom filter
|
||||||
|
// to inspect some attribute on each action and infer which (if any) OAuth2 scopes are required
|
||||||
|
// to execute the operation
|
||||||
|
//
|
||||||
|
//c.OperationFilter<AssignOAuth2SecurityRequirements>();
|
||||||
|
|
||||||
|
// Post-modify the entire Swagger document by wiring up one or more Document filters.
|
||||||
|
// This gives full control to modify the final SwaggerDocument. You should have a good understanding of
|
||||||
|
// the Swagger 2.0 spec. - https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md
|
||||||
|
// before using this option.
|
||||||
|
//
|
||||||
|
//c.DocumentFilter<ApplyDocumentVendorExtensions>();
|
||||||
|
|
||||||
|
// In contrast to WebApi, Swagger 2.0 does not include the query string component when mapping a URL
|
||||||
|
// to an action. As a result, Swashbuckle will raise an exception if it encounters multiple actions
|
||||||
|
// with the same path (sans query string) and HTTP method. You can workaround this by providing a
|
||||||
|
// custom strategy to pick a winner or merge the descriptions for the purposes of the Swagger docs
|
||||||
|
//
|
||||||
|
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
|
||||||
|
|
||||||
|
// Wrap the default SwaggerGenerator with additional behavior (e.g. caching) or provide an
|
||||||
|
// alternative implementation for ISwaggerProvider with the CustomProvider option.
|
||||||
|
//
|
||||||
|
//c.CustomProvider((defaultProvider) => new CachingSwaggerProvider(defaultProvider));
|
||||||
|
})
|
||||||
|
.EnableSwaggerUi(c =>
|
||||||
|
{
|
||||||
|
// Use the "DocumentTitle" option to change the Document title.
|
||||||
|
// Very helpful when you have multiple Swagger pages open, to tell them apart.
|
||||||
|
//
|
||||||
|
//c.DocumentTitle("My Swagger UI");
|
||||||
|
|
||||||
|
// Use the "InjectStylesheet" option to enrich the UI with one or more additional CSS stylesheets.
|
||||||
|
// The file must be included in your project as an "Embedded Resource", and then the resource's
|
||||||
|
// "Logical Name" is passed to the method as shown below.
|
||||||
|
//
|
||||||
|
//c.InjectStylesheet(containingAssembly, "Swashbuckle.Dummy.SwaggerExtensions.testStyles1.css");
|
||||||
|
|
||||||
|
// Use the "InjectJavaScript" option to invoke one or more custom JavaScripts after the swagger-ui
|
||||||
|
// has loaded. The file must be included in your project as an "Embedded Resource", and then the resource's
|
||||||
|
// "Logical Name" is passed to the method as shown above.
|
||||||
|
//
|
||||||
|
//c.InjectJavaScript(thisAssembly, "Swashbuckle.Dummy.SwaggerExtensions.testScript1.js");
|
||||||
|
|
||||||
|
// The swagger-ui renders boolean data types as a dropdown. By default, it provides "true" and "false"
|
||||||
|
// strings as the possible choices. You can use this option to change these to something else,
|
||||||
|
// for example 0 and 1.
|
||||||
|
//
|
||||||
|
//c.BooleanValues(new[] { "0", "1" });
|
||||||
|
|
||||||
|
// By default, swagger-ui will validate specs against swagger.io's online validator and display the result
|
||||||
|
// in a badge at the bottom of the page. Use these options to set a different validator URL or to disable the
|
||||||
|
// feature entirely.
|
||||||
|
//c.SetValidatorUrl("http://localhost/validator");
|
||||||
|
//c.DisableValidator();
|
||||||
|
|
||||||
|
// Use this option to control how the Operation listing is displayed.
|
||||||
|
// It can be set to "None" (default), "List" (shows operations for each resource),
|
||||||
|
// or "Full" (fully expanded: shows operations and their details).
|
||||||
|
//
|
||||||
|
//c.DocExpansion(DocExpansion.List);
|
||||||
|
|
||||||
|
// Specify which HTTP operations will have the 'Try it out!' option. An empty paramter list disables
|
||||||
|
// it for all operations.
|
||||||
|
//
|
||||||
|
//c.SupportedSubmitMethods("GET", "HEAD");
|
||||||
|
|
||||||
|
// Use the CustomAsset option to provide your own version of assets used in the swagger-ui.
|
||||||
|
// It's typically used to instruct Swashbuckle to return your version instead of the default
|
||||||
|
// when a request is made for "index.html". As with all custom content, the file must be included
|
||||||
|
// in your project as an "Embedded Resource", and then the resource's "Logical Name" is passed to
|
||||||
|
// the method as shown below.
|
||||||
|
//
|
||||||
|
//c.CustomAsset("index", containingAssembly, "YourWebApiProject.SwaggerExtensions.index.html");
|
||||||
|
|
||||||
|
// If your API has multiple versions and you've applied the MultipleApiVersions setting
|
||||||
|
// as described above, you can also enable a select box in the swagger-ui, that displays
|
||||||
|
// a discovery URL for each version. This provides a convenient way for users to browse documentation
|
||||||
|
// for different API versions.
|
||||||
|
//
|
||||||
|
c.EnableDiscoveryUrlSelector();
|
||||||
|
// If your API supports the OAuth2 Implicit flow, and you've described it correctly, according to
|
||||||
|
// the Swagger 2.0 specification, you can enable UI support as shown below.
|
||||||
|
//
|
||||||
|
//c.EnableOAuth2Support(
|
||||||
|
// clientId: "test-client-id",
|
||||||
|
// clientSecret: null,
|
||||||
|
// realm: "test-realm",
|
||||||
|
// appName: "Swagger UI"
|
||||||
|
// //additionalQueryStringParams: new Dictionary<string, string>() { { "foo", "bar" } }
|
||||||
|
//);
|
||||||
|
|
||||||
|
// If your API supports ApiKey, you can override the default values.
|
||||||
|
// "apiKeyIn" can either be "query" or "header"
|
||||||
|
//
|
||||||
|
//c.EnableApiKeySupport("token", "header");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回特定版本下的接口
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="apiDesc"></param>
|
||||||
|
/// <param name="targetApiVersion"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private static bool ResolveVersionSupportByRouteConstraint(ApiDescription apiDesc, string targetApiVersion)
|
||||||
|
{
|
||||||
|
//var controllerFullName = apiDesc.ActionDescriptor.ControllerDescriptor.ControllerType.FullName;
|
||||||
|
//return controllerFullName.Split('.').Contains(targetApiVersion, StringComparer.OrdinalIgnoreCase);
|
||||||
|
var controllerFullName = apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName;
|
||||||
|
return controllerFullName.Contains(targetApiVersion);
|
||||||
|
}
|
||||||
|
protected static string GetXmlCommentsPath(string name)
|
||||||
|
{
|
||||||
|
return System.String.Format(@"{0}\bin\{1}.xml", System.AppDomain.CurrentDomain.BaseDirectory, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,523 @@
|
||||||
|
using BLL;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web.Http;
|
||||||
|
using Model.AnBnag;
|
||||||
|
using Model.AnBang;
|
||||||
|
|
||||||
|
namespace WebAPI.Controllers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// AnBangTool
|
||||||
|
/// </summary>
|
||||||
|
public class AnBangToolController : ApiController
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 添加人员信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="personInput"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public Model.ResponeData AddPerson([FromBody] PersonInput personInput)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(personInput.ID))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ID 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(personInput.ProjectId))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ProjectId 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getPerson = db.Bo_Sheng_Person.FirstOrDefault(x => x.ID == personInput.ID);
|
||||||
|
if (getPerson == null)
|
||||||
|
{
|
||||||
|
Model.Bo_Sheng_Person table = new Model.Bo_Sheng_Person
|
||||||
|
{
|
||||||
|
ID = personInput.ID,
|
||||||
|
ProjectId = personInput.ProjectId,
|
||||||
|
CreateDate = personInput.CreateDate,
|
||||||
|
CreateUser = personInput.CreateUser,
|
||||||
|
OperDate = personInput.OperDate,
|
||||||
|
OperUser = personInput.OperUser,
|
||||||
|
Name = personInput.Name,
|
||||||
|
Sex = personInput.Sex,
|
||||||
|
BirthDay = personInput.BirthDay,
|
||||||
|
Address = personInput.Address,
|
||||||
|
Nation = personInput.Nation,
|
||||||
|
IdentifyID = personInput.IdentifyID,
|
||||||
|
Police = personInput.Police,
|
||||||
|
ValidPeriodStart = personInput.ValidPeriodStart,
|
||||||
|
ValidPeriodEnd = personInput.ValidPeriodEnd,
|
||||||
|
Telephone = personInput.Telephone,
|
||||||
|
Age = personInput.Age,
|
||||||
|
JobNumber = personInput.JobNumber,
|
||||||
|
NewAddress = personInput.NewAddress,
|
||||||
|
RegisterDate = personInput.RegisterDate,
|
||||||
|
Station = personInput.Station,
|
||||||
|
Category = personInput.Category,
|
||||||
|
CategoryLevel = personInput.CategoryLevel,
|
||||||
|
EntranceDate = personInput.EntranceDate,
|
||||||
|
IsOut = personInput.IsOut,
|
||||||
|
LeaveDate = personInput.LeaveDate,
|
||||||
|
IsBlackList = personInput.IsBlackList,
|
||||||
|
DeviceNumber = personInput.DeviceNumber,
|
||||||
|
DepartName = personInput.DepartName,
|
||||||
|
UploadTime = personInput.UploadTime
|
||||||
|
};
|
||||||
|
db.Bo_Sheng_Person.InsertOnSubmit(table);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
getPerson.ProjectId = personInput.ProjectId;
|
||||||
|
getPerson.CreateDate = personInput.CreateDate;
|
||||||
|
getPerson.CreateUser = personInput.CreateUser;
|
||||||
|
getPerson.OperDate = personInput.OperDate;
|
||||||
|
getPerson.OperUser = personInput.OperUser;
|
||||||
|
getPerson.Name = personInput.Name;
|
||||||
|
getPerson.Sex = personInput.Sex;
|
||||||
|
getPerson.BirthDay = personInput.BirthDay;
|
||||||
|
getPerson.Address = personInput.Address;
|
||||||
|
getPerson.Nation = personInput.Nation;
|
||||||
|
getPerson.IdentifyID = personInput.IdentifyID;
|
||||||
|
getPerson.Police = personInput.Police;
|
||||||
|
getPerson.ValidPeriodStart = personInput.ValidPeriodStart;
|
||||||
|
getPerson.ValidPeriodEnd = personInput.ValidPeriodEnd;
|
||||||
|
getPerson.Telephone = personInput.Telephone;
|
||||||
|
getPerson.Age = personInput.Age;
|
||||||
|
getPerson.JobNumber = personInput.JobNumber;
|
||||||
|
getPerson.NewAddress = personInput.NewAddress;
|
||||||
|
getPerson.RegisterDate = personInput.RegisterDate;
|
||||||
|
getPerson.Station = personInput.Station;
|
||||||
|
getPerson.Category = personInput.Category;
|
||||||
|
getPerson.CategoryLevel = personInput.CategoryLevel;
|
||||||
|
getPerson.EntranceDate = personInput.EntranceDate;
|
||||||
|
getPerson.IsOut = personInput.IsOut;
|
||||||
|
getPerson.LeaveDate = personInput.LeaveDate;
|
||||||
|
getPerson.IsBlackList = personInput.IsBlackList;
|
||||||
|
getPerson.DeviceNumber = personInput.DeviceNumber;
|
||||||
|
getPerson.DepartName = personInput.DepartName;
|
||||||
|
getPerson.UploadTime = personInput.UploadTime;
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除人员信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public Model.ResponeData DelPerson(string id)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getPerson = db.Bo_Sheng_Person.FirstOrDefault(x => x.ID == id);
|
||||||
|
if (getPerson != null)
|
||||||
|
{
|
||||||
|
db.Bo_Sheng_Person.DeleteOnSubmit(getPerson);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 添加培训记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="trainInput"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public Model.ResponeData AddTrain([FromBody] TrainInput trainInput)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(trainInput.ID))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ID 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(trainInput.ProjectId))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ProjectId 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getTrain = db.Bo_Sheng_Train.FirstOrDefault(x => x.ID == trainInput.ID);
|
||||||
|
if (getTrain == null)
|
||||||
|
{
|
||||||
|
Model.Bo_Sheng_Train table = new Model.Bo_Sheng_Train
|
||||||
|
{
|
||||||
|
ID = trainInput.ID,
|
||||||
|
ProjectId = trainInput.ProjectId,
|
||||||
|
RecordName = trainInput.RecordName,
|
||||||
|
TrainType = trainInput.TrainType,
|
||||||
|
PaperMode = trainInput.PaperMode,
|
||||||
|
TrainMode = trainInput.TrainMode,
|
||||||
|
TrainPrincipal = trainInput.TrainPrincipal,
|
||||||
|
TrainStartDate = trainInput.TrainStartDate,
|
||||||
|
TrainEndDate = trainInput.TrainEndDate,
|
||||||
|
TrainContent = trainInput.TrainContent,
|
||||||
|
TrainDescript = trainInput.TrainDescript,
|
||||||
|
TrainPeriod = trainInput.TrainPeriod,
|
||||||
|
PersonCount = trainInput.PersonCount,
|
||||||
|
PassedCount = trainInput.PassedCount,
|
||||||
|
CourseCount = trainInput.CourseCount,
|
||||||
|
CourseDuration = trainInput.CourseDuration,
|
||||||
|
Source = trainInput.Source,
|
||||||
|
Description = trainInput.Description,
|
||||||
|
DeviceNo = trainInput.DeviceNo,
|
||||||
|
UploadTime = trainInput.UploadTime,
|
||||||
|
TrainDepart = trainInput.TrainDepart,
|
||||||
|
CreateDate = trainInput.CreateDate,
|
||||||
|
CreateUser = trainInput.CreateUser,
|
||||||
|
OperDate = trainInput.OperDate,
|
||||||
|
OperUser = trainInput.OperUser,
|
||||||
|
};
|
||||||
|
db.Bo_Sheng_Train.InsertOnSubmit(table);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
getTrain.ProjectId = trainInput.ProjectId;
|
||||||
|
getTrain.RecordName = trainInput.RecordName;
|
||||||
|
getTrain.TrainType = trainInput.TrainType;
|
||||||
|
getTrain.PaperMode = trainInput.PaperMode;
|
||||||
|
getTrain.TrainMode = trainInput.TrainMode;
|
||||||
|
getTrain.TrainPrincipal = trainInput.TrainPrincipal;
|
||||||
|
getTrain.TrainStartDate = trainInput.TrainStartDate;
|
||||||
|
getTrain.TrainEndDate = trainInput.TrainEndDate;
|
||||||
|
getTrain.TrainContent = trainInput.TrainContent;
|
||||||
|
getTrain.TrainDescript = trainInput.TrainDescript;
|
||||||
|
getTrain.TrainPeriod = trainInput.TrainPeriod;
|
||||||
|
getTrain.PersonCount = trainInput.PersonCount;
|
||||||
|
getTrain.PassedCount = trainInput.PassedCount;
|
||||||
|
getTrain.CourseCount = trainInput.CourseCount;
|
||||||
|
getTrain.CourseDuration = trainInput.CourseDuration;
|
||||||
|
getTrain.Source = trainInput.Source;
|
||||||
|
getTrain.Description = trainInput.Description;
|
||||||
|
getTrain.DeviceNo = trainInput.DeviceNo;
|
||||||
|
getTrain.UploadTime = trainInput.UploadTime;
|
||||||
|
getTrain.TrainDepart = trainInput.TrainDepart;
|
||||||
|
getTrain.CreateDate = trainInput.CreateDate;
|
||||||
|
getTrain.CreateUser = trainInput.CreateUser;
|
||||||
|
getTrain.OperDate = trainInput.OperDate;
|
||||||
|
getTrain.OperUser = trainInput.OperUser;
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code=0;
|
||||||
|
responeData.message= ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除培训记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public Model.ResponeData DelTrain(string id)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getTrain = db.Bo_Sheng_Train.FirstOrDefault(x => x.ID == id);
|
||||||
|
if (getTrain != null)
|
||||||
|
{
|
||||||
|
db.Bo_Sheng_Train.DeleteOnSubmit(getTrain);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 添加培训人员信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="trainPersonInput"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public Model.ResponeData AddTrainPerson([FromBody] TrainPersonInput trainPersonInput)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(trainPersonInput.ID))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ID 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(trainPersonInput.ProjectId))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ProjectId 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getTrainPerson = db.Bo_Sheng_TrainPerson.FirstOrDefault(x => x.ID == trainPersonInput.ID);
|
||||||
|
if (getTrainPerson == null)
|
||||||
|
{
|
||||||
|
Model.Bo_Sheng_TrainPerson table = new Model.Bo_Sheng_TrainPerson
|
||||||
|
{
|
||||||
|
ID = trainPersonInput.ID,
|
||||||
|
ProjectId = trainPersonInput.ProjectId,
|
||||||
|
EmpName = trainPersonInput.EmpName,
|
||||||
|
IdentifyId = trainPersonInput.IdentifyId,
|
||||||
|
Station = trainPersonInput.Station,
|
||||||
|
CategoryName = trainPersonInput.CategoryName,
|
||||||
|
DepartName = trainPersonInput.DepartName,
|
||||||
|
SignInDate = trainPersonInput.SignInDate,
|
||||||
|
TrainPeriod = trainPersonInput.TrainPeriod,
|
||||||
|
State = trainPersonInput.State,
|
||||||
|
TotalScore = trainPersonInput.TotalScore,
|
||||||
|
PassScore = trainPersonInput.PassScore,
|
||||||
|
Score = trainPersonInput.Score,
|
||||||
|
IsPass = trainPersonInput.IsPass,
|
||||||
|
GroupNo = trainPersonInput.GroupNo,
|
||||||
|
ExamNo = trainPersonInput.ExamNo,
|
||||||
|
ExamCount = trainPersonInput.ExamCount,
|
||||||
|
DeviceNo = trainPersonInput.DeviceNo,
|
||||||
|
UploadTime = trainPersonInput.UploadTime,
|
||||||
|
Answers = trainPersonInput.Answers,
|
||||||
|
CreateDate = trainPersonInput.CreateDate,
|
||||||
|
CreateUser = trainPersonInput.CreateUser,
|
||||||
|
OperDate = trainPersonInput.OperDate,
|
||||||
|
OperUser = trainPersonInput.OperUser
|
||||||
|
};
|
||||||
|
db.Bo_Sheng_TrainPerson.InsertOnSubmit(table);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
getTrainPerson.ProjectId = trainPersonInput.ProjectId;
|
||||||
|
getTrainPerson.EmpName = trainPersonInput.EmpName;
|
||||||
|
getTrainPerson.IdentifyId = trainPersonInput.IdentifyId;
|
||||||
|
getTrainPerson.Station = trainPersonInput.Station;
|
||||||
|
getTrainPerson.CategoryName = trainPersonInput.CategoryName;
|
||||||
|
getTrainPerson.DepartName = trainPersonInput.DepartName;
|
||||||
|
getTrainPerson.SignInDate = trainPersonInput.SignInDate;
|
||||||
|
getTrainPerson.TrainPeriod = trainPersonInput.TrainPeriod;
|
||||||
|
getTrainPerson.State = trainPersonInput.State;
|
||||||
|
getTrainPerson.TotalScore = trainPersonInput.TotalScore;
|
||||||
|
getTrainPerson.PassScore = trainPersonInput.PassScore;
|
||||||
|
getTrainPerson.Score = trainPersonInput.Score;
|
||||||
|
getTrainPerson.IsPass = trainPersonInput.IsPass;
|
||||||
|
getTrainPerson.GroupNo = trainPersonInput.GroupNo;
|
||||||
|
getTrainPerson.ExamNo = trainPersonInput.ExamNo;
|
||||||
|
getTrainPerson.ExamCount = trainPersonInput.ExamCount;
|
||||||
|
getTrainPerson.DeviceNo = trainPersonInput.DeviceNo;
|
||||||
|
getTrainPerson.UploadTime = trainPersonInput.UploadTime;
|
||||||
|
getTrainPerson.Answers = trainPersonInput.Answers;
|
||||||
|
getTrainPerson.CreateDate = trainPersonInput.CreateDate;
|
||||||
|
getTrainPerson.CreateUser = trainPersonInput.CreateUser;
|
||||||
|
getTrainPerson.OperDate = trainPersonInput.OperDate;
|
||||||
|
getTrainPerson.OperUser = trainPersonInput.OperUser;
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除培训人员信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public Model.ResponeData DelTrainPerson(string id)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getTrainPerson = db.Bo_Sheng_TrainPerson.FirstOrDefault(x => x.ID == id);
|
||||||
|
if (getTrainPerson != null)
|
||||||
|
{
|
||||||
|
db.Bo_Sheng_TrainPerson.DeleteOnSubmit(getTrainPerson);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 添加人员培训记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="personTrainRecordInput"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public Model.ResponeData AddTrainPersonRecord([FromBody] PersonTrainRecordInput personTrainRecordInput)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(personTrainRecordInput.ID))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ID 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(personTrainRecordInput.ProjectId))
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = "ProjectId 不能为空";
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getPersonTrainRecord = db.Bo_Sheng_PersonTrainRecord.FirstOrDefault(x => x.ID == personTrainRecordInput.ID);
|
||||||
|
if (getPersonTrainRecord == null)
|
||||||
|
{
|
||||||
|
Model.Bo_Sheng_PersonTrainRecord table = new Model.Bo_Sheng_PersonTrainRecord
|
||||||
|
{
|
||||||
|
ID = personTrainRecordInput.ID,
|
||||||
|
ProjectId = personTrainRecordInput.ProjectId,
|
||||||
|
EmpName = personTrainRecordInput.EmpName,
|
||||||
|
IdentifyId = personTrainRecordInput.IdentifyId,
|
||||||
|
CategoryName = personTrainRecordInput.CategoryName,
|
||||||
|
DepartName = personTrainRecordInput.DepartName,
|
||||||
|
TrainPeriod = personTrainRecordInput.TrainPeriod,
|
||||||
|
TotalScore = personTrainRecordInput.TotalScore,
|
||||||
|
PassScore = personTrainRecordInput.PassScore,
|
||||||
|
Score = personTrainRecordInput.Score,
|
||||||
|
IsPass = personTrainRecordInput.IsPass,
|
||||||
|
GroupNo = personTrainRecordInput.GroupNo,
|
||||||
|
ExamNo = personTrainRecordInput.ExamNo,
|
||||||
|
ExamCount = personTrainRecordInput.ExamCount,
|
||||||
|
DeviceNo = personTrainRecordInput.DeviceNo,
|
||||||
|
Answers = personTrainRecordInput.Answers,
|
||||||
|
RecordName = personTrainRecordInput.RecordName,
|
||||||
|
TrainType = personTrainRecordInput.TrainType,
|
||||||
|
PaperMode = personTrainRecordInput.PaperMode,
|
||||||
|
TrainMode = personTrainRecordInput.TrainMode,
|
||||||
|
TrainPrincipal = personTrainRecordInput.TrainPrincipal,
|
||||||
|
TrainStartDate = personTrainRecordInput.TrainStartDate,
|
||||||
|
TrainEndDate = personTrainRecordInput.TrainEndDate,
|
||||||
|
TrainContent = personTrainRecordInput.TrainContent,
|
||||||
|
TrainDescript = personTrainRecordInput.TrainDescript,
|
||||||
|
};
|
||||||
|
db.Bo_Sheng_PersonTrainRecord.InsertOnSubmit(table);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
getPersonTrainRecord.ProjectId = personTrainRecordInput.ProjectId;
|
||||||
|
getPersonTrainRecord.EmpName = personTrainRecordInput.EmpName;
|
||||||
|
getPersonTrainRecord.IdentifyId = personTrainRecordInput.IdentifyId;
|
||||||
|
getPersonTrainRecord.CategoryName = personTrainRecordInput.CategoryName;
|
||||||
|
getPersonTrainRecord.DepartName = personTrainRecordInput.DepartName;
|
||||||
|
getPersonTrainRecord.TrainPeriod = personTrainRecordInput.TrainPeriod;
|
||||||
|
getPersonTrainRecord.TotalScore = personTrainRecordInput.TotalScore;
|
||||||
|
getPersonTrainRecord.PassScore = personTrainRecordInput.PassScore;
|
||||||
|
getPersonTrainRecord.Score = personTrainRecordInput.Score;
|
||||||
|
getPersonTrainRecord.IsPass = personTrainRecordInput.IsPass;
|
||||||
|
getPersonTrainRecord.GroupNo = personTrainRecordInput.GroupNo;
|
||||||
|
getPersonTrainRecord.ExamNo = personTrainRecordInput.ExamNo;
|
||||||
|
getPersonTrainRecord.ExamCount = personTrainRecordInput.ExamCount;
|
||||||
|
getPersonTrainRecord.DeviceNo = personTrainRecordInput.DeviceNo;
|
||||||
|
getPersonTrainRecord.Answers = personTrainRecordInput.Answers;
|
||||||
|
getPersonTrainRecord.RecordName = personTrainRecordInput.RecordName;
|
||||||
|
getPersonTrainRecord.TrainType = personTrainRecordInput.TrainType;
|
||||||
|
getPersonTrainRecord.PaperMode = personTrainRecordInput.PaperMode;
|
||||||
|
getPersonTrainRecord.TrainMode = personTrainRecordInput.TrainMode;
|
||||||
|
getPersonTrainRecord.TrainPrincipal = personTrainRecordInput.TrainPrincipal;
|
||||||
|
getPersonTrainRecord.TrainStartDate = personTrainRecordInput.TrainStartDate;
|
||||||
|
getPersonTrainRecord.TrainEndDate = personTrainRecordInput.TrainEndDate;
|
||||||
|
getPersonTrainRecord.TrainContent = personTrainRecordInput.TrainContent;
|
||||||
|
getPersonTrainRecord.TrainDescript = personTrainRecordInput.TrainDescript;
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 删除人员培训记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public Model.ResponeData DelTrainPersonRecord(string id)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
var getPersonTrainRecord = db.Bo_Sheng_PersonTrainRecord.FirstOrDefault(x => x.ID == id);
|
||||||
|
if (getPersonTrainRecord != null)
|
||||||
|
{
|
||||||
|
db.Bo_Sheng_PersonTrainRecord.DeleteOnSubmit(getPersonTrainRecord);
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
responeData.code = 0;
|
||||||
|
responeData.message = ex.ToString();
|
||||||
|
}
|
||||||
|
return responeData;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -238,5 +238,90 @@ namespace WebAPI.Controllers
|
||||||
return responeData;
|
return responeData;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public Model.ResponeData AddUnit([FromBody] Model.UnitItem unit)
|
||||||
|
{
|
||||||
|
var responeData = new Model.ResponeData();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||||
|
{
|
||||||
|
Model.Base_Unit newUnit = db.Base_Unit.FirstOrDefault(x => x.CollCropCode == unit.CollCropCode);
|
||||||
|
if (newUnit == null)
|
||||||
|
{
|
||||||
|
newUnit = new Model.Base_Unit
|
||||||
|
{
|
||||||
|
UnitId = SQLHelper.GetNewID(typeof(Model.Base_Unit))
|
||||||
|
};
|
||||||
|
db.Base_Unit.InsertOnSubmit(newUnit);
|
||||||
|
newUnit.UnitCode = unit.UnitCode;//代码
|
||||||
|
newUnit.UnitName = unit.UnitName;//名称
|
||||||
|
newUnit.Corporate = unit.Corporate;//法人代表
|
||||||
|
newUnit.Address = unit.Address;//地址
|
||||||
|
newUnit.Telephone = unit.Telephone;//电话
|
||||||
|
newUnit.ShortUnitName = unit.ShortUnitName;//单位简称
|
||||||
|
newUnit.Fax = unit.Fax;//传真
|
||||||
|
newUnit.EMail = unit.EMail;//邮箱
|
||||||
|
|
||||||
|
newUnit.IsBranch = unit.IsBranch;//是否分公司
|
||||||
|
newUnit.ProjectRange = unit.ProjectRange;//工程范围
|
||||||
|
newUnit.IsChina = unit.IsChina;//是否中国企业
|
||||||
|
newUnit.CollCropCode = unit.CollCropCode;//社会统一信用代码
|
||||||
|
newUnit.LinkName = unit.LinkName;//联系人姓名
|
||||||
|
if (!string.IsNullOrEmpty(unit.IdcardType))
|
||||||
|
{
|
||||||
|
var basicData = db.RealName_BasicData.FirstOrDefault(x => x.DictTypeCode == "ZHENGJIAN_TYPE" && x.DictName == unit.IdcardType);
|
||||||
|
if (basicData != null)
|
||||||
|
{
|
||||||
|
newUnit.IdcardType = basicData.DictCode;//联系人证件类型 (香港永久性身份证 军官证 其他 警官证 台湾居民身份证 身份证 护照)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newUnit.IdcardNumber = unit.IdcardNumber;//联系人证件号
|
||||||
|
newUnit.LinkMobile = unit.LinkMobile;//联系人电话
|
||||||
|
newUnit.CollCropStatus = unit.CollCropStatus;//是否黑名单企业
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(unit.ProjectId))
|
||||||
|
{
|
||||||
|
Model.Project_ProjectUnit projectUnit = Funs.DB.Project_ProjectUnit.FirstOrDefault(x => x.UnitId == newUnit.UnitId && x.ProjectId == unit.ProjectId);
|
||||||
|
if (projectUnit == null)
|
||||||
|
{
|
||||||
|
projectUnit = new Model.Project_ProjectUnit();
|
||||||
|
projectUnit.ProjectUnitId = SQLHelper.GetNewID(typeof(Model.Base_Unit));
|
||||||
|
db.Project_ProjectUnit.InsertOnSubmit(projectUnit);
|
||||||
|
|
||||||
|
projectUnit.ProjectId = unit.ProjectId;
|
||||||
|
projectUnit.UnitId = newUnit.UnitId;
|
||||||
|
projectUnit.InTime = DateTime.Now;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(unit.UnitTypeId))
|
||||||
|
{
|
||||||
|
var unitTypeList = (from x in Funs.DB.Sys_Const
|
||||||
|
where x.GroupId == ConstValue.Group_ProjectUnitType
|
||||||
|
orderby x.SortIndex
|
||||||
|
select x).ToList();
|
||||||
|
var unitType = unitTypeList.FirstOrDefault(x => x.ConstText == unit.UnitTypeId);
|
||||||
|
if (unitType != null)
|
||||||
|
{
|
||||||
|
projectUnit.UnitType = unitType.ConstValue;// 单位类型(监理 施工分包 安装 其他 业主 检测单位 其他 总包)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//projectUnit.UnitType = newUnit.UnitTypeId;
|
||||||
|
|
||||||
|
db.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
responeData.data = newUnit.UnitId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex) { }
|
||||||
|
return responeData;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
有关如何配置 ASP.NET 应用程序的详细信息,请访问
|
有关如何配置 ASP.NET 应用程序的详细信息,请访问
|
||||||
https://go.microsoft.com/fwlink/?LinkId=301879
|
https://go.microsoft.com/fwlink/?LinkId=301879
|
||||||
|
|
|
@ -57,6 +57,9 @@
|
||||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
@ -124,6 +127,9 @@
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.4\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.4\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\WebActivatorEx.2.0\lib\net40\WebActivatorEx.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="WebGrease">
|
<Reference Include="WebGrease">
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
|
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
|
||||||
|
@ -142,7 +148,9 @@
|
||||||
<Compile Include="App_Start\BundleConfig.cs" />
|
<Compile Include="App_Start\BundleConfig.cs" />
|
||||||
<Compile Include="App_Start\FilterConfig.cs" />
|
<Compile Include="App_Start\FilterConfig.cs" />
|
||||||
<Compile Include="App_Start\RouteConfig.cs" />
|
<Compile Include="App_Start\RouteConfig.cs" />
|
||||||
|
<Compile Include="App_Start\SwaggerConfig.cs" />
|
||||||
<Compile Include="App_Start\WebApiConfig.cs" />
|
<Compile Include="App_Start\WebApiConfig.cs" />
|
||||||
|
<Compile Include="Controllers\AnBangToolController.cs" />
|
||||||
<Compile Include="Controllers\BaseInfoController.cs" />
|
<Compile Include="Controllers\BaseInfoController.cs" />
|
||||||
<Compile Include="Controllers\CommonController.cs" />
|
<Compile Include="Controllers\CommonController.cs" />
|
||||||
<Compile Include="Controllers\CQMS\InspectionManagementController.cs" />
|
<Compile Include="Controllers\CQMS\InspectionManagementController.cs" />
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
<IISExpressUseClassicPipelineMode />
|
<IISExpressUseClassicPipelineMode />
|
||||||
<UseGlobalApplicationHostFile />
|
<UseGlobalApplicationHostFile />
|
||||||
<NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile>
|
<NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile>
|
||||||
<Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
|
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
|
||||||
<Controller_SelectedScaffolderCategoryPath>root/Controller</Controller_SelectedScaffolderCategoryPath>
|
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
|
||||||
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
|
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
|
||||||
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
|
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
|
||||||
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
|
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
|
||||||
|
|
|
@ -25,5 +25,8 @@
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
|
||||||
<package id="Modernizr" version="2.8.3" targetFramework="net461" />
|
<package id="Modernizr" version="2.8.3" targetFramework="net461" />
|
||||||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
|
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
|
||||||
|
<package id="Swashbuckle" version="5.6.0" targetFramework="net461" />
|
||||||
|
<package id="Swashbuckle.Core" version="5.6.0" targetFramework="net461" />
|
||||||
|
<package id="WebActivatorEx" version="2.0" targetFramework="net461" />
|
||||||
<package id="WebGrease" version="1.6.0" targetFramework="net461" />
|
<package id="WebGrease" version="1.6.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue