1
hutongqing
2024-12-29 89051aef8a2c1a85d457914cf6317fe70e0e321c
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -73,21 +73,21 @@
            try
            {
                //获取仓库信息
                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x=>x.WarehouseCode==erpInOrder.WaId);
                if (warehouse==null)
                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseCode == erpInOrder.WaId);
                if (warehouse == null)
                {
                    return content.Error("未找到仓库信息");
                }
                //获取是否存在订单
                Dt_InboundOrder inboundOrder = BaseDal.QueryFirst(x=>x.InboundOrderNo== erpInOrder.OrderNo);
                if (erpInOrder.Way==1)
                Dt_InboundOrder inboundOrder = BaseDal.QueryFirst(x => x.InboundOrderNo == erpInOrder.OrderNo);
                if (erpInOrder.Way == 1)
                {
                    if (inboundOrder!=null)
                    if (inboundOrder != null)
                    {
                    }
                }
                else if(erpInOrder.Way==2)
                else if (erpInOrder.Way == 2)
                {
                }
@@ -145,7 +145,7 @@
                {
                    return WebResponseContent.Instance.Error($"未找到入库单信息");
                }
                if (inboundOrder.OrderStatus>=InOrderStatusEnum.入库完成.ObjToInt())
                if (inboundOrder.OrderStatus >= InOrderStatusEnum.入库完成.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"入库单已结束");
                }
@@ -187,11 +187,11 @@
                {
                    return WebResponseContent.Instance.Error($"未在入库单明细中找到该物料信息");
                }
                if (inboundOrderDetail.OrderDetailStatus>OrderDetailStatusEnum.GroupAndInbound.ObjToInt())
                if (inboundOrderDetail.OrderDetailStatus > OrderDetailStatusEnum.GroupAndInbound.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"对应入库单明细已结束");
                }
                float inboundDetailSum = inboundOrderDetail.OverInQuantity + inboundOrderDetail.ReceiptQuantity ;
                float inboundDetailSum = inboundOrderDetail.OverInQuantity + inboundOrderDetail.ReceiptQuantity;
                if (inboundDetailSum == inboundOrderDetail.OrderQuantity)
                {
                    return WebResponseContent.Instance.Error($"该物料入库单明细已全部组盘完成");
@@ -201,7 +201,7 @@
                    return WebResponseContent.Instance.Error($"与该收货单明细收货数量不一致");
                }
                Dt_StockInfo oldStockinfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
                if(oldStockinfo!=null)
                if (oldStockinfo != null)
                {
                    return WebResponseContent.Instance.Error($"托盘重复");
                }
@@ -225,11 +225,11 @@
                    PalletCode = palletCode,
                    StockStatus = StockStatusEmun.组盘暂存.ObjToInt(),
                    WarehouseId = inboundOrder.WarehouseId,
                    Details=new List<Dt_StockInfoDetail> { stockInfoDetail }
                    Details = new List<Dt_StockInfoDetail> { stockInfoDetail }
                };
                inboundOrderDetail.ReceiptQuantity += model.Quantity;
                _unitOfWorkManage.BeginTran();
                if (inboundOrderDetail.OrderDetailStatus==OrderDetailStatusEnum.New.ObjToInt())
                if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
                {
                    inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
                }
@@ -562,9 +562,9 @@
        /// å…¥åº“完成上报ERP
        /// </summary>
        /// <returns></returns>
        public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo,Dt_InboundOrder inboundOrder)
        public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, List<ERPInboundDetailModel> detailModels)
        {
            WebResponseContent content=new WebResponseContent();
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (inboundOrder.Details.Count == 0)
@@ -575,44 +575,17 @@
                {
                    return WebResponseContent.Instance.Error($"入库单据已完成");
                }
                List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>();
                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId);
                if (warehouse == null)
                {
                    return WebResponseContent.Instance.Error($"未找到仓库信息");
                }
                List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>();
                foreach (var item in stockInfo.Details)
                {
                    Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x=>x.RowNo==item.InboundOrderRowNo);
                    if (inboundOrderDetail == null)
                    {
                        continue;
                    }
                    ERPInboundDetailModel detailModel = new ERPInboundDetailModel()
                    {
                        ExpiryDate = item.EffectiveDate ?? "",
                        LocationCode = warehouse.WarehouseCode,
                        MaterialsCode = item.MaterielCode,
                        MfgDate = item.ProductionDate ?? "",
                        QtyCustoms = "0",
                        Quantity = item.StockQuantity.ToString(),
                        Rack = stockInfo.LocationCode,
                        ReceiptCode = inboundOrder.UpperOrderNo,
                        ReceiptSerNo = item.InboundOrderRowNo.ToString()
                    };
                    inboundOrderDetail.OverInQuantity += detailModel.Quantity.ObjToInt();
                    if (inboundOrderDetail.OverInQuantity== inboundOrderDetail.OrderQuantity)
                    {
                        inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
                    }
                    inboundOrderDetails.Add(inboundOrderDetail);
                    detailModels.Add(detailModel);
                }
                ERPInboundModel model = new ERPInboundModel()
                {
                    Code = inboundOrder.InboundOrderNo,
                    CreatorCode = "TC20082",//测试
                    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,
@@ -622,40 +595,27 @@
                    Way = 1,
                    Details = detailModels
                };
                //入库明细新增完成数量
                int newCount = inboundOrderDetails.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count;
                //入库明细原完成数量
                int oldCount = inboundOrder.Details.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count;
                string response = _invokeERPService.InvokeInboundOrderApi(model);
                ErpRequestContent requestContent = JsonConvert.DeserializeObject<ErpRequestContent>(response);
                if (requestContent==null)
                ErpRequestContent? requestContent = JsonConvert.DeserializeObject<ErpRequestContent>(response);
                if (requestContent == null)
                {
                    return WebResponseContent.Instance.Error();
                }
                if (requestContent.res==0)
                if (requestContent.res == 0)
                {
                    return WebResponseContent.Instance.Error(requestContent.Data);
                }
                _unitOfWorkManage.BeginTran();
                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails);
                if (inboundOrder.Details.Count == (newCount + oldCount))
                {
                    inboundOrder.OrderStatus = InOrderStatusEnum.入库完成.ObjToInt();
                    _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
                }
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// å…¥åº“完成回传到ERP æµ‹è¯•
        /// å…¥åº“完成回传到ERP
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
@@ -717,7 +677,7 @@
                ERPInboundModel model = new ERPInboundModel()
                {
                    Code = inboundOrder.InboundOrderNo,
                    CreatorCode = "TC20082",//测试
                    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,