add
zongzhibin
2024-11-23 de4e5b2eafe108d20bc0fc4f215fdda135ed04c9
add
已添加3个文件
已修改11个文件
772 ■■■■ 文件已修改
CC/iWareCC_ASRS/ThreadService/00_269工位/DataProcess_269.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/DataProcess_BZ21.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/iWareCC.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCommon/Utils/HTTP/HttpHelper.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/WmsDBModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_PushPackageCode.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/iWareSql.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_BatchOrderUPI.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/PushStatusEnum.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewInput.cs 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Mes_BatchOrderUPI_NewService.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/00_269¹¤Î»/DataProcess_269.cs
@@ -75,5 +75,6 @@
            }
        }
    }
}
CC/iWareCC_ASRS/ThreadService/04_BZ21£¨°áÔËÕû¶â»úÆ÷ÈË£©/DataProcess_BZ21.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
using iWareCommon.Utils;
using iWareSql.WmsDBModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace iWareCC.ThreadService._04_BZ21_搬运整垛机器人_
{
    public class DataProcess_BZ21
    {
        public static void PushPackageCode()
        {
            while (true)
            {
                Thread.Sleep(2000);
                using (WmsDBModel edm = new WmsDBModel())
                {
                    var value = edm.mes_PushPackageCode.Where(x => x.PushStatus == 0 || x.PushStatus == 1).FirstOrDefault();
                    if (value != null)
                    {
                        PushPackageCodeInput input = new PushPackageCodeInput();
                        input.PackageCode = value.PackageCode;
                        var res = HttpHelper.GetHttpResponse<PushPackageCodeInput, Respone>(" ", input, 10000);
                    }
                }
            }
        }
        public class PushPackageCodeInput
        {
            public string PackageCode { get; set; }
        }
        public class Respone
        {
            /// <summary>
            /// è¿”回码
            /// </summary>
            public string code { get; set; }
            /// <summary>
            /// è¿”回消息
            /// </summary>
            public string message { get; set; }
            /// <summary>
            /// è¯·æ±‚编号
            /// </summary>
            public string reqCode { get; set; }
            /// <summary>
            /// è‡ªå®šä¹‰è¿”回(返回任务单号)
            /// </summary>
            public string data { get; set; }
        }
    }
}
CC/iWareCC_ASRS/iWareCC.csproj
@@ -161,6 +161,7 @@
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\3、DataProcess_RobotBuffer_FinishTaskForOutbound.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Inbound\2、DataProcess_RobotBuffer_FinishTask.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Inbound\1、DataProcess_BZ39.cs" />
    <Compile Include="ThreadService\04_BZ21(搬运整垛机器人)\DataProcess_BZ21.cs" />
    <Compile Include="WCF\CCWcfService.cs" />
    <Compile Include="WCF\ICCWcfService.cs" />
    <Compile Include="WmsTask\AutoUpdateEngineInfoTask.cs" />
@@ -354,7 +355,6 @@
  </ItemGroup>
  <ItemGroup>
    <Folder Include="ThreadService\03_BZ12%28机器人码包工位%29\" />
    <Folder Include="ThreadService\04_BZ21(搬运整垛机器人)\" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
CC/iWareCommon/Utils/HTTP/HttpHelper.cs
@@ -75,34 +75,30 @@
        /// <param name="url">请求地址</param>
        /// <param name="postData">请求参数</param>
        /// <param name="timeout">延迟时间</param>
        /// <param name="method">POST GET PUT DELETE</param>
        /// <returns>请求的response</returns>
        public static string GetHttpResponse(string url, object postData, int timeout,string method)
        public static T2 GetHttpResponse<T, T2>(string url, T postData, int timeout)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = method;
            request.Method = "POST";
            request.ContentType = "application/json;charset=UTF-8";
            request.UserAgent = null;
            request.Timeout = timeout;
            if (!"GET".Equals(method))
            {
                var myRequestStream = request.GetRequestStream();
                var json = postData == null ? "" : JsonConvert.SerializeObject(postData);
                var jsonBytes = UTF8Encoding.UTF8.GetBytes(json);
                myRequestStream.Write(jsonBytes, 0, jsonBytes.Length);
            }
            //request.Headers.Add("Authorization", "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTUzNTMwNjAwIiwiZXhwIjoiMTYxNjYwMjYwMCIsImlzcyI6IlNBR1dXSVAiLCJzdWIiOiJ3Y3NpbnRlZ3JhdGVkIiwidXNlcm5hbWUiOiJ3Y3NpbnRlZ3JhdGVkIiwidXNlcmdyb3VwIjpbeyJsb2dpbm5hbWUiOiJ3Y3NpbnRlZ3JhdGVkIiwiZ3JvdXBJZCI6Ijg3YjE1MTQ1LWUwODMtNDM2Ny04ZjdiLTNiNTI3NWJhYzExZSIsImdyb3VwbmFtZSI6IlJDU2ludGVncmF0ZWQiLCJyb2xlSWQiOiI4NjNhMGIxZS0zODAzLTQyNmMtOTRlNC04OTRmNTE1ZWQyYzgiLCJyb2xlbmFtZSI6IlJDU-mbhuaIkCJ9LHsibG9naW5uYW1lIjoid2NzaW50ZWdyYXRlZCIsImdyb3VwSWQiOiI5ZGU3ZjA5Zi05YzhiLTQwNDEtODc0NS1hYjgxNGQ0OTFiODEiLCJncm91cG5hbWUiOiJXQ1NpbnRlZ3JhdGVkIiwicm9sZUlkIjoiNWJhZDE1YTUtOTQ1NC00YTc3LTk0OGYtNzUxMjI2NDdiOTA4Iiwicm9sZW5hbWUiOiJXQ1Ppm4bmiJAifV19.AN9iUPMFZ5w7UW7D5kERV903gPCtyk6o2STZILX7QzkVjKLLSWgpUnQYBBfiSSQk");
            var myRequestStream = request.GetRequestStream();
            var json = postData == null ? "" : JsonConvert.SerializeObject(postData);
            var jsonBytes = UTF8Encoding.UTF8.GetBytes(json);
            myRequestStream.Write(jsonBytes, 0, jsonBytes.Length);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            return retString;
            T2 result = JsonConvert.DeserializeObject<T2>(retString);
            return result;
        }
        /// <summary>
        /// Http上传文件
        /// </summary>
CC/iWareSql/WmsDBModel/WmsDBModel.cs
@@ -11,7 +11,7 @@
            : base("name=WmsDBModel")
        {
        }
        public virtual DbSet<mes_PushPackageCode> mes_PushPackageCode { get; set; }
        public virtual DbSet<ApprovalFlow> ApprovalFlow { get; set; }
        public virtual DbSet<DingTalkUser> DingTalkUser { get; set; }
        public virtual DbSet<GoViewPro> GoViewPro { get; set; }
CC/iWareSql/WmsDBModel/mes_PushPackageCode.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
namespace iWareSql.WmsDBModel
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity.Spatial;
    public partial class mes_PushPackageCode
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public long Id { get; set; }
        [Required]
        [StringLength(50)]
        public string PackageCode { get; set; }
        public int PushStatus { get; set; }
        public int PushNum { get; set; }
        [StringLength(50)]
        public string ApiMessage { get; set; }
        public DateTime? CreateTime { get; set; }
        public DateTime? UpdateTime { get; set; }
        public long? CreateUserId { get; set; }
        [StringLength(64)]
        public string CreateUserName { get; set; }
        public long? UpdateUserId { get; set; }
        [StringLength(64)]
        public string UpdateUserName { get; set; }
        public long? CreateOrgId { get; set; }
        [StringLength(64)]
        public string CreateOrgName { get; set; }
        public bool IsDelete { get; set; }
    }
}
CC/iWareSql/iWareSql.csproj
@@ -162,6 +162,7 @@
    <Compile Include="WmsDBModel\GoViewPro.cs" />
    <Compile Include="WmsDBModel\GoViewProData.cs" />
    <Compile Include="WmsDBModel\mes_batchOrderUPI_new.cs" />
    <Compile Include="WmsDBModel\mes_PushPackageCode.cs" />
    <Compile Include="WmsDBModel\SysCodeGen.cs" />
    <Compile Include="WmsDBModel\SysCodeGenConfig.cs" />
    <Compile Include="WmsDBModel\SysConfig.cs" />
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_BatchOrderUPI.cs
@@ -135,5 +135,82 @@
        [SugarColumn(ColumnName = "Info3", ColumnDescription = "纸箱高", Length = 50)]
        public float? Info3 { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        [SugarColumn(ColumnName = "Info4", ColumnDescription = "销售合同单号", Length = 60)]
        public string? Info4 { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
        public string? Info5 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        [SugarColumn(ColumnName = "Info6", ColumnDescription = "第几包", Length = 60)]
        public string? Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        [SugarColumn(ColumnName = "Info7", ColumnDescription = "经销店名称", Length = 60)]
        public string? Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        [SugarColumn(ColumnName = "Info8", ColumnDescription = "产品名称", Length = 60)]
        public string? Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        [SugarColumn(ColumnName = "Info10", ColumnDescription = "客户名称", Length = 60)]
        public string? Info10 { get; set; }
        /// <summary>
        /// åŒ…装编码
        /// </summary>
        [SugarColumn(ColumnName = "Info9", ColumnDescription = "包装编码", Length = 60)]
        public string? Info9 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        [SugarColumn(ColumnName = "Info11", ColumnDescription = "自提or发货", Length = 60)]
        public string? Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        [SugarColumn(ColumnName = "Info12", ColumnDescription = "包装部件总数量", Length = 60)]
        public string? Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        [SugarColumn(ColumnName = "Info13", ColumnDescription = "包装面积", Length = 60)]
        public string? Info13 { get; set; }
        /// <summary>
        /// éƒ¨ä»¶åç§°
        /// </summary>
        [SugarColumn(ColumnName = "Info14", ColumnDescription = "部件名称", Length = 60)]
        public string? Info14 { get; set; }
        /// <summary>
        /// éƒ¨ä»¶æ•°é‡
        /// </summary>
        [SugarColumn(ColumnName = "Info15", ColumnDescription = "部件数量")]
        public int? Info15 { get; set; }
        /// <summary>
        /// éƒ¨ä»¶å°ºå¯¸
        /// </summary>
        [SugarColumn(ColumnName = "Info16", ColumnDescription = "部件尺寸", Length = 60)]
        public string? Info16 { get; set; }
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Enum/WmsOrder/PushStatusEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.NET.Core.Enum;
public enum PushStatusEnum
{
    /// <summary>
    /// æœªæŽ¨é€
    /// </summary>
    [Description("未推送")]
    NotPush = 0,
    /// <summary>
    /// æŽ¨é€ä¸­
    /// </summary>
    [Description("推送中")]
    Pushing = 1,
    /// <summary>
    /// æŽ¨é€æˆåŠŸ
    /// </summary>
    [Description("推送成功")]
    PushSuccess = 2,
    /// <summary>
    /// æŽ¨é€å¤±è´¥
    /// </summary>
    [Description("推送失败")]
    PushFail = 3,
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeInput.cs
@@ -170,3 +170,7 @@
    {
    }
public class PushPackageCodeInput
{
    public string PackageCode { get; set; }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/Dto/MesPushPackageCodeOutput.cs
@@ -76,5 +76,12 @@
    public bool IsDelete { get; set; }
    
    }
public class Respone
{
    public int iState;
    public string message;
    public object result;
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/MesPushPackageCode/MesPushPackageCodeService.cs
@@ -4,6 +4,11 @@
using System.Data;
using System.Web;
using System.Text;
using Furion.DatabaseAccessor;
using Admin.NET.Core.Enum;
using Furion.RemoteRequest.Extensions;
using StackExchange.Profiling.Internal;
namespace Admin.NET.Application;
/// <summary>
/// æŽ¨é€mes包装号服务
@@ -92,7 +97,7 @@
        var entity = input.Adapt<MesPushPackageCode>();
        //重复性验证
        await CheckExist(entity,true);
        await CheckExist(entity, true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
@@ -111,11 +116,40 @@
    }
    [HttpPost]
    [ApiDescriptionSettings(Name = "PushPackageCode")]
    [UnitOfWork]
    [AllowAnonymous]
    public async Task PushPackageCode(PushPackageCodeInput input)
    {
        var value = await _rep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
        if (value == null) throw Oops.Oh("包装号不存在");
        if (value.PushStatus != (int)PushStatusEnum.NotPush || value.PushStatus != (int)PushStatusEnum.Pushing) throw Oops.Oh("重复推送");
        string url = "http://localhost:8088/api/getwmstask/getwmstask";
        var respon = await url.SetHttpMethod(HttpMethod.Post).SetBody(input).PostAsStringAsync();
        var data = respon.FromJson<Respone>();
        if (data.iState == 1)
        {
            value.PushStatus = (int)PushStatusEnum.PushSuccess;
            value.ApiMessage = data.message;
            value.PushNum++;
        }
        else
        {
            value.PushStatus = (int)PushStatusEnum.Pushing;
            value.ApiMessage = data.message;
            value.PushNum++;
            if (value.PushNum == 3)
            {
                value.PushStatus = (int)PushStatusEnum.PushFail;
            }
        }
        await _rep.UpdateAsync(value);
    }
    #region å¯¼å…¥
    /// <summary>
    /// Excel模板导入推送mes包装号功能
    /// </summary>
@@ -125,15 +159,15 @@
    [ApiDescriptionSettings(Name = "ImportExcel")]
    [Description("MesPushPackageCode/ImportExcel")]
    public async Task<int> ImportExcelAsync(IFormFile file)
    {
    {
        int _HeadStartLine = 2;//第1行是说明,第2行是列名
        int _DataStartLine = 3;//第3行开始是数据
        DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine);
        var addList =await CommonImport(importDataTable, _DataStartLine);
        var addList = await CommonImport(importDataTable, _DataStartLine);
        await _rep.InsertRangeAsync(addList);
        return addList.Count;
    }
    /// <summary>
    ///  DataTable转换实体对象列表
    /// </summary>
@@ -148,91 +182,91 @@
        {
            index++;
            //导入模版定制化代码(替换模版使用)
                           var addItem = new MesPushPackageCode();
                          #region å®šä¹‰å˜é‡
                           var _PackageCode = "";//包装号
                           var _PushStatus = "";//推送状态
                           var _PushNum = "";//推送次数
                           var _ApiMessage = "";//接口返回参数
                           var _CreateOrgName = "";//创建者部门名称
                          #endregion
                          #region å–值
                           _PackageCode = row["包装号"]?.ToString() ;
                           _PushStatus = row["推送状态"]?.ToString() ;
                           _PushNum = row["推送次数"]?.ToString() ;
                           _ApiMessage = row["接口返回参数"]?.ToString() ;
                           _CreateOrgName = row["创建者部门名称"]?.ToString() ;
                          #endregion
                          #region éªŒè¯
                          if (string.IsNullOrEmpty(_PackageCode))
                          {
                            throw Oops.Oh($"第{index}行[包装号]{_PackageCode}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_PackageCode))
                          {
                                addItem.PackageCode = (string)(_PackageCode.Trim());
                           }
                          if (string.IsNullOrEmpty(_PushStatus))
                          {
                            throw Oops.Oh($"第{index}行[推送状态]{_PushStatus}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_PushStatus))
                          {
                              if (!int.TryParse(_PushStatus, out int outPushStatus)&&!string.IsNullOrEmpty(_PushStatus))
                              {
                                 throw Oops.Oh($"第{index}行[推送状态]{_PushStatus}值不正确!");
                              }
                              if (outPushStatus <= 0&&!string.IsNullOrEmpty(_PushStatus))
                              {
                                 throw Oops.Oh($"第{index}行[推送状态]{_PushStatus}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.PushStatus = outPushStatus;
                              }
                          }
                          if (string.IsNullOrEmpty(_PushNum))
                          {
                            throw Oops.Oh($"第{index}行[推送次数]{_PushNum}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_PushNum))
                          {
                              if (!int.TryParse(_PushNum, out int outPushNum)&&!string.IsNullOrEmpty(_PushNum))
                              {
                                 throw Oops.Oh($"第{index}行[推送次数]{_PushNum}值不正确!");
                              }
                              if (outPushNum <= 0&&!string.IsNullOrEmpty(_PushNum))
                              {
                                 throw Oops.Oh($"第{index}行[推送次数]{_PushNum}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.PushNum = outPushNum;
                              }
                          }
                          if(!string.IsNullOrEmpty(_ApiMessage))
                          {
                                addItem.ApiMessage = (string)(_ApiMessage.Trim());
                           }
                          if(!string.IsNullOrEmpty(_CreateOrgName))
                          {
                                addItem.CreateOrgName = (string)(_CreateOrgName.Trim());
                           }
                          #endregion
            var addItem = new MesPushPackageCode();
            #region å®šä¹‰å˜é‡
            var _PackageCode = "";//包装号
            var _PushStatus = "";//推送状态
            var _PushNum = "";//推送次数
            var _ApiMessage = "";//接口返回参数
            var _CreateOrgName = "";//创建者部门名称
            #endregion
            #region å–值
            _PackageCode = row["包装号"]?.ToString();
            _PushStatus = row["推送状态"]?.ToString();
            _PushNum = row["推送次数"]?.ToString();
            _ApiMessage = row["接口返回参数"]?.ToString();
            _CreateOrgName = row["创建者部门名称"]?.ToString();
            #endregion
            #region éªŒè¯
            if (string.IsNullOrEmpty(_PackageCode))
            {
                throw Oops.Oh($"第{index}行[包装号]{_PackageCode}不能为空!");
            }
            if (!string.IsNullOrEmpty(_PackageCode))
            {
                addItem.PackageCode = (string)(_PackageCode.Trim());
            }
            if (string.IsNullOrEmpty(_PushStatus))
            {
                throw Oops.Oh($"第{index}行[推送状态]{_PushStatus}不能为空!");
            }
            if (!string.IsNullOrEmpty(_PushStatus))
            {
                if (!int.TryParse(_PushStatus, out int outPushStatus) && !string.IsNullOrEmpty(_PushStatus))
                {
                    throw Oops.Oh($"第{index}行[推送状态]{_PushStatus}值不正确!");
                }
                if (outPushStatus <= 0 && !string.IsNullOrEmpty(_PushStatus))
                {
                    throw Oops.Oh($"第{index}行[推送状态]{_PushStatus}值不能小于等于0!");
                }
                else
                {
                    addItem.PushStatus = outPushStatus;
                }
            }
            if (string.IsNullOrEmpty(_PushNum))
            {
                throw Oops.Oh($"第{index}行[推送次数]{_PushNum}不能为空!");
            }
            if (!string.IsNullOrEmpty(_PushNum))
            {
                if (!int.TryParse(_PushNum, out int outPushNum) && !string.IsNullOrEmpty(_PushNum))
                {
                    throw Oops.Oh($"第{index}行[推送次数]{_PushNum}值不正确!");
                }
                if (outPushNum <= 0 && !string.IsNullOrEmpty(_PushNum))
                {
                    throw Oops.Oh($"第{index}行[推送次数]{_PushNum}值不能小于等于0!");
                }
                else
                {
                    addItem.PushNum = outPushNum;
                }
            }
            if (!string.IsNullOrEmpty(_ApiMessage))
            {
                addItem.ApiMessage = (string)(_ApiMessage.Trim());
            }
            if (!string.IsNullOrEmpty(_CreateOrgName))
            {
                addItem.CreateOrgName = (string)(_CreateOrgName.Trim());
            }
            #endregion
            details.Add(addItem);
        }
@@ -240,7 +274,7 @@
        await CheckExisitForImport(details);
        return details;
    }
    /// <summary>
    /// æ ¹æ®ç‰ˆæœ¬ä¸‹è½½æŽ¨é€mes包装号的Excel导入模板
    /// </summary>
@@ -254,7 +288,7 @@
        var fileName = HttpUtility.UrlEncode($"导入模板(推送mes包装号).xlsx", Encoding.GetEncoding("UTF-8"));
        return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
    }
    #endregion
    #region ç§æœ‰æ–¹æ³•
@@ -275,57 +309,57 @@
                || u.CreateOrgName.Contains(input.SearchKey.Trim())
            )
            .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
            .WhereIF(input.PushStatus>0, u => u.PushStatus == input.PushStatus)
            .WhereIF(input.PushNum>0, u => u.PushNum == input.PushNum)
            .WhereIF(input.PushStatus > 0, u => u.PushStatus == input.PushStatus)
            .WhereIF(input.PushNum > 0, u => u.PushNum == input.PushNum)
            .WhereIF(!string.IsNullOrWhiteSpace(input.ApiMessage), u => u.ApiMessage.Contains(input.ApiMessage.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.CreateOrgName), u => u.CreateOrgName.Contains(input.CreateOrgName.Trim()))
            .Select<MesPushPackageCodeOutput>();
        return query;
       }
    }
        /// <summary>
        /// é‡å¤æ€§éªŒè¯
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( MesPushPackageCode input,bool isEdit=false)
    /// <summary>
    /// é‡å¤æ€§éªŒè¯
    /// </summary>
    /// <param name="input">验证对象</param>
    /// <param name="isEdit">是否是编辑</param>
    /// <returns></returns>
    private async Task CheckExist(MesPushPackageCode input, bool isEdit = false)
    {
        //没有配置组合校验,不需要验重
        //没有配置单独校验,不需要验重
    }
    /// <summary>
    /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
    /// </summary>
    /// <param name="inputs"></param>
    /// <returns></returns>
    private async Task CheckExisitForImport(List<MesPushPackageCode> inputs)
    {
        if (inputs?.Count <= 0)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// æ ¹æ®ç»„合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<MesPushPackageCode> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
            throw Oops.Oh($"导入数据不能为空");
        }
     #endregion
        //根据组合校验验证表格中中是否已存在相同数据
        //根据单独校验验证表格中中是否已存在相同数据
    }
    #endregion
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Dto/Mes_BatchOrderUPI_NewInput.cs
@@ -391,3 +391,186 @@
    {
    }
public class GetBatchOrderUPIInput
{
    [Required]
    [SugarColumn(ColumnName = "PlanNo", ColumnDescription = "批次号", Length = 50)]
    public string PlanNo { get; set; }
    [Required]
    [SugarColumn(ColumnName = "OrderId", ColumnDescription = "订单号", Length = 50)]
    public string OrderId { get; set; }
    [Required]
    [SugarColumn(ColumnName = "UPI", ColumnDescription = "部件条码", Length = 50)]
    public string UPI { get; set; }
    [Required]
    [SugarColumn(ColumnName = "DetailName", ColumnDescription = "部件名称", Length = 50)]
    public string DetailName { get; set; }
    [SugarColumn(ColumnName = "Length", ColumnDescription = "长")]
    public float Length { get; set; }
    [SugarColumn(ColumnName = "Width", ColumnDescription = "宽")]
    public float Width { get; set; }
    [SugarColumn(ColumnName = "Thk", ColumnDescription = "厚")]
    public float Thk { get; set; }
    [SugarColumn(ColumnName = "Matgrid", ColumnDescription = "部件纹理", Length = 50)]
    public string? Matgrid { get; set; }
    [SugarColumn(ColumnName = "IsEB", ColumnDescription = "是否封边")]
    public int? IsEB { get; set; }
    /// <summary>
    /// æ‰“孔设备编号 ã€EditBy shaocx,2022-05-28】
    /// 0:不打孔
    /// 1:四面钻
    /// 2:豪迈六面钻
    /// 5:南兴六面钻
    /// </summary>
    [SugarColumn(ColumnName = "DRNum", ColumnDescription = "打孔设备编号")]
    public int? DRNum { get; set; }
    [SugarColumn(ColumnName = "IsPA", ColumnDescription = "是否优化包装")]
    public int? IsPA { get; set; }
    /// <summary>
    /// é”¯åˆ‡å›¾å·
    /// </summary>
    [SugarColumn(ColumnName = "MaterialIndeX", ColumnDescription = "锯切图号")]
    public int? MaterialIndeX { get; set; }
    #region åŒ…装线有关
    [Required]
    [SugarColumn(ColumnName = "PackageCode", ColumnDescription = "包装号", Length = 50)]
    public string PackageCode { get; set; }
    [Required]
    [SugarColumn(ColumnName = "MachineXCenter", ColumnDescription = "包装X坐标", Length = 50)]
    public float? MachineXCenter { get; set; }
    [Required]
    [SugarColumn(ColumnName = "MachineYCenter", ColumnDescription = "包装Y坐标", Length = 50)]
    public float? MachineYCenter { get; set; }
    [Required]
    [SugarColumn(ColumnName = "MachineZCenter", ColumnDescription = "包装Z坐标", Length = 50)]
    public float? MachineZCenter { get; set; }
    [Required]
    [SugarColumn(ColumnName = "Sequence", ColumnDescription = "层数", Length = 50)]
    public int? Sequence { get; set; }
    [Required]
    [SugarColumn(ColumnName = "Shelf", ColumnDescription = "次序", Length = 50)]
    public int? Shelf { get; set; }
    #endregion
    /// <summary>
    /// æ˜¯å¦è½¬å‘
    /// 0:不转向
    /// 1:转向
    /// ç›®å‰åªæœ‰å››é¢é’»æ‰èƒ½è½¬å‘
    /// </summary>
    [Required]
    [SugarColumn(ColumnName = "Rotation", ColumnDescription = "转向角度", Length = 50)]
    public float? Rotation { get; set; }
    [SugarColumn(ColumnName = "Info1", ColumnDescription = "纸箱长", Length = 50)]
    public float? Info1 { get; set; }
    [SugarColumn(ColumnName = "Info2", ColumnDescription = "纸箱宽", Length = 50)]
    public float? Info2 { get; set; }
    [SugarColumn(ColumnName = "Info3", ColumnDescription = "纸箱高", Length = 50)]
    public float? Info3 { get; set; }
    /// <summary>
    /// é”€å”®åˆåŒå•号
    /// </summary>
    [SugarColumn(ColumnName = "Info4", ColumnDescription = "销售合同单号", Length = 60)]
    public string? Info4 { get; set; }
    /// <summary>
    /// ç”Ÿäº§å•号
    /// </summary>
    [SugarColumn(ColumnName = "Info5", ColumnDescription = "生产单号", Length = 60)]
    public string? Info5 { get; set; }
    /// <summary>
    /// ç¬¬å‡ åŒ…
    /// </summary>
    [SugarColumn(ColumnName = "Info6", ColumnDescription = "第几包", Length = 60)]
    public string? Info6 { get; set; }
    /// <summary>
    /// ç»é”€åº—名称
    /// </summary>
    [SugarColumn(ColumnName = "Info7", ColumnDescription = "经销店名称", Length = 60)]
    public string? Info7 { get; set; }
    /// <summary>
    /// äº§å“åç§°
    /// </summary>
    [SugarColumn(ColumnName = "Info8", ColumnDescription = "产品名称", Length = 60)]
    public string? Info8 { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    /// </summary>
    [SugarColumn(ColumnName = "Info10", ColumnDescription = "客户名称", Length = 60)]
    public string? Info10 { get; set; }
    /// <summary>
    /// åŒ…装编码
    /// </summary>
    [SugarColumn(ColumnName = "Info9", ColumnDescription = "包装编码", Length = 60)]
    public string? Info9 { get; set; }
    /// <summary>
    /// è‡ªæor发货
    /// </summary>
    [SugarColumn(ColumnName = "Info11", ColumnDescription = "自提or发货", Length = 60)]
    public string? Info11 { get; set; }
    /// <summary>
    /// åŒ…装部件总数量
    /// </summary>
    [SugarColumn(ColumnName = "Info12", ColumnDescription = "包装部件总数量", Length = 60)]
    public string? Info12 { get; set; }
    /// <summary>
    /// åŒ…装面积
    /// </summary>
    [SugarColumn(ColumnName = "Info13", ColumnDescription = "包装面积", Length = 60)]
    public string? Info13 { get; set; }
    /// <summary>
    /// éƒ¨ä»¶åç§°
    /// </summary>
    [SugarColumn(ColumnName = "Info14", ColumnDescription = "部件名称", Length = 60)]
    public string? Info14 { get; set; }
    /// <summary>
    /// éƒ¨ä»¶æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "Info15", ColumnDescription = "部件数量")]
    public int? Info15 { get; set; }
    /// <summary>
    /// éƒ¨ä»¶å°ºå¯¸
    /// </summary>
    [SugarColumn(ColumnName = "Info16", ColumnDescription = "部件尺寸", Length = 60)]
    public string? Info16 { get; set; }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOrder/Mes_BatchOrderUPI_New/Mes_BatchOrderUPI_NewService.cs
@@ -4,6 +4,9 @@
using System.Data;
using System.Web;
using System.Text;
using Furion.DatabaseAccessor;
using Mapster;
namespace Admin.NET.Application;
/// <summary>
/// æ‰¹æ¬¡æ•°æ®æœåŠ¡
@@ -110,7 +113,23 @@
        return await _rep.GetFirstAsync(u => u.Id == input.Id);
    }
    [HttpPost]
    [ApiDescriptionSettings(Name = "GetBatchOrderUPIList")]
    [UnitOfWork]
    [AllowAnonymous]
    public async Task GetBatchOrderUPIList(List<GetBatchOrderUPIInput> input)
    {
        List<Mes_BatchOrderUPI_New> list = new List<Mes_BatchOrderUPI_New>();
        foreach (var item in input)
        {
            Mes_BatchOrderUPI_New task = new Mes_BatchOrderUPI_New();
            task = item.Adapt<Mes_BatchOrderUPI_New>();
            task.AreaCode = AreaCodeEnum.无区域;
            task.UpiStatus = UpiStatusEnum.初始;
            list.Add(task);
        }
        await _rep.InsertRangeAsync(list);
    }