using HH.Redis.ReisModel;
|
using HH.WMS.BLL;
|
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.Entitys.Entitys;
|
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 ArrivalController : BaseController
|
{
|
#region 新增到货单
|
/// <summary>
|
/// 新增到货单
|
/// </summary>
|
/// <param name="tokenId">token验证值</param>
|
/// <param name="Entity">到货单实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-13</History>
|
[HttpPost]
|
public OperateResult AddArrival(TN_WM_ARRIVAL_MSTEntity entity)
|
{
|
try
|
{
|
return ValidateToken(entity.TokenId, t =>
|
{
|
|
OperateResult result = new OperateResult();
|
|
entity.CN_S_ORGAN = t.CN_S_ORGCODE;
|
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;
|
entity.CN_S_OWNER = Constants.DefaultOwner;
|
|
entity.CN_GUID = Guid.NewGuid().ToString();
|
int rowNo = 1;
|
foreach (var arrivalDtl in entity.DTLEntity)
|
{
|
arrivalDtl.CN_GUID = Guid.NewGuid().ToString();
|
arrivalDtl.CN_N_ROW_NO = rowNo++;
|
arrivalDtl.CN_S_MSTGUID = entity.CN_GUID;
|
arrivalDtl.CN_S_ARRIVAL_NO = entity.CN_S_ARRIVAL_NO;
|
arrivalDtl.CN_S_STATE = entity.CN_S_STATE;
|
arrivalDtl.CN_S_ITEM_STATE = string.IsNullOrEmpty(arrivalDtl.CN_S_ITEM_STATE.ToString()) ? "合格" : arrivalDtl.CN_S_ITEM_STATE.ToString();
|
arrivalDtl.CN_F_PRINTING_QTY = 0;
|
arrivalDtl.CN_N_PALLETZING_QTY = 0;
|
arrivalDtl.CN_F_ADDUP_ALLOT_QTY = 0;
|
arrivalDtl.CN_F_INSTOCK_QUANTITY = arrivalDtl.CN_F_QUANTITY;
|
}
|
|
result = BLLCreator.Create<TN_WM_ARRIVALBLL>().AddArrival(entity, t);
|
|
if (result.Success && (entity.OperateMessage == Constants.Operate_EditAndSubmit))
|
{
|
List<TN_WM_B_EXAMINEEntity> examineList = new List<TN_WM_B_EXAMINEEntity>();
|
examineList.Add(new TN_WM_B_EXAMINEEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_EXAMINE_TYPE = Constants.State_Submit,
|
CN_S_OP_FROM = "到货单",
|
CN_S_FROM_NO = entity.CN_S_ARRIVAL_NO,
|
CN_S_CREATOR = t.CN_S_LOGIN,
|
CN_S_CREATOR_BY = t.CN_S_NAME,
|
CN_T_CREATE = DateTime.Now,
|
CN_S_OPINION = "",
|
TokenId = entity.TokenId
|
});
|
|
return SubmitArrival(examineList);
|
}
|
return result;
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 修改到货单
|
/// <summary>
|
/// 修改到货单
|
/// </summary>
|
/// <param name="tokenId">token验证值</param>
|
/// <param name="Entity">到货单实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
[HttpPost]
|
public OperateResult UpdateArrival(TN_WM_ARRIVAL_MSTEntity entity)
|
{
|
try
|
{
|
return ValidateToken(entity.TokenId, t =>
|
{
|
OperateResult result = new OperateResult();
|
|
var existsArrivalMst = BLLCreator.Create<DapperBLL<TN_WM_ARRIVAL_MSTEntity>>().GetSingleEntity(new
|
{
|
CN_S_ARRIVAL_NO = entity.CN_S_ARRIVAL_NO
|
});
|
|
entity.CN_GUID = existsArrivalMst.CN_GUID;
|
entity.CN_T_CREATE = existsArrivalMst.CN_T_CREATE;
|
entity.CN_S_CREATOR = existsArrivalMst.CN_S_CREATOR;
|
entity.CN_S_CREATOR_BY = existsArrivalMst.CN_S_CREATOR_BY;
|
|
//根据tokenId 获取当前登陆信息
|
entity.CN_S_ORGAN = t.CN_S_ORGCODE;
|
entity.CN_S_MODIFY = t.CN_S_LOGIN;
|
entity.CN_S_MODIFY_BY = t.CN_S_NAME;
|
entity.CN_S_OWNER = Constants.DefaultOwner;
|
//修改
|
entity.CN_T_MODIFY = DateTime.Now;
|
int rowNo = 1;
|
foreach (var inDtl in entity.DTLEntity)
|
{
|
inDtl.CN_GUID = Guid.NewGuid().ToString();
|
inDtl.CN_N_ROW_NO = rowNo++;
|
inDtl.CN_S_MSTGUID = entity.CN_GUID;
|
inDtl.CN_S_ARRIVAL_NO = entity.CN_S_ARRIVAL_NO;
|
//货主不能为空,暂时赋值
|
inDtl.CN_S_STATE = entity.CN_S_STATE;
|
inDtl.CN_S_ITEM_STATE = string.IsNullOrEmpty(inDtl.CN_S_ITEM_STATE.ToString()) ? "合格" : inDtl.CN_S_ITEM_STATE.ToString();
|
inDtl.CN_T_CREATE = DateTime.Now;
|
inDtl.CN_S_CREATOR = entity.CN_S_CREATOR;
|
inDtl.CN_S_CREATOR_BY = entity.CN_S_CREATOR_BY;
|
inDtl.CN_T_MODIFY = DateTime.Now;
|
inDtl.CN_S_MODIFY = entity.CN_S_MODIFY;
|
inDtl.CN_S_MODIFY_BY = entity.CN_S_MODIFY_BY;
|
}
|
result = BLLCreator.Create<TN_WM_ARRIVALBLL>().UpdateArrival(entity);
|
|
if (result.Success && (entity.OperateMessage == Constants.Operate_EditAndSubmit))
|
{
|
List<TN_WM_B_EXAMINEEntity> examineList = new List<TN_WM_B_EXAMINEEntity>();
|
examineList.Add(new TN_WM_B_EXAMINEEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_EXAMINE_TYPE = Constants.State_Submit,
|
CN_S_OP_FROM = "到货单",
|
CN_S_FROM_NO = entity.CN_S_ARRIVAL_NO,
|
CN_S_CREATOR = t.CN_S_LOGIN,
|
CN_S_CREATOR_BY = t.CN_S_NAME,
|
CN_T_CREATE = DateTime.Now,
|
CN_S_OPINION = "",
|
TokenId = entity.TokenId
|
});
|
|
return SubmitArrival(examineList);
|
}
|
return result;
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 删除到货单
|
/// <summary>
|
/// 删除到货单
|
/// </summary>
|
/// <param name="tokenId">token验证值</param>
|
/// <param name="opNo">到货单单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
[HttpGet]
|
public OperateResult DeleteArrival(string arrivalNo)
|
{
|
try
|
{
|
return ValidateToken(t =>
|
{
|
return BLLCreator.Create<TN_WM_ARRIVALBLL>().DeleteArrival(arrivalNo);
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 提交到货单
|
/// <summary>
|
/// 提交到货单
|
/// </summary>
|
/// <param name="tokenId">token验证值</param>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
[HttpPost]
|
public OperateResult SubmitArrival(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
try
|
{
|
return ValidateToken(entity[0].TokenId, t =>
|
{
|
return BLLCreator.Create<TN_WM_ARRIVALBLL>().SubmitArrival(entity, t);
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 审核到货单
|
/// <summary>
|
/// 审核到货单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
[HttpPost]
|
public OperateResult AuditArrival(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
try
|
{
|
return ValidateToken(entity[0].TokenId, t =>
|
{
|
return ChangeArrivalOperate(entity[0].CN_S_FROM_NO, outMst =>
|
{
|
if (outMst.CN_S_STATE != Constants.State_Submit && outMst.CN_S_STATE != Constants.State_ReAudit)
|
{
|
return OperateResult.Error("该单据状态已被修改,请刷新页面");
|
}
|
return BLLCreator.Create<TN_WM_ARRIVALBLL>().AuditArrival(entity, t);
|
});
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 反审到货单
|
/// <summary>
|
/// 反审到货单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
[HttpPost]
|
public OperateResult ReAuditArrival(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
try
|
{
|
return ValidateToken(entity[0].TokenId, t =>
|
{
|
return ChangeArrivalOperate(entity[0].CN_S_FROM_NO, outMst =>
|
{
|
//反审时状态必须为 已审核
|
if (outMst.CN_S_STATE != Constants.State_Audit)
|
{
|
return OperateResult.Error("该单据状态已被修改,请刷新页面");
|
}
|
return BLLCreator.Create<TN_WM_ARRIVALBLL>().ReAuditArrival(entity);
|
});
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 驳回到货单
|
/// <summary>
|
/// 驳回到货单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
[HttpPost]
|
public OperateResult RejectArrival(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
try
|
{
|
return ValidateToken(entity[0].TokenId, t =>
|
{
|
return ChangeArrivalOperate(entity[0].CN_S_FROM_NO, outMst =>
|
{
|
string rejectMsg = Util.ToString(entity[0].CN_S_OPINION);
|
if (string.IsNullOrEmpty(rejectMsg))
|
return OperateResult.Error("驳回意见不可为空");
|
//驳回时状态必须为 已提交
|
if (outMst.CN_S_STATE != Constants.State_Submit && outMst.CN_S_STATE != Constants.State_ReAudit)
|
{
|
return OperateResult.Error("该单据状态已被修改,请刷新页面");
|
} //驳回实体
|
TN_WM_B_REJECTEntity rejectEntity = new TN_WM_B_REJECTEntity()
|
{
|
CN_GUID = Guid.NewGuid().ToString(),
|
CN_S_OP_FROM = Constants.Rule_OutOrder,
|
CN_S_FROM_NO = entity[0].CN_S_FROM_NO,
|
CN_S_OPINION = rejectMsg,
|
CN_S_CREATOR = Util.ToString(entity[0].CN_S_CREATOR),
|
CN_S_CREATOR_BY = Util.ToString(entity[0].CN_S_CREATOR_BY),
|
CN_T_CREATE = DateTime.Now,
|
CN_S_MODIFY = Util.ToString(entity[0].CN_S_CREATOR),
|
CN_S_MODIFY_BY = Util.ToString(entity[0].CN_S_CREATOR_BY),
|
CN_T_MODIFY = DateTime.Now
|
};
|
return BLLCreator.Create<TN_WM_ARRIVALBLL>().RejectArrival(entity, rejectEntity);
|
});
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 查询数据集
|
/// <summary>
|
/// 获取到货单列表
|
/// </summary>
|
/// <param name="searchModel">查询实体(页码,显示条数,条件等)</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
[HttpPost]
|
public string GetArrivalList(SearchModel searchModel)
|
{
|
return ValidateToken(searchModel.TokenId, t =>
|
{
|
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
|
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
|
//OperateResult pagingList = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetArrivalList(searchModel);
|
//return JsonConvert.SerializeObject(pagingList, timeFormat);
|
|
|
long total;
|
DataTable dt = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetArrivalList(searchModel, out total, false);
|
|
OperateResult pagingList = OperateResult.Succeed("", new
|
{
|
rows = dt,
|
total = total
|
});
|
return JsonConvert.SerializeObject(pagingList, timeFormat);
|
});
|
}
|
|
/// <summary>
|
/// 导出
|
/// </summary>
|
/// <param name="searchModel"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public string GetArrivalListExport(SearchModel searchModel)
|
{
|
return ValidateToken(searchModel.TokenId, t =>
|
{
|
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
|
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
|
//OperateResult pagingList = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetArrivalList(searchModel);
|
//return JsonConvert.SerializeObject(pagingList, timeFormat);
|
|
|
long total;
|
DataTable dt = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetArrivalList(searchModel, out total, true);
|
|
OperateResult pagingList = OperateResult.Succeed("", new
|
{
|
rows = dt,
|
total = total
|
});
|
return JsonConvert.SerializeObject(pagingList, timeFormat);
|
});
|
}
|
|
/// <summary>
|
/// 根据单号获取主子表信息
|
/// </summary>
|
/// <param name="arrivalNo">模糊查询条件:到货单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-19</History>
|
[HttpGet]
|
public string GetArrivalMstAndDtl(string arrivalNo)
|
{
|
try
|
{
|
return ValidateToken(t =>
|
{
|
TN_WM_ARRIVAL_MSTEntity arrivalMstEntity = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetArrivalMstAndDtl(arrivalNo);
|
return JsonConvert.SerializeObject(OperateResult.Succeed("", arrivalMstEntity));
|
});
|
}
|
catch (Exception ex)
|
{
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
|
#endregion
|
|
#region 带出到货单实体
|
/// <summary>
|
/// 带出入库单实体
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <param name="funcOut"></param>
|
/// <returns></returns>
|
public OperateResult ChangeArrivalOperate(string arrivalNo, Func<TN_WM_ARRIVAL_MSTEntity, OperateResult> funcArrival)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(arrivalNo))
|
return OperateResult.Error("到货单号不可为空");
|
var arrivalMst = BLLCreator.Create<DapperBLL<TN_WM_ARRIVAL_MSTEntity>>().GetSingleEntity(new { CN_S_ARRIVAL_NO = arrivalNo });
|
if (arrivalMst == null)
|
return OperateResult.Error("未找到到货单号:" + arrivalNo);
|
return funcArrival(arrivalMst);
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 入库单联机新增-选择来源
|
/// <summary>
|
/// 入库单页面,选择来源单据
|
/// </summary>
|
/// <param name="searchModel">实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-22</History>
|
[HttpPost]
|
public string GetFromArrivalList(SearchModel searchModel)
|
{
|
return ValidateToken(searchModel.TokenId, t =>
|
{
|
OperateResult pagingList = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetFromArrivalList(searchModel);
|
return JsonConvert.SerializeObject(pagingList);
|
});
|
}
|
|
[HttpGet]
|
public string GetFromArrivalDtl(string arrivalNo)
|
{
|
return ValidateToken(t =>
|
{
|
List<TN_WM_ARRIVAL_DTLEntity> arrivalDtl = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetFromArrivalDtl(arrivalNo);
|
return JsonConvert.SerializeObject(arrivalDtl);
|
});
|
}
|
#endregion
|
|
#region 查询到货单主表
|
/// <summary>
|
/// 查询到货单主表
|
/// </summary>
|
/// <returns></returns>
|
/// <History> [HANHE(lt)] CREATED BY 2018-11-24</History>
|
public string GetMstList(string opNo)
|
{
|
try
|
{
|
string sqlwhere = "";
|
if (!string.IsNullOrEmpty(opNo))
|
{
|
sqlwhere = " where CN_S_ARRIVAL_NO like '%" + opNo + "%'";
|
}
|
DataTable dt = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetMstList(sqlwhere);
|
return JsonConvert.SerializeObject(OperateResult.Succeed("", dt));
|
}
|
catch (Exception ex)
|
{
|
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
|
#region 查询到货单子表
|
/// <summary>
|
/// 查询到货单子表
|
/// </summary>
|
/// <returns></returns>
|
/// <History> [HANHE(lt)] CREATED BY 2018-11-24</History>
|
public string GetDtlList(string opNo)
|
{
|
try
|
{
|
string sqlwhere = "";
|
if (!string.IsNullOrEmpty(opNo))
|
{
|
sqlwhere = " where CN_S_ARRIVAL_NO='" + opNo + "'";
|
}
|
DataTable dt = BLLCreator.Create<TN_WM_ARRIVALBLL>().GetDtlList(sqlwhere);
|
return JsonConvert.SerializeObject(OperateResult.Succeed("", dt));
|
}
|
catch (Exception ex)
|
{
|
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
}
|
}
|