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(); 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(dataStr, timeFormat); if (resultEntity != null && resultEntity.Success) { arrivalMst = resultEntity.GetData(); } arrivalMst.OperateType = OperateType.Read; //获取驳回记录 string rejectHistory = HttpWMS_Get("api/Reject/GetRejectHistory?opNo=" + arrivalNo); var rejectResult = JsonConvert.DeserializeObject(rejectHistory); var rejectList = rejectResult.GetData>(); //所有驳回记录 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); } /// /// 到货单编辑页面加载 /// /// 到货单号 /// 是否查看页面 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public ActionResult ArrivalEdit(string arrivalNo, bool read = false) { TN_WM_ARRIVAL_MSTEntity arrivalMst = new TN_WM_ARRIVAL_MSTEntity(); var loginer = FormsAuth.GetUserData(); //新增 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(dataStr, timeFormat); if (resultEntity != null && resultEntity.Success) { arrivalMst = JsonConvert.DeserializeObject(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 到货单保存(新增、编辑) /// /// 到货单保存(新增、编辑) /// /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string SaveArrival() { var sr = new StreamReader(Request.InputStream); var stream = sr.ReadToEnd(); TN_WM_ARRIVAL_MSTEntity arrivalmst = JsonConvert.DeserializeObject(stream); var loginer = FormsAuth.GetUserData(); 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 到货单提交 /// /// 到货单提交 /// /// 到货单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string ArrivalSubmit(string arrivalNo) { 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 = 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 到货单审核 /// /// 到货单审核 /// /// 到货单号 /// 审核意见 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string ArrivalAudit(string arrivalNo, 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 = 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 到货单反审 /// /// 到货单反审 /// /// 到货单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string ArrivalReAudit(string arrivalNo) { 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 = 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 到货单驳回 /// /// 到货单驳回 /// /// 到货单号 /// 驳回意见 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string ArrivalReject(string arrivalNo, 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 = 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 到货单删除 /// /// 到货单删除 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-21 public string ArrivalDelete(string arrivalNo) { var loginer = FormsAuth.GetUserData(); var tokenId = loginer.Extend1; return HttpWMS_Get("api/Arrival/DeleteArrival?arrivalNo=" + arrivalNo); } #endregion #region 获取到货单列表 /// /// 获取到货单列表 /// /// 页码 /// 页显示数 /// 到货单号 /// 状态 /// 业务类型 /// 供应商名称 /// 创建日期 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 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(); var TokenId = loginer.Extend1;//TokenId string[] date = new string[2]; if (!string.IsNullOrEmpty(valueDate)) date = JsonConvert.DeserializeObject(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 入库单联机新增-选择来源 /// /// 获取到货单列表 /// /// 页码 /// 显示条数 /// 业务类型 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string GetFromArrivalList(int pageIndex, int pageSize, string arrivalType) { var loginer = FormsAuth.GetUserData(); 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)); } /// /// 根据单号获取明细 /// /// 单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public string GetFromArrivalDtl(string arrivalNo) { var loginer = FormsAuth.GetUserData(); string dataStr =HttpWMS_Get("api/Arrival/GetFromArrivalDtl?arrivalNo=" + arrivalNo); return dataStr; } #endregion #region 导出 /// /// 导出到货单 /// /// public string ExportArrival() { //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_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(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 } }