using BLL; using Common; using Model; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using System.Web.Script.Serialization; using Json; using Lib; namespace WMS.Areas.Business.Controllers { public class ErpOutAjaxController : AjaxPage { // GET: Business/ErpOutAjax public ActionResult GetErpOutList() { try { var dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { PageInfo pageInfo = new PageInfo() { PageIndex = models.pageIndex, PageSize = models.pageSize }; DALErpOut provider = new DALErpOut(); models.DepartGuid = this.LoginDepartNum; List entity = provider.GetList(models, ref pageInfo).ToList(); string json = JsonHelper.IListToJson(entity, "List"); string pjson = ConvertJson.Serializer(pageInfo); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("PageInfo", new JsonObject(pjson)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult Init() { try { Session["SEL_ERPOUT_LIST"] = null; List list = new List(); string json = JsonHelper.IListToJson(list, "List"); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); return Content(this.ReturnJson.ToString()); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult GetMatNo() { try { var aaa = Request["aaa"]; var models = new JavaScriptSerializer().Deserialize(aaa); if (models != null) { PageInfo pageInfo = new PageInfo() { PageIndex = models.pageIndex, PageSize = models.pageSize }; models.DepartGuid = this.LoginDepartNum; IDALPurchaseDetail detail = new DALPurchaseDetail(); List entity = detail.GetList(models, ref pageInfo).ToList(); string json = JsonHelper.ObjectToJson(entity, "Mat"); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "查询成功!"); return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult GetMatNos() { try { if (Session["SEL_ERPOUT_LIST"] == null) { return Content(null); } List matList = Session["SEL_ERPOUT_LIST"] as List; string json = JsonHelper.IListToJson(matList, "List"); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); return Content(this.ReturnJson.ToString()); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult SelMatNos() { try { var storeGuid = Request["aaa"]; if (!string.IsNullOrEmpty(storeGuid)) { List matList = new List(); // 判断缓存内是否包含此物料 if (Session["SEL_ERPOUT_LIST"] != null) { matList = Session["SEL_ERPOUT_LIST"] as List; foreach (ErpOutDetail details in matList) { if (details.StoreGuid == storeGuid) { return Content(null); } } } else { Session["SEL_ERPOUT_LIST"] = new List(); } // 将物料编码添加到Session中 DALErpOut provider = new DALErpOut(); SelMatList matModel = provider.GetLogStore(storeGuid); ErpOutDetail newDetail = new ErpOutDetail { MatGuid = matModel.MatGuid, StoreGuid = matModel.StoreGuid, LocationCode = matModel.LocationCode, MatNo = matModel.MatNo, MatName = matModel.MatName, Unit = matModel.Unit, MayType = matModel.MatType, CurQuant = (matModel.Quant - matModel.CQuant).ToString(), LingNo = matModel.LingNo, TuNo = matModel.TuNo, PageNo = matModel.PageNo, Certificate = matModel.Certificate, BatchNo = matModel.BatchNo, BatchDemo = matModel.BatchName, DepartGuid = matModel.DepartGuid }; matList.Add(newDetail); Session["SEL_ERPOUT_LIST"] = matList; string json = JsonHelper.IListToJson(matList, "List"); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult IsCheckMatNum() { try { var dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { DALErpOut provider = new DALErpOut(); if (provider.IsCheckMatNum(models.StoreGuid, models.CurQuant, models.Guid)) { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "出库数量验证成功!"); return Content(this.ReturnJson.ToString()); } } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult AddMat() { try { var dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { if (Session["SEL_ERPOUT_LIST"] == null) { Session["SEL_ERPOUT_LIST"] = new List(); } List list = Session["SEL_ERPOUT_LIST"] as List; if (!list.IsEmpty()) { foreach (ErpOutDetail detail in list) { if (detail.StoreGuid == models.StoreGuid) { detail.CurQuant = models.CurQuant; detail.PickerUser = models.PickerUser; detail.DetailDemo = models.DetailDemo; break; } } } Session["SEL_ERPOUT_LIST"] = list; string json1 = JsonHelper.IListToJson(list, "List"); ReturnJson.AddProperty("Result", new JsonObject(json1)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult DelProduct() { try { var dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); if (!string.IsNullOrEmpty(models.StoreGuid)) { List listMat = Session["SEL_ERPOUT_LIST"] as List; for (int i = listMat.Count - 1; i >= 0; i--) { if (listMat[i].StoreGuid == models.StoreGuid) { if (!string.IsNullOrEmpty(listMat[i].Guid)) { DALErpOut dALErpOut = new DALErpOut(); dALErpOut.DelOrdDetail(listMat[i].Guid, listMat[i].StoreGuid); } listMat.Remove(listMat[i]); } } Session["SEL_ERPOUT_LIST"] = listMat; string json1 = JsonHelper.IListToJson(listMat, "List"); ReturnJson.AddProperty("Result", new JsonObject(json1)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "删除成功"); return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult Add() { try { var dd = Request["Entity"]; var pickerUser = Request["pickerUser"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { List list = Session["SEL_ERPOUT_LIST"] as List; if (list == null) { return Content(null); } models.DepartGuid = this.LoginDepartNum; models.CreateUser = this.LoginUserCode; models.Statu = "01"; // 验证出库单明细物料信息 foreach (ErpOutDetail detail in list) { if (string.IsNullOrWhiteSpace(detail.PickerUser) && !string.IsNullOrWhiteSpace(pickerUser)) { detail.PickerUser = pickerUser; } if (string.IsNullOrEmpty(detail.CurQuant)) { ReturnJson.AddProperty("Code", -1); ReturnJson.AddProperty("Message", "物料信息缺失!"); return Content(this.ReturnJson.ToString()); } } IDALErpOut dalErp = new DALErpOut(); if (string.IsNullOrEmpty(models.OrdNo)) { if (dalErp.Add(models, list)) { Session["SEL_ERPOUT_LIST"] = null; ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "添加成功"); } else { ReturnJson.AddProperty("Code", -1); ReturnJson.AddProperty("Message", "添加失败"); } } else { if (dalErp.Update(models, list)) { Session["SEL_ERPOUT_LIST"] = null; ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "编辑成功"); } else { ReturnJson.AddProperty("Code", -1); ReturnJson.AddProperty("Message", "编辑失败"); } } return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult GetDetail(string OrdNo) { try { var dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { PageInfo pageInfo = new PageInfo() { PageIndex = models.pageIndex, PageSize = models.pageSize }; DALErpOutDetail detail = new DALErpOutDetail(); List entity = detail.GetList(models, ref pageInfo).ToList(); //Session["TEMPDATA_CACHE_ERPOUTPRODUCT"] = entity; Session["SEL_ERPOUT_LIST"] = entity; string json = JsonHelper.IListToJson(entity, "List"); string pjson = ConvertJson.Serializer(pageInfo); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("PageInfo", new JsonObject(pjson)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } public ActionResult Delete() { try { string dd = Request["list"]; ArrayList models = new JavaScriptSerializer().Deserialize(dd); string[] list = (string[])models.ToArray(typeof(string)); if (models != null) { IDALErpOut dalErp = new DALErpOut(); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); if (dalErp.BatchDelete(list)) { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "删除订单成功"); } else { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "删除订单失败"); } return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { WriteFileLog(ex.Message.ToString(), System.Reflection.MethodBase.GetCurrentMethod()); return Content(null); } } // GET: Business/ErpInAjax public ActionResult LoadDetail() { var dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { PageInfo pageInfo = new PageInfo() { PageIndex = models.pageIndex, PageSize = models.pageSize }; List list = Session["TEMPDATA_CACHE_ERPOUTPRODUCT"] as List; if (list != null) pageInfo.RowCount = list.Count; list = list.IsEmpty() ? new List() : ((from u in list orderby u.MatNo select u).Skip(pageInfo.PageSize * (pageInfo.PageIndex - 1)).Take(pageInfo.PageSize)).ToList(); string json = JsonHelper.IListToJson(list, "List"); string pjson = ConvertJson.Serializer(pageInfo); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("PageInfo", new JsonObject(pjson)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } // GET: Business/ErpInAjax public ActionResult AddProduct() { var dd = Request["Entity"]; var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { List list = Session["TEMPDATA_CACHE_ERPOUTPRODUCT"] as List; if (!list.IsEmpty()) { for (int i = 0; i < list.Count; i++) { ///< summary > /// 如果物料编码相同则删除保存最新列 /// if (list[i].Palno == null) { list[i].Palno = ""; } if (list[i].Certificate == null && models.Certificate == "") { models.Certificate = null; } if (list[i].MatNo == models.MatNo && list[i].Palno == models.Palno) { list.Remove(list[i]); } } list.Add(models); Session["TEMPDATA_CACHE_ERPOUTPRODUCT"] = list; ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); } else { list = new List(); list.Add(models); Session["TEMPDATA_CACHE_ERPOUTPRODUCT"] = list; ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); } return Content(this.ReturnJson.ToString()); } return Content(null); } /// /// 下发指令 /// /// public ActionResult Out() { try { string dd = Request["list"]; string AccessCode = Request["AccessCode"]; ArrayList models = new JavaScriptSerializer().Deserialize(dd); string[] list = (string[])models.ToArray(typeof(string)); if (models != null) { DALErpOut outerp = new DALErpOut(); bool value = false; value = outerp.Out(list, AccessCode, this.LoginUserCode); if (value) { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "指令下发成功"); } else { ReturnJson.AddProperty("Code", -1); ReturnJson.AddProperty("Message", "指令下发失败,请检查是否存在一个库位地址存放多个托盘数据。"); } return Content(this.ReturnJson.ToString()); } return Content(null); } catch (Exception ex) { ReturnJson.AddProperty("Code", -1); ReturnJson.AddProperty("Message", ex.Message); return Content(this.ReturnJson.ToString()); } } public ActionResult GetErpOutCurQuant() { var dd = Request["ajaxdata"].ToString(); var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { DALErpOut provider = new DALErpOut(); List entity = provider.GetErpOutCurQuant(models).ToList(); string json = JsonHelper.IListToJson(entity, "List"); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } //lijiangang新增:空托盘出库校验数量 public ActionResult GetPalletOutCurQuant() { var dd = Request["ajaxdata"].ToString(); var models = new JavaScriptSerializer().Deserialize(dd); if (models != null) { DALErpOut provider = new DALErpOut(); List entity = provider.GetPalletOutCurQuant(models).ToList(); string json = JsonHelper.IListToJson(entity, "List"); ReturnJson.AddProperty("Result", new JsonObject(json)); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "响应成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } public ActionResult Audit() { string dd = Request["ajaxdata"]; if (dd != null) { var models = new JavaScriptSerializer().Deserialize(dd); ArrayList Matlist = new JavaScriptSerializer().Deserialize(models.list); string[] list = (string[])Matlist.ToArray(typeof(string)); IDALErpOut dalErp = new DALErpOut(); bool value = false; value = dalErp.UpdateAudit(list, models.Operation, LoginUserCode); if (value) { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "删除订单成功"); } else { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "删除订单失败"); } ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } public ActionResult Close() { string dd = Request["list"]; ArrayList models = new JavaScriptSerializer().Deserialize(dd); string[] list = (string[])models.ToArray(typeof(string)); if (models != null) { IDALErpOut dalErp = new DALErpOut(); bool value = false; value = dalErp.UpdateClose(list, "ER03"); if (value) { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "关闭出库单成功"); } else { ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "关闭出库单失败"); } ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } public ActionResult UpdateProduct() { string dd = Request["ajaxdata"]; var models = new JavaScriptSerializer().Deserialize(dd); ArrayList Matlist = new JavaScriptSerializer().Deserialize(models.List); string[] list = (string[])Matlist.ToArray(typeof(string)); if (!string.IsNullOrEmpty(dd)) { List listMat = Session["TEMPDATA_CACHE_ERPOUTPRODUCT"] as List; //List listMat1 = new List(); foreach (string str in Matlist) { foreach (StorePalno pm in listMat) { if (Matlist.Count > 1) { if (pm.MatNo == str) { pm.Lever = models.SetLever; } }//lijiangang修改:增加合格证判断条件 else { if (pm.MatNo == str && pm.Certificate == models.hegezheng) { pm.Lever = models.SetLever; } } } } //Session["TEMPDATA_CACHE_INSTORDETAIL"] = null; Session["TEMPDATA_CACHE_INSTORDETAIL"] = listMat; //listMat.up //Predicate match1 = (PurchaseMat s) => { return s.MatNo == dd; }; //listMat.RemoveAll(match1); ReturnJson.AddProperty("Code", 1); ReturnJson.AddProperty("Message", "更新物料成功"); ReturnJson.AddProperty("SubCode", 0); ReturnJson.AddProperty("SubMessage", ""); return Content(this.ReturnJson.ToString()); } return Content(null); } } }