using HH.AutoBom.Core;
|
using HH.WMS.Common;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Common;
|
using HH.WMS.WebUI.Controllers;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Web;
|
using System.Web.Mvc;
|
|
namespace HH.WMS.WebUI.Areas.OutStock.Controllers
|
{
|
public class OutController : BaseController
|
{
|
public ActionResult PrintOutFromOrder(string stockCode)
|
{
|
ViewData["stockCode"] = stockCode;
|
return View();
|
}
|
|
#region 出库订单列表视图
|
/// <summary>
|
/// 出库订单列表视图
|
/// </summary>
|
/// <returns></returns>
|
public ActionResult OutList()
|
{
|
return View();
|
}
|
#endregion
|
|
#region 出库订单新增编辑视图
|
/// <summary>
|
/// 出库订单新增编辑视图
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public ActionResult OutEdit(string opNo, bool read = false, bool audit = false)
|
{
|
TN_WM_OUT_MSTEntity outMst = new TN_WM_OUT_MSTEntity();
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
//新增
|
if (string.IsNullOrEmpty(opNo))
|
{
|
string postData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.Rule_OutOrder + "\",\"orgId\":\"0\",\"orgFlag\":\"\"}";
|
string orderNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
|
outMst.CN_S_OP_NO = orderNo;
|
outMst.CN_T_OP_DATE = DateTime.Now;
|
outMst.CN_S_OPERATOR = loginer.UserName;
|
outMst.CN_S_CREATOR = loginer.UserCode;
|
outMst.CN_S_CREATOR_BY = loginer.UserName;
|
outMst.CN_S_STATE = Constants.State_New;
|
//新增
|
outMst.OperateType = OperateType.Add;
|
}
|
else
|
{
|
//修改
|
string result = HttpWMS_Get("api/Out/GetOutMstAndDtl?opNo=" + opNo);
|
var resultEntity = JsonConvert.DeserializeObject<OperateResult>(result);
|
outMst = resultEntity.GetData<TN_WM_OUT_MSTEntity>();
|
if (outMst == null)
|
{
|
return View(new TN_WM_OUT_MSTEntity()
|
{
|
OperateMessage = "出库订单:" + opNo + "已被删除!"
|
});
|
}
|
//编辑
|
outMst.OperateType = OperateType.Edit;
|
//查看
|
if (read) outMst.OperateType = OperateType.Read;
|
//审核
|
if (audit)
|
{
|
outMst.OperateType = OperateType.Audit;
|
//获取驳回记录
|
string rejectHistory = HttpWMS_Get("api/Reject/GetRejectHistory?opNo=" + opNo);
|
var rejectResult = JsonConvert.DeserializeObject<OperateResult>(rejectHistory);
|
var rejectList = rejectResult.GetData<List<TN_WM_B_REJECTEntity>>();
|
//所有驳回记录
|
if (rejectList != null)
|
outMst.CN_S_HISTORY_REJECT = string.Join(";", rejectList.Select(p => p.CN_S_OPINION));
|
}
|
outMst.CN_S_MODIFY = loginer.UserName;
|
outMst.CN_S_MODIFY_BY = loginer.UserCode;
|
}
|
return View(outMst);
|
}
|
#endregion
|
|
#region 出库订单审核视图
|
/// <summary>
|
/// 出库订单审核视图
|
/// </summary>
|
/// <returns></returns>
|
public ActionResult Audit()
|
{
|
return View();
|
}
|
#endregion
|
|
#region 出库订单新增修改
|
/// <summary>
|
/// 出库订单新增修改
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public string OutEdit()
|
{
|
var sr = new StreamReader(Request.InputStream);
|
var stream = sr.ReadToEnd();
|
TN_WM_OUT_MSTEntity outMst = JsonConvert.DeserializeObject<TN_WM_OUT_MSTEntity>(stream);
|
return HttpWMS_Post("api/Out/OutEdit", JsonConvert.SerializeObject(new
|
{
|
TokenId = ViewConstants.TokenId,
|
PostData = outMst
|
}));
|
}
|
#endregion
|
|
#region 出库订单列表查询
|
/// <summary>
|
/// 出库订单列表查询
|
/// </summary>
|
/// <param name="pageIndex"></param>
|
/// <param name="pageSize"></param>
|
/// <returns></returns>
|
public string GetOutList(int pageIndex, int pageSize, string opNo, string logistics, string stockCode, string opType, string state, string customName, string waveNo, string valueDate)
|
{
|
string[] date = new string[2];
|
if (!string.IsNullOrEmpty(valueDate))
|
date = JsonConvert.DeserializeObject<string[]>(valueDate);
|
var searchModel = new
|
{
|
TokenId = ViewConstants.TokenId,
|
pageIndex = pageIndex,
|
pageSize = pageSize,
|
SearchCondition = new
|
{
|
CN_S_OP_NO = opNo,
|
CN_S_STATE = state,
|
CN_S_CUSTOMER_NAME = customName,
|
CN_S_WAVE_CODE = waveNo,
|
CN_S_LOGISTICS_NAME = logistics,
|
CN_S_STOCK_CODE = stockCode,
|
CN_S_OP_TYPE = opType,
|
CN_T_START = !string.IsNullOrEmpty(valueDate) ? date[0] : "",
|
CN_T_END = !string.IsNullOrEmpty(valueDate) ? date[1] : ""
|
}
|
};
|
return HttpWMS_Post("api/Out/GetOutList", JsonConvert.SerializeObject(searchModel));
|
}
|
#endregion
|
|
#region 出库订单删除
|
/// <summary>
|
/// 出库订单删除
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public string DeleteOut(string opNo)
|
{
|
return HttpWMS_Get("api/Out/DeleteOut?opNo=" + opNo);
|
}
|
#endregion
|
|
#region 出库订单提交
|
/// <summary>
|
/// 出库订单提交
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public string SubmitOut(string opNo)
|
{
|
return HttpWMS_Get("api/Out/SubmitOut?opNo=" + opNo);
|
}
|
#endregion
|
|
#region 获取出库订单所有客户
|
/// <summary>
|
/// 获取出库订单所有客户
|
/// </summary>
|
/// <returns></returns>
|
public string GetDistinctCustom()
|
{
|
return HttpWMS_Get("api/Out/GetDistinctCustom");
|
}
|
#endregion
|
|
#region 出库订单子表数据
|
/// <summary>
|
/// 出库订单子表数据
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public string GetOutDtl(string opNo)
|
{
|
return HttpWMS_Get("api/Out/GetOutDtl?opNo=" + opNo);
|
}
|
#endregion
|
|
#region 驳回
|
/// <summary>
|
/// 驳回
|
/// </summary>
|
/// <param name="param"></param>
|
/// <returns></returns>
|
public string Reject(TN_WM_B_REJECTEntity rejectEntity)
|
{
|
if (rejectEntity == null)
|
return JsonConvert.SerializeObject(OperateResult.Error("参数不正确!"));
|
var loginer = FormsAuth.GetUserData<LoginerBase>();
|
|
rejectEntity.CN_S_CREATOR = loginer.UserCode;
|
rejectEntity.CN_S_CREATOR_BY = loginer.UserName;
|
rejectEntity.CN_S_MODIFY = loginer.UserCode;
|
rejectEntity.CN_S_MODIFY_BY = loginer.UserName;
|
|
return HttpWMS_Post("api/Out/Reject", JsonConvert.SerializeObject(new
|
{
|
TokenId = ViewConstants.TokenId,
|
PostData = rejectEntity
|
}));
|
}
|
#endregion
|
|
#region 审核
|
/// <summary>
|
/// 审核
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public string AuditOut(string opNo)
|
{
|
return HttpWMS_Get("api/Out/AuditOut?opNo=" + opNo);
|
}
|
#endregion
|
|
#region 反审
|
/// <summary>
|
/// 反审
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public string ReAuditOut(string opNo)
|
{
|
return HttpWMS_Get("api/Out/ReAuditOut?opNo=" + opNo);
|
}
|
#endregion
|
|
#region 合单
|
/// <summary>
|
/// 合单
|
/// </summary>
|
/// <param name="outMstList"></param>
|
/// <returns></returns>
|
public string MergeOrder()
|
{
|
var sr = new StreamReader(Request.InputStream);
|
var stream = sr.ReadToEnd();
|
List<TN_WM_OUT_MSTEntity> outMstList = JsonConvert.DeserializeObject<List<TN_WM_OUT_MSTEntity>>(stream);
|
return HttpWMS_Post("api/Out/MergeOrder",
|
JsonConvert.SerializeObject(new
|
{
|
TokenId = ViewConstants.TokenId,
|
PostData = outMstList
|
}));
|
}
|
#endregion
|
|
#region 取消
|
/// <summary>
|
/// 取消
|
/// </summary>
|
/// <param name="opNo"></param>
|
/// <returns></returns>
|
public string CancelOut(string opNo)
|
{
|
return HttpWMS_Get("api/Out/CancelOut?opNo=" + opNo);
|
}
|
#endregion
|
|
#region 获取物料可用量
|
/// <summary>
|
/// 获取物料可用量
|
/// </summary>
|
/// <param name="itemCode"></param>
|
/// <returns></returns>
|
public string GetItemStockQty(string owner, string itemCode, string itemState)
|
{
|
return HttpWMS_Get("api/Out/GetItemStockQty?owner=" + owner + "&itemCode=" + itemCode + "&itemState=" + itemState);
|
}
|
#endregion
|
|
public string ExportOut()
|
{
|
//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[]>(formData.valueDate);
|
var searchModel = new
|
{
|
TokenId = ViewConstants.TokenId,
|
IsExport = true,
|
SearchCondition = new
|
{
|
CN_S_OP_NO = Util.ToString(formData.opNo),
|
CN_S_STATE = Util.ToString(formData.state),
|
CN_S_CUSTOMER_NAME = Util.ToString(formData.customName),
|
CN_S_LOGISTICS_NAME = Util.ToString(formData.logistics),
|
CN_S_STOCK_CODE = Util.ToString(formData.stockCode),
|
CN_S_OP_TYPE = Util.ToString(formData.opType),
|
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/Out/GetOutList", JsonConvert.SerializeObject(searchModel));
|
OperateResult or = JsonConvert.DeserializeObject<OperateResult>(result);
|
string s = ((dynamic)or.Data).rows.ToString();
|
|
var 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);
|
}
|
}
|
}
|