helongyang
2025-06-05 fe77f3c9d11e3087c1efa56fd6205ffc10e39991
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs
@@ -29,6 +29,7 @@
using WIDESEA_DTO.Task;
using WIDESEA_DTO.Stock;
using SqlSugar;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
namespace WIDESEA_TaskInfoService
{
@@ -76,7 +77,7 @@
                      (x.EnableStatus == (int)EnableStatusEnum.Normal || x.EnableStatus == (int)EnableStatusEnum.OnlyOut));
                    if (locationInfo == null)
                    {
                        return responseContent.Error($"测试架货位:{stockInfo.LocationCode}出库条件不满足");
                        return responseContent.Error($"测试架货位。。。。。。。。。:{stockInfo.LocationCode}出库条件不满足");
                    }
                    //生成测试架出库任务 é”å®šåº“å­˜ æ›´æ”¹è´§ä½çŠ¶æ€
                    Dt_Task taskOut = new()
@@ -293,7 +294,6 @@
            }
            return content;
        }
        /// <summary>
        /// 
        /// </summary>
@@ -402,6 +402,7 @@
                tasks.ForEach(x =>
                {
                    x.TargetAddress = model.Line;
                    x.OrderNo = mesOutboundOrder.TaskNo;
                });
                _unitOfWorkManage.BeginTran();
@@ -457,11 +458,12 @@
                Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
                {
                    MaterielSpec = stockInfoDetail_Hty.MaterielSpec,
                    BatchNo = stockInfoDetail_Hty?.BatchNo ?? "",
                    EffectiveDate = model.ExpirationDate,
                    MaterielCode = model.MaterialCode,
                    InboundOrderRowNo = stockInfoDetail_Hty?.InboundOrderRowNo ?? 0,
                    MaterielName = model.MaterialCode,
                    MaterielName = stockInfoDetail_Hty.MaterielName,
                    ProductionDate = model.ProductionDate,
                    OrderNo = stockInfoDetail_Hty?.OrderNo ?? "",
                    OutboundQuantity = 0,
@@ -614,11 +616,14 @@
                //}
                #endregion
                _unitOfWorkManage.BeginTran();
                Db.InsertNav(mesOutboundOrder).Include(x => x.Details).ExecuteCommand();
                _unitOfWorkManage.CommitTran();
                return MesResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return MesResponseContent.Instance.Error(ex.Message);
            }
@@ -734,6 +739,7 @@
        {
            try
            {
                //一次只发一卷物料入库明细
                foreach (var item in model.MaterialLotInfo)
                {
                    //获取物料信息
@@ -860,7 +866,9 @@
                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
                    WarehouseId = stockInfo.WarehouseId,
                    PalletType = stockInfo.PalletType
                    PalletType = stockInfo.PalletType,
                    MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode,
                    Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity,
                };
                LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                _unitOfWorkManage.BeginTran();
@@ -922,76 +930,8 @@
                return MesResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// MES成品入库单接收
        /// </summary>
        /// <returns></returns>
        public MesResponseContent BagInfoSync(MesBagInfoModel bagInfoModel)
        {
            MesResponseContent content = new MesResponseContent();
            try
            {
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == bagInfoModel.WarehouseCode);
                if (warehouse == null)
                {
                    return content.Error("未找到仓库信息");
                }
                List<Dt_MesProInOrderDetail> mesProInOrderDetails = new List<Dt_MesProInOrderDetail>();
                foreach (var item in bagInfoModel.BagDetails)
                {
                    mesProInOrderDetails.Add(_mapper.Map<Dt_MesProInOrderDetail>(item));
                }
                Dt_MesProInOrder mesProInOrder = new Dt_MesProInOrder()
                {
                    WarehouseId = warehouse.WarehouseId,
                    BatchNo = bagInfoModel.BatchNo,
                    MesProStatus = InOrderStatusEnum.未开始.ObjToInt(),
                    UnPackStock = bagInfoModel.UnPackStock,
                    Details = mesProInOrderDetails
                };
                Db.InsertNav(mesProInOrder).Include(x => x.Details).ExecuteCommand();
                return content.OK("接收成功");
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// æˆå“è¿”工提库
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public MesResponseContent RworkTask(RworkTaskModel model)
        {
            try
            {
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA72.ToString());
                //获取库存记录
                List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x =>
                  x.WarehouseId == warehouse.WarehouseId &&
                  x.StockStatus == (int)StockStatusEmun.入库完成).Includes(x => x.Details).ToList();
                Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == model.ProductVersion));
                if (stockInfo == null)
                {
                    return MesResponseContent.Instance.Error($"尾数仓:{model.ProductVersion}无可用库存");
                }
                Dt_Task exsit2 = Repository.QueryFirst(x => x.PalletCode == stockInfo.PalletCode);
            }
            catch (Exception ex)
            {
                throw;
            }
            return MesResponseContent.Instance.OK();
        }
        /// <summary>
        /// ç”ŸæˆPP大卷出库任务
@@ -1484,9 +1424,6 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}