using MaxCommunication.DataBase.Document;
using PmsSecondaryPackaging.Interface.Model.Carrier;
using PmsSecondaryPackaging.Interface.Model.StepBook;
using PmsSecondaryPackaging.Interface.Model.TaskBook;
using PmsSecondaryPackaging.TaskManager.TaskBookBehavior;
using ProjectManagementSystem.NHibernateDBHelper;
using System.Collections.Generic;
using System.Threading;
using System.Linq;
using System;
using Pms.WebHandle;
namespace ProjectManagementSystem.TaskBookEvent
{
///
/// 上报送货完成
///
public class TaskBookBehavior_62002 : BaseTaskBookBehavior
{
public TaskBookBehavior_62002() : base(62002)
{
}
public override bool TaskBookSetting(TaskDetailInfoModel taskDetailInfo, List taskStepInfoList, CarrierInfoModel carrierInfo)
{
//IsEnable = false; Asynchronous = true;
return base.TaskBookSetting(taskDetailInfo, taskStepInfoList, carrierInfo);
}
public override bool TaskBookTermination(TaskDetailInfoModel taskDetailInfo, List taskStepInfoList, CarrierInfoModel carrierInfo)
{
return base.TaskBookTermination(taskDetailInfo, taskStepInfoList, carrierInfo);
}
public override bool TaskBookOperator(TaskDetailInfoModel taskDetailInfo, List taskStepInfoList, CarrierInfoModel carrierInfo)
{
bool successed = false;
//StepDetailInfoModel currentStep = taskStepInfoList.Find(p => p.StepId == taskDetailInfo.CurrentStepID);
//string strCurWareHouse = currentStep.WareHouseID;
string[] values = taskDetailInfo.TaskID.Split('_');
string tempOrderId = values != null & values.Length > 1 ? values[1] : taskDetailInfo.TaskID;
try
{
bool pass = false;
using (var session = MiddleDBModelHelper.Session)
{
var result = session.QueryOver().Where(p => p.OrderID == taskDetailInfo.TaskID && p.OrderState != (int)WCSOrderState.Downloaded).List();
if (result.Count > 0)
{
Order order = result.First();
order.OrderState = (int)WCSOrderState.Downloaded;
order.Suspend = false;
session.Update(order);
session.Flush();
return false;
}
}
//int skcarrier = GlobalData.GetSKCarrier(taskDetailInfo.Carrier);
//TaskState taskState = new TaskState();
//taskState.taskid = tempOrderId;
//taskState.taskstate = (int)WCSOrderState.Downloaded;
//taskState.faultcode = 0;//
//taskState.agvid = skcarrier.ToString();
//taskState.updatetime = DateTime.Now.ToString("G");
//TaskStateResponse taskStateResponse = SKMESWebServiceHelper.UpdateTaskState(taskState);
//if (taskStateResponse.code == "0")
{
successed = true;
}
}
catch (Exception ex)
{
TextDocument.WriteFile(@"PMS/Log", "62002", string.Format("异常:{0}", ex.ToString()));
}
return successed;
}
}
}