服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-09-29 564d1fcca01d3c528e283c9feef3ea1a05140e17
Tiger.Api/Controllers/Test/TestController.R.cs
@@ -18,6 +18,11 @@
using Tiger.Model.Sharetronic.Shelf;
using Newtonsoft.Json.Linq;
using Tiger.Api.iBiz;
using System.Net;
using System.Reflection;
using Swifter.Tools;
using Tiger.Model.Entitys.MES.Position;
using Microsoft.CodeAnalysis.Options;
namespace Tiger.Api.Controllers.Test
{
@@ -34,6 +39,21 @@
        public IActionResult GetDBSchemaAsync()
        {
            return Ok(Biz.Db.DbMaintenance.GetTableInfoList());
        }
        [HttpGet]
        public IActionResult GetEntitys(string AssemblyName, string NameSpace)
        {
            Assembly assembly = Assembly.Load(AssemblyName);
            Type[] types = assembly.GetTypes();
            var entitys = types.Where(q => q.GetInterfaces().Contains(typeof(iEntity)) && q.IsClass).ToList();
            var data = entitys.Select(q => new
            {
                q.Namespace,
                q.FullName,
                Properties = q.GetProperties().Select(p => new { p.Name, Type = p.PropertyType.Name }).ToList()
            });
            return Ok(data);
        }
        /// <summary>
@@ -86,14 +106,19 @@
        [HttpGet]
        public async Task<IActionResult> Get2Async(string param)
        {
            //var auth = new AuthOption() { UserId = "admin", ByOrg = true, ByWh = true };
            var auth = new AuthOption() { UserId = "admin", ByOrg = true, ByWh = true };
            //var data = await Biz.Db.Queryable<BIZ_ERP_PO>().Where(q => q.BILLTYPE == 11)
            //    //.ByAuth("admin", DbAuth.Org | DbAuth.Wh)
            //    .ByAuth(auth)
            //    .ToListAsync();
            //data = await Biz.Db.Queryable<BIZ_ERP_PO>().ByAuth("admin", DbAuth.Org).Where(q => q.BILLTYPE == 11).ToListAsync();
            var data = await Biz.Db.Queryable<BIZ_ERP_PO>().Where(q => q.BILLTYPE == 11).ToListAsync();
            //var data = await Biz.Db.Queryable<BIZ_ERP_PO>().Where(q => q.BILLTYPE == 11).ToListAsync();
            //var dtl = await Biz.Db.Queryable<BIZ_ERP_PO_DTL>().ByAuth("admin", DbAuth.Org | DbAuth.Wh).Where(q => q.BILLCODE == "AH3301-221000108").ToListAsync();
            var query = Biz.Db.Queryable<WMS_ITEM_PKG>().ByAuth("admin", DbAuth.Org | DbAuth.Wh).Where(t => t.SN == "barcode.SN").First();//
            var  data = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
                                                    .ByAuth(auth)//.ByAuth("admin", DbAuth.Org | DbAuth.Wh)
                                                    .Where((q, s) => s.SN == "input.SN" && q.ACT_LINE == "CurLine.LINE_CODE" && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((q, s) => new { Batch = q, SN = s }).First();
            return Ok(data);
        }
@@ -140,9 +165,9 @@
            //Biz.Db.Fastest<WMS_WAREHOUSE>().BulkUpdate(data, new string[] { "ID" }, new string[] { "UPDATE_TIME", "UPDATE_USER" });
            //Biz.Db.Insertable(data, "Interface").ExecuteCommand();
            //var root = new SugarParameter("root", "system01");
            //var dt = Biz.Db.Ado.UseStoredProcedure().GetDataTable("PKG_SYS_GET_MENU", root);//返回dt
            //var data = Biz.Db.Ado.UseStoredProcedure().SqlQuery<SYS_MENU>("PKG_SYS_GET_MENU", root);//返回List
            var root = new SugarParameter("root", "system01");
            var dt = Biz.Db.Ado.UseStoredProcedure().GetDataTable("SP_SYS_GET_MENU", root);//返回dt
            var data = Biz.Db.Ado.UseStoredProcedure().SqlQuery<SYS_MENU>("SP_SYS_GET_MENU", root);//返回List
            ;
            //var data = Biz.Db.Queryable<BIZ_SRM_DLVY>()
            //    .IncludesAllFirstLayer()
@@ -172,7 +197,7 @@
            //{
            //    throw dbTran.ErrorException;
            //}
            return Ok("");
            return Ok(data);
        }
        /// <summary>
        /// 
@@ -231,46 +256,6 @@
            return Ok($"设置{param}成功");
        }
        /// <summary>
        /// SendMQTTAsync
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<IActionResult> SendMQTTAsync([FromBody] ApiAction action)
        {
            string msg = "";
            await Task.Run(() =>
            {
                msg = action.ID;
                MQTTHelper.Send("TestSendMQTT001", new MQTTMessage()
                {
                    Type = "TestSendMQTT001",
                    Content = "TestSendMQTT001,测试消息!",
                    Data = "",
                    DataType = typeof(String).Name,
                    IsSuccessed = true,
                });
            });
            return Ok(MQTTHelper.Send(action.GetResponse(msg)));
        }
        /// <summary>
        /// DeleteMQTTTopicAsync
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<IActionResult> DeleteMQTTTopicAsync([FromBody] ApiAction action)
        {
            string msg = "";
            await Task.Run(() =>
            {
                msg = MQTTHelper.DeleteTopic(action.ID) ? "删除Topic成功" : "删除Topic失败";
            });
            return Ok(action.GetResponse(msg));
        }
        [HttpPost]
        public async Task<IActionResult> TestTask([FromBody] ApiAction action)
        {
@@ -320,10 +305,10 @@
    [Route("api/[controller]/[action]")]
    public partial class _TestController : ControllerBase
    {
        [HttpGet]
        public async Task<IActionResult> DoSomething(int duration)
        public async Task<IActionResult> DoSomething(int duration, string code)
        {
            Barcode b = new("asdasd");
            var begin = DateTime.Now;
            while ((DateTime.Now - begin).TotalSeconds <= duration)
            {
@@ -333,7 +318,77 @@
                ConsoleExt.WriteLine($"Working {begin:mmssfff} ... {(percent > 1 ? 1 : percent):P0} ...", ConsoleColor.Green);
            }
            Logger.Default.Info($"{begin:mmssfff} completed");
            return Ok($"{begin:mmssfff} completed {b.DateCode}");
        }
        [HttpPost]
        public async Task<IActionResult> MESSubmitAsync([FromBody] ApiAction<SubmitInput> action)
        {
            var data = action.Data.Data;
            var act = Biz.Db.Queryable<MES_WO_ACTION>().First(q => q.ID == data);
            var result = act.OPTION_1?.ToString().JsonToObject<List<WipPkgItem>>();
            return Ok(result?.ToJson());
        }
    }
    /// <summary>
    /// MQTT测试控制器
    /// </summary>
    [ApiController]
    [Route("api/[controller]/[action]")]
    public partial class _MqttTestController : ControllerBase
    {
        [HttpGet]
        public async Task<IActionResult> DoSomething1(int duration)
        {
            var begin = DateTime.Now;
            return Ok($"{begin:mmssfff} completed");
        }
        /// <summary>
        /// SendMQTTAsync
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        //[HttpPost]
        //public async Task<IActionResult> SendMQTTAsync([FromBody] ApiAction action)
        //{
        //    string msg = "";
        //    await Task.Run(() =>
        //    {
        //        msg = action.ID;
        //        MQTTHelper.Send("TestSendMQTT001", new MQTTMessage()
        //        {
        //            Type = "TestSendMQTT001",
        //            Content = "TestSendMQTT001,测试消息!",
        //            Data = "",
        //            DataType = typeof(String).Name,
        //            IsSuccessed = true,
        //        });
        //    });
        //    return Ok(MQTTHelper.Send(action.GetResponse(msg)));
        //}
        /// <summary>
        /// DeleteMQTTTopicAsync
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<IActionResult> DeleteMQTTTopicAsync([FromBody] ApiAction action)
        {
            string msg = "";
            await Task.Run(() =>
            {
                //msg = MQTTHelper.DeleteTopic(action.ID) ? "删除Topic成功" : "删除Topic失败";
            });
            return Ok(action.GetResponse(msg));
        }
    }
}