From 4eafe9c975b88483da2a16f20c45285db0a3e791 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周一, 05 5月 2025 21:33:05 +0800
Subject: [PATCH] 库存及库存明细
---
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.cs | 28
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoDto.cs | 86
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs | 1003 +++++++++
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialCheckStatusEnum.cs | 35
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs | 7
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateDto.cs | 17
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs | 4
HIAWms/web/src/config/menu.ts | 14
HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStock.ts | 41
HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.module.scss | 7
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs | 1
HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialInfo导出模板.xlsx | 0
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat | 2
HIAWms/web/src/widgets/WmsMaterialStock/type/Type.d.ts | 45
HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock导出模板.xlsx | 0
HIAWms/web/src/widgets/WmsMaterialStock/index.ts | 14
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoUpdateDto.cs | 14
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs | 5
HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.module.scss | 3
HIAWms/web/src/widgets/WmsMaterialStock/Controllers/File.ts | 31
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoSpecification.cs | 41
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs | 998 +++++++++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs | 6
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialInfoAppService.cs | 350 +++
HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.tsx | 61
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs | 1
HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs | 2
HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.module.scss | 113 +
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialInfo.cs | 120 +
HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStock.ts | 30
HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer.ts | 29
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfo.cs | 92
HIAWms/web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStock.json | 3
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs | 8
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosExportModel.cs | 77
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs | 25
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs | 328 +++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs | 16
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoEto.cs | 22
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.cs | 196 +
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStocksInput.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialInfoRepository.cs | 100
HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx | 8
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateOrUpdateDtoBase.cs | 77
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/IWmsMaterialInfoRepository.cs | 54
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs | 3
HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStock.ts | 264 ++
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoDataSeedContributor.cs | 67
HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDrawer.ts | 38
HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/Config.ts | 55
HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialInfoAutoMapperProfile.cs | 28
HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs | 1
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosImportModel.cs | 34
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs | 6
HIAWms/web/src/widgets/WmsMaterialStock/enum.ts | 15
HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainer.ts | 68
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs | 119 +
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs | 125 +
HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.tsx | 80
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs | 19
HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx | 343 +++
HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoConsts.cs | 17
HIAWms/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts | 4
HIAWms/web/components.d.ts | 1
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs | 5
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialInfoController.cs | 187 +
HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx | 468 ++++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs | 7
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialInfoAppService.cs | 46
HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs | 1
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/GetWmsMaterialInfosInput.cs | 59
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialInfoEventHandler.cs | 17
HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs | 2
78 files changed, 6,132 insertions(+), 83 deletions(-)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/GetWmsMaterialInfosInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/GetWmsMaterialInfosInput.cs
new file mode 100644
index 0000000..d68800b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/GetWmsMaterialInfosInput.cs
@@ -0,0 +1,59 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo鏌ヨ鍙傛暟瀵硅薄
+/// </summary>
+public class GetWmsMaterialInfosInput : ExtensiblePagedAndSortedResultRequestDto
+{
+ /// <summary>
+ /// Gets or sets the filter.
+ /// </summary>
+ public string Filter { get; set; }
+
+ /// <summary>
+ /// Gets or sets the name.
+ /// </summary>
+ public string Name { get; set; }
+ /// <summary>
+ /// 鐗╂枡浠e彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public int? StockNumber { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵瑰彿
+ /// </summary>
+ public string? MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗙紪鍙�
+ /// </summary>
+ public string? SupplierCode { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateDto.cs
new file mode 100644
index 0000000..1b51090
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo鍒涘缓鍙傛暟瀵硅薄
+/// </summary>
+public class WmsMaterialInfoCreateDto : WmsMaterialInfoCreateOrUpdateDtoBase
+{
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public virtual int? Sort { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; } = false;
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..f634209
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoCreateOrUpdateDtoBase.cs
@@ -0,0 +1,77 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo鍒涘缓鎴栨洿鏂板熀绫�
+/// </summary>
+public abstract class WmsMaterialInfoCreateOrUpdateDtoBase : ExtensibleEntityDto
+{
+ /// <summary>
+ /// 鐗╂枡浠e彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public int? StockNumber { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵瑰彿
+ /// </summary>
+ public string? MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗙紪鍙�
+ /// </summary>
+ public string? SupplierCode { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField1 { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField2 { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField3 { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public virtual string Remark { get; set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoCreateOrUpdateDtoBase"/> class.
+ /// </summary>
+ public WmsMaterialInfoCreateOrUpdateDtoBase() : base(false)
+ {
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoDto.cs
new file mode 100644
index 0000000..736a0b3
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoDto.cs
@@ -0,0 +1,86 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Domain.Entities;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo鏁版嵁鍙傛暟瀵硅薄
+/// </summary>
+public class WmsMaterialInfoDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 鐗╂枡浠e彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public int? StockNumber { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵瑰彿
+ /// </summary>
+ public string? MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗙紪鍙�
+ /// </summary>
+ public string? SupplierCode { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public virtual int Sort { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public virtual string Remark { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public virtual bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 骞跺彂鎴�
+ /// </summary>
+ public string ConcurrencyStamp { get; set; }
+
+ /// <summary>
+ /// Gets the export data.
+ /// </summary>
+ /// <returns></returns>
+ public Dictionary<string, object> GetExportData()
+ {
+ var exportData = new Dictionary<string, object>();
+ foreach (var property in this.GetType().GetProperties())
+ {
+ exportData.Add(property.Name, property.GetValue(this));
+ }
+
+ return exportData;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoUpdateDto.cs
new file mode 100644
index 0000000..aef6c50
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfoUpdateDto.cs
@@ -0,0 +1,14 @@
+using Volo.Abp.Domain.Entities;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo鏇存柊鍙傛暟瀵硅薄
+/// </summary>
+public class WmsMaterialInfoUpdateDto : WmsMaterialInfoCreateOrUpdateDtoBase, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 骞跺彂鎴�
+ /// </summary>
+ public string ConcurrencyStamp { get; set; }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosExportModel.cs
new file mode 100644
index 0000000..481491c
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosExportModel.cs
@@ -0,0 +1,77 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using MiniExcelLibs.Attributes;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos
+{
+ /// <summary>
+ /// WmsMaterialInfos瀵煎嚭妯″瀷
+ /// </summary>
+ public class WmsMaterialInfosExportModel
+ {
+ /// <summary>
+ /// WmsMaterialInfo瀵煎嚭妯″瀷
+ /// </summary>
+ public class WorkSectionExportModel
+ {
+ /// <summary>
+ /// 鐗╂枡缂栧彿
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡缂栧彿", Width = 20)]
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡鍚嶇О", Width = 25)]
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷/瑙勬牸
+ /// </summary>
+ [ExcelColumn(Name = "鏈哄瀷瑙勬牸", Width = 20)]
+ public string MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ [ExcelColumn(Name = "鍞竴鏍囪瘑鐮�", Width = 25)]
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 搴撳瓨鏁伴噺
+ /// </summary>
+ [ExcelColumn(Name = "搴撳瓨鏁伴噺", Width = 15)]
+ public int? StockNumber { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵规
+ /// </summary>
+ [ExcelColumn(Name = "鐗╂枡鎵规", Width = 20)]
+ public string MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗙紪鍙�
+ /// </summary>
+ [ExcelColumn(Name = "渚涘簲鍟嗙紪鍙�", Width = 25)]
+ public string SupplierCode { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ [ExcelColumn(Name = "妫�楠岀姸鎬�", Width = 25)]
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
+ /// 鍏ュ簱鏃堕棿
+ /// </summary>
+ [ExcelColumn(Name = "鍏ュ簱鏃堕棿", Width = 25, Format = "yyyy-MM-dd HH:mm")]
+ public DateTime? InStockTime { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [ExcelColumn(Name = "澶囨敞", Width = 30)]
+ public string Remark { get; set; }
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosImportModel.cs
new file mode 100644
index 0000000..954133d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialInfos/WmsMaterialInfosImportModel.cs
@@ -0,0 +1,34 @@
+using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos.WmsMaterialInfosExportModel;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos
+{
+ /// <summary>
+ /// WmsMaterialInfos瀵煎叆妯″瀷
+ /// </summary>
+ public class WmsMaterialInfosImportModel
+ {
+ private List<WmsMaterialInfoImportModel> _wmsmaterialinfos = new();
+
+ public List<WmsMaterialInfoImportModel> WmsMaterialInfos
+ {
+ get => _wmsmaterialinfos;
+ set
+ {
+ _wmsmaterialinfos = value;
+ var rowIndex = 2;
+ _wmsmaterialinfos?.ForEach(x => x.RowIndex = rowIndex++);
+ }
+ }
+
+ /// <summary>
+ /// WmsMaterialInfo瀵煎叆妯″瀷
+ /// </summary>
+ public class WmsMaterialInfoImportModel : WorkSectionExportModel
+ {
+ /// <summary>
+ /// 琛屽彿
+ /// </summary>
+ public int RowIndex { get; set; }
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStocksInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStocksInput.cs
index a3bddeb..79db668 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStocksInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/GetWmsMaterialStocksInput.cs
@@ -34,6 +34,10 @@
public virtual string MaterialId { get; set; }
/// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+ /// <summary>
/// 鍚嶇О
/// </summary>
public virtual string MaterialName { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
index 8f776ef..c6da695 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
@@ -84,9 +84,14 @@
public string AreaName { get; set; }
/// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
/// 鏄惁閿佸畾
/// </summary>
- public int IsLock { get; set; }
+ public YesNoEnum IsLock { get; set; }
/// <summary>
/// 鏄惁绌烘墭
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs
index 722b8e6..16f60e0 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockDto.cs
@@ -132,6 +132,22 @@
public string AreaName { get; set; }
/// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public string CheckStatusDesc
+ {
+ get
+ {
+ return GetEnumDescriptionUtil.GetEnumDescription(CheckStatus);
+ }
+ }
+
+ /// <summary>
/// 鏄惁閿佸畾
/// </summary>
public YesNoEnum IsLock { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs
index 46f79ea..e9a10eb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStocksExportModel.cs
@@ -102,11 +102,16 @@
public string AreaName { get; set; }
/// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
/// 閿佸畾鐘舵��
/// <para>0-鏈攣瀹� 1-宸查攣瀹�</para>
/// </summary>
[ExcelColumn(Name = "鏄惁閿佸畾", Width = 25)]
- public int IsLock { get; set; }
+ public YesNoEnum IsLock { get; set; }
/// <summary>
/// 鏄惁绌烘墭
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs
index 4a5d512..5427e01 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs
@@ -28,6 +28,12 @@
/// </summary>
public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string MaterialModel { get; set; }
+
/// <summary>
/// 閲囪喘绫诲瀷锛堟灇涓惧�硷級
/// </summary>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs
index 9d4e9c8..cfe0a7d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs
@@ -19,6 +19,10 @@
public string MaterialName { get; set; }
/// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string MaterialModel { get; set; }
+ /// <summary>
/// 閲囪喘绫诲瀷锛堟灇涓惧�硷級
/// </summary>
public PurchaseTypeEnum PurchaseType { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs
index 9681abf..d9cd88b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs
@@ -98,6 +98,10 @@
}
/// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string MaterialModel { get; set; }
+ /// <summary>
/// 鐢熶骇宸ュ巶
/// </summary>
public string Factory { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs
index 3a90013..e34c158 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs
@@ -81,6 +81,11 @@
public string MaterialQuality { get; set; }
/// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ [ExcelColumn(Name = "鍨嬪彿", Width = 25)]
+ public string MaterialModel { get; set; }
+ /// <summary>
/// 闀垮害锛堝崟浣嶏細绫筹級
/// </summary>
/// <example>6.0</example>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs
index 11c2d01..64fea4b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/GetWmsPlacesInput.cs
@@ -6,7 +6,7 @@
/// <summary>
/// WmsPlace鏌ヨ鍙傛暟瀵硅薄
/// </summary>
-public class GetWmsPlacesInput : ExtensiblePagedAndSortedResultRequestDto
+public class GetWmsMaterialInfoInput : ExtensiblePagedAndSortedResultRequestDto
{
/// <summary>
/// Gets or sets the filter.
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialInfoAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialInfoAppService.cs
new file mode 100644
index 0000000..970ee0b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialInfoAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+using Volo.Abp.Application.Services;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services;
+
+/// <summary>
+/// WmsMaterialInfo搴旂敤鏈嶅姟
+/// </summary>
+public interface IWmsMaterialInfoAppService : ICrudAppService<WmsMaterialInfoDto, Guid, GetWmsMaterialInfosInput, WmsMaterialInfoCreateDto, WmsMaterialInfoUpdateDto>
+{
+ /// <summary>
+ /// Clones the asynchronous.
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ Task<List<WmsMaterialInfoDto>> CloneAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// Deletes the many asynchronous.
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ Task DeleteManyAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// Adjusts the sort asynchronous.
+ /// </summary>
+ /// <param name="id">The identifier.</param>
+ /// <param name="sort">The sort.</param>
+ /// <returns></returns>
+ Task AdjustSortAsync(Guid id, int sort);
+
+ /// <summary>
+ /// Imports the asynchronous.
+ /// </summary>
+ /// <param name="input">The input.</param>
+ /// <returns></returns>
+ Task ImportAsync(WmsMaterialInfosImportModel input);
+
+ /// <summary>
+ /// Exports the asynchronous.
+ /// </summary>
+ /// <param name="input">The input.</param>
+ /// <returns></returns>
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInfosInput input);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs
index 5aa95c9..04c1832 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsPlaceAppService.cs
@@ -6,7 +6,7 @@
/// <summary>
/// WmsPlace搴旂敤鏈嶅姟
/// </summary>
-public interface IWmsPlaceAppService : ICrudAppService<WmsPlaceDto, Guid, GetWmsPlacesInput, WmsPlaceCreateDto, WmsPlaceUpdateDto>
+public interface IWmsPlaceAppService : ICrudAppService<WmsPlaceDto, Guid, GetWmsMaterialInfoInput, WmsPlaceCreateDto, WmsPlaceUpdateDto>
{
/// <summary>
/// Clones the asynchronous.
@@ -42,5 +42,5 @@
/// </summary>
/// <param name="input">The input.</param>
/// <returns></returns>
- Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsPlacesInput input);
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInfoInput input);
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
index 044e7d3..cbbdf8e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsAreaAppService.cs
@@ -236,7 +236,7 @@
throw new UserFriendlyException(errorMsg);
}
- var oldWmsArea = await _wmsareaRepository.FindByNameAsync(wmsarea.AreaName);
+ var oldWmsArea = await _wmsareaRepository.FindByNameAsync(wmsarea.AreaNo);
if (oldWmsArea != null)
{
var wmsareaUpdateDto = new WmsAreaUpdateDto
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
index c70214a..8231e75 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
@@ -105,6 +105,7 @@
wmsmaterial.Length = input.Length;
wmsmaterial.IsMainBranch = input.IsMainBranch;
wmsmaterial.Factory = input.Factory;
+ wmsmaterial.MaterialModel = input.MaterialModel;
wmsmaterial.Certification = input.Certification;
await _wmsmaterialRepository.UpdateAsync(wmsmaterial);
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialInfoAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialInfoAppService.cs
new file mode 100644
index 0000000..d25bdf5
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialInfoAppService.cs
@@ -0,0 +1,350 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Domain.Shared;
+using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.ObjectExtending;
+using Volo.Abp.ObjectMapping;
+
+namespace CMS.Plugin.HIAWms.Application.Implements;
+
+/// <inheritdoc />
+public class WmsMaterialInfoAppService : CMSPluginAppService, IWmsMaterialInfoAppService
+{
+ private readonly IWmsMaterialInfoRepository _wmsmaterialinfoRepository;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoAppService"/> class.
+ /// </summary>
+ /// <param name="wmsmaterialinfoRepository">The task job repository.</param>
+ public WmsMaterialInfoAppService(IWmsMaterialInfoRepository wmsmaterialinfoRepository)
+ {
+ _wmsmaterialinfoRepository = wmsmaterialinfoRepository;
+ }
+
+ /// <inheritdoc />
+ public virtual async Task<WmsMaterialInfoDto> GetAsync(Guid id)
+ {
+ return ObjectMapper.Map<WmsMaterialInfo, WmsMaterialInfoDto>(await _wmsmaterialinfoRepository.GetAsync(id));
+ }
+
+ /// <inheritdoc />
+ public virtual async Task<PagedResultDto<WmsMaterialInfoDto>> GetListAsync(GetWmsMaterialInfosInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsMaterialInfo.Sort);
+ }
+
+ var specification = new WmsMaterialInfoSpecification(input.Name);
+ var materialInfo = ObjectMapper.Map<GetWmsMaterialInfosInput, WmsMaterialInfo>(input);
+ var count = await _wmsmaterialinfoRepository.GetCountAsync(materialInfo,input.Filter, specification);
+ var list = await _wmsmaterialinfoRepository.GetListAsync(materialInfo,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification);
+
+ return new PagedResultDto<WmsMaterialInfoDto>(count, ObjectMapper.Map<List<WmsMaterialInfo>, List<WmsMaterialInfoDto>>(list));
+ }
+
+ /// <inheritdoc />
+ public virtual async Task<WmsMaterialInfoDto> CreateAsync(WmsMaterialInfoCreateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var exist = await _wmsmaterialinfoRepository.NameExistAsync(input.MaterialNo);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
+ }
+
+ var maxSort = await _wmsmaterialinfoRepository.GetMaxSortAsync();
+ var sort = input.Sort ?? maxSort;
+ var wmsmaterialinfo = ObjectMapper.Map<WmsMaterialInfoCreateDto, WmsMaterialInfo>(input);
+ input.MapExtraPropertiesTo(wmsmaterialinfo, MappingPropertyDefinitionChecks.None);
+ wmsmaterialinfo.Sort = sort;
+ await _wmsmaterialinfoRepository.InsertAsync(wmsmaterialinfo);
+
+ if (input.Sort.HasValue && wmsmaterialinfo.Sort != maxSort)
+ {
+ await AdjustSortAsync(wmsmaterialinfo.Id, wmsmaterialinfo.Sort);
+ }
+
+ return ObjectMapper.Map<WmsMaterialInfo, WmsMaterialInfoDto>(wmsmaterialinfo);
+ }
+
+ /// <inheritdoc />
+ public virtual async Task<WmsMaterialInfoDto> UpdateAsync(Guid id, WmsMaterialInfoUpdateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var wmsMaterialInfo = await _wmsmaterialinfoRepository.GetAsync(id);
+ var exist = await _wmsmaterialinfoRepository.NameExistAsync(input.MaterialNo, wmsMaterialInfo.Id);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
+ }
+
+ wmsMaterialInfo.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
+ input.MapExtraPropertiesTo(wmsMaterialInfo, MappingPropertyDefinitionChecks.None);
+
+ wmsMaterialInfo.MaterialNo = input.MaterialNo;
+ wmsMaterialInfo.MaterialName = input.MaterialName;
+ wmsMaterialInfo.MaterialModel = input.MaterialModel;
+ wmsMaterialInfo.MaterialId = input.MaterialId;
+ wmsMaterialInfo.StockNumber = input.StockNumber;
+ wmsMaterialInfo.MaterialBatch = input.MaterialBatch;
+ wmsMaterialInfo.SupplierCode = input.SupplierCode;
+ wmsMaterialInfo.CheckStatus = input.CheckStatus;
+ wmsMaterialInfo.RedundantField1 = input.RedundantField1;
+ wmsMaterialInfo.RedundantField2 = input.RedundantField2;
+ wmsMaterialInfo.RedundantField3 = input.RedundantField3;
+ wmsMaterialInfo.Remark = input.Remark;
+
+ await _wmsmaterialinfoRepository.UpdateAsync(wmsMaterialInfo);
+
+ return ObjectMapper.Map<WmsMaterialInfo, WmsMaterialInfoDto>(wmsMaterialInfo);
+ }
+
+ /// <inheritdoc />
+ public async Task<List<WmsMaterialInfoDto>> CloneAsync(IEnumerable<Guid> ids)
+ {
+ var wmsmaterialinfos = new List<WmsMaterialInfo>();
+ if (ids != null)
+ {
+ var sort = await _wmsmaterialinfoRepository.GetMaxSortAsync();
+ foreach (var id in ids)
+ {
+ var wmsmaterialinfo = await _wmsmaterialinfoRepository.FindAsync(id);
+ if (wmsmaterialinfo != null)
+ {
+ var name = wmsmaterialinfo.MaterialName + WmsMaterialInfoConsts.CloneTag;
+ var notExist = false;
+ while (!notExist)
+ {
+ var exist = await _wmsmaterialinfoRepository.NameExistAsync(name);
+ if (exist || wmsmaterialinfos.Any(x => x.MaterialName == name))
+ {
+ name += WmsMaterialInfoConsts.CloneTag;
+ continue;
+ }
+
+ notExist = true;
+ }
+
+ //wmsmaterialinfo = await _wmsmaterialinfoRepository.InsertAsync(wmsmaterialinfo.Clone(GuidGenerator.Create(), name, sort++));
+ wmsmaterialinfos.Add(wmsmaterialinfo);
+ }
+ }
+ }
+
+ return ObjectMapper.Map<List<WmsMaterialInfo>, List<WmsMaterialInfoDto>>(wmsmaterialinfos);
+ }
+
+ /// <inheritdoc />
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return _wmsmaterialinfoRepository.DeleteAsync(id);
+ }
+
+ /// <inheritdoc />
+ public async Task DeleteManyAsync(IEnumerable<Guid> ids)
+ {
+ foreach (var id in ids)
+ {
+ await DeleteAsync(id);
+ }
+ }
+
+ /// <inheritdoc />
+ public virtual async Task AdjustSortAsync(Guid id, int sort)
+ {
+ var list = await _wmsmaterialinfoRepository.GetListAsync(null,nameof(WmsMaterialInfo.Sort));
+ if (list != null && list.Any())
+ {
+ var initSort = 1;
+ list.ForEach(x => x.AdjustSort(initSort++));
+ var entity = list.FirstOrDefault(x => x.Id == id);
+ if (entity != null)
+ {
+ if (sort == 1)
+ {
+ list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ }
+ else if (entity.Sort > sort)
+ {
+ list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
+ }
+ else if (entity.Sort < sort)
+ {
+ list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1));
+ list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1));
+ }
+
+ entity.AdjustSort(sort);
+ }
+ }
+
+ await _wmsmaterialinfoRepository.UpdateManyAsync(list);
+ }
+
+ /// <inheritdoc />
+ public async Task ImportAsync(WmsMaterialInfosImportModel input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ var wmsmaterialinfoCreateDtos = new List<(int RowIndex, WmsMaterialInfoCreateDto Item)>();
+ var wmsmaterialinfoUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialInfoUpdateDto Item)>();
+ var wmsmaterialinfos = input.WmsMaterialInfos;
+
+ if (wmsmaterialinfos != null && wmsmaterialinfos.Any())
+ {
+ #region 瀵煎叆鏍¢獙
+
+ // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
+ var duplicateWmsMaterialInfos = wmsmaterialinfos.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList();
+ if (duplicateWmsMaterialInfos?.Any() == true)
+ {
+ var duplicateWmsMaterialInfoMsgs = duplicateWmsMaterialInfos.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅");
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsMaterialInfoMsgs)}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ #endregion
+
+ foreach (var wmsmaterialinfo in wmsmaterialinfos)
+ {
+ if (wmsmaterialinfo.MaterialNo.IsNullOrWhiteSpace() && wmsmaterialinfo.MaterialNo.IsNullOrWhiteSpace())
+ {
+ continue;
+ }
+
+ if (wmsmaterialinfo.MaterialNo.IsNullOrWhiteSpace())
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialinfo.RowIndex}琛岋細WmsMaterialInfo鍚嶇О涓嶈兘涓虹┖";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ var oldWmsMaterialInfo = await _wmsmaterialinfoRepository.FindByNameAsync(wmsmaterialinfo.MaterialNo);
+ if (oldWmsMaterialInfo != null)
+ {
+ var wmsmaterialinfoUpdateDto = new WmsMaterialInfoUpdateDto
+ {
+ MaterialNo = wmsmaterialinfo.MaterialNo,
+ MaterialName = wmsmaterialinfo.MaterialName,
+ MaterialId = wmsmaterialinfo.MaterialId,
+
+ // 鐗╂枡鐗规��
+ MaterialModel = wmsmaterialinfo.MaterialModel,
+ MaterialBatch = wmsmaterialinfo.MaterialBatch,
+ StockNumber = wmsmaterialinfo.StockNumber,
+
+ // 渚涘簲鍟嗕俊鎭�
+ SupplierCode = wmsmaterialinfo.SupplierCode,
+
+ // 鐘舵�佷俊鎭�
+ CheckStatus = wmsmaterialinfo.CheckStatus,
+
+ // 绯荤粺瀛楁
+ Remark = wmsmaterialinfo.Remark,
+ };
+
+ wmsmaterialinfoUpdateDtos.Add((wmsmaterialinfo.RowIndex, oldWmsMaterialInfo.Id, wmsmaterialinfoUpdateDto));
+ }
+ else
+ {
+ var wmsmaterialinfoCreateDto = new WmsMaterialInfoCreateDto
+ {
+ MaterialNo = wmsmaterialinfo.MaterialNo,
+ MaterialName = wmsmaterialinfo.MaterialName,
+ MaterialId = wmsmaterialinfo.MaterialId,
+
+ // 鐗╂枡鐗规��
+ MaterialModel = wmsmaterialinfo.MaterialModel,
+ MaterialBatch = wmsmaterialinfo.MaterialBatch,
+ StockNumber = wmsmaterialinfo.StockNumber,
+
+ // 渚涘簲鍟嗕俊鎭�
+ SupplierCode = wmsmaterialinfo.SupplierCode,
+
+ // 鐘舵�佷俊鎭�
+ CheckStatus = wmsmaterialinfo.CheckStatus,
+
+ // 绯荤粺瀛楁
+ Remark = wmsmaterialinfo.Remark,
+ };
+
+ wmsmaterialinfoCreateDtos.Add((wmsmaterialinfo.RowIndex, wmsmaterialinfoCreateDto));
+ }
+ }
+ }
+
+ // 鏂板
+ foreach (var wmsmaterialinfoDto in wmsmaterialinfoCreateDtos)
+ {
+ try
+ {
+ await CreateAsync(wmsmaterialinfoDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialinfoDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+
+ // 鏇存柊
+ foreach (var wmsmaterialinfoDto in wmsmaterialinfoUpdateDtos)
+ {
+ try
+ {
+ await UpdateAsync(wmsmaterialinfoDto.Id, wmsmaterialinfoDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterialinfoDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+ }
+
+ /// <inheritdoc />
+ public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInfosInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsMaterialInfo.Sort);
+ }
+
+ var specification = new WmsMaterialInfoSpecification(input.Name);
+ var materialInfo = ObjectMapper.Map<GetWmsMaterialInfosInput, WmsMaterialInfo>(input);
+ var list = await _wmsmaterialinfoRepository.GetListAsync(materialInfo,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true);
+ var result = ObjectMapper.Map<List<WmsMaterialInfo>, List<WmsMaterialInfoDto>>(list);
+
+ var sheets = new Dictionary<string, object>
+ {
+ ["閰嶇疆"] = result.Select(x => x.GetExportData()).ToList(),
+ };
+
+ var fileName = result.Count > 1 ? "WmsMaterialInfo鍒楄〃" : result.Count == 1 ? result.First()?.MaterialNo : "WmsMaterialInfo妯$増";
+ return (sheets, fileName);
+ }
+
+ /// <summary>
+ /// Checks the create or update dto asynchronous.
+ /// </summary>
+ /// <param name="input">The input.</param>
+ protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialInfoCreateOrUpdateDtoBase input)
+ {
+ Check.NotNull(input, nameof(input));
+ Check.NotNullOrWhiteSpace(input.MaterialNo, "缂栧彿", WmsMaterialInfoConsts.MaxMaterialIdLength);
+ Check.NotNullOrWhiteSpace(input.MaterialName, "鍚嶇О", WmsMaterialInfoConsts.MaxMaterialIdLength);
+ Check.Length(input.Remark, "澶囨敞", WmsMaterialInfoConsts.MaxRemarkLength);
+ return Task.CompletedTask;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
index 6b88e6a..4f3b9ee 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
@@ -8,6 +8,10 @@
using Volo.Abp.Data;
using Volo.Abp.ObjectExtending;
using CMS.Plugin.HIAWms.Domain.Shared.Util;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
+using CMS.Plugin.HIAWms.Domain.WmsContainers;
+using CMS.Plugin.HIAWms.Domain.WmsPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsAreas;
namespace CMS.Plugin.HIAWms.Application.Implements;
@@ -15,14 +19,27 @@
public class WmsMaterialStockAppService : CMSPluginAppService, IWmsMaterialStockAppService
{
private readonly IWmsMaterialStockRepository _wmsmaterialstockRepository;
+ private readonly IWmsMaterialRepository _wmsMaterialRepository;
+ private readonly IWmsContainerRepository _wmscontainerRepository;
+ private readonly IWmsPlaceRepository _wmsplaceRepository;
+ private readonly IWmsAreaRepository _wmsareaRepository;
/// <summary>
/// Initializes a new instance of the <see cref="WmsMaterialStockAppService"/> class.
/// </summary>
/// <param name="wmsmaterialstockRepository">The task job repository.</param>
- public WmsMaterialStockAppService(IWmsMaterialStockRepository wmsmaterialstockRepository)
+ public WmsMaterialStockAppService(IWmsMaterialStockRepository wmsmaterialstockRepository,
+ IWmsMaterialRepository wmsMaterialRepository,
+ IWmsContainerRepository wmscontainerRepository,
+ IWmsPlaceRepository wmsplaceRepository,
+ IWmsAreaRepository wmsareaRepository
+ )
{
_wmsmaterialstockRepository = wmsmaterialstockRepository;
+ _wmsMaterialRepository = wmsMaterialRepository;
+ _wmscontainerRepository = wmscontainerRepository;
+ _wmsplaceRepository = wmsplaceRepository;
+ _wmsareaRepository = wmsareaRepository;
}
/// <inheritdoc />
@@ -54,19 +71,60 @@
{
await CheckCreateOrUpdateDtoAsync(input);
- var exist = await _wmsmaterialstockRepository.NameExistAsync(input.MaterialNo);
- if (exist)
+ //var exist = await _wmsmaterialstockRepository.NameExistAsync(input.MaterialNo);
+ //if (exist)
+ //{
+ // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
+ //}
+ var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo);
+ if(material == null)
{
- throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
+ throw new UserFriendlyException("鐗╂枡淇℃伅涓嶅瓨鍦�");
}
-
+ var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
+ if (container == null)
+ {
+ throw new UserFriendlyException("鎵樼洏淇℃伅涓嶅瓨鍦�");
+ }
+ var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
+ if(place == null)
+ {
+ throw new UserFriendlyException("搴撲綅淇℃伅涓嶅瓨鍦�");
+ }
+ var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode);
+ if(area == null)
+ {
+ throw new UserFriendlyException("搴撲綅搴撳尯淇℃伅涓嶅瓨鍦�");
+ }
var maxSort = await _wmsmaterialstockRepository.GetMaxSortAsync();
var sort = input.Sort ?? maxSort;
var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input);
input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
+ wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N");
+ material.MaterialName = material.MaterialName;
+
+ wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
+ wmsmaterialstock.ContainerType = container.ContainerType;
+
+ wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+ wmsmaterialstock.StorageTypeNo = place.StorageTypeNo;
+ wmsmaterialstock.AreaCode = place.AreaCode;
+ wmsmaterialstock.AreaName = area.AreaName;
+
+ wmsmaterialstock.MaterialModel = material.MaterialModel;
+ wmsmaterialstock.MaterialBatch = input.MaterialBatch;
+
wmsmaterialstock.Sort = sort;
wmsmaterialstock.InStockTime = DateTime.Now;
await _wmsmaterialstockRepository.InsertAsync(wmsmaterialstock);
+
+
+ container.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
+ place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+ place.Islock = input.IsLock;
+
+ await _wmscontainerRepository.UpdateAsync(container);
+ await _wmsplaceRepository.UpdateAsync(place);
if (input.Sort.HasValue && wmsmaterialstock.Sort != maxSort)
{
@@ -82,35 +140,62 @@
await CheckCreateOrUpdateDtoAsync(input);
var wmsmaterialstock = await _wmsmaterialstockRepository.GetAsync(id);
- var exist = await _wmsmaterialstockRepository.NameExistAsync(input.MaterialNo, wmsmaterialstock.Id);
- if (exist)
+ //var exist = await _wmsmaterialstockRepository.NameExistAsync(input.MaterialNo, wmsmaterialstock.Id);
+ //if (exist)
+ //{
+ // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
+ //}
+ var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo);
+ if (material == null)
{
- throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
+ throw new UserFriendlyException("鐗╂枡淇℃伅涓嶅瓨鍦�");
}
-
+ var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
+ if (container == null)
+ {
+ throw new UserFriendlyException("鎵樼洏淇℃伅涓嶅瓨鍦�");
+ }
+ var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
+ if (place == null)
+ {
+ throw new UserFriendlyException("搴撲綅淇℃伅涓嶅瓨鍦�");
+ }
+ var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode);
+ if (area == null)
+ {
+ throw new UserFriendlyException("搴撲綅搴撳尯淇℃伅涓嶅瓨鍦�");
+ }
wmsmaterialstock.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
-
wmsmaterialstock.MaterialNo = input.MaterialNo;
- wmsmaterialstock.MaterialName = input.MaterialName;
wmsmaterialstock.ContainerNo = input.ContainerNo;
- wmsmaterialstock.ContainerStatus = input.ContainerStatus;
- wmsmaterialstock.ContainerType = input.ContainerType;
wmsmaterialstock.StockNumber = input.StockNumber;
- wmsmaterialstock.MaterialBatch = input.MaterialBatch;
- wmsmaterialstock.SupplierCode = input.SupplierCode;
- wmsmaterialstock.MaterialModel = input.MaterialModel;
wmsmaterialstock.PlaceNo = input.PlaceNo;
- wmsmaterialstock.PlaceStatus = input.PlaceStatus;
- wmsmaterialstock.StorageTypeNo = input.StorageTypeNo;
- wmsmaterialstock.AreaCode = input.AreaCode;
- wmsmaterialstock.AreaName = input.AreaName;
wmsmaterialstock.IsLock = input.IsLock;
wmsmaterialstock.InStockTime = input.InStockTime;
wmsmaterialstock.Remark = input.Remark;
+ wmsmaterialstock.MaterialName = material.MaterialName;
+ wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
+ wmsmaterialstock.ContainerType = container.ContainerType;
+
+ wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+ wmsmaterialstock.StorageTypeNo = place.StorageTypeNo;
+ wmsmaterialstock.AreaCode = place.AreaCode;
+ wmsmaterialstock.AreaName = area.AreaName;
+
+ wmsmaterialstock.MaterialModel = material.MaterialModel;
+ wmsmaterialstock.MaterialBatch = input.MaterialBatch;
+
await _wmsmaterialstockRepository.UpdateAsync(wmsmaterialstock);
+ container.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
+ place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+ place.Islock = input.IsLock;
+
+ await _wmscontainerRepository.UpdateAsync(container);
+ await _wmsplaceRepository.UpdateAsync(place);
+
return ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(wmsmaterialstock);
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
index 8d3b362..8c94ab0 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
@@ -32,7 +32,7 @@
}
/// <inheritdoc />
- public virtual async Task<PagedResultDto<WmsPlaceDto>> GetListAsync(GetWmsPlacesInput input)
+ public virtual async Task<PagedResultDto<WmsPlaceDto>> GetListAsync(GetWmsMaterialInfoInput input)
{
Check.NotNull(input, nameof(input));
@@ -42,7 +42,7 @@
}
var specification = new WmsPlaceSpecification(input.Name);
- var place = ObjectMapper.Map<GetWmsPlacesInput, WmsPlace>(input);
+ var place = ObjectMapper.Map<GetWmsMaterialInfoInput, WmsPlace>(input);
var count = await _wmsplaceRepository.GetCountAsync(place,input.Filter, specification);
var list = await _wmsplaceRepository.GetListAsync(place, input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification);
@@ -285,7 +285,7 @@
}
/// <inheritdoc />
- public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsPlacesInput input)
+ public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInfoInput input)
{
Check.NotNull(input, nameof(input));
@@ -295,7 +295,7 @@
}
var specification = new WmsPlaceSpecification(input.Name);
- var place = ObjectMapper.Map<GetWmsPlacesInput, WmsPlace>(input);
+ var place = ObjectMapper.Map<GetWmsMaterialInfoInput, WmsPlace>(input);
var list = await _wmsplaceRepository.GetListAsync(place, input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true);
var result = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list);
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialInfoAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialInfoAutoMapperProfile.cs
new file mode 100644
index 0000000..3c94602
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialInfoAutoMapperProfile.cs
@@ -0,0 +1,28 @@
+using AutoMapper;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Domain.WmsPlaces;
+using Volo.Abp.ObjectExtending;
+
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles;
+
+/// <summary>
+/// AutoMapper閰嶇疆
+/// </summary>
+/// <seealso cref="AutoMapper.Profile" />
+public class WmsMaterialInfoAutoMapperProfile : Profile
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoAutoMapperProfile"/> class.
+ /// </summary>
+ public WmsMaterialInfoAutoMapperProfile()
+ {
+ /* You can configure your AutoMapper mapping configuration here.
+ * Alternatively, you can split your mapping configurations
+ * into multiple profile classes for a better organization. */
+ CreateMap<WmsMaterialInfo, WmsMaterialInfoDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<WmsMaterialInfoCreateDto, WmsMaterialInfo>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<GetWmsMaterialInfoInput, WmsMaterialInfo>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
index f58553d..85c14d0 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
@@ -21,6 +21,6 @@
* into multiple profile classes for a better organization. */
CreateMap<WmsPlace, WmsPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
CreateMap<WmsPlaceCreateDto, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
- CreateMap<GetWmsPlacesInput, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<GetWmsMaterialInfoInput, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialCheckStatusEnum.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialCheckStatusEnum.cs
new file mode 100644
index 0000000..0d9125d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/Enums/MaterialCheckStatusEnum.cs
@@ -0,0 +1,35 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.HIAWms.Domain.Shared.Enums
+{
+ /// <summary>
+ /// 搴撳瓨鐗╂枡鐨勬楠岀姸鎬�
+ /// </summary>
+ [Description("搴撳瓨鐗╂枡鐨勬楠岀姸鎬�")]
+ public enum MaterialCheckStatusEnum
+ {
+ /// <summary>
+ /// 鏈楠�
+ /// </summary>
+ [Description("鏈楠�")]
+ WEIJIANYAN = 1,
+
+ /// <summary>
+ /// 鍚堟牸
+ /// </summary>
+ [Description("鍚堟牸")]
+ HEGE = 2,
+
+ /// <summary>
+ /// 涓嶅悎鏍�
+ /// </summary>
+ [Description("涓嶅悎鏍�")]
+ BUHEGE = 3,
+
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoConsts.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoConsts.cs
new file mode 100644
index 0000000..a7bdf8e
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoConsts.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo甯搁噺瀹氫箟
+/// </summary>
+public static class WmsMaterialInfoConsts
+{
+ public const string CloneTag = "_鍓湰";
+ public const int MaxMaterialNoLength = 50;
+ public const int MaxMaterialNameLength = 100;
+ public const int MaxMaterialModelLength = 50;
+ public const int MaxMaterialIdLength = 64;
+ public const int MaxMaterialBatchLength = 50;
+ public const int MaxSupplierCodeLength = 50;
+ public const int MaxRedundantFieldLength = 255;
+ public const int MaxRemarkLength = 500;
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoEto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoEto.cs
new file mode 100644
index 0000000..0757427
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain.Shared/WmsMaterialInfos/WmsMaterialInfoEto.cs
@@ -0,0 +1,22 @@
+namespace CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo浜嬩欢鍙傛暟瀵硅薄
+/// </summary>
+[Serializable]
+public class WmsMaterialInfoEto
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoEto"/> class.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ public WmsMaterialInfoEto(string name)
+ {
+ Name = name;
+ }
+
+ /// <summary>
+ /// 鍚嶇О
+ /// </summary>
+ public string Name { get; }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialInfoEventHandler.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialInfoEventHandler.cs
new file mode 100644
index 0000000..a8efffc
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/EventHandlers/WmsMaterialInfoEventHandler.cs
@@ -0,0 +1,17 @@
+using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.EventBus.Distributed;
+
+namespace CMS.Plugin.HIAWms.Domain.EventHandlers;
+
+/// <summary>
+/// WmsMaterialInfo浜嬩欢澶勭悊绋嬪簭
+/// </summary>
+public class WmsMaterialInfoEventHandler : IDistributedEventHandler<WmsMaterialInfoEto>, ITransientDependency
+{
+ /// <inheritdoc />
+ public Task HandleEventAsync(WmsMaterialInfoEto eventData)
+ {
+ return Task.CompletedTask;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/IWmsMaterialInfoRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/IWmsMaterialInfoRepository.cs
new file mode 100644
index 0000000..d3f08ec
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/IWmsMaterialInfoRepository.cs
@@ -0,0 +1,54 @@
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Specifications;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+
+/// <summary>
+/// WmsMaterialInfo浠撳偍
+/// </summary>
+public interface IWmsMaterialInfoRepository : IBasicRepository<WmsMaterialInfo, Guid>
+{
+ /// <summary>
+ /// Finds the by name asynchronous.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns></returns>
+ Task<WmsMaterialInfo> FindByNameAsync(string name, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// Names the exist asynchronous.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="id">The identifier.</param>
+ /// <returns></returns>
+ Task<bool> NameExistAsync(string name, Guid? id = null);
+
+ /// <summary>
+ /// Gets the maximum sort asynchronous.
+ /// </summary>
+ /// <returns></returns>
+ Task<int> GetMaxSortAsync();
+
+ /// <summary>
+ /// Gets the list asynchronous.
+ /// </summary>
+ /// <param name="sorting">The sorting.</param>
+ /// <param name="maxResultCount">The maximum result count.</param>
+ /// <param name="skipCount">The skip count.</param>
+ /// <param name="filter">The filter.</param>
+ /// <param name="specification">The specification.</param>
+ /// <param name="includeDetails">if set to <c>true</c> [include details].</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns></returns>
+ Task<List<WmsMaterialInfo>> GetListAsync(WmsMaterialInfo? materialInfo, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsMaterialInfo> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// Gets the count asynchronous.
+ /// </summary>
+ /// <param name="filter">The filter.</param>
+ /// <param name="specification">The specification.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns></returns>
+ Task<long> GetCountAsync(WmsMaterialInfo? materialInfo, string filter = null, Specification<WmsMaterialInfo> specification = null, CancellationToken cancellationToken = default);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfo.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfo.cs
new file mode 100644
index 0000000..57fa045
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfo.cs
@@ -0,0 +1,92 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
+using Volo.Abp;
+using Volo.Abp.Domain.Entities.Auditing;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsMaterialInfos
+{
+ /// <summary>
+ /// WmsMaterialInfo
+ /// </summary>
+ public class WmsMaterialInfo : FullAuditedAggregateRoot<Guid>
+ {
+ /// <summary>
+ /// 鐗╂枡浠e彿
+ /// </summary>
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ public string? MaterialModel { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍞竴鐮�
+ /// </summary>
+ public string MaterialId { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public int? StockNumber { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鎵瑰彿
+ /// </summary>
+ public string? MaterialBatch { get; set; }
+
+ /// <summary>
+ /// 渚涘簲鍟嗙紪鍙�
+ /// </summary>
+ public string? SupplierCode { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField1 { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField2 { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField3 { get; set; }
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public virtual int Sort { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public virtual string Remark { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public virtual bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// Adjusts the sort.
+ /// </summary>
+ /// <param name="sort">The sort.</param>
+ public void AdjustSort(int sort)
+ {
+ Sort = sort;
+ }
+
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoDataSeedContributor.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoDataSeedContributor.cs
new file mode 100644
index 0000000..825721c
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoDataSeedContributor.cs
@@ -0,0 +1,67 @@
+using Volo.Abp.Data;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Guids;
+using Volo.Abp.Uow;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsMaterialInfos
+{
+ /// <summary>
+ /// WmsMaterialInfo绉嶅瓙鏁版嵁鎻愪緵绋嬪簭
+ /// </summary>
+ public class WmsMaterialInfoDataSeedContributor : IDataSeedContributor, ITransientDependency
+ {
+ private readonly IUnitOfWorkManager _unitOfWorkManager;
+ private readonly IWmsMaterialInfoRepository _wmsmaterialinfoRepository;
+ private readonly IGuidGenerator _guidGenerator;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoDataSeedContributor"/> class.
+ /// </summary>
+ /// <param name="unitOfWorkManager">The unit of work manager.</param>
+ /// <param name="guidGenerator">The unique identifier generator.</param>
+ /// <param name="wmsmaterialinfoRepository">The work section repository.</param>
+ public WmsMaterialInfoDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IWmsMaterialInfoRepository wmsmaterialinfoRepository)
+ {
+ _unitOfWorkManager = unitOfWorkManager;
+ _wmsmaterialinfoRepository = wmsmaterialinfoRepository;
+ _guidGenerator = guidGenerator;
+ }
+
+ /// <inheritdoc />
+ public async Task SeedAsync(DataSeedContext context)
+ {
+ if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName)
+ {
+ try
+ {
+ //using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true);
+ //await unitofWork.SaveChangesAsync();
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex.Message);
+ }
+ }
+
+ if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData")
+ {
+ try
+ {
+ await SeedWmsMaterialInfoDataAsync();
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.Message);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Seeds the work section data asynchronous.
+ /// </summary>
+ private async Task SeedWmsMaterialInfoDataAsync()
+ {
+
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoSpecification.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoSpecification.cs
new file mode 100644
index 0000000..672c877
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialInfos/WmsMaterialInfoSpecification.cs
@@ -0,0 +1,41 @@
+using System.Linq.Expressions;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsMaterialInfos
+{
+ /// <summary>
+ /// WmsMaterialInfo瑙勭害
+ /// </summary>
+ public class WmsMaterialInfoSpecification : Volo.Abp.Specifications.Specification<WmsMaterialInfo>
+ {
+ private readonly string _materialNo;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoSpecification"/> class.
+ /// </summary>
+ public WmsMaterialInfoSpecification()
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoSpecification"/> class.
+ /// </summary>
+ /// <param name="materialNo">The name.</param>
+ public WmsMaterialInfoSpecification(string materialNo = null)
+ {
+ _materialNo = materialNo;
+ }
+
+ /// <inheritdoc />
+ public override Expression<Func<WmsMaterialInfo, bool>> ToExpression()
+ {
+ Expression<Func<WmsMaterialInfo, bool>> expression = c => 1 == 1;
+
+ if (_materialNo != null)
+ {
+ expression = expression.And(c => c.MaterialNo == _materialNo);
+ }
+
+ return expression;
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs
index 1b3279e..dc2982c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialStocks/WmsMaterialStock.cs
@@ -87,14 +87,19 @@
public string AreaName { get; set; }
/// <summary>
+ /// 妫�楠岀姸鎬�
+ /// </summary>
+ public MaterialCheckStatusEnum? CheckStatus { get; set; }
+
+ /// <summary>
/// 鏄惁閿佸畾
/// </summary>
- public int IsLock { get; set; }
+ public YesNoEnum IsLock { get; set; }
/// <summary>
/// 鏄惁绌烘墭
/// </summary>
- public YesNoEnum EmptyContainer { get; protected set; }
+ public YesNoEnum EmptyContainer { get; set; }
/// <summary>
/// 鍏ュ簱鏃堕棿
@@ -111,6 +116,22 @@
/// </summary>
public virtual string Remark { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField1 { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField2 { get; set; }
+
+ /// <summary>
+ /// 鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��
+ /// </summary>
+ public string RedundantField3 { get; set; }
+
/// <summary>
/// 鏄惁绂佺敤
/// </summary>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
index 4b9d049..2ffc4ca 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
@@ -21,6 +21,12 @@
/// </summary>
public string MaterialName { get; set; }
+
+ /// <summary>
+ /// 鍨嬪彿
+ /// </summary>
+ public string MaterialModel { get; set; }
+
/// <summary>
/// 閲囪喘绫诲瀷锛堟灇涓惧�硷級
/// </summary>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
index f04c91b..7bce03b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
@@ -101,6 +101,9 @@
b.Property(x => x.Certification)
.HasMaxLength(128)
.HasComment("璇佷功缂栧彿");
+ b.Property(x => x.MaterialModel)
+ .HasMaxLength(128)
+ .HasComment("鍨嬪彿");
// 鍐椾綑瀛楁閰嶇疆
b.Property(x => x.RedundantField1)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialInfo.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialInfo.cs
new file mode 100644
index 0000000..a65cb63
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialInfo.cs
@@ -0,0 +1,120 @@
+using CMS.Plugin.HIAWms.Domain;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos;
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore.Modeling;
+
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
+
+/// <summary>
+/// EfCore鎵╁睍
+/// </summary>
+public static partial class CMSPluginEfCoreExtensions
+{
+ /// <summary>
+ /// Includes the details.
+ /// </summary>
+ /// <param name="queryable">The queryable.</param>
+ /// <param name="include">if set to <c>true</c> [include].</param>
+ /// <returns></returns>
+ public static IQueryable<WmsMaterialInfo> IncludeDetails(this IQueryable<WmsMaterialInfo> queryable, bool include = true)
+ {
+ if (!include)
+ {
+ return queryable;
+ }
+
+ return queryable;
+ }
+
+ /// <summary>
+ /// Configures the wmsmaterialinfo.
+ /// </summary>
+ /// <param name="builder">The builder.</param>
+ public static void ConfigureWmsMaterialInfo(this ModelBuilder builder)
+ {
+ Check.NotNull(builder, nameof(builder));
+
+ builder.Entity<WmsMaterialInfo>(b =>
+ {
+ // 閰嶇疆琛ㄥ拰鏋舵瀯鍚嶇О
+ b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsMaterialInfos").ToLower(),
+ CMSPluginDbProperties.DbSchema)
+ .HasComment("WMS鐗╂枡淇℃伅琛�");
+
+ b.ConfigureByConvention();
+
+ // 涓婚敭閰嶇疆
+ b.HasKey(x => x.Id);
+
+ // 灞炴�ч厤缃�
+ b.Property(x => x.MaterialNo)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialNoLength)
+ .IsRequired()
+ .HasComment("鐗╂枡浠e彿");
+
+ b.Property(x => x.MaterialName)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialNameLength)
+ .IsRequired()
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property(x => x.MaterialModel)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialModelLength)
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property(x => x.MaterialId)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialIdLength)
+ .IsRequired()
+ .HasComment("鐗╂枡鍞竴鐮�");
+
+ b.Property(x => x.StockNumber)
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property(x => x.MaterialBatch)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialBatchLength)
+ .HasComment("鐗╂枡鎵瑰彿");
+
+ b.Property(x => x.SupplierCode)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxSupplierCodeLength)
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.Property(x => x.CheckStatus)
+ .HasComment("妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)");
+
+ b.Property(x => x.RedundantField1)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength)
+ .HasComment("鍐椾綑瀛楁1");
+
+ b.Property(x => x.RedundantField2)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength)
+ .HasComment("鍐椾綑瀛楁2");
+
+ b.Property(x => x.RedundantField3)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength)
+ .HasComment("鍐椾綑瀛楁3");
+
+ b.Property(x => x.Sort)
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property(x => x.Remark)
+ .HasMaxLength(WmsMaterialInfoConsts.MaxRemarkLength)
+ .HasComment("澶囨敞");
+
+ b.Property(x => x.IsDisabled)
+ .HasComment("鏄惁绂佺敤");
+
+ // 绱㈠紩閰嶇疆
+ b.HasIndex(x => x.MaterialNo).IsUnique();
+ b.HasIndex(x => x.MaterialName);
+ b.HasIndex(x => x.MaterialId).IsUnique();
+ b.HasIndex(x => x.MaterialBatch);
+ b.HasIndex(x => x.SupplierCode);
+ b.HasIndex(x => x.CheckStatus);
+
+ // 鎵╁睍灞炴�ч厤缃�
+ b.ApplyObjectExtensionMappings();
+ });
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs
index d178432..cb7f889 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialStock.cs
@@ -123,6 +123,25 @@
.HasMaxLength(500)
.HasComment("澶囨敞");
+ b.Property(x => x.CheckStatus)
+ .HasComment("妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)");
+
+ // 鍐椾綑瀛楁閰嶇疆
+ b.Property(x => x.RedundantField1)
+ .HasMaxLength(256)
+ .IsRequired(false)
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property(x => x.RedundantField2)
+ .HasMaxLength(256)
+ .IsRequired(false)
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property(x => x.RedundantField3)
+ .HasMaxLength(256)
+ .IsRequired(false)
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
b.Property(x => x.IsDisabled)
.HasComment("鏄惁绂佺敤");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
index 64d4d26..3f3a094 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
@@ -24,15 +24,14 @@
}
/// <inheritdoc />
- public virtual async Task<WmsArea> FindByNameAsync(string name, CancellationToken cancellationToken = default)
+ public virtual async Task<WmsArea> FindByNameAsync(string areaNo, CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
.IncludeDetails()
.OrderBy(t => t.Sort)
.Where(x => !x.IsDeleted)
- .FirstOrDefaultAsync(t => t.AreaName == name, GetCancellationToken(cancellationToken));
+ .FirstOrDefaultAsync(t => t.AreaNo == areaNo, GetCancellationToken(cancellationToken));
}
-
/// <summary>
/// 查看库区是否存在
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialInfoRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialInfoRepository.cs
new file mode 100644
index 0000000..ae965d9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialInfoRepository.cs
@@ -0,0 +1,100 @@
+using System.Linq.Dynamic.Core;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
+using MathNet.Numerics;
+using Microsoft.EntityFrameworkCore;
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore;
+using Volo.Abp.Specifications;
+
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories;
+
+/// <inheritdoc />
+public class EfCoreWmsMaterialInfoRepository : EfCoreRepository<ICMSPluginDbContext, WmsMaterialInfo, Guid>, IWmsMaterialInfoRepository
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EfCoreWmsMaterialInfoRepository"/> class.
+ /// </summary>
+ /// <param name="dbContextProvider">The database context provider.</param>
+ public EfCoreWmsMaterialInfoRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider)
+ : base(dbContextProvider)
+ {
+ }
+
+ /// <inheritdoc />
+ public virtual async Task<WmsMaterialInfo> FindByNameAsync(string materialInfo, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails()
+ .OrderBy(t => t.Sort)
+ .FirstOrDefaultAsync(t => t.MaterialNo == materialInfo, GetCancellationToken(cancellationToken));
+ }
+
+ /// <inheritdoc />
+ public async Task<bool> NameExistAsync(string materialInfo, Guid? id = null)
+ {
+ return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).AnyAsync(x => x.MaterialNo == materialInfo);
+ }
+
+ /// <inheritdoc />
+ public async Task<int> GetMaxSortAsync()
+ {
+ var hasAny = await (await GetQueryableAsync()).AnyAsync();
+ if (!hasAny)
+ {
+ return 1;
+ }
+
+ var sort = await (await GetQueryableAsync()).MaxAsync(x => x.Sort);
+ return sort + 1;
+ }
+
+ /// <inheritdoc />
+ public async Task<List<WmsMaterialInfo>> GetListAsync(WmsMaterialInfo? materialInfo,string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsMaterialInfo> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default)
+ {
+ specification ??= new WmsMaterialInfoSpecification();
+ return await (await GetDbSetAsync())
+ .IncludeDetails(includeDetails)
+ .WhereIf(!filter.IsNullOrWhiteSpace(),
+ u => u.MaterialNo.Contains(filter) ||
+ u.MaterialName.Contains(filter) ||
+ u.MaterialModel.Contains(filter) ||
+ u.MaterialBatch.Contains(filter) ||
+ u.SupplierCode.Contains(filter))
+ // 精确查询条件
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialNo), u => u.MaterialNo.Contains(materialInfo.MaterialNo))
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialName), u => u.MaterialName.Contains(materialInfo.MaterialName))
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialModel), u => u.MaterialModel.Contains(materialInfo.MaterialModel))
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialBatch), u => u.MaterialBatch == materialInfo.MaterialBatch)
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.SupplierCode), u => u.SupplierCode == materialInfo.SupplierCode)
+ .OrderBy(sorting)
+ .PageBy(skipCount, maxResultCount)
+ .ToListAsync(GetCancellationToken(cancellationToken));
+ }
+
+ /// <inheritdoc />
+ public async Task<long> GetCountAsync(WmsMaterialInfo? materialInfo, string filter = null, Specification<WmsMaterialInfo> specification = null, CancellationToken cancellationToken = default)
+ {
+ specification ??= new WmsMaterialInfoSpecification();
+ return await (await GetQueryableAsync())
+ .WhereIf(!filter.IsNullOrWhiteSpace(),
+ u => u.MaterialNo.Contains(filter) ||
+ u.MaterialName.Contains(filter) ||
+ u.MaterialModel.Contains(filter) ||
+ u.MaterialBatch.Contains(filter) ||
+ u.SupplierCode.Contains(filter))
+ // 精确查询条件
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialNo), u => u.MaterialNo.Contains(materialInfo.MaterialNo))
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialName), u => u.MaterialName.Contains(materialInfo.MaterialName))
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialModel), u => u.MaterialModel.Contains(materialInfo.MaterialModel))
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.MaterialBatch), u => u.MaterialBatch == materialInfo.MaterialBatch)
+ .WhereIf(!string.IsNullOrEmpty(materialInfo?.SupplierCode), u => u.SupplierCode == materialInfo.SupplierCode)
+ .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
+ }
+
+ /// <inheritdoc />
+ public override async Task<IQueryable<WmsMaterialInfo>> WithDetailsAsync()
+ {
+ return (await GetQueryableAsync()).IncludeDetails();
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
index 4e491d3..86b12d4 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
@@ -2,6 +2,7 @@
using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks;
using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
using Microsoft.EntityFrameworkCore;
+using SqlKata;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Specifications;
@@ -25,6 +26,7 @@
{
return await (await GetDbSetAsync())
.IncludeDetails()
+ .Where(u => !u.IsDeleted)
.OrderBy(t => t.Sort)
.FirstOrDefaultAsync(t => t.MaterialNo == materialNo, GetCancellationToken(cancellationToken));
}
@@ -32,19 +34,22 @@
/// <inheritdoc />
public async Task<bool> NameExistAsync(string materialNo, Guid? id = null)
{
- return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).AnyAsync(x => x.MaterialNo == materialNo);
+ return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id)
+ .Where(u => !u.IsDeleted).AnyAsync(x => x.MaterialNo == materialNo);
}
/// <inheritdoc />
public async Task<int> GetMaxSortAsync()
{
- var hasAny = await (await GetQueryableAsync()).AnyAsync();
+ var hasAny = await (await GetQueryableAsync())
+ .Where(u => !u.IsDeleted).AnyAsync();
if (!hasAny)
{
return 1;
}
- var sort = await (await GetQueryableAsync()).MaxAsync(x => x.Sort);
+ var sort = await (await GetQueryableAsync())
+ .Where(u => !u.IsDeleted).MaxAsync(x => x.Sort);
return sort + 1;
}
@@ -52,7 +57,7 @@
public async Task<List<WmsMaterialStock>> GetListAsync(WmsMaterialStock? stock, DateTime? startTime = null, DateTime? endTime = null, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsMaterialStock> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default)
{
specification ??= new WmsMaterialStockSpecification();
- return await (await GetDbSetAsync())
+ var baseQuery = (await GetDbSetAsync())
.IncludeDetails(includeDetails)
.WhereIf(!filter.IsNullOrWhiteSpace(),
u => u.MaterialNo.Contains(filter) ||
@@ -76,16 +81,66 @@
.WhereIf(stock.IsLock > 0, u => u.IsLock == stock.IsLock)
.WhereIf(startTime.HasValue, u => u.InStockTime >= startTime.Value)
.WhereIf(endTime.HasValue, u => u.InStockTime <= endTime.Value)
+ .Where(u => !u.IsDeleted)
+ .AsQueryable();
+
+ var materialList = await baseQuery
+ .Select(x => new
+ {
+ x.MaterialNo,
+ x.MaterialName,
+ x.PlaceNo,
+ x.ContainerNo,
+ x.ContainerStatus,
+ x.PlaceStatus,
+ x.StorageTypeNo,
+ x.MaterialBatch,
+ x.MaterialModel,
+ x.AreaCode,
+ x.AreaName,
+ x.CheckStatus,
+ x.IsLock,
+ x.EmptyContainer,
+ x.InStockTime
+ })
+ .ToListAsync(GetCancellationToken(cancellationToken));
+
+ var groupedData = materialList
+ .GroupBy(x => new { x.MaterialNo, x.PlaceNo, x.ContainerNo, x.MaterialName })
+ .Select(g => new WmsMaterialStock
+ {
+ MaterialNo = g.Key.MaterialNo,
+ MaterialName = g.Key.MaterialName,
+ PlaceNo = g.Key.PlaceNo,
+ ContainerNo = g.Key.ContainerNo,
+ ContainerStatus = g.First().ContainerStatus,
+ PlaceStatus = g.First().PlaceStatus,
+ StorageTypeNo = g.First().StorageTypeNo,
+ MaterialBatch = g.First().MaterialBatch,
+ MaterialModel = g.First().MaterialModel,
+ AreaCode = g.First().AreaCode,
+ AreaName = g.First().AreaName,
+ CheckStatus = g.First().CheckStatus,
+ IsLock = g.First().IsLock,
+ EmptyContainer = g.First().EmptyContainer,
+ InStockTime = g.First().InStockTime,
+ StockNumber = g.Count()
+ })
+ .AsQueryable(); // 转换回IQueryable以支持后续操作
+
+ var result = groupedData
.OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterialStock.Sort) : sorting)
.PageBy(skipCount, maxResultCount)
- .ToListAsync(GetCancellationToken(cancellationToken));
+ .ToList();
+
+ return result;
}
/// <inheritdoc />
public async Task<long> GetCountAsync(WmsMaterialStock? stock, DateTime? startTime = null, DateTime? endTime = null, string filter = null, Specification<WmsMaterialStock> specification = null, CancellationToken cancellationToken = default)
{
specification ??= new WmsMaterialStockSpecification();
- return await (await GetQueryableAsync())
+ var baseQuery = (await GetQueryableAsync())
.WhereIf(!filter.IsNullOrWhiteSpace(),
u => u.MaterialNo.Contains(filter) ||
u.MaterialName.Contains(filter) ||
@@ -108,12 +163,60 @@
.WhereIf(stock.IsLock > 0, u => u.IsLock == stock.IsLock)
.WhereIf(startTime.HasValue, u => u.InStockTime >= startTime.Value)
.WhereIf(endTime.HasValue, u => u.InStockTime <= endTime.Value)
- .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
+ .Where(u => !u.IsDeleted)
+ .AsQueryable();
+
+ var materialList = await baseQuery
+ .Select(x => new
+ {
+ x.MaterialNo,
+ x.MaterialName,
+ x.PlaceNo,
+ x.ContainerNo,
+ x.ContainerStatus,
+ x.PlaceStatus,
+ x.StorageTypeNo,
+ x.MaterialBatch,
+ x.MaterialModel,
+ x.AreaCode,
+ x.AreaName,
+ x.CheckStatus,
+ x.IsLock,
+ x.EmptyContainer,
+ x.InStockTime
+ })
+ .ToListAsync(GetCancellationToken(cancellationToken));
+
+ var groupedData = materialList
+ .GroupBy(x => new { x.MaterialNo, x.PlaceNo, x.ContainerNo, x.MaterialName })
+ .Select(g => new WmsMaterialStock
+ {
+ MaterialNo = g.Key.MaterialNo,
+ MaterialName = g.Key.MaterialName,
+ PlaceNo = g.Key.PlaceNo,
+ ContainerNo = g.Key.ContainerNo,
+ ContainerStatus = g.First().ContainerStatus,
+ PlaceStatus = g.First().PlaceStatus,
+ StorageTypeNo = g.First().StorageTypeNo,
+ MaterialBatch = g.First().MaterialBatch,
+ MaterialModel = g.First().MaterialModel,
+ AreaCode = g.First().AreaCode,
+ AreaName = g.First().AreaName,
+ CheckStatus = g.First().CheckStatus,
+ IsLock = g.First().IsLock,
+ EmptyContainer = g.First().EmptyContainer,
+ InStockTime = g.First().InStockTime,
+ StockNumber = g.Count()
+ })
+ .AsQueryable(); // 转换回IQueryable以支持后续操作
+
+ return groupedData.Count();
}
/// <inheritdoc />
public override async Task<IQueryable<WmsMaterialStock>> WithDetailsAsync()
{
- return (await GetQueryableAsync()).IncludeDetails();
+ return (await GetQueryableAsync()).IncludeDetails()
+ .Where(u => !u.IsDeleted);
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
index 69c16c1..204efe4 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
@@ -38,6 +38,7 @@
builder.ConfigureWmsPlace();
builder.ConfigureWmsMaterial();
builder.ConfigureWmsMaterialStock();
+ builder.ConfigureWmsMaterialInfo();
/* Configure your own tables/entities inside here */
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs
new file mode 100644
index 0000000..d34dfb9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs
@@ -0,0 +1,998 @@
+锘�// <auto-generated />
+using System;
+using CMS.Plugin.HIAWms.MySQL;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+ [DbContext(typeof(CMSPluginDbContext))]
+ [Migration("20250505105851_InitialCreate2")]
+ partial class InitialCreate2
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
+ .HasAnnotation("ProductVersion", "6.0.16")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("AreaDesc")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鎻忚堪");
+
+ b.Property<string>("AreaName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("搴撳尯鍚嶇О");
+
+ b.Property<string>("AreaNo")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("搴撳尯缂栧彿");
+
+ b.Property<int>("AreaStatus")
+ .HasColumnType("int")
+ .HasComment("搴撳尯鐘舵��");
+
+ b.Property<int>("AreaType")
+ .HasColumnType("int")
+ .HasComment("搴撳尯绫诲瀷");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<string>("StoreCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("浠撳簱浠g爜");
+
+ b.Property<string>("StoreName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("浠撳簱鍚嶇О");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaName");
+
+ b.ToTable("scms_wmsareas", (string)null);
+
+ b.HasComment("搴撳尯琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<string>("ContainerNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鎵樼洏缂栧彿");
+
+ b.Property<int>("ContainerStatus")
+ .HasColumnType("int")
+ .HasComment("鎵樼洏鐘舵��");
+
+ b.Property<int>("ContainerType")
+ .HasColumnType("int")
+ .HasComment("鎵樼洏绫诲瀷");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int?>("ExceptionNumber")
+ .HasColumnType("int")
+ .HasComment("寮傚父鏁伴噺");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<decimal?>("LimitHeight")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闄愰珮");
+
+ b.Property<decimal?>("LimitLength")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闄愰暱");
+
+ b.Property<decimal?>("LimitWidth")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闄愬");
+
+ b.Property<int?>("MaterialNumber")
+ .HasColumnType("int")
+ .HasComment("鐗╂枡鏁伴噺");
+
+ b.Property<decimal?>("MaxWeight")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("杞介噸涓婇檺");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<decimal?>("SpecHeight")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("楂樺害");
+
+ b.Property<decimal?>("SpecLength")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闀垮害");
+
+ b.Property<decimal?>("SpecWidth")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("瀹藉害");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContainerNo")
+ .IsUnique();
+
+ b.HasIndex("ContainerStatus");
+
+ b.HasIndex("ContainerType");
+
+ b.ToTable("scms_wmscontainers", (string)null);
+
+ b.HasComment("鎵樼洏淇℃伅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialInfos.WmsMaterialInfo", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<int?>("CheckStatus")
+ .HasColumnType("int")
+ .HasComment("妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("MaterialBatch")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鐗╂枡鎵瑰彿");
+
+ b.Property<string>("MaterialId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡鍞竴鐮�");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鐗╂枡浠e彿");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁1");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁2");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁3");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<int?>("StockNumber")
+ .HasColumnType("int")
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property<string>("SupplierCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CheckStatus");
+
+ b.HasIndex("MaterialBatch");
+
+ b.HasIndex("MaterialId")
+ .IsUnique();
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialNo")
+ .IsUnique();
+
+ b.HasIndex("SupplierCode");
+
+ b.ToTable("scms_wmsmaterialinfos", (string)null);
+
+ b.HasComment("WMS鐗╂枡淇℃伅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("Certification")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("璇佷功缂栧彿");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<string>("Factory")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐢熶骇宸ュ巶");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("IsMainBranch")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(2)
+ .HasComment("鏄惁涓轰富鏀");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<decimal>("Length")
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闀垮害锛堝崟浣嶏細m锛�");
+
+ b.Property<string>("MaterialCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialQuality")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鏉愯川锛堝锛�304涓嶉攬閽級");
+
+ b.Property<int>("MaterialType")
+ .HasColumnType("int")
+ .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級");
+
+ b.Property<decimal>("OuterDiameter")
+ .HasColumnType("decimal(18,2)")
+ .HasComment("澶栧緞锛堝崟浣嶏細mm锛�");
+
+ b.Property<string>("PrimaryUnit")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�");
+
+ b.Property<int>("PurchaseType")
+ .HasColumnType("int")
+ .HasComment("閲囪喘绫诲瀷锛堟灇涓惧�硷級");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<string>("Standard")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�");
+
+ b.Property<decimal>("WallThickness")
+ .HasColumnType("decimal(18,2)")
+ .HasComment("澹佸帤锛堝崟浣嶏細mm锛�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MaterialCode")
+ .IsUnique();
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialType");
+
+ b.HasIndex("PurchaseType");
+
+ b.ToTable("scms_wmsmaterials", (string)null);
+
+ b.HasComment("鐗╂枡鍩虹淇℃伅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialStocks.WmsMaterialStock", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("AreaCode")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鍖哄煙缂栧彿");
+
+ b.Property<string>("AreaName")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("搴撳尯鍚嶇О");
+
+ b.Property<int?>("CheckStatus")
+ .HasColumnType("int")
+ .HasComment("妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<string>("ContainerNo")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("瀹瑰櫒缂栧彿");
+
+ b.Property<int>("ContainerStatus")
+ .HasColumnType("int")
+ .HasComment("瀹瑰櫒鐘舵��");
+
+ b.Property<int>("ContainerType")
+ .HasColumnType("int")
+ .HasComment("瀹瑰櫒绫诲瀷");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int>("EmptyContainer")
+ .HasColumnType("int")
+ .HasComment("鏄惁绌烘墭(2:鍚�,1:鏄�)");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<DateTime?>("InStockTime")
+ .HasColumnType("datetime(6)")
+ .HasComment("鍏ュ簱鏃堕棿");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("IsLock")
+ .HasColumnType("int")
+ .HasComment("鏄惁閿佸畾(2:鏈攣瀹�,1:宸查攣瀹�)");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("MaterialBatch")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡鎵规");
+
+ b.Property<string>("MaterialId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡ID");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialNo")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡缂栧彿");
+
+ b.Property<string>("PlaceNo")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("搴撲綅缂栧彿");
+
+ b.Property<int>("PlaceStatus")
+ .HasColumnType("int")
+ .HasComment("搴撲綅鐘舵��;");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<int>("StockNumber")
+ .HasColumnType("int")
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property<int>("StorageTypeNo")
+ .HasColumnType("int")
+ .HasComment("搴撲綅绫诲瀷");
+
+ b.Property<string>("SupplierCode")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaCode");
+
+ b.HasIndex("ContainerNo");
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialNo")
+ .IsUnique();
+
+ b.HasIndex("PlaceNo");
+
+ b.HasIndex("MaterialBatch", "SupplierCode");
+
+ b.ToTable("scms_wmsmaterialstocks", (string)null);
+
+ b.HasComment("WMS鐗╂枡搴撳瓨琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<int>("Aisle")
+ .HasColumnType("int")
+ .HasComment("宸烽亾");
+
+ b.Property<string>("AreaCode")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鎵�鍦ㄥ簱鍖�");
+
+ b.Property<int>("ColumnNo")
+ .HasColumnType("int")
+ .HasComment("鍒�");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int>("EmptyContainer")
+ .HasColumnType("int")
+ .HasComment("鏄惁绌烘墭");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("Islock")
+ .HasColumnType("int")
+ .HasComment("鏄惁閿佸畾");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<int>("LayerNo")
+ .HasColumnType("int")
+ .HasComment("灞�");
+
+ b.Property<string>("PlaceNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("缂栧彿");
+
+ b.Property<int>("PlaceStatus")
+ .HasColumnType("int")
+ .HasComment("璐т綅鐘舵��");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("RowNo")
+ .HasColumnType("int")
+ .HasComment("鎺�");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<int>("StorageTypeNo")
+ .HasColumnType("int")
+ .HasComment("璐т綅绫诲瀷");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaCode");
+
+ b.HasIndex("PlaceNo")
+ .IsUnique();
+
+ b.HasIndex("PlaceStatus");
+
+ b.HasIndex("StorageTypeNo");
+
+ b.ToTable("scms_wmsplaces", (string)null);
+
+ b.HasComment("搴撲綅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<string>("StoreCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("浠撳簱浠g爜");
+
+ b.Property<string>("StoreName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("浠撳簱鍚嶇О");
+
+ b.HasKey("Id");
+
+ b.HasIndex("StoreName");
+
+ b.ToTable("scms_wmsstores", (string)null);
+
+ b.HasComment("浠撳簱淇℃伅琛�");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.cs
new file mode 100644
index 0000000..e9f63c4
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.cs
@@ -0,0 +1,196 @@
+锘縰sing System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+ public partial class InitialCreate2 : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "scms_wmsmaterialinfos",
+ columns: table => new
+ {
+ Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
+ MaterialNo = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "鐗╂枡浠e彿")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ MaterialName = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false, comment: "鐗╂枡鍚嶇О")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ MaterialModel = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "鏈哄瀷/瑙勬牸")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ MaterialId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡鍞竴鐮�")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ StockNumber = table.Column<int>(type: "int", nullable: true, comment: "搴撳瓨鏁伴噺"),
+ MaterialBatch = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "鐗╂枡鎵瑰彿")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ SupplierCode = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "渚涘簲鍟嗙紪鍙�")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ CheckStatus = table.Column<int>(type: "int", nullable: true, comment: "妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)"),
+ RedundantField1 = table.Column<string>(type: "varchar(255)", maxLength: 255, nullable: true, comment: "鍐椾綑瀛楁1")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ RedundantField2 = table.Column<string>(type: "varchar(255)", maxLength: 255, nullable: true, comment: "鍐椾綑瀛楁2")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ RedundantField3 = table.Column<string>(type: "varchar(255)", maxLength: 255, nullable: true, comment: "鍐椾綑瀛楁3")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "鎺掑簭"),
+ Remark = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: true, comment: "澶囨敞")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "鏄惁绂佺敤"),
+ ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
+ CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+ LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
+ LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+ IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
+ DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+ DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_scms_wmsmaterialinfos", x => x.Id);
+ },
+ comment: "WMS鐗╂枡淇℃伅琛�")
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.CreateTable(
+ name: "scms_wmsmaterialstocks",
+ columns: table => new
+ {
+ Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
+ MaterialId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡ID")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ MaterialName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "鐗╂枡鍚嶇О")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ ContainerNo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "瀹瑰櫒缂栧彿")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ ContainerStatus = table.Column<int>(type: "int", nullable: false, comment: "瀹瑰櫒鐘舵��"),
+ ContainerType = table.Column<int>(type: "int", nullable: false, comment: "瀹瑰櫒绫诲瀷"),
+ MaterialNo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡缂栧彿")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ StockNumber = table.Column<int>(type: "int", nullable: false, comment: "搴撳瓨鏁伴噺"),
+ MaterialBatch = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鐗╂枡鎵规")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ SupplierCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "渚涘簲鍟嗙紪鍙�")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ MaterialModel = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "鏈哄瀷/瑙勬牸")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ PlaceNo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "搴撲綅缂栧彿")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ PlaceStatus = table.Column<int>(type: "int", nullable: false, comment: "搴撲綅鐘舵��;"),
+ StorageTypeNo = table.Column<int>(type: "int", nullable: false, comment: "搴撲綅绫诲瀷"),
+ AreaCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "鍖哄煙缂栧彿")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ AreaName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "搴撳尯鍚嶇О")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ CheckStatus = table.Column<int>(type: "int", nullable: true, comment: "妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)"),
+ IsLock = table.Column<int>(type: "int", nullable: false, comment: "鏄惁閿佸畾(2:鏈攣瀹�,1:宸查攣瀹�)"),
+ EmptyContainer = table.Column<int>(type: "int", nullable: false, comment: "鏄惁绌烘墭(2:鍚�,1:鏄�)"),
+ InStockTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍏ュ簱鏃堕棿"),
+ Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "鎺掑簭"),
+ Remark = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: true, comment: "澶囨敞")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ RedundantField1 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ RedundantField2 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ RedundantField3 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��")
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "鏄惁绂佺敤"),
+ ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4"),
+ CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
+ CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+ LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true),
+ LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+ IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false),
+ DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
+ DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_scms_wmsmaterialstocks", x => x.Id);
+ },
+ comment: "WMS鐗╂枡搴撳瓨琛�")
+ .Annotation("MySql:CharSet", "utf8mb4");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialinfos_CheckStatus",
+ table: "scms_wmsmaterialinfos",
+ column: "CheckStatus");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialinfos_MaterialBatch",
+ table: "scms_wmsmaterialinfos",
+ column: "MaterialBatch");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialinfos_MaterialId",
+ table: "scms_wmsmaterialinfos",
+ column: "MaterialId",
+ unique: true);
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialinfos_MaterialName",
+ table: "scms_wmsmaterialinfos",
+ column: "MaterialName");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialinfos_MaterialNo",
+ table: "scms_wmsmaterialinfos",
+ column: "MaterialNo",
+ unique: true);
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialinfos_SupplierCode",
+ table: "scms_wmsmaterialinfos",
+ column: "SupplierCode");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialstocks_AreaCode",
+ table: "scms_wmsmaterialstocks",
+ column: "AreaCode");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialstocks_ContainerNo",
+ table: "scms_wmsmaterialstocks",
+ column: "ContainerNo");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialstocks_MaterialBatch_SupplierCode",
+ table: "scms_wmsmaterialstocks",
+ columns: new[] { "MaterialBatch", "SupplierCode" });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialstocks_MaterialName",
+ table: "scms_wmsmaterialstocks",
+ column: "MaterialName");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialstocks_MaterialNo",
+ table: "scms_wmsmaterialstocks",
+ column: "MaterialNo",
+ unique: true);
+
+ migrationBuilder.CreateIndex(
+ name: "IX_scms_wmsmaterialstocks_PlaceNo",
+ table: "scms_wmsmaterialstocks",
+ column: "PlaceNo");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "scms_wmsmaterialinfos");
+
+ migrationBuilder.DropTable(
+ name: "scms_wmsmaterialstocks");
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs
new file mode 100644
index 0000000..a1f1d07
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs
@@ -0,0 +1,1003 @@
+锘�// <auto-generated />
+using System;
+using CMS.Plugin.HIAWms.MySQL;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+ [DbContext(typeof(CMSPluginDbContext))]
+ [Migration("20250505121050_InitialCreate3")]
+ partial class InitialCreate3
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
+ .HasAnnotation("ProductVersion", "6.0.16")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("AreaDesc")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鎻忚堪");
+
+ b.Property<string>("AreaName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("搴撳尯鍚嶇О");
+
+ b.Property<string>("AreaNo")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("搴撳尯缂栧彿");
+
+ b.Property<int>("AreaStatus")
+ .HasColumnType("int")
+ .HasComment("搴撳尯鐘舵��");
+
+ b.Property<int>("AreaType")
+ .HasColumnType("int")
+ .HasComment("搴撳尯绫诲瀷");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<string>("StoreCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("浠撳簱浠g爜");
+
+ b.Property<string>("StoreName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("浠撳簱鍚嶇О");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaName");
+
+ b.ToTable("scms_wmsareas", (string)null);
+
+ b.HasComment("搴撳尯琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<string>("ContainerNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鎵樼洏缂栧彿");
+
+ b.Property<int>("ContainerStatus")
+ .HasColumnType("int")
+ .HasComment("鎵樼洏鐘舵��");
+
+ b.Property<int>("ContainerType")
+ .HasColumnType("int")
+ .HasComment("鎵樼洏绫诲瀷");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int?>("ExceptionNumber")
+ .HasColumnType("int")
+ .HasComment("寮傚父鏁伴噺");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<decimal?>("LimitHeight")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闄愰珮");
+
+ b.Property<decimal?>("LimitLength")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闄愰暱");
+
+ b.Property<decimal?>("LimitWidth")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闄愬");
+
+ b.Property<int?>("MaterialNumber")
+ .HasColumnType("int")
+ .HasComment("鐗╂枡鏁伴噺");
+
+ b.Property<decimal?>("MaxWeight")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("杞介噸涓婇檺");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<decimal?>("SpecHeight")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("楂樺害");
+
+ b.Property<decimal?>("SpecLength")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闀垮害");
+
+ b.Property<decimal?>("SpecWidth")
+ .HasPrecision(18, 2)
+ .HasColumnType("decimal(18,2)")
+ .HasComment("瀹藉害");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContainerNo")
+ .IsUnique();
+
+ b.HasIndex("ContainerStatus");
+
+ b.HasIndex("ContainerType");
+
+ b.ToTable("scms_wmscontainers", (string)null);
+
+ b.HasComment("鎵樼洏淇℃伅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialInfos.WmsMaterialInfo", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<int?>("CheckStatus")
+ .HasColumnType("int")
+ .HasComment("妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("MaterialBatch")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鐗╂枡鎵瑰彿");
+
+ b.Property<string>("MaterialId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡鍞竴鐮�");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鐗╂枡浠e彿");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁1");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁2");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁3");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<int?>("StockNumber")
+ .HasColumnType("int")
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property<string>("SupplierCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CheckStatus");
+
+ b.HasIndex("MaterialBatch");
+
+ b.HasIndex("MaterialId")
+ .IsUnique();
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialNo")
+ .IsUnique();
+
+ b.HasIndex("SupplierCode");
+
+ b.ToTable("scms_wmsmaterialinfos", (string)null);
+
+ b.HasComment("WMS鐗╂枡淇℃伅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("Certification")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("璇佷功缂栧彿");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<string>("Factory")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐢熶骇宸ュ巶");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("IsMainBranch")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(2)
+ .HasComment("鏄惁涓轰富鏀");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<decimal>("Length")
+ .HasColumnType("decimal(18,2)")
+ .HasComment("闀垮害锛堝崟浣嶏細m锛�");
+
+ b.Property<string>("MaterialCode")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鍨嬪彿");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialQuality")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鏉愯川锛堝锛�304涓嶉攬閽級");
+
+ b.Property<int>("MaterialType")
+ .HasColumnType("int")
+ .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級");
+
+ b.Property<decimal>("OuterDiameter")
+ .HasColumnType("decimal(18,2)")
+ .HasComment("澶栧緞锛堝崟浣嶏細mm锛�");
+
+ b.Property<string>("PrimaryUnit")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�");
+
+ b.Property<int>("PurchaseType")
+ .HasColumnType("int")
+ .HasComment("閲囪喘绫诲瀷锛堟灇涓惧�硷級");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<string>("Standard")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�");
+
+ b.Property<decimal>("WallThickness")
+ .HasColumnType("decimal(18,2)")
+ .HasComment("澹佸帤锛堝崟浣嶏細mm锛�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("MaterialCode")
+ .IsUnique();
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialType");
+
+ b.HasIndex("PurchaseType");
+
+ b.ToTable("scms_wmsmaterials", (string)null);
+
+ b.HasComment("鐗╂枡鍩虹淇℃伅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialStocks.WmsMaterialStock", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("AreaCode")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鍖哄煙缂栧彿");
+
+ b.Property<string>("AreaName")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("搴撳尯鍚嶇О");
+
+ b.Property<int?>("CheckStatus")
+ .HasColumnType("int")
+ .HasComment("妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<string>("ContainerNo")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("瀹瑰櫒缂栧彿");
+
+ b.Property<int>("ContainerStatus")
+ .HasColumnType("int")
+ .HasComment("瀹瑰櫒鐘舵��");
+
+ b.Property<int>("ContainerType")
+ .HasColumnType("int")
+ .HasComment("瀹瑰櫒绫诲瀷");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int>("EmptyContainer")
+ .HasColumnType("int")
+ .HasComment("鏄惁绌烘墭(2:鍚�,1:鏄�)");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<DateTime?>("InStockTime")
+ .HasColumnType("datetime(6)")
+ .HasComment("鍏ュ簱鏃堕棿");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("IsLock")
+ .HasColumnType("int")
+ .HasComment("鏄惁閿佸畾(2:鏈攣瀹�,1:宸查攣瀹�)");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("MaterialBatch")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡鎵规");
+
+ b.Property<string>("MaterialId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡ID");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialNo")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡缂栧彿");
+
+ b.Property<string>("PlaceNo")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("搴撲綅缂栧彿");
+
+ b.Property<int>("PlaceStatus")
+ .HasColumnType("int")
+ .HasComment("搴撲綅鐘舵��;");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<int>("StockNumber")
+ .HasColumnType("int")
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property<int>("StorageTypeNo")
+ .HasColumnType("int")
+ .HasComment("搴撲綅绫诲瀷");
+
+ b.Property<string>("SupplierCode")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaCode");
+
+ b.HasIndex("ContainerNo");
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialNo")
+ .IsUnique();
+
+ b.HasIndex("PlaceNo");
+
+ b.HasIndex("MaterialBatch", "SupplierCode");
+
+ b.ToTable("scms_wmsmaterialstocks", (string)null);
+
+ b.HasComment("WMS鐗╂枡搴撳瓨琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<int>("Aisle")
+ .HasColumnType("int")
+ .HasComment("宸烽亾");
+
+ b.Property<string>("AreaCode")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鎵�鍦ㄥ簱鍖�");
+
+ b.Property<int>("ColumnNo")
+ .HasColumnType("int")
+ .HasComment("鍒�");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int>("EmptyContainer")
+ .HasColumnType("int")
+ .HasComment("鏄惁绌烘墭");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("Islock")
+ .HasColumnType("int")
+ .HasComment("鏄惁閿佸畾");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<int>("LayerNo")
+ .HasColumnType("int")
+ .HasComment("灞�");
+
+ b.Property<string>("PlaceNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("缂栧彿");
+
+ b.Property<int>("PlaceStatus")
+ .HasColumnType("int")
+ .HasComment("璐т綅鐘舵��");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("RowNo")
+ .HasColumnType("int")
+ .HasComment("鎺�");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<int>("StorageTypeNo")
+ .HasColumnType("int")
+ .HasComment("璐т綅绫诲瀷");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaCode");
+
+ b.HasIndex("PlaceNo")
+ .IsUnique();
+
+ b.HasIndex("PlaceStatus");
+
+ b.HasIndex("StorageTypeNo");
+
+ b.ToTable("scms_wmsplaces", (string)null);
+
+ b.HasComment("搴撲綅琛�");
+ });
+
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .HasColumnType("int")
+ .HasComment("鎺掑簭");
+
+ b.Property<string>("StoreCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("浠撳簱浠g爜");
+
+ b.Property<string>("StoreName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("浠撳簱鍚嶇О");
+
+ b.HasKey("Id");
+
+ b.HasIndex("StoreName");
+
+ b.ToTable("scms_wmsstores", (string)null);
+
+ b.HasComment("浠撳簱淇℃伅琛�");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.cs
new file mode 100644
index 0000000..ea59180
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.cs
@@ -0,0 +1,28 @@
+锘縰sing Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+ public partial class InitialCreate3 : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn<string>(
+ name: "MaterialModel",
+ table: "scms_wmsmaterials",
+ type: "varchar(128)",
+ maxLength: 128,
+ nullable: true,
+ comment: "鍨嬪彿")
+ .Annotation("MySql:CharSet", "utf8mb4");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "MaterialModel",
+ table: "scms_wmsmaterials");
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
index 88d2312..6ec187c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -284,6 +284,144 @@
b.HasComment("鎵樼洏淇℃伅琛�");
});
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialInfos.WmsMaterialInfo", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<int?>("CheckStatus")
+ .HasColumnType("int")
+ .HasComment("妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("MaterialBatch")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鐗╂枡鎵瑰彿");
+
+ b.Property<string>("MaterialId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡鍞竴鐮�");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("鐗╂枡浠e彿");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁1");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁2");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasComment("鍐椾綑瀛楁3");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<int?>("StockNumber")
+ .HasColumnType("int")
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property<string>("SupplierCode")
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)")
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CheckStatus");
+
+ b.HasIndex("MaterialBatch");
+
+ b.HasIndex("MaterialId")
+ .IsUnique();
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialNo")
+ .IsUnique();
+
+ b.HasIndex("SupplierCode");
+
+ b.ToTable("scms_wmsmaterialinfos", (string)null);
+
+ b.HasComment("WMS鐗╂枡淇℃伅琛�");
+ });
+
modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b =>
{
b.Property<Guid>("Id")
@@ -362,6 +500,11 @@
.HasColumnType("varchar(64)")
.HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�");
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鍨嬪彿");
+
b.Property<string>("MaterialName")
.IsRequired()
.HasMaxLength(128)
@@ -441,6 +584,191 @@
b.HasComment("鐗╂枡鍩虹淇℃伅琛�");
});
+ modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialStocks.WmsMaterialStock", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property<string>("AreaCode")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鍖哄煙缂栧彿");
+
+ b.Property<string>("AreaName")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("搴撳尯鍚嶇О");
+
+ b.Property<int?>("CheckStatus")
+ .HasColumnType("int")
+ .HasComment("妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)");
+
+ b.Property<string>("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property<string>("ContainerNo")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("瀹瑰櫒缂栧彿");
+
+ b.Property<int>("ContainerStatus")
+ .HasColumnType("int")
+ .HasComment("瀹瑰櫒鐘舵��");
+
+ b.Property<int>("ContainerType")
+ .HasColumnType("int")
+ .HasComment("瀹瑰櫒绫诲瀷");
+
+ b.Property<DateTime>("CreationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("CreationTime");
+
+ b.Property<Guid?>("CreatorId")
+ .HasColumnType("char(36)")
+ .HasColumnName("CreatorId");
+
+ b.Property<Guid?>("DeleterId")
+ .HasColumnType("char(36)")
+ .HasColumnName("DeleterId");
+
+ b.Property<DateTime?>("DeletionTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("DeletionTime");
+
+ b.Property<int>("EmptyContainer")
+ .HasColumnType("int")
+ .HasComment("鏄惁绌烘墭(2:鍚�,1:鏄�)");
+
+ b.Property<string>("ExtraProperties")
+ .HasColumnType("longtext")
+ .HasColumnName("ExtraProperties");
+
+ b.Property<DateTime?>("InStockTime")
+ .HasColumnType("datetime(6)")
+ .HasComment("鍏ュ簱鏃堕棿");
+
+ b.Property<bool>("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property<bool?>("IsDisabled")
+ .HasColumnType("tinyint(1)")
+ .HasComment("鏄惁绂佺敤");
+
+ b.Property<int>("IsLock")
+ .HasColumnType("int")
+ .HasComment("鏄惁閿佸畾(2:鏈攣瀹�,1:宸查攣瀹�)");
+
+ b.Property<DateTime?>("LastModificationTime")
+ .HasColumnType("datetime(6)")
+ .HasColumnName("LastModificationTime");
+
+ b.Property<Guid?>("LastModifierId")
+ .HasColumnType("char(36)")
+ .HasColumnName("LastModifierId");
+
+ b.Property<string>("MaterialBatch")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡鎵规");
+
+ b.Property<string>("MaterialId")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡ID");
+
+ b.Property<string>("MaterialModel")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鏈哄瀷/瑙勬牸");
+
+ b.Property<string>("MaterialName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasComment("鐗╂枡鍚嶇О");
+
+ b.Property<string>("MaterialNo")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("鐗╂枡缂栧彿");
+
+ b.Property<string>("PlaceNo")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("搴撲綅缂栧彿");
+
+ b.Property<int>("PlaceStatus")
+ .HasColumnType("int")
+ .HasComment("搴撲綅鐘舵��;");
+
+ b.Property<string>("RedundantField1")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField2")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("RedundantField3")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)")
+ .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+ b.Property<string>("Remark")
+ .HasMaxLength(500)
+ .HasColumnType("varchar(500)")
+ .HasComment("澶囨敞");
+
+ b.Property<int>("Sort")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(0)
+ .HasComment("鎺掑簭");
+
+ b.Property<int>("StockNumber")
+ .HasColumnType("int")
+ .HasComment("搴撳瓨鏁伴噺");
+
+ b.Property<int>("StorageTypeNo")
+ .HasColumnType("int")
+ .HasComment("搴撲綅绫诲瀷");
+
+ b.Property<string>("SupplierCode")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasComment("渚涘簲鍟嗙紪鍙�");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AreaCode");
+
+ b.HasIndex("ContainerNo");
+
+ b.HasIndex("MaterialName");
+
+ b.HasIndex("MaterialNo")
+ .IsUnique();
+
+ b.HasIndex("PlaceNo");
+
+ b.HasIndex("MaterialBatch", "SupplierCode");
+
+ b.ToTable("scms_wmsmaterialstocks", (string)null);
+
+ b.HasComment("WMS鐗╂枡搴撳瓨琛�");
+ });
+
modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b =>
{
b.Property<Guid>("Id")
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
index 101a898..5254e36 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
@@ -1,5 +1,5 @@
cd ../
-dotnet ef migrations add InitialCreate1 -c CMSPluginDbContext -o Migrations
+dotnet ef migrations add InitialCreate3 -c CMSPluginDbContext -o Migrations
::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations
::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations
::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
index de77d36..dac2f4d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
@@ -38,6 +38,7 @@
builder.ConfigureWmsPlace();
builder.ConfigureWmsMaterial();
builder.ConfigureWmsMaterialStock();
+ builder.ConfigureWmsMaterialInfo();
/* Configure your own tables/entities inside here */
//builder.Entity<YourEntity>(b =>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
index 7a4e331..74d194a 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
@@ -38,6 +38,7 @@
builder.ConfigureWmsPlace();
builder.ConfigureWmsMaterial();
builder.ConfigureWmsMaterialStock();
+ builder.ConfigureWmsMaterialInfo();
/* Configure your own tables/entities inside here */
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialInfoController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialInfoController.cs
new file mode 100644
index 0000000..5a15adb
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialInfoController.cs
@@ -0,0 +1,187 @@
+using Ao.Lang;
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using MiniExcelLibs;
+using System.Reflection;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Controller
+{
+ /// <summary>
+ /// WmsMaterialInfo鏈嶅姟
+ /// </summary>
+ [ApiController]
+ [TypeFilter(typeof(CMSLanguageFilter))]
+ [TypeFilter(typeof(CMSUowActionFilter))]
+ [TypeFilter(typeof(CMSAuditActionFilter))]
+ [TypeFilter(typeof(CMSExceptionFilter))]
+ [Route("api/v{version:apiVersion}/HIAWms/[controller]")]
+ public class WmsMaterialInfoController : ControllerBase
+ {
+ private readonly IWmsMaterialInfoAppService _wmsmaterialinfoAppService;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsMaterialInfoController"/> class.
+ /// </summary>
+ /// <param name="wmsmaterialinfoAppService">The wmsmaterialinfo application service.</param>
+ public WmsMaterialInfoController(IWmsMaterialInfoAppService wmsmaterialinfoAppService)
+ {
+ _wmsmaterialinfoAppService = wmsmaterialinfoAppService;
+ }
+
+ /// <summary>
+ /// 鑾峰彇wmsmaterialinfo.
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("{id}")]
+ public virtual Task<WmsMaterialInfoDto> GetAsync(Guid id)
+ {
+ return _wmsmaterialinfoAppService.GetAsync(id);
+ }
+
+ /// <summary>
+ /// 鑾峰彇wmsmaterialinfo鐨勫垪琛�.
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ [HttpGet]
+ public virtual Task<PagedResultDto<WmsMaterialInfoDto>> GetListAsync([FromQuery] GetWmsMaterialInfosInput input)
+ {
+ return _wmsmaterialinfoAppService.GetListAsync(input);
+ }
+
+ /// <summary>
+ /// 鍒涘缓wmsmaterialinfo.
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ public virtual Task<WmsMaterialInfoDto> CreateAsync(WmsMaterialInfoCreateDto input)
+ {
+ return _wmsmaterialinfoAppService.CreateAsync(input);
+ }
+
+ /// <summary>
+ /// 鏇存柊wmsmaterialinfo.
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPut]
+ [Route("{id}")]
+ public virtual Task<WmsMaterialInfoDto> UpdateAsync(Guid id, WmsMaterialInfoUpdateDto input)
+ {
+ return _wmsmaterialinfoAppService.UpdateAsync(id, input);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕WmsMaterialInfo.
+ /// </summary>
+ /// <param name="ids">Id闆嗗悎.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ [Route("Clone")]
+ public virtual Task<List<WmsMaterialInfoDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsmaterialinfoAppService.CloneAsync(ids);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎wmsmaterialinfo.
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ [Route("{id}")]
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return _wmsmaterialinfoAppService.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎wmsmaterialinfo.
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsmaterialinfoAppService.DeleteManyAsync(ids);
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭.
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpPut]
+ [Route("{id}/AdjustSort/{sort}")]
+ public virtual Task AdjustSortAsync(Guid id, int sort)
+ {
+ return _wmsmaterialinfoAppService.AdjustSortAsync(id, sort);
+ }
+
+ /// <summary>
+ /// 瀵煎叆wmsmaterialinfo.
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ [Route("Import")]
+ public virtual async Task<IActionResult> ImportAsync(IFormFile file)
+ {
+ using var stream = new MemoryStream();
+ await file.CopyToAsync(stream);
+ stream.Seek(0L, SeekOrigin.Begin);
+
+ var sheetNames = stream.GetSheetNames();
+ var wmsmaterialinfoRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialInfosImportModel.WmsMaterialInfoImportModel>(stream, sheetName: "閰嶇疆").ToList() : new();
+
+ if (!wmsmaterialinfoRows.Any())
+ {
+ throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸");
+ }
+
+ await _wmsmaterialinfoAppService.ImportAsync(new WmsMaterialInfosImportModel
+ {
+ WmsMaterialInfos = wmsmaterialinfoRows,
+ });
+
+ return Ok();
+ }
+
+ /// <summary>
+ /// 瀵煎嚭wmsmaterialinfo.
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Export")]
+ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInfosInput input)
+ {
+ input.MaxResultCount = int.MaxValue;
+ var exportData = await _wmsmaterialinfoAppService.ExportAsync(input);
+ var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterialInfo瀵煎嚭妯℃澘.xlsx");
+ if (!System.IO.File.Exists(templatePath))
+ {
+ templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsMaterialInfo瀵煎嚭妯℃澘.xlsx");
+ }
+
+ var memoryStream = new MemoryStream();
+ await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets);
+ memoryStream.Seek(0L, SeekOrigin.Begin);
+ return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" };
+ }
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs
index 07c65ab..de889ce 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsPlaceController.cs
@@ -52,7 +52,7 @@
/// <param name="input">杈撳叆.</param>
/// <returns></returns>
[HttpGet]
- public virtual Task<PagedResultDto<WmsPlaceDto>> GetListAsync([FromQuery] GetWmsPlacesInput input)
+ public virtual Task<PagedResultDto<WmsPlaceDto>> GetListAsync([FromQuery] GetWmsMaterialInfoInput input)
{
return _wmsplaceAppService.GetListAsync(input);
}
@@ -168,7 +168,7 @@
/// <returns></returns>
[HttpGet]
[Route("Export")]
- public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsPlacesInput input)
+ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInfoInput input)
{
input.MaxResultCount = int.MaxValue;
var exportData = await _wmsplaceAppService.ExportAsync(input);
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialInfo\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialInfo\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..4e15cde
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialInfo\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
index 59dee9c..0f7d92e 100644
--- "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialStock\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git a/HIAWms/web/components.d.ts b/HIAWms/web/components.d.ts
index dfdfd24..135cdd6 100644
--- a/HIAWms/web/components.d.ts
+++ b/HIAWms/web/components.d.ts
@@ -22,6 +22,7 @@
ElButton: typeof import('element-plus/es')['ElButton']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
+ ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDrawer: typeof import('element-plus/es')['ElDrawer']
diff --git a/HIAWms/web/src/config/menu.ts b/HIAWms/web/src/config/menu.ts
index 1a0aaf6..39897c5 100644
--- a/HIAWms/web/src/config/menu.ts
+++ b/HIAWms/web/src/config/menu.ts
@@ -7,6 +7,13 @@
"notPage": false
},
{
+ "name": "搴撳瓨淇℃伅",
+ "path": "/information-base/WmsMaterialStock",
+ "patchName": "WmsMaterialStock",
+ "icon": "p",
+ "notPage": false
+ },
+ {
"name": "Wms鎵樼洏绠$悊",
"path": "/information-base/WmsContainer",
"patchName": "WmsContainer",
@@ -36,6 +43,13 @@
"icon": "p",
"notPage": false
},
+ "WmsMaterialStock": {
+ "name": "搴撳瓨淇℃伅",
+ "path": "/information-base/WmsMaterialStock",
+ "patchName": "WmsMaterialStock",
+ "icon": "p",
+ "notPage": false
+ },
"WmsContainer": {
"name": "Wms鎵樼洏绠$悊",
"path": "/information-base/WmsContainer",
diff --git a/HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx b/HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
index 2e2946f..7e1295f 100644
--- a/HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
+++ b/HIAWms/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
@@ -86,6 +86,12 @@
rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡绫诲瀷', trigger: 'change' }],
},
{
+ label: '鍨嬪彿',
+ prop: 'materialModel',
+ el: 'input',
+ placeholder: '璇疯緭鍏ュ瀷鍙�',
+ },
+ {
label: '涓诲崟浣�',
prop: 'primaryUnit',
el: 'input',
@@ -214,6 +220,7 @@
materialType: formData.value.materialType,
primaryUnit: formData.value.primaryUnit,
standard: formData.value.standard,
+ materialModel: formData.value.materialModel,
outerDiameter: formData.value.outerDiameter,
wallThickness: formData.value.wallThickness,
materialQuality: formData.value.materialQuality,
@@ -278,6 +285,7 @@
materialType: res.materialType,
primaryUnit: res.primaryUnit,
standard: res.standard,
+ materialModel: res.materialModel,
outerDiameter: res.outerDiameter,
wallThickness: res.wallThickness,
materialQuality: res.materialQuality,
diff --git a/HIAWms/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts b/HIAWms/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
index 2b0e6f5..a6762bf 100644
--- a/HIAWms/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
+++ b/HIAWms/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
@@ -21,6 +21,10 @@
title: '鐗╂枡绫诲瀷',
},
{
+ field: 'materialModel',
+ title: '鐗╂枡鍨嬪彿',
+ },
+ {
field: 'primaryUnit',
title: '涓诲崟浣�',
},
diff --git a/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainer.ts b/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainer.ts
index d3a9ab0..97ecbec 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainer.ts
+++ b/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainer.ts
@@ -85,40 +85,40 @@
divided: true,
icon: 'o',
},
- {
- label: '鍚戜笂娣诲姞',
- fn: (c: CurrentType, pageNum: number) => {
- current.value = null
- sort.value = c.index + 1 + (pageNum - 1) * 50
- dialogConfig.visible = true
- dialogConfig.title = '娣诲姞'
- dialogConfig.isAdd = false
- },
- divided: true,
- icon: 'up',
- },
- {
- label: '鍚戜笅娣诲姞',
- fn: (c: CurrentType, pageNum: number) => {
- current.value = null
- sort.value = c.index + 2 + (pageNum - 1) * 50
- dialogConfig.visible = true
- dialogConfig.title = '娣诲姞'
- dialogConfig.isAdd = false
- },
- divided: true,
- icon: 'down',
- },
- {
- label: '鍒涘缓鍓湰',
- fn: async ({ row }: CurrentType) => {
- await wmsContainer.cloneData([row.id])
- ElMessage.success('鍒涘缓鍓湰鎴愬姛')
- tableRef.value?.getList()
- },
- divided: true,
- icon: 'copy',
- },
+ // {
+ // label: '鍚戜笂娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 1 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'up',
+ // },
+ // {
+ // label: '鍚戜笅娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 2 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'down',
+ // },
+ // {
+ // label: '鍒涘缓鍓湰',
+ // fn: async ({ row }: CurrentType) => {
+ // await wmsContainer.cloneData([row.id])
+ // ElMessage.success('鍒涘缓鍓湰鎴愬姛')
+ // tableRef.value?.getList()
+ // },
+ // divided: true,
+ // icon: 'copy',
+ // },
{
label: '鍒犻櫎',
fn: async (c: CurrentType) => {
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/File.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/File.ts
new file mode 100644
index 0000000..75397ed
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/File.ts
@@ -0,0 +1,31 @@
+import { importFileToService, exportFileToClient } from '@/api/file'
+import { ElMessage } from 'element-plus'
+import { downloadFile } from '@/utils'
+import dayjs from 'dayjs'
+
+export const useFile = () => {
+ /**
+ * 瀵煎叆鏂囦欢
+ * @param url
+ */
+ const importFile = async (url: string, file: File) => {
+ const formData = new FormData()
+ formData.append('file', file)
+ await importFileToService(url, formData)
+ ElMessage('瀵煎叆鎴愬姛')
+ }
+ /**
+ * 瀵煎嚭鏂囦欢
+ * @param url
+ */
+ const exportFile = async (url: string, params: any, name: string) => {
+ const res = await exportFileToClient(url, params)
+ downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`)
+ ElMessage.success('瀵煎嚭鎴愬姛')
+ }
+
+ return {
+ importFile,
+ exportFile,
+ }
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStock.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStock.ts
new file mode 100644
index 0000000..670166c
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStock.ts
@@ -0,0 +1,264 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsMaterialStock } from '../Models/WmsMaterialStock'
+import { ElMessage } from 'element-plus'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { useFile } from './File'
+
+interface CurrentType {
+ row: any
+ index: number
+}
+export const useWmsMaterialStock = (props: any, ctx?: any) => {
+ const wmsMaterialStock = injectModel<WmsMaterialStock>('wmsMaterialStock')
+ const { exportFile } = useFile()
+ /**
+ * 澶撮儴閰嶇疆
+ */
+ const headers = ref({})
+ /**
+ * 鍔ㄦ�佸垪閰嶇疆
+ */
+ const wmsMaterialStockColumns = ref<Record<string, any>>([])
+ /**
+ * 鎼滅储鍊�
+ */
+ const search = ref('')
+
+ /**
+ * 鎺掑簭
+ */
+ const sort = ref(0)
+ /**
+ * 閫夋嫨椤�
+ */
+ const selection = ref([])
+ /**
+ * 褰撳墠閫変腑鐨勮
+ */
+ const current = ref<any>(null)
+ /**
+ * 鏁版嵁婧�
+ */
+ const dataSource: Ref<any[]> = ref([])
+
+ /**
+ * 琛ㄦ牸
+ */
+ const tableRef = ref()
+ const dialogConfig = reactive({
+ visible: false,
+ title: '',
+ isAdd: false,
+ })
+
+ const dialogSettingConfig = reactive({
+ visible: false,
+ title: '',
+ })
+
+ /**
+ * 鍒嗛〉鏁版嵁
+ */
+ const paginationParams = ref({})
+
+ /**
+ * 鎵撳紑璇︽儏
+ * @param row
+ */
+ const openDetail = (row: any) => {
+ current.value = row
+ dialogConfig.visible = true
+ dialogConfig.title = row.name
+ dialogConfig.isAdd = false
+ sort.value = row.sort
+ }
+
+ const contextMenu = [
+ {
+ label: '灞曞紑璇︽儏',
+ fn: (c: CurrentType) => {
+ current.value = null
+ sort.value = c.row.sort
+ nextTick(() => openDetail(c.row))
+ },
+ divided: true,
+ icon: 'o',
+ },
+ // {
+ // label: '鍚戜笂娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 1 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'up',
+ // },
+ // {
+ // label: '鍚戜笅娣诲姞',
+ // fn: (c: CurrentType, pageNum: number) => {
+ // current.value = null
+ // sort.value = c.index + 2 + (pageNum - 1) * 50
+ // dialogConfig.visible = true
+ // dialogConfig.title = '娣诲姞'
+ // dialogConfig.isAdd = false
+ // },
+ // divided: true,
+ // icon: 'down',
+ // },
+ // {
+ // label: '鍒涘缓鍓湰',
+ // fn: async ({ row }: CurrentType) => {
+ // await wmsMaterialStock.cloneData([row.id])
+ // ElMessage.success('鍒涘缓鍓湰鎴愬姛')
+ // tableRef.value?.getList()
+ // },
+ // divided: true,
+ // icon: 'copy',
+ // },
+ {
+ label: '鍒犻櫎',
+ fn: async (c: CurrentType) => {
+ const names = selection.value.map((item: { name: string }) => item.name)
+ ConfirmBox(
+ `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.name}`
+ ).then(async () => {
+ const ids = selection.value.map((item: { id: string }) => item.id)
+ await wmsMaterialStock.deleteWmsMaterialStocks(
+ ids.length ? ids : [c.row.id]
+ )
+ ElMessage.success('鍒犻櫎鎴愬姛')
+ tableRef.value.getList()
+ })
+ },
+ icon: 'close',
+ },
+ ]
+
+ const onCheck = (records: any) => {
+ selection.value = records
+ }
+
+ const onAddWmsMaterialStock = () => {
+ const params = tableRef.value?.getPaginationParams()
+ current.value = null
+ dialogConfig.visible = true
+ dialogConfig.isAdd = true
+ dialogConfig.title = '娣诲姞'
+ sort.value = params.totalCount + 1
+ }
+
+ const onConfirmWmsMaterialStock = async () => {
+ dialogConfig.visible = false
+ if (dialogConfig.isAdd) {
+ tableRef.value?.scrollToRow({
+ skip: true,
+ })
+ } else {
+ await tableRef.value?.getList()
+ }
+ }
+ /**
+ * 琛岀偣鍑绘椂鏇存柊current
+ */
+ const onRowClick = ({ row }: any) => {
+ if (dialogConfig.visible && current.value) {
+ current.value = row
+ }
+ }
+ /**
+ * 瀵煎嚭
+ */
+ const onExport = () => {
+ const params = tableRef.value?.getParams()
+ exportFile(
+ '/api/v1/HIAWms/wmsMaterialStock/export',
+ params,
+ 'wmsMaterialStock'
+ )
+ }
+
+ /**
+ * 鍏抽敭瀛楁悳绱�
+ */
+ const onSearch = () => {
+ tableRef.value?.getList({
+ Filter: search.value,
+ })
+ }
+
+ /**
+ * 閲嶇疆琛ㄦ牸鏁版嵁
+ */
+ const reloadList = () => {
+ tableRef.value?.getList()
+ }
+ /**
+ * 涓婁紶鎴愬姛
+ */
+ const onSuccess = () => {
+ tableRef.value?.getList()
+ ElMessage.success('瀵煎叆鎴愬姛')
+ }
+ /**
+ * 澶辫触
+ * @param err
+ */
+ const onError = (err: any) => {
+ try {
+ const message = JSON.parse(err.message)
+ ElMessage.error(message.msg)
+ } catch (error) {
+ ElMessage.error('瀵煎叆澶辫触')
+ }
+ }
+ /**
+ * 涓婁紶閽╁瓙
+ */
+ const onBeforeUpload = (file: File) => {
+ const format = ['xlsx', 'xls', 'csv']
+ if (!format.includes(file.name.split('.')[1])) {
+ ElMessage.error('瀵煎叆鏂囦欢鏍煎紡涓嶆纭紝璇峰鍏�.xlsx/.xls涓�.csv鏍煎紡鐨勬枃浠�')
+ return false
+ }
+ return true
+ }
+
+ onMounted(() => {
+ headers.value = {
+ Authorization: `Bearer ${sessionStorage.getItem('Token')}`,
+ 'X-Project': sessionStorage.getItem('X-Project'),
+ }
+ })
+
+ ctx.expose({
+ reloadList,
+ })
+
+ return {
+ dataSource,
+ contextMenu,
+ dialogConfig,
+ dialogSettingConfig,
+ tableRef,
+ current,
+ search,
+ sort,
+ wmsMaterialStockColumns,
+ paginationParams,
+ headers,
+ onBeforeUpload,
+ onError,
+ onSuccess,
+ openDetail,
+ onSearch,
+ onExport,
+ onRowClick,
+ onConfirmWmsMaterialStock,
+ onCheck,
+ onAddWmsMaterialStock,
+ }
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx b/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx
new file mode 100644
index 0000000..b3f6014
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Controllers/WmsMaterialStockDrawer.tsx
@@ -0,0 +1,343 @@
+import {
+ ref,
+ onMounted,
+ reactive,
+ computed,
+ Ref,
+ watch,
+ SetupContext,
+ h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsMaterialStockDrawer } from '../Models/WmsMaterialStockDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+import {
+ getAreaAreaDataList,
+ getWmsEnumData,
+} from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
+
+export const useWmsMaterialStockDrawer = (props: any, ctx?: any) => {
+ const wmsMaterialStockDrawer = injectModel<WmsMaterialStockDrawer>(
+ 'wmsMaterialStockDrawer'
+ )
+ /**
+ * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+ */
+ const initiateData: Ref<Record<string, any>> = ref({})
+ const formData = ref<Record<string, any>>({})
+ // ref
+ const formRef = ref()
+
+ const inputNumber = (attrs) => {
+ return (
+ <el-input-number
+ min="1"
+ step="1"
+ precision="0"
+ {...attrs}
+ ></el-input-number>
+ )
+ }
+ const datePicker = (attrs) => {
+ return (
+ <el-date-picker
+ type="datetime"
+ format="YYYY-MM-DD HH:mm:ss"
+ {...attrs}
+ ></el-date-picker>
+ )
+ }
+
+ const current = computed(() => {
+ return props.row || null
+ })
+ const visible = computed({
+ get() {
+ return props.modelValue
+ },
+ set(val) {
+ ctx.emit('update:modelValue', val)
+ },
+ })
+ /**
+ * 娣诲姞鐨刦orm瀛楁
+ */
+ const formItems = reactive([
+ // 鍩虹淇℃伅
+ {
+ label: '鐗╂枡缂栧彿',
+ prop: 'materialNo',
+ el: 'input',
+ placeholder: '璇疯緭鍏ョ墿鏂欑紪鍙�',
+ rules: [
+ { required: true, message: '鐗╂枡缂栧彿涓嶈兘涓虹┖', trigger: 'blur' },
+ { max: 50, message: '闀垮害涓嶈兘瓒呰繃50涓瓧绗�', trigger: 'blur' },
+ ],
+ },
+ {
+ label: '鐗╂枡鍚嶇О',
+ prop: 'materialName',
+ el: 'input',
+ placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+ rules: [
+ { required: true, message: '鐗╂枡鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' },
+ { max: 100, message: '闀垮害涓嶈兘瓒呰繃100涓瓧绗�', trigger: 'blur' },
+ ],
+ },
+ // 瀹瑰櫒淇℃伅
+ {
+ label: '瀹瑰櫒缂栧彿',
+ prop: 'containerNo',
+ el: 'input',
+ placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+ rules: [
+ { required: true, message: '鐗╂枡缂栧彿涓嶈兘涓虹┖', trigger: 'blur' },
+ { max: 50, message: '闀垮害涓嶈兘瓒呰繃50涓瓧绗�', trigger: 'blur' },
+ ],
+ },
+ // 搴撳瓨淇℃伅
+ {
+ label: '搴撳瓨鏁伴噺',
+ prop: 'stockNumber',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(inputNumber, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ placeholder: '璇疯緭鍏ュ簱瀛樻暟閲�',
+ rules: [{ required: true, message: '璇疯緭鍏ュ簱瀛樻暟閲�', trigger: 'blur' }],
+ },
+ {
+ label: '鐗╂枡鎵规',
+ prop: 'materialBatch',
+ el: 'input',
+ placeholder: '璇疯緭鍏ョ墿鏂欐壒娆″彿',
+ rules: [
+ { required: true, message: '鐗╂枡鎵规涓嶈兘涓虹┖', trigger: 'blur' },
+ { max: 50, message: '闀垮害涓嶈兘瓒呰繃50涓瓧绗�', trigger: 'blur' },
+ ],
+ },
+
+ {
+ label: '搴撲綅缂栧彿',
+ prop: 'placeNo',
+ el: 'input',
+ placeholder: '璇疯緭鍏ュ簱浣嶇紪鍙�',
+ rules: [
+ { required: true, message: '搴撲綅缂栧彿涓嶈兘涓虹┖', trigger: 'blur' },
+ { max: 50, message: '闀垮害涓嶈兘瓒呰繃50涓瓧绗�', trigger: 'blur' },
+ ],
+ },
+ // 鐘舵�佷俊鎭�
+ {
+ label: '妫�楠岀姸鎬�',
+ prop: 'checkStatus',
+ el: 'select',
+ options: [],
+ placeholder: '璇烽�夋嫨妫�楠岀姸鎬�',
+ },
+ {
+ label: '鏄惁閿佸畾',
+ prop: 'isLock',
+ el: 'select',
+ options: [],
+ placeholder: '璇烽�夋嫨閿佸畾鐘舵��',
+ },
+ {
+ label: '鏄惁绌烘墭',
+ prop: 'emptyContainer',
+ el: 'select',
+ options: [],
+ placeholder: '璇烽�夋嫨绌烘墭鐘舵��',
+ },
+ // 鏃堕棿淇℃伅
+
+ {
+ label: '鍏ュ簱鏃堕棿',
+ prop: 'inStockTime',
+ el: (props: any, { attrs }: SetupContext) => {
+ return h(datePicker, {
+ ...props,
+ clearable: true,
+ ...attrs,
+ })
+ },
+ width: '100%',
+ placeholder: '璇疯緭鍏ユ搷浣滄椂闂�',
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ el: 'input',
+ type: 'textarea',
+ placeholder: '璇疯緭鍏ュ娉ㄤ俊鎭�',
+ rules: [{ max: 500, message: '闀垮害涓嶈兘瓒呰繃500涓瓧绗�', trigger: 'blur' }],
+ },
+ ])
+ /**
+ * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+ */
+ const checkIsEqualObject = () => {
+ const data = {
+ formData: formData.value,
+ }
+ const check = isEqual(initiateData.value, data)
+ return check
+ }
+
+ const onClose = (done: () => void) => {
+ if (visible.value) {
+ if (checkIsEqualObject()) {
+ visible.value = false
+ done && done()
+ } else {
+ ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
+ .then(() => {
+ onConfirm()
+ })
+ .catch(() => {
+ visible.value = false
+ done && done()
+ })
+ }
+ }
+ }
+ /**
+ * 淇濆瓨
+ */
+ const onConfirm = async () => {
+ await formRef.value?.validate()
+ const data = {
+ materialNo: formData.value.materialNo,
+ materialName: formData.value.materialName,
+ containerNo: formData.value.containerNo,
+ stockNumber: formData.value.stockNumber,
+ materialBatch: formData.value.materialBatch,
+ placeNo: formData.value.placeNo,
+ checkStatus: formData.value.checkStatus,
+ isLock: formData.value.isLock,
+ emptyContainer: formData.value.emptyContainer,
+ inStockTime: formData.value.inStockTime,
+ remark: formData.value.remark,
+ sort: props.sort,
+ }
+ if (!current.value) {
+ await wmsMaterialStockDrawer.addWmsMaterialStock(data)
+ } else {
+ const id = current.value.id
+ await wmsMaterialStockDrawer.updateWmsMaterialStock(id, data)
+ }
+ ElMessage.success('淇濆瓨鎴愬姛')
+ ctx.emit('confirm')
+ }
+
+ const updateCheckData = () => {
+ initiateData.value = {
+ formData: {
+ ...formData.value,
+ },
+ }
+ }
+ const updateFormItemOptions = (propName: string, enumData: any[]) => {
+ const item = formItems.find((item) => item.prop === propName)
+ if (item && enumData) {
+ item.options = enumData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ }
+ }
+ const updateFormAreaOptions = (propName: string, enumData: any[]) => {
+ const item = formItems.find((item) => item.prop === propName)
+ if (item && enumData) {
+ item.options = enumData.map((item) => ({
+ label: item.areaName,
+ value: item.areaNo,
+ }))
+ }
+ }
+ /**
+ * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+ */
+ const onOpen = async () => {
+ const containerTypeEnum = await getWmsEnumData({
+ EnumName: 'ContainerTypeEnum',
+ })
+ updateFormItemOptions('containerType', containerTypeEnum)
+
+ const containerStatusEnum = await getWmsEnumData({
+ EnumName: 'ContainerStatusEnum',
+ })
+ updateFormItemOptions('containerStatus', containerStatusEnum)
+ const placeStatusData = await getWmsEnumData({
+ EnumName: 'PlaceStatusEnum',
+ })
+
+ updateFormItemOptions('placeStatus', placeStatusData)
+ const storageTypeNoData = await getWmsEnumData({
+ EnumName: 'PlaceTypeEnum',
+ })
+ updateFormItemOptions('storageTypeNo', storageTypeNoData)
+
+ const checkStatusList = await getWmsEnumData({
+ EnumName: 'MaterialCheckStatusEnum',
+ })
+ updateFormItemOptions('checkStatus', checkStatusList)
+
+ const yesNoData = await getWmsEnumData({
+ EnumName: 'YesNoEnum',
+ })
+ updateFormItemOptions('isLock', yesNoData)
+ updateFormItemOptions('emptyContainer', yesNoData)
+
+ const areaList = await getAreaAreaDataList()
+ updateFormAreaOptions('areaCode', areaList)
+
+ if (current.value) {
+ const res = await wmsMaterialStockDrawer.getWmsMaterialStockDetail(
+ current.value
+ )
+
+ formData.value = {
+ materialNo: res.materialNo,
+ materialName: res.materialName,
+ containerNo: res.containerNo,
+ stockNumber: res.stockNumber,
+ materialBatch: res.materialBatch,
+ placeNo: res.placeNo,
+ checkStatus: res.checkStatus,
+ isLock: res.isLock,
+ emptyContainer: res.emptyContainer,
+ inStockTime: res.inStockTime,
+ remark: res.remark,
+ id: res.id,
+ }
+ updateCheckData()
+ } else {
+ formData.value = {
+ isLock: 2,
+ emptyContainer: 2,
+ inStockTime: new Date(),
+ }
+ updateCheckData()
+ }
+ }
+
+ watch(() => current.value, onOpen)
+
+ return {
+ formItems,
+ formData,
+ visible,
+ formRef,
+ onOpen,
+ onClose,
+ onConfirm,
+ }
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStock.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStock.ts
new file mode 100644
index 0000000..213b2d5
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStock.ts
@@ -0,0 +1,30 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsMaterialStock = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsMaterialStock', data)
+}
+
+/**
+ * 鎵归噺鍒犻櫎
+ * @returns
+ */
+export const deleteWmsMaterialStocks = (ids: string[]) => {
+ return request({
+ data: ids,
+ url: '/api/v1/HIAWms/wmsMaterialStock',
+ method: 'delete',
+ })
+}
+
+/**
+ * 鍏嬮殕
+ * @returns
+ */
+export const cloneData = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsMaterialStock/clone', data)
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer.ts
new file mode 100644
index 0000000..2b80508
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Models/Service/WmsMaterialStockDrawer.ts
@@ -0,0 +1,29 @@
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsMaterialStock = (data: any) => {
+ return request.post('/api/v1/HIAWms/wmsMaterialStock', data)
+}
+
+/**
+ * 鑾峰彇璇︽儏
+ * @returns
+ */
+export const getWmsMaterialStock = (id: string) => {
+ return request.get(`/api/v1/HIAWms/wmsMaterialStock/${id}`)
+}
+
+/**
+ * 鏇存柊
+ * @returns
+ */
+export const updateWmsMaterialStock = (
+ id: string,
+ data: Record<string, any>
+) => {
+ return request.put(`/api/v1/HIAWms/wmsMaterialStock/${id}`, data)
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStock.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStock.ts
new file mode 100644
index 0000000..75c6081
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStock.ts
@@ -0,0 +1,41 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ deleteWmsMaterialStocks,
+ addWmsMaterialStock,
+ cloneData,
+} from './Service/WmsMaterialStock'
+
+export class WmsMaterialStock extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ })
+ }
+ onMounted() {}
+ /**
+ * 鍒犻櫎
+ * @param id
+ * @returns
+ */
+ async deleteWmsMaterialStocks(ids: string[]) {
+ return deleteWmsMaterialStocks(ids)
+ }
+
+ /**
+ * 娣诲姞鏁版嵁
+ * @param data
+ * @returns
+ */
+ addWmsMaterialStock(data: Record<string, any>) {
+ return addWmsMaterialStock(data)
+ }
+
+ /**
+ * 鍏嬮殕
+ * @param ids
+ * @returns
+ */
+ cloneData(ids: string[]) {
+ return cloneData(ids)
+ }
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDrawer.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDrawer.ts
new file mode 100644
index 0000000..7954e7c
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Models/WmsMaterialStockDrawer.ts
@@ -0,0 +1,38 @@
+import { Base } from '@/libs/Base/Base'
+import {
+ addWmsMaterialStock,
+ getWmsMaterialStock,
+ updateWmsMaterialStock,
+} from './Service/WmsMaterialStockDrawer'
+import { useGlobalState } from '@/libs/Store/Store'
+
+export class WmsMaterialStockDrawer extends Base<{ [key: string]: any }> {
+ constructor() {
+ super({
+ data: [],
+ wmsMaterialStock: {},
+ })
+ }
+
+ /**
+ * 娣诲姞
+ * @param data
+ */
+ async addWmsMaterialStock(data: Record<string, any>) {
+ return addWmsMaterialStock(data)
+ }
+ /**
+ * 鏇存柊
+ * @param data
+ */
+ async updateWmsMaterialStock(id: string, data: Record<string, any>) {
+ return updateWmsMaterialStock(id, data)
+ }
+
+ /**
+ * 鑾峰彇璇︽儏
+ */
+ async getWmsMaterialStockDetail(current: any, id?: string) {
+ return getWmsMaterialStock(id || current?.id)
+ }
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.module.scss b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.module.scss
new file mode 100644
index 0000000..98607dd
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer {
+ width: 800px;
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.tsx b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.tsx
new file mode 100644
index 0000000..59a5263
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer.tsx
@@ -0,0 +1,61 @@
+import { SetupContext, defineComponent } from 'vue'
+import BaseDrawer from '@/components/BaseDrawer/BaseDrawer'
+import styles from './WmsMaterialStockDrawer.module.scss'
+import { useWmsMaterialStockDrawer } from '../../../../Controllers/WmsMaterialStockDrawer.tsx'
+import DyForm from '@/components/DyForm/DyForm'
+
+// @ts-ignore
+export default defineComponent<{
+ [key: string]: any
+}>({
+ name: '寮圭獥',
+ props: {
+ modelValue: {
+ type: Boolean,
+ default: false,
+ },
+ title: {
+ type: String,
+ default: '',
+ },
+ row: {
+ type: Object,
+ },
+ sort: {
+ type: Number,
+ default: 0,
+ },
+ },
+ emits: ['update:modelValue', 'close', 'submit', 'confirm'],
+ setup(props: Record<string, any>, ctx: SetupContext) {
+ const {
+ onClose,
+ onConfirm,
+ onOpen,
+ formRef,
+ visible,
+ formItems,
+ formData,
+ } = useWmsMaterialStockDrawer(props, ctx)
+ return () => (
+ <BaseDrawer
+ class={styles.drawer}
+ size="800px"
+ title={props.title || '娣诲姞'}
+ v-model={visible.value}
+ close-on-click-modal={true}
+ onConfirm={onConfirm}
+ onOpen={onOpen}
+ before-close={onClose}
+ onClose={onClose}
+ >
+ <DyForm
+ ref={formRef}
+ formData={formData.value}
+ labelWidth="106px"
+ formItemProps={formItems}
+ ></DyForm>
+ </BaseDrawer>
+ )
+ },
+})
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/Config.ts b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/Config.ts
new file mode 100644
index 0000000..03b2ab3
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/Config.ts
@@ -0,0 +1,55 @@
+export const columns = [
+ {
+ type: 'seq',
+ width: 60,
+ title: '搴忓彿',
+ },
+ {
+ field: 'materialNo',
+ title: '鐗╂枡缂栧彿',
+ },
+ {
+ field: 'materialName',
+ title: '鐗╂枡鍚嶇О',
+ },
+ {
+ field: 'placeNo',
+ title: '搴撲綅缂栧彿',
+ },
+ {
+ field: 'placeStatusDesc',
+ title: '搴撲綅鐘舵��',
+ },
+ {
+ field: 'containerNo',
+ title: '瀹瑰櫒缂栧彿',
+ },
+ {
+ field: 'stockNumber',
+ title: '搴撳瓨鏁伴噺',
+ },
+ {
+ field: 'materialBatch',
+ title: '鐗╂枡鎵规',
+ },
+ {
+ field: 'areaName',
+ title: '鎵�灞炲簱鍖�',
+ },
+ {
+ field: 'checkStatusDesc',
+ title: '妫�楠岀姸鎬�',
+ },
+ {
+ field: 'inStockTime',
+ title: '鍏ュ簱鏃堕棿',
+ },
+ {
+ field: 'isLockDesc',
+ title: '閿佸畾鐘舵��',
+ },
+ {
+ field: 'remark',
+ title: '澶囨敞',
+ },
+]
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.module.scss b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.module.scss
new file mode 100644
index 0000000..365acbf
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.module.scss
@@ -0,0 +1,113 @@
+.wmsMaterialStockContent {
+ width: 100%;
+ height: 80%;
+
+ .wmsMaterialStockList {
+ width: 100%;
+ height: calc(100% - 70px);
+ }
+ .headerContent {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 43px;
+ }
+ .header {
+ margin-bottom: 12px;
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ }
+}
+
+.tagBox {
+ width: auto;
+ min-width: 80px;
+ height: 24px;
+ background: #ffffff;
+ border-radius: 19px 19px 19px 19px;
+ opacity: 1;
+ border: 1px dashed #bcc4cc;
+ width: 50px;
+ height: 20px;
+ font-size: 14px;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 400;
+ color: #5a84ff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ // cursor: pointer;
+}
+
+.group {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.groupTable {
+ width: 100%;
+}
+
+.overBox {
+ width: 100%;
+ height: calc(100% - 20px);
+ overflow: auto;
+ :global(.cs-collapse-item__header) {
+ background-color: #f1f1f1;
+ padding: 0 20px;
+ height: 35px;
+ font-size: 16px;
+ font-family: PingFang SC, PingFang SC;
+ font-weight: 500;
+ }
+ :global(.cs-collapse-item__content) {
+ padding-bottom: 0px;
+ }
+}
+.groupHeader {
+ width: 100%;
+ height: 30px;
+ background: #ccc;
+}
+
+.hideBlock {
+ display: none;
+}
+.queryForm {
+ padding: 10px;
+ background: #f5f7fa;
+ margin-bottom: 0px;
+ border-radius: 4px;
+
+ .el-form-item {
+ margin-right: 20px;
+ margin-bottom: 0;
+
+ // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害
+ .el-input, .el-select {
+ width: 200px; // 璁剧疆缁熶竴鐨勫搴�
+ }
+
+ // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡
+ .el-select .el-input__wrapper {
+ height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷�
+ padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷�
+ }
+
+ // 鏃ユ湡閫夋嫨鍣ㄥ搴�
+ .el-date-editor {
+ width: 220px;
+ }
+ }
+}
+
+// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆
+.formItem {
+ width: 200px;
+
+ &.el-input, &.el-select {
+ width: 100%;
+ }
+}
\ No newline at end of file
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
new file mode 100644
index 0000000..f208e22
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
@@ -0,0 +1,468 @@
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue'
+import type { Ref } from 'vue'
+import BaseTable from '@/components/Table/Table'
+import styles from './WmsMaterialStock.module.scss'
+import { useWmsMaterialStock } from '../../../Controllers/WmsMaterialStock'
+import IconButton from '@/components/IconButton/IconButton'
+import WmsMaterialStockDrawer from '../Dialog/WmsMaterialStockDrawer/WmsMaterialStockDrawer'
+import Search from '@/components/Search/Search'
+import { columns } from './Config'
+import TdButton from '@/components/TdButton/TdButton'
+import { vPermission } from '@/libs/Permission/Permission'
+import dayjs from 'dayjs'
+import {
+ ElDatePicker,
+ ElForm,
+ ElFormItem,
+ ElInput,
+ ElOption,
+ ElSelect,
+} from 'element-plus'
+import { getWmsEnumData } from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
+
+interface RenderTableType {
+ url?: string
+ dataSource: Ref<any[]>
+ isDrag?: boolean
+ isChecked?: boolean
+ isHidePagination?: boolean
+ params?: Record<string, any>
+ autoHeight?: boolean
+}
+
+export default defineComponent({
+ name: 'WmsMaterialStock',
+ directives: {
+ permission: vPermission,
+ },
+ setup(props, ctx) {
+ const {
+ dataSource,
+ contextMenu,
+ dialogConfig,
+ tableRef,
+ current,
+ search,
+ sort,
+ headers,
+ onError,
+ onSearch,
+ onRowClick,
+ onConfirmWmsMaterialStock,
+ onCheck,
+ onAddWmsMaterialStock,
+ onExport,
+ openDetail,
+ onSuccess,
+ onBeforeUpload,
+ } = useWmsMaterialStock(props, ctx)
+
+ // 鏂板鐨勬煡璇㈡潯浠�
+ const queryForm = ref({
+ containerNo: '',
+ materialNo: '',
+ materialName: '',
+ containerType: '',
+ containerStatus: '',
+ storageTypeNo: '',
+ placeStatus: '',
+ placeNo: '',
+ isLock: '',
+ emptyContainer: '',
+ dateRange: [],
+ filter: '',
+ })
+
+ const queryParams = computed(() => ({
+ ...queryForm.value,
+ containerType: queryForm.value.containerType || '', // 澶勭悊涓嬫媺
+ containerStatus: queryForm.value.containerStatus || '',
+ storageTypeNo: queryForm.value.storageTypeNo || '', // 澶勭悊涓嬫媺
+ placeStatus: queryForm.value.placeStatus || '',
+ islock: queryForm.value.isLock || '',
+ emptyContainer: queryForm.value.emptyContainer || '',
+ startTime: queryForm.value.dateRange[0] || '',
+ endTime: queryForm.value.dateRange[1] || '',
+ }))
+
+ // 鍔ㄦ�佹灇涓鹃�夐」
+ const enumOptions = reactive({
+ containerType: [] as Array<{ label: string; value: any }>,
+ containerStatus: [] as Array<{ label: string; value: any }>,
+ storageTypeNo: [] as Array<{ label: string; value: any }>,
+ placeStatus: [] as Array<{ label: string; value: any }>,
+ yesOrNo: [] as Array<{ label: string; value: any }>,
+ })
+
+ // 鑾峰彇鏋氫妇鏁版嵁
+ const fetchEnumData = async () => {
+ try {
+ // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
+ const containerTypeData = await getWmsEnumData({
+ EnumName: 'ContainerTypeEnum',
+ })
+ enumOptions.containerType = containerTypeData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ // 鑾峰彇鐗╂枡绫诲瀷鏋氫妇
+ const storageTypeNoData = await getWmsEnumData({
+ EnumName: 'PlaceTypeEnum',
+ })
+ enumOptions.storageTypeNo = storageTypeNoData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+
+ // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
+ const placeStatusData = await getWmsEnumData({
+ EnumName: 'PlaceStatusEnum',
+ })
+ enumOptions.placeStatus = placeStatusData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+
+ // 鑾峰彇閲囪喘绫诲瀷鏋氫妇
+ const containerStatusData = await getWmsEnumData({
+ EnumName: 'ContainerStatusEnum',
+ })
+ enumOptions.containerStatus = containerStatusData.map((item) => ({
+ label: item.description,
+ value: item.value,
+ }))
+ } catch (error) {
+ console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+ }
+ }
+
+ // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+ onMounted(() => {
+ fetchEnumData()
+ })
+
+ // 鏂板鐨勬煡璇㈡柟娉�
+ const handleQuery = async () => {
+ console.log('鏌ヨ鏉′欢:', queryParams.value)
+ // tableRef.value.getTableList()
+ tableRef.value.getList(queryParams.value)
+ }
+
+ // 閲嶇疆鏌ヨ鏉′欢
+ const resetQuery = () => {
+ queryForm.value = {
+ containerNo: '',
+ materialNo: '',
+ materialName: '',
+ containerType: '',
+ containerStatus: '',
+ storageTypeNo: '',
+ placeStatus: '',
+ placeNo: '',
+ isLock: '',
+ emptyContainer: '',
+ dateRange: [],
+ filter: '',
+ }
+ }
+ /**
+ * @returns 琛ㄦ牸
+ */
+ const RenderBaseTable = (props: RenderTableType) => {
+ const {
+ url,
+ dataSource,
+ isDrag,
+ isChecked,
+ isHidePagination,
+ params,
+ autoHeight,
+ } = props
+
+ return (
+ <div
+ class={{
+ [styles.wmsMaterialStockList]: true,
+ }}
+ >
+ <BaseTable
+ ref={tableRef}
+ url={url}
+ sortUrlTpl="/api/v1/HIAWms/wmsMaterialStock/{id}/adjustsort/{sort}"
+ v-model:dataSource={dataSource.value}
+ columns={columns}
+ contextMenu={contextMenu}
+ params={params}
+ isDrag={isDrag}
+ isChecked={isChecked}
+ autoHeight={autoHeight}
+ onCheck={onCheck}
+ onRowClick={onRowClick}
+ isHidePagination={isHidePagination}
+ pageSize={20}
+ v-slots={{
+ inStockTime: ({ row }: any) => {
+ return (
+ <div>
+ {row.inStockTime != null
+ ? dayjs(row.inStockTime).format('YYYY-MM-DD HH:mm:ss')
+ : '-'}
+ </div>
+ )
+ },
+ name: ({ row }: any) => {
+ return row?.name ? (
+ <TdButton
+ onClick={() => openDetail(row)}
+ text={<span style="color:#5a84ff">璇︽儏</span>}
+ icon="scale"
+ tip={row?.name}
+ hover
+ >
+ {row?.name}
+ </TdButton>
+ ) : (
+ '-'
+ )
+ },
+ }}
+ ></BaseTable>
+ </div>
+ )
+ }
+ return () => {
+ return (
+ <div class={styles.wmsMaterialStockContent}>
+ {/* 娣诲姞/缂栬緫 */}
+ <WmsMaterialStockDrawer
+ v-model={dialogConfig.visible}
+ title={dialogConfig.title}
+ row={current.value}
+ sort={sort.value}
+ onConfirm={onConfirmWmsMaterialStock}
+ />
+ {/* 鏂板鐨勬煡璇㈣〃鍗� */}
+ <ElForm
+ inline
+ model={queryForm.value}
+ class={styles.queryForm}
+ label-width="80px"
+ >
+ <ElFormItem label="鍏抽敭瀛�">
+ <ElInput
+ v-model={queryForm.value.filter}
+ placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储"
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <ElFormItem label="鐗╂枡缂栫爜">
+ <ElInput
+ v-model={queryForm.value.materialNo}
+ placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <ElFormItem label="鐗╂枡鍚嶇О">
+ <ElInput
+ v-model={queryForm.value.materialName}
+ placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <ElFormItem label="鎵樼洏缂栫爜">
+ <ElInput
+ v-model={queryForm.value.containerNo}
+ placeholder="璇疯緭鍏ユ墭鐩樼紪鐮�"
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <ElFormItem label="鎵樼洏绫诲瀷">
+ <ElSelect
+ v-model={queryForm.value.containerType}
+ placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
+ clearable
+ loading={enumOptions.containerType.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.containerType.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="鎵樼洏鐘舵��">
+ <ElSelect
+ v-model={queryForm.value.containerStatus}
+ placeholder="璇烽�夋嫨鎵樼洏鐘舵��"
+ clearable
+ loading={enumOptions.containerStatus.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.containerStatus.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="搴撲綅缂栧彿">
+ <ElInput
+ v-model={queryForm.value.placeNo}
+ placeholder="璇疯緭鍏ュ簱浣嶇紪鍙�"
+ clearable
+ class={styles.formItem}
+ />
+ </ElFormItem>
+ <ElFormItem label="搴撲綅绫诲瀷">
+ <ElSelect
+ v-model={queryForm.value.storageTypeNo}
+ placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
+ clearable
+ loading={enumOptions.storageTypeNo.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.storageTypeNo.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="搴撲綅鐘舵��">
+ <ElSelect
+ v-model={queryForm.value.placeStatus}
+ placeholder="璇烽�夋嫨鎵樼洏鐘舵��"
+ clearable
+ loading={enumOptions.placeStatus.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.placeStatus.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="鏄惁閿佸畾">
+ <ElSelect
+ v-model={queryForm.value.isLock}
+ placeholder="璇烽�夋嫨鏄惁閿佸畾"
+ clearable
+ loading={enumOptions.yesOrNo.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.yesOrNo.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="鏄惁绌烘墭">
+ <ElSelect
+ v-model={queryForm.value.emptyContainer}
+ placeholder="璇烽�夋嫨鏄惁绌烘墭"
+ clearable
+ loading={enumOptions.yesOrNo.length === 0}
+ class={styles.formItem}
+ >
+ {enumOptions.yesOrNo.map((option) => (
+ <ElOption
+ key={option.value}
+ label={option.label}
+ value={option.value}
+ />
+ ))}
+ </ElSelect>
+ </ElFormItem>
+ <ElFormItem label="鏃ユ湡鑼冨洿">
+ <ElDatePicker
+ v-model={queryForm.value.dateRange}
+ type="datetimerange"
+ range-separator="鑷�"
+ show-now="true"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ format="YYYY-MM-DD HH:mm:ss"
+ valueFormat="YYYY-MM-DD HH:mm:ss"
+ />
+ </ElFormItem>
+ <ElFormItem>
+ <IconButton type="primary" icon="search" onClick={handleQuery}>
+ 鏌ヨ
+ </IconButton>
+ <IconButton
+ style="margin-left: 10px;"
+ icon="refresh"
+ onClick={resetQuery}
+ >
+ 閲嶇疆
+ </IconButton>
+ </ElFormItem>
+ </ElForm>
+ <div class={styles.headerContent}>
+ <div class={styles.header}>
+ <IconButton
+ v-permission="wmsMaterialStock-add"
+ icon="add-p"
+ onClick={onAddWmsMaterialStock}
+ type="primary"
+ >
+ 娣诲姞
+ </IconButton>
+ <el-divider direction="vertical" />
+ <el-upload
+ v-permission="wmsMaterialStock-import"
+ name="file"
+ accept=".xlsx,.xls,.csv"
+ show-file-list={false}
+ onError={onError}
+ onSuccess={onSuccess}
+ before-upload={onBeforeUpload}
+ headers={headers.value}
+ action="/api/v1/HIAWms/wmsMaterialStock/import"
+ >
+ <IconButton icon="in">瀵煎叆</IconButton>
+ </el-upload>
+
+ <IconButton
+ v-permission="wmsMaterialStock-output"
+ icon="out"
+ onClick={onExport}
+ >
+ 瀵煎嚭
+ </IconButton>
+ </div>
+ {/* <Search
+ placeholder="璇疯緭鍏ュ叧閿瓧"
+ v-model={search.value}
+ onConfirm={onSearch}
+ style={{ marginTop: '-1px' }}
+ /> */}
+ </div>
+ <RenderBaseTable
+ url="/api/v1/HIAWms/wmsMaterialStock"
+ dataSource={dataSource}
+ isChecked={true}
+ isDrag={true}
+ />
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.module.scss b/HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.module.scss
new file mode 100644
index 0000000..d8710c5
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.module.scss
@@ -0,0 +1,7 @@
+.WmsMaterialStock {
+ background-color: #fff;
+ border-radius: 5px 5px 0 0;
+ width: 100%;
+ height: 100%;
+ border: 1px solid #dbdbdb;
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.tsx b/HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.tsx
new file mode 100644
index 0000000..9bb4efb
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/WmsMaterialStock.tsx
@@ -0,0 +1,80 @@
+import {
+ Component,
+ DefineComponent,
+ defineComponent,
+ markRaw,
+ ref,
+ SetupContext,
+ onMounted,
+} from 'vue'
+import styles from './WmsMaterialStock.module.scss'
+// import WmsMaterialStock from './Pages/WmsMaterialStock/WmsMaterialStock'
+import Tab from '@/components/Tab/Tab'
+import { useProvideModels } from '@/libs/Provider/app'
+import { usePermission } from '@/libs/Permission/Permission'
+import { permissionCodes } from '../enum'
+import { ModuleType, TabItem } from '../type/Type'
+import { getEntityNames } from '@/hooks/hook'
+import TabPane from '@/components/Tab/TabPane'
+
+const Models: ModuleType = import.meta.glob('./config/*.json', {
+ eager: true,
+})
+
+const entityNames = getEntityNames(Models)
+const nameToLabelMap = [{ name: 'WmsMaterialStock', label: '搴撳瓨' }]
+
+export default defineComponent({
+ name: 'WmsMaterialStock',
+
+ setup(props, ctx: SetupContext) {
+ useProvideModels()
+ usePermission(props, permissionCodes)
+
+ const rf = ref<{
+ [key: string]: any
+ }>({})
+
+ const tabData = ref<TabItem[]>([])
+
+ const onTabChange = (v: string) => {
+ rf.value?.[v]?.reloadList()
+ }
+
+ const initTableData = async () => {
+ for (const i in entityNames) {
+ const name = entityNames[i]
+ const module = await import(`./Pages/${name}/${name}.tsx`)
+ const WmsPlaces = markRaw(module.default)
+ const foundLabel =
+ nameToLabelMap.find((item) => item.name === name)?.label || name
+ tabData.value.push({
+ label: foundLabel,
+ name,
+ component: WmsPlaces,
+ })
+ }
+ }
+
+ initTableData()
+
+ return () => {
+ return (
+ <div class={styles.WmsMaterialStock}>
+ <Tab data={tabData.value} type="list" onTab={onTabChange}>
+ {tabData.value.map((widgetInfo) => {
+ const Widget: any = widgetInfo.component
+ return (
+ <TabPane label={widgetInfo.label} name={widgetInfo.name}>
+ <Widget
+ ref={(r: any) => (rf.value['WmsMaterialStock'] = r)}
+ ></Widget>
+ </TabPane>
+ )
+ })}
+ </Tab>
+ </div>
+ )
+ }
+ },
+})
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStock.json b/HIAWms/web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStock.json
new file mode 100644
index 0000000..fdfdd72
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/Views/config/WmsMaterialStock.json
@@ -0,0 +1,3 @@
+{
+ "name": "WmsMaterialStock"
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/enum.ts b/HIAWms/web/src/widgets/WmsMaterialStock/enum.ts
new file mode 100644
index 0000000..947c2b0
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/enum.ts
@@ -0,0 +1,15 @@
+export interface TabType {
+ label: string
+ name: string
+ columns?: any[]
+ data?: any[]
+ isFooter: boolean
+ [key: string]: any
+}
+
+export const permissionCodes = {
+ 'wmsMaterialStock-list': '鍒楄〃-鍒楄〃',
+ 'wmsMaterialStock-add': '鍒楄〃-娣诲姞',
+ 'wmsMaterialStock-import': '鍒楄〃-瀵煎叆',
+ 'wmsMaterialStock-output': '鍒楄〃-杈撳嚭',
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/index.ts b/HIAWms/web/src/widgets/WmsMaterialStock/index.ts
new file mode 100644
index 0000000..bbe6aab
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/index.ts
@@ -0,0 +1,14 @@
+import WmsMaterialStock from './Views/WmsMaterialStock'
+import Setting from '@/components/Setting/Setting'
+import { provider } from '@/provider/index'
+import p from '../../assets/svg/p.svg'
+
+export default {
+ is: 'WmsMaterialStock',
+ name: '搴撳瓨淇℃伅',
+ category: 'run',
+ icon: p,
+ authorizationRequired: false,
+ canvasView: provider(WmsMaterialStock),
+ settingsView: Setting,
+}
diff --git a/HIAWms/web/src/widgets/WmsMaterialStock/type/Type.d.ts b/HIAWms/web/src/widgets/WmsMaterialStock/type/Type.d.ts
new file mode 100644
index 0000000..aff4bc5
--- /dev/null
+++ b/HIAWms/web/src/widgets/WmsMaterialStock/type/Type.d.ts
@@ -0,0 +1,45 @@
+import { Component } from 'vue'
+
+export interface DataItemType {
+ id?: string
+ name?: string
+ code?: string
+ description?: string
+ label?: string
+ value?: string | number
+}
+
+export interface WmsMaterialStockBaseType {
+ id?: string
+ name?: string
+ code?: string
+ value?: number
+ description?: string
+ options?: Array<DataItemType>
+ abilityValue?: number | string
+ data?: DataItemType
+ defaultValue?: string | number
+ flow: string
+}
+
+export interface FlowDefinitionType {
+ id?: string
+ name?: string
+ code?: string
+ description?: string
+}
+
+export type ModuleType = Record<
+ string,
+ {
+ default: Record<string, string>
+ name: string
+ }
+>
+
+export interface TabItem {
+ name: string
+ label: string
+ component: Component
+ hidden?: boolean
+}
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
index 326c88d..a23713e 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
@@ -145,8 +145,8 @@
areaDesc: formData.value.areaDesc, // 鎻忚堪
areaStatus: formData.value.areaStatus, // 搴撳尯鐘舵��
areaType: formData.value.areaType, // 搴撳尯绫诲瀷
- storeCode: formData.value.storeCode, // 浠撳簱浠g爜
- // storeName: formData.value.storeName, // 浠撳簱鍚嶇О
+ storeCode: formData.value.storeCode.areaCode, // 浠撳簱浠g爜
+ storeName: formData.value.storeCode.storeName, // 浠撳簱鍚嶇О
remark: formData.value.remark, // 澶囨敞
}
if (!current.value) {
--
Gitblit v1.9.3