From d41acebbd89f171b0eeb205fca4f68043ca85f95 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期三, 03 十二月 2025 19:47:24 +0800
Subject: [PATCH] 选配与暂存
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 867 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 759 insertions(+), 108 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index ab8eec4..18299f0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -2,13 +2,22 @@
using MailKit.Search;
using Mapster;
using Masuit.Tools;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Database;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using SqlSugar;
using System.Diagnostics;
+using System.Reflection.Emit;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
+using WIDESEA_Common;
using WIDESEA_Core.Const;
using WIDESEA_DTO.WMS;
using WIDESEA_IServices;
+using WIDESEA_IStorageBasicRepository;
using WIDESEA_IStoragIntegrationServices;
+using WIDESEA_Model.Models;
+using WIDESEA_StorageBasicRepository;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
@@ -32,6 +41,15 @@
private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository;
private readonly IDt_InWheels_mes_htyRepository _InWheels_Mes_HtyRepository;
private readonly IDt_CacheInfoRepository _CacheInfoRepository;
+ private readonly IDt_OutWheels_htyRepository _OutWheels_HtyRepository;
+ private readonly IDt_OutZdp_htyRepository _Dt_OutZdp_htyRepository;
+ private readonly IDt_InZdp_mesRepository _InZdp_MesRepository;
+ private readonly IDt_InZdp_mes_htyRepository _InZdp_Mes_HtyRepository;
+ private readonly IDt_ZdpStockRepository _ZdpStockRepository;
+ private readonly IDt_ZdpStock_htyRepository _ZdpStock_HtyRepository;
+ private readonly IDt_PreOutboundRepository _PreOutboundRepository;
+ private readonly ILocationInfoRepository _locationInfoRepository;
+
public Dt_TaskService(IDt_TaskRepository BaseDal,
IUnitOfWorkManage unitOfWorkManage,
@@ -49,7 +67,15 @@
IDt_WheelsStockRepository wheelsStockRepository,
IDt_WheelsStock_htyRepository wheelsStock_HtyRepository,
IDt_InWheels_mes_htyRepository inWheels_Mes_HtyRepository,
- IDt_CacheInfoRepository cacheInfoRepository) : base(BaseDal)
+ IDt_OutWheels_htyRepository dt_OutWheels_HtyRepository,
+ IDt_CacheInfoRepository cacheInfoRepository,
+ IDt_InZdp_mesRepository inZdp_MesRepository,
+ IDt_InZdp_mes_htyRepository inZdp_Mes_HtyRepository,
+ IDt_ZdpStockRepository zdpStockRepository,
+ IDt_ZdpStock_htyRepository dt_ZdpStock_HtyRepository,
+ IDt_OutZdp_htyRepository dt_OutZdp_HtyRepository,
+ IDt_PreOutboundRepository dt_PreOutboundRepository,
+ ILocationInfoRepository locationInfoRepository) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
@@ -64,7 +90,15 @@
_WheelsStockRepository = wheelsStockRepository;
_WheelsStock_HtyRepository = wheelsStock_HtyRepository;
_InWheels_Mes_HtyRepository = inWheels_Mes_HtyRepository;
+ _OutWheels_HtyRepository = dt_OutWheels_HtyRepository;
_CacheInfoRepository = cacheInfoRepository;
+ _InZdp_MesRepository = inZdp_MesRepository;
+ _InZdp_Mes_HtyRepository = inZdp_Mes_HtyRepository;
+ _ZdpStockRepository = zdpStockRepository;
+ _ZdpStock_HtyRepository = dt_ZdpStock_HtyRepository;
+ _Dt_OutZdp_htyRepository = dt_OutZdp_HtyRepository;
+ _PreOutboundRepository = dt_PreOutboundRepository;
+ _locationInfoRepository = locationInfoRepository;
}
#region 澶栭儴鎺ュ彛鏂规硶
@@ -103,6 +137,39 @@
#endregion 绉诲簱浠诲姟瀹屾垚
+ #region 鍒跺姩鐩樼Щ搴撲换鍔″畬鎴�
+
+ /// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚
+ /// </summary>
+ /// <param name="saveModel">浠诲姟鏁版嵁鍚堥泦</param>
+ /// <returns>杩斿洖缁撴灉闆�</returns>
+ public async Task<WebResponseContent> CompleteZdpTaskAsync(Dt_Task task, Dt_ZdpStock stock)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ // 鏇存柊璐т綅鍜屽簱瀛樹俊鎭�
+ (Dt_ZdpStock updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateZdpStockLocation(stock,task);
+ var taskHty = CreateHistoricalTask(task);
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绉诲簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庡簱瀛樻暟鎹細{JsonConvert.SerializeObject(updateStock)}锛屽師鍏堣揣浣嶆暟鎹細{locationInForm}");
+
+ // 鎵ц鏁版嵁搴撲簨鍔�
+ bool isResult = await ZdpExecuteTransaction(updateStock, taskHty, locationInForm, locationInfoTo, task.TaskId);
+ if (isResult)
+ content.OK("绉诲簱浠诲姟瀹屾垚鎴愬姛");
+ else
+ content.Error("绉诲簱浠诲姟瀹屾垚澶辫触");
+ }
+ catch (Exception err)
+ {
+ Console.WriteLine(err.Message.ToString());
+ }
+ return content;
+ }
+
+ #endregion 绉诲簱浠诲姟瀹屾垚
+
#region 鍏ュ簱浠诲姟瀹屾垚
/// <summary>
@@ -118,7 +185,17 @@
{
// 鑾峰彇MES淇℃伅鍜岀洰鏍囦綅缃俊鎭�
- var mes_Wheels = await _InWheels_MesRepository.QueryFirstNavAsync(x => x.Wheels_Num == task.PalletCode);
+ Dt_InWheels_mes mes_Wheels = null;
+ Dt_InZdp_mes mes_Zdp = null;
+ Dt_WheelsStock wheelsStock = null;
+ Dt_ZdpStock zdpStock = null;
+
+ if (task.TaskType== (int)TaskInboundTypeEnum.InBrake)
+ mes_Zdp = await _InZdp_MesRepository.QueryFirstNavAsync(x => x.Zdp_code == task.PalletCode);
+ else
+ mes_Wheels = await _InWheels_MesRepository.QueryFirstNavAsync(x => x.Wheels_Num == task.PalletCode);
+
+
var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway);
int lastStatus = locationInf.LocationStatus;
@@ -128,39 +205,85 @@
// 鍒涘缓鍘嗗彶浠诲姟瀹炰緥妯″瀷
var taskHty = CreateHistoricalTask(task);
- // 鏍规嵁鍒涘缓搴撳瓨瀹炰緥妯″瀷
- Dt_WheelsStock wheelsStock = new Dt_WheelsStock
+ if(task.TaskType == (int)TaskInboundTypeEnum.InBrake)
{
- Wheels_ldtm = mes_Wheels.Wheels_ldtm,
- CreateDate = DateTime.Now,
- Creater = task.Creater,
- Wheels_Type = mes_Wheels.Wheels_Type,
- Wheels_gkcc = mes_Wheels.Wheels_gkcc,
- WheelsProps = mes_Wheels.WheelsProps,
- Wheels_CarNo = mes_Wheels.Wheels_CarNo,
- Wheels_CarType = mes_Wheels.Wheels_CarType,
- Wheels_ldxh = mes_Wheels.Wheels_ldxh,
- Wheels_code = mes_Wheels.Wheels_code,
- Wheels_InDate = mes_Wheels.Wheels_InDate,
- Wheels_level = mes_Wheels.Wheels_level,
- Wheels_Location = task.TargetAddress,
- Wheels_NewOrOld = mes_Wheels.Wheels_NewOrOld,
- Wheels_Num = mes_Wheels.Wheels_Num,
- Wheels_psj = mes_Wheels.Wheels_psj,
- Wheels_CurrentStatue = 1,
- Wheels_mttype = mes_Wheels.Wheels_mttype,
- Wheels_ljz = mes_Wheels.Wheels_ljz,
- Wheels_ldh = mes_Wheels.Wheels_ldh,
- //Wheels_SequenceNum = mes_Wheels.Wheels_SequenceNum,
- Wheels_ygljz = mes_Wheels.Wheels_ygljz,
- Wheels_gkzja = mes_Wheels.Wheels_gkzja,
- Wheels_gkzjb = mes_Wheels.Wheels_gkzjb,
- Wheels_gkzjc = mes_Wheels.Wheels_gkzjc,
+ // 鏍规嵁鍒涘缓搴撳瓨瀹炰緥妯″瀷
+ zdpStock = new Dt_ZdpStock
+ {
+ Zdp_code= mes_Zdp.Zdp_code,
+ Zdp_ZPH = mes_Zdp.Zdp_ZPH,
+ Zdp_CurrentStatue = 1,
+ Zdp_Location = task.TargetAddress,
+ Zdp_chexing= mes_Zdp.Zdp_chexing,
+ Zdp_neworold = mes_Zdp.Zdp_neworold,
+ Zdp_POS = mes_Zdp.Zdp_POS,
+ Zdp_LSXH = mes_Zdp.Zdp_LSXH,
+ Zdp_MAT = mes_Zdp.Zdp_MAT,
+ Zdp_SITE = mes_Zdp.Zdp_SITE,
+ Zdp_GKA1 = mes_Zdp.Zdp_GKA1,
+ Zdp_GKA2 = mes_Zdp.Zdp_GKA2,
+ Zdp_GKA3 = mes_Zdp.Zdp_GKA3,
+ Zdp_GKA = mes_Zdp.Zdp_GKA,
+ Zdp_GKB1 = mes_Zdp.Zdp_GKB1,
+ Zdp_GKB2 = mes_Zdp.Zdp_GKB2,
+ Zdp_GKB3 = mes_Zdp.Zdp_GKB3,
+ Zdp_GKB = mes_Zdp.Zdp_GKB,
+ Zdp_GKC1 = mes_Zdp.Zdp_GKC1,
+ Zdp_GKC2 = mes_Zdp.Zdp_GKC2,
+ Zdp_GKC3 = mes_Zdp.Zdp_GKC3,
+ Zdp_GKC = mes_Zdp.Zdp_GKC,
+ Zdp_GKJZ = mes_Zdp.Zdp_GKJZ,
+ Zdp_LSCSYMH = mes_Zdp.Zdp_LSCSYMH,
+ Zdp_LMCSYMH = mes_Zdp.Zdp_LMCSYMH,
+ Zdp_rksj = mes_Zdp.Zdp_rksj,
+ CreateDate = DateTime.Now,
+ Creater = task.Creater,
+ };
+ }
+ else
+ {
+ // 鏍规嵁鍒涘缓搴撳瓨瀹炰緥妯″瀷
+ wheelsStock = new Dt_WheelsStock
+ {
+ Wheels_ldtm = mes_Wheels.Wheels_ldtm,
+ CreateDate = DateTime.Now,
+ Creater = task.Creater,
+ Wheels_Type = mes_Wheels.Wheels_Type,
+ Wheels_gkcc = mes_Wheels.Wheels_gkcc,
+ WheelsProps = mes_Wheels.WheelsProps,
+ Wheels_CarNo = mes_Wheels.Wheels_CarNo,
+ Wheels_CarType = mes_Wheels.Wheels_CarType,
+ Wheels_ldxh = mes_Wheels.Wheels_ldxh,
+ Wheels_code = mes_Wheels.Wheels_code,
+ Wheels_InDate = mes_Wheels.Wheels_InDate,
+ Wheels_level = mes_Wheels.Wheels_level,
+ Wheels_Location = task.TargetAddress,
+ Wheels_NewOrOld = mes_Wheels.Wheels_NewOrOld,
+ Wheels_Num = mes_Wheels.Wheels_Num,
+ Wheels_psj = mes_Wheels.Wheels_psj,
+ Wheels_CurrentStatue = 1,
+ Wheels_mttype = mes_Wheels.Wheels_mttype,
+ Wheels_ljz = mes_Wheels.Wheels_ljz,
+ Wheels_ldh = mes_Wheels.Wheels_ldh,
+ //Wheels_SequenceNum = mes_Wheels.Wheels_SequenceNum,
+ Wheels_ygljz = mes_Wheels.Wheels_ygljz,
+ Wheels_gkzja = mes_Wheels.Wheels_gkzja,
+ Wheels_gkzjb = mes_Wheels.Wheels_gkzjb,
+ Wheels_gkzjc = mes_Wheels.Wheels_gkzjc,
+ };
+ }
- };
-
- // 鎵ц鏁版嵁搴撲簨鍔�
- bool isResult = await ExecuteTransaction(wheelsStock, taskHty, locationInf, task.TaskId, mes_Wheels);
+ // 鎵ц鏁版嵁搴撲簨鍔DPExecuteTransaction
+ bool isResult = false;
+ if (task.TaskType == (int)TaskInboundTypeEnum.InBrake)
+ {
+ isResult = await ZDPExecuteTransaction(zdpStock, taskHty, locationInf, task.TaskId, mes_Zdp);
+ }
+ else
+ {
+ isResult=await ExecuteTransaction(wheelsStock, taskHty, locationInf, task.TaskId, mes_Wheels);
+ }
+
if (isResult)
{
_locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
@@ -188,6 +311,8 @@
WebResponseContent content = new WebResponseContent();
try
{
+ if(stock ==null) return content.Error("浠诲姟瀹屾垚澶辫触锛屾湭鎵惧埌褰撳墠搴撳瓨淇℃伅锛屽垹闄ゅけ璐�");
+
// 鏇存柊搴撲綅鐘舵�佷笌浠诲姟鐘舵��
(var loc, var tas) = UpdateStockAndTaskStatus(stock, task);
var taskHty = task.Adapt<Dt_Task_Hty>();
@@ -198,6 +323,37 @@
stockInfo_Hty.FinishWheelDate = DateTime.Now;
stockInfo_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
+ Dt_OutWheels_hty Outwheels_hty = new Dt_OutWheels_hty
+ {
+ Wheels_code = stock.Wheels_code,
+ Wheels_Type = stock.Wheels_Type == "1"?"杞�":"鐩�",
+ Wheels_Num = stock.Wheels_Num,
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName == null ? "admin" : App.User.UserName,
+ WheelsProps = stock.WheelsProps,
+ Wheels_CarNo = stock.Wheels_CarNo,
+ Wheels_CarType = stock.Wheels_CarType,
+ Wheels_ldxh = stock.Wheels_ldxh,
+ Wheels_ldtm = stock.Wheels_ldtm,
+ Wheels_InDate = stock.Wheels_InDate,
+ Wheels_level = stock.Wheels_level,
+ Wheels_NewOrOld = stock.Wheels_NewOrOld,
+ Wheels_psj = stock.Wheels_psj,
+ Wheels_gkcc = stock.Wheels_gkcc,
+ Wheels_gkzja = stock.Wheels_gkzja,
+ Wheels_gkzjb = stock.Wheels_gkzjb,
+ Wheels_gkzjc = stock.Wheels_gkzjc,
+ Wheels_ldh = stock.Wheels_ldh,
+ Wheels_ljz = stock.Wheels_ljz,
+ Wheels_mttype = stock.Wheels_mttype,
+ //Wheels_SequenceNum = "",
+ Wheels_ygljz = stock.Wheels_ygljz,
+ Wheels_DateDet = stock.Wheels_DateDet,
+ Wheels_Statue = stock.Wheels_Statue,
+ };
+
+
+
// 浜嬪姟澶勭悊
await _unitOfWorkManage.UseTranAsync(async () =>
{
@@ -206,6 +362,93 @@
//var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId); //鍒犻櫎浠诲姟
var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; //鍔犲叆鍘嗗彶浠诲姟
var isStockHtyAdd = await _WheelsStock_HtyRepository.AddDataAsync(stockInfo_Hty); //鍔犲叆鍘嗗彶搴撳瓨
+
+ var isoutWheelsHtyAdd = await _OutWheels_HtyRepository.AddDataAsync(Outwheels_hty); //娣诲姞杞﹁疆鍑哄簱淇℃伅
+ });
+
+ return content.OK("浠诲姟瀹屾垚鎴愬姛", task.Remark);
+ }
+ catch (Exception err)
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").Error(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{err.Message}");
+ return content.Error(err.Message);
+ }
+ }
+
+ private (DtLocationInfo, Dt_Task) UpdateStockAndTaskStatus( Dt_Task task)
+ {
+ var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
+ int lastStatus = location.LocationStatus;
+ location.LocationStatus = (int)LocationEnum.Free;
+ task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+ //task.CurrentAddress = task.NextAddress;
+ //task.NextAddress = task.TargetAddress;
+
+ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
+
+ LogFactory.GetLog("浠诲姟瀹屾垚").Info(true, "鏇存柊搴撲綅鐘舵�佷笌浠诲姟鐘舵��");
+ return (location, task);
+ }
+ #endregion
+
+ #region 鍒跺姩鐩樺嚭搴撲换鍔″畬鎴�
+ public async Task<WebResponseContent> CompleteOutZdpTaskAsync(Dt_Task task, Dt_ZdpStock stock)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ if (stock == null) return content.Error("浠诲姟瀹屾垚澶辫触锛屾湭鎵惧埌褰撳墠搴撳瓨淇℃伅锛屽垹闄ゅけ璐�");
+
+ // 鏇存柊搴撲綅鐘舵�佷笌浠诲姟鐘舵��
+ (var loc, var tas) = UpdateStockAndTaskStatus(task);
+ var taskHty = task.Adapt<Dt_Task_Hty>();
+ taskHty.FinishTime = DateTime.Now;
+ taskHty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
+
+ Dt_ZdpStock_hty stockInfo_Hty = stock.Adapt<Dt_ZdpStock_hty>();
+ stockInfo_Hty.FinishDate = DateTime.Now;
+ stockInfo_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
+
+ Dt_OutZdp_hty Outwheels_hty = new Dt_OutZdp_hty
+ {
+ Zdp_code = stock.Zdp_code,
+ Zdp_ZPH = stock.Zdp_ZPH,
+ Zdp_Location = stock.Zdp_Location,
+ Zdp_chexing = stock.Zdp_chexing,
+ Zdp_neworold = stock.Zdp_neworold,
+ Zdp_POS = stock.Zdp_POS,
+ Zdp_LSXH = stock.Zdp_LSXH,
+ Zdp_MAT = stock.Zdp_MAT,
+ Zdp_SITE = stock.Zdp_SITE,
+ Zdp_GKA1 = stock.Zdp_GKA1,
+ Zdp_GKA2 = stock.Zdp_GKA2,
+ Zdp_GKA3 = stock.Zdp_GKA3,
+ Zdp_GKA = stock.Zdp_GKA,
+ Zdp_GKB1 = stock.Zdp_GKB1,
+ Zdp_GKB2 = stock.Zdp_GKB2,
+ Zdp_GKB3 = stock.Zdp_GKB3,
+ Zdp_GKB = stock.Zdp_GKB,
+ Zdp_GKC1 = stock.Zdp_GKC1,
+ Zdp_GKC2 = stock.Zdp_GKC2,
+ Zdp_GKC3 = stock.Zdp_GKC3,
+ Zdp_GKC = stock.Zdp_GKC,
+ Zdp_GKJZ = stock.Zdp_GKJZ,
+ Zdp_LSCSYMH = stock.Zdp_LSCSYMH,
+ Zdp_rksj = stock.Zdp_rksj,
+ Zdp_Statue= stock.Zdp_Statue,
+ Zdp_DateDet = stock.Zdp_DateDet,
+ };
+
+ // 浜嬪姟澶勭悊
+ await _unitOfWorkManage.UseTranAsync(async () =>
+ {
+ var isStockUpdated = await _ZdpStockRepository.DeleteDataByIdAsync(stock.Zdp_ID); //鍒犻櫎搴撳瓨
+ var isLocationUpdate = await _locationRepository.UpdateDataAsync(loc); //鏇存柊搴撲綅
+ //var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId); //鍒犻櫎浠诲姟
+ var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; //鍔犲叆鍘嗗彶浠诲姟
+ var isStockHtyAdd = await _ZdpStock_HtyRepository.AddDataAsync(stockInfo_Hty); //鍔犲叆鍘嗗彶搴撳瓨
+
+ var isoutZDPHtyAdd = await _Dt_OutZdp_htyRepository.AddDataAsync(Outwheels_hty); //娣诲姞杞﹁疆鍑哄簱淇℃伅
});
return content.OK("浠诲姟瀹屾垚鎴愬姛", task.Remark);
@@ -258,7 +501,9 @@
// 楠岃瘉搴撳瓨鏄惁瀛樺湪
- var stock = await _WheelsStockRepository.QueryFirstNavAsync(x => x.Wheels_Num == task.PalletCode);
+ var stock = await _WheelsStockRepository.QueryFirstNavAsync(x => x.Wheels_Num.Contains(task.PalletCode) && x.Wheels_Location==task.SourceAddress);
+ var ZdpStock = await _ZdpStockRepository.QueryFirstNavAsync(x => x.Zdp_code == task.PalletCode && x.Zdp_Location == task.SourceAddress);
+
// 鏍规嵁浠诲姟绫诲瀷璋冪敤鐩稿簲鐨勫畬鎴愪换鍔℃柟娉�
switch (task.TaskType)
@@ -270,13 +515,19 @@
return await CompleteInboundTaskAsync(task);
case (int)TaskOutboundTypeEnum.Outbound:
- case (int)TaskOutboundTypeEnum.OutBrake:
case (int)TaskOutboundTypeEnum.OutWheels:
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍑哄簱浠诲姟", "");
return await CompleteStackTaskAsync(task, stock);
+ case (int)TaskOutboundTypeEnum.OutBrake:
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍒跺姩鐩樺嚭搴撲换鍔�", "");
+ return await CompleteOutZdpTaskAsync(task, ZdpStock);
+
case (int)TaskRelocationTypeEnum.Relocation:
- return await CompleteTransferTaskAsync(task, stock);
+ if (stock != null)
+ return await CompleteTransferTaskAsync(task, stock);
+ else
+ return await CompleteZdpTaskAsync(task, ZdpStock);
default:
return content.Error("浠诲姟绫诲瀷涓嶅瓨鍦�");
@@ -402,95 +653,200 @@
WebResponseContent content = new WebResponseContent();
try
{
+ List<Dt_WheelsStock> WheelList = new List<Dt_WheelsStock>();
+ List<Dt_ZdpStock> ZdpStockList = new List<Dt_ZdpStock>();
+ List<Dt_Task> TaskList = new List<Dt_Task>();
+ List<DtLocationInfo> Locationslist = new List<DtLocationInfo>();
+ List<WMSTaskDTO> WMSTaskDTOdata = new List<WMSTaskDTO>();
+
+
string palletCode = saveModel.MainData["palletCode"].ToString();
string station = saveModel.MainData["station"].ToString();
+ string outtype = saveModel.MainData["outtype"].ToString(); //1涓烘寚瀹氳溅杞嚭搴擄紝2涓烘寚瀹氬埗鍔ㄧ洏鍑哄簱
- // 鏌ヨ搴撳瓨淇℃伅
- var stockInfo = _WheelsStockRepository.QueryFirst(x => x.Wheels_code == palletCode);
- if (stockInfo == null)
+ List<string> palletCodes = JsonConvert.DeserializeObject<List<string>>(palletCode); //鎶婃墭鐩樻潯鐮佹樉绀�
+
+ List<DtLocationInfo> locationinfoData = _locationRepository.QueryData(x => x.LocationStatus == 2); //鏌ユ壘鍏ㄩ儴搴撲綅
+ if (outtype == "2")
{
- return content.Error("鏈煡璇㈠埌瀵瑰簲鐨勫簱瀛樹俊鎭�");
+ List<Dt_ZdpStock> stocktData = _ZdpStockRepository.QueryData(x => x.Zdp_CurrentStatue == 1); //鏌ユ壘鍏ㄩ儴鍦ㄥ簱鐨勫簱瀛�
+ foreach (var item in palletCodes)
+ {
+ Dt_ZdpStock zdpInfo = _ZdpStockRepository.QueryFirst(x => x.Zdp_code == item);
+ if (zdpInfo == null) return content.Error("鏈煡璇㈠埌瀵瑰簲鐨勫簱瀛樹俊鎭�");
+ zdpInfo.Zdp_CurrentStatue = 4;
+ string Location = zdpInfo.Zdp_Location;
+
+ var locationst = locationinfoData.FirstOrDefault(x => x.LocationCode == Location);
+ if (locationst.LocationStatus != (int)LocationEnum.InStock && locationst.EnalbeStatus != 1) return content.Error($"搴撲綅寮傚父,璇锋鏌ヤ竴涓嬪簱浣�,搴撳瓨鏉$爜锛歿item}锛屽簱浣嶅彿锛歿Location}");
+
+ locationst.LocationStatus = (int)LocationEnum.InStockDisable;
+
+ var task = BaseDal.QueryFirst(x => x.PalletCode == item);
+ if (task != null)
+ {
+ return content.Error($"銆恵item}銆戝凡瀛樺湪浠诲姟");
+ }
+
+
+ CheckInfo checkInfo = new CheckInfo()
+ {
+ CarType = zdpInfo.Zdp_chexing ,
+ MTType ="0" , //鍒跺姩鐩樻病鏈夊姩鎷栧睘鎬�
+
+ //CheckType = stockInfo.Wheels_Type == "1" ? "1" : "2",
+ CheckType = outtype,
+
+ HubLevel = "0" ,
+ CLTM =zdpInfo.Zdp_code,
+ IsCheck = true,
+ Standards = zdpInfo.Zdp_neworold
+ };
+
+ task = new Dt_Task
+ {
+ CarType = zdpInfo.Zdp_chexing,
+ wheels_gkcc = zdpInfo.Zdp_GKJZ,
+ WheelsNewOrOld = zdpInfo.Zdp_neworold,
+ WheelsLX = "",
+ Grade = 1,
+ Roadway = "SC1",
+ TargetAddress = station,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = "2010",
+ OrderNo = null,
+ PalletCode = zdpInfo.Zdp_code,
+ wheels_mttype = "" ,
+ SourceAddress = zdpInfo.Zdp_Location,
+ CurrentAddress =zdpInfo.Zdp_Location,
+ TaskState = (int)TaskOutStatusEnum.OutNew,
+ TaskType = (int)TaskOutboundTypeEnum.OutBrake,
+ TaskNum = BaseDal.GetTaskNo().Result,
+ Creater = "System",
+ CreateDate = DateTime.Now,
+ TaskId = 0,
+ task_bak1 = JsonConvert.SerializeObject(checkInfo),
+ Towhereabouts = station,
+ };
+
+ // 鍒涘缓浠诲姟浼犺緭鐢ㄧ殑DTO瀵硅薄
+ var taskDTO = CreateTaskDTO(task);
+
+ WMSTaskDTOdata.Add(taskDTO);
+ Locationslist.Add(locationst);
+ TaskList.Add(task);
+ ZdpStockList.Add(zdpInfo);
+ }
+ }
+ else
+ {
+ List<Dt_WheelsStock> stocktData = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1); //鏌ユ壘鍏ㄩ儴鍦ㄥ簱鐨勫簱瀛�
+ foreach (var item in palletCodes)
+ {
+ Dt_WheelsStock stockInfo = _WheelsStockRepository.QueryFirst(x => x.Wheels_code == item);
+ if (stockInfo == null) return content.Error("鏈煡璇㈠埌瀵瑰簲鐨勫簱瀛樹俊鎭�");
+
+ Dt_PreOutbound dt_Pre=_PreOutboundRepository.QueryFirst(x => x.PalletCode == stockInfo.Wheels_code);
+ if (dt_Pre != null)
+ {
+ return content.Error($"褰撳墠杞﹁疆鍙峰凡鍦ㄦ殏瀛樺嚭搴撲腑锛屼笉鍙洿鎺ュ嚭搴擄紒锛侊紒锛岃溅杞潯鐮侊細{dt_Pre.PalletCode}");
+ }
+
+
+ stockInfo.Wheels_CurrentStatue = 4;
+ string Location = stockInfo.Wheels_Location;
+ var locationst = locationinfoData.Where(x => x.LocationCode== stockInfo.Wheels_Location).FirstOrDefault();
+ if (locationst.LocationStatus == (int)LocationEnum.Lock) return content.Error("搴撲綅閿佸畾,璇峰厛瑙i攣鍚庡啀鎸囧畾鍑哄簱");
+
+ locationst.LocationStatus = (int)LocationEnum.InStockDisable;
+
+ var task = BaseDal.QueryFirst(x => x.PalletCode == item);
+ if (task != null)
+ {
+ return content.Error($"銆恵item}銆戝凡瀛樺湪浠诲姟");
+ }
+
+ CheckInfo checkInfo = new CheckInfo()
+ {
+ CarType = stockInfo.Wheels_CarType,
+ MTType = stockInfo.Wheels_mttype, //鍒跺姩鐩樻病鏈夊姩鎷栧睘鎬�
+
+ //CheckType = stockInfo.Wheels_Type == "1" ? "1" : "2",
+ CheckType = outtype,
+
+ HubLevel = stockInfo.Wheels_level.Contains("绛夌骇") ? stockInfo.Wheels_level.Replace("绛夌骇", "") : "0",
+ CLTM = stockInfo.Wheels_Num,
+ IsCheck = true,
+ Standards = stockInfo.Wheels_NewOrOld
+ };
+
+
+ task = new Dt_Task
+ {
+ CarType = stockInfo.Wheels_CarType,
+ wheels_gkcc = stockInfo.Wheels_gkcc,
+ WheelsNewOrOld = stockInfo.Wheels_NewOrOld,
+ WheelsLX = outtype == "2" ? "" : stockInfo.Wheels_ldxh,
+ Grade = 1,
+ Roadway = "SC1",
+ TargetAddress = station,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = "2010",
+ OrderNo = null,
+ PalletCode = stockInfo.Wheels_Num,
+ wheels_mttype = stockInfo.Wheels_mttype,
+ SourceAddress =stockInfo.Wheels_Location,
+ CurrentAddress = stockInfo.Wheels_Location,
+ TaskState = (int)TaskOutStatusEnum.OutNew,
+ TaskType = outtype == "2" ? (int)TaskOutboundTypeEnum.OutBrake : (int)TaskOutboundTypeEnum.OutWheels,
+ TaskNum = BaseDal.GetTaskNo().Result,
+ Creater = "System",
+ CreateDate = DateTime.Now,
+ TaskId = 0,
+ task_bak1 = JsonConvert.SerializeObject(checkInfo),
+ Towhereabouts = station,
+ };
+
+ // 鍒涘缓浠诲姟浼犺緭鐢ㄧ殑DTO瀵硅薄
+ var taskDTO = CreateTaskDTO(task);
+
+ WMSTaskDTOdata.Add(taskDTO);
+ Locationslist.Add(locationst);
+ TaskList.Add(task);
+ WheelList.Add(stockInfo);
+ }
}
- if (stockInfo.Wheels_CurrentStatue != 1) return content.Error("鎸囧畾澶辫触锛氬綋鍓嶇姸鎬佷笉鍏佽鎸囧畾鍑哄簱");
- stockInfo.Wheels_CurrentStatue = 4;
-
- //鏌ヨ搴撲綅鏄惁閿佸畾锛�
- var location = _locationRepository.QueryFirst(x => x.LocationCode == stockInfo.Wheels_Location);
-
- if (location.LocationStatus == (int)LocationEnum.Lock) return content.Error("搴撲綅閿佸畾,璇峰厛瑙i攣鍚庡啀鎸囧畾鍑哄簱");
-
- location.LocationStatus = (int)LocationEnum.InStockDisable;
-
- var task = BaseDal.QueryFirst(x => x.PalletCode == palletCode);
- if (task != null)
- {
- return content.Error($"銆恵palletCode}銆戝凡瀛樺湪浠诲姟");
- }
-
- CheckInfo checkInfo = new CheckInfo()
- {
- CarType = stockInfo.Wheels_CarType,
- MTType = stockInfo.Wheels_mttype,
- CheckType = stockInfo.Wheels_Type == "1" ? "1" : "2",
- HubLevel = stockInfo.Wheels_level.Contains("绛夌骇") ? stockInfo.Wheels_level.Replace("绛夌骇", "") : "0",
- CLTM = stockInfo.Wheels_Num,
- IsCheck = true,
- Standards = stockInfo.Wheels_NewOrOld
- };
-
- // var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == station);
-
- // 鍒涘缓骞舵坊鍔犱换鍔″埌鏁版嵁搴�
- task = new Dt_Task
- {
- CarType = stockInfo.Wheels_CarType,
- wheels_gkcc = stockInfo.Wheels_gkcc,
- WheelsNewOrOld = stockInfo.Wheels_NewOrOld,
- WheelsLX = stockInfo.Wheels_ldxh,
- Grade = 1,
- Roadway = "SC1",
- TargetAddress = station,
- Dispatchertime = DateTime.Now,
- MaterialNo = "",
- NextAddress = "2010",
- OrderNo = null,
- PalletCode = stockInfo.Wheels_Num,
- wheels_mttype = stockInfo.Wheels_mttype,
- SourceAddress = stockInfo.Wheels_Location,
- CurrentAddress = stockInfo.Wheels_Location,
- TaskState = (int)TaskOutStatusEnum.OutNew,
- TaskType = (int)TaskOutboundTypeEnum.OutWheels,
- TaskNum = BaseDal.GetTaskNo().Result,
- Creater = "System",
- CreateDate = DateTime.Now,
- TaskId = 0,
- task_bak1 = JsonConvert.SerializeObject(checkInfo)
- };
-
- // 鍒涘缓浠诲姟浼犺緭鐢ㄧ殑DTO瀵硅薄
- var taskDTO = CreateTaskDTO(task);
-
- // 鑾峰彇WMS IP鍦板潃鐢ㄤ簬鍙戦�佷换鍔¤姹�
+ //鑾峰彇WMS IP鍦板潃鐢ㄤ簬鍙戦�佷换鍔¤姹�
var wmsIpAddress = GetWCSIpReceiveTask();
if (wmsIpAddress == null)
{
throw new InvalidOperationException("WMS IP 鏈厤缃�");
}
-
- var tasks = new List<WMSTaskDTO>() { taskDTO };
// 鍙戦�佷换鍔¤姹傚埌WMS
- var result = HttpHelper.Post(wmsIpAddress, tasks.ToJsonString());
+ var result = HttpHelper.Post(wmsIpAddress, WMSTaskDTOdata.ToJsonString());
content = JsonConvert.DeserializeObject<WebResponseContent>(result);
if (content.Status)
{
// 娣诲姞浠诲姟鍒版暟鎹簱
- BaseDal.AddData(task);
+ BaseDal.AddData(TaskList);
// 鏇存柊搴撲綅浣嶇疆鐘舵�佷负涓嶅彲鐢�
- _locationRepository.UpdateData(location);
- _WheelsStockRepository.UpdateData(stockInfo);
+ _locationRepository.UpdateData(Locationslist);
+ if (outtype == "2")
+ {
+ _ZdpStockRepository.UpdateData(ZdpStockList);
+ }
+ else
+ {
+ _WheelsStockRepository.UpdateData(WheelList);
+ }
}
+
+
+
}
catch (Exception ex)
{
@@ -559,6 +915,8 @@
return await BaseDal.Delete(ids);
}
+
+ #region 鍒犻櫎浠诲姟鍥炴粴
public override WebResponseContent DeleteData(object[] key)
{
WebResponseContent content = new WebResponseContent();
@@ -574,6 +932,59 @@
if (task.TaskState != (int)TaskInStatusEnum.InNew && task.TaskState != (int)TaskOutStatusEnum.OutNew && task.TaskState != (int)TaskStatus.Created)
{
return content.Error("浠诲姟涓嶅浜庢柊寤虹姸鎬�,绂佹鍒犻櫎!");
+ }
+
+ ////鍏ュ簱鏋氫妇
+ //List<int> TaskInboundTypeEnums = Enum.GetValues(typeof(TaskInboundTypeEnum)).Cast<int>().ToList();
+ ////鍑哄簱鏋氫妇
+ //List<int> TaskOutboundTypeEnums = Enum.GetValues(typeof(TaskOutboundTypeEnum)).Cast<int>().ToList();
+ ////绉诲簱鏋氫妇
+ //List<int> TaskMoveTypeEnums = Enum.GetValues(typeof(TaskRelocationTypeEnum)).Cast<int>().ToList();
+ //鍒ゆ柇浠诲姟绫诲瀷
+ // 鏍规嵁浠诲姟绫诲瀷璋冪敤鐩稿簲鐨勫畬鎴愪换鍔℃柟娉�
+
+ // 楠岃瘉搴撳瓨鏄惁瀛樺湪
+ var stock = _WheelsStockRepository.QueryFirstNavAsync(x => x.Wheels_Num.Contains(task.PalletCode) && x.Wheels_Location == task.SourceAddress);
+ var ZdpStock = _ZdpStockRepository.QueryFirstNavAsync(x => x.Zdp_code == task.PalletCode && x.Zdp_Location == task.SourceAddress);
+ bool res = false;
+ switch (task.TaskType)
+ {
+ case (int)TaskInboundTypeEnum.Inbound:
+ case (int)TaskInboundTypeEnum.InWheels:
+ case (int)TaskInboundTypeEnum.InBrake:
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟", "");
+ res = SellectLocationInfo(task,1);
+ break;
+
+ case (int)TaskOutboundTypeEnum.Outbound:
+ case (int)TaskOutboundTypeEnum.OutWheels:
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍑哄簱浠诲姟", "");
+ res = SellectLocationInfo(task,2);
+ break;
+
+ case (int)TaskOutboundTypeEnum.OutBrake:
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍒跺姩鐩樺嚭搴撲换鍔�", "");
+ res = SellectLocationInfo(task,3);
+ break;
+
+ case (int)TaskRelocationTypeEnum.Relocation:
+ if (stock != null)
+ {
+ res = SellectLocationInfo(task,4);
+ }
+ else
+ {
+ res = SellectLocationInfo(task,5);
+ }
+ break;
+
+ default:
+ return content.Error("浠诲姟绫诲瀷涓嶅瓨鍦�");
+ }
+
+ if (!res)
+ {
+ return content.Error("鍦ㄦ墽琛屼换鍔″垎绫荤殑鏃跺�欏嚭鐜伴敊璇紒");
}
var taskHtyNG = CreateHistoricalTask(task, true);
@@ -596,6 +1007,97 @@
return content.Error("鍒犻櫎浠诲姟寮傚父锛�" + ex.Message);
}
}
+
+ /// <summary>
+ /// 鑾峰彇搴撲綅淇℃伅
+ /// </summary>
+ /// <param name="targetAddress"></param>
+ /// <returns></returns>
+ /// <exception cref="NotImplementedException"></exception>
+ private bool SellectLocationInfo(Dt_Task task,int taskType)
+ {
+ // 鑾峰彇搴撲綅淇℃伅
+ DtLocationInfo locationInfoT = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+ DtLocationInfo locationInfoS = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+
+
+ Dt_WheelsStock stock = _WheelsStockRepository.QueryFirst(x => x.Wheels_Num.Contains(task.PalletCode) && x.Wheels_Location == task.SourceAddress);
+ Dt_ZdpStock ZdpStock = _ZdpStockRepository.QueryFirst(x => x.Zdp_code == task.PalletCode && x.Zdp_Location == task.SourceAddress);
+
+ //if (locationInfoT == null) return false;
+
+ //if (locationInfoS == null) return false;
+ //1-鍏ュ簱 2-鍑哄簱 3-鍒跺姩鐩樺嚭搴� 4-绉诲簱
+ var db = _locationInfoRepository.Db as SqlSugarClient;
+ try
+ {
+ db.Ado.BeginTran();
+ if (taskType == 1)
+ {
+ locationInfoT.LocationStatus = (int)LocationEnum.Free;
+ bool res = _locationInfoRepository.UpdateData(locationInfoT);
+ if (res)
+ {
+ db.Ado.CommitTran();
+ return true;
+ }
+ }
+ else if (taskType == 2)
+ {
+ locationInfoS.LocationStatus = (int)LocationEnum.InStock;
+ bool res = _locationInfoRepository.UpdateData(locationInfoS);
+ stock.Wheels_CurrentStatue = 1;
+ bool ress = _WheelsStockRepository.UpdateData(stock);
+ if (res && ress)
+ {
+ db.Ado.CommitTran();
+ return true;
+ }
+ }
+ else if (taskType == 3)
+ {
+ locationInfoS.LocationStatus = (int)LocationEnum.InStock;
+ bool res = _locationInfoRepository.UpdateData(locationInfoS);
+ ZdpStock.Zdp_CurrentStatue = 1;
+ bool ress = _ZdpStockRepository.UpdateData(ZdpStock);
+ if (res && ress)
+ {
+ db.Ado.CommitTran();
+ return true;
+ }
+ }
+ //绉诲簱
+ else
+ {
+ locationInfoT.LocationStatus = (int)LocationEnum.Free;
+ locationInfoS.LocationStatus = (int)LocationEnum.InStock;
+ bool res = _locationInfoRepository.UpdateData(locationInfoT);
+ bool res1 = _locationInfoRepository.UpdateData(locationInfoS);
+ if(taskType == 4)
+ {
+ stock.Wheels_CurrentStatue = 1;
+ }
+ else
+ {
+ ZdpStock.Zdp_CurrentStatue = 1;
+ }
+ bool ress = taskType == 4 ? _WheelsStockRepository.UpdateData(stock) : _ZdpStockRepository.UpdateData(ZdpStock);
+ if (res && res1 && ress)
+ {
+ db.Ado.CommitTran();
+ return true;
+ }
+ }
+ return false;
+ }
+ catch (Exception ex)
+ {
+ db.Ado.RollbackTran();
+ return false;
+ }
+ }
+
+ #endregion
/// <summary>
/// 閫氳繃ID鑾峰彇浠诲姟
@@ -747,9 +1249,32 @@
return (stock, fromLocation, toLocation);
}
- #region 鎵ц鏁版嵁搴撲簨鍔�
/// <summary>
- /// 鎵ц鏁版嵁搴撲簨鍔�
+ /// 鍒跺姩鐩樻洿鏂板簱瀛樹綅缃�
+ /// </summary>
+ /// <param name="stock"></param>
+ /// <param name="task"></param>
+ /// <returns></returns>
+ private (Dt_ZdpStock, DtLocationInfo, DtLocationInfo) UpdateZdpStockLocation(Dt_ZdpStock stock, Dt_Task task)
+ {
+ //淇敼鏉ユ簮搴撲綅鍜� 鐩爣搴撲綅鐘舵��
+ var fromLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
+ fromLocation.LocationStatus = (int)LocationEnum.Free;
+ var toLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway);
+ toLocation.LocationStatus = (int)LocationEnum.InStock;
+
+ // 灏嗗簱瀛樹綅缃缃负鐩爣浣嶇疆
+ stock.Zdp_Location = task.TargetAddress;
+
+ // 杩斿洖鏇存柊鍚庣殑搴撳瓨鍜屼綅缃俊鎭�
+ return (stock, fromLocation, toLocation);
+ }
+
+
+
+ #region 杞﹁疆鎵ц鏁版嵁搴撲簨鍔�
+ /// <summary>
+ /// 杞﹁疆鎵ц鏁版嵁搴撲簨鍔�
/// </summary>
/// <param name="stock">搴撳瓨瀵硅薄</param>
/// <param name="taskHty">鍘嗗彶浠诲姟瀵硅薄</param>
@@ -772,11 +1297,77 @@
var wheels_Mes_Hty = inWheels_Mes.Adapt<Dt_InWheels_mes_hty>();
+ wheels_Mes_Hty.Wheels_Type = "杞�";
wheels_Mes_Hty.Wheels_CurrentStatue = "2";
wheels_Mes_Hty.FinishDate = DateTime.Now;
wheels_Mes_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
_InWheels_Mes_HtyRepository.AddData(wheels_Mes_Hty);
+ }
+
+
+ // 娣诲姞鍘嗗彶浠诲姟
+ var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
+
+ // 淇敼绉诲簱鍓嶈揣浣嶇姸鎬�
+ var isUpdateLoc = _locationRepository.UpdateData(locationInfo);
+
+ // 鍒犻櫎浠诲姟鏁版嵁
+ var isTaskDelete = await Delete(taskId);
+
+ // 鎻愪氦鎴栧洖婊氫簨鍔�
+ if (isUpdateStock && isTaskHtyAdd && isTaskDelete && isUpdateLoc && isDeleteWheelsMes)
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "浠诲姟瀹屾垚", $"浜嬪姟澶勭悊瀹屾垚,鎻愪氦浜嬪姟銆傛坊鍔犲巻鍙蹭换鍔★細{isTaskHtyAdd},鍒犻櫎浠诲姟鏁版嵁锛歿isTaskDelete},鏇存柊鎴栨坊鍔犲簱瀛橈細{isUpdateStock},淇敼鍏ュ簱鍓嶈揣浣嶇姸鎬侊細{isUpdateLoc}");
+ _unitOfWorkManage.CommitTran();
+ return true;
+ }
+ else
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "浠诲姟瀹屾垚", $"鏁版嵁澶勭悊澶辫触,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴銆傛坊鍔犲巻鍙蹭换鍔★細{isTaskHtyAdd},鍒犻櫎浠诲姟鏁版嵁锛歿isTaskDelete},鏇存柊搴撳瓨锛歿isUpdateStock},淇敼鍏ュ簱鍓嶈揣浣嶇姸鎬侊細{isUpdateLoc}");
+ _unitOfWorkManage.RollbackTran();
+ return false;
+ }
+ }
+ catch (Exception err)
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, $"浠诲姟瀹屾垚,绯荤粺寮傚父锛屽紓甯镐俊鎭細{err.Message}", "鏃犲弬鏁�");
+ _unitOfWorkManage.RollbackTran();
+ throw; // 鎶涘嚭寮傚父浠ヤ究澶栭儴鎹曡幏
+ }
+ }
+ #endregion
+
+ #region 鍒跺姩鐩樻墽琛屾暟鎹簱浜嬪姟
+ /// <summary>
+ /// 鍒跺姩鐩樻墽琛屾暟鎹簱浜嬪姟
+ /// </summary>
+ /// <param name="stock">搴撳瓨瀵硅薄</param>
+ /// <param name="taskHty">鍘嗗彶浠诲姟瀵硅薄</param>
+ /// <param name="taskId">浠诲姟ID</param>
+ /// <returns></returns>
+ private async Task<bool> ZDPExecuteTransaction(Dt_ZdpStock stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, Dt_InZdp_mes inZdp_Mes = null)
+ {
+ _unitOfWorkManage.BeginTran();
+ try
+ {
+ var isUpdateStock = false;
+ var isDeleteWheelsMes = false;
+
+
+ // 娣诲姞搴撳瓨
+ isUpdateStock = _ZdpStockRepository.AddData(stock) > 0;
+ if (inZdp_Mes != null)
+ {
+ isDeleteWheelsMes = _InZdp_MesRepository.DeleteData(inZdp_Mes);
+
+ var InZdp_mes_hty = inZdp_Mes.Adapt<Dt_InZdp_mes_hty>();
+
+ InZdp_mes_hty.Zdp_CurrentStatue = "2";
+ InZdp_mes_hty.FinishDate = DateTime.Now;
+ InZdp_mes_hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
+
+ _InZdp_Mes_HtyRepository.AddData(InZdp_mes_hty);
}
@@ -820,6 +1411,49 @@
try
{
var isUpdateStock = _WheelsStockRepository.UpdateData(stock);
+
+ // 娣诲姞鍘嗗彶浠诲姟
+ var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
+
+ // 淇敼绉诲簱鍓嶈揣浣嶇姸鎬�
+ var isUpdateLocF = _locationRepository.UpdateData(fromLocation);
+ var isUpdateLocT = _locationRepository.UpdateData(toLocation);
+
+ // 鍒犻櫎浠诲姟鏁版嵁
+ var isTaskDelete = await Delete(taskId);
+
+ // 鎻愪氦鎴栧洖婊氫簨鍔�
+ if (isUpdateStock && isTaskHtyAdd && isTaskDelete && isUpdateLocF && isUpdateLocT)
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "浠诲姟瀹屾垚", $"浜嬪姟澶勭悊瀹屾垚,鎻愪氦浜嬪姟銆傛坊鍔犲巻鍙蹭换鍔★細{isTaskHtyAdd},鍒犻櫎浠诲姟鏁版嵁锛歿isTaskDelete},鏇存柊鎴栨坊鍔犲簱瀛橈細{isUpdateStock},淇敼绉诲簱鍓嶈揣浣嶇姸鎬侊細{isUpdateLocF}");
+ _unitOfWorkManage.CommitTran();
+ return true;
+ }
+ else
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "浠诲姟瀹屾垚", $"鏁版嵁澶勭悊澶辫触,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴銆傛坊鍔犲巻鍙蹭换鍔★細{isTaskHtyAdd},鍒犻櫎浠诲姟鏁版嵁锛歿isTaskDelete},鏇存柊搴撳瓨锛歿isUpdateStock},淇敼绉诲簱鍓嶈揣浣嶇姸鎬侊細{isUpdateLocF}");
+ _unitOfWorkManage.RollbackTran();
+ return false;
+ }
+ }
+ catch (Exception err)
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, $"浠诲姟瀹屾垚,绯荤粺寮傚父锛屽紓甯镐俊鎭細{err.Message}", "鏃犲弬鏁�");
+ _unitOfWorkManage.RollbackTran();
+ throw new Exception(err.Message); // 鎶涘嚭寮傚父浠ヤ究澶栭儴鎹曡幏
+ }
+ }
+
+ #endregion MyRegion
+
+ #region 鍒跺姩鐩樼Щ搴撲换鍔′簨鍔�
+
+ private async Task<bool> ZdpExecuteTransaction(Dt_ZdpStock stock, Dt_Task_Hty taskHty, DtLocationInfo fromLocation, DtLocationInfo toLocation, int taskId)
+ {
+ _unitOfWorkManage.BeginTran();
+ try
+ {
+ var isUpdateStock = _ZdpStockRepository.UpdateData(stock);
// 娣诲姞鍘嗗彶浠诲姟
var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
@@ -953,4 +1587,21 @@
#endregion 浠诲姟璇锋眰鏂规硶
#endregion private 鍐呴儴鏂规硶
+
+
+
+ public WebResponseContent GetStockStatue()
+ {
+ WebResponseContent content=new WebResponseContent();
+ int Wherecount = _WheelsStockRepository.QueryData(x => x.Wheels_Statue == 1).Count();
+
+ int Zdpcount = _ZdpStockRepository.QueryData(x => x.Zdp_Statue == 1).Count();
+
+ content.Data = new
+ {
+ WheelsCount = Wherecount,
+ ZdpCount = Zdpcount
+ };
+ return content;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3