服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-07-30 faf6facde340188539a94c93002684b4c8477b26
Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024
已修改1个文件
已重命名1个文件
已添加4个文件
262 ■■■■■ 文件已修改
Tiger.Api/Controllers/MES/MESController.BAS_LABEL_TEMP.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/MES/LabelTemplate/ILabelTemplate.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/ParameterEntity/BasLabelTempParameter.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoBatchParameter - 复制.cs 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Tiger.Model.Net.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/MES/MESController.BAS_LABEL_TEMP.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
using Microsoft.AspNetCore.Mvc;
using Rhea.Common;
using System.Threading.Tasks;
using Tiger.IBusiness;
using Tiger.Model;
using Tiger.Model.Entitys.MES.BasLabelTemp;
namespace Tiger.Api.Controllers.MES
{
    public partial class MESController : ControllerBase
    {
        /// <summary>
        /// ä¿å­˜æ ‡ç­¾æ¨¡æ¿
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/[action]")]
        public async Task<IActionResult> SaveLabelTemplate([FromBody] ApiAction<BasLabelTempInput> action)
        {
            ApiAction response = new();
            try
            {
                response = response.GetResponse(await DI.Resolve<ILabelTemplate>().SaveLabelTemplate(action.Data));
            }
            catch (System.Exception ex)
            {
                response = response.GetResponse().CatchExceptionWithLog(ex);
            }
            return Ok(response);
        }
        /// <summary>
        /// åˆ é™¤æ ‡ç­¾æ¨¡æ¿
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/[action]")]
        public async Task<IActionResult> DeleteLabelTemplate([FromBody] ApiAction action)
        {
            ApiAction response = new();
            try
            {
                response = response.GetResponse(await DI.Resolve<ILabelTemplate>().DeleteLabelTemplate(action.Data?.ToString()));
            }
            catch (System.Exception ex)
            {
                response = response.GetResponse().CatchExceptionWithLog(ex);
            }
            return Ok(response);
        }
    }
}
Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
using Tiger.Model;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Rhea.Common;
using System.Net;
using System.Linq;
using Newtonsoft.Json;
using Tiger.IBusiness;
using Microsoft.AspNetCore.Http;
using Tiger.Model.Entitys.MES.BasLabelTemp;
using System.Security.Cryptography;
namespace Tiger.Business.MES
{
    public partial class BasLabelTemp : ILabelTemplate
    {
        public async Task<ApiAction> DeleteLabelTemplate(string Id)
        {
            var result = new ApiAction();
            try
            {
                var _label = await Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(x => x.ID == Id).FirstAsync();
                if (_label == null)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"标签模板不存在,不能删除!");
                    return result;
                }
                if (Biz.Db.Queryable<MES_PROD_ACTION>().Any(x => x.LABEL_CODE == _label.LABEL_CODE))
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"标签模板已经绑定到行为,不能删除!");
                    return result;
                }
                if (Biz.Db.Queryable<MES_WO_ACTION>().Any(x => x.LABEL_CODE == _label.LABEL_CODE))
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"标签模板已经绑定到行为,不能删除!");
                    return result;
                }
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    db.Deleteable<BAS_LABEL_TEMP>().Where(x => x.ID == Id).ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"删除标签模板异常");
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "删除标签模板异常");
            }
            return result;
        }
        /// <summary>
        /// ä¿å­˜æ ‡ç­¾æ¨¡æ¿
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<ApiAction> SaveLabelTemplate(BasLabelTempInput input)
        {
            var result = new ApiAction();
            try
            {
                BAS_LABEL_TEMP? prodTemp = null;
                BAS_LABEL_TEMP? prodCustTemp = null;
                //如果传入的标签客户编码不为空
                if (!input.Label.CUST_CODE.IsNullOrEmpty())
                {
                    //如果查不到标签并且客户编码不为空
                    if (!Biz.Db.Queryable<BAS_LABEL_TEMP>().Any(x => x.LABEL_CODE == input.Label.LABEL_CODE))
                    {
                        prodCustTemp = input.Label;
                        prodTemp = input.Label.Clone();
                        prodTemp.CUST_CODE = "";
                        prodTemp.LABEL_CODE = $"{input.Label.LABEL_CODE}_{DateTime.Now.ToString("yyyyMMddhhmmss")}";
                    }
                    else
                    {
                        prodCustTemp = input.Label;
                        prodCustTemp.LABEL_CODE = $"{input.Label.LABEL_CODE}_{DateTime.Now.ToString("yyyyMMddhhmmss")}";
                    }
                }
                else
                {
                    //如果客户编码为空
                    prodTemp = input.Label;
                    if (Biz.Db.Queryable<BAS_LABEL_TEMP>().Any(x => x.LABEL_CODE == input.Label.LABEL_CODE && x.PROD_CODE != input.Label.PROD_CODE))
                    {
                        prodTemp.LABEL_CODE = $"{input.Label.LABEL_CODE}_{DateTime.Now.ToString("yyyyMMddhhmmss")}";
                    }
                }
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    if (prodTemp != null)
                    {
                        var x = db.Storageable(prodTemp)
                           .WhereColumns(t => new { t.LABEL_CODE, t.PROD_CODE, t.CUST_CODE, t.GHOST_ROW })
                           .ToStorage();
                        x.AsInsertable.ExecuteCommand();
                        x.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
                    }
                    if (prodCustTemp != null)
                    {
                        var y = db.Storageable(prodCustTemp)
                           .WhereColumns(t => new { t.LABEL_CODE, t.PROD_CODE, t.CUST_CODE, t.GHOST_ROW })
                           .ToStorage();
                        y.AsInsertable.ExecuteCommand();
                        y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
                    }
                    var temp = db.Queryable<BAS_LABEL_TEMP>().Where(x =>
                    x.LABEL_CODE == input.Label.LABEL_CODE &&
                    x.PROD_CODE == input.Label.PROD_CODE &&
                    x.CUST_CODE == input.Label.CUST_CODE).First();
                    if (input.LabelVars != null && input.LabelVars.Count > 0)
                    {
                        if (temp != null && temp.ID != input.LabelVars[0].LABEL_ID)
                        {
                            foreach (var item in input.LabelVars)
                            {
                                item.LABEL_ID = temp.ID;
                            }
                        }
                        var z = db.Storageable(input.LabelVars)
                           .WhereColumns(t => new { t.LABEL_ID, t.VAR_NAME, t.GHOST_ROW })
                           .ToStorage();
                        z.AsInsertable.ExecuteCommand();
                        z.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
                    }
                    if (input.LabelVarWos != null && input.LabelVarWos.Count > 0)
                    {
                        if (temp != null && temp.ID != input.LabelVarWos[0].LABEL_ID)
                        {
                            foreach (var item in input.LabelVarWos)
                            {
                                item.LABEL_ID = temp.ID;
                            }
                        }
                        var o = db.Storageable(input.LabelVarWos)
                           .WhereColumns(t => new { t.LABEL_ID, t.VAR_NAME, t.GHOST_ROW })
                           .ToStorage();
                        o.AsInsertable.ExecuteCommand();
                        o.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
                    }
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"保存标签模板异常!");
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "保存标签模板异常");
            }
            return await Task.FromResult(result);
        }
    }
}
Tiger.IBusiness/MES/LabelTemplate/ILabelTemplate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
using Rhea.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tiger.Model;
using Tiger.Model.Entitys.MES.BasLabelTemp;
using Tiger.Model.Entitys.MES.BizMesWo;
using Tiger.Model.Entitys.MES.BizMesWoBatch;
namespace Tiger.IBusiness
{
    public interface ILabelTemplate
    {
        public Task<ApiAction> SaveLabelTemplate(BasLabelTempInput input);
        public Task<ApiAction> DeleteLabelTemplate(string Id);
    }
}
Tiger.Model.Net/Entitys/MES/ParameterEntity/BasLabelTempParameter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tiger.Model.Entitys.MES.BasLabelTemp
{
    public class BasLabelTempInput
    {
        public BAS_LABEL_TEMP Label { get; set; }
        public List<BAS_LABEL_VAR> LabelVars { get; set; }
        public List<BAS_LABEL_VAR_WO> LabelVarWos { get; set; }
    }
}
Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoBatchParameter - ¸´ÖÆ.cs
Tiger.Model.Net/Tiger.Model.Net.csproj
@@ -151,8 +151,9 @@
    <Compile Include="Entitys\MES\MES_WO_NODE_POST.cs" />
    <Compile Include="Entitys\MES\MES_WO_OPER.cs" />
    <Compile Include="Entitys\MES\node.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\BizMesWoBatchParameter - å¤åˆ¶.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\BizMesWoParameter.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\BizMesWoBatchParameter.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\BasLabelTempParameter.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\SmtLoadingReturn.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\SmtLoadingInput.cs" />
    <Compile Include="Entitys\MES\ParameterEntity\PositionParameter.cs" />