yanjinhui
2025-10-24 c7f255af77f13a52e6f01c8ec81482dc9ae07f68
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs
@@ -239,37 +239,40 @@
                                #endregion
                                //UpdateInboundOrderDetailStatus(request.orderNo, detail.batchNo, detail.productCode);
                                break;
                            }
                            break;
                        case "2":
                            {
                            #region æ‰¾å‡ºåº“任务
                            Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.立库.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First();
                            if (supplyTask == null) throw new Exception($"未找到订单号【{request.orderNo}】物料编号【{detail.productCode}】的出库任务");
                                if (supplyTask.StockQuantity != orderQty) throw new Exception($"订单号【{request.orderNo}】物料编号【{detail.productCode}】的出库数量与出库任务数量不相等");
                            #endregion
                            #region å¤„理出库单、库存信息、出库任务、调拨任务
                            _deliveryOrderServices.OutTaskFinish(supplyTask);
                            #endregion
                            break;
                        case "3": // ç›˜ç‚¹
                            decimal diff = detail.ea ?? 0;             // å·®å¼‚æ•°
                            int flag = detail.isLossOrProfit ?? 3;     // 1=盘亏, 2=盘盈, 3=盘中
                            if (flag == 1) // ç›˜äº
                            {
                                //库存数-差异数=盘亏
                                //batch.SupplyQuantity += (batch.StockQuantity - diff);
                                //batch.Remark = "盘点单回传 - ç›˜äº";
                            }
                            else if (flag == 2) // ç›˜ç›ˆ
                            break;
                        case "3": // ç›˜ç‚¹
                            {
                                //库存数+差异数=盘盈
                                //batch.SupplyQuantity += (batch.StockQuantity + diff);
                                //batch.Remark = "盘点单回传 - ç›˜ç›ˆ";
                                #region æ‰¾ç›˜ç‚¹ä»»åŠ¡
                                Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.立库.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).First();
                                if (supplyTask == null) throw new Exception($"未找到订单号【{request.orderNo}】物料编号【{detail.productCode}】的盘点任务");
                                #endregion
                                if (detail.isLossOrProfit == 1) // ç›˜äº
                                {
                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity - detail.ea;
                                }
                                else if (detail.isLossOrProfit == 2) // ç›˜ç›ˆ
                                {
                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity + detail.ea;
                            }
                            else // ç›˜ä¸­
                            {
                                //batch.Remark = "盘点单回传 - ç›˜ä¸­";
                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity;
                                }
                               _deliveryOrderServices.CheckTaskFinish(supplyTask);
                            }
                            break;
                    }