ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs
@@ -14,6 +14,7 @@
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.LogHelper;
using WIDESEA_Core.Utilities;
using WIDESEA_DTO;
using WIDESEA_DTO.Inbound;
@@ -53,12 +54,19 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                //Logger.Write_Log("System/test", "", "2.0 ", "");
                materielGroupDTO.OrderNo = GetOrderNo();
                //Logger.Write_Log("System/test", "", "2.1 ", "");
                Dt_StockInfo? stockInfo = _stockService.StockInfoService.GetStockByPalletCode(materielGroupDTO.PalletCode);
                //Logger.Write_Log("System/test", "", "2.2 ", "");
                (bool, string, object?) result = CheckMaterielGroupParam(materielGroupDTO, stockInfo);
                if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
                if (stockInfo == null)
                {
                    //Logger.Write_Log("System/test", "", "2.2.1 ", "");
                    stockInfo = new Dt_StockInfo();
                    stockInfo.PalletCode = materielGroupDTO.PalletCode;
                    stockInfo.StockStatus = StockStatusEmun.组盘暂存.ObjToInt();
@@ -66,6 +74,8 @@
                    stockInfo.Details = new List<Dt_StockInfoDetail>();
                   
                }
                //Logger.Write_Log("System/test", "", "2.3 ", "");
                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
                List<Dt_LabelMaster> notExistLabels = new List<Dt_LabelMaster>();
                foreach (var lablel in materielGroupDTO.SerialNumbers)
@@ -73,61 +83,91 @@
                    Dt_LabelMaster labmaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == lablel);
                    if(labmaster == null)
                    {
                        //Logger.Write_Log("System/test", "", "2.3.1 lablel=" + lablel);
                        //通过条码接口同步条码主数据
                        var res= _sys_JobService.GetLabMaster(lablel);
                        if (res != null && res.Status)
                        {
                            //Logger.Write_Log("System/test", "", "2.3.2 res.Status=" + res.Status.ToString());
                            labmaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == lablel);
                            if (labmaster == null)
                            {
                                //Logger.Write_Log("System/test", "", "2.3.3 ", "");
                                notExistLabels.Add(labmaster);
                            }
                        }
                        else
                        {
                            //Logger.Write_Log("System/test", "", "2.3.4 ", "");
                          return  content = WebResponseContent.Instance.Error("组盘条码在上游WMS系统中不存在!");
                        }    
                    } 
                    if(labmaster!=null)
                    {
                        //Logger.Write_Log("System/test", "", "2.3.5 ", "");
                        //主数据条码状态允许组盘:01已收料待质检,02已收料无需质检,03待进仓已质检,09已下架;
                        //主数据条码状态不允许组盘:00创建,04已质检待退货,05收料房退货,06库房退货,07已进仓,08已上架,10已出库,11已冻结,12已锁定,20关闭的;
                        if (labmaster.LABEL_STATUS=="00"|| labmaster.LABEL_STATUS == "04" || labmaster.LABEL_STATUS == "05"|| labmaster.LABEL_STATUS == "06" || labmaster.LABEL_STATUS == "07" || labmaster.LABEL_STATUS == "08" || labmaster.LABEL_STATUS == "10" || labmaster.LABEL_STATUS == "11" || labmaster.LABEL_STATUS == "12" || labmaster.LABEL_STATUS == "20")
                        {
                            //Logger.Write_Log("System/test", "", "2.3.6 LABEL_STATUS=" + labmaster.LABEL_STATUS);
                            return content = WebResponseContent.Instance.Error("主数据条码状态不允许组盘!条码状态:"+ labmaster.LABEL_STATUS);
                        }
                    }
                }
                //Logger.Write_Log("System/test", "", "2.4 ", "");
                if (notExistLabels.Count == 0)
                {
                    //Logger.Write_Log("System/test", "", "2.4.1 ", "");
                    foreach (var item in materielGroupDTO.SerialNumbers)
                    {
                        //Logger.Write_Log("System/test", "", "2.4.2 "+ item);
                        //Logger.Write_Log("System/test", "", "2.4.2.0 ", "");
                        Dt_LabelMaster labmaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == item);
                        Dt_StockInfoDetail dt_StockInfoDetail = new Dt_StockInfoDetail();
                        dt_StockInfoDetail.Status = 0;
                        //Logger.Write_Log("System/test", "", "2.4.2.1 ", "");
                        dt_StockInfoDetail.OrderNo = materielGroupDTO.OrderNo;
                        dt_StockInfoDetail.StockId = stockInfo.Id != 0 ? stockInfo.Id : 0;
                        dt_StockInfoDetail.MaterielCode = labmaster.MATNR;
                        dt_StockInfoDetail.MaterielName = labmaster.MAKTX;
                        dt_StockInfoDetail.BatchNo = labmaster.BATCH;
                        dt_StockInfoDetail.SerialNumber = labmaster.LABEL_NO;
                        dt_StockInfoDetail.StockQuantity = int.Parse(labmaster.BOX_QTY);
                        //Logger.Write_Log("System/test", "", "2.4.2.2 "+ labmaster.BOX_QTY);
                        dt_StockInfoDetail.StockQuantity = (int)Convert.ToDouble(labmaster.BOX_QTY);
                        dt_StockInfoDetail.OutboundQuantity = 0;
                        dt_StockInfoDetail.Creater = "System";
                        //Logger.Write_Log("System/test", "", "2.4.2.3 ", "");
                        stockInfoDetails.Add(dt_StockInfoDetail);
                        //Logger.Write_Log("System/test", "", "2.4.2.4 ", "");
                        stockInfo.Details.AddRange(stockInfoDetails);     
                        //Logger.Write_Log("System/test", "", "2.4.2.5 ", "");
                    }
                    content = MaterielGroupUpdateData(stockInfo);
                }
                else
                {
                    //Logger.Write_Log("System/test", "", "2.4.3 ", "");
                    content = WebResponseContent.Instance.Error("组盘条码在上游WMS系统中不存在!");
                }      
            }
            catch (Exception ex)
            {
                //Logger.Write_Log("System/test", "", "2.4.4 " + ex.ToString());
                content = WebResponseContent.Instance.Error(ex.Message);
            }
            finally
@@ -173,7 +213,7 @@
                    dt_StockInfoDetail.MaterielName = "";
                    dt_StockInfoDetail.BatchNo = "";
                    dt_StockInfoDetail.SerialNumber = item.LABEL_NO;
                    dt_StockInfoDetail.StockQuantity = int.Parse(item.QTY);
                    dt_StockInfoDetail.StockQuantity = (int)Convert.ToDouble(item.QTY);
                    dt_StockInfoDetail.OutboundQuantity = 0;
                    dt_StockInfoDetail.Creater = "WMS";
                    stockInfoDetails.Add(dt_StockInfoDetail);