ISAM/isamServer/isamServer/Controllers/ApprovalController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Controllers/FileController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Controllers/HomeController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Controllers/SealController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Controllers/VMController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Controllers/VTController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Infrastructure/HandleFile.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Infrastructure/Utils/DataTableHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Infrastructure/Utils/ObjectHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ISAM/isamServer/isamServer/Program.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ISAM/isamServer/isamServer/Controllers/ApprovalController.cs
@@ -26,7 +26,11 @@ { WorkFlowCode.ISAM_UnitPrice_Apply_New, ISAM_UnitPrice_Apply_New } }; } /// <summary> /// 审批平台调用批量审批的接口 /// </summary> /// <param name="approveModel"></param> /// <returns></returns> [HttpPost] [Route("/api/Approves")] public IActionResult Approves([FromBody] List<ApproveModel> approveModel) @@ -60,7 +64,11 @@ } } /// <summary> /// 审批的接口 /// </summary> /// <param name="approveModel"></param> /// <returns></returns> [HttpPost] public IActionResult Approve([FromBody] ApproveModel approveModel) { @@ -89,7 +97,11 @@ } } /// <summary> /// 拒绝的接口 /// </summary> /// <param name="approveModel"></param> /// <returns></returns> [HttpPost] public IActionResult Refuse([FromBody] ApproveModel approveModel) { @@ -117,7 +129,11 @@ }); } } /// <summary> /// 实际处理审批和拒绝的方法 /// </summary> /// <param name="submitModel"></param> /// <returns></returns> [NonAction] private bool ApproveOrRefuse(ApproveModel submitModel) { @@ -164,6 +180,9 @@ return dBHelper.ExecuteNonQuery(insertSql) > 0; } /// <summary> /// 审批的Model /// </summary> public record ApproveModel { /// <summary> @@ -194,7 +213,12 @@ public string FilePath { get; set; } = ""; public string FileName { get; set; } = ""; } /// <summary> /// 自动发起程序,在ISAM的实际运行业务逻辑的系统发起审批后,PN3系统会调用这个接口 /// </summary> /// <param name="id">id是PN3配置的表单Code</param> /// <param name="DataModel"></param> /// <returns></returns> [HttpPost("{id}")] public string AutoStartFlow(string id, [FromBody] AutoStartFlowDataModel DataModel) { @@ -210,7 +234,7 @@ } else { //这里在处理参数 string[] arr = data.Split(new string[] { "@!@" }, StringSplitOptions.RemoveEmptyEntries); var ParamsDict = new Dictionary<string, string>(); @@ -282,7 +306,9 @@ public string data { get; set; } = ""; } /// <summary> /// 自动发起程序的返回结果,和PN3系统约定好的返回结果 /// </summary> public class FlowApiResult { public FlowApiResult() @@ -303,12 +329,26 @@ public string Messge { get; set; } } /// <summary> /// 这里是ISAM系统的业务逻辑,根据不同的业务逻辑调用不同的方法,每一个枚举值对应一个方法,和PN3系统约定好的,传入的id对应到枚举值 /// </summary> public enum WorkFlowCode { /// <summary> /// 询价申请 /// </summary> ISAM_PR_ApplyNew, /// <summary> /// 询价取消 /// </summary> ISAM_PR_Cancel_Apply_New, /// <summary> /// 询价分配申请 /// </summary> ISAM_PR_VendSelect_Apply_New, /// <summary> /// 单价选定申请 /// </summary> ISAM_UnitPrice_Apply_New } [NonAction] @@ -443,6 +483,13 @@ { Red, Gray } /// <summary> /// 生产盖章图片,写入PN3的数据库 /// </summary> /// <param name="workcode"></param> /// <param name="instanceID"></param> /// <param name="sealColor"></param> /// <returns></returns> [NonAction] private bool Seal(string workcode,string instanceID,Color sealColor) { @@ -605,6 +652,12 @@ //return (uid8, true); } } /// <summary> /// 用于执行不同的业务逻辑,将字符串转换为枚举,然后执行对应的方法 /// </summary> /// <param name="option"></param> /// <param name="valuePairs"></param> /// <returns></returns> [NonAction] public (string, bool) ExecuteFunction(string option, Dictionary<string, string> valuePairs) { ISAM/isamServer/isamServer/Controllers/FileController.cs
@@ -20,11 +20,18 @@ readonly ConfigurationManager configuration; public FileController(Func<DBHelper.DBConnType, DBHelper> getDBHelper,ConfigurationManager configuration) { //数据库连接初始化 handleFile = new HandleFile(); PN3DBHelper = getDBHelper(DBHelper.DBConnType.PN3); //配置文件初始化 this.configuration = configuration; } /// <summary> /// 文件上传 /// </summary> /// <param name="file"></param> /// <param name="cancellationToken"></param> /// <returns></returns> [HttpPost] public async Task<IActionResult> Upload(IFormFile file, CancellationToken cancellationToken) { @@ -40,7 +47,13 @@ relativeUrl }); } /// <summary> /// 文件下载 /// </summary> /// <param name="param1"></param> /// <param name="param2"></param> /// <param name="param3"></param> /// <param name="cancellationToken"></param> [HttpGet("{param1}/{param2}/{param3}")] public async void Get(string param1, string param2, string param3, CancellationToken cancellationToken) { @@ -60,6 +73,11 @@ } } /// <summary> /// 有时候需要下载的文件是在共享文件夹中的,这时候就需要通过smb协议来下载文件 /// </summary> /// <param name="path"></param> /// <returns></returns> [HttpGet] public async Task<IActionResult> getShareFile(string path) { ISAM/isamServer/isamServer/Controllers/HomeController.cs
@@ -4,6 +4,10 @@ { public class HomeController : ControllerBase { /// <summary> /// 前端页面入口,重定向到pages页面 /// </summary> /// <returns></returns> [Route("/")] [HttpGet] public IActionResult Index() ISAM/isamServer/isamServer/Controllers/SealController.cs
@@ -13,6 +13,11 @@ { this.dBHelper = dBHelper; } /// <summary> /// 根据流程实例号获取印章列表 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("{id}")] public IActionResult Get(string id) { ISAM/isamServer/isamServer/Controllers/VMController.cs
@@ -12,7 +12,11 @@ public VMController(DBHelper dBHelper) { this.dBHelper = dBHelper; } /// <summary> /// 单价登录页面查询 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("{id}")] public IActionResult Get(string id) { ISAM/isamServer/isamServer/Controllers/VTController.cs
@@ -17,7 +17,11 @@ this.dBHelper = dBHelper; this.PN3DbHelper = getDBHelper(DBHelper.DBConnType.PN3); } /// <summary> /// 询价申请页面查询 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("{id}")] public IActionResult Get(string id) { @@ -39,7 +43,11 @@ } /// <summary> /// 询价取消页面查询 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("{id}")] public IActionResult GetCancel(string id) { @@ -59,7 +67,11 @@ } /// <summary> /// 批量询价申请页面查询 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet("{id}")] public IActionResult GetList(string id) { ISAM/isamServer/isamServer/Infrastructure/HandleFile.cs
@@ -11,6 +11,12 @@ { } /// <summary> /// 传入流和保存路径,保存文件,返回相对路径,如果保存路径为空则自动生成路径 /// </summary> /// <param name="readStream"></param> /// <param name="savePath"></param> /// <returns></returns> public async Task<string> SaveFile(Stream readStream,string? savePath) { (string relativePath,string absolutePath) = ComputeSavePath(savePath); @@ -20,7 +26,12 @@ } return relativePath; } /// <summary> /// 将一个字符串保存为文件,返回相对路径,如果保存路径为空则自动生成路径,主要用于保存文件日志 /// </summary> /// <param name="text"></param> /// <param name="savePath"></param> /// <returns></returns> public string SaveFile(string text, string? savePath) { (string relativePath, string absolutePath) = ComputeSavePath(savePath); @@ -36,6 +47,13 @@ } return relativePath; } /// <summary> /// 保存文件 /// </summary> /// <param name="readStream">文件可读流</param> /// <param name="cancellationToken">判断远程连接是否关闭,关闭则停止方法。该值由框架的提供,访问接口时无需提供</param> /// <param name="savePath">保存路径</param> /// <returns></returns> public async Task<string> SaveFile(Stream readStream, CancellationToken cancellationToken, string? savePath) { (string relativePath, string absolutePath) = ComputeSavePath(savePath); @@ -46,7 +64,11 @@ return relativePath; } /// <summary> /// 传入一个保存路径,返回相对路径和绝对路径,如果保存路径为空则自动生成路径 /// </summary> /// <param name="savePath"></param> /// <returns>(相对路径:string,绝对路径:string)</returns> static (string,string) ComputeSavePath(string? savePath) { string absolutePath = ""; @@ -67,17 +89,28 @@ } return (relativePath,absolutePath); } /// <summary> /// 获取文件流 /// </summary> /// <param name="path"></param> /// <returns></returns> public Stream GetFile(string path) { return new FileStream(path, FileMode.Open); } /// <summary> /// 获取文件流 /// </summary> /// <param name="path"></param> /// <returns></returns> public Stream GetFileAsync(string path) { return new FileStream(path, FileMode.Open); } /// <summary> /// 删除文件 /// </summary> /// <param name="path"></param> public void DeleteFile(string path) { File.Delete(path); ISAM/isamServer/isamServer/Infrastructure/Utils/DataTableHelper.cs
@@ -4,6 +4,11 @@ { public static class DataTableHelper { /// <summary> /// 将DataTable转换为Dictionary数组,有利于序列化 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static Dictionary<string, object>[] ToDictionaryArray(this DataTable dt) { var rows = dt.Rows; @@ -16,7 +21,11 @@ } return result; } /// <summary> /// 将DataRow转换为Dictionary,有利于序列化 /// </summary> /// <param name="row"></param> /// <returns></returns> public static Dictionary<string, object> ToDictionary(this DataRow row) { var columns = row.Table.Columns; ISAM/isamServer/isamServer/Infrastructure/Utils/ObjectHelper.cs
@@ -2,6 +2,11 @@ { public static class ObjectHelper { /// <summary> /// 判断对象是否为空,包括DBNull,主要用于业务逻辑中判断对象是否为空,这个判断将数据库中的DBNull,null,空字符串,没有属性值的对象都判断为空 /// </summary> /// <param name="obj"></param> /// <returns>返回True则对象为空对象,返回False则对象不是空对象</returns> public static bool IsEmptyObject(object obj) { if (obj == null) ISAM/isamServer/isamServer/Program.cs
@@ -12,12 +12,12 @@ builder.Services.AddConnections(); //读取配置文件 builder.Configuration.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); //DefaultConnection //依赖注入,获取的默认数据库连接,即ISAM数据库 builder.Services.AddScoped(provider => { return new DBHelper(builder.Configuration); }); //依赖注入,根据DBConnType获取不同的数据库连接 builder.Services.AddScoped<Func<DBHelper.DBConnType, DBHelper>>(provider => { return (DBHelper.DBConnType connType) => { @@ -30,7 +30,7 @@ }); //Cors字符串 //Cors字符串,用于跨域访问 var cors = builder.Configuration.GetSection("CorsOrigin").Get<string>().Split(","); builder.Services.AddCors(options =>