From efaf0b8aeb26aca6536a4b384c912cc3cac4d070 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 15 三月 2025 16:07:45 +0800
Subject: [PATCH] 成品代码,其他仓优化,前端优化界面增加

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs |   85 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 75 insertions(+), 10 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
index d74a418..ff6f7dc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
@@ -72,6 +72,70 @@
                 {
                     return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬璇ヤ粨搴�");
                 }
+                //鏃犻噰璐崟杩涜鏀惰揣
+                if (receiveOrder.ReceiveOrderType != ReceiveOrderTypeEnum.PO.ObjToInt())
+                {
+                    //鑾峰彇鍏蜂綋鎵规鍙婄墿鏂�
+                    Dt_ReceiveOrderDetail? detailNoPo = receiveOrder.Details.FirstOrDefault(x => x.LotNo == model.LotNo && x.MaterielCode == model.MaterielCode);
+                    lock (_rowNoLocker)
+                    {
+                        if (detailNoPo != null)
+                        {
+                            //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺
+                            detailNoPo.ReceivedQuantity += model.Quantity;
+                            _unitOfWorkManage.BeginTran();
+                            BaseDal.UpdateData(detailNoPo);
+                            _unitOfWorkManage.CommitTran();
+                        }
+                        else
+                        {
+                            int rowNo = 0;
+                            if (receiveOrder.Details.Count > 0)
+                            {
+                                rowNo = receiveOrder.Details.Max(x => x.RowNo);
+                            }
+                            Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail()
+                            {
+                                PurchaseOrderNo = model.PurchaseOrderNo,
+                                ReceivedQuantity = model.Quantity,
+                                MaterielCode = model.MaterielCode,
+                                LotNo = model.LotNo,
+                                MaterielName = materielInfo.MaterielName,
+                                MaterielSpec = materielInfo.MaterielSpec,
+                                ReceiveOrderId = receiveOrder.ReceiveOrderId,
+                                PurchaseOrderDetailRowNo = rowNo + 1,
+                                IfInspection = materielInfo.IsCheck.ObjToInt(),
+                                CurrCode = "",
+                                PriceInTax = 0,
+                                TaxRate = "",
+                                RowNo = rowNo + 1,
+                                Unit = materielInfo.MaterielUnit
+                            };
+                            if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt())
+                            {
+                                receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt();
+                            }
+                            _unitOfWorkManage.BeginTran();
+                            _inboundRepository.ReceiveOrderDetailRepository.AddData(receiveOrderDetail);
+                            _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
+                            #region 娉ㄩ噴
+                            if (materielInfo.IsCheck == WhetherEnum.True)
+                            {
+                                Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                                checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
+                                checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+                                checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
+                                checkOrder.ScrappedQuantity = 0;
+                                checkOrder.ReturnQuantity = 0;
+                                checkOrder.DefectedQuantity = 0;
+                                _checkOrderRepository.AddData(checkOrder);
+                            }
+                            #endregion
+                            _unitOfWorkManage.CommitTran();
+                        }
+                        return WebResponseContent.Instance.OK();
+                    }
+                }
                 Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x => x.Details).First();
                 if (purchaseOrder == null)
                 {
@@ -200,16 +264,17 @@
                         _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
                         _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
                         #region 娉ㄩ噴
-                        //if (materielInfo.IsCheck == WhetherEnum.True)
-                        //{
-                        //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
-                        //    checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
-                        //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
-                        //    checkOrder.ScrappedQuantity = 0;
-                        //    checkOrder.ReturnQuantity = 0;
-                        //    checkOrder.DefectedQuantity = 0;
-                        //    _checkOrderRepository.AddData(checkOrder);
-                        //}
+                        ////if (materielInfo.IsCheck == WhetherEnum.True)
+                        ////{
+                        ////    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                        ////    checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
+                        ////    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+                        ////    checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
+                        ////    checkOrder.ScrappedQuantity = 0;
+                        ////    checkOrder.ReturnQuantity = 0;
+                        ////    checkOrder.DefectedQuantity = 0;
+                        ////    _checkOrderRepository.AddData(checkOrder);
+                        ////}
                         #endregion
                         _unitOfWorkManage.CommitTran();
                     }

--
Gitblit v1.9.3