From fb745c842df36edc5101291a7f239c11c97bcc2f Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 11 九月 2025 16:46:33 +0800
Subject: [PATCH] 最新代码更新,BST,MES部分
---
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderController.cs | 19
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/BSTPurchaseOrderDTO.cs | 2
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | 38
项目代码/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderDetailRepository.cs | 21
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs | 2
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs | 37 +
项目代码/WMS/WMSServices/WIDESEA_DTO/Basic/BSTSupplierDTO.cs | 2
项目代码/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderDetailService.cs | 21
项目代码/WMS/WMSServices/WIDESEA_Common/StockEnum/StockStatusMenu.cs | 6
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrderDetail.cs | 101 +++
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs | 3
项目代码/WMS/WMSServices/WIDESEA_IInboundService/IPurchaseBSTOrderService.cs | 2
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs | 124 ++-
项目代码/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs | 71 ++
项目代码/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 194 +++---
项目代码/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs | 164 ++++++
项目代码/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs | 15
项目代码/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs | 65 +
项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs | 56 +
项目代码/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderDetailRepository.cs | 17
项目资料/接口协议/博思通利拓接口.xlsx | 0
项目代码/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs | 70 ++
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/BSTOutOrderDTO.cs | 2
项目代码/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderRepository.cs | 21
项目代码/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderService.cs | 23
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrderDetail.cs | 2
项目代码/WMS/WMSServices/WIDESEA_Common/LocationEnum/LocationStatusEnum.cs | 2
项目代码/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs | 8
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderDetailController.cs | 19
项目资料/接口协议/龙利得MES接口.xlsx | 0
项目代码/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs | 2
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrder.cs | 85 +++
项目代码/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderRepository.cs | 17
项目代码/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs | 4
项目代码/WMS/WMSServices/WIDESEA_External/Model/BSTPurchaseUpModel.cs | 13
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrder.cs | 2
项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/BSTReturnOrderDTO.cs | 103 +++
项目代码/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderDetailService.cs | 16
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs | 170 +++---
39 files changed, 1,216 insertions(+), 303 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs"
index 2c00040..f65da62 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs"
@@ -40,19 +40,72 @@
try
{
List<Dt_MaterielInfo> OldMaterielInfos = BaseDal.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt());
- //鍒ゆ柇閲嶅鎻掑叆
- Dt_MaterielInfo? ExistMaterial = OldMaterielInfos.FirstOrDefault(x => bSTMaterialDTOs.Where(x => x.Way == 1).Select(x => x.MaterialId).Contains(x.MaterialSourceId));
- if (ExistMaterial != null)
+ //鏂板
+ List<BSTMaterialDTO> bSTMaterialsDTOAdd = bSTMaterialDTOs.Where(x => x.Way == 1).ToList();
+ //淇敼
+ List<BSTMaterialDTO> bSTMaterialsDTOUpdate = bSTMaterialDTOs.Where(x => x.Way == 2).ToList();
+ //鍒犻櫎
+ List<BSTMaterialDTO> bSTMaterialsDTODel = bSTMaterialDTOs.Where(x => x.Way == 3).ToList();
+ List<Dt_MaterielInfo> materielInfosAdd = new List<Dt_MaterielInfo>();
+ List<Dt_MaterielInfo> materielInfosUpdate = new List<Dt_MaterielInfo>();
+ //鏂板
+ if (bSTMaterialsDTOAdd.Count>0)
{
- return content.Error($"鐗╂枡Id{nameof(BSTMaterialDTO.MaterialId)}:{ExistMaterial.MaterialSourceId}宸插瓨鍦�");
+ //鍒ゆ柇閲嶅鎻掑叆
+ Dt_MaterielInfo? ExistMaterial = OldMaterielInfos.FirstOrDefault(x => bSTMaterialsDTOAdd.Select(x => x.MaterialId).Contains(x.MaterialSourceId));
+ if (ExistMaterial != null)
+ {
+ return content.Error($"鐗╂枡{nameof(BSTMaterialDTO.MaterialId)}:{ExistMaterial.MaterialSourceId}宸插瓨鍦�");
+ }
+
+ foreach (var item in bSTMaterialsDTOAdd)
+ {
+ if (bSTMaterialsDTOUpdate.FirstOrDefault(x=>x.MaterialId==item.MaterialId)!=null)
+ {
+ continue;
+ }
+ Dt_MaterielInfo materielInfo = _mapper.Map<Dt_MaterielInfo>(item);
+ materielInfosAdd.Add(materielInfo);
+ }
}
- List<Dt_MaterielInfo> materielInfos = new List<Dt_MaterielInfo>();
- foreach (var item in bSTMaterialDTOs)
+ //鏇存柊
+ if (bSTMaterialsDTOUpdate.Count > 0)
{
- Dt_MaterielInfo materielInfo = _mapper.Map<Dt_MaterielInfo>(item);
- materielInfos.Add(materielInfo);
+ //鑾峰彇宸插瓨鍦ㄧ殑鐗╂枡
+ List<Dt_MaterielInfo>? ExistbSTMaterialsUpdate = OldMaterielInfos.Where(x => bSTMaterialsDTOUpdate.Select(x => x.MaterialId).Contains(x.MaterialSourceId)).ToList();
+ foreach (var item in bSTMaterialsDTOUpdate)
+ {
+ Dt_MaterielInfo? materielInfoUpdate = ExistbSTMaterialsUpdate.FirstOrDefault(x => x.MaterialSourceId == item.MaterialId);
+ //濡傛灉鐗╂枡宸插瓨鍦ㄥ垯杩涜鏇存敼
+ if (materielInfoUpdate!=null)
+ {
+ materielInfoUpdate.MaterielCode = item.MaterialNo;
+ materielInfoUpdate.MaterielName = item.Name;
+ materielInfoUpdate.MaterielSpec = item.Spec;
+ materielInfoUpdate.MaterielWide = item.MaterielWide;
+ materielInfoUpdate.MaterielThickness = item.MaterielThickness;
+ materielInfoUpdate.MaterielLength = item.MaterielLength;
+ materielInfoUpdate.MaterielWeight = item.Weight;
+ materielInfoUpdate.MaterielUnit = item.Unit;
+ materielInfosUpdate.Add(materielInfoUpdate);
+ }
+ else//濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+ {
+ Dt_MaterielInfo materielInfo = _mapper.Map<Dt_MaterielInfo>(item);
+ materielInfosAdd.Add(materielInfo);
+ }
+ }
}
- BaseDal.AddData(materielInfos);
+ //鍒犻櫎
+ if (bSTMaterialsDTODel.Count > 0)
+ {
+
+ }
+ //鏇存柊鏁版嵁
+ _unitOfWorkManage.CommitTran();
+ BaseDal.AddData(materielInfosAdd);
+ BaseDal.UpdateData(materielInfosUpdate);
+ _unitOfWorkManage.CommitTran();
return content.OK("鎺ユ敹鎴愬姛");
}
catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
index c3e5351..4d4397a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
@@ -20,6 +20,7 @@
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Common.WareHouseEnum;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
namespace WIDESEA_BasicService
{
@@ -35,33 +36,28 @@
{
throw new Exception($"鏈壘鍒颁粨搴撲俊鎭�");
}
- //Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId);
- //if (palletTypeInfo == null)
- //{
- // if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() && warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() && warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
- // {
- // palletTypeInfo = new Dt_PalletTypeInfo()
- // {
- // LocaitonCount = 1,
- // PalletType = 0,
- // IsOdd = false,
- // };
- // }
- // else
- // throw new Exception($"璇烽厤缃墭鐩樼被鍨嬩俊鎭�");
- //}
+ Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId);
+ if (palletTypeInfo == null)
+ {
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDYL.ToString())
+ {
+ throw new Exception($"璇烽厤缃墭鐩樼被鍨嬩俊鎭�");
+ }
+ }
return warehouse.WarehouseCode switch
{
- "LLDCP" or "LLDYL"=> AssignLocation(roadwayNo),
+ "LLDCP" or "LLDFL" => AssignLocation(roadwayNo),
+ "LLDYL" => AssignLocationYL(roadwayNo, palletTypeInfo),
_ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�")
};
}
private readonly static object _locker = new object();
+ private readonly static object _AssignLocationYL = new object();
private static List<LocationCache> locationCaches = new List<LocationCache>();
/// <summary>
- ///
+ /// 鍒嗛厤璐т綅
/// </summary>
/// <param name="roadwayNo"></param>
/// <returns></returns>
@@ -78,11 +74,8 @@
List<string> lockLocations = locationCaches.Select(x => x.LocationCode).ToList();
- List<Dt_LocationInfo> locationInfos = BaseDal.QueryData(x => x.RoadwayNo == roadwayNo);//鏌ヨ宸烽亾鎵�鏈夎揣浣嶄俊鎭�
-
Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>()
{
-
{ nameof(Dt_LocationInfo.Column),OrderByType.Desc },
{ nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
{ nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
@@ -92,7 +85,62 @@
return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
}
}
+ public Dt_LocationInfo? AssignLocationYL(string roadwayNo, Dt_PalletTypeInfo palletTypeInfo)
+ {
+ lock (_AssignLocationYL)
+ {
+ List<LocationCache> removeItems = locationCaches.Where(x => (DateTime.Now - x.DateTime).TotalMinutes > 5).ToList();//鏌ヨ娣诲姞闈欐�佸彉閲忚秴杩�5鍒嗛挓鐨勮揣浣�
+ int count = removeItems.Count;
+ for (int i = 0; i < count; i++)
+ {
+ locationCaches.Remove(removeItems[i]);//绉婚櫎鏌ヨ娣诲姞闈欐�佸彉閲忚秴杩�5鍒嗛挓鐨勮揣浣�
+ }
+ List<string> lockLocations = locationCaches.Select(x => x.LocationCode).ToList();
+
+ List<Dt_LocationInfo> locationInfos = BaseDal.QueryData(x => x.RoadwayNo == roadwayNo);//鏌ヨ宸烽亾鎵�鏈夎揣浣嶄俊鎭�
+
+ Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>()
+ {
+ { nameof(Dt_LocationInfo.Column),OrderByType.Desc },
+ { nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
+ { nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
+ { nameof(Dt_LocationInfo.Row),OrderByType.Asc }
+ };
+ if (roadwayNo.Contains("YLDual"))
+ {
+ if (palletTypeInfo.LocaitonCount==1)
+ {
+ return BaseDal.QueryFirst(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
+ }
+ else
+ {
+ //鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
+ List<Dt_LocationInfo> locationInfosMedium = BaseDal.QueryData(x => x.LocationType == LocationTypeEnum.MediumPallet.ObjToInt() && x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);
+ Dt_LocationInfo locationInfo = new Dt_LocationInfo();
+ foreach (var item in locationInfosMedium)
+ {
+ //鑾峰彇鏇存敼搴撲綅
+ Dt_LocationInfo? nearLocation1;
+ Dt_LocationInfo? nearLocation2;
+
+ nearLocation1 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.Row == item.Row && x.Layer == item.Layer && x.Depth == item.Depth && x.Column == item.Column - 1);
+ nearLocation2 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.Row == item.Row && x.Layer == item.Layer && x.Depth == item.Depth && x.Column == item.Column + 1);
+ if (nearLocation1!=null && nearLocation2!=null)
+ {
+ locationInfo = item;
+ }
+ }
+ return locationInfo;
+ }
+ }
+ else
+ {
+ return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
+ }
+
+ }
+ }
/// <summary>
/// 淇敼璐т綅鐘舵�佸強绫诲瀷
/// </summary>
@@ -263,27 +311,21 @@
// Repository.UpdateData(locations);
//}
- public void UpdateLocationStatus(Dt_LocationInfo location, int palletType, LocationStatusEnum locationStatus, int warehousId)
+ public void UpdateLocationStatus(Dt_LocationInfo location, int palletType, LocationStatusEnum locationStatus, int warehouseId)
{
List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
- List<Dt_PalletTypeInfo> palletTypeInfos = _basicRepository.PalletTypeInfoRepository.QueryData(x => x.WarehouseId == warehousId);
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehousId);
- //Dt_PalletTypeInfo? palletTypeInfo = palletTypeInfos.FirstOrDefault(x => x.PalletType == palletType && x.WarehouseId == warehousId);
- //if (palletTypeInfo == null || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
- //{
- // if (warehouse.WarehouseCode == WarehouseEnum.HA153.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA71.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA60.ToString())
- // {
- // palletTypeInfo = new Dt_PalletTypeInfo()
- // {
- // LocaitonCount = 1,
- // PalletType = 0,
- // IsOdd = false,
- // };
- // }
- // else
- // throw new Exception($"璇烽厤缃墭鐩樼被鍨嬩俊鎭�");
- //}
+ List<Dt_PalletTypeInfo> palletTypeInfos = _basicRepository.PalletTypeInfoRepository.QueryData(x => x.WarehouseId == warehouseId);
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId);
+
+ Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId);
+ if (palletTypeInfo == null)
+ {
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDYL.ToString())
+ {
+ throw new Exception($"璇烽厤缃墭鐩樼被鍨嬩俊鎭�");
+ }
+ }
List<Dt_LocationInfo> locations = GetGroupLocations(locationInfos, location);
if (locationInfos.Max(x => x.Depth) < 3)
{
@@ -327,76 +369,42 @@
if (palletTypeInfos.FirstOrDefault(x => x.LocaitonCount == 2) != null)
{
- Dt_LocationInfo? nearLocation;
- //if (palletTypeInfo.IsOdd)
- //{
- // nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
- //}
- //else
- //{
- nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
- //}
+ //鑾峰彇鏇存敼搴撲綅
+ Dt_LocationInfo? nearLocation1;
+ Dt_LocationInfo? nearLocation2;
- if (nearLocation!=null && location.RoadwayNo.Contains("BC"))
- {
- if (nearLocation?.LocationType == LocationTypeEnum.SmallPallet.ObjToInt())
- {
- nearLocation = null;
- }
- }
- if (location.RoadwayNo == "SC01_BC" && palletType != PalletTypeEnum.SmallPallet.ObjToInt())
- {
- nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
- if (nearLocation?.LocationType == LocationTypeEnum.SmallPallet.ObjToInt())
- {
- nearLocation = null;
- }
- }
+ nearLocation1 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
+ nearLocation2 = locationInfos.FirstOrDefault(x => x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt() && x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
- if (nearLocation != null)
+
+ if (nearLocation1 != null && nearLocation2 != null)
{
- List<Dt_LocationInfo> nearLocations = GetGroupLocations(locationInfos, nearLocation);
+ //鍙岃緟鏂�
+ List<Dt_LocationInfo> nearLocations = new List<Dt_LocationInfo>()
+ {
+ nearLocation1,
+ nearLocation2
+ };
for (int i = 0; i < nearLocations.Count; i++)
{
- List<int> palletTypes = palletTypeInfos.Select(x => x.PalletType).ToList();
- palletTypes.Add(0);
- if (palletTypes.Contains(nearLocations[i].LocationType))
+ if (locationStatus == LocationStatusEnum.Lock)
{
- if (nearLocations[i].LocationType != palletType)
+ if (nearLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
{
- nearLocations[i].LocationType = palletType;
+ nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt();
}
-
- if (locationStatus == LocationStatusEnum.Lock)
+ }
+ else if (locationStatus == LocationStatusEnum.Free)
+ {
+ if (nearLocations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt())
{
- if (nearLocations[i].LocationStatus == LocationStatusEnum.InStock.ObjToInt())
- {
- nearLocations[i].LocationStatus = LocationStatusEnum.InStockLock.ObjToInt();
- }
- else if (nearLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
- {
- nearLocations[i].LocationStatus = LocationStatusEnum.FreeLock.ObjToInt();
- }
- }
- else if (locationStatus == LocationStatusEnum.Free || locationStatus == LocationStatusEnum.InStock)
- {
- if (nearLocations[i].LocationStatus == LocationStatusEnum.InStockLock.ObjToInt())
- {
- nearLocations[i].LocationStatus = LocationStatusEnum.InStock.ObjToInt();
- }
- else if (nearLocations[i].LocationStatus == LocationStatusEnum.FreeLock.ObjToInt())
- {
- nearLocations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt();
- }
+ nearLocations[i].LocationStatus = LocationStatusEnum.Free.ObjToInt();
}
}
}
locations.AddRange(nearLocations);
}
}
-
-
-
}
else
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs"
index b548127..02e7383 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs"
@@ -39,19 +39,71 @@
try
{
List<Dt_SupplierInfo> OldsupplierInfos = BaseDal.QueryData(x => x.InvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt());
- //鍒ゆ柇閲嶅鎻掑叆
- Dt_SupplierInfo? ExistSupplier = OldsupplierInfos.FirstOrDefault(x => bSTSupplierDTOs.Where(x => x.Way == 1).Select(x => x.VendId).Contains(x.SupplierSourceId));
- if (ExistSupplier != null)
+ //鏂板
+ List<BSTSupplierDTO> bSTSupplierDTOsAdd = bSTSupplierDTOs.Where(x => x.Way == 1).ToList();
+ //淇敼
+ List<BSTSupplierDTO> bSTSupplierDTOsUpdate = bSTSupplierDTOs.Where(x => x.Way == 2).ToList();
+ //鍒犻櫎
+ List<BSTSupplierDTO> bSTSupplierDTOsDTODel = bSTSupplierDTOs.Where(x => x.Way == 3).ToList();
+ List<Dt_SupplierInfo> supplierInfosAdd = new List<Dt_SupplierInfo>();
+ List<Dt_SupplierInfo> supplierInfosUpdate = new List<Dt_SupplierInfo>();
+ //鏂板
+ if (bSTSupplierDTOsAdd.Count > 0)
{
- return content.Error($"鐗╂枡Id{nameof(BSTSupplierDTO.VendId)}:{ExistSupplier.SupplierSourceId}宸插瓨鍦�");
+ //鍒ゆ柇閲嶅鎻掑叆
+ Dt_SupplierInfo? ExistSupplier = OldsupplierInfos.FirstOrDefault(x => bSTSupplierDTOsAdd.Select(x => x.VendId).Contains(x.SupplierSourceId));
+ if (ExistSupplier != null)
+ {
+ return content.Error($"渚涘簲鍟唟nameof(BSTSupplierDTO.VendId)}:{ExistSupplier.SupplierSourceId}宸插瓨鍦�");
+ }
+
+ foreach (var item in bSTSupplierDTOsAdd)
+ {
+ if (bSTSupplierDTOsUpdate.FirstOrDefault(x => x.VendId == item.VendId) != null)
+ {
+ continue;
+ }
+ Dt_SupplierInfo supplierInfo = _mapper.Map<Dt_SupplierInfo>(item);
+ supplierInfosAdd.Add(supplierInfo);
+ }
}
- List<Dt_SupplierInfo> supplierInfos = new List<Dt_SupplierInfo>();
- foreach (var item in bSTSupplierDTOs)
+ //鏇存柊
+ if (bSTSupplierDTOsUpdate.Count > 0)
{
- Dt_SupplierInfo supplierInfo = _mapper.Map<Dt_SupplierInfo>(item);
- supplierInfos.Add(supplierInfo);
+ //鑾峰彇宸插瓨鍦ㄧ殑鐗╂枡
+ List<Dt_SupplierInfo>? ExistbSTSuppliersUpdate = OldsupplierInfos.Where(x => bSTSupplierDTOsUpdate.Select(x => x.VendId).Contains(x.SupplierSourceId)).ToList();
+ foreach (var item in bSTSupplierDTOsUpdate)
+ {
+ Dt_SupplierInfo? supplierInfoUpdate = ExistbSTSuppliersUpdate.FirstOrDefault(x => x.SupplierSourceId == item.VendId);
+ //濡傛灉鐗╂枡宸插瓨鍦ㄥ垯杩涜鏇存敼
+ if (supplierInfoUpdate != null)
+ {
+ supplierInfoUpdate.SupplierSourceId = item.VendId;
+ supplierInfoUpdate.SupplierCode = item.VendNo;
+ supplierInfoUpdate.SupplierShortName = item.ShortName;
+ supplierInfoUpdate.SupplierName = item.ShortName;
+ supplierInfoUpdate.Contacts = item.BusinessContact;
+ supplierInfoUpdate.ContactNumber = item.Tel;
+ supplierInfoUpdate.ContactAddress = item.Address;
+ supplierInfosUpdate.Add(supplierInfoUpdate);
+ }
+ else//濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+ {
+ Dt_SupplierInfo supplierInfo = _mapper.Map<Dt_SupplierInfo>(item);
+ supplierInfosAdd.Add(supplierInfo);
+ }
+ }
}
- BaseDal.AddData(supplierInfos);
+ //鍒犻櫎
+ if (bSTSupplierDTOsDTODel.Count > 0)
+ {
+
+ }
+ //鏇存柊鏁版嵁
+ _unitOfWorkManage.CommitTran();
+ BaseDal.AddData(supplierInfosAdd);
+ BaseDal.UpdateData(supplierInfosUpdate);
+ _unitOfWorkManage.CommitTran();
content.OK("鎺ユ敹鎴愬姛");
}
catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/LocationEnum/LocationStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/LocationEnum/LocationStatusEnum.cs"
index 220a508..d0c2417 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/LocationEnum/LocationStatusEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/LocationEnum/LocationStatusEnum.cs"
@@ -30,7 +30,7 @@
InStockLock = 10,
/// <summary>
- /// 鏈夎揣閿佸畾
+ /// 绌洪棽閿佸畾
/// </summary>
[Description("绌洪棽閿佸畾")]
FreeLock = 20,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/StockEnum/StockStatusMenu.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/StockEnum/StockStatusMenu.cs"
index 7654f86..6dd8f37 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/StockEnum/StockStatusMenu.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/StockEnum/StockStatusMenu.cs"
@@ -56,8 +56,10 @@
/// <summary>
/// 鎴愬搧搴撳瓨灞炴�э細<br/>
/// 1:鎴愬搧<br/>
- /// 2:灏炬暟<br/>
- /// 3:鐮斿彂<br/>
+ /// 2:鍗婃垚鍝�<br/>
+ /// 3:鍘熸潗鏂�<br/>
+ /// 4:杈呮枡澶囦欢<br/>
+ /// 5:绌烘墭<br/>
/// </summary>
public enum ProStockAttributeEnum
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs"
index 0b0b7cc..f9fc847 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs"
@@ -28,7 +28,11 @@
/// 杈呮枡搴�
/// </summary>
[Description("杈呮枡搴�")]
- LLDFL = 3
-
+ LLDFL = 3,
+ /// <summary>
+ /// 鑰佸巶鏆傚瓨鍖�
+ /// </summary>
+ [Description("鑰佸巶鏆傚瓨鍖�")]
+ LLDOldCache = 4
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/BSTSupplierDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/BSTSupplierDTO.cs"
index f7cef41..a65d823 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/BSTSupplierDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/Basic/BSTSupplierDTO.cs"
@@ -41,7 +41,7 @@
/// <summary>
/// 鍟嗗姟鑱旂郴浜�
/// </summary>
- [PropertyValidate("渚涘簲鍟嗙畝绉�", NotNullAndEmpty = true)]
+ [PropertyValidate("summary", NotNullAndEmpty = true)]
public string BusinessContact { get; set; }
/// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTOutOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTOutOrderDTO.cs"
index 5c18821..fe16398 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTOutOrderDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTOutOrderDTO.cs"
@@ -6,7 +6,7 @@
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
-namespace WIDESEA_DTO.Basic
+namespace WIDESEA_DTO.ERP
{
/// <summary>
/// 鍗氭�濋�氶噰璐叆搴撳崟鎺ユ敹瀹炰綋
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTPurchaseOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTPurchaseOrderDTO.cs"
index f35dc16..a0f9838 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTPurchaseOrderDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTPurchaseOrderDTO.cs"
@@ -6,7 +6,7 @@
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
-namespace WIDESEA_DTO.Basic
+namespace WIDESEA_DTO.ERP
{
/// <summary>
/// 鍗氭�濋�氶噰璐叆搴撳崟鎺ユ敹瀹炰綋
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTReturnOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTReturnOrderDTO.cs"
new file mode 100644
index 0000000..d4647af
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/BSTReturnOrderDTO.cs"
@@ -0,0 +1,103 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.ERP
+{
+ /// <summary>
+ /// 鍗氭�濋�氶��鏂欐帴鏀跺疄浣�
+ /// </summary>
+ [ModelValidate]
+ public class BSTReturnOrderDTO
+ {
+ /// <summary>
+ /// 鏁版嵁鑾峰彇鏂瑰紡鏍囪瘑(1:鏂板 2:淇敼 3:鍒犻櫎)
+ /// </summary>
+ [PropertyValidate("鏁版嵁鑾峰彇鏂瑰紡鏍囪瘑(1:鏂板 2:淇敼 3:鍒犻櫎)", NotNullAndEmpty = true)]
+ public int Way { get; set; }
+ /// <summary>
+ /// 閫�鏂欏崟ID
+ /// </summary>
+ [PropertyValidate("閫�鏂欏崟ID", NotNullAndEmpty = true)]
+ public int PaperWreturnId { get; set; }
+ /// <summary>
+ /// 閫�鏂欏崟缂栧彿
+ /// </summary>
+ [PropertyValidate("閫�鏂欏崟缂栧彿", NotNullAndEmpty = true)]
+ public string PaperWreturnNo { get; set; }
+ /// <summary>
+ /// 閫�鏂欐棩鏈�
+ /// </summary>
+ [PropertyValidate("閫�鏂欐棩鏈�", NotNullAndEmpty = true)]
+ public long WreturnDate { get; set; }
+ /// <summary>
+ /// 閫�鏂欏憳宸�
+ /// </summary>
+ [PropertyValidate("閫�鏂欏憳宸�", NotNullAndEmpty = false)]
+ public string EmployeeName { get; set; }
+ /// <summary>
+ /// 閫�鏂欐槑缁�
+ /// </summary>
+ [PropertyValidate("閫�鏂欐槑缁�", NotNullAndEmpty = true)]
+ public List<BSTReturnOrderDTOItem> BstPaperWreturnDetails { get; set; }
+ }
+ /// <summary>
+ /// 閫�鏂欐槑缁�
+ /// </summary>
+ public class BSTReturnOrderDTOItem
+ {
+ /// <summary>
+ /// 閫�鏂橧D
+ /// </summary>
+ [PropertyValidate("閫�鏂橧D", NotNullAndEmpty = true)]
+ public int PaperWreturnId { get; set; }
+ /// <summary>
+ /// 鐗╂枡ID
+ /// </summary>
+ [PropertyValidate("鐗╂枡ID", NotNullAndEmpty = true)]
+ public int MaterialId { get; set; }
+ /// <summary>
+ /// 鐗╂枡鏉$爜
+ /// </summary>
+ [PropertyValidate("鐗╂枡鏉$爜", NotNullAndEmpty = true)]
+ public string Barcode { get; set; }
+ /// <summary>
+ /// 鐗╂枡缂栧彿
+ /// </summary>
+ [PropertyValidate("鐗╂枡缂栧彿", NotNullAndEmpty = true)]
+ public string MaterialNo { get; set; }
+ /// <summary>
+ /// 鐗╂枡鎵规搴忓彿
+ /// </summary>
+ [PropertyValidate("鐗╂枡鎵规搴忓彿", NotNullAndEmpty = true)]
+ public int SeqNo { get; set; }
+ /// <summary>
+ /// 骞呭锛坢m锛�
+ /// </summary>
+ [PropertyValidate("骞呭锛坢m锛�", NotNullAndEmpty = true)]
+ public decimal W { get; set; }
+ /// <summary>
+ /// 鐩村緞
+ /// </summary>
+ [PropertyValidate("鐩村緞", NotNullAndEmpty = true)]
+ public decimal Thick { get; set; }
+ /// <summary>
+ /// 闀垮害
+ /// </summary>
+ [PropertyValidate("闀垮害", NotNullAndEmpty = true)]
+ public decimal ProcurementLength { get; set; }
+ /// <summary>
+ /// 閫�璐ф暟閲�
+ /// </summary>
+ [PropertyValidate("閫�璐ф暟閲�", NotNullAndEmpty = true)]
+ public decimal Qty { get; set; }
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ [PropertyValidate("鍗曚綅", NotNullAndEmpty = true)]
+ public string Unit { get; set; }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs"
index 1437228..a1fa83c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/ERPService/InvokeERPService.cs"
@@ -28,7 +28,9 @@
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
-
+ /// <summary>
+ /// 璋冪敤ERP鎺ュ彛
+ /// </summary>
public string BSTPurchaseUp(BSTPurchaseUpModel bSTPurchaseUpModel)
{
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.BSTPurchaseUp.ToString());
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTPurchaseUpModel.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTPurchaseUpModel.cs"
index 988c272..522616c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTPurchaseUpModel.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTPurchaseUpModel.cs"
@@ -11,8 +11,21 @@
/// </summary>
public class BSTPurchaseUpModel
{
+ /// <summary>
+ /// 鏉$爜
+ /// </summary>
public string Barcode { get; set; }
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
public int BarcodeQty { get; set;}
+ /// <summary>
+ /// RFID
+ /// </summary>
public string Rfid { get; set; }
+ /// <summary>
+ /// 鍏ュ簱鏃堕棿
+ /// </summary>
+ public string RfidUpdateTime { get; set; }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderDetailRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderDetailRepository.cs"
new file mode 100644
index 0000000..2a772cd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderDetailRepository.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundRepository
+{
+ /// <summary>
+ /// 閫�鏂欐槑缁嗕粨鍌ㄦ帴鍙e眰
+ /// </summary>
+ public interface IReturnBSTOrderDetailRepository : IRepository<Dt_ReturnBSTOrderDetail>
+ {
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderRepository.cs"
new file mode 100644
index 0000000..5295770
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IReturnBSTOrderRepository.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundRepository
+{
+ /// <summary>
+ /// 閫�鏂欏崟浠撳偍鎺ュ彛灞�
+ /// </summary>
+ public interface IReturnBSTOrderRepository : IRepository<Dt_ReturnBSTOrder>
+ {
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IPurchaseBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IPurchaseBSTOrderService.cs"
index 8be3ca0..6b30d55 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IPurchaseBSTOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IPurchaseBSTOrderService.cs"
@@ -6,7 +6,7 @@
using WIDESEA_Core;
using WIDESEA_Core.BaseServices;
using WIDESEA_DTO;
-using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.ERP;
using WIDESEA_IInboundRepository;
using WIDESEA_Model.Models;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderDetailService.cs"
new file mode 100644
index 0000000..eff73ed
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderDetailService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundService
+{
+ public interface IReturnBSTOrderDetailService : IService<Dt_ReturnBSTOrderDetail>
+ {
+ IReturnBSTOrderDetailRepository Repository { get; }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderService.cs"
new file mode 100644
index 0000000..e35139b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IReturnBSTOrderService.cs"
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundService
+{
+ public interface IReturnBSTOrderService : IService<Dt_ReturnBSTOrder>
+ {
+ IReturnBSTOrderRepository Repository { get; }
+ /// <summary>
+ /// 鎺ユ敹鍗氭�濋�氶��鏂欎俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ WebResponseContent ReceiveReturnOrder(List<BSTReturnOrderDTO> bSTReturnOrderDTOs);
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
index de91dfc..798ecbc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -171,16 +171,15 @@
/// <summary>
/// 鎴愬搧鍑哄簱
/// </summary>
- /// <param name="Count"></param>
/// <returns></returns>
- WebResponseContent RequestCPWMSTaskOut(int Count);
+ WebResponseContent RequestCPWMSTaskOut(string materialCode, int Count,int targetId);
- /// <summary>
- /// 鏃犵汉甯冨嚭搴�
- /// </summary>
- /// <param name="Count"></param>
- /// <returns></returns>
- WebResponseContent RequestWFBWMSTaskOut(int Count);
+ ///// <summary>
+ ///// 鏃犵汉甯冨嚭搴�
+ ///// </summary>
+ ///// <param name="Count"></param>
+ ///// <returns></returns>
+ //WebResponseContent RequestWFBWMSTaskOut(int Count);
/// <summary>
/// 鍘熸枡鍑哄簱浠诲姟
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderDetailRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderDetailRepository.cs"
new file mode 100644
index 0000000..d55d842
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderDetailRepository.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundRepository
+{
+ /// <summary>
+ /// 閫�鏂欏崟鏄庣粏浠撳偍瀹炵幇灞�
+ /// </summary>
+ public class ReturnBSTOrderDetailRepository : RepositoryBase<Dt_ReturnBSTOrderDetail>, IReturnBSTOrderDetailRepository
+ {
+ public ReturnBSTOrderDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+ {
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderRepository.cs"
new file mode 100644
index 0000000..f6465d0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/ReturnBSTOrderRepository.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundRepository
+{
+ /// <summary>
+ /// 閫�鏂欏崟浠撳偍瀹炵幇灞�
+ /// </summary>
+ public class ReturnBSTOrderRepository : RepositoryBase<Dt_ReturnBSTOrder>, IReturnBSTOrderRepository
+ {
+ public ReturnBSTOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+ {
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs"
index 0c37854..b5470ba 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs"
@@ -15,7 +15,7 @@
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
-using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.ERP;
using WIDESEA_IBasicRepository;
using WIDESEA_IInboundRepository;
using WIDESEA_IInboundService;
@@ -67,6 +67,8 @@
List<Dt_PurchaseBSTOrder> purchaseAddBSTOrders = new List<Dt_PurchaseBSTOrder>();
List<Dt_PurchaseBSTOrder> purchaseUpdateBSTOrders = new List<Dt_PurchaseBSTOrder>();
List<Dt_PurchaseBSTOrder> purchaseDeleteBSTOrders = new List<Dt_PurchaseBSTOrder>();
+ List<Dt_PurchaseBSTOrderDetail> purchaseBSTOrderDetailsDel = new List<Dt_PurchaseBSTOrderDetail>();
+ //鏂板
if (bSTPurchaseOrderDTOsAdd.Count>0)
{
//鍒ゆ柇渚涘簲鍟�
@@ -83,41 +85,73 @@
}
//楠岃瘉鏉$爜閲嶅
List<Dt_PurchaseBSTOrderDetail> purchaseBSTOrderDetails = OldpurchaseBSTOrders.SelectMany(x => x.Details).ToList();
- List<PaperReceiptDetailsItem> paperReceiptDetailsItems = bSTPurchaseOrderDTOsAdd.SelectMany(x => x.PaperReceiptDetails).ToList();
- var ExistDetail = purchaseBSTOrderDetails.FirstOrDefault(x => paperReceiptDetailsItems.Select(x => x.Barcode).Contains(x.Barcode));
+ List<PaperReceiptDetailsItem> paperReceiptDetailsItemsAdd = bSTPurchaseOrderDTOsAdd.SelectMany(x => x.PaperReceiptDetails).ToList();
+ var ExistDetail = purchaseBSTOrderDetails.FirstOrDefault(x => paperReceiptDetailsItemsAdd.Select(x => x.Barcode).Contains(x.Barcode));
if (ExistDetail!=null)
{
return content.Error($"閲囪喘鏉$爜{nameof(ExistDetail.Barcode)}:{ExistDetail.Barcode}宸插瓨鍦�");
}
//鍒ゆ柇鏄惁瀛樺湪鐗╂枡
- PaperReceiptDetailsItem? paperReceiptDetailsItem = paperReceiptDetailsItems.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId));
+ PaperReceiptDetailsItem? paperReceiptDetailsItem = paperReceiptDetailsItemsAdd.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId));
if (paperReceiptDetailsItem!=null)
{
- return content.Error($"閲囪喘鏉$爜{nameof(ExistDetail.Barcode)}:{ExistDetail.Barcode}鐗╂枡Id:{paperReceiptDetailsItem.MaterialId}涓嶅瓨鍦�");
+ return content.Error($"閲囪喘鏉$爜{nameof(paperReceiptDetailsItem.Barcode)}:{paperReceiptDetailsItem.Barcode}鐗╂枡Id:{paperReceiptDetailsItem.MaterialId}涓嶅瓨鍦�");
}
foreach (var item in bSTPurchaseOrderDTOsAdd)
{
+ if (bSTPurchaseOrderDTOsUpdate.FirstOrDefault(x=>x.PaperReceiptId== item.PaperReceiptId)!=null)
+ {
+ continue;
+ }
List<Dt_PurchaseBSTOrderDetail> bSTOrderDetails = item.PaperReceiptDetails.Select(x=>_mapper.Map<Dt_PurchaseBSTOrderDetail>(x)).ToList();
Dt_PurchaseBSTOrder purchaseBSTOrder = _mapper.Map<Dt_PurchaseBSTOrder>(item);
purchaseBSTOrder.Details = bSTOrderDetails;
purchaseAddBSTOrders.Add(purchaseBSTOrder);
}
}
-
+ //鏇存柊
if (bSTPurchaseOrderDTOsUpdate.Count > 0)
{
- List<Dt_PurchaseBSTOrder>? ExistUpdatePurchase = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsUpdate.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).ToList();
- //鏇存柊鐨勫崟鎹槸鍚﹀瓨鍦�
- if (ExistUpdatePurchase.Count == bSTPurchaseOrderDTOsUpdate.Count)
- {
+ //瀛樺湪鐨勯噰璐崟
+ List<Dt_PurchaseBSTOrder>? ExistpurchaseBSTOrders = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsUpdate.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).Distinct().ToList();
- }
- else
+ foreach (var item in bSTPurchaseOrderDTOsUpdate)
{
- BSTPurchaseOrderDTO? bSTPurchaseOrderDTO = bSTPurchaseOrderDTOsUpdate.FirstOrDefault(x => !ExistUpdatePurchase.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId));
- return content.Error($"鏈壘鍒版寚瀹氶噰璐敹璐у崟{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}");
+ Dt_PurchaseBSTOrder? purchaseBSTOrderUpdate = ExistpurchaseBSTOrders.FirstOrDefault(x => x.PaperReceiptId == item.PaperReceiptId);
+ //濡傛灉璁㈠崟宸插瓨鍦ㄥ垯杩涜鏇存敼
+ if (purchaseBSTOrderUpdate != null)
+ {
+ if (purchaseBSTOrderUpdate.PurchaseOrderStatus!=InOrderStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ return content.Error($"閲囪喘{nameof(purchaseBSTOrderUpdate.PaperReceiptId)}:{purchaseBSTOrderUpdate.PaperReceiptId}璁㈠崟鍏ュ簱涓紝涓嶅彲鏇存敼");
+ }
+ purchaseBSTOrderDetailsDel.AddRange(purchaseBSTOrderUpdate.Details);
+
+ //鏇存柊
+ List<Dt_PurchaseBSTOrderDetail> bSTOrderDetails = item.PaperReceiptDetails.Select(x => _mapper.Map<Dt_PurchaseBSTOrderDetail>(x)).ToList();
+ bSTOrderDetails.ForEach(x =>
+ {
+ x.PurchaseBSTOrderId = purchaseBSTOrderUpdate.Id;
+ });
+ purchaseBSTOrderUpdate.Details = bSTOrderDetails;
+ purchaseBSTOrderUpdate.PaperReceiptId = item.PaperReceiptId;
+ purchaseBSTOrderUpdate.PaperReceiptNo = item.PaperReceiptNo;
+ purchaseBSTOrderUpdate.VendNo = item.VendNo;
+ purchaseBSTOrderUpdate.ReceiptDate = DateTimeOffset.FromUnixTimeMilliseconds(item.ReceiptDate).DateTime;
+ purchaseBSTOrderUpdate.TotalProcurementLength = item.TotalProcurementLength;
+ purchaseUpdateBSTOrders.Add(purchaseBSTOrderUpdate);
+ }
+ else //濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+ {
+ List<Dt_PurchaseBSTOrderDetail> bSTOrderDetails = item.PaperReceiptDetails.Select(x => _mapper.Map<Dt_PurchaseBSTOrderDetail>(x)).ToList();
+ Dt_PurchaseBSTOrder purchaseBSTOrder = _mapper.Map<Dt_PurchaseBSTOrder>(item);
+ purchaseBSTOrder.Details = bSTOrderDetails;
+ purchaseAddBSTOrders.Add(purchaseBSTOrder);
+ }
}
+
}
+ //鍒犻櫎
if (bSTPurchaseOrderDTOsDel.Count>0)
{
List<Dt_PurchaseBSTOrder>? ExistDelPurchase = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsDel.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).ToList();
@@ -132,8 +166,11 @@
return content.Error($"鏈壘鍒版寚瀹氶噰璐敹璐у崟{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}");
}
}
+ //鏇存柊鏁版嵁
_unitOfWorkManage.BeginTran();
BaseDal.Db.InsertNav(purchaseAddBSTOrders).Include(x => x.Details).ExecuteCommand();
+ _purchaseBSTOrderDetailRepository.DeleteData(purchaseBSTOrderDetailsDel);
+ BaseDal.Db.UpdateNav(purchaseUpdateBSTOrders).Include(x => x.Details).ExecuteCommand();
_unitOfWorkManage.CommitTran();
content.OK("鎺ユ敹鎴愬姛");
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderDetailService.cs"
new file mode 100644
index 0000000..94bd890
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderDetailService.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IInboundRepository;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundService
+{
+ public class ReturnBSTOrderDetailService : ServiceBase<Dt_ReturnBSTOrderDetail, IReturnBSTOrderDetailRepository>, IReturnBSTOrderDetailService
+ {
+ public IReturnBSTOrderDetailRepository Repository => BaseDal;
+
+ public ReturnBSTOrderDetailService(IReturnBSTOrderDetailRepository BaseDal) : base(BaseDal)
+ {
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs"
new file mode 100644
index 0000000..bfaba6f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs"
@@ -0,0 +1,164 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.WareHouseEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_IInboundService;
+using WIDESEA_InboundRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundService
+{
+ public class ReturnBSTOrderService : ServiceBase<Dt_ReturnBSTOrder, IReturnBSTOrderRepository>, IReturnBSTOrderService
+ {
+ public IReturnBSTOrderRepository Repository => BaseDal;
+ private IUnitOfWorkManage _unitOfWorkManage;
+ private IBasicRepository _basicRepository;
+ private IStockInfoRepository _stockInfoRepository;
+ private IReturnBSTOrderDetailRepository _returnBSTOrderDetailRepository;
+ private IMapper _mapper;
+
+ public ReturnBSTOrderService(IReturnBSTOrderRepository BaseDal,IUnitOfWorkManage unitOfWorkManage,IBasicRepository basicRepository, IStockInfoRepository stockInfoRepository, IReturnBSTOrderDetailRepository returnBSTOrderDetailRepository, IMapper mapper) : base(BaseDal)
+ {
+ _unitOfWorkManage = unitOfWorkManage;
+ _basicRepository = basicRepository;
+ _stockInfoRepository = stockInfoRepository;
+ _returnBSTOrderDetailRepository = returnBSTOrderDetailRepository;
+ _mapper = mapper;
+ }
+ /// <summary>
+ /// 鎺ユ敹鍗氭�濋�氶��鏂欎俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent ReceiveReturnOrder(List<BSTReturnOrderDTO> bSTReturnOrderDTOs)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ List<Dt_ReturnBSTOrder> OldreturnBSTOrders = BaseDal.Db.Queryable<Dt_ReturnBSTOrder>().Includes(x => x.Details).ToList();
+ List<Dt_StockInfo> ExiststockInfos = _stockInfoRepository.QueryData(x=>x.WarehouseId==WarehouseEnum.LLDOldCache.ObjToInt());
+ //鏂板
+ List<BSTReturnOrderDTO> bSTReturnOrderDTOsAdd = bSTReturnOrderDTOs.Where(x => x.Way == 1).ToList();
+ //淇敼
+ List<BSTReturnOrderDTO> bSTReturnOrderDTOsUpdate = bSTReturnOrderDTOs.Where(x => x.Way == 2).ToList();
+ //鍒犻櫎
+ List<BSTReturnOrderDTO> bSTReturnOrderDTOsDel = bSTReturnOrderDTOs.Where(x => x.Way == 3).ToList();
+ //鑾峰彇鎵�鏈夌墿鏂�
+ List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt() && x.MaterialSourceId != 0);
+
+ List<Dt_ReturnBSTOrder> returnAddBSTOrders = new List<Dt_ReturnBSTOrder>();
+ List<Dt_ReturnBSTOrder> returnUpdateBSTOrders = new List<Dt_ReturnBSTOrder>();
+ List<Dt_ReturnBSTOrder> returnDeleteBSTOrders = new List<Dt_ReturnBSTOrder>();
+ List<Dt_ReturnBSTOrderDetail> returnBSTOrderDetailsDel = new List<Dt_ReturnBSTOrderDetail>();
+ List<Dt_StockInfo> stockInfosUpdate = new List<Dt_StockInfo>();
+ //鏂板
+ if (bSTReturnOrderDTOsAdd.Count > 0)
+ {
+ //鍒ゆ柇鍗曟嵁
+ Dt_ReturnBSTOrder? ExistAddReturn = OldreturnBSTOrders.FirstOrDefault(x => bSTReturnOrderDTOsAdd.Select(x => x.PaperWreturnId).Contains(x.PaperWreturnId));
+ if (ExistAddReturn != null)
+ {
+ return content.Error($"閫�鏂欏崟{nameof(BSTReturnOrderDTO.PaperWreturnId)}:{ExistAddReturn.PaperWreturnId}宸插瓨鍦�");
+ }
+ List<BSTReturnOrderDTOItem> bSTReturnOrderDTOItemsAdd = bSTReturnOrderDTOsAdd.SelectMany(x => x.BstPaperWreturnDetails).ToList();
+ //鍒ゆ柇鏄惁瀛樺湪鐗╂枡
+ BSTReturnOrderDTOItem? bSTReturnOrderDTOItem = bSTReturnOrderDTOItemsAdd.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId));
+ if (bSTReturnOrderDTOItem != null)
+ {
+ return content.Error($"閫�鏂檣nameof(bSTReturnOrderDTOItem.Barcode)}:{bSTReturnOrderDTOItem.Barcode}鐗╂枡{nameof(BSTReturnOrderDTOItem.MaterialId)}:{bSTReturnOrderDTOItem.MaterialId}涓嶅瓨鍦�");
+ }
+ //楠岃瘉閫�鏂欐潯鐮佹槸鍚﹀湪搴撳瓨涓�
+ var ExiststockInfo = bSTReturnOrderDTOItemsAdd.FirstOrDefault(x => !ExiststockInfos.Select(x => x.PalletCode).Contains(x.Barcode));
+ if (ExiststockInfo != null)
+ {
+ return content.Error($"閫�鏂欐潯鐮亄nameof(ExiststockInfo.Barcode)}:{ExiststockInfo.Barcode}鐗╂枡鏈湪鑰佸巶鏆傚瓨鍖�");
+ }
+ //鑾峰彇瀵瑰簲搴撳瓨淇搴撳瓨鏁伴噺
+ List<Dt_StockInfo> returnStockinfos = ExiststockInfos.Where(x => bSTReturnOrderDTOItemsAdd.Select(x => x.Barcode).Contains(x.PalletCode)).ToList();
+ foreach (var item in bSTReturnOrderDTOsAdd)
+ {
+ if (bSTReturnOrderDTOsUpdate.FirstOrDefault(x => x.PaperWreturnId == item.PaperWreturnId) != null)
+ {
+ continue;
+ }
+ List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList();
+ Dt_ReturnBSTOrder returnBSTOrder = _mapper.Map<Dt_ReturnBSTOrder>(item);
+ returnBSTOrder.Details = bSTOrderDetails;
+ returnAddBSTOrders.Add(returnBSTOrder);
+ }
+ }
+ //鏇存柊
+ if (bSTReturnOrderDTOsUpdate.Count > 0)
+ {
+ //瀛樺湪鐨勯噰璐崟
+ List<Dt_ReturnBSTOrder>? ExistreturnBSTOrders = OldreturnBSTOrders.Where(x => bSTReturnOrderDTOsUpdate.Select(x => x.PaperWreturnId).Contains(x.PaperWreturnId)).Distinct().ToList();
+
+ foreach (var item in bSTReturnOrderDTOsUpdate)
+ {
+ Dt_ReturnBSTOrder? returnBSTOrderUpdate = ExistreturnBSTOrders.FirstOrDefault(x => x.PaperWreturnId == item.PaperWreturnId);
+ //濡傛灉璁㈠崟宸插瓨鍦ㄥ垯杩涜鏇存敼
+ if (returnBSTOrderUpdate != null)
+ {
+ if (returnBSTOrderUpdate.ReturnOrderStatus != InOrderStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ return content.Error($"閫�鏂檣nameof(returnBSTOrderUpdate.PaperWreturnId)}:{returnBSTOrderUpdate.PaperWreturnId}璁㈠崟閫�鏂欏叆搴撲腑锛屼笉鍙洿鏀�");
+ }
+ returnBSTOrderDetailsDel.AddRange(returnBSTOrderUpdate.Details);
+
+ //鏇存柊
+ List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList();
+ bSTOrderDetails.ForEach(x =>
+ {
+ x.ReturnBSTOrderId = returnBSTOrderUpdate.Id;
+ });
+ returnBSTOrderUpdate.Details = bSTOrderDetails;
+ returnBSTOrderUpdate.PaperWreturnId = item.PaperWreturnId;
+ returnBSTOrderUpdate.PaperWreturnNo = item.PaperWreturnNo;
+ returnBSTOrderUpdate.EmployeeName = item.EmployeeName;
+ returnBSTOrderUpdate.WreturnDate = DateTimeOffset.FromUnixTimeMilliseconds(item.WreturnDate).DateTime;
+ returnUpdateBSTOrders.Add(returnBSTOrderUpdate);
+ }
+ else //濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+ {
+ List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList();
+ Dt_ReturnBSTOrder returnBSTOrder = _mapper.Map<Dt_ReturnBSTOrder>(item);
+ returnBSTOrder.Details = bSTOrderDetails;
+ returnAddBSTOrders.Add(returnBSTOrder);
+ }
+ }
+
+ }
+ //鍒犻櫎
+ if (bSTReturnOrderDTOsDel.Count > 0)
+ {
+
+ }
+ //鏇存柊鏁版嵁
+ _unitOfWorkManage.BeginTran();
+ BaseDal.Db.InsertNav(returnAddBSTOrders).Include(x => x.Details).ExecuteCommand();
+ _returnBSTOrderDetailRepository.DeleteData(returnBSTOrderDetailsDel);
+ BaseDal.Db.UpdateNav(returnUpdateBSTOrders).Include(x => x.Details).ExecuteCommand();
+ _unitOfWorkManage.CommitTran();
+ content.OK("鎺ユ敹鎴愬姛");
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs"
index ae1dc37..dfa5d87 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs"
@@ -9,7 +9,7 @@
namespace WIDESEA_Model.Models
{
/// <summary>
- /// 鎺ュ彛淇℃伅
+ /// AGV绔欑偣淇℃伅琛�
/// </summary>
[SugarTable(nameof(Dt_AGVStationInfo), "AGV绔欑偣淇℃伅琛�")]
public class Dt_AGVStationInfo : BaseEntity
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrder.cs"
index 587582a..821e6fd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrder.cs"
@@ -12,7 +12,7 @@
/// <summary>
/// BST閲囪喘鍏ュ簱鍗�
/// </summary>
- [SugarTable(nameof(Dt_PurchaseBSTOrder), "BST閲囪喘鍏ュ簱鍗�"), ModelValidate]
+ [SugarTable(nameof(Dt_PurchaseBSTOrder), "BST閲囪喘鍏ュ簱鍗�")]
public class Dt_PurchaseBSTOrder : BaseEntity
{
/// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrderDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrderDetail.cs"
index e02d88b..dc9920f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrderDetail.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_PurchaseBSTOrderDetail.cs"
@@ -12,7 +12,7 @@
/// <summary>
/// BST閲囪喘鍏ュ簱鍗曟槑缁�
/// </summary>
- [SugarTable(nameof(Dt_PurchaseBSTOrderDetail), "BST閲囪喘鍏ュ簱鍗曟槑缁�"), ModelValidate]
+ [SugarTable(nameof(Dt_PurchaseBSTOrderDetail), "BST閲囪喘鍏ュ簱鍗曟槑缁�")]
public class Dt_PurchaseBSTOrderDetail : BaseEntity
{
/// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrder.cs"
new file mode 100644
index 0000000..be050f6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrder.cs"
@@ -0,0 +1,85 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core.CodeConfigEnum;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+ /// <summary>
+ /// BST閫�鏂欏崟
+ /// </summary>
+ [SugarTable(nameof(Dt_ReturnBSTOrder), "BST閫�鏂欏崟")]
+ public class Dt_ReturnBSTOrder : BaseEntity
+ {
+ /// <summary>
+ /// 涓婚敭
+ /// </summary>
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 浠撳簱涓婚敭
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+ public int WarehouseId { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欏崟鏉ユ簮ID
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欏崟鏉ユ簮ID")]
+ public int PaperWreturnId { get; set; }
+ /// <summary>
+ /// WMS鍗曟嵁缂栧彿
+ /// </summary>
+ [CodeRule(RuleCodeEnum.TLCodeRule)]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "WMS鍗曟嵁缂栧彿", IsOnlyIgnoreUpdate = true)]
+ public string ReturnInboundNo { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欏崟缂栧彿(涓婃父)
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "閫�鏂欏崟缂栧彿(涓婃父)")]
+ public string PaperWreturnNo { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欏憳宸�
+ /// </summary>
+ [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閫�鏂欏憳宸�")]
+ public string EmployeeName { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欐�婚暱搴�
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欐�婚暱搴�")]
+ public decimal TotalPaperWreturnLength { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欏崟鐘舵��
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欏崟鍏ュ簱鐘舵��")]
+ public int ReturnOrderStatus { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欐棩鏈�
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "閫�鏂欐棩鏈�")]
+ public DateTime WreturnDate { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 閲囪喘鍒楄〃
+ /// </summary>
+ [Navigate(NavigateType.OneToMany, nameof(Dt_ReturnBSTOrderDetail.ReturnBSTOrderId), nameof(Id))]
+ public List<Dt_ReturnBSTOrderDetail> Details { get; set; }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrderDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrderDetail.cs"
new file mode 100644
index 0000000..cadc975
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_ReturnBSTOrderDetail.cs"
@@ -0,0 +1,101 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+ /// <summary>
+ /// BST閫�鏂欏崟鏄庣粏
+ /// </summary>
+ [SugarTable(nameof(Dt_ReturnBSTOrderDetail), "BST閫�鏂欏崟鏄庣粏")]
+ public class Dt_ReturnBSTOrderDetail : BaseEntity
+ {
+ /// <summary>
+ /// 涓婚敭
+ /// </summary>
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 澶磋〃涓婚敭
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "澶磋〃涓婚敭")]
+ public int ReturnBSTOrderId { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欐潵婧怚D
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欐潵婧怚D")]
+ public int PaperWreturnId { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鏉ユ簮ID(涓婃父)
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡鏉ユ簮ID(涓婃父)")]
+ public int MaterialId { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鏉$爜
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡鏉$爜")]
+ public string Barcode { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栧彿
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
+ public string MaterialNo { get; set; }
+
+ /// <summary>
+ /// 鎵规搴忓垪鍙�
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "鎵规搴忓垪鍙�")]
+ public int SeqNo { get; set; }
+
+ /// <summary>
+ /// 骞呭
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "骞呭")]
+ public decimal MaterialWide { get; set; }
+
+ /// <summary>
+ /// 鐩村緞
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "鐩村緞")]
+ public decimal MaterialThick { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欓暱搴�
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欓暱搴�")]
+ public decimal ProcurementLength { get; set; }
+
+ /// <summary>
+ /// 閫�璐ф暟閲�
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�璐ф暟閲�")]
+ public decimal Qty { get; set; }
+
+ /// <summary>
+ /// 閫�鏂欏崟鏄庣粏鐘舵��
+ /// </summary>
+ [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欏崟鏄庣粏鐘舵��")]
+ public int ReturnBSTOrderDetailStatus { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鍗曚綅")]
+ public string Unit { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
+ public string MaterielName { get; set; }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs"
index 4f27480..988d3c5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutBSTOrderService.cs"
@@ -5,12 +5,13 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.OrderEnum;
using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
-using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.ERP;
using WIDESEA_IBasicRepository;
using WIDESEA_IOutboundRepository;
using WIDESEA_IOutboundService;
@@ -24,12 +25,14 @@
private readonly IBasicRepository _basicRepository;
private readonly IMapper _mapper;
private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IOutBSTOrderDetailRepository _outBSTOrderDetailRepository;
- public OutBSTOrderService(IOutBSTOrderRepository BaseDal,IBasicRepository basicRepository,IMapper mapper,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+ public OutBSTOrderService(IOutBSTOrderRepository BaseDal,IBasicRepository basicRepository,IMapper mapper,IUnitOfWorkManage unitOfWorkManage,IOutBSTOrderDetailRepository outBSTOrderDetailRepository) : base(BaseDal)
{
_basicRepository = basicRepository;
_mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
+ _outBSTOrderDetailRepository = outBSTOrderDetailRepository;
}
/// <summary>
/// 娣诲姞鍑哄簱鎺掔▼淇℃伅
@@ -53,6 +56,7 @@
List<Dt_OutBSTOrder> outBSTAddOrders = new List<Dt_OutBSTOrder>();
List<Dt_OutBSTOrder> outBSTUpOrders = new List<Dt_OutBSTOrder>();
List<Dt_OutBSTOrder> outBSTDelOrders = new List<Dt_OutBSTOrder>();
+ List<Dt_OutBSTOrderDetail> outBSTOrderDetailsDel = new List<Dt_OutBSTOrderDetail>();
//鏂板
if (outOrderDTOsAdd.Count>0)
{
@@ -62,8 +66,8 @@
{
return content.Error($"鍑哄簱鎺掔▼Id{nameof(BSTOutOrderDTO.BoardMpsId)}:{ExistAddOutOrder.BoardMpsId}宸插瓨鍦�");
}
- List<BstBoardMpsDetailItem> bstBoardMpsDetailItems = outOrderDTOsAdd.SelectMany(x => x.BstBoardMpsDetails).ToList();
//鍒ゆ柇鏄惁瀛樺湪鐗╂枡
+ List<BstBoardMpsDetailItem> bstBoardMpsDetailItems = outOrderDTOsAdd.SelectMany(x => x.BstBoardMpsDetails).ToList();
BstBoardMpsDetailItem? bstBoardMpsDetailItem = bstBoardMpsDetailItems.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId));
if (bstBoardMpsDetailItem != null)
{
@@ -71,6 +75,10 @@
}
foreach (var item in outOrderDTOsAdd)
{
+ if (outOrderDTOsUpdate.FirstOrDefault(x => x.BoardMpsId == item.BoardMpsId) != null)
+ {
+ continue;
+ }
List<Dt_OutBSTOrderDetail> bSTOrderDetails = item.BstBoardMpsDetails.Select(x => _mapper.Map<Dt_OutBSTOrderDetail>(x)).ToList();
Dt_OutBSTOrder outBSTOrder = _mapper.Map<Dt_OutBSTOrder>(item);
outBSTOrder.Details=bSTOrderDetails;
@@ -80,16 +88,38 @@
//淇敼
if (outOrderDTOsUpdate.Count > 0)
{
- List<Dt_OutBSTOrder>? ExistUpdateoutBSTOrders = OldoutBSTOrders.Where(x => outOrderDTOsUpdate.Select(x => x.BoardMpsId).Contains(x.BoardMpsId)).ToList();
- //鏇存柊鐨勫崟鎹槸鍚﹀瓨鍦�
- if (ExistUpdateoutBSTOrders.Count == outOrderDTOsUpdate.Count)
+ List<Dt_OutBSTOrder>? ExistUpdateOutBSTOrders = OldoutBSTOrders.Where(x => outOrderDTOsUpdate.Select(x => x.BoardMpsId).Contains(x.BoardMpsId)).ToList();
+
+ foreach (var item in outOrderDTOsUpdate)
{
-
- }
- else
- {
- BSTOutOrderDTO? bSTOutOrderDTO = outOrderDTOsUpdate.FirstOrDefault(x => !ExistUpdateoutBSTOrders.Select(x => x.BoardMpsId).Contains(x.BoardMpsId));
- return content.Error($"鏈壘鍒版寚瀹氱敓浜ф帓绋嬪崟Id{nameof(BSTOutOrderDTO.BoardMpsId)}:{bSTOutOrderDTO?.BoardMpsId}");
+ Dt_OutBSTOrder? outBSTOrderUpdate = ExistUpdateOutBSTOrders.FirstOrDefault(x=>x.BoardMpsId==item.BoardMpsId);
+ //濡傛灉璁㈠崟宸插瓨鍦ㄥ垯杩涜鏇存敼
+ if (outBSTOrderUpdate != null)
+ {
+ if (outBSTOrderUpdate.OutBSTOrderStatus != OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ return content.Error($"閲囪喘{nameof(outBSTOrderUpdate.BoardMpsId)}:{outBSTOrderUpdate.BoardMpsId}璁㈠崟鍑哄簱涓紝涓嶅彲鏇存敼");
+ }
+ //鏇存柊鏁版嵁
+ outBSTOrderDetailsDel.AddRange(outBSTOrderUpdate.Details);
+ List<Dt_OutBSTOrderDetail> bSTOrderDetails = item.BstBoardMpsDetails.Select(x => _mapper.Map<Dt_OutBSTOrderDetail>(x)).ToList();
+ bSTOrderDetails.ForEach(x =>
+ {
+ x.OutBSTOrderId = outBSTOrderUpdate.Id;
+ });
+ outBSTOrderUpdate.Details = bSTOrderDetails;
+ outBSTOrderUpdate.BoardMpsId= item.BoardMpsId;
+ outBSTOrderUpdate.BoardMpsNo= item.BoardMpsNo;
+ outBSTOrderUpdate.ProductionDate = DateTimeOffset.FromUnixTimeMilliseconds(item.ProductionDate).DateTime;
+ outBSTUpOrders.Add(outBSTOrderUpdate);
+ }
+ else//濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+ {
+ List<Dt_OutBSTOrderDetail> bSTOrderDetails = item.BstBoardMpsDetails.Select(x => _mapper.Map<Dt_OutBSTOrderDetail>(x)).ToList();
+ Dt_OutBSTOrder outBSTOrder = _mapper.Map<Dt_OutBSTOrder>(item);
+ outBSTOrder.Details = bSTOrderDetails;
+ outBSTAddOrders.Add(outBSTOrder);
+ }
}
}
//鍒犻櫎
@@ -109,6 +139,8 @@
}
_unitOfWorkManage.BeginTran();
BaseDal.Db.InsertNav(outBSTAddOrders).Include(x => x.Details).ExecuteCommand();
+ _outBSTOrderDetailRepository.DeleteData(outBSTOrderDetailsDel);
+ BaseDal.Db.UpdateNav(outBSTUpOrders).Include(x => x.Details).ExecuteCommand();
_unitOfWorkManage.CommitTran();
content.OK("鎺ユ敹鎴愬姛");
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs"
index 296426f..b4cc9c5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs"
@@ -71,7 +71,7 @@
var weight = saveModel.MainData["weight"].ObjToInt();
//骞呭
var wide = saveModel.MainData["wide"].ObjToInt();
- Dt_MaterielInfo? materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x=>x.MaterielCode== materSn);
+ Dt_MaterielInfo? materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materSn);
if (materielInfo==null)
{
return content.Error("鏈壘鍒扮墿鏂欎俊鎭�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 4c3a92f..ed643cb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -277,28 +277,59 @@
}
string roadwayNo = "";
- //闄愬埗鐩村緞
- if (stockInfo.MaterielThickness > 800)
+
+ if (stockInfo.MaterielInvOrgId==MaterielInvOrgEnum.鏂板巶.ObjToInt())
{
- //鑾峰彇鍒嗛厤
- List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
- if (stockInfo.MaterielWide > 2200)
+ //闄愬埗鐩村緞
+ if (stockInfo.MaterielThickness <= 1200)
{
- locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo=="SC02_YL").GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
- }
- List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
- && locationCounts.Select(j => j.RoadwayNo).Contains(x.Roadway)
- && TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
- foreach (var item in locationCounts)
- {
- LocationCount? count = useLocationCounts.FirstOrDefault(x => x.RoadwayNo == item.RoadwayNo);
- if (count != null)
+ //鑾峰彇鍒嗛厤
+ List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YLDual")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
+
+ //宸烽亾浠诲姟鍒嗛厤鏁伴噺
+ List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
+ && locationCounts.Select(j => j.RoadwayNo).Contains(x.Roadway)
+ && TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
+
+ foreach (var item in locationCounts)
{
- item.Count -= count.Count;
+ LocationCount? count = useLocationCounts.FirstOrDefault(x => x.RoadwayNo == item.RoadwayNo);
+ if (count != null)
+ {
+ item.Count -= count.Count;
+ }
}
+ roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
}
- roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
}
+ else
+ {
+ //闄愬埗鐩村緞
+ if (stockInfo.MaterielThickness >= 800 && stockInfo.MaterielThickness <= 1500)
+ {
+ //鑾峰彇鍒嗛厤
+ List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YL") && !x.RoadwayNo.Contains("YLDual")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
+ if (stockInfo.MaterielWide > 2200)
+ {
+ locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo == "SC02_YL").GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
+ }
+
+ //宸烽亾浠诲姟鍒嗛厤鏁伴噺
+ List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
+ && locationCounts.Select(j => j.RoadwayNo).Contains(x.Roadway)
+ && TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
+ foreach (var item in locationCounts)
+ {
+ LocationCount? count = useLocationCounts.FirstOrDefault(x => x.RoadwayNo == item.RoadwayNo);
+ if (count != null)
+ {
+ item.Count -= count.Count;
+ }
+ }
+ roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
+ }
+ }
+
return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("鏈壘鍒板彲鍒嗛厤宸烽亾");
}
catch (Exception ex)
@@ -316,7 +347,7 @@
try
{
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId);
- if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString()) //鎴愬搧瀹屾垚
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString() || warehouse.WarehouseCode == WarehouseEnum.LLDFL.ToString()) //鎴愬搧/杈呮枡瀹屾垚
{
Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
if (locationInfoEnd == null)
@@ -396,21 +427,23 @@
_stockService.StockInfoService.Repository.UpdateData(stockInfo);
_basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
- //if (stockInfo.MaterielInvOrgId==MaterielInvOrgEnum.鑰佸巶.ObjToInt())
- //{
- // int Qty = Convert.ToInt32(stockInfo.MaterielWeight);
- // BSTPurchaseUpModel bSTPurchaseUpModel = new BSTPurchaseUpModel()
- // {
- // Barcode = stockInfo.PalletCode,
- // BarcodeQty = Qty,
- // Rfid = stockInfo.PalletCode
- // };
- // BSTResponse bSTResponse = _invokeERPService.BSTPurchaseUp(bSTPurchaseUpModel).DeserializeObject<BSTResponse>();
- // if (bSTResponse.Code==500)
- // {
- // throw new Exception($"BST涓�鏈烢RP鍚屾鍏ュ簱淇℃伅澶辫触,閿欒淇℃伅{bSTResponse.Msg}");
- // }
- //}
+ //涓婃姤鑰佸巶ERP
+ if (stockInfo.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt())
+ {
+ int Qty = Convert.ToInt32(stockInfo.MaterielWeight);
+ BSTPurchaseUpModel bSTPurchaseUpModel = new BSTPurchaseUpModel()
+ {
+ Barcode = stockInfo.PalletCode,
+ BarcodeQty = Qty,
+ Rfid = stockInfo.PalletCode,
+ RfidUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+ };
+ BSTResponse bSTResponse = _invokeERPService.BSTPurchaseUp(bSTPurchaseUpModel).DeserializeObject<BSTResponse>();
+ if (bSTResponse.Code == 500)
+ {
+ throw new Exception($"BST涓�鏈烢RP鍚屾鍏ュ簱淇℃伅澶辫触,閿欒淇℃伅锛歿bSTResponse.Msg}");
+ }
+ }
_unitOfWorkManage.CommitTran();
}
return content.OK();
@@ -430,16 +463,11 @@
{
try
{
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == 2);
- if (warehouse == null)
- {
- throw new Exception($"鏈壘鍒板贩閬撳搴斾粨搴撲俊鎭�");
- }
-
string roadwayNo = "";
- List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("CP")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
+ //鑾峰彇宸烽亾鍙垎閰嶇殑璐т綅鏁伴噺
+ List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == WarehouseEnum.LLDCP.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("CP")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
//绛涢�夊綋鍓嶅叆搴撲换鍔′腑宸插垎閰嶅贩閬撲换鍔℃暟閲�
- List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
+ List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => (x.WarehouseId == WarehouseEnum.LLDCP.ObjToInt()|| x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt())
&& locationCounts.Select(j=>j.RoadwayNo).Contains(x.Roadway)
&& TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
foreach (var item in locationCounts)
@@ -450,6 +478,7 @@
item.Count -= count.Count;
}
}
+ //閫氳繃鍙敤璐т綅鏁伴噺鎺掑簭锛屾渶澶氱殑浼樺厛鍒嗛厤
roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("鏈壘鍒板彲鍒嗛厤宸烽亾");
}
@@ -600,15 +629,13 @@
//鍒嗛厤宸烽亾
string roadWay=AssignCPRoadwayNo();
- //鑾峰彇鎴愬搧搴�
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.LLDCP.ToString());
Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
{
PalletCode=barCode,
ProStockAttribute=ProStockAttributeEnum.绌烘墭.ObjToInt(),
PalletType=1,
LocationCode="",
- WarehouseId=warehouse.WarehouseId,
+ WarehouseId= WarehouseEnum.LLDFL.ObjToInt(),
StockStatus=StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt()
};
@@ -623,7 +650,7 @@
TargetAddress = "",
TaskType = TaskTypeEnum.EmptyProductBack.ObjToInt(),
TaskStatus = TaskStatusEnum.New.ObjToInt(),
- WarehouseId = warehouse.WarehouseId,
+ WarehouseId = WarehouseEnum.LLDFL.ObjToInt(),
PalletType = 1
};
_unitOfWorkManage.BeginTran();
@@ -660,7 +687,8 @@
//{
// return content.Error($"妗嗙爜鏍煎紡閿欒{barCode}");
//}
- Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == matCode && x.MaterielInvOrgId == MaterielInvOrgEnum.鏂板巶.ObjToInt() && x.WarehouseId==WarehouseEnum.LLDCP.ObjToInt());
+ //鑾峰彇鐗╂枡
+ Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == matCode && x.MaterielInvOrgId == MaterielInvOrgEnum.鏂板巶.ObjToInt() && (x.WarehouseId==WarehouseEnum.LLDCP.ObjToInt() || x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt()));
if (materielInfo == null)
{
return content.Error($"鏈壘鍒扮墿鏂欎俊鎭瘂matCode}");
@@ -690,7 +718,7 @@
string roadWay = AssignCPRoadwayNo();
//鑾峰彇鎴愬搧搴�
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.LLDCP.ToString());
+ WarehouseEnum warehouseEnum = materielInfo.MaterielSourceType == MaterielTypeEnum.鎴愬搧.ObjToInt() ? WarehouseEnum.LLDCP : WarehouseEnum.LLDFL;
Dt_ProStockInfoDetail proStockInfoDetail = new Dt_ProStockInfoDetail()
{
ProductCode = materielInfo.MaterielCode,
@@ -706,7 +734,7 @@
ProStockAttribute = materielInfo.MaterielSourceType,
PalletType = 1,
LocationCode = "",
- WarehouseId = warehouse.WarehouseId,
+ WarehouseId = warehouseEnum.ObjToInt(),
StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt(),
proStockInfoDetails = new List<Dt_ProStockInfoDetail> { proStockInfoDetail }
};
@@ -722,7 +750,7 @@
TargetAddress = "",
TaskType = TaskTypeEnum.Inbound.ObjToInt(),
TaskStatus = TaskStatusEnum.New.ObjToInt(),
- WarehouseId = warehouse.WarehouseId,
+ WarehouseId = warehouseEnum.ObjToInt(),
PalletType = 1
};
_unitOfWorkManage.BeginTran();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 3c00276..ae4290d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -87,7 +87,7 @@
try
{
Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId);
- if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString()) //鎴愬搧瀹屾垚
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString() || warehouse.WarehouseCode == WarehouseEnum.LLDFL.ToString()) //鎴愬搧瀹屾垚
{
Dt_LocationInfo locationInfoStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
if (locationInfoStart == null)
@@ -189,7 +189,7 @@
}
return tasks;
}
- public List<Dt_Task> GetTasks(List<Dt_ProStockInfo> stockInfos, TaskTypeEnum taskType)
+ public List<Dt_Task> GetTasks(List<Dt_ProStockInfo> stockInfos, TaskTypeEnum taskType,List<Dt_LocationInfo> locationInfos)
{
List<Dt_Task> tasks = new List<Dt_Task>();
for (int i = 0; i < stockInfos.Count; i++)
@@ -198,7 +198,7 @@
if (stockInfo != null)
{
- Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
+ Dt_LocationInfo locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == stockInfo.LocationCode);
if (!tasks.Exists(x => x.PalletCode == stockInfo.PalletCode))
{
Dt_Task task = new()
@@ -226,37 +226,48 @@
/// <summary>
/// 鎴愬搧鍑哄簱
/// </summary>
- /// <param name="Count"></param>
/// <returns></returns>
- public WebResponseContent RequestCPWMSTaskOut(int Count)
+ public WebResponseContent RequestCPWMSTaskOut(string materialCode,int Count, int targetId)
{
WebResponseContent content = new WebResponseContent();
try
{
- List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x=>x.StationArea==AGVStationAreaEnum.AreaA.ObjToInt() && x.IsOccupied==WhetherEnum.False.ObjToInt());
+ List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x=>x.StationArea == targetId && x.IsOccupied==WhetherEnum.False.ObjToInt());
if (aGVStationInfos.Count< Count)
{
return content.Error($"鍙敤缂撳瓨鏁颁笉瓒�");
}
- List<Dt_ProStockInfo> stockInfos = _stockRepository.ProStockInfoRepository.QueryData(x => x.ProStockAttribute == ProStockAttributeEnum.鎴愬搧.ObjToInt() && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()).OrderBy(x=>x.CreateDate).Take(Count).ToList();
- List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => stockInfos.Select(x => x.LocationCode).Contains(x.LocationCode));
- if (stockInfos.Count < Count)
+ //鑾峰彇璐т綅
+ List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDCP.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt());
+
+ //鑾峰彇鍙敤搴撳瓨
+ List<Dt_ProStockInfo> stockInfos = BaseDal.Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Select(x => x.LocationCode).Contains(x.LocationCode) && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()).Includes(x => x.proStockInfoDetails)
+ .Where(x => x.proStockInfoDetails
+ .Any(v =>
+ v.ProductCode == materialCode)
+ ).ToList();
+
+ if (stockInfos.Count!=Count)
{
- return content.Error($"搴撳瓨鏁伴噺涓嶈冻");
+ return content.Error($"搴撳瓨{materialCode}鏁伴噺涓嶈冻");
}
+ List<Dt_LocationInfo> AssignLocations = new List<Dt_LocationInfo>();
foreach (var item in stockInfos)
{
Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == item.LocationCode);
- if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+ if (locationInfo != null)
{
+ AssignLocations.Add(locationInfo);
item.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
}
- else
- {
- return content.Error($"璐т綅鐘舵�佷笉姝g‘");
- }
}
- List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutProduct);
+ TaskTypeEnum typeEnum = targetId switch
+ {
+ (int)AGVStationAreaEnum.AreaA => TaskTypeEnum.OutProduct,
+ (int)AGVStationAreaEnum.AreaC => TaskTypeEnum.OutWFB,
+ _ => throw new Exception("鏈壘鍒板搴斾换鍔�")
+ };
+ List<Dt_Task> tasks = GetTasks(stockInfos, typeEnum, AssignLocations);
if (tasks == null || tasks.Count <= 0)
{
return content.Error($"鐢熸垚浠诲姟澶辫触");
@@ -272,9 +283,9 @@
_stockRepository.ProStockInfoRepository.UpdateData(stockInfos);
_agvStationInfoRepository.UpdateData(aGVStationInfos);
//鏇存柊璐т綅鐘舵��
- _basicRepository.LocationInfoRepository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock);
+ _basicRepository.LocationInfoRepository.UpdateLocationStatus(AssignLocations, LocationStatusEnum.Lock);
//鍔犲叆璐т綅鍙樺姩璁板綍
- _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, taskNums: tasks.Select(x => x.TaskNum).ToList());
+ _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(AssignLocations, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, taskNums: tasks.Select(x => x.TaskNum).ToList());
//鏂板缓浠诲姟
BaseDal.AddData(tasks);
_unitOfWorkManage.CommitTran();
@@ -292,65 +303,65 @@
/// </summary>
/// <param name="Count"></param>
/// <returns></returns>
- public WebResponseContent RequestWFBWMSTaskOut(int Count)
- {
- WebResponseContent content = new WebResponseContent();
- try
- {
- List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x => x.StationArea == AGVStationAreaEnum.AreaC.ObjToInt() && x.IsOccupied == WhetherEnum.False.ObjToInt());
- if (aGVStationInfos.Count < Count)
- {
- return content.Error($"鍙敤缂撳瓨鏁颁笉瓒�");
- }
- List<Dt_ProStockInfo> stockInfos = _stockRepository.ProStockInfoRepository.QueryData(x => x.ProStockAttribute == ProStockAttributeEnum.杈呮枡澶囦欢.ObjToInt() && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()).OrderBy(x => x.CreateDate).Take(Count).ToList();
- List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => stockInfos.Select(x => x.LocationCode).Contains(x.LocationCode));
- if (stockInfos.Count < Count)
- {
- return content.Error($"搴撳瓨鏁伴噺涓嶈冻");
- }
- foreach (var item in stockInfos)
- {
- Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == item.LocationCode);
- if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
- {
- item.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
- }
- else
- {
- return content.Error($"璐т綅鐘舵�佷笉姝g‘");
- }
- }
- List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutWFB);
- if (tasks == null || tasks.Count <= 0)
- {
- return content.Error($"鐢熸垚浠诲姟澶辫触");
- }
- for (int i = 0; i < tasks.Count; i++)
- {
- aGVStationInfos[i].IsOccupied = WhetherEnum.True.ObjToInt();
- tasks[i].TargetAddress = aGVStationInfos[i].AGVStationCode;
- }
- //鍒ゆ柇鏄惁鏈夊嚭搴撳崟淇℃伅
- _unitOfWorkManage.BeginTran();
- //鏇存柊搴撳瓨鐘舵��
- _stockRepository.ProStockInfoRepository.UpdateData(stockInfos);
- _agvStationInfoRepository.UpdateData(aGVStationInfos);
- //鏇存柊璐т綅鐘舵��
- _basicRepository.LocationInfoRepository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock);
- //鍔犲叆璐т綅鍙樺姩璁板綍
- _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, taskNums: tasks.Select(x => x.TaskNum).ToList());
- //鏂板缓浠诲姟
- BaseDal.AddData(tasks);
- _unitOfWorkManage.CommitTran();
- PushTasksToWCS(tasks);
- content.OK();
- }
- catch (Exception ex)
- {
- content.Error(ex.Message);
- }
- return content;
- }
+ //public WebResponseContent RequestWFBWMSTaskOut(int Count)
+ //{
+ // WebResponseContent content = new WebResponseContent();
+ // try
+ // {
+ // List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x => x.StationArea == AGVStationAreaEnum.AreaC.ObjToInt() && x.IsOccupied == WhetherEnum.False.ObjToInt());
+ // if (aGVStationInfos.Count < Count)
+ // {
+ // return content.Error($"鍙敤缂撳瓨鏁颁笉瓒�");
+ // }
+ // List<Dt_ProStockInfo> stockInfos = _stockRepository.ProStockInfoRepository.QueryData(x => x.ProStockAttribute == ProStockAttributeEnum.杈呮枡澶囦欢.ObjToInt() && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()).OrderBy(x => x.CreateDate).Take(Count).ToList();
+ // List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => stockInfos.Select(x => x.LocationCode).Contains(x.LocationCode));
+ // if (stockInfos.Count < Count)
+ // {
+ // return content.Error($"搴撳瓨鏁伴噺涓嶈冻");
+ // }
+ // foreach (var item in stockInfos)
+ // {
+ // Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == item.LocationCode);
+ // if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+ // {
+ // item.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
+ // }
+ // else
+ // {
+ // return content.Error($"璐т綅鐘舵�佷笉姝g‘");
+ // }
+ // }
+ // List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutWFB);
+ // if (tasks == null || tasks.Count <= 0)
+ // {
+ // return content.Error($"鐢熸垚浠诲姟澶辫触");
+ // }
+ // for (int i = 0; i < tasks.Count; i++)
+ // {
+ // aGVStationInfos[i].IsOccupied = WhetherEnum.True.ObjToInt();
+ // tasks[i].TargetAddress = aGVStationInfos[i].AGVStationCode;
+ // }
+ // //鍒ゆ柇鏄惁鏈夊嚭搴撳崟淇℃伅
+ // _unitOfWorkManage.BeginTran();
+ // //鏇存柊搴撳瓨鐘舵��
+ // _stockRepository.ProStockInfoRepository.UpdateData(stockInfos);
+ // _agvStationInfoRepository.UpdateData(aGVStationInfos);
+ // //鏇存柊璐т綅鐘舵��
+ // _basicRepository.LocationInfoRepository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock);
+ // //鍔犲叆璐т綅鍙樺姩璁板綍
+ // _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, taskNums: tasks.Select(x => x.TaskNum).ToList());
+ // //鏂板缓浠诲姟
+ // BaseDal.AddData(tasks);
+ // _unitOfWorkManage.CommitTran();
+ // PushTasksToWCS(tasks);
+ // content.OK();
+ // }
+ // catch (Exception ex)
+ // {
+ // content.Error(ex.Message);
+ // }
+ // return content;
+ //}
/// <summary>
/// 鍘熸枡鍑哄簱浠诲姟
/// </summary>
@@ -382,6 +393,7 @@
item.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
}
}
+ //鍖哄垎浠诲姟
TaskTypeEnum taskTypeEnum = new();
if (stockInfos.FirstOrDefault()?.MaterielInvOrgId==MaterielInvOrgEnum.鑰佸巶.ObjToInt())
{
@@ -438,7 +450,7 @@
List<Dt_OutBSTOrderDetail> outBSTOrderDetails = new List<Dt_OutBSTOrderDetail>();
List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
-
+ //鐢熸垚浠诲姟銆佸簱瀛樼瓑淇℃伅
(List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_OutBSTOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = OutboundTaskDataHandle(keys);
if (result.Item2 != null && result.Item2.Count > 0)
{
@@ -460,7 +472,7 @@
{
tasks.AddRange(result.Item1);
}
-
+ //澶勭悊鍑哄簱鏁版嵁
return GenerateOutboundTaskDataUpdate(tasks, stockInfos, outBSTOrderDetails, outStockLockInfos, locationInfos);
}
catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs"
index a723b67..da8da61 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs"
@@ -33,13 +33,15 @@
private readonly IInvokeERPService _invokeERPService;
private readonly IPurchaseBSTOrderService _purchaseBSTOrderService;
private readonly IOutBSTOrderService _outBSTOrderService;
+ private readonly IReturnBSTOrderService _returnBSTOrderService;
- public ErpBSTController(IBasicService basicService, IInvokeERPService invokeERPService,IPurchaseBSTOrderService purchaseBSTOrderService,IOutBSTOrderService outBSTOrderService)
+ public ErpBSTController(IBasicService basicService, IInvokeERPService invokeERPService,IPurchaseBSTOrderService purchaseBSTOrderService,IOutBSTOrderService outBSTOrderService,IReturnBSTOrderService returnBSTOrderService)
{
_basicService = basicService;
_invokeERPService = invokeERPService;
_purchaseBSTOrderService = purchaseBSTOrderService;
_outBSTOrderService = outBSTOrderService;
+ _returnBSTOrderService = returnBSTOrderService;
}
/// <summary>
/// 娣诲姞鑰佸巶鐗╂枡
@@ -53,7 +55,7 @@
}
/// <summary>
- /// 娣诲姞鑰佸巶渚涘簲鍟嗕俊鎭�
+ /// 鎺ユ敹鑰佸巶渚涘簲鍟嗕俊鎭�
/// </summary>
/// <returns></returns>
[HttpPost, HttpGet, Route("ReceiveSupplier"), AllowAnonymous]
@@ -64,7 +66,7 @@
}
/// <summary>
- /// 娣诲姞鑰佸巶閲囪喘鍗曚俊鎭�
+ /// 鎺ユ敹鑰佸巶閲囪喘鍗曚俊鎭�
/// </summary>
/// <returns></returns>
[HttpPost, HttpGet, Route("ReceivePurchaseOrder"), AllowAnonymous]
@@ -74,7 +76,7 @@
}
/// <summary>
- /// 娣诲姞鍑哄簱鎺掔▼淇℃伅
+ /// 鎺ユ敹鍑哄簱鎺掔▼淇℃伅
/// </summary>
/// <returns></returns>
[HttpPost, HttpGet, Route("ReceiveOutOrder"), AllowAnonymous]
@@ -82,5 +84,32 @@
{
return _outBSTOrderService.AddOutBSTOrder(bSTOutOrderDTOs);
}
+ /// <summary>
+ /// 鎺ユ敹鍗氭�濋�氶鏂欎俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("ReceivePicking"), AllowAnonymous]
+ public WebResponseContent ReceivePicking()
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒板搴斿簱瀛樹俊鎭�") ;
+ }
+ /// <summary>
+ /// 鎺ユ敹鍗氭�濋�氶��鏂欎俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("ReceiveReturnOrder"), AllowAnonymous]
+ public WebResponseContent ReceiveReturnOrder([FromBody] List<BSTReturnOrderDTO> bSTReturnOrderDTOs)
+ {
+ return _returnBSTOrderService.ReceiveReturnOrder(bSTReturnOrderDTOs);
+ }
+ /// <summary>
+ /// 鎺ユ敹鍗氭�濋�氱洏鐐逛俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("ReceiveStockCheckOrder"), AllowAnonymous]
+ public WebResponseContent ReceiveStockCheckOrder([FromBody] List<BSTOutOrderDTO> bSTOutOrderDTOs)
+ {
+ return _outBSTOrderService.AddOutBSTOrder(bSTOutOrderDTOs);
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderController.cs"
new file mode 100644
index 0000000..e01a496
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Inbound
+{
+ /// <summary>
+ /// BST閫�鏂欏崟
+ /// </summary>
+ [Route("api/ReturnBSTOrder")]
+ [ApiController]
+ public class ReturnBSTOrderController : ApiBaseController<IReturnBSTOrderService, Dt_ReturnBSTOrder>
+ {
+ public ReturnBSTOrderController(IReturnBSTOrderService service) : base(service)
+ {
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderDetailController.cs"
new file mode 100644
index 0000000..43f76d8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/ReturnBSTOrderDetailController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Inbound
+{
+ /// <summary>
+ /// BST閫�鏂欏崟鏄庣粏
+ /// </summary>
+ [Route("api/ReturnBSTOrderDetail")]
+ [ApiController]
+ public class ReturnBSTOrderDetailController : ApiBaseController<IReturnBSTOrderDetailService, Dt_ReturnBSTOrderDetail>
+ {
+ public ReturnBSTOrderDetailController(IReturnBSTOrderDetailService service) : base(service)
+ {
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
index f6446dc..e3ea19a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
@@ -210,23 +210,37 @@
/// <summary>
/// 鎴愬搧鍑哄簱浠诲姟璇锋眰
+ /// <param name="targetId">
+ /// 1 鏈堝彴鍖�<br/>
+ /// 2 鍏ュ簱鍖�<br/>
+ /// 3 缁囧竷鍖�<br/>
+ /// 4 娣嬭啘鍖�<br/>
+ /// 5 鏆傚瓨鍖�<br/>
+ /// 6 鍗板埛鍖�<br/>
+ /// 7 鍐插垏鍖�<br/>
+ /// 8 鍘熸枡鍖�<br/>
+ /// 9 绾歌鍖�<br/>
+ /// 10 甯冭鍖�<br/>
+ /// 11 绾告澂鍖�<br/>
+ /// 12 闆惧寲鍖�<br/>
+ /// </param>
/// </summary>
/// <returns></returns>
[HttpPost, HttpGet, Route("RequestCPWMSTaskOut"), AllowAnonymous]
- public WebResponseContent RequestCPWMSTaskOut(int Count)
+ public WebResponseContent RequestCPWMSTaskOut(string materialCode,int Count, int targetId)
{
- return Service.RequestCPWMSTaskOut(Count);
+ return Service.RequestCPWMSTaskOut(materialCode, Count, targetId);
}
- /// <summary>
- /// 鏃犵汉甯冨嚭搴�
- /// </summary>
- /// <returns></returns>
- [HttpPost, HttpGet, Route("RequestWFBWMSTaskOut"), AllowAnonymous]
- public WebResponseContent RequestWFBWMSTaskOut(int Count)
- {
- return Service.RequestWFBWMSTaskOut(Count);
- }
+ ///// <summary>
+ ///// 鏃犵汉甯冨嚭搴�
+ ///// </summary>
+ ///// <returns></returns>
+ //[HttpPost, HttpGet, Route("RequestWFBWMSTaskOut"), AllowAnonymous]
+ //public WebResponseContent RequestWFBWMSTaskOut(int Count)
+ //{
+ // return Service.RequestWFBWMSTaskOut(Count);
+ //}
/// <summary>
/// 鍘熸枡鍑哄簱浠诲姟
@@ -292,8 +306,6 @@
/// <summary>
/// 鍒涘缓鍘熺焊鐢熶骇鎺掔▼鍑哄簱浠诲姟
/// </summary>
- /// <param name="saveModel"></param>
- /// <returns></returns>
[HttpPost, HttpGet, Route("CreateBSTOutboundTasks"), AllowAnonymous]
public WebResponseContent CreateBSTOutboundTasks([FromBody] int[] keys)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs"
index 2f6f175..1d34367 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs"
@@ -40,6 +40,9 @@
//BST鍑哄簱鎺掔▼瀹炰綋杞崲
CreateMap<BSTOutOrderDTO, Dt_OutBSTOrder>().ForMember(x => x.OutBSTOrderStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt())).ForMember(x => x.ProductionDate, b => b.MapFrom(b => DateTimeOffset.FromUnixTimeMilliseconds(b.ProductionDate).DateTime)).ForMember(x => x.WarehouseId, b => b.MapFrom(b => WarehouseEnum.LLDYL.ObjToInt()));
CreateMap<BstBoardMpsDetailItem, Dt_OutBSTOrderDetail>().ForMember(x => x.OutBSTOrderDetailStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt()));
+ //BST閫�鏂欏崟瀹炰綋杞崲
+ CreateMap<BSTReturnOrderDTO, Dt_ReturnBSTOrder>().ForMember(x => x.ReturnOrderStatus, b => b.MapFrom(b => InOrderStatusEnum.鏈紑濮�.ObjToInt())).ForMember(x => x.WreturnDate, b => b.MapFrom(b => DateTimeOffset.FromUnixTimeMilliseconds(b.WreturnDate).DateTime)).ForMember(x => x.WarehouseId, b => b.MapFrom(b => WarehouseEnum.LLDYL.ObjToInt()));
+ CreateMap<BSTReturnOrderDTOItem, Dt_ReturnBSTOrderDetail>().ForMember(x => x.ReturnBSTOrderDetailStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt())).ForMember(x => x.MaterialWide, b => b.MapFrom(b => b.W)).ForMember(x => x.MaterialThick, b => b.MapFrom(b => b.Thick));
}
}
}
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.xlsx"
index ddfeacf..24d8651 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
index 4c70f37..e2cb09c 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
Binary files differ
--
Gitblit v1.9.3