zs
2025-05-15 edba4ede85a3d82a7f0a0a7dccddbc8281862888
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.WmsAreas;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.Domain.WmsPlaces;
using CMS.Plugin.HIAWms.Domain.WmsStores;
using CmsQueryExtensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea.WmsAreaCreateOrUpdateDtoBase;
using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace.WmsPlaceCreateOrUpdateDtoBase;
 
namespace CMS.Plugin.HIAWms.Application.Implements
{
    /// <summary>
    /// 枚举类型接口实现
    /// </summary>
    public class WmsEnumAppService : CMSPluginAppService, IWmsEnumAppService
    {
        private readonly IWmsStoreRepository _storeRepository;
        private readonly IWmsAreaRepository _wmsAreaRepository;
        private readonly IWmsPlaceRepository _wmsPlaceRepository;
        private readonly IWmsMaterialRepository _wmsMaterialRepository;
 
        public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialRepository wmsMaterialRepository)
        {
            _storeRepository = storeRepository;
            _wmsAreaRepository = wmsAreaRepository;
            _wmsPlaceRepository = wmsPlaceRepository;
            _wmsMaterialRepository = wmsMaterialRepository;
        }
 
        public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput)
        {
            return EnumHelper.GetEnumItems(enumInput.EnumName);
        }
 
        /// <summary>
        /// 获取仓库列表
        /// </summary>
        /// <returns></returns>
        public async Task<List<WmsStoreForAreaOutpur>> GetStreList()
        {
            var list = await _storeRepository.GetListForSelectAsync();
            if (list == null || list.Count <= 0) { return new List<WmsStoreForAreaOutpur>(); }
 
            var result = list.Select(x => new WmsStoreForAreaOutpur
            {
                StoreCode = x.StoreCode,
                StoreName = x.StoreName,
            }).ToList();
            return result;
        }
 
        /// <summary>
        /// 库区列表
        /// </summary>
        /// <returns></returns>
        public async Task<List<AreaForListOuptut>> GetAreaListAsync()
        {
            var list = await  _wmsAreaRepository.GetListForSelectAsync();
            if (list == null || list.Count <= 0) { return new List<AreaForListOuptut>(); }
            var result = list.Select(x=>new AreaForListOuptut
            {
                AreaName = x.AreaName,
                AreaNo = x.AreaNo,
            }).ToList();
 
            return result;  
        }
 
        /// <summary>
        /// 巷道列表
        /// </summary>
        /// <returns></returns>
        public async Task<List<PlaceAisleForListOuptut>> GetAisleListAsync()
        {
            var list = await _wmsPlaceRepository.GetAisleListForSelectAsync();
            if (list == null || list.Count <= 0) { return new List<PlaceAisleForListOuptut>(); }
 
            var result = list.Select(x => new PlaceAisleForListOuptut
            {
                Aisle = x.Aisle,
                AisleName = $"第{x.Aisle}巷道",
            }).ToList();
 
            return result;
        }
 
        /// <summary>
        /// 获取机型
        /// </summary>
        /// <returns></returns>
        public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
        {
            var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
            if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>();
 
            return materialList.Select(material => new MaterialModelOutput
            {
                MaterialModel = material.MaterialModel,
                MaterialModelDesc = material.MaterialModel
            }).ToList();
        }
 
 
        /// <summary>
        /// 获取库区列表
        /// </summary>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType)
        {
            var placeList = await _wmsPlaceRepository.GetPlaceListForSelectAsync(placeType);
            if (placeList == null || placeList.Count <= 0) return new List<PlaceListOutput>(); ;
 
            return placeList.Select(place => new PlaceListOutput
            {
                PlaceNo = place.PlaceNo,
                PlaceNoDesc = place.PlaceNo
            }).ToList();
        }
    }
}