替换infopath项目,采用SharePoint SPFX框架
jiang_xin_yuyy
2024-08-12 571ff91fcfbac3781a82340c27a24c825dee14fb
具体函数注释及说明
10个文件已修改
189 ■■■■ 已修改文件
ISAM/isamServer/isamServer/Controllers/ApprovalController.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Controllers/FileController.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Controllers/HomeController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Controllers/SealController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Controllers/VMController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Controllers/VTController.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Infrastructure/HandleFile.cs 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Infrastructure/Utils/DataTableHelper.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Infrastructure/Utils/ObjectHelper.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ISAM/isamServer/isamServer/Program.cs 6 ●●●● 补丁 | 查看 | 原始文档 | 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 =>