22
schangxiang@126.com
2024-12-15 c1c1b1f95b0880cd58afadb98d6933287fe6311c
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsBase/WmsBasePlace/WmsBasePlaceService.cs
@@ -92,7 +92,7 @@
        var entity = input.Adapt<WmsBasePlace>();
        //重复性验证
        await CheckExist(entity, true);
        await CheckExist(entity,true);
        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
    }
@@ -139,126 +139,81 @@
            .WhereIF(input.PlaceType.HasValue, u => u.PlaceType == input.PlaceType)
            .WhereIF(!string.IsNullOrWhiteSpace(input.PlaceTypeName), u => u.PlaceTypeName.Contains(input.PlaceTypeName.Trim()))
            .WhereIF(input.PlaceStatus.HasValue, u => u.PlaceStatus == input.PlaceStatus)
            .WhereIF(input.AreaId > 0, u => u.AreaId == input.AreaId)
            .WhereIF(input.AreaId>0, u => u.AreaId == input.AreaId)
            .WhereIF(!string.IsNullOrWhiteSpace(input.AreaCode), u => u.AreaCode.Contains(input.AreaCode.Trim()))
            .WhereIF(!string.IsNullOrWhiteSpace(input.AreaName), u => u.AreaName.Contains(input.AreaName.Trim()))
            .WhereIF(input.ColumnNo > 0, u => u.ColumnNo == input.ColumnNo)
            .WhereIF(input.LayerNo > 0, u => u.LayerNo == input.LayerNo)
            .WhereIF(input.LaneNo > 0, u => u.LaneNo == input.LaneNo)
            .WhereIF(input.ColumnNo>0, u => u.ColumnNo == input.ColumnNo)
            .WhereIF(input.LayerNo>0, u => u.LayerNo == input.LayerNo)
            .WhereIF(input.LaneNo>0, u => u.LaneNo == input.LaneNo)
            .WhereIF(input.IsVirtually.HasValue, u => u.IsVirtually == input.IsVirtually)
            .WhereIF(input.IsDisabled.HasValue, u => u.IsDisabled == input.IsDisabled)
            .Select<WmsBasePlaceOutput>();
        return query;
    }
    /// <summary>
    /// 重复性验证
    /// </summary>
    /// <param name="input">验证对象</param>
    /// <param name="isEdit">是否是编辑</param>
    /// <returns></returns>
    private async Task CheckExist(WmsBasePlace input, bool isEdit = false)
    {
        //没有配置组合校验,不需要验重
        //没有配置单独校验,不需要验重
    }
    /// <summary>
    /// 根据组合校验和单独校验验证数据是否已存在-导入时验证
    /// </summary>
    /// <param name="inputs"></param>
    /// <returns></returns>
    private async Task CheckExisitForImport(List<WmsBasePlace> inputs)
    {
        if (inputs?.Count <= 0)
        if(input.CreateTimeRange != null && input.CreateTimeRange.Count >0)
        {
            throw Oops.Oh($"导入数据不能为空");
        }
        //根据组合校验验证表格中中是否已存在相同数据
        //根据单独校验验证表格中中是否已存在相同数据
    }
    #endregion
    /// <summary>
    /// 批量增加货位基础信息
    /// </summary>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "BatchAdd")]
    public async Task BatchAdd()
    {
        List<WmsBasePlace> places = new List<WmsBasePlace>();
        for (int aisle = 1; aisle <= 6; aisle++)//排
        {
            for (int column = 1; column <= 20; column++)//列
            DateTime? start= input.CreateTimeRange[0].Value;
            query = query.WhereIF(start.HasValue, u => u.CreateTime >= start);
            if (input.CreateTimeRange.Count >1 && input.CreateTimeRange[1].HasValue)
            {
                for (int layer = 1; layer <= 3; layer++)//层
                {
                    PlaceTypeEnum placeTypeEnum = default(PlaceTypeEnum);
                    if (layer == 1)
                    {
                        placeTypeEnum = PlaceTypeEnum.中货位;
                    }
                    else if (layer == 2)
                    {
                        placeTypeEnum = PlaceTypeEnum.小货位;
                    }
                    else if (layer == 3)
                    {
                        placeTypeEnum = PlaceTypeEnum.大货位;
                    }
                    WmsBasePlace place = new WmsBasePlace();
                    place.PlaceType = placeTypeEnum;
                    place.PlaceTypeName = placeTypeEnum.ToString();
                    place.PlaceCode = aisle.ToString("00") + column.ToString("00") + layer.ToString("00");
                    place.PlaceName = aisle.ToString("00") + column.ToString("00") + layer.ToString("00");
                    place.AreaCode = "";
                    place.PlaceStatus = PlaceStatusEnum.正常;
                    place.AreaName = "机器人岛缓存区";
                    place.ColumnNo = column;
                    place.LayerNo = layer;
                    //place.DeepcellNo = 0;
                    //place.GoodsShelfNo = "";
                    place.LaneNo = aisle;
                    place.IsVirtually = false;
                    //place.Line = 0;
                    //place.Islock = (int)YesNoEnum.N;
                    //place.EmptyContainer = (int)YesNoEnum.Y;
                    //place.PositionnoForSrm = "";
                    place.Length = new decimal(100);
                    place.Width = new decimal(100);
                    place.Height = new decimal(000);
                    //place.MaxWeight = 630;
                    //place.HeightLevel = (int)Heightlevel.DI;
                    //place.Priority = (int)PlacePriority.GAO;
                    places.Add(place);
                }
                var end = input.CreateTimeRange[1].Value;
                query = query.Where(u => u.CreateTime <= end);
            }
        }
        if(input.UpdateTimeRange != null && input.UpdateTimeRange.Count >0)
        {
            DateTime? start= input.UpdateTimeRange[0].Value;
            query = query.WhereIF(start.HasValue, u => u.UpdateTime >= start);
            if (input.UpdateTimeRange.Count >1 && input.UpdateTimeRange[1].HasValue)
            {
                var end = input.UpdateTimeRange[1].Value;
                query = query.Where(u => u.UpdateTime <= end);
            }
        }
        return query;
       }
        /// <summary>
        /// 重复性验证
        /// </summary>
        /// <param name="input">验证对象</param>
        /// <param name="isEdit">是否是编辑</param>
        /// <returns></returns>
        private async Task CheckExist( WmsBasePlace input,bool isEdit=false)
        {
            //没有配置组合校验,不需要验重
            //没有配置单独校验,不需要验重
       }
       /// <summary>
        /// 根据组合校验和单独校验验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<WmsBasePlace> inputs)
        {
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //根据组合校验验证表格中中是否已存在相同数据
           //根据单独校验验证表格中中是否已存在相同数据
        }
     #endregion
        await _rep.InsertRangeAsync(places);
    }
}