From bc33400f93631bf9c8dec0ff09cbe9a504bf9734 Mon Sep 17 00:00:00 2001
From: duyongjia <adu_555@163.com>
Date: 星期四, 27 二月 2025 17:20:38 +0800
Subject: [PATCH] 1
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 154 insertions(+), 19 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 8cb3c4e..7c9584a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -42,6 +42,7 @@
using WIDESEA_DTO.Stock;
using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
+using WIDESEA_IInboundRepository;
using WIDESEA_IInboundService;
using WIDESEA_IOutboundRepository;
using WIDESEA_IOutboundService;
@@ -53,6 +54,7 @@
using WIDESEA_ITaskInfoService;
using WIDESEA_Model;
using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Inbound;
using WIDESEA_TaskInfoRepository;
using OrderByType = SqlSugar.OrderByType;
@@ -79,6 +81,8 @@
private readonly IOutboundOrderDetail_HtyRepository _outboundOrderDetail_HtyRepository;
private readonly IOutBoundOrderBYDRepository _outBoundOrderBYDRepository;
private readonly IOutboundOrderDetailBYDRepository _outboundOrderDetailByDRepository;
+ private readonly IMainReturnInventoryRepository _mainReturnInventoryRepository;
+ private readonly IReturnInventoryDetailRepository _returnInventoryDetailRepository;
public ITaskRepository Repository => BaseDal;
private Dictionary<string, OrderByType> _OutLockOrderBy = new Dictionary<string, OrderByType>()
@@ -88,7 +92,7 @@
};
- public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository) : base(BaseDal)
+ public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository, IReturnInventoryDetailRepository returnInventoryDetailRepository,IMainReturnInventoryRepository mainReturnInventoryRepository) : base(BaseDal)
{
_mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
@@ -108,6 +112,9 @@
_outboundOrderRepository = outboundOrderRepository;
_outboundOrder_HtyRepository = outboundOrder_HtyRepository;
_outboundOrderDetail_HtyRepository = outboundOrderDetail_HtyRepository;
+ _returnInventoryDetailRepository = returnInventoryDetailRepository;
+ _mainReturnInventoryRepository = mainReturnInventoryRepository;
+
}
@@ -218,21 +225,44 @@
{
return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
}
- if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+ if (task.TaskStatus == 100 || task.TaskStatus == 200)//濡傛灉鏄柊寤轰换鍔$姸鎬佹敼涓烘墽琛屼腑
{
- task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
- }
- else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
- {
- task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
- }
- else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
- {
- task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+ if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+ {
+ task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
+ }
+ else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletReturnInbound.ObjToInt())
+ {
+ task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
+ }
+ //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
+ //{
+ // task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+ //}
+ else
+ {
+ throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+ }
}
else
{
- throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+ if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
+ {
+ task.TaskStatus = OutTaskStatusEnum.SC_OutFinish.ObjToInt();
+ }
+ else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletReturnInbound.ObjToInt())
+ {
+ task.TaskStatus = InTaskStatusEnum.SC_InFinish.ObjToInt();
+ }
+ //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
+ //{
+ // task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+ //}
+ else
+ {
+ throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+ }
+
}
_unitOfWorkManage.BeginTran();
task.Dispatchertime = DateTime.Now;
@@ -342,7 +372,12 @@
}
if (itemData.Count > 0)
{
- _sys_JobService.CallPutAway(request);
+ WebResponseContent content= _sys_JobService.CallPutAway(request);
+ if (content != null&&content.Message== "涓婃灦鍥炰紶鎴愬姛") //濡傛灉涓婃灦鎴愬姛锛屼慨鏀瑰簱瀛樼姸鎬佷负宸蹭笂鏋�
+ {
+ stockInfo.StockStatus = StockStatusEmun.宸蹭笂鏋�.ObjToInt();
+ _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+ }
}
}
catch(Exception ex)
@@ -353,6 +388,9 @@
return WebResponseContent.Instance.OK();
}
+
+
+
/// <summary>
/// 绌烘墭鐩樺叆搴撳畬鎴愬鐞�
@@ -397,6 +435,106 @@
_unitOfWorkManage.RollbackTran();
return WebResponseContent.Instance.Error(ex.Message);
}
+ }
+
+
+
+ /// <summary>
+ /// 浣欐枡閫�搴撳畬鎴愬鐞�
+ /// </summary>
+ /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param>
+ /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+ public WebResponseContent PalletReturnInboundTaskCompleted(Dt_Task task)
+ {
+ try
+ {
+
+ _unitOfWorkManage.BeginTran();
+ decimal beforeQuantity = 0;
+ Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+ Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+ CheckCompleted(stockInfo, locationInfo);
+
+ stockInfo.LocationCode = locationInfo.LocationCode;
+ stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
+ _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+
+ beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
+
+ int beforeStatus = locationInfo.LocationStatus;
+ locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+ _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+
+ _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+ task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
+
+ BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+
+ _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
+ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) + beforeQuantity, StockChangeType.Inbound, task.TaskNum);
+ _unitOfWorkManage.CommitTran();
+
+
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+
+ //浣欐枡鍏ュ簱瀹屾垚鍚庯紝闇�瑕佸皢缁勭洏淇℃伅璋冪敤涓婃父WMS浣欐枡閫�鍥炵粨鏋滄帴鍙�
+ #region 鍥炰紶閫昏緫澶勭悊
+ try
+ {
+ PutAwayReturnRequest request = new PutAwayReturnRequest();
+ List<PutAwayReturn> DATA = new List<PutAwayReturn>();
+ request.DATA = DATA;
+ request.WERKS = AppSettings.Configuration["WERKS"];
+ request.WH_NUMBER = AppSettings.Configuration["SYSNO"];
+ request.IZLID = task.OrderNo;//杩欎釜鍊间細鍦ㄦ帴鏀朵笂娓稿洖搴撶粍鐩樹俊鎭椂锛屽瓨鍦ㄥ簱瀛樿〃涓紝鍐嶅瓨鍒颁换鍔¤〃涓�
+ Dt_MainReturnInventory mainReturnInventory = _mainReturnInventoryRepository.QueryFirst(x => x.IZLID == task.OrderNo);
+ if (mainReturnInventory != null)
+ {
+ request.RETURN_NO = mainReturnInventory.RETURN_NO;
+ request.RETURN_ITEM_NO = mainReturnInventory.RETURN_ITEM_NO;
+ request.BUSINESS_NAME = mainReturnInventory.BUSINESS_NAME;
+ request.BUSINESS_CODE = mainReturnInventory.BUSINESS_CODE;
+ request.TPNUM = mainReturnInventory.TPNUM;
+ request.LGORT = mainReturnInventory.LGORT;
+ request.MO_NO = mainReturnInventory.MO_NO;
+
+ Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
+ foreach (Dt_StockInfoDetail detail in stockInfo.Details)
+ {
+ Dt_ReturnInventoryDetail dt_ReturnInventoryDetail = _returnInventoryDetailRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber);
+ if (dt_ReturnInventoryDetail != null)
+ {
+ PutAwayReturn putAwayReturn = new PutAwayReturn();
+ putAwayReturn.LABEL_NO = dt_ReturnInventoryDetail.LABEL_NO;
+ putAwayReturn.SOBKZ = dt_ReturnInventoryDetail.SOBKZ;
+ putAwayReturn.UNIT = dt_ReturnInventoryDetail.UNIT;
+ putAwayReturn.LGORT = dt_ReturnInventoryDetail.LGORT;
+ putAwayReturn.TOTAL_RETURN_QTY = dt_ReturnInventoryDetail.QTY;
+ putAwayReturn.F_LGORT = dt_ReturnInventoryDetail.F_LGORT;
+ putAwayReturn.MO_NO = mainReturnInventory.MO_NO;
+ putAwayReturn.LIFNR = dt_ReturnInventoryDetail.LIFNR;
+ putAwayReturn.MATNR = dt_ReturnInventoryDetail.MATNR;
+ putAwayReturn.BATCH = "";
+ DATA.Add(putAwayReturn);
+ }
+ }
+ if(DATA.Count>0)
+ {
+ _sys_JobService.CallPutAwayReturn(request);//浣欐枡閫�搴撳洖浼�
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ #endregion
+ return WebResponseContent.Instance.OK();
}
/// <summary>
@@ -483,13 +621,10 @@
PickAndPostRequest request = new PickAndPostRequest();
List<PickAndPost> itemData = new List<PickAndPost>();
request.ITEMDATA = itemData;
- request.WH_NUMBER = AppSettings.Configuration["WERKS"];
+ request.WH_NUMBER = AppSettings.Configuration["SYSNO"];
request.SYSNOD = AppSettings.Configuration["SYSNO"];
- request.WERKS = AppSettings.Configuration["WERKS"];
- //鏆傛椂鏍规嵁鎵樼洏鍙锋煡鍑哄簱閿佸畾琛ㄤ腑Dt_OutStockLockInfo涓殑鐘舵�佷负1鐨勬渶鏂颁竴鏉�,鍥犱负鍏堥攣瀹氾紝鎵嶆湁浠诲姟锛屾墍浠ユ病鏈夊叧鑱斾换鍔″彿
- //Dt_OutStockLockInfo outStockLockInfo= _outStockLockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode && x.Status == 1, _OutLockOrderBy);
-
-
+ request.WERKS = AppSettings.Configuration["CallMaterialID"];
+
Dt_OutboundOrderDetail_Hty detail = _outboundOrderDetail_HtyRepository.QueryFirst(x => x.SourceId.ToString() == task.Remark);// task.Remark瀛橀渶姹傛槑缁咺D
if (detail != null)
{
--
Gitblit v1.9.3