| | |
| | | using WIDESEA_IStoragIntegrationServices; |
| | | using WIDESEA_StoragIntegrationServices; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_BasicInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | |
| | |
| | | public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService |
| | | { |
| | | private readonly LogFactory LogFactory = new LogFactory(); |
| | | //private readonly BDCManager bDCManager = new BDCManager(); |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IDt_Task_HtyRepository _task_HtyRepository; |
| | | private readonly IMapper _mapper; |
| | |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ISys_ConfigService _configService; |
| | | private readonly IDt_PalletStockInfoRepository _palletStockInfoRepository; |
| | | private readonly IDt_PalletStockInfoDetailRepository _palletStockInfoDetailRepository; |
| | | private readonly IDt_PalletStockInfo_htyRepository _palletStockInfo_HtyRepository; |
| | | private readonly IBoxingInfoRepository _boxingInfoRepository; |
| | | private readonly IDt_CarBodyRepository _carBodyRepository; |
| | | private readonly IDt_BDCConfigurationRepository _bdcConfigurationRepository; |
| | | private readonly IDt_BDCConfigurationService _bdcConfigurationService; |
| | | private readonly IDt_RoadWayRepository _roadWayRepository; |
| | | private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository; |
| | | |
| | | public Dt_TaskService(IDt_TaskRepository BaseDal, |
| | | IUnitOfWorkManage unitOfWorkManage, |
| | |
| | | ITaskExecuteDetailRepository taskExecuteDetailRepository, |
| | | ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository, |
| | | IDt_StationManagerRepository stationManagerRepository, |
| | | ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IBoxingInfoRepository boxingInfoRepository, IDt_PalletStockInfoDetailRepository palletStockInfoDetailRepository) : base(BaseDal) |
| | | ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IDt_CarBodyRepository carBodyRepository, IDt_BDCConfigurationRepository bdcConfigurationRepository, IDt_BDCConfigurationService bDCConfigurationService, IDt_RoadWayRepository roadWayRepository, IDt_RoadWayInfoRepository roadWayInfoRepository) : base(BaseDal) |
| | | |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _configService = configService; |
| | | _palletStockInfoRepository = palletStockInfoRepository; |
| | | _palletStockInfo_HtyRepository = palletStockInfo_HtyRepository; |
| | | _boxingInfoRepository = boxingInfoRepository; |
| | | _palletStockInfoDetailRepository = palletStockInfoDetailRepository; |
| | | _carBodyRepository = carBodyRepository; |
| | | _bdcConfigurationRepository = bdcConfigurationRepository; |
| | | _bdcConfigurationService = bDCConfigurationService; |
| | | _roadWayRepository = roadWayRepository; |
| | | _roadWayInfoRepository = roadWayInfoRepository; |
| | | } |
| | | |
| | | #region å¤é¨æ¥å£æ¹æ³ |
| | |
| | | var taskHty = CreateHistoricalTask(task); |
| | | |
| | | //è·åç»çä¿¡æ¯ |
| | | var boxinginfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); |
| | | var carBody = await _carBodyRepository.QueryFirstAsync(x => x.PalletCode == task.PalletCode); |
| | | |
| | | // æ ¹æ®å建åºåå®ä¾æ¨¡å |
| | | //var boxDetail = boxinginfo.BoxingInfoDetails.Adapt<List<Dt_PalletStockInfoDetail>>(); |
| | |
| | | }; |
| | | |
| | | // æ§è¡æ°æ®åºäºå¡ |
| | | bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, boxinginfo); |
| | | bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, carBody); |
| | | if (isResult) |
| | | { |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); |
| | |
| | | stockInfo_Hty.FinishTime = DateTime.Now; |
| | | stockInfo_Hty.OperateType = (int)OperateTypeEnum.èªå¨å®æ; |
| | | |
| | | var boxinfo = _boxingInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode); |
| | | var boxinfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode); |
| | | |
| | | // äºå¡å¤ç |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | |
| | | #endregion å
é¨è°ç¨æ¹æ³ |
| | | |
| | | #region private å
鍿¹æ³ |
| | | |
| | | |
| | | private async Task DeleteStockInfoDetailsAsync(IEnumerable<Dt_PalletStockInfoDetail> details) |
| | | { |
| | | if (details != null) |
| | | { |
| | | var ids = details.Select(x => (object)x.Id).ToArray(); |
| | | var isStockDetailUpdated = await _palletStockInfoDetailRepository.DeleteDataByIdsAsync(ids); |
| | | if (!isStockDetailUpdated) |
| | | { |
| | | throw new Exception("åºå详æ
ä¿¡æ¯æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建åå²ä»»å¡è®°å½ |
| | | /// </summary> |
| | |
| | | /// <param name="taskHty">åå²ä»»å¡å¯¹è±¡</param> |
| | | /// <param name="taskId">ä»»å¡ID</param> |
| | | /// <returns></returns> |
| | | private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, DtBoxingInfo boxingInfo) |
| | | private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, Dt_CarBody boxingInfo) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | try |
| | |
| | | //å é¤ç»çæ°æ® |
| | | if (boxingInfo != null) |
| | | { |
| | | var box = _boxingInfoRepository.DeleteData(boxingInfo); |
| | | var box = _carBodyRepository.DeleteData(boxingInfo); |
| | | //boxingInfo.CurrentStatue = 5; |
| | | //isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxingInfo.Id) |
| | | // .Include(x => x.BoxingInfoDetails) |