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 出库订单列表视图 /// /// 出库订单列表视图 /// /// public ActionResult OutList() { return View(); } #endregion #region 出库订单新增编辑视图 /// /// 出库订单新增编辑视图 /// /// /// 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(); //新增 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(result); outMst = resultEntity.GetData(); 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(rejectHistory); var rejectList = rejectResult.GetData>(); //所有驳回记录 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 出库订单审核视图 /// /// 出库订单审核视图 /// /// public ActionResult Audit() { return View(); } #endregion #region 出库订单新增修改 /// /// 出库订单新增修改 /// /// [HttpPost] public string OutEdit() { var sr = new StreamReader(Request.InputStream); var stream = sr.ReadToEnd(); TN_WM_OUT_MSTEntity outMst = JsonConvert.DeserializeObject(stream); return HttpWMS_Post("api/Out/OutEdit", JsonConvert.SerializeObject(new { TokenId = ViewConstants.TokenId, PostData = outMst })); } #endregion #region 出库订单列表查询 /// /// 出库订单列表查询 /// /// /// /// 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(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 出库订单删除 /// /// 出库订单删除 /// /// /// public string DeleteOut(string opNo) { return HttpWMS_Get("api/Out/DeleteOut?opNo=" + opNo); } #endregion #region 出库订单提交 /// /// 出库订单提交 /// /// /// public string SubmitOut(string opNo) { return HttpWMS_Get("api/Out/SubmitOut?opNo=" + opNo); } #endregion #region 获取出库订单所有客户 /// /// 获取出库订单所有客户 /// /// public string GetDistinctCustom() { return HttpWMS_Get("api/Out/GetDistinctCustom"); } #endregion #region 出库订单子表数据 /// /// 出库订单子表数据 /// /// /// public string GetOutDtl(string opNo) { return HttpWMS_Get("api/Out/GetOutDtl?opNo=" + opNo); } #endregion #region 驳回 /// /// 驳回 /// /// /// public string Reject(TN_WM_B_REJECTEntity rejectEntity) { if (rejectEntity == null) return JsonConvert.SerializeObject(OperateResult.Error("参数不正确!")); var loginer = FormsAuth.GetUserData(); 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 审核 /// /// 审核 /// /// /// public string AuditOut(string opNo) { return HttpWMS_Get("api/Out/AuditOut?opNo=" + opNo); } #endregion #region 反审 /// /// 反审 /// /// /// public string ReAuditOut(string opNo) { return HttpWMS_Get("api/Out/ReAuditOut?opNo=" + opNo); } #endregion #region 合单 /// /// 合单 /// /// /// public string MergeOrder() { var sr = new StreamReader(Request.InputStream); var stream = sr.ReadToEnd(); List outMstList = JsonConvert.DeserializeObject>(stream); return HttpWMS_Post("api/Out/MergeOrder", JsonConvert.SerializeObject(new { TokenId = ViewConstants.TokenId, PostData = outMstList })); } #endregion #region 取消 /// /// 取消 /// /// /// public string CancelOut(string opNo) { return HttpWMS_Get("api/Out/CancelOut?opNo=" + opNo); } #endregion #region 获取物料可用量 /// /// 获取物料可用量 /// /// /// 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(); var TokenId = loginer.Extend1; var DynamicObject = JsonConvert.DeserializeObject(stream); dynamic formData = DynamicObject["formData"]; string[] date = new string[2]; if (!string.IsNullOrEmpty(Util.ToString(formData.valueDate))) date = JsonConvert.DeserializeObject(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(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); } } }