From a0a0df2e824b6fe7e5a3c0afce78127fecf84fc9 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 03 十一月 2025 08:23:05 +0800
Subject: [PATCH] ERP接口代码更新,WCS代码优化,出入库分配优化

---
 项目代码/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs | 1882 ++--------------------------------------------------------
 1 files changed, 80 insertions(+), 1,802 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs"
index ae1b538..f4cc385 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs"
@@ -1,1851 +1,129 @@
 锘縰sing AutoMapper;
-using HslCommunication.WebSocket;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-using Newtonsoft.Json;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
-using SqlSugar;
 using System;
-using System.Collections;
 using System.Collections.Generic;
-using System.Dynamic;
-using System.Globalization;
 using System.Linq;
-using System.Linq.Expressions;
-using System.Reflection;
-using System.Reflection.Metadata;
 using System.Text;
 using System.Threading.Tasks;
-using WIDESEA_Common.CommonEnum;
+using WIDESEA_Common.MaterielEnum;
 using WIDESEA_Common.OrderEnum;
-using WIDESEA_Common.StockEnum;
-using WIDESEA_Common.WareHouseEnum;
-using WIDESEA_Core;
-using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
-using WIDESEA_Core.CodeConfigEnum;
-using WIDESEA_Core.DB;
-using WIDESEA_Core.Enums;
-using WIDESEA_Core.Helper;
-using WIDESEA_Core.Seed;
-using WIDESEA_Core.Utilities;
-using WIDESEA_DTO;
-using WIDESEA_DTO.Basic;
-using WIDESEA_DTO.ERP;
-using WIDESEA_DTO.Inbound;
+using WIDESEA_Core;
 using WIDESEA_DTO.MES;
-using WIDESEA_External.ERPService;
-using WIDESEA_External.Model;
 using WIDESEA_IBasicRepository;
-using WIDESEA_IBasicService;
 using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
-using WIDESEA_IRecordService;
-using WIDESEA_IStockRepository;
-using WIDESEA_IStockService;
-using WIDESEA_ITaskInfoRepository;
-using WIDESEA_ITaskInfoService;
 using WIDESEA_Model.Models;
-using WIDESEA_StockRepository;
-using static Org.BouncyCastle.Pqc.Crypto.Utilities.PqcOtherInfoGenerator;
+using WIDESEA_DTO.ERP;
+using WIDESEA_Core.Helper;
+using System.Security.Cryptography;
 
 namespace WIDESEA_InboundService
 {
     public class InboundOrderService : ServiceBase<Dt_InboundOrder, IInboundOrderRepository>, IInboundOrderService
     {
-        private readonly IMapper _mapper;
-        private readonly IUnitOfWorkManage _unitOfWorkManage;
-        private readonly IInboundRepository _inboundRepository;
-        private readonly IBasicRepository _basicRepository;
-        private readonly IStockRepository _stockRepository;
-        private readonly IRecordService _recordService;
-        private readonly IInvokeERPService _invokeERPService;
-        private readonly IWarehouseService _warehouseService;
-        private readonly IPalletTypeInfoRepository _palletTypeInfoRepository;
-
         public IInboundOrderRepository Repository => BaseDal;
-
-        public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, IStockRepository stockRepository, IRecordService recordService, IInvokeERPService invokeERPService, IWarehouseService warehouseService, IPalletTypeInfoRepository palletTypeInfoRepository) : base(BaseDal)
+        private readonly IBasicRepository _basicRepository;
+        private readonly IMapper _mapper;
+        public InboundOrderService(IInboundOrderRepository BaseDal, IBasicRepository basicRepository, IMapper mapper) : base(BaseDal)
         {
-            _mapper = mapper;
-            _unitOfWorkManage = unitOfWorkManage;
-            _inboundRepository = inboundRepository;
             _basicRepository = basicRepository;
-            _stockRepository = stockRepository;
-            _recordService = recordService;
-            _invokeERPService = invokeERPService;
-            _warehouseService = warehouseService;
-            _palletTypeInfoRepository = palletTypeInfoRepository;
-        }
-        public override object GetDetailPage(PageDataOptions pageData)
-        {
-            Type t = typeof(Dt_InboundOrder);
-
-            if (pageData.Value == null) return new PageGridData<object>(total: 0, null);
-            string keyName = t.GetKeyName();
-            ////鐢熸垚鏌ヨ鏉′欢
-            //Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal);
-            int totalCount = 0;
-            PropertyInfo propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null);
-            if (propertyInfo != null)
-            {
-                Type detailType = propertyInfo.PropertyType.GetGenericArguments()[0];
-                Navigate navigate = propertyInfo.GetCustomAttribute<Navigate>();
-                List<Dt_InboundOrderDetail> list = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(navigate.GetName(), "=", pageData.Value).ToPageList(pageData.Page, pageData.Rows, ref totalCount);
-                decimal sum = 0;
-                list.ForEach(x =>
-                {
-                    sum += Convert.ToDecimal(x.OrderQuantity);
-                });
-                PageGridData<Dt_InboundOrderDetail> pageGridData = new PageGridData<Dt_InboundOrderDetail>()
-                {
-                    Total= totalCount,
-                    Rows=list,
-                    Summary=new
-                    {
-                        OrderQuantity = Math.Round(sum, 3),
-                    }
-                };
-                return pageGridData;
-            }
-            return new PageGridData<object>(total: 0, null);
+            _mapper = mapper;
         }
         /// <summary>
-        /// 鍏朵粬鍏ュ簱鍗曟帴鏀�(璋冩嫈鍏ヤ粨,瀹緵鍥炴敹,鐗╂枡閿�鍞��璐�)
+        /// 娣诲姞ERP鍏ュ簱鍗曚俊鎭�
         /// </summary>
         /// <returns></returns>
-        public WebResponseContent ReceiveWarehousingOrder(ErpInOrderDTO model)
+        public WebResponseContent ReceiveInbound(ERPInboundOrderDTO eRPInboundOrderDTO)
         {
+            WebResponseContent content=new WebResponseContent();
             try
             {
-                return model.Way switch
+                if (eRPInboundOrderDTO == null)
                 {
-                    1 => AddSingOrder(model),
-                    2 => UpdateSingOrder(model),
-                    3 => DeleteSingOrder(model),
-                    _ => WebResponseContent.Instance.Error($"鎿嶄綔绫诲瀷涓嶅瓨鍦�,Way:{model.Way}"),
-                };
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-        /// <summary>
-        /// 鏂板鍗曟嵁
-        /// </summary>
-        public WebResponseContent AddSingOrder(ErpInOrderDTO model)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                //鑾峰彇鐗╂枡淇℃伅
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x=>x.MaterielCode==model.MCode);
-                if (materielInfo==null)
-                {
-                    return content.Error($"鐗╂枡{model.MCode}涓嶅瓨鍦�!");
+                    return content.Error("鍏ュ簱淇℃伅涓嶈兘浼犲叆涓虹┖");
                 }
-                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == model.WaId);
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == eRPInboundOrderDTO.WarehouseCode);
                 if (warehouse == null)
                 {
-                    return content.Error($"鏈壘鍒颁粨搴撲俊鎭�");
+                    return content.Error($"浠撳簱淇℃伅涓嶅瓨鍦▄eRPInboundOrderDTO.WarehouseCode}");
                 }
-                Dt_InboundOrder inboundOrderOld = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.UpperOrderNo == model.OrderNo).Includes(x=>x.Details).First();
-                if (inboundOrderOld!=null)
+                //鑾峰彇鎵�鏈夌墿鏂� 
+                List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == warehouse.WarehouseId && x.MaterielInvOrgId == MaterielInvOrgEnum.鏂板巶.ObjToInt());
+                //鍒ゆ柇鏄惁瀛樺湪鐗╂枡
+                InboundDetailItem? inboundDetailItem = eRPInboundOrderDTO.InboundDetail.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode));
+                if (inboundDetailItem != null)
                 {
-                    if (inboundOrderOld.OrderStatus!= OrderDetailStatusEnum.New.ObjToInt())
+                    return content.Error($"鍏ュ簱鏉$爜{nameof(inboundDetailItem.BarCode)}:{inboundDetailItem.BarCode}鐗╂枡:{inboundDetailItem.MaterialCode}涓嶅瓨鍦�");
+                }
+                //鑾峰彇鎵�鏈夐噰璐俊鎭�
+                List<Dt_InboundOrder> inboundOrdersOld = BaseDal.Db.Queryable<Dt_InboundOrder>().Includes(x => x.Details).ToList();
+
+                if (eRPInboundOrderDTO.OperateType == 1)
+                {
+                    //鍒ゆ柇閲嶅鎻掑叆
+                    Dt_InboundOrder? inboundOrderOld = inboundOrdersOld.FirstOrDefault(x => x.UpperOrderNo == eRPInboundOrderDTO.InboundCode);
+                    if (inboundOrderOld != null)
                     {
-                        return content.Error($"{model.OrderNo}鍗曟嵁宸插紑濮�!");
+                        return content.Error($"鍏ュ簱鍗曞崟鍙穥eRPInboundOrderDTO.InboundCode}淇℃伅宸插瓨鍦�");
                     }
-                    Dt_InboundOrderDetail? inboundOrderDetailOld = inboundOrderOld.Details?.FirstOrDefault(x => x.RowNo == model.RowNo.ObjToInt() && x.MaterielCode == model.MCode);
-                    if (inboundOrderDetailOld!=null)
+                    List<Dt_InboundOrderDetail> inboundOrderDetails = eRPInboundOrderDTO.InboundDetail.Select(x => _mapper.Map<Dt_InboundOrderDetail>(x)).ToList();
+                    Dt_InboundOrder inboundOrder = _mapper.Map<Dt_InboundOrder>(eRPInboundOrderDTO);
+                    inboundOrderDetails.ForEach(x =>
                     {
-                        inboundOrderDetailOld.OrderQuantity += model.Qty;
-                        _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetailOld);
-                    }
-                    else
-                    {
-                        Dt_InboundOrderDetail orderDetail = new Dt_InboundOrderDetail()
-                        {
-                            OrderId= inboundOrderOld.Id,
-                            MaterielCode = model.MCode,
-                            BatchNo = "",
-                            OrderQuantity = model.Qty,
-                            ReceiptQuantity = 0,
-                            OverInQuantity = 0,
-                            OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
-                            Unit = materielInfo.MaterielUnit,
-                            RowNo = model.RowNo.ObjToInt(),
-                            MaterielName = materielInfo.MaterielName,
-                            MaterielSpec = materielInfo.MaterielSpec
-                        };
-                        _inboundRepository.InboundOrderDetailRepository.AddData(orderDetail);
-                    }
-                }
-                else
-                {
-                    Dt_InboundOrderDetail orderDetail = new Dt_InboundOrderDetail()
-                    {
-                        MaterielCode = model.MCode,
-                        BatchNo = "",
-                        OrderQuantity = model.Qty,
-                        ReceiptQuantity = 0,
-                        OverInQuantity = 0,
-                        OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
-                        Unit = materielInfo.MaterielUnit,
-                        RowNo = model.RowNo.ObjToInt(),
-                        MaterielName = materielInfo.MaterielName,
-                        MaterielSpec = materielInfo.MaterielSpec
-                    };
-
-                    Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
-                    {
-                        UpperOrderNo = model.OrderNo,
-                        WarehouseId = warehouse.WarehouseId,
-                        SupplierId = "",
-                        OrderStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(),
-                        CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
-                        Remark = model.Note,
-                        Details = new List<Dt_InboundOrderDetail> { orderDetail }
-                    };
-                    switch (model.OType)
-                    {
-                        case 1:
-                            inboundOrder.OrderType = InOrderTypeEnum.Allocat.ObjToInt();
-                            break;
-                        case 3:
-                            inboundOrder.OrderType = InOrderTypeEnum.CustomerRecovery.ObjToInt();
-                            break;
-                        case 6:
-                            inboundOrder.OrderType = InOrderTypeEnum.SaleReturn.ObjToInt();
-                            break;
-                        default:
-                            break;
-                    };
-                    Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
-                }
-                return content.OK("鎴愬姛");
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 淇敼鍗曟嵁
-        /// </summary>
-        public WebResponseContent UpdateSingOrder(ErpInOrderDTO model)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                //鑾峰彇鍗曟嵁淇℃伅
-                Dt_InboundOrder inboundOrder = Db.Queryable<Dt_InboundOrder>().Where(x => x.UpperOrderNo == model.OrderNo).First();
-                if (inboundOrder == null)
-                {
-                    return content.Error($"鍗曟嵁{model.OrderNo}涓嶅瓨鍦�!");
-                }
-                if (inboundOrder.OrderStatus>=InOrderStatusEnum.鍏ュ簱涓�.ObjToInt())
-                {
-                    return content.Error($"鍗曟嵁{model.OrderNo}鍏ュ簱涓垨宸插畬鎴�");
-                }
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 鍒犻櫎鍗曟嵁
-        /// </summary>
-        public WebResponseContent DeleteSingOrder(ErpInOrderDTO model)
-        {
-            WebResponseContent content = new WebResponseContent();
-            return content;
-        }
-        public WebResponseContent GetInboundOrders(SaveModel saveModel)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                int pageNo = saveModel.MainData["pageNo"].ObjToInt();
-                string? orderNo = saveModel.MainData["orderNo"].ToString();
-                int warehouseId = saveModel.MainData["warehouseId"].ObjToInt();
-                List<Dt_InboundOrder> dt_ReceiveOrders = new List<Dt_InboundOrder>();
-                if (string.IsNullOrEmpty(orderNo))
-                {
-                    dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).Includes(x=>x.Details).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 10);
-                }
-                else
-                {
-                    dt_ReceiveOrders = Db.Queryable<Dt_InboundOrder>().Where(x => (x.InboundOrderNo.Contains(orderNo)) && x.OrderStatus < InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && x.WarehouseId == warehouseId).Includes(x => x.Details).OrderByDescending(x => x.CreateDate).ToPageList(pageNo, 10);
-                }
-
-                content.OK(data: dt_ReceiveOrders);
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 鍗曚釜鐗╂枡鐮佺粍鐩� 閫傜敤娴嬭瘯鏋�
-        /// </summary>
-        /// <param name="inboundOrderId"></param>
-        /// <param name="palletCode"></param>
-        /// <param name="serNum"></param>
-        /// <returns></returns>
-        public WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum)
-        {
-            try
-            {
-                Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderId).Includes(x => x.Details).First();
-                if (inboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
-                }
-                if (inboundOrder.OrderStatus >= InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞凡缁撴潫");
-                }
-                if (inboundOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
-                }
-                MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterielCode);
-                if (materielInfo == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-                if (materielInfo.WarehouseId != inboundOrder.WarehouseId)
-                {
-                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬鏈粨");
-                }
-                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
-                if (receiveOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
-                }
-                if (receiveOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
-                }
-                List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
-                if (!purchaseOrderNos.Contains(model.PurchaseOrderNo))
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旀敹璐у崟鏄庣粏涓噰璐崟");
-                }
-                Dt_ReceiveOrderDetail? receiveOrderDetail = receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode);
-                if (receiveOrderDetail == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-                Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode);
-                if (inboundOrderDetail == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-                if (inboundOrderDetail.OrderDetailStatus > OrderDetailStatusEnum.GroupAndInbound.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"瀵瑰簲鍏ュ簱鍗曟槑缁嗗凡缁撴潫");
-                }
-                float inboundDetailSum = inboundOrderDetail.OverInQuantity + inboundOrderDetail.ReceiptQuantity;
-                if (inboundDetailSum == inboundOrderDetail.OrderQuantity)
-                {
-                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欏叆搴撳崟鏄庣粏宸插叏閮ㄧ粍鐩樺畬鎴�");
-                }
-                if (model.Quantity > receiveOrderDetail.ReceivedQuantity || (inboundDetailSum + model.Quantity) > receiveOrderDetail.ReceivedQuantity)
-                {
-                    return WebResponseContent.Instance.Error($"涓庤鏀惰揣鍗曟槑缁嗘敹璐ф暟閲忎笉涓�鑷�");
-                }
-                Dt_StockInfo oldStockinfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
-                if (oldStockinfo != null)
-                {
-                    return WebResponseContent.Instance.Error($"鎵樼洏閲嶅");
-                }
-                Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                {
-                    BatchNo = model.LotNo,
-                    MaterielCode = materielInfo.MaterielCode,
-                    MaterielName = materielInfo.MaterielName,
-                    OrderNo = inboundOrder.InboundOrderNo,
-                    SerialNumber = model.SerialNumber,
-                    StockQuantity = model.Quantity,
-                    OutboundQuantity = 0,
-                    Unit = materielInfo.MaterielUnit,
-                    Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                    ProductionDate = model.ProductionDate,
-                    EffectiveDate = model.EffectiveDate,
-                    InboundOrderRowNo = inboundOrderDetail.RowNo,
-                };
-
-                Dt_StockInfo stockInfo = new Dt_StockInfo()
-                {
-                    PalletCode = palletCode,
-                    StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                    WarehouseId = inboundOrder.WarehouseId,
-                    Details = new List<Dt_StockInfoDetail> { stockInfoDetail }
-                };
-                inboundOrderDetail.ReceiptQuantity += model.Quantity;
-                _unitOfWorkManage.BeginTran();
-                if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-                {
-                    inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
-                }
-                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail);
-                if (inboundOrder.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt())
-                {
-                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
-                    BaseDal.UpdateData(inboundOrder);
-                }
-                _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-
-        /// <summary>
-        /// 鍏ュ钩搴擄紝鐩存帴娣诲姞搴撳瓨
-        /// </summary>
-        /// <param name="warehouseId"></param>
-        /// <param name="serNums"></param>
-        /// <returns></returns>
-        public WebResponseContent InPinKu(string inboundOrderId, int warehouseId, List<string> serNums)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == warehouseId);
-                if (warehouse == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅");
-                }
-                Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == inboundOrderId && x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).First();
-                if (inboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
-                }
-                if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
-                }
-
-                //鍏ュ簱鏄庣粏鍘熷畬鎴愭暟閲�
-                int oldCount = inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count;
-
-                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
-                if (receiveOrder == null && inboundOrder.OrderType==InOrderTypeEnum.Purchase.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
-                }
-                if ((receiveOrder?.Details == null || receiveOrder?.Details.Count <= 0) && inboundOrder.OrderType == InOrderTypeEnum.Purchase.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
-                }
-
-                List<string> purchaseOrderNos = receiveOrder?.Details.Select(x => x.PurchaseOrderNo).ToList();
-
-                List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums);
-
-                if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
-                {
-                    return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
-                }
-
-                string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-                if (materielInfo == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-
-                List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == materielCode).ToList();
-
-                if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-                foreach (var model in models)
-                {
-                    if (!inboundOrderDetails.Any(x => x.BatchNo == model.LotNo))
-                        return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欐壒娆°�恵model.LotNo}銆�");
-                }
-                if (receiveOrder?.Details.FirstOrDefault(x => x.MaterielCode == materielCode) == null && inboundOrder.OrderType == InOrderTypeEnum.Purchase.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-                float beforeQuantity = 0;
-                Dt_StockInfo stockInfo = new Dt_StockInfo()
-                {
-                    PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"),
-                    StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
-                    WarehouseId = inboundOrder.WarehouseId,
-                    PalletType = PalletTypeEnum.SmallPallet.ObjToInt(),
-                    LocationCode = "骞冲簱浣�",
-                    Details = new List<Dt_StockInfoDetail>()
-                };
-
-                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-                List<int> detailKeys = new List<int>();
-                Dt_ReturnOrder? returnOrder = null;
-                foreach (var model in models)
-                {
-                    if (purchaseOrderNos?.FirstOrDefault(x => x == model.PurchaseOrderNo) == null && inboundOrder.OrderType == InOrderTypeEnum.Purchase.ObjToInt())
-                    {
-                        return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ラ噰璐崟");
-                    }
-
-                    Dt_InboundOrderDetail? notGroupDetail = inboundOrderDetails.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt() && x.OrderQuantity == model.Quantity && !detailKeys.Contains(x.Id) && x.OrderQuantity > x.ReceiptQuantity).FirstOrDefault();
-
-                    if (notGroupDetail == null)
-                    {
-                        return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚");
-                    }
-                    detailKeys.Add(notGroupDetail.Id);
-
-                    Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                    {
-                        BatchNo = model.LotNo,
-                        MaterielCode = materielInfo.MaterielCode,
-                        MaterielName = materielInfo.MaterielName,
-                        MaterielSpec=materielInfo.MaterielSpec,
-                        OrderNo = inboundOrder.InboundOrderNo,
-                        SerialNumber = model.SerialNumber,
-                        StockQuantity = model.Quantity,
-                        OutboundQuantity = 0,
-                        Unit = materielInfo.MaterielUnit,
-                        Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
-                        ProductionDate = model.ProductionDate,
-                        EffectiveDate = model.EffectiveDate,
-                        InboundOrderRowNo = notGroupDetail.RowNo,
-                    };
-                    oldCount++;
-
-                    if (stockInfo.Id > 0)
-                    {
-                        stockInfoDetail.StockId = stockInfo.Id;
-                    }
-                    stockInfo.Details.Add(stockInfoDetail);
-
-                    stockInfoDetails.Add(stockInfoDetail);
-
-                    notGroupDetail.ReceiptQuantity = model.Quantity;
-                    notGroupDetail.OverInQuantity = model.Quantity;
-                    notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
-                }
-
-                //鍏ュ簱鏄庣粏鏂板瀹屾垚鏁伴噺
-                if (inboundOrder.Details.Count == oldCount)
-                {
-                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
-                    //鍒ゆ柇鏄惁涓洪��鏂欏叆搴撳崟
-                    if (inboundOrder.OrderType == InOrderTypeEnum.Return.ObjToInt())
-                    {
-                        returnOrder = _inboundRepository.ReturnOrderRepository.Db.Queryable<Dt_ReturnOrder>().Where(x => x.OrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
-                        returnOrder.ReturnOrderStatus = ReturnOrderStatusEnum.Returned.ObjToInt();
-                        foreach (var item in inboundOrder.Details)
-                        {
-                            Dt_ReturnOrderDetail returnOrderDetail = returnOrder.Details?.FirstOrDefault(x => x.MCode == item.MaterielCode);
-                            if (returnOrderDetail != null)
-                            {
-                                returnOrderDetail.OverReturnQty = item.OverInQuantity;
-                                returnOrderDetail.OrderDetailStatus = ReturnOrderStatusEnum.Returned.ObjToInt();
-                            }
-                        }
-                    }
-                }
-                else
-                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
-                float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-
-                _unitOfWorkManage.BeginTran();
-                if (stockInfo.Id == 0)
-                {
-                    _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                }
-                else
-                {
-                    _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand();
-                }
-                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails);
-                _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
-                if (returnOrder != null)
-                {
-                    _inboundRepository.ReturnOrderRepository.UpdateData(returnOrder);
-                    _inboundRepository.ReturnOrderDetailRepository.UpdateData(returnOrder.Details);
-                }
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.Inbound);
-                _unitOfWorkManage.CommitTran();
-
-                #region 鍏ュ簱瀹屾垚涓婃姤ERP
-                if (inboundOrder != null && inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt() && inboundOrder.OrderType != InOrderTypeEnum.Allocat.ObjToInt())
-                {
-                    if (inboundOrder.OrderType == InOrderTypeEnum.Return.ObjToInt())
-                    {
-                        FeedbackReturnOrder(inboundOrder, returnOrder);
-                    }
-                    else
-                    {
-                        FeedbackInboundOrder(inboundOrder.Id);
-                    }
-                }
-                #endregion
-                content.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// WMS鍏ュ钩搴撲笉鎺ㄥ崟鎹�
-        /// </summary>
-        /// <param name="warehouseId"></param>
-        /// <param name="serNums"></param>
-        /// <returns></returns>
-        public WebResponseContent WMSInPinKu(int warehouseId, List<string> serNums)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == warehouseId);
-                if (warehouse == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅");
-                }
-                List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums);
-                if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
-                {
-                    return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
-                }
-
-                string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-                if (materielInfo == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-                float beforeQuantity = 0;
-                Dt_StockInfo stockInfo = new Dt_StockInfo()
-                {
-                    PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"),
-                    StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
-                    WarehouseId = warehouse.WarehouseId,
-                    PalletType = PalletTypeEnum.SmallPallet.ObjToInt(),
-                    LocationCode = "骞冲簱浣�",
-                    Details = new List<Dt_StockInfoDetail>()
-                };
-                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-                foreach (var model in models)
-                {
-                    Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                    {
-                        BatchNo = model.LotNo,
-                        MaterielCode = materielInfo.MaterielCode,
-                        MaterielName = materielInfo.MaterielName,
-                        MaterielSpec = materielInfo.MaterielSpec,
-                        SerialNumber = model.SerialNumber,
-                        StockQuantity = model.Quantity,
-                        OutboundQuantity = 0,
-                        OrderNo = "",
-                        Unit = materielInfo.MaterielUnit,
-                        Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
-                        ProductionDate = model.ProductionDate,
-                        EffectiveDate = model.EffectiveDate,
-                    };
-
-                    if (stockInfo.Id > 0)
-                    {
-                        stockInfoDetail.StockId = stockInfo.Id;
-                    }
-                    stockInfo.Details.Add(stockInfoDetail);
-
-                    stockInfoDetails.Add(stockInfoDetail);
-
-                }
-                float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-                _unitOfWorkManage.BeginTran();
-                if (stockInfo.Id == 0)
-                {
-                    _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                }
-                else
-                {
-                    _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand();
-                }
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.Inbound);
-                _unitOfWorkManage.CommitTran();
-                content.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 缁勭洏
-        /// </summary>
-        /// <param name="saveModel"></param>
-        /// <returns></returns>
-        public WebResponseContent MaterielGroup(SaveModel saveModel)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var orderNo = saveModel.MainData["orderNo"].ToString();
-                var palletCode = saveModel.MainData["palletCode"].ToString();
-                var warehouseId = saveModel.MainData["warehouseId"].ObjToInt();
-                var Initiallife = saveModel.MainData["initiallife"].ObjToInt();
-                var serNums = saveModel.DelKeys.Select(x => x.ToString()).ToList();
-                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == warehouseId);
-                if (warehouse == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅");
-                }
-
-                Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == orderNo && x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).First();
-                if (inboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
-                }
-                if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
-                }
-                List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums);
-                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
-                WebResponseContent IsValidContent = IsValidMCDates(models);
-                if (!IsValidContent.Status)
-                {
-                    return content.Error(IsValidContent.Message);
-                }
-                //闄ら噰璐叆搴撳崟浠ュ鍏朵粬鍏ュ簱鍗曠粍鐩樻暟鎹鐞�
-                if (inboundOrder.OrderType != InOrderTypeEnum.Purchase.ObjToInt())
-                {
-                    return OtherInGroup(inboundOrder, palletCode, Initiallife, warehouse, models);
-                }
-                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
-                if (receiveOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
-                }
-                if (receiveOrder.Details == null || receiveOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
-                }
-
-                List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
-                if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
-                {
-                    return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
-                }
-
-                string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-                if (materielInfo == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-
-                List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == materielCode && x.BatchNo == (models.FirstOrDefault()?.LotNo ?? "")).ToList();
-
-                if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-                if (receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == materielCode) == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-
-                float beforeQuantity = 0;
-
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
-                if (stockInfo == null)
-                {
-                    stockInfo = new Dt_StockInfo()
-                    {
-                        PalletCode = palletCode,
-                        StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                        WarehouseId = inboundOrder.WarehouseId,
-                        PalletType = GetPalletType(warehouse, palletCode),
-                        Details = new List<Dt_StockInfoDetail>()
-                    };
-                }
-                else
-                {
-                    if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
-                    {
-                        return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�");
-                    }
-                    beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-                }
-
-                if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
-                {
-                    stockInfo.Remark = Initiallife.ToString();
-                    string batchNo = models.FirstOrDefault()?.LotNo ?? "";
-                    Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo);
-                    if (existDetail != null)
-                    {
-                        return WebResponseContent.Instance.Error($"{batchNo}娴嬭瘯鏋跺凡瀛樺湪");
-                    }
-                    if (models.Count >= 2)
-                    {
-                        return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�");
-                    }
-                    if (palletCode.Substring(0, 1) == "6")
-                    {
-                        stockInfo.PalletType = PalletTypeEnum.MediumPallet.ObjToInt();
-                    }
-                    else
-                    {
-                        stockInfo.PalletType = PalletTypeEnum.LargestPallet.ObjToInt();
-                    }
-                }
-                else if(warehouse.WarehouseCode == WarehouseEnum.HA57.ToString())
-                {
-                    if (models.Count >= 2)
-                    {
-                        return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�");
-                    }
-                }
-
-                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-                foreach (var model in models)
-                {
-                    if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null)
-                    {
-                        return WebResponseContent.Instance.Error($"鏈湪閲囪喘鍗曟槑缁嗕腑鎵惧埌璇ラ噰璐崟");
-                    }
-
-                    Dt_InboundOrderDetail? notGroupDetail = inboundOrderDetails.Where(x => x.OrderDetailStatus <= OrderDetailStatusEnum.Inbounding.ObjToInt() && x.MaterielCode==model.MaterielCode && x.BatchNo==model.LotNo && x.OrderQuantity > x.ReceiptQuantity).FirstOrDefault();
-
-                    if (notGroupDetail == null)
-                    {
-                        return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚");
-                    }
-                    Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                    {
-                        BatchNo = model.LotNo,
-                        MaterielCode = materielInfo.MaterielCode,
-                        MaterielName = materielInfo.MaterielName,
-                        MaterielSpec = materielInfo.MaterielSpec,
-                        OrderNo = inboundOrder.InboundOrderNo,
-                        SerialNumber = model.SerialNumber,
-                        StockQuantity = model.Quantity,
-                        OutboundQuantity = 0,
-                        Unit = materielInfo.MaterielUnit,
-                        Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                        ProductionDate = model.ProductionDate,
-                        EffectiveDate = model.EffectiveDate,
-                        InboundOrderRowNo = notGroupDetail.RowNo,
-                    };
-
-                    if (stockInfo.Id > 0)
-                    {
-                        stockInfoDetail.StockId = stockInfo.Id;
-                    }
-                    stockInfo.Details.Add(stockInfoDetail);
-
-                    stockInfoDetails.Add(stockInfoDetail);
-
-                    decimal decimalReceiptQuantity = Convert.ToDecimal(notGroupDetail.ReceiptQuantity);
-                    decimal decimalModelQuantity = Convert.ToDecimal(model.Quantity);
-                    decimal decimalOrderQuantity = Convert.ToDecimal(notGroupDetail.OrderQuantity);
-                    decimalReceiptQuantity += decimalModelQuantity;
-                    // 妫�鏌ユ槸鍚﹁秴鍑鸿鍗曟暟閲�
-                    if (decimalReceiptQuantity > decimalOrderQuantity)
-                    {
-                        return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{decimalReceiptQuantity - decimalOrderQuantity}");
-                    }
-                    // 杞洖float绫诲瀷瀛樺偍锛屼絾姣旇緝鍜岃绠楅兘浣跨敤decimal瀹屾垚
-                    notGroupDetail.ReceiptQuantity = Convert.ToSingle(decimalReceiptQuantity);
-                    if (notGroupDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-                    {
-                        notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
-                    }
-                }
-
-                float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-
-                inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
-
-                _unitOfWorkManage.BeginTran();
-                if (stockInfo.Id == 0)
-                {
-                    _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                }
-                else
-                {
-                    _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand();
-                }
-                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails);
-                _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
-                _unitOfWorkManage.CommitTran();
-                content.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        public WebResponseContent MaterielPPorGM(string materielBoxCode = "")
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                string SerNum = materielBoxCode.Substring(0, materielBoxCode.LastIndexOf("SC:")-1);
-                MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, SerNum);
-                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
-                WebResponseContent IsValidContent = IsValidMCDates(new List<MatSerNumAnalysisModel>() { model });
-                if (!IsValidContent.Status)
-                {
-                    return content.Error(IsValidContent.Message);
-                }
-                string result = materielBoxCode.Substring(materielBoxCode.LastIndexOf("SC:") + 3);
-                //鑾峰彇鍏ュ簱鍗曟槑缁�
-                Dt_InboundOrderDetail inboundOrderDetail = _inboundRepository.InboundOrderDetailRepository.QueryFirst(x=>x.BatchNo== model.LotNo && x.MaterielCode== model.MaterielCode);
-                if (inboundOrderDetail == null)
-                {
-                    return InOtherGMOrPP(model, result);
-                }
-                Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().First(x => x.Id == inboundOrderDetail.OrderId);
-
-                if (inboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
-                }
-                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId);
-                //闄ら噰璐叆搴撳崟浠ュ鍏朵粬鍏ュ簱鍗曠粍鐩樻暟鎹鐞�
-                if (inboundOrder.OrderType != InOrderTypeEnum.Purchase.ObjToInt())
-                {
-                    return OtherInGroup(inboundOrder, model.LotNo, 0, warehouse, new List<MatSerNumAnalysisModel>() { model });
-                }
-                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
-                if (receiveOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
-                }
-                if (receiveOrder.Details == null || receiveOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
-                }
-
-                List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
-
-                string materielCode = model?.MaterielCode ?? "";
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-                if (materielInfo == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-
-                float beforeQuantity = 0;
-                
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == model.LotNo).Includes(x => x.Details).First();
-                if (stockInfo == null)
-                {
-                    stockInfo = new Dt_StockInfo()
-                    {
-                        PalletCode = model.LotNo,
-                        StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                        WarehouseId = inboundOrder.WarehouseId,
-                        PalletType = GetPalletTypeGMOrPP(warehouse, result.Split("*")[0]),
-                        StockLength = result.Split("*")[0].ObjToInt(),
-                        Details = new List<Dt_StockInfoDetail>()
-                    };
-                }
-                else
-                {
-                    if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
-                    {
-                        return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�");
-                    }
-                }
-                if (stockInfo.PalletType==-1)
-                {
-                    return WebResponseContent.Instance.Error($"鎵樼洏绫诲瀷涓嶅瓨鍦�");
-                }
-                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-                if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鏄庣粏涓壘鍒拌閲囪喘鍗�");
-                }
-
-                if (inboundOrderDetail.OrderDetailStatus > OrderDetailStatusEnum.Inbounding.ObjToInt() || inboundOrderDetail.OrderQuantity == inboundOrderDetail.ReceiptQuantity)
-                {
-                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚");
-                }
-                Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                {
-                    BatchNo = model.LotNo,
-                    MaterielCode = materielInfo.MaterielCode,
-                    MaterielName = materielInfo.MaterielName,
-                    MaterielSpec = materielInfo.MaterielSpec,
-                    OrderNo = inboundOrder.InboundOrderNo,
-                    SerialNumber = model.SerialNumber,
-                    StockQuantity = model.Quantity,
-                    OutboundQuantity = 0,
-                    Unit = materielInfo.MaterielUnit,
-                    Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                    ProductionDate = model.ProductionDate,
-                    EffectiveDate = model.EffectiveDate,
-                    InboundOrderRowNo = inboundOrderDetail.RowNo,
-                };
-
-                stockInfo.Details.Add(stockInfoDetail);
-
-                stockInfoDetails.Add(stockInfoDetail);
-
-                inboundOrderDetail.ReceiptQuantity += model.Quantity;
-                if (inboundOrderDetail.ReceiptQuantity > inboundOrderDetail.OrderQuantity)
-                {
-                    return WebResponseContent.Instance.Error($"缁勭洏鏁伴噺婧㈠嚭{inboundOrderDetail.ReceiptQuantity - inboundOrderDetail.OrderQuantity}");
-                }
-                if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-                {
-                    inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
-                }
-                float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-                if (inboundOrder.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt())
-                {
-                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
-                }
-                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail);
-                _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
-                content.OK(data: stockInfo);
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        public WebResponseContent InOtherGMOrPP(MatSerNumAnalysisModel model,string request = "")
-        {
-            string materielCode = model?.MaterielCode ?? "";
-            Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-            if (materielInfo == null)
-            {
-                return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-            }
-            float beforeQuantity = 0;
-            Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == materielInfo.WarehouseId);
-            Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == model.LotNo).Includes(x => x.Details).First();
-            if (stockInfo == null)
-            {
-                stockInfo = new Dt_StockInfo()
-                {
-                    PalletCode = model.LotNo,
-                    StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                    WarehouseId = warehouse.WarehouseId,
-                    PalletType = GetPalletTypeGMOrPP(warehouse, request.Split("*")[0]),
-                    StockLength = request.Split("*")[0].ObjToInt(),
-                    Details = new List<Dt_StockInfoDetail>()
-                };
-            }
-            else
-            {
-                if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�");
-                }
-            }
-            if (stockInfo.PalletType == -1)
-            {
-                return WebResponseContent.Instance.Error($"鎵樼洏绫诲瀷涓嶅瓨鍦�");
-            }
-            List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-            Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-            {
-                BatchNo = model.LotNo,
-                MaterielCode = materielInfo.MaterielCode,
-                MaterielName = materielInfo.MaterielName,
-                MaterielSpec = materielInfo.MaterielSpec,
-                OrderNo = "",
-                SerialNumber = model.SerialNumber,
-                StockQuantity = model.Quantity,
-                OutboundQuantity = 0,
-                Unit = materielInfo.MaterielUnit,
-                Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                ProductionDate = model.ProductionDate,
-                EffectiveDate = model.EffectiveDate,
-                InboundOrderRowNo = 0,
-            };
-
-            stockInfo.Details.Add(stockInfoDetail);
-
-            stockInfoDetails.Add(stockInfoDetail);
-            float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-            _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
-            return WebResponseContent.Instance.OK(data: stockInfo);
-        }
-        public int GetPalletTypeGMOrPP(Dt_Warehouse warehouse, string boxWidth)
-        {
-            if (warehouse.WarehouseCode == WarehouseEnum.HA152.ToString())
-            {
-
-                if (boxWidth.ObjToInt() <= 690 && boxWidth.ObjToInt()>=520)
-                {
-                    return 15;
-                }
-                else if (boxWidth.ObjToInt() > 690 && boxWidth.ObjToInt() <= 1400)
-                {
-                    return 16;
-                }
-
-            }
-            else if (warehouse.WarehouseCode == WarehouseEnum.HA58.ToString())
-            {
-                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == warehouse.WarehouseId);
-                return palletTypeInfo.PalletType;
-            }
-            return -1;
-        }
-        public WebResponseContent OtherInGroup(Dt_InboundOrder inboundOrder,string? palletCode,int Initiallife,Dt_Warehouse warehouse,List<MatSerNumAnalysisModel> models)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
-                {
-                    return content.Error($"鐗╂枡涓嶅彲娣锋斁");
-                }
-                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
-                WebResponseContent IsValidContent = IsValidMCDates(models);
-                if (!IsValidContent.Status)
-                {
-                    return content.Error(IsValidContent.Message);
-                }
-                string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-                if (materielInfo == null)
-                {
-                    return content.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-
-                List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == materielCode).ToList();
-
-                if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0)
-                {
-                    return content.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
-                }
-
-                float beforeQuantity = 0;
-
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
-                if (stockInfo == null)
-                {
-                    stockInfo = new Dt_StockInfo()
-                    {
-                        PalletCode = palletCode,
-                        StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                        WarehouseId = inboundOrder.WarehouseId,
-                        PalletType = GetPalletType(warehouse, palletCode),
-                        Details = new List<Dt_StockInfoDetail>()
-                    };
-                }
-                else
-                {
-                    if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
-                    {
-                        return content.Error($"鎵樼洏鍙烽噸澶�");
-                    }
-                    beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-                }
-
-                if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
-                {
-                    stockInfo.Remark = Initiallife.ToString();
-                    string batchNo = models.FirstOrDefault()?.LotNo ?? "";
-                    Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo);
-                    if (existDetail != null)
-                    {
-                        return content.Error($"{batchNo}娴嬭瘯鏋跺凡瀛樺湪");
-                    }
-                    if (models.Count >= 2)
-                    {
-                        return content.Error($"缁勭洏鏄庣粏涓嶅敮涓�");
-                    }
-                    if (palletCode.Substring(0, 1) == "6")
-                    {
-                        stockInfo.PalletType = PalletTypeEnum.MediumPallet.ObjToInt();
-                    }
-                    else
-                    {
-                        stockInfo.PalletType = PalletTypeEnum.LargestPallet.ObjToInt();
-                    }
-                }
-                else if (warehouse.WarehouseCode == WarehouseEnum.HA57.ToString())
-                {
-                    if (models.Count >= 2)
-                    {
-                        return content.Error($"缁勭洏鏄庣粏涓嶅敮涓�");
-                    }
-                }
-
-                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-                foreach (var model in models)
-                {
-                    Dt_InboundOrderDetail? notGroupDetail = inboundOrderDetails.Where(x => x.OrderDetailStatus <= OrderDetailStatusEnum.Inbounding.ObjToInt() && x.MaterielCode == model.MaterielCode && x.OrderQuantity > x.ReceiptQuantity).FirstOrDefault();
-
-                    if (notGroupDetail == null)
-                    {
-                        return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚");
-                    }
-                    Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                    {
-                        BatchNo = model.LotNo,
-                        MaterielCode = materielInfo.MaterielCode,
-                        MaterielName = materielInfo.MaterielName,
-                        MaterielSpec = materielInfo.MaterielSpec,
-                        OrderNo = inboundOrder.InboundOrderNo,
-                        SerialNumber = model.SerialNumber,
-                        StockQuantity = model.Quantity,
-                        OutboundQuantity = 0,
-                        Unit = materielInfo.MaterielUnit,
-                        Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                        ProductionDate = model.ProductionDate,
-                        EffectiveDate = model.EffectiveDate,
-                        InboundOrderRowNo = notGroupDetail.RowNo,
-                    };
-
-                    if (stockInfo.Id > 0)
-                    {
-                        stockInfoDetail.StockId = stockInfo.Id;
-                    }
-                    stockInfo.Details.Add(stockInfoDetail);
-
-                    stockInfoDetails.Add(stockInfoDetail);
-
-                    notGroupDetail.ReceiptQuantity += model.Quantity;
-                    if (notGroupDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
-                    {
-                        notGroupDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
-                    }
-                }
-
-                float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-
-                inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
-
-                _unitOfWorkManage.BeginTran();
-                if (stockInfo.Id == 0)
-                {
-                    _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                }
-                else
-                {
-                    _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand();
-                }
-                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails);
-                _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
-                _unitOfWorkManage.CommitTran();
-                content.OK();
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-
-        public WebResponseContent MaterielGroup(string palletCode, int Initiallife, int warehouseId, List<string> serNums)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == warehouseId);
-                if (warehouse == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅");
-                }
-
-                List<MatSerNumAnalysisModel> models = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNums);
-
-                if (models.Select(x => x.MaterielCode).Distinct().Count() > 1)
-                {
-                    return WebResponseContent.Instance.Error($"鐗╂枡涓嶅彲娣锋斁");
-                }
-                //楠岃瘉鍒ゆ柇鏃堕棿鏍煎紡
-                WebResponseContent IsValidContent = IsValidMCDates(models);
-                if (!IsValidContent.Status)
-                {
-                    return content.Error(IsValidContent.Message);
-                }
-                string materielCode = models.FirstOrDefault()?.MaterielCode ?? "";
-                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
-                if (materielInfo == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
-                }
-
-                float beforeQuantity = 0;
-
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
-
-                if (stockInfo == null)
-                {
-                    stockInfo = new Dt_StockInfo()
-                    {
-                        PalletCode = palletCode,
-                        StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt(),
-                        WarehouseId = warehouse.WarehouseId,
-                        PalletType = GetPalletType(warehouse, palletCode),
-                        Details = new List<Dt_StockInfoDetail>()
-                    };
-                }
-                else
-                {
-                    if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
-                    {
-                        return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�");
-                    }
-                    beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-                }
-
-                if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
-                {
-                    string batchNo = models.FirstOrDefault()?.LotNo ?? "";
-                    Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo);
-                    if (existDetail != null)
-                    {
-                        return WebResponseContent.Instance.Error($"{batchNo}娴嬭瘯鏋跺凡瀛樺湪");
-                    }
-                    if (models.Count >= 2)
-                    {
-                        return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�");
-                    }
-                    stockInfo.Remark = Initiallife.ToString();
-                    if (palletCode.Substring(0, 1) == "6")
-                    {
-                        stockInfo.PalletType = PalletTypeEnum.MediumPallet.ObjToInt();
-                    }
-                    else
-                    {
-                        stockInfo.PalletType = PalletTypeEnum.LargestPallet.ObjToInt();
-                    }
-                }
-                else if (warehouse.WarehouseCode == WarehouseEnum.HA57.ToString())
-                {
-                    if (models.Count >= 2)
-                    {
-                        return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�");
-                    }
-                }
-
-                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
-                List<int> detailKeys = new List<int>();
-                foreach (var model in models)
-                {
-                    Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
-                    {
-                        BatchNo = model.LotNo,
-                        MaterielCode = materielInfo.MaterielCode,
-                        MaterielName = materielInfo.MaterielName,
-                        MaterielSpec = materielInfo.MaterielSpec,
-                        OrderNo = "",
-                        SerialNumber = model.SerialNumber,
-                        StockQuantity = model.Quantity,
-                        OutboundQuantity = 0,
-                        Unit = materielInfo.MaterielUnit,
-                        Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
-                        ProductionDate = model.ProductionDate,
-                        EffectiveDate = model.EffectiveDate,
-                        InboundOrderRowNo = 0,
-                    };
-
-                    if (stockInfo.Id > 0)
-                    {
-                        stockInfoDetail.StockId = stockInfo.Id;
-                    }
-                    stockInfo.Details.Add(stockInfoDetail);
-
-                    stockInfoDetails.Add(stockInfoDetail);
-                }
-
-                float totalQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
-
-                _unitOfWorkManage.BeginTran();
-                if (stockInfo.Id == 0)
-                {
-                    _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                }
-                else
-                {
-                    _stockRepository.StockInfoRepository.Db.UpdateNav(stockInfo).Include(x => x.Details, new UpdateNavOptions() { OneToManyInsertOrUpdate = true }).ExecuteCommand();
-                }
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
-                _unitOfWorkManage.CommitTran();
-                content.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 鍏ュ簱瀹屾垚涓婃姤ERP
-        /// </summary>
-        /// <returns></returns>
-        public WebResponseContent FeedbackInboundOrder(int inboundOrderId)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderId).Includes(x => x.Details).First();
-                if (inboundOrder.Details.Count == 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
-                }
-
-                List<Dt_StockInfoDetail> stockInfoDetails = _stockRepository.StockInfoDetailRepository.QueryData(x => x.OrderNo == inboundOrder.InboundOrderNo);
-                if (stockInfoDetails.Count == 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板簱瀛樻槑缁嗕俊鎭�");
-                }
-                //鑾峰彇璇ュ叆搴撳崟鎵�鏈夊簱瀛�
-                List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => stockInfoDetails.GroupBy(x => x.StockId).Select(x => x.Key).Contains(x.Id)).Includes(x => x.Details).ToList();
-                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId);
-                if (warehouse == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�");
-                }
-                List<ERPInboundDetailModel>? detailModels = new List<ERPInboundDetailModel>();
-                foreach (var stockInfo in stockInfos)
-                {
-                    foreach (var item in stockInfo.Details.GroupBy(x => x.InboundOrderRowNo).Select(x => x.Key))
-                    {
-                        //鍖哄垎涓嶅悓鎵规
-                        Dt_StockInfoDetail? dt_StockInfoDetail = stockInfo.Details.Where(x => x.InboundOrderRowNo == item).FirstOrDefault();
-                        ERPInboundDetailModel detailModel = new ERPInboundDetailModel()
-                        {
-                            ExpiryDate = dt_StockInfoDetail?.EffectiveDate ?? "",
-                            LocationCode = warehouse.WarehouseCode,
-                            MaterialsCode = dt_StockInfoDetail.MaterielCode,
-                            MfgDate = dt_StockInfoDetail.ProductionDate ?? "",
-                            QtyCustoms = "0",
-                            Quantity = stockInfo.Details.Where(x => x.InboundOrderRowNo == item).Sum(x => x.StockQuantity).ToString(),
-                            Rack = stockInfo.LocationCode,
-                            ReceiptCode = inboundOrder.UpperOrderNo,
-                            ReceiptSerNo = item.ToString()
-                        };
-                        detailModels.Add(detailModel);
-                    }
-                }
-                ERPInboundModel model = new ERPInboundModel()
-                {
-                    Code = CreateCodeByRule(nameof(RuleCodeEnum.RLCodeRule)),
-                    CreatorCode = inboundOrder.Creater,
-                    EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
-                    StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    SuppliersId = inboundOrder.SupplierId,
-                    Type = "S",
-                    UniqueTag = inboundOrder.Id.ToString(),
-                    WarehouseCode = warehouse.WarehouseCode,
-                    Way = 1,
-                    Details = detailModels
-                };
-                //鎺ㄩ�丒RP
-                _invokeERPService.InvokeInboundOrderApi(model);
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 閫�鏂欏畬鎴愪笂鎶ヨ嚦ERP
-        /// </summary>
-        public WebResponseContent FeedbackReturnOrder(Dt_InboundOrder inboundOrder,Dt_ReturnOrder returnOrder)
-        {
-            WebResponseContent content= new WebResponseContent();
-            try
-            {
-                if (returnOrder==null)
-                {
-                    return content.OK();
-                }
-                //鑾峰彇浠撳簱缂栫爜
-                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId==inboundOrder.WarehouseId);
-
-                var groupedDetails = returnOrder.Details.GroupBy(d => new { d.PickCode, d.RowId })
-                    .Select(g => new
-                    {
-                        PickCode = returnOrder.OrderNo,
-                        RowIndex = g.Key.RowId,
-                        Details = g.ToList()
-                    })
-                    .ToList();
-                // 鏋勫缓宓屽缁撴瀯
-                var issitems = groupedDetails.Select(g => new ReturnItem
-                {
-                    Pickcode = g.PickCode,
-                    Rowindex = g.RowIndex,
-                    PickList = g.Details
-                        .GroupBy(d => d.MCode)
-                        .Select(mg => new ReturnPickItem
-                        {
-                            Material = mg.Key,
-                            Qty = mg.Sum(x => x.ReturnQty),
-                            Dataitem = mg.Select(d => new ReturnDataItem
-                            {
-                                Lotno = d.BatchNo,
-                                Qty = d.ReturnQty,
-                                Location = warehouse.WarehouseCode,
-                                Msfpart = d.Code
-                            }).ToList()
-                        }).ToList()
-                }).ToList();
-                //鑾峰彇瀵瑰簲閫�鏂欏崟
-                ERPReturnModel returnModel = new ERPReturnModel()
-                {
-                    Way = 1,
-                    UniqueTag = returnOrder.Id.ToString(),
-                    Code = CreateCodeByRule(nameof(RuleCodeEnum.TLCodeRule)),
-                    WarehouseCode = warehouse.WarehouseCode,
-                    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    Createuser=inboundOrder.Creater,
-                    IsDev=returnOrder.IsDev,
-                    Issitem= issitems
-                };
-                _invokeERPService.InvokeReturnApi(returnModel);
-                return content.OK();
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        /// <summary>
-        /// 鎴愬搧鍏ュ簱涓婁紶ERP
-        /// </summary>
-        public WebResponseContent FeedbackProIn(Dt_MesProInOrder mesProInOrder)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                List<ERPProItemsItem> proItemsItems = new List<ERPProItemsItem>();
-                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId==mesProInOrder.WarehouseId);
-                string batchNoRemark = "";
-                foreach (var item in mesProInOrder.Details)
-                {
-                    ERPProItemsItem proItemsItem = new ERPProItemsItem()
-                    {
-                        PartNum = item.ProductCode,
-                        Rev=item.ProductVersion,
-                        DateCode=item.DateCode,
-                        BatchNumber= item.ProductCode,
-                        XLocation=item.XSite,
-                        Xqty=item.XQty,
-                        QtySet=item.SETQty,
-                        QtyPcs=item.OKPCSQTY,
-                        WoList=new List<ERPProListItem>()
-                        {
-                            new ERPProListItem()
-                            {
-                                moNumber=item.MoNumber,
-                                WoNumber=item.ERPOrder,
-                                QtyPcs=item.OKPCSQTY,
-                                QtySet=item.SETQty
-                            }
-                        }
-                    };
-                    batchNoRemark += item.BagNo + ",";
-                    proItemsItems.Add(proItemsItem);
-                }
-                ERPProInboundModel proInboundModel = new ERPProInboundModel()
-                {
-                    Way = 1,
-                    Code = mesProInOrder.ProInOrderNo,
-                    CreatorCode = "GSWMS",
-                    CompanyCode = "HATC",
-                    FactoryCode = "HA02",
-                    WarehouseCode = warehouse.WarehouseCode,
-                    LocationCode = warehouse.WarehouseCode,
-                    StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    StockFormType= "Production",
-                    StockFormItems= proItemsItems,
-                    Remark=batchNoRemark
-                };
-                string response = _invokeERPService.InvokeProInApi(proInboundModel);
-                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
-                if (requestContent.res != 1)
-                {
-                    return content.Error($"{requestContent.Data}");
-                }
-                content.OK();
-            }
-            catch (Exception ex)
-            {
-                content.Error(ex.Message);
-            }
-            return content;
-        }
-        static object lock_code = new object();
-        public string CreateCodeByRule(string ruleCode)
-        {
-            lock (lock_code)
-            {
-
-                string code = string.Empty;
-                DateTime dateTime = DateTime.Now;
-                DateTime now = DateTime.Now;
-                try
-                {
-                    if (string.IsNullOrEmpty(ruleCode))
-                        throw new ArgumentNullException(nameof(ruleCode));
-                    SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig
-                    {
-                        IsAutoCloseConnection = true,
-                        DbType = DbType.SqlServer,
-                        ConnectionString = DBContext.ConnectionString
+                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode);
+                        x.MaterialName = materielInfo?.MaterielName;
+                        x.Unit = materielInfo?.MaterielUnit;
                     });
-                    Dt_CodeRuleConfig codeRuleConfig = sugarClient.Queryable<Dt_CodeRuleConfig>().Where(x => x.RuleCode == ruleCode).First();
-                    if (codeRuleConfig == null)
-                        throw new ArgumentNullException(nameof(codeRuleConfig));
-                    if (codeRuleConfig.ModifyDate != null)
-                    {
-                        dateTime = Convert.ToDateTime(codeRuleConfig.ModifyDate);
-                    }
-                    else
-                    {
-                        dateTime = Convert.ToDateTime(codeRuleConfig.CreateDate);
-                    }
-
-                    if (now.Year == dateTime.Year && now.Month == dateTime.Month && now.Day == dateTime.Day)
-                    {
-                        now = dateTime;
-                        codeRuleConfig.CurrentVal = Convert.ToInt32(codeRuleConfig.CurrentVal) + 1;
-                    }
-                    else
-                    {
-                        codeRuleConfig.CurrentVal = 1;
-                    }
-                    codeRuleConfig.ModifyDate = DateTime.Now;
-                    code = codeRuleConfig.Format;
-                    code = code.Replace($"[{CodeFormatTypeEnum.YYYY}]", now.Year.ToString().PadLeft(4, '0'));
-                    code = code.Replace($"[{CodeFormatTypeEnum.MM}]", now.Month.ToString().PadLeft(2, '0'));
-                    code = code.Replace($"[{CodeFormatTypeEnum.DD}]", now.Day.ToString().PadLeft(2, '0'));
-                    code = code.Replace($"[{CodeFormatTypeEnum.ST}]", codeRuleConfig.StartStr?.ToString() ?? "");
-                    code = code.Replace($"[{CodeFormatTypeEnum.NUM}]", codeRuleConfig.CurrentVal.ToString().PadLeft(codeRuleConfig.Length, '0'));
-                    Dictionary<string, object> keyValuePairs = new Dictionary<string, object>() { { nameof(codeRuleConfig.CurrentVal), codeRuleConfig.CurrentVal }, { nameof(codeRuleConfig.Id), codeRuleConfig.Id }, { nameof(codeRuleConfig.ModifyDate), DateTime.Now } };
-                    sugarClient.Updateable(keyValuePairs).AS(MainDb.CodeRuleConfig).WhereColumns(nameof(codeRuleConfig.Id)).ExecuteCommand();
-                    sugarClient.Updateable(codeRuleConfig);
+                    inboundOrder.Details = inboundOrderDetails;
+                    inboundOrder.WarehouseId = warehouse.WarehouseId;
+                    //鏂板
+                    BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
 
                 }
-                catch (Exception ex)
-                {
-
-                }
-                return code;
-            }
-        }
-        #region 寮冪敤
-        /// <summary>
-        /// 鍏ュ簱瀹屾垚鍥炰紶鍒癊RP
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        //public WebResponseContent FeedbackInboundOrder(int id)
-        //{
-        //    try
-        //    {
-        //        Dt_InboundOrder inboundOrder = Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == id).Includes(x => x.Details).First();
-        //        if (inboundOrder == null)
-        //        {
-        //            return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
-        //        }
-        //        if (inboundOrder.Details == null || inboundOrder.Details.Count == 0)
-        //        {
-        //            return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
-        //        }
-        //        if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
-        //        {
-        //            return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟嵁宸插畬鎴�");
-        //        }
-
-        //        List<Dt_StockInfo> stockInfos = Db.Queryable<Dt_StockInfo>().Where(x => x.Details.Any(v => v.OrderNo == inboundOrder.InboundOrderNo)).Includes(x => x.Details).ToList();
-        //        List<Dt_Warehouse> warehouses = Db.Queryable<Dt_Warehouse>().ToList();
-
-        //        List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>();
-        //        foreach (var item in inboundOrder.Details)
-        //        {
-        //            Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(v => v.InboundOrderRowNo == item.RowNo && v.MaterielCode == item.MaterielCode));
-        //            if (stockInfo == null)
-        //            {
-        //                return WebResponseContent.Instance.Error($"鏈壘鍒板簱瀛樹俊鎭�");
-        //            }
-
-        //            Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseId == stockInfo.WarehouseId);
-        //            if (warehouse == null)
-        //            {
-        //                return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�");
-        //            }
-
-        //            ERPInboundDetailModel detailModel = new ERPInboundDetailModel()
-        //            {
-        //                ExpiryDate = stockInfo.Details.FirstOrDefault()?.EffectiveDate ?? "",
-        //                LocationCode = warehouse.WarehouseCode,
-        //                MaterialsCode = item.MaterielCode,
-        //                MfgDate = stockInfo.Details.FirstOrDefault()?.ProductionDate ?? "",
-        //                QtyCustoms = "0",
-        //                Quantity = stockInfo.Details.Sum(x => x.StockQuantity).ToString(),
-        //                Rack = stockInfo.LocationCode,
-        //                ReceiptCode = inboundOrder.UpperOrderNo,
-        //                ReceiptSerNo = item.RowNo.ToString()
-        //            };
-        //            detailModels.Add(detailModel);
-        //        }
-        //        Dt_Warehouse? warehouse2 = warehouses.FirstOrDefault(x => x.WarehouseId == inboundOrder.WarehouseId);
-        //        if (warehouse2 == null)
-        //        {
-        //            return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�");
-        //        }
-        //        ERPInboundModel model = new ERPInboundModel()
-        //        {
-        //            Code = inboundOrder.InboundOrderNo,
-        //            CreatorCode = inboundOrder.Creater,//娴嬭瘯
-        //            EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
-        //            StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-        //            SuppliersId = inboundOrder.SupplierId,
-        //            Type = "S",
-        //            UniqueTag = inboundOrder.Id.ToString(),
-        //            WarehouseCode = warehouse2.WarehouseCode,
-        //            Way = 1,
-        //            Details = detailModels
-        //        };
-        //        //娴嬭瘯娉ㄩ噴
-        //        _invokeERPService.InvokeInboundOrderApi(model);
-        //        return WebResponseContent.Instance.OK();
-        //    }
-        //    catch (Exception ex)
-        //    {
-        //        return WebResponseContent.Instance.Error(ex.Message);
-        //    }
-        //}
-        #endregion
-        public int GetPalletType(Dt_Warehouse warehouse, string palletCode)
-        {
-            if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
-            {
-                if (palletCode.Substring(0, 1) == "6")
-                {
-                    return PalletTypeEnum.MediumPallet.ObjToInt();
-                }
+                //else if (eRPPurchaseOrderDTO.OperateType == 2)
+                //{
+                //    //鍒ゆ柇鏄惁瀛樺湪
+                //    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
+                //    if (userInfoOld == null)
+                //    {
+                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}涓嶅瓨鍦�");
+                //    }
+                //    Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO);
+                //    userInfo.Id = userInfoOld.Id;
+                //    Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code);
+                //    if (userInfoOld == null)
+                //    {
+                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}锛學MS璐﹀彿涓嶅瓨鍦�");
+                //    }
+                //    user.Enable = (byte)userInfo.State;
+                //    user.UserTrueName = userInfo.Name;
+                //    //鏇存柊
+                //    BaseDal.UpdateData(userInfo);
+                //    _userRepository.UpdateData(user);
+                //}
+                //else if (eRPPurchaseOrderDTO.OperateType == 3)
+                //{
+                //    //鍒ゆ柇鏄惁瀛樺湪
+                //    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
+                //    if (userInfoOld == null)
+                //    {
+                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}涓嶅瓨鍦�");
+                //    }
+                //    BaseDal.DeleteData(userInfoOld);
+                //}
                 else
                 {
-                    return PalletTypeEnum.LargestPallet.ObjToInt();
+                    return content.Error("鏈壘鍒版搷浣滅被鍨�");
                 }
+                //鏇存柊鏁版嵁
+                return content.OK("鎺ユ敹鎴愬姛");
             }
-            else if (warehouse.WarehouseCode == WarehouseEnum.HA153.ObjToString())
+            catch (Exception ex)
             {
-                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 1));
-                if (palletTypeInfo == null)
-                {
-                    throw new Exception($"鎵樼洏鍙烽敊璇�");
-                }
-                return palletTypeInfo.PalletType;
+                content.Error(ex.Message);
             }
-            else if (warehouse.WarehouseCode == WarehouseEnum.HA152.ObjToString())
-            {
-                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
-                if (palletTypeInfo == null)
-                {
-                    throw new Exception($"鎵樼洏鍙烽敊璇�");
-                }
-                return palletTypeInfo.PalletType;
-            }
-            else if (warehouse.WarehouseCode == WarehouseEnum.HA57.ObjToString())
-            {
-                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3));
-                if (palletTypeInfo == null)
-                {
-                    throw new Exception($"鎵樼洏鍙烽敊璇�");
-                }
-                return palletTypeInfo.PalletType;
-            }
-            else if (warehouse.WarehouseCode == WarehouseEnum.HA58.ObjToString())
-            {
-                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
-                if (palletTypeInfo == null)
-                {
-                    throw new Exception($"鎵樼洏鍙烽敊璇�");
-                }
-                return palletTypeInfo.PalletType;
-            }
-            return -1;
-        }
-        /// <summary>
-        /// 鍒ゆ柇姝g‘鏃堕棿鏍煎紡
-        /// </summary>
-        public WebResponseContent IsValidMCDates(List<MatSerNumAnalysisModel> analysisModels)
-        {
-            string[] effDates = analysisModels.Select(x => x.EffectiveDate).Distinct().ToArray();
-            string[] ProDates = analysisModels.Select(x => x.ProductionDate).Distinct().ToArray();
-            foreach (string effDate in effDates)
-            {
-                string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡
-                DateTime parsedDate;
-                // 瑙f瀽骞堕獙璇佹牸寮�
-                bool isValid = DateTime.TryParseExact(
-                    effDate,
-                    format,
-                    CultureInfo.InvariantCulture,
-                    DateTimeStyles.None,
-                    out parsedDate
-                );
-
-                if (!isValid)
-                {
-                    return WebResponseContent.Instance.Error("鏍煎紡鏃犳晥鎴栨棩鏈熶笉鍚堟硶");
-                }
-            }
-            foreach (string ProDate in ProDates)
-            {
-                string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡
-                DateTime parsedDate;
-                // 瑙f瀽骞堕獙璇佹牸寮�
-                bool isValid = DateTime.TryParseExact(
-                    ProDate,
-                    format,
-                    CultureInfo.InvariantCulture,
-                    DateTimeStyles.None,
-                    out parsedDate
-                );
-
-                if (!isValid)
-                {
-                    return WebResponseContent.Instance.Error("鏍煎紡鏃犳晥鎴栨棩鏈熶笉鍚堟硶");
-                }
-            }
-            return WebResponseContent.Instance.OK();
+            return content;
         }
     }
+
 }

--
Gitblit v1.9.3