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.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 InOrderController : BaseController { // // GET: /Instock/InOrder/ public ActionResult InorderList() { return View(); } public ActionResult Audit() { return View(); } public ActionResult AuditItem(string opNo) { TN_WM_IN_MSTEntity inOrderMst = new TN_WM_IN_MSTEntity(); var loginer = FormsAuth.GetUserData(); string dataStr = HttpWMS_Get("api/InOrder/GetInOrderMstAndDtl?opNo=" + opNo); IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; var resultEntity = JsonConvert.DeserializeObject(dataStr, timeFormat); if (resultEntity != null && resultEntity.Success) { inOrderMst = resultEntity.GetData(); } inOrderMst.OperateType = OperateType.Read; //获取驳回记录 string rejectHistory = HttpWMS_Get("api/Reject/GetRejectHistory?opNo=" + opNo); var rejectResult = JsonConvert.DeserializeObject(rejectHistory); var rejectList = rejectResult.GetData>(); //所有驳回记录 if (rejectList != null) inOrderMst.CN_S_HISTORY_REJECT = string.Join(";", rejectList.Select(p => p.CN_S_OPINION)); inOrderMst.CN_S_MODIFY = loginer.UserName; inOrderMst.CN_S_MODIFY_BY = loginer.UserCode; return View(inOrderMst); } #region 入库订单维护 /// /// 入库订单维护(新增/修改) /// /// 入库单号 /// 是否只读(查看页面) /// public ActionResult InOrderEdit(string opNo, bool read = false) { TN_WM_IN_MSTEntity inMst = new TN_WM_IN_MSTEntity(); var loginer = FormsAuth.GetUserData(); //新增 if (string.IsNullOrEmpty(opNo)) { string postData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.Rule_InOrder + "\",\"orgId\":\"" + loginer.ParentOrgCode + "\",\"orgFlag\":\"" + loginer.OrgFlag + "\"}"; string addOpNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData); inMst.CN_S_OP_NO = addOpNo; inMst.CN_T_OP_DATE = DateTime.Now; inMst.CN_T_CREATE = DateTime.Now; inMst.CN_S_BUYER = loginer.UserName; inMst.CN_S_STATE = Constants.State_New; inMst.OperateType = OperateType.Add; } else { inMst.OperateType = OperateType.Edit; string dataStr = HttpWMS_Get("api/InOrder/GetInOrderMstAndDtl?opNo=" + opNo); IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; var resultEntity = JsonConvert.DeserializeObject(dataStr, timeFormat); if (resultEntity != null && resultEntity.Success) { inMst = JsonConvert.DeserializeObject(resultEntity.Data.ToString()); } inMst.OperateType = OperateType.Edit; if (read) inMst.OperateType = OperateType.Read; inMst.CN_S_MODIFY = loginer.UserName; inMst.CN_S_MODIFY_BY = loginer.UserCode; } return View(inMst); } #endregion #region 入库订单保存 /// /// 入库订单保存(新增、编辑) /// /// /// [HANHE(XDL)] CREATED BY 2019-02-20 public string SaveInOrder() { var sr = new StreamReader(Request.InputStream); var stream = sr.ReadToEnd(); TN_WM_IN_MSTEntity inmst = JsonConvert.DeserializeObject(stream); var loginer = FormsAuth.GetUserData(); inmst.TokenId = loginer.Extend1; inmst.CN_S_STATE = Constants.State_New; //新增 if (inmst.OperateType == OperateType.Add) { return HttpWMS_Post("api/InOrder/AddInOrder", JsonConvert.SerializeObject(inmst)); } else { return HttpWMS_Post("api/InOrder/UpdateInOrder", JsonConvert.SerializeObject(inmst)); } } #endregion #region 入库订单提交 /// /// 入库订单提交 /// /// 入库订单号 /// /// [HANHE(XDL)] CREATED BY 2018-02-20 public string InOrderSubmit(string opNo) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库订单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "submit", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName }); return HttpWMS_Post("api/InOrder/SubmitInOrder", JsonConvert.SerializeObject(entity)); } #endregion #region 入库订单删除 /// /// 入库订单删除 /// /// 入库订单号 /// /// [HANHE(XDL)] CREATED BY 2018-02-20 public string InOrderDelete(string opNo) { var loginer = FormsAuth.GetUserData(); var tokenId = loginer.Extend1; return HttpWMS_Get("api/InOrder/DeleteInOrder?opNo=" + opNo); } #endregion #region 入库订单审核 /// /// 入库订单审核 /// /// 入库订单号 /// 审核意见 /// /// [HANHE(XDL)] CREATED BY 2018-02-20 public string InOrderAudit(string opNo, string idea) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库订单", CN_S_FROM_NO = opNo, 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/InOrder/AuditInOrder", JsonConvert.SerializeObject(entity)); } #endregion #region 入库订单反审 /// /// 入库订单反审 /// /// 入库订单号 /// /// [HANHE(XDL)] CREATED BY 2018-02-20 public string InOrderReAudit(string opNo) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库订单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "reaudit", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName }); return HttpWMS_Post("api/InOrder/ReAuditInOrder", JsonConvert.SerializeObject(entity)); } #endregion #region 入库订单驳回 /// /// 入库订单驳回 /// /// 入库订单号 /// 驳回意见 /// /// [HANHE(XDL)] CREATED BY 2018-02-20 public string InOrderReject(string opNo, string idea) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库订单", CN_S_FROM_NO = opNo, 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/InOrder/RejectInOrder", JsonConvert.SerializeObject(entity)); } #endregion #region 入库订单导出 /// /// 导出 /// /// public string ExportInOrder() { //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(Util.ToString(formData.valueDate)); var searchModel = new { TokenId = loginer.Extend1, SearchCondition = new { CN_S_OP_NO = Util.ToString(formData.CN_S_OP_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/InOrder/GetInOrderListExport", JsonConvert.SerializeObject(searchModel)); OperateResult or = JsonConvert.DeserializeObject(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 #region 获取入库订单列表 /// /// 获取入库订单列表 /// /// 页码 /// 页显示数 /// 入库订单号 /// 状态 /// 业务类型 /// 供应商名称 /// /// [HANHE(XDL)] CREATED BY 2018-12-18 public string GetInOrderList(int pageIndex, int pageSize, string CN_S_OP_NO, string CN_S_STATE, string CN_S_OP_TYPE, string CN_S_VENDOR_NAME, string IsHandWork, string valueDate) { var loginer = FormsAuth.GetUserData(); var TokenId = loginer.Extend1;//TokenId string[] date = new string[2]; if (!string.IsNullOrEmpty(valueDate)) date = JsonConvert.DeserializeObject(valueDate); //查询条件 var SearchCondition = new { CN_S_OP_NO = CN_S_OP_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/InOrder/GetInOrderList", JsonConvert.SerializeObject(searchModel)); } #endregion #region 到货单联机新增-选择来源 /// /// 获取入库订单列表 /// /// 页码 /// 显示条数 /// 业务类型 /// /// [HANHE(XDL)] CREATED BY 2018-11-26 public string GetFromInOrderList(int pageIndex, int pageSize, string InOrderType) { var loginer = FormsAuth.GetUserData(); var TokenId = loginer.Extend1;//TokenId //查询条件 var SearchCondition = new { CN_S_OP_TYPE = InOrderType }; var searchModel = new { pageIndex = pageIndex, pageSize = pageSize, tokenId = TokenId }; return HttpWMS_Post("api/InOrder/GetFromInOrderList", JsonConvert.SerializeObject(searchModel)); } /// /// 根据单号获取明细 /// /// 单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-26 public string GetFromInOrderDtl(string InOrderNo) { string dataStr = HttpWMS_Get("api/InOrder/GetFromInOrderDtl?opNo=" + InOrderNo); return dataStr; } #endregion } }