1
wangxinhui
2024-12-28 88d52606d0db8fb0343ebcd2d53c8df62fd05f2a
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -171,50 +171,101 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        //上报出库完成 æµ‹è¯•æž¶
        public WebResponseContent TestOutUpload(int id)
        //上报出库完成
        public WebResponseContent TestOutUpload(int id,Dt_StockInfo stockInfo)
        {
            try
            {
                Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x=>x.Id==id).Includes(x=>x.Details).First();
                Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == outboundOrder.WarehouseId);
                //测试架库给ERP上报出库完成
                ERPPickItemModel eRPOutPick = new ERPPickItemModel()
                ERPIssueModel issueModel = new ERPIssueModel();
                List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
                if (stockInfo==null)
                {
                    Lotno = "20241227001",
                    Qty = "1",
                    Location = warehouse.WarehouseCode
                };
                ERPPickModel pickModel = new ERPPickModel()
                    stockInfos = TestOutStocksUpdate(warehouse).Data as List<Dt_StockInfo> ?? new List<Dt_StockInfo>();
                    List<ERPPickItemModel> eRPOutPick =new List<ERPPickItemModel>();
                    for (int i = 0; i < stockInfos.Count; i++)
                    {
                        ERPPickItemModel pickItemModel = new ERPPickItemModel()
                        {
                            Lotno= stockInfos[i].Details[0].BatchNo,
                            Qty= stockInfos[i].Details[0].StockQuantity.ObjToInt().ToString(),
                            Location= warehouse.WarehouseCode
                        };
                        eRPOutPick.Add(pickItemModel);
                    }
                    ERPPickModel pickModel = new ERPPickModel()
                    {
                        Rowindex = outboundOrder.Details[0].RowNo,
                        Material = outboundOrder.Details[0].MaterielCode,
                        Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
                        Dataitem = eRPOutPick
                    };
                    ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
                    {
                        Pickcode = outboundOrder.UpperOrderNo,
                        PickList = new List<ERPPickModel>() { pickModel }
                    };
                    issueModel = new ERPIssueModel()
                    {
                        UniqueTag = id.ToString(),
                        Code = "OT" + DateTime.Now.ToString("yyyyMMddHHmmss"),//测试
                        WarehouseCode = warehouse.WarehouseCode,
                        Docremark = "",
                        Deptno = outboundOrder.DepartmentCode,
                        Deptname = outboundOrder.DepartmentName,
                        Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        Createuser = "TC20082",
                        Issitem = new List<ERPIssueItemModel>() { issueItemModel },
                    };
                }
                else
                {
                    Rowindex = outboundOrder.Details[0].RowNo,
                    Material = outboundOrder.Details[0].MaterielCode,
                    Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
                    Dataitem=new List<ERPPickItemModel> { eRPOutPick }
                };
                    Dt_OutboundOrderDetail orderDetail = outboundOrder.Details.FirstOrDefault(x => x.MaterielCode == stockInfo.Details[0].MaterielCode);
                    ERPPickItemModel pickItemModel = new ERPPickItemModel()
                    {
                        Lotno = stockInfo.Details[0].BatchNo,
                        Qty = stockInfo.Details[0].StockQuantity.ObjToInt().ToString(),
                        Location = stockInfo.LocationCode
                    };
                    ERPPickModel pickModel = new ERPPickModel()
                    {
                        Rowindex = outboundOrder.Details[0].RowNo,
                        Material = outboundOrder.Details[0].MaterielCode,
                        Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
                        Dataitem = new List<ERPPickItemModel> { pickItemModel }
                    };
                    ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
                    {
                        Pickcode = outboundOrder.UpperOrderNo,
                        PickList = new List<ERPPickModel>() { pickModel }
                    };
                    issueModel = new ERPIssueModel()
                    {
                        UniqueTag = id.ToString(),
                        Code = "OT" + DateTime.Now.ToString("yyyyMMddHHmmss"),//测试
                        WarehouseCode = warehouse.WarehouseCode,
                        Docremark = "",
                        Deptno = outboundOrder.DepartmentCode,
                        Deptname = outboundOrder.DepartmentName,
                        Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        Createuser = "TC20082",
                        Issitem = new List<ERPIssueItemModel>() { issueItemModel },
                    };
                }
                
                ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
                {
                    Pickcode = outboundOrder.UpperOrderNo,
                    PickList = new List<ERPPickModel>() { pickModel }
                };
                ERPIssueModel issueModel = new ERPIssueModel()
                {
                    UniqueTag = id.ToString(),
                    Code = "FL20241227001",//测试
                    WarehouseCode = warehouse.WarehouseCode,
                    Docremark = "",
                    Deptno = outboundOrder.DepartmentCode,
                    Deptname = outboundOrder.DepartmentName,
                    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    Createuser = "TC20082",
                    Issitem = new List<ERPIssueItemModel>() { issueItemModel },
                };
                string response = _invokeERPService.InvokeOutStandardsApi(issueModel);
                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
                if (requestContent.res == 1)
                {
                    if (stockInfos.Count>0)
                    {
                        _stockInfoRepository.UpdateData(stockInfos);
                    }
                    return WebResponseContent.Instance.OK(requestContent.Data);
                }
                else
@@ -233,15 +284,15 @@
        /// <param name="warehouse"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public WebResponseContent TestOutStocksUpdate(Dt_Warehouse warehouse, ErpOutOrderDTO model)
        public WebResponseContent TestOutStocksUpdate(Dt_Warehouse warehouse)
        {
            try
            {
                //获取出库单库存
                List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).ToList();
                if (model.Qty > stockInfos.Count)
                if (stockInfos.Count<=0)
                {
                    return WebResponseContent.Instance.Error($"物料:{model.MCode}库存不足");
                    return WebResponseContent.Instance.Error($"库存不足");
                }
                //更改状态
                stockInfos.ForEach(x =>
@@ -255,33 +306,5 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        ///推送测试架出库
        //public WebResponseContent TestOutBack(int id,List<string> locationIds)
        //{
        //    try
        //    {
        //        string response = _invokeERPService.InvokeOutStandardsApi(issueModel);
        //        ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
        //        if (requestContent.res == 1)
        //        {
        //            return WebResponseContent.Instance.OK(requestContent.Data);
        //        }
        //        else
        //        {
        //            return WebResponseContent.Instance.Error(requestContent.Data);
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        return WebResponseContent.Instance.Error(ex.Message);
        //    }
        //}
        //public WebResponseContent FeedbackOutbondIssue(List<Dt_OutStockLockInfo> outStockLockInfos)
        //{
        //    ERPPickItemModel
        //}
    }
}