From 14f9c8378bde7d9a8d8f1fcc393e0e8d49eced82 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周五, 09 5月 2025 17:44:29 +0800
Subject: [PATCH] 查找空库位,查找库存
---
HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace导出模板.xlsx | 0
HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx | 6
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs | 46 +
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs | 161 ++++
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs | 26
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs | 239 ++++++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs | 18
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs | 1
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs | 4
HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts | 2
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs | 1
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs | 113 +++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs | 95 ++
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs | 4
HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx | 6
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs | 53 +
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs | 15
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs | 24
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs | 43 +
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs | 33
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs | 44 +
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs | 21
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs | 141 +++
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs | 430 +++++++++++
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs | 13
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs | 12
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs | 17
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs | 103 ++
HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs | 16
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs | 188 +++++
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs | 6
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs | 66 +
HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx | 13
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs | 2
HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs | 4
HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs | 26
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs | 16
HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs | 9
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs | 67 +
61 files changed, 2,016 insertions(+), 134 deletions(-)
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
index 7e1295f..1c0af31 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
@@ -56,7 +56,7 @@
const formItems = reactive([
{
label: '鐗╂枡缂栫爜',
- prop: 'materialCode',
+ prop: 'materialNo',
el: 'input',
disabled: disabled,
placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮�',
@@ -214,7 +214,7 @@
const onConfirm = async () => {
await formRef.value?.validate()
const data = {
- materialCode: formData.value.materialCode,
+ materialNo: formData.value.materialNo,
materialName: formData.value.materialName,
purchaseType: formData.value.purchaseType,
materialType: formData.value.materialType,
@@ -279,7 +279,7 @@
const res = await wmsMaterialDrawer.getWmsMaterialDetail(current.value)
formData.value = {
- materialCode: res.materialCode,
+ materialNo: res.materialNo,
materialName: res.materialName,
purchaseType: res.purchaseType,
materialType: res.materialType,
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
index a6762bf..084b68f 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
@@ -5,7 +5,7 @@
title: '搴忓彿',
},
{
- field: 'materialCode',
+ field: 'materialNo',
title: '鐗╂枡缂栫爜',
},
{
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
index a2e2c16..7acaa1b 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
@@ -62,7 +62,7 @@
// 鏂板鐨勬煡璇㈡潯浠�
const queryForm = ref({
- materialCode: '',
+ materialNo: '',
materialName: '',
materialType: '',
purchaseType: '',
@@ -122,7 +122,7 @@
// 閲嶇疆鏌ヨ鏉′欢
const resetQuery = () => {
queryForm.value = {
- materialCode: '',
+ materialNo: '',
materialName: '',
materialType: '',
purchaseType: '',
@@ -216,7 +216,7 @@
</ElFormItem>
<ElFormItem label="鐗╂枡缂栫爜">
<ElInput
- v-model={queryForm.value.materialCode}
+ v-model={queryForm.value.materialNo}
placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
clearable
class={styles.formItem}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
index 0aef04f..ca0e0ed 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
@@ -64,7 +64,7 @@
materialName: '',
containerType: '',
containerStatus: '',
- storageTypeNo: '',
+ storageTypeNo: 1,
placeStatus: '',
placeNo: '',
isLock: '',
@@ -77,7 +77,7 @@
...queryForm.value,
containerType: queryForm.value.containerType || '', // 澶勭悊涓嬫媺
containerStatus: queryForm.value.containerStatus || '',
- storageTypeNo: queryForm.value.storageTypeNo || '', // 澶勭悊涓嬫媺
+ storageTypeNo: queryForm.value.storageTypeNo || 1, // 澶勭悊涓嬫媺
placeStatus: queryForm.value.placeStatus || '',
islock: queryForm.value.isLock || '',
emptyContainer: queryForm.value.emptyContainer || '',
@@ -147,6 +147,7 @@
// 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
onMounted(() => {
fetchEnumData()
+ handleQuery()
})
// 鏂板鐨勬煡璇㈡柟娉�
@@ -164,7 +165,7 @@
materialName: '',
containerType: '',
containerStatus: '',
- storageTypeNo: '',
+ storageTypeNo: 1,
placeStatus: '',
placeNo: '',
isLock: '',
@@ -186,7 +187,10 @@
params,
autoHeight,
} = props
-
+ props.params = {
+ ...queryParams.value,
+ ...params,
+ }
return (
<div
class={{
@@ -334,7 +338,6 @@
<ElSelect
v-model={queryForm.value.storageTypeNo}
placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
- clearable
loading={enumOptions.storageTypeNo.length === 0}
class={styles.formItem}
>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
index 2efb842..bf177fb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
@@ -45,6 +45,6 @@
/// <summary>
/// 缁戝畾鏁伴噺
/// </summary>
- public int MaterialStockNumber { get; set; }
+ public int StockNumber { get; set; }
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
index d4711ac..4c702b1 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
@@ -21,4 +21,20 @@
/// </summary>
public string MaterialModelDesc { get; set; }
}
+
+ /// <summary>
+ /// 搴撲綅鍒楄〃杈撳嚭
+ /// </summary>
+ public class PlaceListOutput
+ {
+ /// <summary>
+ /// 搴撲綅鍙�
+ /// </summary>
+ public string PlaceNo { get; set; }
+
+ /// <summary>
+ /// 搴撲綅鍙�
+ /// </summary>
+ public string PlaceNoDesc { get; set; }
+ }
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs
new file mode 100644
index 0000000..3e91603
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs
@@ -0,0 +1,239 @@
+using CmsQueryExtensions.Extension;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴鏌ヨ鍙傛暟
+/// </summary>
+public class GetWmsContainerPlaceInput : ExtensiblePagedAndSortedResultRequestDto
+{
+
+ #region 鍏抽敭瀛楁煡璇�
+
+ /// <summary>
+ /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛�
+ /// </summary>
+ public string searchVal { get; set; }
+
+ /// <summary>
+ /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ [NoAutoQuery]
+ public string str_searchFormInputAttrs { get; set; }
+ /// <summary>
+ /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級
+ /// </summary>
+ public List<string> searchFormInputAttrs
+ {
+ get
+ {
+ if (!string.IsNullOrEmpty(str_searchFormInputAttrs))
+ {
+ return str_searchFormInputAttrs.Split(',').ToList();
+ }
+ return new List<string>();
+ }
+ }
+
+ #endregion
+
+ /// <summary>
+ /// 搴撲綅缂栫爜
+ /// </summary>
+ public string PlaceNo { get; set; }
+
+ /// <summary>
+ /// 搴撲綅缂栫爜-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum PlaceNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 缂栫爜
+ /// </summary>
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 缂栫爜-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int? Sort { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鍚嶇О
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> BindTime { get; set; }
+
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> CreationTime { get; set; }
+
+
+ /// <summary>
+ /// 鍒涘缓浜篒D
+ /// </summary>
+ public string CreatorId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜篒D-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 淇敼鏃堕棿
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> LastModificationTime { get; set; }
+
+
+ /// <summary>
+ /// 淇敼浜篒D
+ /// </summary>
+ public string LastModifierId { get; set; }
+
+ /// <summary>
+ /// 淇敼浜篒D-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鏄惁鍒犻櫎
+ /// </summary>
+ public bool? IsDeleted { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍒犻櫎-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ /// <summary>
+ /// 鍒犻櫎浜篒D
+ /// </summary>
+ public string DeleterId { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎浜篒D-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍒犻櫎鏃堕棿
+ /// </summary>
+ //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+ [HighSearchRangeAttribute]
+ public List<string> DeletionTime { get; set; }
+
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ public string CreatorName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鍒犻櫎澶囨敞
+ /// </summary>
+ public string DeleteRemark { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎澶囨敞-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎵╁睍瀛楁1
+ /// </summary>
+ public string ExtraField1 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁1-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎵╁睍瀛楁2
+ /// </summary>
+ public string ExtraField2 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁2-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎵╁睍瀛楁3
+ /// </summary>
+ public string ExtraField3 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁3-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 淇敼浜�
+ /// </summary>
+ public string LastModifierName { get; set; }
+
+ /// <summary>
+ /// 淇敼浜�-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ /// <summary>
+ /// 鎿嶄綔澶囨敞
+ /// </summary>
+ public string OperationRemark { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔澶囨敞-鏌ヨ鍏崇郴杩愮畻绗�
+ /// </summary>
+ public SearchFilterModeEnum OperationRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs
new file mode 100644
index 0000000..537023d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴鍒涘缓鍙傛暟瀵硅薄
+/// </summary>
+public class WmsContainerPlaceCreateDto : WmsContainerPlaceCreateOrUpdateDtoBase
+{
+ /// <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/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..4676901
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs
@@ -0,0 +1,95 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using System;
+using Volo.Abp.Application.Dtos;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴鍒涘缓鎴栨洿鏂板熀绫�
+/// </summary>
+public abstract class WmsContainerPlaceCreateOrUpdateDtoBase : ExtensibleEntityDto
+{
+ /// <summary>
+ /// 搴撲綅缂栫爜
+ /// </summary>
+ public string PlaceNo { get; set; }
+
+ /// <summary>
+ /// 缂栫爜
+ /// </summary>
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int Sort { get; set; }
+
+ /// <summary>
+ /// 鍚嶇О
+ /// </summary>
+ public DateTime BindTime { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜篒D
+ /// </summary>
+ public string? CreatorId { get; set; }
+
+ /// <summary>
+ /// 淇敼浜篒D
+ /// </summary>
+ public string? LastModifierId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ public string? CreatorName { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎澶囨敞
+ /// </summary>
+ public string? DeleteRemark { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁1
+ /// </summary>
+ public string? ExtraField1 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁2
+ /// </summary>
+ public string? ExtraField2 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁3
+ /// </summary>
+ public string? ExtraField3 { get; set; }
+
+ /// <summary>
+ /// 淇敼浜�
+ /// </summary>
+ public string? LastModifierName { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔澶囨敞
+ /// </summary>
+ public string? OperationRemark { get; set; }
+
+
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsContainerPlaceCreateOrUpdateDtoBase"/> class.
+ /// </summary>
+ public WmsContainerPlaceCreateOrUpdateDtoBase() : base(false)
+ {
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs
new file mode 100644
index 0000000..1a3aae3
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs
@@ -0,0 +1,141 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CmsQueryExtensions;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.Domain.Entities;
+
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴鏁版嵁鍙傛暟瀵硅薄
+/// </summary>
+public class WmsContainerPlaceDto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 搴撲綅缂栫爜
+ /// </summary>
+ public string PlaceNo { get; set; }
+
+ /// <summary>
+ /// 缂栫爜
+ /// </summary>
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ public int Sort { get; set; }
+
+ /// <summary>
+ /// 鍚嶇О
+ /// </summary>
+ public DateTime BindTime { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍灞炴��
+ /// </summary>
+ public ExtraPropertyDictionary? ExtraProperties { get; set; }
+
+ /// <summary>
+ /// 骞跺彂鎴�
+ /// </summary>
+ public string? ConcurrencyStamp { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public DateTime CreationTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜篒D
+ /// </summary>
+ public string? CreatorId { get; set; }
+
+ /// <summary>
+ /// 淇敼鏃堕棿
+ /// </summary>
+ public DateTime? LastModificationTime { get; set; }
+
+ /// <summary>
+ /// 淇敼浜篒D
+ /// </summary>
+ public string? LastModifierId { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍒犻櫎
+ /// </summary>
+ public bool IsDeleted { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎浜篒D
+ /// </summary>
+ public string? DeleterId { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎鏃堕棿
+ /// </summary>
+ public DateTime? DeletionTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ public string? CreatorName { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎澶囨敞
+ /// </summary>
+ public string? DeleteRemark { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁1
+ /// </summary>
+ public string? ExtraField1 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁2
+ /// </summary>
+ public string? ExtraField2 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁3
+ /// </summary>
+ public string? ExtraField3 { get; set; }
+
+ /// <summary>
+ /// 淇敼浜�
+ /// </summary>
+ public string? LastModifierName { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔澶囨敞
+ /// </summary>
+ public string? OperationRemark { 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/WmsContainerPlace/WmsContainerPlaceExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs
new file mode 100644
index 0000000..3da5605
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs
@@ -0,0 +1,103 @@
+using MiniExcelLibs.Attributes;
+using System.ComponentModel.DataAnnotations;
+using System;
+using System.ComponentModel;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴瀵煎嚭妯″瀷
+/// </summary>
+public class WmsContainerPlaceExportModel
+{
+ /// <summary>
+ /// 搴撲綅缂栫爜
+ /// </summary>
+ [ExcelColumn(Name = "搴撲綅缂栫爜", Width = 25)]
+ public string PlaceNo { get; set; }
+
+ /// <summary>
+ /// 缂栫爜
+ /// </summary>
+ [ExcelColumn(Name = "缂栫爜", Width = 25)]
+ public string ContainerNo { get; set; }
+
+ /// <summary>
+ /// 鎺掑簭
+ /// </summary>
+ [ExcelColumn(Name = "鎺掑簭", Width = 25)]
+ public int Sort { get; set; }
+
+ /// <summary>
+ /// 鍚嶇О
+ /// </summary>
+ [ExcelColumn(Name = "鍚嶇О", Width = 25)]
+ public DateTime BindTime { get; set; }
+
+ /// <summary>
+ /// 鏄惁绂佺敤
+ /// </summary>
+ [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
+ public bool? IsDisabled { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [ExcelColumn(Name = "澶囨敞", Width = 25)]
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [ExcelColumn(Name = "鍒涘缓浜�", Width = 25)]
+ public string CreatorName { get; set; }
+
+ /// <summary>
+ /// 鍒犻櫎澶囨敞
+ /// </summary>
+ [ExcelColumn(Name = "鍒犻櫎澶囨敞", Width = 25)]
+ public string DeleteRemark { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁1
+ /// </summary>
+ [ExcelColumn(Name = "鎵╁睍瀛楁1", Width = 25)]
+ public string ExtraField1 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁2
+ /// </summary>
+ [ExcelColumn(Name = "鎵╁睍瀛楁2", Width = 25)]
+ public string ExtraField2 { get; set; }
+
+ /// <summary>
+ /// 鎵╁睍瀛楁3
+ /// </summary>
+ [ExcelColumn(Name = "鎵╁睍瀛楁3", Width = 25)]
+ public string ExtraField3 { get; set; }
+
+ /// <summary>
+ /// 淇敼浜�
+ /// </summary>
+ [ExcelColumn(Name = "淇敼浜�", Width = 25)]
+ public string LastModifierName { get; set; }
+
+ /// <summary>
+ /// 鎿嶄綔澶囨敞
+ /// </summary>
+ [ExcelColumn(Name = "鎿嶄綔澶囨敞", Width = 25)]
+ public string OperationRemark { get; set; }
+
+
+
+ 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/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs
new file mode 100644
index 0000000..a2c2bd9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Domain.Entities;
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴鏇存柊鍙傛暟瀵硅薄
+/// </summary>
+public class WmsContainerPlaceUpdateDto : WmsContainerPlaceCreateOrUpdateDtoBase, IHasConcurrencyStamp
+{
+ /// <summary>
+ /// 骞跺彂鎴�
+ /// </summary>
+ public string ConcurrencyStamp { get; set; }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs
new file mode 100644
index 0000000..33e108b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs
@@ -0,0 +1,33 @@
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace
+{
+ /// <summary>
+ /// 搴撲綅瀹瑰櫒鍏崇郴瀵煎叆妯″瀷
+ /// </summary>
+ public class WmsContainerPlacesImportModel
+ {
+ private List<WmsContainerPlaceImportModel> _WmsContainerPlaces = new();
+
+ public List<WmsContainerPlaceImportModel> WmsContainerPlaces
+ {
+ get => _WmsContainerPlaces;
+ set
+ {
+ _WmsContainerPlaces = value;
+ var rowIndex = 2;
+ _WmsContainerPlaces?.ForEach(x => x.RowIndex = rowIndex++);
+ }
+ }
+
+ /// <summary>
+ /// 搴撲綅瀹瑰櫒鍏崇郴瀵煎叆妯″瀷
+ /// </summary>
+ public class WmsContainerPlaceImportModel : WmsContainerPlaceExportModel
+ {
+ /// <summary>
+ /// 琛屽彿
+ /// </summary>
+ public int RowIndex { 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 c6da695..fd3e1ed 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
@@ -96,7 +96,7 @@
/// <summary>
/// 鏄惁绌烘墭
/// </summary>
- public YesNoEnum EmptyContainer { get; protected set; }
+ public YesNoEnum EmptyContainer { get; set; }
/// <summary>
/// 鍏ュ簱鏃堕棿
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs
index 5c5e666..b6c268d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs
@@ -17,7 +17,7 @@
/// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
/// </summary>
[Description("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")]
- public string MaterialCode { get; set; }
+ public string MaterialNo { 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 5427e01..714696f 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
@@ -21,7 +21,7 @@
/// <summary>
/// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
/// </summary>
- public string MaterialCode { get; set; }
+ public string MaterialNo { get; set; }
/// <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 cfe0a7d..934c870 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
@@ -11,7 +11,7 @@
/// <summary>
/// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
/// </summary>
- public string MaterialCode { get; set; }
+ public string MaterialNo { get; set; }
/// <summary>
/// 鐗╂枡鍚嶇О
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 c6044db..e7512b7 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
@@ -13,7 +13,7 @@
/// <summary>
/// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
/// </summary>
- public string MaterialCode { get; set; }
+ public string MaterialNo { get; set; }
/// <summary>
/// 鐗╂枡鍚嶇О
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 e34c158..fe081f9 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
@@ -16,7 +16,7 @@
/// </summary>
/// <example>MAT-2023-001</example>
[ExcelColumn(Name = "鐗╂枡缂栫爜", Width = 25)]
- public string MaterialCode { get; set; }
+ public string MaterialNo { get; set; }
/// <summary>
/// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs
new file mode 100644
index 0000000..83eba00
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs
@@ -0,0 +1,21 @@
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services
+{
+ public interface IWmsCommonAppService
+ {
+ /// <summary>
+ /// 鏌ユ壘鍙敤搴撲綅
+ /// </summary>
+ /// <param name="materialModel"></param>
+ /// <param name="requiredNum"></param>
+ /// <param name="materialNo"></param>
+ /// <returns></returns>
+ Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel, int requiredNum, string materialNo = "");
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs
new file mode 100644
index 0000000..685f595
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+using Volo.Abp.Application.Services;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴搴旂敤鏈嶅姟鎺ュ彛
+/// </summary>
+public interface IWmsContainerPlaceAppService : ICrudAppService<WmsContainerPlaceDto, Guid, GetWmsContainerPlaceInput, WmsContainerPlaceCreateDto, WmsContainerPlaceUpdateDto>
+{
+ /// <summary>
+ /// 鍏嬮殕搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ Task<List<WmsContainerPlaceDto>> CloneAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// 鍒犻櫎搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ Task DeleteManyAsync(IEnumerable<Guid> ids);
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="sort"></param>
+ /// <returns></returns>
+ Task AdjustSortAsync(Guid id, int sort);
+
+ /// <summary>
+ /// 瀵煎叆搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task ImportAsync(WmsContainerPlacesImportModel input);
+
+ /// <summary>
+ /// 瀵煎嚭搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerPlaceInput input);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
index 00bb43d..06ef88c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
@@ -1,5 +1,7 @@
-锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CmsQueryExtensions;
using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase;
using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlaceCreateOrUpdateDtoBase;
@@ -34,5 +36,19 @@
/// </summary>
/// <returns></returns>
Task<List<PlaceAisleForListOuptut>> GetAisleListAsync();
+
+
+ /// <summary>
+ /// 鑾峰彇鏈哄瀷
+ /// </summary>
+ /// <returns></returns>
+ Task<List<MaterialModelOutput>> GetMaterialModeListAsync();
+
+ /// <summary>
+ /// 鑾峰彇搴撲綅鍒楄〃
+ /// </summary>
+ /// <param name="placeType"></param>
+ /// <returns></returns>
+ Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType);
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs
index 5be0b4f..097119d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs
@@ -1,4 +1,15 @@
锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+using CMS.Plugin.HIAWms.Domain.WmsContainers;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
+using CMS.Plugin.HIAWms.Domain.WmsPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsTask;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,21 +24,161 @@
/// </summary>
public class WmsBindInStockAssService : CMSPluginAppService
{
- public async Task BindMaterialContaienrAsync(BindMaterialInput input)
+ private readonly IWmsMaterialRepository _wmsMaterialRepository;
+ private readonly IWmsContainerRepository _wmsContainerRepository;
+ private readonly IWmsPlaceRepository _wmsPlaceRepository;
+ private readonly IWmsMaterialContainerRepository _wmsMaterialContainerRepository;
+ private readonly IWmsContainerPlaceRepository _wmsContainerPlaceRepository;
+ private readonly IWmsMaterialInfoRepository _wmsMaterialInfoRepository;
+ private readonly IWmsMaterialStockAppService _wmsMaterialStockAppService;
+ private readonly IWmsCommonAppService _wmsCommonAppService;
+ private readonly IWmsTaskRepository _wmsTaskRepository;
+ private readonly IWmsTaskAppService _wmsTaskAppService;
+
+ public WmsBindInStockAssService(IWmsMaterialRepository wmsMaterialRepository,
+ IWmsContainerRepository wmsContainerRepository,
+ IWmsPlaceRepository wmsPlaceRepository
+,
+ IWmsMaterialContainerRepository wmsMaterialContainerRepository,
+ IWmsContainerPlaceRepository wmsContainerPlaceRepository,
+ IWmsMaterialInfoRepository wmsMaterialInfoRepository,
+ IWmsMaterialStockAppService wmsMaterialStockAppService,
+ IWmsCommonAppService wmsCommonAppService,
+ IWmsTaskRepository wmsTaskRepository,
+ IWmsTaskAppService wmsTaskAppService)
+ {
+ _wmsMaterialRepository = wmsMaterialRepository;
+ _wmsContainerRepository = wmsContainerRepository;
+ _wmsPlaceRepository = wmsPlaceRepository;
+ _wmsMaterialContainerRepository = wmsMaterialContainerRepository;
+ _wmsContainerPlaceRepository = wmsContainerPlaceRepository;
+ _wmsMaterialInfoRepository = wmsMaterialInfoRepository;
+ _wmsMaterialStockAppService = wmsMaterialStockAppService;
+ _wmsCommonAppService = wmsCommonAppService;
+ _wmsTaskRepository = wmsTaskRepository;
+ _wmsTaskAppService = wmsTaskAppService;
+ }
+
+ public async Task BindMaterialContaienrAsync(BindInstockInput input)
{
if (string.IsNullOrEmpty(input.MaterialModel)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); }
if (string.IsNullOrEmpty(input.MaterialBatch)) { throw new UserFriendlyException("璇疯緭鍏ユ壒娆″彿"); }
- if (input.MaterialStockNumber<=0) { throw new UserFriendlyException("鍏ュ簱鏁伴噺蹇呴』澶т簬0"); }
+ if (input.StockNumber <= 0) { throw new UserFriendlyException("鍏ュ簱鏁伴噺蹇呴』澶т簬0"); }
+ #region 搴熷純
+ //string containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString();
+ //// 5. 鍒涘缓鎵樼洏
+ //var container = new WmsContainer
+ //{
+ // ContainerNo = containerNo,
+ // ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI,
+ // ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG,
+ //};
+ //await _wmsContainerRepository.InsertAsync(container);
+ //var materialContainerList = new List<WmsMaterialContainer>();
+ //var materialInfoList = new List<WmsMaterialInfo>();
+ //for (int i = 0; i < input.MaterialStockNumber; i++)
+ //{
+ // string materialId = Guid.NewGuid().ToString("N");
+ // var materialContainer = new WmsMaterialContainer
+ // {
+ // MaterialId = materialId,
+ // ContainerNo = containerNo,
+ // };
+ // materialContainerList.Add(materialContainer);
+
+ // var materialInfo = new WmsMaterialInfo
+ // {
+
+ // };
+ // materialInfoList.Add(materialInfo);
+ //}
+
+ //await _wmsMaterialContainerRepository.InsertManyAsync(materialContainerList);
+ //await _wmsMaterialInfoRepository.InsertManyAsync(materialInfoList);
+ #endregion
+
+ var material = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel);
+ if (material == null)
+ {
+ throw new UserFriendlyException($"鐗╂枡鍨嬪彿 {input.MaterialModel} 涓嶅瓨鍦紒");
+ }
+
+ // 5. 鍒涘缓鎵樼洏
+ var containerNo = input.ContainerNo;
+ if (string.IsNullOrEmpty(containerNo))
+ {
+ containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString();
+ }
+ var container = new WmsContainer
+ {
+ ContainerNo = containerNo,
+ ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI,
+ ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG,
+ };
+ await _wmsContainerRepository.InsertAsync(container);
+
+ var materialStock = new WmsMaterialStockCreateDto
+ {
+ MaterialNo = material.MaterialNo,
+ MaterialName = material.MaterialName,
+ MaterialBatch = input.MaterialBatch,
+ StockNumber = input.StockNumber,
+ CheckStatus = Domain.Shared.Enums.MaterialCheckStatusEnum.HEGE,
+ IsLock = Domain.Shared.Enums.YesNoEnum.N,
+ PlaceNo = input.PlaceNo,
+ ContainerNo = containerNo,
+ EmptyContainer = Domain.Shared.Enums.YesNoEnum.N,
+ };
+ await _wmsMaterialStockAppService.CreateAsync(materialStock);
}
+
+ /// <summary>
+ /// 缁勭洏鍏ュ簱
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
public async Task BindInStockAsync(BindInstockInput input)
{
- if(string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); }
+ if (string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); }
- var bindInput = ObjectMapper.Map<BindInstockInput, BindMaterialInput>(input);
- await BindMaterialContaienrAsync(bindInput);
+ input.ContainerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString();
+ await BindMaterialContaienrAsync(input);
+
+ // 鐢熸垚浠诲姟
+ var plactDict = await _wmsCommonAppService.FindAvailablePlacesAsync(input.MaterialNo, input.StockNumber);
+ var taskList = new List<WmsTask>();
+ foreach (var kvp in plactDict)
+ {
+ var place = kvp.Key; // WmsPlace瀵硅薄
+ var quantity = kvp.Value; // 鍒嗛厤鏁伴噺
+
+ for (int i = 0; i < quantity; i++)
+ {
+ var task = new WmsTask
+ {
+ TaskNo = $"RK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}",
+ ContainerNo = input.ContainerNo,
+ SourcePlace = input.PlaceNo,
+ ToPlace = place.PlaceNo,
+ TaskType = TaskTypeEnum.RUKU,
+ SonTaskType = SonTaskTypeEnum.RGRUKU,
+ TaskStatus = WmsTaskStatus.WEIZHIXING,
+ TaskLevel = 999,
+ Aisle = 1,
+ DodeviceId = 0,
+ TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart,
+ IsNextTask = (int)YesNoEnum.Y,
+ IsRead = true,
+ MutableParam1 = input.MaterialModel,
+ };
+ taskList.Add(task);
+ }
+ }
+ await _wmsTaskRepository.InsertManyAsync(taskList);
}
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
index e8ef141..63d57b9 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
@@ -1,4 +1,6 @@
锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks;
using CMS.Plugin.HIAWms.Domain.WmsPlaces;
@@ -14,7 +16,7 @@
/// <summary>
/// 鍏叡鎿嶄綔鏈嶅姟
/// </summary>
- public class WmsCommonAppService : CMSPluginAppService
+ public class WmsCommonAppService : CMSPluginAppService,IWmsCommonAppService
{
private readonly IWmsMaterialRepository _wmsMaterialRepository;
private readonly IWmsPlaceRepository _wmsPlaceRepository;
@@ -30,17 +32,6 @@
_wmsMaterialStockRepository = wmsMaterialStockRepository;
}
- public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
- {
- var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
- if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); ;
-
- return materialList.Select(material => new MaterialModelOutput
- {
- MaterialModel = material.MaterialModel,
- MaterialModelDesc = material.MaterialModel
- }).ToList();
- }
/// <summary>
/// 鏌ユ壘绌哄簱浣�
@@ -50,11 +41,12 @@
/// <param name="requiredNum"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
- public async Task<Dictionary<WmsPlace, int>> FindAvailablePlacesAsync(string materialModel, string materialNo, int requiredNum)
+ public async Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel,int requiredNum, string materialNo="" )
{
// 1. 鑾峰彇鎵�鏈夊簱瀛樺拰搴撲綅淇℃伅
var stockList = await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock());
- var allPlaceList = await _wmsPlaceRepository.GetListAsync(new WmsPlace());
+
+ var allPlaceList = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(await _wmsPlaceRepository.GetListAsync(new WmsPlace()));
// 2. 鏌ユ壘鐩稿悓鐗╂枡鍨嬪彿鍜岀紪鍙风殑搴撳瓨锛堟寜搴撳瓨閲忛檷搴忥級
var sameModelStocks = stockList
@@ -63,7 +55,7 @@
.OrderByDescending(x => x.StockNumber)
.ToList();
- var availablePlaces = new Dictionary<WmsPlace, int>();
+ var availablePlaces = new Dictionary<WmsPlaceDto, int>();
int remainingNum = requiredNum;
// 3. 浼樺厛妫�鏌ュ凡鏈夊簱瀛樼殑搴撲綅鏄惁鑳藉瓨鏀撅紙鐩稿悓 MaterialNo锛�
@@ -108,5 +100,50 @@
return availablePlaces;
}
+
+ /// <summary>
+ /// 鏌ユ壘搴撳瓨
+ /// </summary>
+ /// <param name="materialModel"></param>
+ /// <param name="requiredNum"></param>
+ /// <param name="materialNo"></param>
+ /// <returns></returns>
+ public async Task<Dictionary<string, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = "")
+ {
+ // 1. 鑾峰彇鎵�鏈夊簱瀛橈紙鎺掗櫎閿佸畾搴撳瓨锛�
+ var stockList = (await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock()))
+ .Where(x => x.IsLock == Domain.Shared.Enums.YesNoEnum.N)
+ .ToList();
+
+ // 2. 绛涢�夊尮閰嶇墿鏂�
+ var availableStocks = stockList
+ .Where(x => x.MaterialModel == materialModel)
+ .WhereIf(!string.IsNullOrEmpty(materialNo), x => x.MaterialNo == materialNo)
+ .OrderBy(x => x.StockNumber) // 浼樺厛浠庡簱瀛樺皯鐨勫簱浣嶅嚭
+ .ToList();
+
+ // 3. 妫�鏌ユ�诲簱瀛樻槸鍚﹁冻澶�
+ int totalAvailable = availableStocks.Sum(x => x.StockNumber);
+ if (totalAvailable < requiredNum)
+ {
+ throw new UserFriendlyException(
+ $"搴撳瓨涓嶈冻锛侀渶姹�: {requiredNum}, 鍙敤: {totalAvailable}, 缂�: {requiredNum - totalAvailable}");
+ }
+
+ // 4. 璁$畻鍚勫簱浣嶅嚭搴撴暟閲�
+ var allocation = new Dictionary<string, int>(); // <搴撲綅鍙�, 鍑哄簱鏁�>
+ int remaining = requiredNum;
+
+ foreach (var stock in availableStocks)
+ {
+ if (remaining <= 0) break;
+
+ int deductAmount = Math.Min(stock.StockNumber, remaining);
+ allocation.Add(stock.PlaceNo, deductAmount);
+ remaining -= deductAmount;
+ }
+
+ return allocation;
+ }
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs
new file mode 100644
index 0000000..5f50a02
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs
@@ -0,0 +1,430 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared;
+using CmsQueryExtensions;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+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;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴搴旂敤鏈嶅姟
+/// </summary>
+public class WmsContainerPlaceAppService : CMSPluginAppService, IWmsContainerPlaceAppService
+{
+ private readonly IWmsContainerPlaceRepository wmsContainerPlaceRepository;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsContainerPlaceAppService"/> class.
+ /// </summary>
+ /// <param name="WmsContainerPlaceRepository">The task job repository.</param>
+ public WmsContainerPlaceAppService(IWmsContainerPlaceRepository _WmsContainerPlaceRepository)
+ {
+ wmsContainerPlaceRepository = _WmsContainerPlaceRepository;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎸囧畾搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsContainerPlaceDto> GetAsync(Guid id)
+ {
+ return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(await wmsContainerPlaceRepository.GetAsync(id));
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public virtual async Task<PagedResultDto<WmsContainerPlaceDto>> GetListAsync(GetWmsContainerPlaceInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsContainerPlace.Sort);
+ }
+
+ #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = DynamicGetQueryParams(input);
+
+ #endregion
+
+ var count = await wmsContainerPlaceRepository.GetCountAsync(whereConditions);
+ var list = await wmsContainerPlaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
+
+ return new PagedResultDto<WmsContainerPlaceDto>(count, ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(list));
+ }
+
+ /// <summary>
+ /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ /// </summary>
+ /// <param name="input">杈撳叆鍙傛暟</param>
+ /// <returns></returns>
+ private FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> DynamicGetQueryParams(GetWmsContainerPlaceInput input)
+ {
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsContainerPlace, GetWmsContainerPlaceInput>(input);
+ if (!whereConditions.IsSuccess)
+ {
+ throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg);
+ }
+
+ //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�
+ Expression<Func<WmsContainerPlace, bool>> extendExpression = a => a.IsDeleted == false;
+ // 浣跨敤 System.Linq.PredicateBuilder 鐨� And
+ var pres = (System.Linq.Expressions.Expression<Func<WmsContainerPlace, bool>>)(whereConditions.data);
+ whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression);
+
+ return whereConditions;
+ }
+
+ /// <summary>
+ /// 鏂板缓搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public virtual async Task<WmsContainerPlaceDto> CreateAsync(WmsContainerPlaceCreateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var exist = await wmsContainerPlaceRepository.NameExistAsync(input.PlaceNo);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]);
+ }
+
+ var maxSort = await wmsContainerPlaceRepository.GetMaxSortAsync();
+ var sort = input.Sort ?? maxSort;
+
+ var insertObj = ObjectMapper.Map<WmsContainerPlaceCreateDto, WmsContainerPlace>(input);
+ insertObj.Sort = sort;
+ input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
+
+ await wmsContainerPlaceRepository.InsertAsync(insertObj);
+
+ //if (input.Sort.HasValue && insertObj.Sort != maxSort)
+ //{
+ // await AdjustSortAsync(insertObj.Id, insertObj.Sort);
+ //}
+
+ return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(insertObj);
+ }
+
+ /// <summary>
+ /// 鏇存柊搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public virtual async Task<WmsContainerPlaceDto> UpdateAsync(Guid id, WmsContainerPlaceUpdateDto input)
+ {
+ await CheckCreateOrUpdateDtoAsync(input);
+
+ var updateObj = await wmsContainerPlaceRepository.GetAsync(id);
+ var exist = await wmsContainerPlaceRepository.NameExistAsync(input.PlaceNo, updateObj.Id);
+ if (exist)
+ {
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]);
+ }
+
+ updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
+ input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
+
+ updateObj.PlaceNo = input.PlaceNo;
+ updateObj.ContainerNo = input.ContainerNo;
+ updateObj.IsDisabled = input.IsDisabled;
+ updateObj.Remark = input.Remark;
+ updateObj.CreatorName = input.CreatorName;
+ updateObj.DeleteRemark = input.DeleteRemark;
+ updateObj.ExtraField1 = input.ExtraField1;
+ updateObj.ExtraField2 = input.ExtraField2;
+ updateObj.ExtraField3 = input.ExtraField3;
+ updateObj.LastModifierName = input.LastModifierName;
+ updateObj.OperationRemark = input.OperationRemark;
+
+
+ await wmsContainerPlaceRepository.UpdateAsync(updateObj);
+
+ return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(updateObj);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ public async Task<List<WmsContainerPlaceDto>> CloneAsync(IEnumerable<Guid> ids)
+ {
+ //var wmsContainerPlaces = new List<WmsContainerPlace>();
+ //if (ids != null)
+ //{
+ // var sort = await wmsContainerPlaceRepository.GetMaxSortAsync();
+ // foreach (var id in ids)
+ // {
+ // var WmsContainerPlace = await wmsContainerPlaceRepository.FindAsync(id);
+ // if (WmsContainerPlace != null)
+ // {
+ // var name = WmsContainerPlace.Name + WmsContainerPlaceConsts.CloneTag;
+ // var notExist = false;
+ // while (!notExist)
+ // {
+ // var exist = await wmsContainerPlaceRepository.NameExistAsync(name);
+ // if (exist || wmsContainerPlaces.Any(x => x.Name == name))
+ // {
+ // name += WmsContainerPlaceConsts.CloneTag;
+ // continue;
+ // }
+
+ // notExist = true;
+ // }
+
+ // //WmsContainerPlace = await wmsContainerPlaceRepository.InsertAsync(WmsContainerPlace.Clone(GuidGenerator.Create(), name, sort++));
+ // wmsContainerPlaces.Add(WmsContainerPlace);
+ // }
+ // }
+ //}
+
+ //return ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(wmsContainerPlaces);
+ return new List<WmsContainerPlaceDto>();
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍗曚釜搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return wmsContainerPlaceRepository.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎澶氫釜搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="ids"></param>
+ /// <returns></returns>
+ public async Task DeleteManyAsync(IEnumerable<Guid> ids)
+ {
+ foreach (var id in ids)
+ {
+ await DeleteAsync(id);
+ }
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id"></param>
+ /// <param name="sort"></param>
+ /// <returns></returns>
+ public virtual async Task AdjustSortAsync(Guid id, int sort)
+ {
+ var list = await wmsContainerPlaceRepository.GetListAsync(null, nameof(WmsContainerPlace.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 wmsContainerPlaceRepository.UpdateManyAsync(list);
+ }
+
+ /// <summary>
+ /// 瀵煎叆搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ /// <exception cref="UserFriendlyException"></exception>
+ public async Task ImportAsync(WmsContainerPlacesImportModel input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ var wmsContainerPlaceCreateDtos = new List<(int RowIndex, WmsContainerPlaceCreateDto Item)>();
+ var wmsContainerPlaceUpdateDtos = new List<(int RowIndex, Guid Id, WmsContainerPlaceUpdateDto Item)>();
+ var importItems = input.WmsContainerPlaces;
+
+ if (importItems != null && importItems.Any())
+ {
+ #region 瀵煎叆鏍¢獙
+
+ // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
+ var duplicateWmsContainerPlaces = importItems.GroupBy(x => x.PlaceNo).Where(x => x.Count() > 1).ToList();
+ if (duplicateWmsContainerPlaces?.Any() == true)
+ {
+ var duplicateWmsContainerPlaceMsgs = duplicateWmsContainerPlaces.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅");
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsContainerPlaceMsgs)}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ #endregion
+
+ foreach (var impItem in importItems)
+ {
+ if (impItem.PlaceNo.IsNullOrWhiteSpace())
+ {
+ continue;
+ }
+
+ if (impItem.PlaceNo.IsNullOrWhiteSpace())
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsContainerPlace鍚嶇О涓嶈兘涓虹┖";
+ throw new UserFriendlyException(errorMsg);
+ }
+
+ var oldWmsContainerPlace = await wmsContainerPlaceRepository.FindByNameAsync(impItem.PlaceNo);
+ if (oldWmsContainerPlace != null)
+ {
+ var wmsContainerPlaceUpdateDto = new WmsContainerPlaceUpdateDto
+ {
+ PlaceNo = impItem.PlaceNo,
+ ContainerNo = impItem.ContainerNo,
+ BindTime = impItem.BindTime,
+ IsDisabled = impItem.IsDisabled,
+ Remark = impItem.Remark,
+ CreatorName = impItem.CreatorName,
+ DeleteRemark = impItem.DeleteRemark,
+ ExtraField1 = impItem.ExtraField1,
+ ExtraField2 = impItem.ExtraField2,
+ ExtraField3 = impItem.ExtraField3,
+ LastModifierName = impItem.LastModifierName,
+ OperationRemark = impItem.OperationRemark,
+
+ };
+
+ wmsContainerPlaceUpdateDtos.Add((impItem.RowIndex, oldWmsContainerPlace.Id, wmsContainerPlaceUpdateDto));
+ }
+ else
+ {
+ var wmsContainerPlaceCreateDto = new WmsContainerPlaceCreateDto
+ {
+ PlaceNo = impItem.PlaceNo,
+ ContainerNo = impItem.ContainerNo,
+ BindTime = impItem.BindTime,
+ IsDisabled = impItem.IsDisabled,
+ Remark = impItem.Remark,
+ CreatorName = impItem.CreatorName,
+ DeleteRemark = impItem.DeleteRemark,
+ ExtraField1 = impItem.ExtraField1,
+ ExtraField2 = impItem.ExtraField2,
+ ExtraField3 = impItem.ExtraField3,
+ LastModifierName = impItem.LastModifierName,
+ OperationRemark = impItem.OperationRemark,
+
+ };
+
+ wmsContainerPlaceCreateDtos.Add((impItem.RowIndex, wmsContainerPlaceCreateDto));
+ }
+ }
+ }
+
+ // 鏂板
+ foreach (var wmsContainerPlaceDto in wmsContainerPlaceCreateDtos)
+ {
+ try
+ {
+ await CreateAsync(wmsContainerPlaceDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsContainerPlaceDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+
+ // 鏇存柊
+ foreach (var wmsContainerPlaceDto in wmsContainerPlaceUpdateDtos)
+ {
+ try
+ {
+ await UpdateAsync(wmsContainerPlaceDto.Id, wmsContainerPlaceDto.Item);
+ }
+ catch (Exception e)
+ {
+ var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsContainerPlaceDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+ throw new UserFriendlyException(errorMsg);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 瀵煎嚭搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerPlaceInput input)
+ {
+ Check.NotNull(input, nameof(input));
+
+ if (input.Sorting.IsNullOrWhiteSpace())
+ {
+ input.Sorting = nameof(WmsContainerPlace.Sort);
+ }
+
+ #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+
+ //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�
+ var whereConditions = DynamicGetQueryParams(input);
+
+ #endregion
+
+
+ var list = await wmsContainerPlaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
+ var result = ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(list);
+
+ var sheets = new Dictionary<string, object>
+ {
+ ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
+ };
+
+ var fileName = result.Count > 1 ? "搴撲綅瀹瑰櫒鍏崇郴鍒楄〃" : result.Count == 1 ? result[0]?.PlaceNo : "WmsContainerPlace妯$増";
+ return (sheets, fileName);
+ }
+
+ /// <summary>
+ /// 鏍¢獙搴撲綅瀹瑰櫒鍏崇郴锛屽綋鏂板缓鎴栨洿鏂版椂
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ protected Task CheckCreateOrUpdateDtoAsync(WmsContainerPlaceCreateOrUpdateDtoBase input)
+ {
+ Check.NotNull(input, nameof(input));
+ Check.NotNullOrWhiteSpace(input.PlaceNo, "搴撲綅缂栫爜", 50);
+ Check.NotNullOrWhiteSpace(input.ContainerNo, "缂栫爜", 64);
+ Check.NotNull(input.BindTime, "鍚嶇О");
+
+ return Task.CompletedTask;
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
index 8fdf80d..92399d4 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
@@ -1,7 +1,10 @@
-锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.WmsAreas;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.Domain.WmsPlaces;
using CMS.Plugin.HIAWms.Domain.WmsStores;
using CmsQueryExtensions;
@@ -23,12 +26,14 @@
private readonly IWmsStoreRepository _storeRepository;
private readonly IWmsAreaRepository _wmsAreaRepository;
private readonly IWmsPlaceRepository _wmsPlaceRepository;
+ private readonly IWmsMaterialRepository _wmsMaterialRepository;
- public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository)
+ public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialRepository wmsMaterialRepository)
{
_storeRepository = storeRepository;
_wmsAreaRepository = wmsAreaRepository;
_wmsPlaceRepository = wmsPlaceRepository;
+ _wmsMaterialRepository = wmsMaterialRepository;
}
public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput)
@@ -87,5 +92,39 @@
return result;
}
+
+ /// <summary>
+ /// 鑾峰彇鏈哄瀷
+ /// </summary>
+ /// <returns></returns>
+ public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
+ {
+ var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
+ if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); ;
+
+ return materialList.Select(material => new MaterialModelOutput
+ {
+ MaterialModel = material.MaterialModel,
+ MaterialModelDesc = material.MaterialModel
+ }).ToList();
+ }
+
+
+ /// <summary>
+ /// 鑾峰彇搴撳尯鍒楄〃
+ /// </summary>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType)
+ {
+ var placeList = await _wmsPlaceRepository.GetPlaceListForSelectAsync(placeType);
+ if (placeList == null || placeList.Count <= 0) return new List<PlaceListOutput>(); ;
+
+ return placeList.Select(place => new PlaceListOutput
+ {
+ PlaceNo = place.PlaceNo,
+ PlaceNoDesc = place.PlaceNo
+ }).ToList();
+ }
}
}
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 c44b1ae..6341792 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
@@ -56,10 +56,10 @@
{
await CheckCreateOrUpdateDtoAsync(input);
- var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode);
+ var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialNo);
if (exist)
{
- throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
}
var maxSort = await _wmsmaterialRepository.GetMaxSortAsync();
@@ -85,10 +85,10 @@
await CheckCreateOrUpdateDtoAsync(input);
var wmsmaterial = await _wmsmaterialRepository.GetAsync(id);
- var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode, wmsmaterial.Id);
+ var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialNo, wmsmaterial.Id);
if (exist)
{
- throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
+ throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
}
wmsmaterial.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
@@ -211,7 +211,7 @@
#region 瀵煎叆鏍¢獙
// 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
- var duplicateWmsMaterials = wmsmaterials.GroupBy(x => x.MaterialCode).Where(x => x.Count() > 1).ToList();
+ var duplicateWmsMaterials = wmsmaterials.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList();
if (duplicateWmsMaterials?.Any() == true)
{
var duplicateWmsMaterialMsgs = duplicateWmsMaterials.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key} 鍚嶇О閲嶅");
@@ -223,23 +223,23 @@
foreach (var wmsmaterial in wmsmaterials)
{
- if (wmsmaterial.MaterialCode.IsNullOrWhiteSpace() && wmsmaterial.MaterialName.IsNullOrWhiteSpace())
+ if (wmsmaterial.MaterialNo.IsNullOrWhiteSpace() && wmsmaterial.MaterialName.IsNullOrWhiteSpace())
{
continue;
}
- if (wmsmaterial.MaterialCode.IsNullOrWhiteSpace())
+ if (wmsmaterial.MaterialNo.IsNullOrWhiteSpace())
{
var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterial.RowIndex}琛岋細WmsMaterial鍚嶇О涓嶈兘涓虹┖";
throw new UserFriendlyException(errorMsg);
}
- var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(wmsmaterial.MaterialCode);
+ var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(wmsmaterial.MaterialNo);
if (oldWmsMaterial != null)
{
var wmsmaterialUpdateDto = new WmsMaterialUpdateDto
{
- MaterialCode = wmsmaterial.MaterialCode,
+ MaterialNo = wmsmaterial.MaterialNo,
MaterialName = wmsmaterial.MaterialName,
PurchaseType = wmsmaterial.PurchaseType,
MaterialType = wmsmaterial.MaterialType,
@@ -261,7 +261,7 @@
{
var wmsmaterialCreateDto = new WmsMaterialCreateDto
{
- MaterialCode = wmsmaterial.MaterialCode,
+ MaterialNo = wmsmaterial.MaterialNo,
MaterialName = wmsmaterial.MaterialName,
PurchaseType = wmsmaterial.PurchaseType,
MaterialType = wmsmaterial.MaterialType,
@@ -332,7 +332,7 @@
["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
};
- var fileName = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増";
+ var fileName = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialNo : "WmsMaterial妯$増";
return (sheets, fileName);
}
@@ -343,7 +343,7 @@
protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialCreateOrUpdateDtoBase input)
{
Check.NotNull(input, nameof(input));
- Check.NotNullOrWhiteSpace(input.MaterialCode, "缂栧彿", WmsMaterialConsts.MaxCodeLength);
+ Check.NotNullOrWhiteSpace(input.MaterialNo, "缂栧彿", WmsMaterialConsts.MaxCodeLength);
Check.NotNullOrWhiteSpace(input.MaterialName, "鍚嶇О", WmsMaterialConsts.MaxNameLength);
Check.Length(input.Remark, "澶囨敞", WmsMaterialConsts.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 a03b0b0..87b4765 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
@@ -85,24 +85,47 @@
// throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
//}
var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo);
- if(material == null)
+ if (material == null)
{
throw new UserFriendlyException("鐗╂枡淇℃伅涓嶅瓨鍦�");
}
- var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
+ var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
if (container == null)
{
throw new UserFriendlyException("鎵樼洏淇℃伅涓嶅瓨鍦�");
}
- var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
- if(place == null)
+
+ var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input);
+ input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
+ wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N");
+ wmsmaterialstock.MaterialName = material.MaterialName;
+
+ wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
+ wmsmaterialstock.ContainerType = container.ContainerType;
+ wmsmaterialstock.StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.XUNIKUWEI;
+ wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.DAIRU;
+ if (!string.IsNullOrEmpty(input.PlaceNo))
{
- throw new UserFriendlyException("搴撲綅淇℃伅涓嶅瓨鍦�");
- }
- var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode);
- if(area == 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.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+ wmsmaterialstock.StorageTypeNo = place.StorageTypeNo;
+ wmsmaterialstock.AreaCode = place.AreaCode;
+ wmsmaterialstock.AreaName = area.AreaName;
+
+ place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+ place.Islock = input.IsLock;
+
+ await _wmsplaceRepository.UpdateAsync(place);
}
var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo });
if (wmsmaterialstockList.Count > 0)
@@ -115,18 +138,6 @@
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");
- 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;
@@ -135,7 +146,7 @@
wmsmaterialstock.InStockTime = DateTime.Now;
var stockList = new List<WmsMaterialStock>();
- for (int i = 0; i< input.StockNumber; i++)
+ for (int i = 0; i < input.StockNumber; i++)
{
var stock = new WmsMaterialStock();
var json = JsonSerializer.Serialize(wmsmaterialstock);
@@ -149,11 +160,8 @@
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)
//{
@@ -199,9 +207,9 @@
throw new UserFriendlyException("搴撲綅搴撳尯淇℃伅涓嶅瓨鍦�");
}
- foreach(var wmsmaterialstock in wmsmaterialstockList)
+ foreach (var wmsmaterialstock in wmsmaterialstockList)
{
- if(input.StockNumber< wmsmaterialstockList.Count)
+ if (input.StockNumber < wmsmaterialstockList.Count)
{
wmsmaterialstock.IsDeleted = true;
input.StockNumber += 1;
@@ -229,7 +237,7 @@
wmsmaterialstock.MaterialModel = material.MaterialModel;
wmsmaterialstock.MaterialBatch = input.MaterialBatch;
}
- if(input.StockNumber > wmsmaterialstockList.Count)
+ if (input.StockNumber > wmsmaterialstockList.Count)
{
var stockList = new List<WmsMaterialStock>();
for (int i = 0; i < input.StockNumber - wmsmaterialstockList.Count; i++)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs
new file mode 100644
index 0000000..b9ea863
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+using Volo.Abp.ObjectExtending;
+
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴AutoMapper閰嶇疆
+/// </summary>
+/// <seealso cref="AutoMapper.Profile" />
+public class WmsContainerPlaceAutoMapperProfile : Profile
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsContainerPlaceAutoMapperProfile"/> class.
+ /// </summary>
+ public WmsContainerPlaceAutoMapperProfile()
+ {
+ /* You can configure your AutoMapper mapping configuration here.
+ * Alternatively, you can split your mapping configurations
+ * into multiple profile classes for a better organization. */
+ CreateMap<WmsContainerPlace, WmsContainerPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<WmsContainerPlaceCreateDto, WmsContainerPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ CreateMap<GetWmsContainerPlaceInput, WmsContainerPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs
new file mode 100644
index 0000000..2705196
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs
@@ -0,0 +1,53 @@
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+using Volo.Abp.Domain.Repositories;
+
+namespace CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴浠撳偍
+/// </summary>
+public interface IWmsContainerPlaceRepository : IBasicRepository<WmsContainerPlace, Guid>
+{
+ /// <summary>
+ /// 鎸夌収鍚嶇О鏌ユ壘搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<WmsContainerPlace> FindByNameAsync(string name, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 楠岃瘉鍚嶇О鏄惁瀛樺湪搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ Task<bool> NameExistAsync(string name, Guid? id = null);
+
+ /// <summary>
+ /// 鑾峰彇鏈�澶ф帓搴忓簱浣嶅鍣ㄥ叧绯�
+ /// </summary>
+ /// <returns></returns>
+ Task<int> GetMaxSortAsync();
+
+ /// <summary>
+ /// 鑾峰彇鍒嗛〉鍒楄〃搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<List<WmsContainerPlace>> GetListAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 鑾峰彇鎬绘暟搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, CancellationToken cancellationToken = default);
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlaces/WmsContainerPlace.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
similarity index 94%
rename from HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlaces/WmsContainerPlace.cs
rename to HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
index 65472bf..a05a106 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlaces/WmsContainerPlace.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
@@ -8,7 +8,7 @@
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;
-namespace CMS.Plugin.HIAWms.Domain.WmsContainerPlaces
+namespace CMS.Plugin.HIAWms.Domain.WmsContainerPlace
{
/// <summary>
/// 搴撲綅瀹瑰櫒鍏崇郴
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
index c6b09c9..468e6bb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
@@ -17,6 +17,14 @@
Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default);
/// <summary>
+ /// 鏍规嵁鍨嬪彿浼犵墿鏂�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<WmsMaterial> FindByModelAsync(string model, CancellationToken cancellationToken = default);
+
+ /// <summary>
/// Names the exist asynchronous.
/// </summary>
/// <param name="name">The name.</param>
@@ -58,4 +66,11 @@
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns></returns>
Task<long> GetCountAsync(WmsMaterial material, string filter = null, Specification<WmsMaterial> specification = null, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 鑾峰彇鐗╂枡鍒楄〃
+ /// </summary>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<List<WmsMaterial>> GetListForSelectAsync(CancellationToken cancellationToken = default);
}
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 2ffc4ca..e23824b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
@@ -14,7 +14,7 @@
/// <summary>
/// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
/// </summary>
- public string MaterialCode { get; set; }
+ public string MaterialNo { get; set; }
/// <summary>
/// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
index 1af79b7..ae1f7b6 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
@@ -7,7 +7,7 @@
/// </summary>
public class WmsMaterialSpecification : Volo.Abp.Specifications.Specification<WmsMaterial>
{
- private readonly string _materialCode;
+ private readonly string _MaterialNo;
/// <summary>
/// Initializes a new instance of the <see cref="WmsMaterialSpecification"/> class.
@@ -19,10 +19,10 @@
/// <summary>
/// Initializes a new instance of the <see cref="WmsMaterialSpecification"/> class.
/// </summary>
- /// <param name="materialCode">The name.</param>
- public WmsMaterialSpecification(string materialCode = null)
+ /// <param name="MaterialNo">The name.</param>
+ public WmsMaterialSpecification(string MaterialNo = null)
{
- _materialCode = materialCode;
+ _MaterialNo = MaterialNo;
}
/// <inheritdoc />
@@ -30,9 +30,9 @@
{
Expression<Func<WmsMaterial, bool>> expression = c => 1 == 1;
- if (_materialCode != null)
+ if (_MaterialNo != null)
{
- expression = expression.And(c => c.MaterialCode == _materialCode);
+ expression = expression.And(c => c.MaterialNo == _MaterialNo);
}
return expression;
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
index 15c6f97..68cbefe 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
@@ -1,3 +1,4 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.WmsAreas;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Specifications;
@@ -59,4 +60,12 @@
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns></returns>
Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// 鏍规嵁绫诲瀷鑾峰彇搴撲綅鍒楄〃
+ /// </summary>
+ /// <param name="placeType"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<List<WmsPlace>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType, CancellationToken cancellationToken = default);
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
index fcd6a2c..d84c02e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
@@ -1,5 +1,4 @@
锘縰sing CMS.Plugin.HIAWms.Domain;
-using CMS.Plugin.HIAWms.Domain.WmsContainerPlaces;
using CMS.Plugin.HIAWms.Domain.WmsContainers;
using Microsoft.EntityFrameworkCore;
using System;
@@ -11,6 +10,7 @@
using CMS.Plugin.MyExtension;
using Volo.Abp.EntityFrameworkCore.Modeling;
using CMS.Plugin.MyExtension.Domain;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions
{
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 7bce03b..9c0d47b 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
@@ -50,7 +50,7 @@
b.HasKey(x => x.Id);
// 瀛楁閰嶇疆
- b.Property(x => x.MaterialCode)
+ b.Property(x => x.MaterialNo)
.HasMaxLength(64)
.IsRequired()
.HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�");
@@ -137,7 +137,7 @@
.HasComment("鏄惁绂佺敤");
// 绱㈠紩閰嶇疆
- b.HasIndex(x => x.MaterialCode).IsUnique(); // 鐗╂枡缂栫爜鍞竴绱㈠紩
+ b.HasIndex(x => x.MaterialNo).IsUnique(); // 鐗╂枡缂栫爜鍞竴绱㈠紩
b.HasIndex(x => x.MaterialName); // 鐗╂枡鍚嶇О鏅�氱储寮�
b.HasIndex(x => x.PurchaseType); // 閲囪喘绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
b.HasIndex(x => x.MaterialType); // 鐗╂枡绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
index 5b12a5a..e971207 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
@@ -1,5 +1,5 @@
锘縰sing CMS.Plugin.HIAWms.Domain;
-using CMS.Plugin.HIAWms.Domain.WmsContainerPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer;
using Microsoft.EntityFrameworkCore;
using System;
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
index b00e992..7eae430 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
@@ -1,5 +1,5 @@
锘縰sing CMS.Plugin.HIAWms.Domain;
-using CMS.Plugin.HIAWms.Domain.WmsContainerPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
using CMS.Plugin.HIAWms.Domain.WmsTask;
using Microsoft.EntityFrameworkCore;
using System;
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 3f3a094..5fc6614 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
@@ -87,6 +87,7 @@
public async Task<List<WmsArea>> GetListForSelectAsync(CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
+ .Where(x => !x.IsDeleted)
.ToListAsync(GetCancellationToken(cancellationToken));
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs
new file mode 100644
index 0000000..eb5795d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs
@@ -0,0 +1,113 @@
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
+using CmsQueryExtensions.Extension;
+using Microsoft.EntityFrameworkCore;
+using System.Linq.Dynamic.Core;
+using System.Linq.Expressions;
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
+using Volo.Abp.EntityFrameworkCore;
+
+
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories;
+
+/// <summary>
+/// 搴撲綅瀹瑰櫒鍏崇郴浠撳偍瀹炵幇
+/// </summary>
+public class EfCoreWmsContainerPlaceRepository : EfCoreRepository<ICMSPluginDbContext, WmsContainerPlace, Guid>, IWmsContainerPlaceRepository
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EfCoreWmsContainerPlaceRepository"/> class.
+ /// </summary>
+ /// <param name="dbContextProvider">The database context provider.</param>
+ public EfCoreWmsContainerPlaceRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider)
+ : base(dbContextProvider)
+ {
+ }
+
+ /// <summary>
+ /// 鎸夌収鍚嶇О鏌ユ壘搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsContainerPlace> FindByNameAsync(string name, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails()
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x=>x.CreationTime)
+ .FirstOrDefaultAsync(t => t.PlaceNo == name, GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 楠岃瘉鍚嶇О鏄惁瀛樺湪搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="name">鏍¢獙鍊�</param>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ public async Task<bool> NameExistAsync(string name, Guid? id = null)
+ {
+ return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.PlaceNo == name);
+ }
+
+ /// <summary>
+ /// 鑾峰彇鏈�澶ф帓搴忓簱浣嶅鍣ㄥ叧绯�
+ /// </summary>
+ /// <returns></returns>
+ public async Task<int> GetMaxSortAsync()
+ {
+ var hasAny = await (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).AnyAsync();
+ if (!hasAny)
+ {
+ return 1;
+ }
+
+ var sort = await (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort);
+ return sort + 1;
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍒嗛〉鍒楄〃搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="sorting"></param>
+ /// <param name="maxResultCount"></param>
+ /// <param name="skipCount"></param>
+ /// <param name="includeDetails"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<WmsContainerPlace>> GetListAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails(includeDetails)
+ .WhereIf(whereConditions != null, whereConditions.data)
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x=>x.CreationTime)
+ .PageBy(skipCount, maxResultCount)
+ .ToListAsync(GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎬绘暟搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="whereConditions"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, CancellationToken cancellationToken = default)
+ {
+ return await (await GetQueryableAsync())
+ .WhereIf(whereConditions != null, whereConditions.data)
+ .Where(x => !x.IsDeleted)
+ .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
+ }
+
+
+ /// <inheritdoc />
+ public override async Task<IQueryable<WmsContainerPlace>> WithDetailsAsync()
+ {
+ return (await GetQueryableAsync())
+ .Where(x => !x.IsDeleted).IncludeDetails();
+ }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
index f0a1d1a..38fa6c2 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
@@ -2,6 +2,7 @@
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
+using CMS.Plugin.HIAWms.Domain.WmsAreas;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
using Microsoft.EntityFrameworkCore;
@@ -30,13 +31,28 @@
.IncludeDetails()
.Where(x => !x.IsDeleted)
.OrderBy(t => t.Sort)
- .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken));
+ .FirstOrDefaultAsync(t => t.MaterialNo == name, GetCancellationToken(cancellationToken));
+ }
+
+ /// <summary>
+ /// 查找型号
+ /// </summary>
+ /// <param name="model"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public virtual async Task<WmsMaterial> FindByModelAsync(string model, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails()
+ .Where(x => !x.IsDeleted)
+ .OrderBy(t => t.Sort)
+ .FirstOrDefaultAsync(t => t.MaterialModel == model, GetCancellationToken(cancellationToken));
}
/// <inheritdoc />
- public async Task<bool> NameExistAsync(string materialCode, Guid? id = null)
+ public async Task<bool> NameExistAsync(string MaterialNo, Guid? id = null)
{
- return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode);
+ return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialNo == MaterialNo);
}
/// <inheritdoc />
@@ -61,9 +77,9 @@
return await (await GetDbSetAsync())
.IncludeDetails(includeDetails)
.Where(specification.ToExpression())
- .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialCode.Contains(filter))
+ .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialNo.Contains(filter))
.WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
- .WhereIf(!string.IsNullOrEmpty(material.MaterialCode), u => u.MaterialName.Contains(material.MaterialCode))
+ .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialName.Contains(material.MaterialNo))
.WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
.WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
.Where(x => !x.IsDeleted)
@@ -82,7 +98,7 @@
{
return await (await GetDbSetAsync())
.WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
- .WhereIf(!string.IsNullOrEmpty(material.MaterialCode), u => u.MaterialName.Contains(material.MaterialCode))
+ .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialName.Contains(material.MaterialNo))
.WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
.WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
.Where(x => !x.IsDeleted)
@@ -103,11 +119,11 @@
return await (await GetQueryableAsync())
.Where(specification.ToExpression())
.WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
- .WhereIf(!string.IsNullOrEmpty(material.MaterialCode), u => u.MaterialName.Contains(material.MaterialCode))
+ .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialName.Contains(material.MaterialNo))
.WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
.WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
.Where(x => !x.IsDeleted)
- .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialCode.Contains(filter))
+ .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialNo.Contains(filter))
.CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
}
@@ -117,4 +133,16 @@
return (await GetQueryableAsync())
.Where(x => !x.IsDeleted).IncludeDetails();
}
+
+ /// <summary>
+ /// 获取物料表
+ /// </summary>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<WmsMaterial>> GetListForSelectAsync(CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .Where(x => !x.IsDeleted)
+ .ToListAsync(GetCancellationToken(cancellationToken));
+ }
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
index 3d655e4..dc5cf40 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
@@ -1,4 +1,5 @@
using System.Linq.Dynamic.Core;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.WmsAreas;
using CMS.Plugin.HIAWms.Domain.WmsPlaces;
using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
@@ -84,7 +85,7 @@
/// <returns></returns>
public async Task<List<WmsPlace>> GetAisleListForSelectAsync(CancellationToken cancellationToken = default)
{
- return await (await GetDbSetAsync())
+ return await (await GetDbSetAsync()).Where(x => !x.IsDeleted)
.ToListAsync(GetCancellationToken(cancellationToken));
}
@@ -115,4 +116,17 @@
return (await GetQueryableAsync())
.Where(x => !x.IsDeleted).IncludeDetails();
}
+
+ /// <summary>
+ /// 获取库区列表
+ /// </summary>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public async Task<List<WmsPlace>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType,CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .Where(x => !x.IsDeleted)
+ .Where(x=>x.StorageTypeNo == placeType)
+ .ToListAsync(GetCancellationToken(cancellationToken));
+ }
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
index 54a9be0..04c47b5 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
@@ -75,6 +75,7 @@
public async Task<List<WmsStore>> GetListForSelectAsync( CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
+ .Where(x=>!x.IsDeleted)
.ToListAsync(GetCancellationToken(cancellationToken));
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs
index 67fed0b..c184d48 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs
@@ -358,7 +358,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -429,7 +429,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs
index 60b9400..ef50f40 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs
@@ -110,7 +110,7 @@
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
- MaterialCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")
+ MaterialNo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")
.Annotation("MySql:CharSet", "utf8mb4"),
MaterialName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "鐗╂枡鍚嶇О")
.Annotation("MySql:CharSet", "utf8mb4"),
@@ -265,9 +265,9 @@
column: "ContainerType");
migrationBuilder.CreateIndex(
- name: "IX_scms_wmsmaterials_MaterialCode",
+ name: "IX_scms_wmsmaterials_MaterialNo",
table: "scms_wmsmaterials",
- column: "MaterialCode",
+ column: "MaterialNo",
unique: true);
migrationBuilder.CreateIndex(
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs
index bb6700e..4576d76 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs
@@ -358,7 +358,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -429,7 +429,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
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
index d34dfb9..8b426e6 100644
--- 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
@@ -496,7 +496,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -567,7 +567,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
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
index a1f1d07..3cc0e34 100644
--- 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
@@ -496,7 +496,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -572,7 +572,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs
index 88e803b..44c09f2 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs
@@ -496,7 +496,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -572,7 +572,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs
index cde4473..4d9151e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs
@@ -496,7 +496,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -572,7 +572,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs
index 70693d5..ed96a08 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs
@@ -705,7 +705,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -781,7 +781,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs
index 5f92462..d4f872f 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs
@@ -705,7 +705,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -781,7 +781,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs
index b4de3d2..8d6a0b1 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs
@@ -987,7 +987,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -1063,7 +1063,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs
index ba33416..251188c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs
@@ -1050,7 +1050,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -1126,7 +1126,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs
index 5153c13..317b4fb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs
@@ -1050,7 +1050,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -1126,7 +1126,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs
index 359204b..91fd826 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs
@@ -1108,7 +1108,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -1184,7 +1184,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
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 4def327..52830b8 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -1106,7 +1106,7 @@
.HasColumnType("decimal(18,2)")
.HasComment("闀垮害锛堝崟浣嶏細m锛�");
- b.Property<string>("MaterialCode")
+ b.Property<string>("MaterialNo")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
@@ -1182,7 +1182,7 @@
b.HasKey("Id");
- b.HasIndex("MaterialCode")
+ b.HasIndex("MaterialNo")
.IsUnique();
b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs
new file mode 100644
index 0000000..ae58998
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs
@@ -0,0 +1,188 @@
+using Ao.Lang;
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+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>
+ /// 搴撲綅瀹瑰櫒鍏崇郴鏈嶅姟
+ /// </summary>
+ [ApiController]
+ [TypeFilter(typeof(CMSLanguageFilter))]
+ [TypeFilter(typeof(CMSUowActionFilter))]
+ [TypeFilter(typeof(CMSAuditActionFilter))]
+ [TypeFilter(typeof(CMSExceptionFilter))]
+ [Route("api/v{version:apiVersion}/HIAWms/[controller]")]
+ public class WmsContainerPlaceController : ControllerBase
+ {
+ private readonly IWmsContainerPlaceAppService _wmsContainerPlaceAppService;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="WmsContainerPlaceController"/> class.
+ /// </summary>
+ /// <param name="wmsContainerPlaceAppService">The wmsContainerPlace application service.</param>
+ public WmsContainerPlaceController(IWmsContainerPlaceAppService wmsContainerPlaceAppService)
+ {
+ _wmsContainerPlaceAppService = wmsContainerPlaceAppService;
+ }
+
+ /// <summary>
+ /// 鑾峰彇搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("{id}")]
+ public virtual Task<WmsContainerPlaceDto> GetAsync(Guid id)
+ {
+ return _wmsContainerPlaceAppService.GetAsync(id);
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鑾峰彇搴撲綅瀹瑰櫒鍏崇郴鐨勫垪琛�.
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Page")]
+ public virtual Task<PagedResultDto<WmsContainerPlaceDto>> GetListAsync([FromQuery] GetWmsContainerPlaceInput input)
+ {
+ return _wmsContainerPlaceAppService.GetListAsync(input);
+ }
+
+ /// <summary>
+ /// 鍒涘缓搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ public virtual Task<WmsContainerPlaceDto> CreateAsync(WmsContainerPlaceCreateDto input)
+ {
+ return _wmsContainerPlaceAppService.CreateAsync(input);
+ }
+
+ /// <summary>
+ /// 鏇存柊搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <param name="input">杈撳叆.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPut]
+ [Route("{id}")]
+ public virtual Task<WmsContainerPlaceDto> UpdateAsync(Guid id, WmsContainerPlaceUpdateDto input)
+ {
+ return _wmsContainerPlaceAppService.UpdateAsync(id, input);
+ }
+
+ /// <summary>
+ /// 鍏嬮殕搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="ids">Id闆嗗悎.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpPost]
+ [Route("Clone")]
+ public virtual Task<List<WmsContainerPlaceDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsContainerPlaceAppService.CloneAsync(ids);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ [Route("{id}")]
+ public virtual Task DeleteAsync(Guid id)
+ {
+ return _wmsContainerPlaceAppService.DeleteAsync(id);
+ }
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="ids">The ids.</param>
+ /// <returns></returns>
+ //[Authorize]
+ [HttpDelete]
+ public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
+ {
+ return _wmsContainerPlaceAppService.DeleteManyAsync(ids);
+ }
+
+ /// <summary>
+ /// 璋冩暣鎺掑簭搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <param name="id">鏍囪瘑绗�.</param>
+ /// <returns></returns>
+ [HttpPut]
+ [Route("{id}/AdjustSort/{sort}")]
+ public virtual Task AdjustSortAsync(Guid id, int sort)
+ {
+ return _wmsContainerPlaceAppService.AdjustSortAsync(id, sort);
+ }
+
+ /// <summary>
+ /// 瀵煎叆搴撲綅瀹瑰櫒鍏崇郴
+ /// </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 wmsContainerPlaceRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsContainerPlacesImportModel.WmsContainerPlaceImportModel>(stream, sheetName: "閰嶇疆").ToList() : new();
+
+ if (!wmsContainerPlaceRows.Any())
+ {
+ throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸");
+ }
+
+ await _wmsContainerPlaceAppService.ImportAsync(new WmsContainerPlacesImportModel
+ {
+ WmsContainerPlaces = wmsContainerPlaceRows,
+ });
+
+ return Ok();
+ }
+
+ /// <summary>
+ /// 瀵煎嚭搴撲綅瀹瑰櫒鍏崇郴
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("Export")]
+ public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsContainerPlaceInput input)
+ {
+ input.MaxResultCount = int.MaxValue;
+ var exportData = await _wmsContainerPlaceAppService.ExportAsync(input);
+ var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsContainerPlace瀵煎嚭妯℃澘.xlsx");
+ if (!System.IO.File.Exists(templatePath))
+ {
+ templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsContainerPlace瀵煎嚭妯℃澘.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/WmsEnumController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
index 33bfab3..41c7f75 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
@@ -1,7 +1,10 @@
锘縰sing CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CmsQueryExtensions;
using Microsoft.AspNetCore.Mvc;
using System;
@@ -77,5 +80,28 @@
{
return await _wmsEnumAppService.GetAisleListAsync();
}
+
+ /// <summary>
+ /// 鑾峰彇鏈哄瀷
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("ModelList")]
+ public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
+ {
+ return await _wmsEnumAppService.GetMaterialModeListAsync();
+ }
+
+ /// <summary>
+ /// 鑾峰彇搴撲綅鍒楄〃
+ /// </summary>
+ /// <param name="placeType"></param>
+ /// <returns></returns>
+ [HttpGet]
+ [Route("PlaceList")]
+ public async Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType)
+ {
+ return await _wmsEnumAppService.GetPlaceListForSelectAsync(placeType);
+ }
}
}
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..8b54fda
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
--
Gitblit v1.9.3