using HH.WMS.BLL;
using HH.WMS.BLL.Basic;
using HH.WMS.BLL.InStock;
using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Basic;
using HH.WMS.Entitys.Common;
using HH.WMS.WebApi.Areas.Common.Controllers;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace HH.WMS.WebApi.Areas.InStock.Controllers
{
public class HKInOrderController : BaseController
{
#region 新增工单
///
/// 新增工单
///
/// 工单实体
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
[HttpPost]
public OperateResult AddInOrder(TN_WM_WORK_ORDEREntity entity)
{
try
{
return ValidateToken(entity.TokenId, t =>
{
var item = BLLCreator.Create().GetItem(entity.CN_S_ITEM_CODE);
if (item != null)
{
decimal trayQty = Math.Ceiling(entity.CN_F_PLAN_QTY / item.CN_F_MIN_PACK_QTY);
entity.CN_F_PLAN_TRAY_QTY = trayQty;
}
OperateResult result = new OperateResult();
entity.CN_S_CREATOR = t.CN_S_LOGIN;
entity.CN_S_CREATOR_BY = t.CN_S_NAME;
entity.CN_T_CREATE = DateTime.Now;
entity.CN_S_MODIFY = t.CN_S_LOGIN;
entity.CN_S_MODIFY_BY = t.CN_S_NAME;
entity.CN_T_MODIFY = DateTime.Now;
int rowNo = 1;
result = BLLCreator.Create().AddInOrder(entity, t);
if (result.Success && (entity.OperateMessage == Constants.Operate_EditAndSubmit))
{
return SubmitInOrder(entity.CN_S_WO_NO);
}
return result;
});
}
catch (Exception ex)
{
return OperateResult.Error(ex.Message);
}
}
#endregion
#region 修改工单
///
/// 修改工单
///
/// 工单实体
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
[HttpPost]
public OperateResult UpdateInOrder(TN_WM_WORK_ORDEREntity entity)
{
try
{
return ValidateToken(entity.TokenId, t =>
{
OperateResult result = new OperateResult();
var existsInMst = BLLCreator.Create>().GetSingleEntity(new
{
CN_S_WO_NO = entity.CN_S_WO_NO
});
var item = BLLCreator.Create().GetItem(entity.CN_S_ITEM_CODE);
if (item != null)
{
decimal trayQty = Math.Ceiling(entity.CN_F_PLAN_QTY / item.CN_F_MIN_PACK_QTY);
entity.CN_F_PLAN_TRAY_QTY = trayQty;
}
entity.CN_T_CREATE = existsInMst.CN_T_CREATE;
entity.CN_S_CREATOR = existsInMst.CN_S_CREATOR;
entity.CN_S_CREATOR_BY = existsInMst.CN_S_CREATOR_BY;
//根据tokenId 获取当前登陆信息
entity.CN_S_MODIFY = t.CN_S_LOGIN;
entity.CN_S_MODIFY_BY = t.CN_S_NAME;
//修改
entity.CN_T_MODIFY = DateTime.Now;
result = BLLCreator.Create().UpdateInOrder(entity);
if (result.Success && (entity.OperateMessage == Constants.Operate_EditAndSubmit))
{
return SubmitInOrder(entity.CN_S_WO_NO);
}
return result;
});
}
catch (Exception ex)
{
return OperateResult.Error(ex.Message);
}
}
#endregion
#region 删除工单
///
/// 删除工单
///
/// 工单号
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
[HttpGet]
public OperateResult DeleteInOrder(string woNo)
{
try
{
return ValidateToken(t =>
{
return BLLCreator.Create().DeleteInOrder(woNo);
});
}
catch (Exception ex)
{
return OperateResult.Error(ex.Message);
}
}
#endregion
#region 提交工单
///
/// 提交工单
///
/// 单号
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
[HttpGet]
public OperateResult SubmitInOrder(String woNo)
{
try
{
return ValidateToken(t =>
{
return BLLCreator.Create(t).SubmitInOrder(woNo);
});
}
catch (Exception ex)
{
return OperateResult.Error(ex.Message);
}
}
#endregion
#region 工单强制完成
///
/// 工单强制完成
///
/// 单号
///
/// [HANHE(XDL)] CREATED BY 2019-02-20
[HttpGet]
public OperateResult CompleteInOrder(String woNo)
{
try
{
return ValidateToken(t =>
{
return BLLCreator.Create(t).CompleteInOrder(woNo);
});
}
catch (Exception ex)
{
return OperateResult.Error(ex.Message);
}
}
#endregion
#region 带出工单实体
///
/// 带出工单实体
///
///
///
///
public OperateResult ChangeInOperate(string opNo, Func funcIn)
{
try
{
if (string.IsNullOrEmpty(opNo))
return OperateResult.Error("工单号不可为空");
var inMst = BLLCreator.Create>().GetSingleEntity(new
{
CN_S_OP_NO = opNo
});
if (inMst == null)
return OperateResult.Error("未找到工单号:" + opNo);
return funcIn(inMst);
}
catch (Exception ex)
{
return OperateResult.Error(ex.Message);
}
}
#endregion
#region 查询数据集
///
/// 获取工单列表
///
/// 查询实体(页码,显示条数,条件等)
///
[HttpPost]
public string GetInOrderList(SearchModel searchModel)
{
return ValidateToken(searchModel.TokenId, t =>
{
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
OperateResult pagingList = BLLCreator.Create().GetInOrderList(searchModel);
return JsonConvert.SerializeObject(pagingList, timeFormat);
});
}
#endregion
#region 根据单号获取工单信息
///
/// 根据单号获取信息
///
/// 模糊查询条件:工单号
///
[HttpGet]
public string GetWorkOrderDetail(string woNo)
{
try
{
return ValidateToken(t =>
{
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
var workOrderEntity = BLLCreator.Create>().GetSingleEntity(new
{
CN_S_WO_NO = woNo
});
return JsonConvert.SerializeObject(workOrderEntity, timeFormat);
});
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
}
}
#endregion
}
}