using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Core.Enums;
|
using WIDESEA_Core;
|
using WIDESEA_DTO.Stock;
|
using WIDESEA_Model.Models;
|
using WIDESEA_Core.Helper;
|
using Microsoft.AspNetCore.Http;
|
using System.Reflection.Metadata;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
|
using System.Diagnostics;
|
using Newtonsoft.Json;
|
using System.Security.Policy;
|
using static WIDESEA_ITaskInfoService.ITaskService;
|
using MailKit.Search;
|
using WIDESEA_Common.Log;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
|
|
namespace WIDESEA_TaskInfoService
|
{
|
public partial class TaskService
|
{
|
public string ReceiveWMSTask = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTask"];
|
|
|
|
/// <summary>
|
/// 手动生成空托出库
|
/// </summary>
|
/// <param name="PalletCode"></param>
|
/// <returns></returns>
|
public WebResponseContent EmptyOutbound(SaveModel saveModel)
|
{
|
try
|
{
|
|
int Materialweight = int.Parse(saveModel.MainData["cacheNo"].ToString());
|
int stackcount = int.Parse(saveModel.MainData["cachcount"].ToString());
|
|
|
List<Dt_StockInfo> stockInfo = _stockService.StockInfoService.Repository.QueryData(x => x.Wlstatus == (int)InventoryMaterialStatus.空托 && x.MaterialType== Materialweight).Take(stackcount).ToList(); //拿Materialweight当类型
|
|
List<Dt_Task> dt_Tasks = new List<Dt_Task>();
|
|
|
foreach (var item in stockInfo)
|
{
|
if (stockInfo == null)
|
{
|
return WebResponseContent.Instance.Error("未找到空托盘库存");
|
}
|
Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == item.LocationCode);
|
if (locationInfo == null)
|
{
|
return WebResponseContent.Instance.Error("未找到空托盘库存对应的货位信息");
|
}
|
|
|
Dt_Task task = new Dt_Task()
|
{
|
CurrentAddress = item.LocationCode,
|
Grade = 0,
|
NextAddress = "1080",
|
PalletCode = item.PalletCode,
|
Roadway = "1",
|
SourceAddress = item.LocationCode,
|
TargetAddress = "1080",
|
TaskStatus = OutTaskStatusEnum.OutNew.ObjToInt(),
|
TaskType = TaskTypeEnum.Outbound.ObjToInt(),
|
Depth = locationInfo.Depth,
|
TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
|
Materialweight = item.Materialweight,
|
WagonModel = item.WagonModel, //车号
|
WagonName = item.WagonName, //部件名称
|
Wagonnumber = item.Wagonnumber, //车型
|
Wagongroup = item.Wagongroup, //车组号
|
|
};
|
|
int beforeStatus = locationInfo.LocationStatus;
|
|
item.StockStatus = StockStatusEmun.出库锁定.ObjToInt();
|
locationInfo.LocationStatus = LocationStatusEnum.PalletLock.ObjToInt();
|
|
_stockService.StockInfoService.UpdateData(item);
|
_basicService.LocationInfoService.UpdateData(locationInfo);
|
|
|
|
_basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
|
_recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), "", task.TaskNum);
|
dt_Tasks.Add(task);
|
|
|
}
|
_unitOfWorkManage.BeginTran();
|
var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, dt_Tasks, "下发任务入库");
|
|
BaseDal.AddData(dt_Tasks);
|
_unitOfWorkManage.CommitTran();
|
|
return WebResponseContent.Instance.OK("呼叫成功");
|
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
|
|
/// <summary>
|
/// 人工手动出库(删除库存)
|
/// </summary>
|
/// <param name="saveModel"></param>
|
/// <returns></returns>
|
public WebResponseContent ManualOutboundDeleteinventory(SaveModel saveModel)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
List<Dt_StockInfo> dtstockt = new List<Dt_StockInfo>();
|
List<Dt_LocationInfo> locations = new List<Dt_LocationInfo>();
|
List<Dt_StockInfoDetail> dtstocktdetail = new List<Dt_StockInfoDetail>();
|
|
for (int i = 0; i < saveModel.DelKeys.Count; i++)
|
{
|
Dt_StockInfo stockt = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == saveModel.DelKeys[i].ToString());
|
if (stockt.StockStatus == (int)StockStatusEmun.已入库)
|
{
|
Dt_StockInfoDetail stocktdetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockt.Id);
|
Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockt.LocationCode);
|
Dt_Task_Hty task_Hty = new Dt_Task_Hty()
|
{
|
TaskNum = 001,
|
PalletCode = stockt.PalletCode,
|
Roadway = locationinfo.RoadwayNo,
|
TaskType = (int)TaskTypeEnum.Outbound,
|
TaskStatus = (int)OutTaskStatusEnum.OutFinish,
|
SourceAddress = locationinfo.LocationCode,
|
TargetAddress = locationinfo.LocationCode,
|
CurrentAddress = locationinfo.LocationCode,
|
NextAddress = locationinfo.LocationCode,
|
Grade = 1,
|
Dispatchertime = DateTime.Now,
|
Creater = App.User.UserName,
|
CreateDate = DateTime.Now,
|
ModifyDate = DateTime.Now,
|
Modifier = App.User.UserName,
|
Remark = "人工出库",
|
PLCTo = 1,
|
PalletCodequantity = 1,
|
MaterialType = 1
|
};
|
_taskHtyService.AddData(task_Hty);
|
locationinfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
|
dtstockt.Add(stockt);
|
locations.Add(locationinfo);
|
if (stockt.MaterialType != (int)InventoryMaterialType.空托)
|
{
|
dtstocktdetail.Add(stocktdetail);
|
}
|
WriteLog.GetLog("人工手动删除库存信息").Write($"托盘条码:{stockt.PalletCode},库位编号:{stockt.LocationCode}", $"人工出库库存");
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,该库存信息不可进行出库");
|
}
|
|
}
|
_unitOfWorkManage.BeginTran();
|
_stockService.StockInfoService.Repository.DeleteData(dtstockt);
|
_stockService.StockInfoDetailService.Repository.DeleteData(dtstocktdetail);
|
_basicService.LocationInfoService.Repository.UpdateData(locations);
|
_unitOfWorkManage.CommitTran();
|
content = WebResponseContent.Instance.OK();
|
return content;
|
}
|
catch (Exception ex)
|
{
|
_unitOfWorkManage.RollbackTran();
|
return content = WebResponseContent.Instance.Error($"手动出库信息失败,报错信息:{ex.Message}");
|
throw;
|
}
|
}
|
|
/// <summary>
|
/// 任务取消
|
/// </summary>
|
/// <param name="saveModel"></param>
|
/// <returns></returns>
|
public WebResponseContent Cancelinventory(int taskNum)
|
{
|
WebResponseContent content = new WebResponseContent();
|
Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
|
if(task != null)
|
{
|
if(task.TaskType== (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound || task.TaskType == (int)TaskTypeEnum.PalletMaintenanceout)
|
{
|
//处理出库的逻辑
|
Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
|
if (locationinfo.LocationStatus == LocationStatusEnum.Lock.ObjToInt())
|
{
|
locationinfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
|
}
|
if (locationinfo.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
|
{
|
locationinfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt();
|
}
|
_basicService.LocationInfoService.Repository.UpdateData(locationinfo);
|
Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
|
stockInfo.StockStatus = (int)StockStatusEmun.已入库;
|
_stockService.StockInfoService.Repository.UpdateData(stockInfo);
|
|
BaseDal.DeleteData(task);
|
BaseDal.DeleteAndMoveIntoHty(task, OperateType.人工删除);
|
WriteLog.GetLog("任务日志").Write($"出库任务取消成功,托盘条码:{task.PalletCode}", $"任务取消");
|
//WebResponseContent webResponseContent = HttpHelper.Post<WebResponseContent>(ReceiveWCSTask, task.TaskNum, "任务删除");
|
return content = WebResponseContent.Instance.Error($"出库任务取消成功");
|
|
}
|
else if(task.TaskType == (int)TaskTypeEnum.Inbound || task.TaskType == (int)TaskTypeEnum.PalletInbound /*|| task.TaskType == (int)TaskTypeEnum.PalletMaintenancein*/)
|
{
|
//处理出库的逻辑
|
Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
|
if (locationinfo.LocationStatus == LocationStatusEnum.Lock.ObjToInt() || locationinfo.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
|
{
|
locationinfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
|
}
|
_basicService.LocationInfoService.Repository.UpdateData(locationinfo);
|
|
Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
|
_stockService.StockInfoService.Repository.DeleteData(stockInfo);
|
|
BaseDal.DeleteData(task);
|
BaseDal.DeleteAndMoveIntoHty(task, OperateType.人工删除);
|
WriteLog.GetLog("任务日志").Write($"入库任务取消成功,托盘条码:{task.PalletCode}", $"任务取消");
|
//WebResponseContent webResponseContent = HttpHelper.Post<WebResponseContent>(ReceiveWCSTask, task.TaskNum, "任务删除");
|
return content = WebResponseContent.Instance.Error($"入库任务取消成功");
|
}
|
else if (task.TaskType == (int)TaskTypeEnum.RelocationIn) //库内移库
|
{
|
//处理出库的逻辑
|
Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
|
if (locationinfo.LocationStatus == LocationStatusEnum.Lock.ObjToInt() || locationinfo.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
|
{
|
locationinfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
|
}
|
_basicService.LocationInfoService.Repository.UpdateData(locationinfo);
|
|
Dt_LocationInfo locationinfo2 = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
|
if (locationinfo2.LocationStatus == LocationStatusEnum.Lock.ObjToInt())
|
{
|
locationinfo2.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
|
}
|
if (locationinfo2.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
|
{
|
locationinfo2.LocationStatus = LocationStatusEnum.Pallet.ObjToInt();
|
}
|
_basicService.LocationInfoService.Repository.UpdateData(locationinfo2);
|
Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
|
stockInfo.StockStatus = (int)StockStatusEmun.已入库;
|
_stockService.StockInfoService.Repository.UpdateData(stockInfo);
|
Dt_StockInfoDetail stocktdetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id);
|
if (stocktdetail != null)
|
{
|
stocktdetail.Status = (int)StockStatusEmun.已入库;
|
_stockService.StockInfoDetailService.Repository.UpdateData(stocktdetail);
|
}
|
BaseDal.DeleteData(task);
|
BaseDal.DeleteAndMoveIntoHty(task, OperateType.人工删除);
|
WriteLog.GetLog("任务日志").Write($"入库任务取消成功,托盘条码:{task.PalletCode}", $"任务取消");
|
WebResponseContent webResponseContent = HttpHelper.Post<WebResponseContent>(ReceiveWCSTask, task.TaskNum, "任务删除");
|
return content = WebResponseContent.Instance.Error($"入库任务取消成功");
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"该任务的任务类型异常,取消失败");
|
}
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"未找到任务号");
|
}
|
}
|
|
|
/// <summary>
|
/// 检修出库方法
|
/// </summary>
|
/// <param name="saveModel"></param>
|
/// <returns></returns>
|
public WebResponseContent ManualOutbound(SaveModel saveModel)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
List<Dt_StockInfo> dtstockt = new List<Dt_StockInfo>();
|
List<Dt_LocationInfo> locations = new List<Dt_LocationInfo>();
|
List<Dt_Task> taskdt = new List<Dt_Task>();
|
|
List<Dt_StockInfo> stocktData = _stockService.StockInfoService.Repository.QueryData(x => x.StockStatus == (int)StockStatusEmun.已入库 && x.MaterialType == (int)InventoryMaterialType.满托);
|
|
List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.LocationStatus == LocationStatusEnum.InStock.ObjToInt());
|
|
|
string json = saveModel.DelKeys[0].ToString();
|
List<string> palletCodes = JsonConvert.DeserializeObject<List<string>>(json);
|
|
int crttask= _sys_CreateTask.QtCreatea(saveModel.DelKeys[1].ToString());
|
if (crttask == 2)
|
{
|
return content = WebResponseContent.Instance.Error($"该站台出入任务已满,不可出库");
|
}
|
if (palletCodes.Count >2)
|
{
|
return content = WebResponseContent.Instance.Error($"最多一个站台只可出库两个");
|
}
|
|
|
foreach (var palletCode in palletCodes)
|
{
|
Dt_StockInfo stockt = stocktData.FirstOrDefault(x => x.PalletCode == palletCode);
|
if (stockt != null)
|
{
|
if (stockt.StockStatus == (int)StockStatusEmun.已入库 && (stockt.Wlstatus == (int)InventoryMaterialStatus.半检修 || stockt.Wlstatus == (int)InventoryMaterialStatus.待修))
|
{
|
|
Dt_LocationInfo locationinfo = locationinfoData.FirstOrDefault(x => x.LocationCode == stockt.LocationCode);
|
if (locationinfo != null)
|
{
|
stockt.StockStatus = (int)StockStatusEmun.检修出库锁定;
|
if (locationinfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
|
{
|
locationinfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
|
}
|
//添加检修任务观看
|
Sys_CreateTask sys_Create = new Sys_CreateTask()
|
{
|
Current_PalletCode= stockt.PalletCode,
|
Current_Carset= stockt.Wagongroup,
|
Current_Models = stockt.Wagonnumber,
|
Current_Parts = stockt.WagonName,
|
Current_count = stockt.Materialweight,
|
Current_Vehiclenumber = stockt.WagonModel,
|
Current_Static = (int)StockStatusEmun.检修出库锁定,
|
Creater = App.User.UserName,
|
CreateDate = DateTime.Now,
|
CreateSta= saveModel.DelKeys[1].ToString(),
|
};
|
|
//添加进行维修记录
|
Dt_Repair dt_Repair = new Dt_Repair()
|
{
|
Current_PalletCode = stockt.PalletCode,
|
Current_Carset = stockt.Wagongroup,
|
Current_Models = stockt.Wagonnumber,
|
Current_Parts = stockt.WagonName,
|
Current_count = stockt.Materialweight,
|
Current_Vehiclenumber = stockt.WagonModel,
|
Current_Static = (int)StockStatusEmun.检修出库锁定,
|
Creater = App.User.UserName,
|
CreateDate = DateTime.Now,
|
CreateSta = saveModel.DelKeys[1].ToString(),
|
};
|
|
|
Dt_Task dt_Task = new()
|
{
|
PalletCode = stockt.PalletCode,
|
TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
|
Roadway = locationinfo.RoadwayNo,
|
TaskType = TaskTypeEnum.PalletMaintenanceout.ObjToInt(),
|
TaskStatus = AGVTaskStatusEnum.AGVout_Executing.ObjToInt(),
|
SourceAddress = locationinfo.LocationCode,
|
TargetAddress = saveModel.DelKeys[1].ToString(),
|
CurrentAddress = locationinfo.LocationCode,
|
NextAddress = saveModel.DelKeys[1].ToString(),
|
Grade = 1,
|
Creater = App.User.UserName,
|
Depth = locationinfo.Depth,
|
CreateDate = DateTime.Now,
|
PLCTo = int.Parse(saveModel.DelKeys[1].ToString()),
|
MaterialType = stockt.MaterialType,
|
Materialweight = stockt.Materialweight,
|
WagonModel = stockt.WagonModel, //车号
|
WagonName = stockt.WagonName, //部件名称
|
Wagonnumber = stockt.Wagonnumber, //车型
|
Wagongroup = stockt.Wagongroup //车组号
|
};
|
|
_sys_CreateTask.AddData(sys_Create);
|
_dtRepair.AddData(dt_Repair);
|
dtstockt.Add(stockt);
|
locations.Add(locationinfo);
|
taskdt.Add(dt_Task);
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,未找到对应的库位信息,请核对!!!,出库条码:{palletCode}");
|
}
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,请选择已入库且(待修或半检修)的物料出库!!!,出库条码:{palletCode}");
|
}
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,未找到对应条码的库存信息,出库条码:{palletCode}");
|
|
}
|
}
|
|
_unitOfWorkManage.BeginTran();
|
if (dtstockt.Count > 0)
|
{
|
_stockService.StockInfoService.Repository.UpdateData(dtstockt);
|
_basicService.LocationInfoService.Repository.UpdateData(locations);
|
BaseDal.AddData(taskdt);
|
}
|
_unitOfWorkManage.CommitTran();
|
var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, taskdt, "下发任务入库");
|
content = WebResponseContent.Instance.OK($"出库成功,出库总数:{palletCodes.Count},成功数量:{dtstockt.Count}");
|
return content;
|
}
|
catch (Exception ex)
|
{
|
_unitOfWorkManage.RollbackTran();
|
return content = WebResponseContent.Instance.Error($"出库失败,报错信息:{ex.Message}");
|
throw;
|
}
|
}
|
|
|
public WebResponseContent ManualOutbound2(SaveModel saveModel)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
List<Dt_StockInfo> dtstockt = new List<Dt_StockInfo>();
|
List<Dt_LocationInfo> locations = new List<Dt_LocationInfo>();
|
List<Dt_Task> taskdt = new List<Dt_Task>();
|
|
|
List<Dt_StockInfo> stocktData = _stockService.StockInfoService.Repository.QueryData(x => x.StockStatus == (int)StockStatusEmun.已入库 && x.MaterialType == (int)InventoryMaterialType.满托);
|
|
List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.LocationStatus == LocationStatusEnum.InStock.ObjToInt());
|
|
|
string json = saveModel.DelKeys[0].ToString();
|
if (!json.StartsWith("[") && !json.EndsWith("]"))
|
{
|
json = $"[{json}]";
|
}
|
List<string> palletCodes = JsonConvert.DeserializeObject<List<string>>(json);
|
|
foreach (var palletCode in palletCodes)
|
{
|
Dt_StockInfo stockt = stocktData.FirstOrDefault(x => x.PalletCode == palletCode);
|
if (stockt != null)
|
{
|
if (stockt.StockStatus == (int)StockStatusEmun.已入库 && (stockt.Wlstatus == (int)InventoryMaterialStatus.已修 || stockt.Wlstatus == (int)InventoryMaterialStatus.合格))
|
{
|
|
Dt_LocationInfo locationinfo = locationinfoData.FirstOrDefault(x => x.LocationCode == stockt.LocationCode);
|
if (locationinfo != null)
|
{
|
stockt.StockStatus = (int)StockStatusEmun.出库锁定;
|
if (locationinfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
|
{
|
locationinfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
|
}
|
|
Dt_Task dt_Task = new()
|
{
|
PalletCode = stockt.PalletCode,
|
TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
|
Roadway = locationinfo.RoadwayNo,
|
TaskType = TaskTypeEnum.Outbound.ObjToInt(),
|
TaskStatus = InTaskStatusEnum.InNew.ObjToInt(),
|
SourceAddress = locationinfo.LocationCode,
|
TargetAddress = "1070",
|
CurrentAddress = locationinfo.LocationCode,
|
NextAddress = "1070",
|
Grade = 1,
|
Creater = App.User.UserName,
|
Depth = locationinfo.Depth,
|
CreateDate = DateTime.Now,
|
PLCTo = 1,
|
MaterialType = stockt.MaterialType,
|
Materialweight = stockt.Materialweight,
|
WagonModel = stockt.WagonModel, //车号
|
WagonName = stockt.WagonName, //部件名称
|
Wagonnumber = stockt.Wagonnumber, //车型
|
Wagongroup = stockt.Wagongroup //车组号
|
};
|
dtstockt.Add(stockt);
|
locations.Add(locationinfo);
|
taskdt.Add(dt_Task);
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,未找到对应的库位信息,请核对!!!,出库条码:{palletCode}");
|
}
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,请选择已入库且(待修或半检修)的物料出库!!!,出库条码:{palletCode}");
|
}
|
}
|
else
|
{
|
return content = WebResponseContent.Instance.Error($"出库失败,未找到对应条码的库存信息,出库条码:{palletCode}");
|
|
}
|
}
|
|
_unitOfWorkManage.BeginTran();
|
if (dtstockt.Count > 0)
|
{
|
_stockService.StockInfoService.Repository.UpdateData(dtstockt);
|
_basicService.LocationInfoService.Repository.UpdateData(locations);
|
BaseDal.AddData(taskdt);
|
}
|
_unitOfWorkManage.CommitTran();
|
var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, taskdt, "下发任务入库");
|
content = WebResponseContent.Instance.OK($"出库成功,出库总数:{palletCodes.Count},成功数量:{dtstockt.Count}");
|
return content;
|
}
|
catch (Exception ex)
|
{
|
_unitOfWorkManage.RollbackTran();
|
return content = WebResponseContent.Instance.Error($"出库失败,报错信息:{ex.Message}");
|
throw;
|
}
|
}
|
}
|
}
|