服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-05-30 7e25ed322740ed337296a990bac67e95bc250ac0
移出萌妻的类,增加实体查询的api方法
已删除4个文件
已修改9个文件
已添加5个文件
1199 ■■■■ 文件已修改
Tiger.Api.sln 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/Base/SystemController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/Test/TestController.R.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/BIZ_MES_WO.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/MES_WORKSHOP.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/SMT/SmtTool.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MengQi/Mq.Customer.cs 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MengQi/Mq.ModelInfo.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MengQi/Mq.SNData.cs 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MengQi/Tiger.Business.MengQi.csproj 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MengQi/User.cs 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/Language/LanguageEntity.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/Biz.Route.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/Tiger.Business.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/WMS/MengQi/Biz.Mq.Customer.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/WMS/MengQi/Biz.Mq.ModelInfo.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/WMS/MengQi/Biz.Mq.SNData.cs 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/WMS/MengQi/Biz.User.cs 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api.sln
@@ -26,6 +26,8 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tiger.Business.MES", "Tiger.Business.MES\Tiger.Business.MES.csproj", "{3848BCAB-4E77-4D5E-8BF0-2A747981C1B4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tiger.Business.MengQi", "Tiger.Business.MengQi\Tiger.Business.MengQi.csproj", "{DD5B5282-B673-45CB-8608-3AAEB4A469B9}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
@@ -74,6 +76,14 @@
        {3848BCAB-4E77-4D5E-8BF0-2A747981C1B4}.Release|Any CPU.Build.0 = Release|Any CPU
        {3848BCAB-4E77-4D5E-8BF0-2A747981C1B4}.Release|x86.ActiveCfg = Release|Any CPU
        {3848BCAB-4E77-4D5E-8BF0-2A747981C1B4}.Release|x86.Build.0 = Release|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Debug|x86.ActiveCfg = Debug|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Debug|x86.Build.0 = Debug|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Release|Any CPU.Build.0 = Release|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Release|x86.ActiveCfg = Release|Any CPU
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9}.Release|x86.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
@@ -84,6 +94,7 @@
        {E7540FE4-F284-4F66-A11C-24D846C4B558} = {FF44BF62-08C5-4B52-B24F-54CD79E96848}
        {60FA322B-9B03-4380-803C-63B1F240E453} = {70881CAB-17ED-4C46-895A-62F2CE39A607}
        {3848BCAB-4E77-4D5E-8BF0-2A747981C1B4} = {70881CAB-17ED-4C46-895A-62F2CE39A607}
        {DD5B5282-B673-45CB-8608-3AAEB4A469B9} = {70881CAB-17ED-4C46-895A-62F2CE39A607}
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {797A1D83-9F3C-4AEC-8A83-E3468102DBD1}
Tiger.Api/Controllers/Base/SystemController.cs
@@ -7,6 +7,7 @@
using Rhea.Common;
using Tiger.IBusiness;
using System.Threading;
using System.Linq;
namespace Tiger.Api.Controllers.Base
{
@@ -95,6 +96,26 @@
        }
        /// <summary>
        /// èŽ·å–Api产品
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("System/Base/[action]")]
        public IActionResult GetEntitys()
        {
            Assembly assembly = Assembly.Load("Tiger.Model");
            Type[] types = assembly.GetTypes();
            var entitys = types.Where(q => q.GetInterfaces().Contains(typeof(Model.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>
        /// GetCertification(ApiAction)
        /// åœ¨æ³¨å†Œè¡¨HKEY_LOCAL_MACHINE\SOFTWARE\TigerClouds节点中读取密钥证书
        /// </summary>
Tiger.Api/Controllers/Test/TestController.R.cs
@@ -19,6 +19,8 @@
using Newtonsoft.Json.Linq;
using Tiger.Api.iBiz;
using System.Net;
using System.Reflection;
using Swifter.Tools;
namespace Tiger.Api.Controllers.Test
{
@@ -37,6 +39,21 @@
            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>
        /// GetAsync
        /// </summary>
Tiger.Business.MES/BIZ_MES_WO.cs
@@ -10,7 +10,6 @@
using System.Linq;
using Newtonsoft.Json;
using Tiger.IBusiness;
using static Tiger.Business.Biz;
using Microsoft.AspNetCore.Http;
namespace Tiger.Business.MES
@@ -27,14 +26,14 @@
            var result = new ApiAction();
            try
            {
                var _wo = Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == wo.ORDER_NO).First();
                var _wo = Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ORDER_NO == wo.ORDER_NO).First();
                if (_wo != null && _wo.STATUS != (int)BIZ_MES_WO.STATUSs.Init)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"工单已经存在且不是初始化状态,不能保存修改!");
                    return result;
                }
                var db = Db;
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    var y = db.Storageable(wo)
@@ -67,14 +66,14 @@
            try
            {
                //查询是否已经有工单在用
                var _wo = Db.Queryable<BIZ_MES_WO>().Where(x => x.ID == woId).First();
                var _wo = Biz.Db.Queryable<BIZ_MES_WO>().Where(x => x.ID == woId).First();
                if (_wo != null && _wo.STATUS != (int)BIZ_MES_WO.STATUSs.Init)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"工单不是初始化状态,不能删除!");
                    return result;
                }
                var db = Db;
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    db.Deleteable<BIZ_MES_WO>().Where(x => x.ID == woId).ExecuteCommand();
Tiger.Business.MES/MES_WORKSHOP.cs
@@ -1,7 +1,6 @@
using Tiger.Model;
using Rhea.Common;
using Tiger.IBusiness;
using static Tiger.Business.Biz;
using Microsoft.AspNetCore.Http;
namespace Tiger.Business.MES
@@ -21,13 +20,13 @@
            var result = new ApiAction();
            try
            {
                if (Db.Queryable<MES_WORKSHOP>().Where(x => x.WS_CODE == ws.WS_CODE && x.ID != ws.ID).Any())
                if (Biz.Db.Queryable<MES_WORKSHOP>().Where(x => x.WS_CODE == ws.WS_CODE && x.ID != ws.ID).Any())
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"车间已经存在,不能新增!");
                    return result;
                }
                var db = Db;
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    var y = db.Storageable(ws)
@@ -60,7 +59,7 @@
            try
            {
                //查询是否已经有车间在用
                var db = Db;
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    db.Deleteable<MES_WORKSHOP>().Where(x => x.ID == wsId).ExecuteCommand();
Tiger.Business.MES/SMT/SmtTool.cs
@@ -10,7 +10,6 @@
using System.Linq;
using Newtonsoft.Json;
using Tiger.IBusiness;
using static Tiger.Business.Biz;
using Microsoft.AspNetCore.Http;
using System.Collections;
using System.Data;
@@ -34,7 +33,7 @@
            List<SMT_WO_TABLE> sList = new List<SMT_WO_TABLE>();
            try
            {
                sList = Db.Queryable<SMT_WO_TABLE, SMT_LOADING>((t, l) =>
                sList = Biz.Db.Queryable<SMT_WO_TABLE, SMT_LOADING>((t, l) =>
                                        new JoinQueryInfos(
                                            JoinType.Left,
                                            t.WORK_ORDER == l.WORK_ORDER
@@ -112,7 +111,7 @@
                                item.原因 += $"站位号为空!";
                            }
                            currentList.Add(item);
                            if (await Db.Queryable<SMT_WO_TABLE>().AnyAsync(x => x.WORK_ORDER == item.关联工单号 && x.ITEM_CODE == item.物料编码 && x.SLOT_NO == item.站位号 && x.SMT_CODE == item.贴片机编码))
                            if (await Biz.Db.Queryable<SMT_WO_TABLE>().AnyAsync(x => x.WORK_ORDER == item.关联工单号 && x.ITEM_CODE == item.物料编码 && x.SLOT_NO == item.站位号 && x.SMT_CODE == item.贴片机编码))
                            {
                                item.处理方式 = "修改";
                                item.原因 += $"工单{item.关联工单号},物料编码{item.物料编码},站位号{item.站位号},贴片机编码{item.贴片机编码}与数据库重复!";
Tiger.Business.MengQi/Mq.Customer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.IBusiness;
using Tiger.Model;
namespace Tiger.Business.MengQi
{
    /// <summary>
    /// å®¢æˆ·
    /// </summary>
    public partial class MqCustomer : ICustomer
    {
        /// <summary>
        /// èŽ·å–åˆ†é¡µ
        /// </summary>
        /// <param name="pageList"></param>
        /// <returns></returns>
        public async Task<ApiAction<PageAble<Customer>>> GetCustomers(PageAble<Customer> pageList)
        {
            var res = new ApiAction<PageAble<Customer>>();
            try
            {
                RefAsync<int> total = 0;
                pageList.data = await Biz.Db.Queryable<Customer>().WhereIF(!string.IsNullOrEmpty(pageList.sqlcmd), x => x.CustomerCode.Contains(pageList.sqlcmd)).OrderBy(x => x.CustomerCode).ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
                pageList.totals = total;
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "获取客户信息异常");
            }
            res.Data = pageList;
            return res;
        }
        /// <summary>
        /// èŽ·å–å®¢æˆ·ä¿¡æ¯
        /// </summary>
        /// <returns></returns>
        public async Task<ApiAction<List<Customer>>> GetCustomerInfo()
        {
            var res = new ApiAction<List<Customer>>();
            try
            {
                List<Customer> result = await Biz.Db.Queryable<Customer>().ToListAsync();
                res.Data = result;
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "获取客户信息异常");
            }
            return res;
        }
        public async Task<ApiAction> SaveImportCustomerInfo(List<Customer> list)
        {
            var res = new ApiAction();
            //更新客户记录
            var db = Biz.Db;
            var dbTran = await db.UseTranAsync(async () =>
            {
                await db.Saveable(list).ExecuteCommandAsync();
            });
            if (!dbTran.IsSuccess)
            {
                res.IsSuccessed = false;
                res.Message = $"导入异常";
            }
            return res;
        }
        /// <summary>
        /// ä¿å­˜å®¢æˆ·
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public async Task<ApiAction> SaveCustomer(Customer customer)
        {
            var result = new ApiAction();
            try
            {
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    var y = db.Storageable(customer)
                       .WhereColumns(t => new { t.CustomerCode })
                       .ToStorage();
                    y.AsInsertable.ExecuteCommand();
                    y.AsUpdateable.ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.Message = $"导入异常";
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "保存客户异常");
            }
            return result;
        }
    }
}
Tiger.Business.MengQi/Mq.ModelInfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.IBusiness;
using Tiger.Model;
namespace Tiger.Business.MengQi
{
    /// <summary>
    /// å®¢æˆ·
    /// </summary>
    public partial class MqModelInfo : IModelInfo
    {
        /// <summary>
        /// èŽ·å–åˆ†é¡µ
        /// </summary>
        /// <param name="pageList"></param>
        /// <returns></returns>
        public async Task<ApiAction<PageAble<ModelInfo>>> GetModelInfo(PageAble<ModelInfo> pageList)
        {
            var res = new ApiAction<PageAble<ModelInfo>>();
            try
            {
                RefAsync<int> total = 0;
                pageList.data = await Biz.Db.Queryable<ModelInfo>().WhereIF(!string.IsNullOrEmpty(pageList.sqlcmd), x => x.Model.Contains(pageList.sqlcmd)).OrderBy(x => x.Model).ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
                pageList.totals = total;
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "获取产品信息异常");
            }
            res.Data = pageList;
            return res;
        }
        /// <summary>
        /// å¯¼å…¥
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public async Task<ApiAction> SaveImportModelInfo(List<ModelInfo> list)
        {
            var res = new ApiAction();
            //更新机型记录
            var db = Biz.Db;
            var dbTran = await db.UseTranAsync(async () =>
            {
                await db.Saveable(list).ExecuteCommandAsync();
            });
            if (!dbTran.IsSuccess)
            {
                res.IsSuccessed = false;
                res.Message = $"导入异常";
            }
            return res;
        }
        /// <summary>
        /// ä¿å­˜æœºåž‹
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public async Task<ApiAction> SaveModel(ModelInfo modelInfo)
        {
            var result = new ApiAction();
            try
            {
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    var y = db.Storageable(modelInfo)
                       .WhereColumns(t => new { t.Model })
                       .ToStorage();
                    y.AsInsertable.ExecuteCommand();
                    y.AsUpdateable.ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.Message = $"导入异常";
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "保存机型异常");
            }
            return result;
        }
    }
}
Tiger.Business.MengQi/Mq.SNData.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,202 @@
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.IBusiness;
using Tiger.Model;
namespace Tiger.Business.MengQi
{
    /// <summary>
    /// SN操作
    /// </summary>
    public partial class MqSNData : IMqSNData
    {
        /// <summary>
        /// é€€å›žåˆ é™¤æ¡ç 
        /// </summary>
        /// <param name="barcode"></param>
        /// <returns></returns>
        public async Task<ApiAction> ReturnSN(string barcode)
        {
            var result = new ApiAction();
            try
            {
                SNData_His data_His = await Biz.Db.Queryable<SNData_His>().Where(x => x.OriginalSN == barcode).FirstAsync();
                if (data_His == null)
                {
                    result.IsSuccessed = false;
                    result.Message = $"退回删除条码不存在";
                    return result;
                }
                List<SNData> sndatas = await Biz.Db.Queryable<SNData>().Where(x => x.SN == barcode || x.SN == data_His.SN).ToListAsync();
                if (sndatas == null && sndatas.Count > 0)
                {
                    result.IsSuccessed = false;
                    result.Message = $"退回删除条码不存在";
                    return result;
                }
                result.Data = data_His.DeliveryNo;
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    db.Deleteable(data_His).ExecuteCommand();
                    db.Deleteable(sndatas).ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.Message = $"退回删除条码异常";
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "退回删除条码异常");
            }
            return result;
        }
        /// <summary>
        /// æ•´å•退回
        /// </summary>
        /// <param name="deliveryNo"></param>
        /// <returns></returns>
        public async Task<ApiAction> ReturnWhole(string deliveryNo)
        {
            var result = new ApiAction();
            try
            {
                List<SNData_His> listHis = await Biz.Db.Queryable<SNData_His>().Where(x => x.DeliveryNo == deliveryNo).ToListAsync();
                if (listHis.Count == 0)
                {
                    result.IsSuccessed = false;
                    result.Message = $"退回送货单[{deliveryNo}]查不到要删除的条码";
                    return result;
                }
                List<SNData> sndatas = await Biz.Db.Queryable<SNData>().Where(x => x.DeliveryNo == deliveryNo).ToListAsync();
                if (sndatas.Count == 0)
                {
                    result.IsSuccessed = false;
                    result.Message = $"退回送货单[{deliveryNo}]查不到要删除的条码";
                    return result;
                }
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    db.Deleteable(listHis).ExecuteCommand();
                    db.Deleteable(sndatas).ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.Message = $"退回删除条码异常";
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "退回删除条码异常");
            }
            return result;
        }
        /// <summary>
        /// åˆ†é¡µ
        /// </summary>
        /// <param name="pageList"></param>
        /// <returns></returns>
        public async Task<ApiAction<PageAble<SNData_His>>> GetSNDataHis(PageAble<SNData_His> pageList)
        {
            var res = new ApiAction<PageAble<SNData_His>>();
            try
            {
                string[] strTime = pageList.sqlcmd?.Split(',');
                RefAsync<int> total = 0;
                pageList.data = await Biz.Db.Queryable<SNData_His>()
                    .WhereIF(!string.IsNullOrEmpty(strTime[0]), x => Convert.ToDateTime(x.ScanTime) > Convert.ToDateTime(strTime[0]))
                    .WhereIF(!string.IsNullOrEmpty(strTime[1]) && strTime.Length == 2, x => Convert.ToDateTime(x.ScanTime) < Convert.ToDateTime(strTime[1]))
                    .WhereIF(!string.IsNullOrEmpty(strTime[2]), x => x.ModelCode.Equals(strTime[2]))
                    .WhereIF(!string.IsNullOrEmpty(strTime[3]), x => x.CustomerCode.Equals(strTime[3]))
                    .WhereIF(!string.IsNullOrEmpty(strTime[4]), x => x.DeliveryNo.Equals(strTime[4]))
                    .WhereIF(!string.IsNullOrEmpty(strTime[5]), x => x.CustModel.Equals(strTime[5]))
                    .ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
                pageList.totals = total;
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "查询异常");
            }
            res.Data = pageList;
            return res;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ¡ç ï¼ŒåŽŸåŽ‚æ¡ç å’Œå®¢æˆ·æ¡ç åœ¨åŒä¸€è¡Œï¼ŒæŒ‰æ¡ä»¶
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<SNData_His>>> GetAllSNDataHis(SNDataWhere where)
        {
            var res = new ApiAction<List<SNData_His>>();
            List<SNData_His> list = new List<SNData_His>();
            try
            {
                DateTime StartTime = DateTime.Now;
                DateTime EndTime = DateTime.Now;
                string[] strTime = where.strStartEnd?.Split(',');
                if (!string.IsNullOrEmpty(where.strStartEnd)) { StartTime = Convert.ToDateTime(strTime[0].ToString()); EndTime = strTime.Length == 2 ? Convert.ToDateTime(strTime[1].ToString()) : DateTime.MinValue; }
                RefAsync<int> total = 0;
                list = await Biz.Db.Queryable<SNData_His>()
                    .WhereIF(!string.IsNullOrEmpty(where.strStartEnd), x => Convert.ToDateTime(x.ScanTime) > StartTime)
                    .WhereIF(!string.IsNullOrEmpty(where.strStartEnd) && strTime.Length == 2, x => Convert.ToDateTime(x.ScanTime) < EndTime)
                    .WhereIF(!string.IsNullOrEmpty(where.model), x => x.ModelCode == where.model)
                    .WhereIF(!string.IsNullOrEmpty(where.customerCode), x => x.CustomerCode.Equals(where.customerCode))
                    .WhereIF(!string.IsNullOrEmpty(where.deliveryNo), x => x.DeliveryNo.Equals(where.deliveryNo))
                    .WhereIF(!string.IsNullOrEmpty(where.custParam1), x => x.CustModel.Equals(where.custParam1))
                    .ToListAsync();
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "查询异常");
            }
            res.Data = list;
            return res;
        }
        /// <summary>
        /// èŽ·å–æ‰€æœ‰æ¡ç ï¼ŒåŽŸåŽ‚æ¡ç å’Œå®¢æˆ·æ¡ç åˆ†å¼€ä¸¤è¡Œï¼ŒæŒ‰æ¡ä»¶
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        public async Task<ApiAction<List<SNData>>> GetAllSNData(SNDataWhere where)
        {
            var res = new ApiAction<List<SNData>>();
            List<SNData> list = new List<SNData>();
            try
            {
                DateTime StartTime = DateTime.Now;
                DateTime EndTime = DateTime.Now;
                string[] strTime = where.strStartEnd?.Split(',');
                if (!string.IsNullOrEmpty(where.strStartEnd)) { StartTime = Convert.ToDateTime(strTime[0].ToString()); EndTime = strTime.Length == 2 ? Convert.ToDateTime(strTime[1].ToString()) : DateTime.MinValue; }
                RefAsync<int> total = 0;
                list = await Biz.Db.Queryable<SNData>()
                    .WhereIF(!string.IsNullOrEmpty(where.strStartEnd), x => Convert.ToDateTime(x.CREATE_TIME) > StartTime)
                    .WhereIF(!string.IsNullOrEmpty(where.strStartEnd) && strTime.Length == 2, x => Convert.ToDateTime(x.CREATE_TIME) < EndTime)
                    .WhereIF(!string.IsNullOrEmpty(where.model), x => x.ItemCode == where.model)
                    .WhereIF(!string.IsNullOrEmpty(where.customerCode), x => x.CustomerCode.Equals(where.customerCode))
                    .WhereIF(!string.IsNullOrEmpty(where.deliveryNo), x => x.DeliveryNo.Equals(where.deliveryNo))
                    .WhereIF(!string.IsNullOrEmpty(where.custParam1), x => x.CustModel.Equals(where.custParam1))
                    .OrderBy(x => x.CREATE_TIME).OrderBy(x => x.Scanner).ToListAsync();
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "查询异常");
            }
            res.Data = list;
            return res;
        }
    }
}
Tiger.Business.MengQi/Tiger.Business.MengQi.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <Exec Command="xcopy /r/y/i $(ProjectDir)$(OutDir)$(AssemblyName).dll $(SolutionDir)Tiger.Api\$(OutDir)&#xD;&#xA;xcopy /r/y/i $(ProjectDir)$(OutDir)$(AssemblyName).pdb $(SolutionDir)Tiger.Api\$(OutDir)&#xD;&#xA;xcopy /r/y/i $(ProjectDir)$(OutDir)BizSettings.json $(SolutionDir)Tiger.Api\$(OutDir)" />
  </Target>
  <ItemGroup>
    <ProjectReference Include="..\Tiger.Business\Tiger.Business.csproj" />
    <ProjectReference Include="..\Tiger.IBusiness\Tiger.IBusiness.csproj" />
  </ItemGroup>
</Project>
Tiger.Business.MengQi/User.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.IBusiness;
using Tiger.Model;
namespace Tiger.Business.MengQi
{
    /// <summary>
    /// ç”¨æˆ·
    /// </summary>
    public partial class Users : IUser
    {
        /// <summary>
        /// èŽ·å–ç”¨æˆ·ä¿¡æ¯
        /// </summary>
        /// <param name="pageList"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<PageAble<User>> GetUserInfo(PageAble<User> pageList)
        {
            RefAsync<int> total = 0;
            pageList.data = await Biz.Db.Queryable<User>().WhereIF(!string.IsNullOrEmpty(pageList.sqlcmd), x => x.UserCode.Contains(pageList.sqlcmd)).ToPageListAsync(pageList.pageIndex, pageList.pageSize, total);
            pageList.totals = total;
            return pageList;
        }
        /// <summary>
        /// ç”¨æˆ·ç™»å½•
        /// </summary>
        /// <param name="userInfo"></param>
        /// <returns></returns>
        public async Task<ApiAction<User>> Login(User userInfo)
        {
            var res = new ApiAction<User>();
            try
            {
                string usercode = userInfo.UserCode;
                if (userInfo.UserCode == "品质用户")
                {
                    var user = await Biz.Db.Queryable<User>().Where(x => x.RoleCode == "品质").FirstAsync();
                    if (user != null) { usercode = user.UserCode; }
                }
                if (!Biz.Db.Queryable<User>().Where(x => x.UserCode == usercode && x.Password == userInfo.Password).Any())
                {
                    //result = new(Result.Flags.Failed, "用户没有权限或者用户名和密码错误!");
                    userInfo = new();
                }
                else
                {
                    userInfo = await Biz.Db.Queryable<User>().Where(x => x.UserCode == usercode && x.Password == userInfo.Password).FirstAsync();
                }
                res.Data = userInfo;
            }
            catch (Exception ex)
            {
                res.CatchExceptionWithLog(ex, "登录异常");
            }
            return res;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public async Task<Result> SaveImportUserInfo(DataTable dt)
        {
            Result result = new Result(Result.Flags.Success, $"导入成功");
            List<User> list = new();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                User item = new()
                {
                    id = Guid.NewGuid().ToString("N"),
                    UserCode = dt.Rows[i]["用户ID"].ToString(),
                    UserName = dt.Rows[i]["用户名称"].ToString(),
                    RoleCode = dt.Rows[i]["用户角色"].ToString(),
                };
                var info = Biz.Db.Queryable<User>().Where(x => x.UserCode == dt.Rows[i]["用户ID"].ToString()).First();
                if (info != null)
                {
                    item.id = info.id;
                }
                list.Add(item);
            }
            //更新机型记录
            var db = Biz.Db;
            var dbTran = await db.UseTranAsync(async () =>
            {
                await db.Saveable(list).ExecuteCommandAsync();
            });
            if (!dbTran.IsSuccess)
            {
                result.Flag = Result.Flags.Failed;
                result.Message = $"导入异常";
            }
            return result;
        }
        /// <summary>
        /// ä¿å­˜ç”¨æˆ·
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public async Task<ApiAction> SaveUser(User user)
        {
            var result = new ApiAction();
            try
            {
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    var y = db.Storageable(user)
                       .WhereColumns(t => new { t.UserCode })
                       .ToStorage();
                    y.AsInsertable.ExecuteCommand();
                    y.AsUpdateable.ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.Message = $"导入异常";
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "保存用户异常");
            }
            return result;
        }
    }
}
Tiger.Business/Language/LanguageEntity.cs
@@ -5,7 +5,6 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Tiger.Business.Biz;
namespace Tiger.Business
{
Tiger.Business/MES/Biz.Route.cs
@@ -10,7 +10,6 @@
using System.Linq;
using Newtonsoft.Json;
using Tiger.IBusiness;
using static Tiger.Business.Biz;
using Microsoft.AspNetCore.Http;
namespace Tiger.Business
Tiger.Business/Tiger.Business.csproj
@@ -116,6 +116,7 @@
    <Folder Include="Language\TSK\" />
    <Folder Include="QMS\" />
    <Folder Include="RTest\" />
    <Folder Include="WMS\MengQi\" />
  </ItemGroup>
  <ItemGroup>
Tiger.Business/WMS/MengQi/Biz.Mq.Customer.cs
ÎļþÒÑɾ³ý
Tiger.Business/WMS/MengQi/Biz.Mq.ModelInfo.cs
ÎļþÒÑɾ³ý
Tiger.Business/WMS/MengQi/Biz.Mq.SNData.cs
ÎļþÒÑɾ³ý
Tiger.Business/WMS/MengQi/Biz.User.cs
ÎļþÒÑɾ³ý