using Estsh.Core.Model.EnumUtil;
using Estsh.Core.Models;
using Estsh.Core.Quartz.BaseService;
using Estsh.Core.Util;
using Estsh.Core.Wms.IRepositories;
namespace Estsh.Core.Wms.Jobs
{
///
/// 大件物料拉动根据JIT信息自动产生 扫描拣选单JOB
///
public class JitPullJob : IJobService
{
private readonly IPullingRepository pullRepository;
private readonly IMoveOrderRepository moveOrderRepository;
public JitPullJob(IPullingRepository _pullGroupRepository,
IMoveOrderRepository _moveOrderRepository)
{
this.pullRepository = _pullGroupRepository;
this.moveOrderRepository = _moveOrderRepository;
}
public string ExecuteService(string parameter)
{
try
{
List mesWmsWorks = pullRepository.GetProductionQueueInfo();
if (mesWmsWorks.Count > 0)
{
pullRepository.InsertProductionQueueInfo(mesWmsWorks); //"待处理的JIT生产队列!";
}
List pullingGroups = pullRepository.GetPullingGroupList((int)WmsEnumUtil.PullGroupType.PRODUCT_JIT);
if (pullingGroups.Count <= 0)
{
return "没有维护JIT拉动组!";
}
List workOrders = pullRepository.GetPullingJitOrderList();
if (workOrders.Count <= 0)
{
return "没有待拉动的JIT数据!";
}
foreach (var pullingGroup in pullingGroups)
{
List moveDetails = pullRepository.GetPullingPickPartList(pullingGroup.GroupCode, (int)MesEnumUtil.WorkOrderType.PRODUCT_JIT);
if (moveDetails.Count <= 0)
{
continue;
}
moveOrderRepository.CreatePullPickOrder("0", moveDetails,pullingGroup);
}
return "生成拉动单成功!";
}
catch (Exception ex)
{
LogHelper.Error("生成拉动单错误!" + ex);
return "生成拉动单错误!" + ex.Message;
}
}
}
}