using HH.AutoBom.Core;
|
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.WebUI.Controllers;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Converters;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
using System.Web;
|
using System.Web.Mvc;
|
|
namespace HH.WMS.WebUI.Areas.Instock.Controllers
|
{
|
public class ArrivalController : BaseController
|
{
|
//
|
// GET: /Instock/Arrival/
|
|
public ActionResult Index()
|
{
|
return View();
|
}
|
|
public ActionResult ArrivalList()
|
{
|
return View();
|
}
|
|
public ActionResult Audit()
|
{
|
return View();
|
}
|
public ActionResult AuditItem(string arrivalNo)
|
{
|
TN_WM_ARRIVAL_MSTEntity arrivalMst = new TN_WM_ARRIVAL_MSTEntity();
|
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
string dataStr = HttpWMS_Get("api/Arrival/GetArrivalMstAndDtl?arrivalNo=" + arrivalNo);
|
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
|
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
var resultEntity = JsonConvert.DeserializeObject<OperateResult>(dataStr, timeFormat);
|
if (resultEntity != null && resultEntity.Success)
|
{
|
arrivalMst = resultEntity.GetData<TN_WM_ARRIVAL_MSTEntity>();
|
}
|
arrivalMst.OperateType = OperateType.Read;
|
|
//获取驳回记录
|
string rejectHistory = HttpWMS_Get("api/Reject/GetRejectHistory?opNo=" + arrivalNo);
|
var rejectResult = JsonConvert.DeserializeObject<OperateResult>(rejectHistory);
|
var rejectList = rejectResult.GetData<List<TN_WM_B_REJECTEntity>>();
|
//所有驳回记录
|
if (rejectList != null)
|
arrivalMst.CN_S_HISTORY_REJECT = string.Join(";", rejectList.Select(p => p.CN_S_OPINION));
|
arrivalMst.CN_S_MODIFY = loginer.UserName;
|
arrivalMst.CN_S_MODIFY_BY = loginer.UserCode;
|
|
return View(arrivalMst);
|
}
|
/// <summary>
|
/// 到货单编辑页面加载
|
/// </summary>
|
/// <param name="arrivalNo">到货单号</param>
|
/// <param name="read">是否查看页面</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public ActionResult ArrivalEdit(string arrivalNo, bool read = false)
|
{
|
TN_WM_ARRIVAL_MSTEntity arrivalMst = new TN_WM_ARRIVAL_MSTEntity();
|
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
//新增
|
if (string.IsNullOrEmpty(arrivalNo))
|
{
|
string postData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.Rule_Arrival + "\",\"orgId\":\"" + loginer.ParentOrgCode + "\",\"orgFlag\":\"" + loginer.OrgFlag + "\"}";
|
string addOpNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
|
arrivalMst.CN_S_ARRIVAL_NO = addOpNo;
|
|
string postLotData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.BatchNo + "\",\"orgId\":\"" + loginer.ParentOrgCode + "\",\"orgFlag\":\"" + loginer.OrgFlag + "\"}";
|
string addLotNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postLotData);
|
arrivalMst.CN_S_LOT_CODE = addLotNo;
|
|
arrivalMst.CN_T_DATE = DateTime.Now;
|
arrivalMst.CN_T_CREATE = DateTime.Now;
|
arrivalMst.CN_S_OPERATOR = loginer.UserName;
|
arrivalMst.CN_S_STATE = Constants.State_New;
|
arrivalMst.OperateType = OperateType.Add;
|
}
|
else
|
{
|
arrivalMst.OperateType = OperateType.Edit;
|
string dataStr = HttpWMS_Get("api/Arrival/GetArrivalMstAndDtl?arrivalNo=" + arrivalNo);
|
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
|
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
var resultEntity = JsonConvert.DeserializeObject<OperateResult>(dataStr, timeFormat);
|
if (resultEntity != null && resultEntity.Success)
|
{
|
arrivalMst = JsonConvert.DeserializeObject<TN_WM_ARRIVAL_MSTEntity>(resultEntity.Data.ToString());
|
}
|
arrivalMst.OperateType = OperateType.Edit;
|
if (read) arrivalMst.OperateType = OperateType.Read;
|
arrivalMst.CN_S_MODIFY = loginer.UserName;
|
arrivalMst.CN_S_MODIFY_BY = loginer.UserCode;
|
}
|
return View(arrivalMst);
|
}
|
|
|
#region 到货单保存(新增、编辑)
|
/// <summary>
|
/// 到货单保存(新增、编辑)
|
/// </summary>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string SaveArrival()
|
{
|
var sr = new StreamReader(Request.InputStream);
|
var stream = sr.ReadToEnd();
|
TN_WM_ARRIVAL_MSTEntity arrivalmst = JsonConvert.DeserializeObject<TN_WM_ARRIVAL_MSTEntity>(stream);
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
arrivalmst.TokenId = loginer.Extend1;
|
|
arrivalmst.CN_S_STATE = Constants.State_New;
|
//新增
|
if (arrivalmst.OperateType == OperateType.Add)
|
{
|
|
return HttpWMS_Post("api/Arrival/AddArrival", JsonConvert.SerializeObject(arrivalmst));
|
}
|
else
|
{
|
return HttpWMS_Post("api/Arrival/UpdateArrival", JsonConvert.SerializeObject(arrivalmst));
|
}
|
|
}
|
#endregion
|
|
#region 到货单提交
|
/// <summary>
|
/// 到货单提交
|
/// </summary>
|
/// <param name="opNo">到货单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string ArrivalSubmit(string arrivalNo)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
List<TN_WM_B_EXAMINEEntity> entity = new List<TN_WM_B_EXAMINEEntity>();
|
entity.Add(new TN_WM_B_EXAMINEEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_OP_FROM = "到货单",
|
CN_S_FROM_NO = arrivalNo,
|
CN_S_EXAMINE_TYPE = "submit",
|
TokenId = loginer.Extend1,
|
CN_S_CREATOR = loginer.UserCode,
|
CN_S_CREATOR_BY = loginer.UserName
|
});
|
|
return HttpWMS_Post("api/Arrival/SubmitArrival", JsonConvert.SerializeObject(entity));
|
}
|
#endregion
|
|
#region 到货单审核
|
/// <summary>
|
/// 到货单审核
|
/// </summary>
|
/// <param name="arrivalNo">到货单号</param>
|
/// <param name="idea">审核意见</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string ArrivalAudit(string arrivalNo, string idea)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
List<TN_WM_B_EXAMINEEntity> entity = new List<TN_WM_B_EXAMINEEntity>();
|
entity.Add(new TN_WM_B_EXAMINEEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_OP_FROM = "到货单",
|
CN_S_FROM_NO = arrivalNo,
|
CN_S_EXAMINE_TYPE = "audit",
|
TokenId = loginer.Extend1,
|
CN_S_CREATOR = loginer.UserCode,
|
CN_S_CREATOR_BY = loginer.UserName,
|
CN_S_OPINION = idea
|
});
|
|
return HttpWMS_Post("api/Arrival/AuditArrival", JsonConvert.SerializeObject(entity));
|
}
|
#endregion
|
|
#region 到货单反审
|
/// <summary>
|
/// 到货单反审
|
/// </summary>
|
/// <param name="arrivalNo">到货单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string ArrivalReAudit(string arrivalNo)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
List<TN_WM_B_EXAMINEEntity> entity = new List<TN_WM_B_EXAMINEEntity>();
|
entity.Add(new TN_WM_B_EXAMINEEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_OP_FROM = "到货单",
|
CN_S_FROM_NO = arrivalNo,
|
CN_S_EXAMINE_TYPE = "reaudit",
|
TokenId = loginer.Extend1,
|
CN_S_CREATOR = loginer.UserCode,
|
CN_S_CREATOR_BY = loginer.UserName
|
});
|
|
return HttpWMS_Post("api/Arrival/ReAuditArrival", JsonConvert.SerializeObject(entity));
|
}
|
#endregion
|
|
#region 到货单驳回
|
/// <summary>
|
/// 到货单驳回
|
/// </summary>
|
/// <param name="arrivalNo">到货单号</param>
|
/// <param name="idea">驳回意见</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string ArrivalReject(string arrivalNo, string idea)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
List<TN_WM_B_EXAMINEEntity> entity = new List<TN_WM_B_EXAMINEEntity>();
|
entity.Add(new TN_WM_B_EXAMINEEntity()
|
{
|
CN_GUID = System.Guid.NewGuid().ToString().ToUpper(),
|
CN_S_OP_FROM = "到货单",
|
CN_S_FROM_NO = arrivalNo,
|
CN_S_EXAMINE_TYPE = "reject",
|
TokenId = loginer.Extend1,
|
CN_S_CREATOR = loginer.UserCode,
|
CN_S_CREATOR_BY = loginer.UserName,
|
CN_S_OPINION = idea
|
});
|
|
return HttpWMS_Post("api/Arrival/RejectArrival", JsonConvert.SerializeObject(entity));
|
}
|
#endregion
|
|
#region 到货单删除
|
/// <summary>
|
/// 到货单删除
|
/// </summary>
|
/// <param name="opNo">入库单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-21</History>
|
public string ArrivalDelete(string arrivalNo)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
var tokenId = loginer.Extend1;
|
return HttpWMS_Get("api/Arrival/DeleteArrival?arrivalNo=" + arrivalNo);
|
}
|
#endregion
|
|
|
#region 获取到货单列表
|
/// <summary>
|
/// 获取到货单列表
|
/// </summary>
|
/// <param name="pageIndex">页码</param>
|
/// <param name="pageSize">页显示数</param>
|
/// <param name="CN_S_OP_NO">到货单号</param>
|
/// <param name="CN_S_STATE">状态</param>
|
/// <param name="CN_S_OP_TYPE">业务类型</param>
|
/// <param name="CN_S_VENDOR_NAME">供应商名称</param>
|
/// <param name="valueDate">创建日期</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string GetArrivalList(int pageIndex, int pageSize, string CN_S_ARRIVAL_NO, string CN_S_STATE, string CN_S_OP_TYPE, string CN_S_VENDOR_NAME, string IsHandWork, string valueDate)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
var TokenId = loginer.Extend1;//TokenId
|
|
string[] date = new string[2];
|
if (!string.IsNullOrEmpty(valueDate))
|
date = JsonConvert.DeserializeObject<string[]>(valueDate);
|
|
//查询条件
|
var SearchCondition = new
|
{
|
CN_S_ARRIVAL_NO = CN_S_ARRIVAL_NO,
|
CN_S_STATE = CN_S_STATE,
|
CN_S_OP_TYPE = CN_S_OP_TYPE,
|
CN_S_VENDOR_NAME = CN_S_VENDOR_NAME,
|
IsHandWork = IsHandWork,
|
CN_T_START = !string.IsNullOrEmpty(valueDate) ? date[0] : "",
|
CN_T_END = !string.IsNullOrEmpty(valueDate) ? date[1] : ""
|
};
|
var searchModel = new
|
{
|
pageIndex = pageIndex,
|
pageSize = pageSize,
|
tokenId = TokenId,
|
SearchCondition = SearchCondition
|
};
|
return HttpWMS_Post("api/Arrival/GetArrivalList", JsonConvert.SerializeObject(searchModel));
|
}
|
#endregion
|
|
#region 入库单联机新增-选择来源
|
/// <summary>
|
/// 获取到货单列表
|
/// </summary>
|
/// <param name="pageIndex">页码</param>
|
/// <param name="pageSize">显示条数</param>
|
/// <param name="opType">业务类型</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string GetFromArrivalList(int pageIndex, int pageSize, string arrivalType)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
var TokenId = loginer.Extend1;//TokenId
|
//查询条件
|
var SearchCondition = new
|
{
|
CN_S_OP_TYPE = arrivalType
|
};
|
var searchModel = new
|
{
|
pageIndex = pageIndex,
|
pageSize = pageSize,
|
tokenId = TokenId
|
};
|
return HttpWMS_Post("api/Arrival/GetFromArrivalList", JsonConvert.SerializeObject(searchModel));
|
}
|
|
/// <summary>
|
/// 根据单号获取明细
|
/// </summary>
|
/// <param name="arrivalNo">单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-24</History>
|
public string GetFromArrivalDtl(string arrivalNo)
|
{
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
string dataStr =HttpWMS_Get("api/Arrival/GetFromArrivalDtl?arrivalNo=" + arrivalNo);
|
|
return dataStr;
|
}
|
#endregion
|
|
|
|
#region 导出
|
/// <summary>
|
/// 导出到货单
|
/// </summary>
|
/// <returns></returns>
|
public string ExportArrival()
|
{
|
//XML文件流
|
var sr = new System.IO.StreamReader(Request.InputStream);
|
var stream = sr.ReadToEnd();
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
var TokenId = loginer.Extend1;
|
var DynamicObject = JsonConvert.DeserializeObject<dynamic>(stream);
|
dynamic formData = DynamicObject["formData"];
|
|
string[] date = new string[2];
|
if (!string.IsNullOrEmpty(Util.ToString(formData.valueDate)))
|
date = JsonConvert.DeserializeObject<string[]>(Util.ToString(formData.valueDate));
|
|
var searchModel = new
|
{
|
TokenId = loginer.Extend1,
|
SearchCondition = new
|
{
|
CN_S_ARRIVAL_NO = Util.ToString(formData.CN_S_ARRIVAL_NO),
|
CN_S_STATE = Util.ToString(formData.CN_S_STATE),
|
CN_S_OP_TYPE =Util.ToString(formData. CN_S_OP_TYPE),
|
CN_S_VENDOR_NAME = Util.ToString(formData.CN_S_VENDOR_NAME),
|
IsHandWork = Util.ToString(formData.IsHandWork),
|
CN_T_START = !string.IsNullOrEmpty(Util.ToString(formData.valueDate)) ? date[0] : "",
|
CN_T_END = !string.IsNullOrEmpty(Util.ToString(formData.valueDate)) ? date[1] : ""
|
}
|
};
|
string result = HttpWMS_Post("api/Arrival/GetArrivalListExport", JsonConvert.SerializeObject(searchModel));
|
OperateResult or = JsonConvert.DeserializeObject<OperateResult>(result);
|
|
string s = ((dynamic)or.Data).rows.ToString();
|
|
DataTable dt = HH.WMS.Utils.ZConvert.ToDataTableTwo(s);
|
|
dynamic columns = DynamicObject["columns"];
|
string title = "到货单列表";
|
|
string fileName = title + "_" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".xls";
|
or = ExcelHelper.SaveTemp(columns, title, dt, fileName);
|
if (or.Status == ResultStatus.Success)
|
return JsonConvert.SerializeObject(OperateResult.Succeed("", new { fileName = fileName }));
|
else
|
return JsonConvert.SerializeObject(or);
|
}
|
#endregion
|
}
|
}
|