liuying
2024-05-09 f4078b75fe80f03e58af3217bf642d0de118d1c9
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsPlace/WmsPlaceService.cs
@@ -27,18 +27,20 @@
        private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
        private readonly ISysExcelTemplateService _sysExcelTemplateService;
        private readonly static object _lock = new();
        private readonly IRepository<WmsArea, MasterDbContextLocator> _wmsAreaRep;
        public WmsPlaceService(
            IRepository<WmsPlace,MasterDbContextLocator> wmsPlaceRep
            ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
            ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
            ,ISysExcelTemplateService sysExcelTemplateService
            , IRepository<WmsArea, MasterDbContextLocator> wmsAreaRep
        )
        {
            _wmsPlaceRep = wmsPlaceRep;
         _sysDictTypeRep = sysDictTypeRep;
         _sysDictDataRep = sysDictDataRep;
         _sysExcelTemplateService = sysExcelTemplateService;
            _wmsAreaRep = wmsAreaRep;
        }
        /// <summary>
@@ -56,14 +58,6 @@
                                     .Where(input.PlaceType != null, u => u.PlaceType == input.PlaceType)
                                     .Where(!string.IsNullOrEmpty(input.PlaceTypeName), u => u.PlaceTypeName == input.PlaceTypeName)
                                     .Where(input.PlaceStatus != null, u => u.PlaceStatus == input.PlaceStatus)
                                     .Where(input.IsSrmPlace != null, u => u.IsSrmPlace == input.IsSrmPlace)
                                     .Where(!string.IsNullOrEmpty(input.SrmPlaceNo), u => u.SrmPlaceNo == input.SrmPlaceNo)
                                     .Where(input.IsRgvPlace != null, u => u.IsRgvPlace == input.IsRgvPlace)
                                     .Where(!string.IsNullOrEmpty(input.RgvPlaceNo), u => u.RgvPlaceNo == input.RgvPlaceNo)
                                     .Where(input.IsAgvPlace != null, u => u.IsAgvPlace == input.IsAgvPlace)
                                     .Where(!string.IsNullOrEmpty(input.AgvPlaceNo), u => u.AgvPlaceNo == input.AgvPlaceNo)
                                     .Where(input.IsTransPlace != null, u => u.IsTransPlace == input.IsTransPlace)
                                     .Where(!string.IsNullOrEmpty(input.TransPlaceNo), u => u.TransPlaceNo == input.TransPlaceNo)
                                     .Where(input.IsActivateWCS != null, u => u.IsActivateWCS == input.IsActivateWCS)
                                     .Where(!string.IsNullOrEmpty(input.Environment), u => u.Environment == input.Environment)
                                     .Where(!string.IsNullOrEmpty(input.AreaCode), u => u.AreaCode == input.AreaCode)
@@ -109,14 +103,6 @@
            var pPlaceType = input.PlaceType;
            var pPlaceTypeName = input.PlaceTypeName?.Trim() ?? "";
            var pPlaceStatus = input.PlaceStatus;
            var pIsSrmPlace = input.IsSrmPlace;
            var pSrmPlaceNo = input.SrmPlaceNo?.Trim() ?? "";
            var pIsRgvPlace = input.IsRgvPlace;
            var pRgvPlaceNo = input.RgvPlaceNo?.Trim() ?? "";
            var pIsAgvPlace = input.IsAgvPlace;
            var pAgvPlaceNo = input.AgvPlaceNo?.Trim() ?? "";
            var pIsTransPlace = input.IsTransPlace;
            var pTransPlaceNo = input.TransPlaceNo?.Trim() ?? "";
            var pIsActivateWCS = input.IsActivateWCS;
            var pEnvironment = input.Environment?.Trim() ?? "";
            var pAreaCode = input.AreaCode?.Trim() ?? "";
@@ -149,14 +135,6 @@
                .Where(pPlaceType != null, u => u.PlaceType == pPlaceType)
                .Where(!string.IsNullOrEmpty(pPlaceTypeName), u => u.PlaceTypeName == pPlaceTypeName)
                .Where(pPlaceStatus != null, u => u.PlaceStatus == pPlaceStatus)
                .Where(pIsSrmPlace != null, u => u.IsSrmPlace == pIsSrmPlace)
                .Where(!string.IsNullOrEmpty(pSrmPlaceNo), u => u.SrmPlaceNo == pSrmPlaceNo)
                .Where(pIsRgvPlace != null, u => u.IsRgvPlace == pIsRgvPlace)
                .Where(!string.IsNullOrEmpty(pRgvPlaceNo), u => u.RgvPlaceNo == pRgvPlaceNo)
                .Where(pIsAgvPlace != null, u => u.IsAgvPlace == pIsAgvPlace)
                .Where(!string.IsNullOrEmpty(pAgvPlaceNo), u => u.AgvPlaceNo == pAgvPlaceNo)
                .Where(pIsTransPlace != null, u => u.IsTransPlace == pIsTransPlace)
                .Where(!string.IsNullOrEmpty(pTransPlaceNo), u => u.TransPlaceNo == pTransPlaceNo)
                .Where(pIsActivateWCS != null, u => u.IsActivateWCS == pIsActivateWCS)
                .Where(!string.IsNullOrEmpty(pEnvironment), u => u.Environment == pEnvironment)
                .Where(!string.IsNullOrEmpty(pAreaCode), u => u.AreaCode == pAreaCode)
@@ -221,7 +199,19 @@
        public async Task Add(AddWmsPlaceInput input)
        {
            var wmsPlace = input.Adapt<WmsPlace>();
                        //验证
            var area = (await _wmsAreaRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.AreaId&&u.IsDeleted==false)).Adapt<WmsAreaOutput>();
            if (area == null)
            {
                throw Oops.Oh($"库区不存在");
            }
            if (area.IsDisabled==true)
            {
                throw Oops.Oh($"库区已禁用");
            }
            wmsPlace.AreaName= area.AreaName;
            wmsPlace.AreaCode= area.AreaCode;
            wmsPlace.PlaceTypeName = wmsPlace.PlaceType.ToString();
            //验证
            await CheckExisit(wmsPlace);
            wmsPlace.CreatedUserId = wmsPlace.UpdatedUserId = SysHelper.GetUserId();
@@ -255,6 +245,19 @@
            if (!isExist) throw Oops.Oh(ErrorCode.D1002);
            var wmsPlace = input.Adapt<WmsPlace>();
            var area = (await _wmsAreaRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.AreaId && u.IsDeleted == false)).Adapt<WmsAreaOutput>();
            if (area == null)
            {
                throw Oops.Oh($"库区不存在");
            }
            if (area.IsDisabled == true)
            {
                throw Oops.Oh($"库区已禁用");
            }
            wmsPlace.AreaName = area.AreaName;
            wmsPlace.AreaCode = area.AreaCode;
            wmsPlace.PlaceTypeName = wmsPlace.PlaceType.ToString();
            //验证
            await CheckExisit(wmsPlace,true);
@@ -353,7 +356,6 @@
                           var _OutSequence = "";//出库顺序
                           var _IsVirtually = "";//是否虚拟
                           var _IsDisabled = "";//是否禁用
                           var _Id = "";//Id主键
                          #endregion
                          
                          
@@ -362,20 +364,12 @@
                           _PlaceName = row["库位名称"]?.ToString() ;
                           _PlaceAlias = row["库位别名"]?.ToString() ;
                           _PlaceType = row["库位类型"]?.ToString() ;
                           _PlaceTypeName = row["库位类型名称"]?.ToString() ;
                           _PlaceStatus = row["库位属性"]?.ToString() ;
                           _IsSrmPlace = row["是否堆垛机库位"]?.ToString() ;
                           _SrmPlaceNo = row["堆垛机库位号"]?.ToString() ;
                           _IsRgvPlace = row["是否RGV库位"]?.ToString() ;
                           _RgvPlaceNo = row["RGV库位号"]?.ToString() ;
                           _IsAgvPlace = row["是否AGV库位"]?.ToString() ;
                           _AgvPlaceNo = row["AGV库位号"]?.ToString() ;
                           _IsTransPlace = row["是否输送线库位"]?.ToString() ;
                           _TransPlaceNo = row["输送线库位号"]?.ToString() ;
                           _IsActivateWCS = row["是否激活与任务调度"]?.ToString() ;
                           _Environment = row["库存环境"]?.ToString() ;
                           _AreaCode = row["库区编号"]?.ToString() ;
                           _AreaId = row["所在库区"]?.ToString() ;
                           //_AreaId = row["所在库区"]?.ToString() ;
                           _AreaName = row["库区名称"]?.ToString() ;
                           _VerificationCode = row["检验码"]?.ToString() ;
                           _RowNo = row["排"]?.ToString() ;
@@ -393,7 +387,6 @@
                           _OutSequence = row["出库顺序"]?.ToString() ;
                           _IsVirtually = row["是否虚拟"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          
                          
@@ -472,74 +465,7 @@
                              }
                          
                           }
                          if(!string.IsNullOrEmpty(_IsSrmPlace))
                          {
                            if(!_IsSrmPlace.Equals("是") && !_IsSrmPlace.Equals("否"))
                             {
                               throw Oops.Oh($"第{index}行[是否堆垛机库位]{_IsSrmPlace}值不正确!");
                             }
                             else
                             {
                               bool outIsSrmPlace = _IsSrmPlace.Equals("是") ? true : false;
                               addItem.IsSrmPlace = outIsSrmPlace;
                             }
                             }
                          if(!string.IsNullOrEmpty(_SrmPlaceNo))
                          {
                                addItem.SrmPlaceNo = (string)_SrmPlaceNo;
                           }
                          if(!string.IsNullOrEmpty(_IsRgvPlace))
                          {
                            if(!_IsRgvPlace.Equals("是") && !_IsRgvPlace.Equals("否"))
                             {
                               throw Oops.Oh($"第{index}行[是否RGV库位]{_IsRgvPlace}值不正确!");
                             }
                             else
                             {
                               bool outIsRgvPlace = _IsRgvPlace.Equals("是") ? true : false;
                               addItem.IsRgvPlace = outIsRgvPlace;
                             }
                             }
                          if(!string.IsNullOrEmpty(_RgvPlaceNo))
                          {
                                addItem.RgvPlaceNo = (string)_RgvPlaceNo;
                           }
                          if(!string.IsNullOrEmpty(_IsAgvPlace))
                          {
                            if(!_IsAgvPlace.Equals("是") && !_IsAgvPlace.Equals("否"))
                             {
                               throw Oops.Oh($"第{index}行[是否AGV库位]{_IsAgvPlace}值不正确!");
                             }
                             else
                             {
                               bool outIsAgvPlace = _IsAgvPlace.Equals("是") ? true : false;
                               addItem.IsAgvPlace = outIsAgvPlace;
                             }
                             }
                          if(!string.IsNullOrEmpty(_AgvPlaceNo))
                          {
                                addItem.AgvPlaceNo = (string)_AgvPlaceNo;
                           }
                          if(!string.IsNullOrEmpty(_IsTransPlace))
                          {
                            if(!_IsTransPlace.Equals("是") && !_IsTransPlace.Equals("否"))
                             {
                               throw Oops.Oh($"第{index}行[是否输送线库位]{_IsTransPlace}值不正确!");
                             }
                             else
                             {
                               bool outIsTransPlace = _IsTransPlace.Equals("是") ? true : false;
                               addItem.IsTransPlace = outIsTransPlace;
                             }
                             }
                          if(!string.IsNullOrEmpty(_TransPlaceNo))
                          {
                                addItem.TransPlaceNo = (string)_TransPlaceNo;
                           }
                          if(!string.IsNullOrEmpty(_IsActivateWCS))
                          {
                            if(!_IsActivateWCS.Equals("是") && !_IsActivateWCS.Equals("否"))
@@ -567,22 +493,7 @@
                            throw Oops.Oh($"第{index}行[所在库区]{_AreaId}不能为空!");
                          }
                          
                          if(!string.IsNullOrEmpty(_AreaId))
                          {
                              if (!long.TryParse(_AreaId, out long outAreaId)&&!string.IsNullOrEmpty(_AreaId))
                              {
                                 throw Oops.Oh($"第{index}行[所在库区]{_AreaId}值不正确!");
                              }
                              if (outAreaId <= 0&&!string.IsNullOrEmpty(_AreaId))
                              {
                                 throw Oops.Oh($"第{index}行[所在库区]{_AreaId}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.AreaId = outAreaId;
                              }
                          }
                          if(!string.IsNullOrEmpty(_AreaName))
                          {
                                addItem.AreaName = (string)_AreaName;
@@ -788,23 +699,7 @@
                               addItem.IsDisabled = outIsDisabled;
                             }
                             }
                          if(!string.IsNullOrEmpty(_Id))
                          {
                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!");
                              }
                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Id = outId;
                              }
                          }
                          #endregion