using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using WIDESEA_DTO;
using WIDESEA_DTO.WMS;
using WIDESEA_Model.Models;
namespace WIDESEA_StoragIntegrationServices
{
public partial class MCSService
{
///
/// 请求移库
///
///
///
public WebResponseContent RequestChangeLocation(object json)
{
WebResponseContent content = new WebResponseContent();
try
{
if (string.IsNullOrEmpty(json.ToString())) throw new Exception("上传参数为空");
var result = JsonConvert.DeserializeObject(json.ToString());
var location = _locationRepository.QueryFirst(x => x.AreaId == result.LocationArea && x.LocationCode == result.LocationID);
if (location == null) throw new Exception("未知库位");
if (result.MoveType == 5)
{
Console.WriteLine($"分容检测柜火警触发:库位{result.LocationID}");
//查找消防站台
var station = _stationManagerRepository.QueryFirst(t => t.Roadway == location.RoadwayNo
&& t.stationType == (int)StationManager.FireStation
/*&& t. == "Enable"*/);
if (station == null)
{
throw new Exception("消防站台未配置!");
}
//查找库存信息
var barcodeData = _stockInfoRepository.QueryFirst(t => t.LocationCode == location.LocationCode);
//托盘码
string barcode = string.Empty;
if (barcodeData != null)
{
barcode = barcodeData.PalletCode;
}
else
{
//无库存信息,生成随机托盘码
barcode = "M" + DateTime.Now.ToString("MMddHHmmss") + "-" + new Random().Next(100, 1000);
}
int taskNum = _taskRepository.GetTaskNo().Result;
Dt_Task task = new Dt_Task
{
CreateDate = DateTime.Now,
Creater = "HK",
CurrentAddress = result.LocationID,
Grade = 1,
Dispatchertime = DateTime.Now,
PalletCode = result.PalletBarcode,
Roadway = location.RoadwayNo,
SourceAddress = result.LocationID,
TaskState = (int)TaskOutStatusEnum.OutNew,
TaskType = 500,
TargetAddress = station.stationLocation,
NextAddress = station.stationChildCode,
TaskNum = taskNum, //_taskRepository.GetTaskNo().Result,
TaskId = 0,
};
// 尝试添加新任务
WMSTaskDTO taskDTO = new WMSTaskDTO()
{
TaskNum = task.TaskNum.Value,
Grade = 1,
PalletCode = task.PalletCode,
RoadWay = task.Roadway,
SourceAddress = task.SourceAddress,
TargetAddress = task.TargetAddress,
TaskState = task.TaskState.Value,
Id = 0,
TaskType = 500,
};
}
LogFactory.GetLog("分容移库申请").Info(true, $"\r\r--------------------------------------");
LogFactory.GetLog("分容移库申请").Info(true, result);
return content.OK();
}
catch (Exception ex)
{
return content.Error(ex.Message);
}
}
}
}