using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using QMAPP.Common.Web.Controllers; using QMFrameWork.WebUI.Attribute; using QMAPP.FJC.Web.Models.FIS; using QMFrameWork.Data; using QMAPP.ServicesAgent; using QMAPP.FJC.Entity.FIS; using QMAPP.Entity; using QMFrameWork.WebUI.DataSource; using QMFrameWork.Common.Serialization; using System.Data; using QMAPP.Common.Web.Models; using QMAPP.FJC.Entity.Basic; using QMAPP.MD.Entity; using QMAPP.FJC.BLL.FIS; namespace QMAPP.FJC.Web.Controllers { /// /// 门板计划查询 /// 作 者:郭兆福 /// 时 间:2017年09月15日 /// public class TJDoorPlankPlanPrintController : QController { #region 获取信息 /// /// 加载列表 /// /// 结果 [HandleException] public ActionResult List(bool? callback) { string order_type = Request["ORDER_TYPE"]; DoorPlankPlanModel seachModel = new DoorPlankPlanModel(); seachModel.ORDER_TYPE = order_type; seachModel.PLANTIMESTART = DateTime.Now.Date.AddDays(-10).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.PLANTIMEEND = DateTime.Now.Date.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"); seachModel.PLAN_STATE = "0"; seachModel.ImmediateSearch = false; if (callback == true) TryGetSelectBuffer(out seachModel); seachModel.rownumbers = false; seachModel.url = "/DoorPlankPlan/GetList"; return View("DoorPlankPlanList", seachModel); } #endregion #region 获取列表 /// /// 获取列表 /// /// 是否回调 /// 列表 [HandleException] public ActionResult GetList(bool? callBack) { DoorPlankPlanModel seachModel = null; DataPage page = null; ServiceAgent wcfAgent = this.GetServiceAgent(); OrderPlan condition = null; DataResult pageResult = new DataResult(); try { //获取查询对象 seachModel = GetModel(); #region 获取缓存值 if (callBack != null) { TryGetSelectBuffer(out seachModel); } else { //保存搜索条件 SetSelectBuffer(seachModel); } #endregion //获取前台分页设置信息 page = this.GetDataPage(seachModel); condition = CopyToModel(seachModel); // //condition.WWWWWW = ((int)QMAPP.FJC.Entity.EnumGeter.ProductType.biaopi).ToString();//默认查询XXXX #region wcf服务统一接口 pageResult = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_GetList", condition, page); if (pageResult.IsSuccess == false) { SetMessage(pageResult.Msg); return List(true); } DateGridResult result = new DateGridResult(); result.Total = pageResult.Result.RecordCount; result.Rows = JsonConvertHelper.GetDeserialize>(pageResult.Result.Result.ToString()); #endregion return Content(result.GetJsonSource()); } catch (Exception ex) { throw ex; } } #endregion #region 编辑 /// /// 编辑载入 /// /// 处理结果 [HandleException] public ActionResult Edit() { DoorPlankPlanModel model = new DoorPlankPlanModel(); string ID = Request.Params["PID"]; string TYPE = Request.Params["ORDER_TYPE"]; OrderPlan Entity = new OrderPlan(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { if (string.IsNullOrEmpty(ID) == false) { //修改获取原数据 Entity.PID = ID; result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_Get", Entity); if (result.IsSuccess == false) { SetMessage(result.Msg); return View("DoorPlankPlanEdit", model); } model = CopyToModel(result.Result); if (model.PLANSOURCE == FJC.Entity.EnumGeter.WORKORDERTYPE.FIS.GetHashCode().ToString()) { //SetMessage("!"); return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", "无法对FIS计划进行修改编辑!")); } } model.ORDER_TYPE = TYPE; return View("DoorPlankPlanEdit", model); } catch (Exception ex) { throw ex; } } /// /// 保存 /// /// /// 处理结果 [HttpPost] [HandleException] [ValidateInput(false)] public ActionResult Save(DoorPlankPlanModel saveModel) { OrderPlan Entity = null; string TYPE = Request.Form["ORDER_TYPE"]; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { Entity = CopyToModel(saveModel); if (string.IsNullOrEmpty(Entity.PID) == true) { //新增 Entity.ORDER_TYPE = TYPE; result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_TJInsert", Entity); if (result.IsSuccess == false) { SetMessage("计划单号已存在!"); return View("DoorPlankPlanEdit", saveModel); } } else { //修改 result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_Update", Entity); if (result.IsSuccess == false) { SetMessage(result.Msg); return View("DoorPlankPlanEdit", saveModel); } } return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); } catch (Exception ex) { throw ex; } } /// /// 插单 /// /// 处理结果 [HandleException] public ActionResult Insert() { DoorPlankPlanModel model = new DoorPlankPlanModel(); string ID = Request.Params["PID"]; string TYPE = Request.Params["ORDER_TYPE"]; OrderPlan Entity = new OrderPlan(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { if (string.IsNullOrEmpty(ID) == false) { //修改获取原数据 Entity.PID = ID; result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_GetFISInsertPos", Entity); if (result.IsSuccess == false) { return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", result.Msg)); } model = CopyToModel(result.Result); } model.PID = ""; model.MATERIAL_CODE = ""; model.MATERIAL_NAME = ""; model.ORDER_TYPE = TYPE; return View("DoorPlankPlanInsert", model); } catch (Exception ex) { throw ex; } } /// /// 保存插单 /// /// /// 处理结果 [HttpPost] [HandleException] [ValidateInput(false)] public ActionResult SaveInsert(DoorPlankPlanModel saveModel) { Material condition = new Material(); OrderPlan Entity = new OrderPlan(); string TYPE = Request.Form["ORDER_TYPE"]; string source = Request.Form["PLANSOURCE"]; DataResult result = new DataResult(); ServiceAgent wcfAgent = this.GetServiceAgent(); string materialcode = "('" + saveModel.MaterialCodes.Replace(";", "','") + "')"; condition.MaterialCodes = materialcode; List materiallist = wcfAgent.InvokeServiceFunction>("MaterialBLL_GetMaterialInfoList", condition); Entity.ORDER_TYPE = TYPE; Entity.QTY = Convert.ToInt32(saveModel.QTY); Entity.SHIFT_CODE = saveModel.SHIFT_CODE; Entity.PLAN_DATE = saveModel.PLAN_DATE; Entity.PLAN_SEQ = saveModel.PLAN_SEQ; Entity.PLANSOURCE = source; var publishrightnow = string.Equals(saveModel.PLAN_STATE, "on"); result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_SaveFISInsert", Entity, materiallist,publishrightnow); return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); } #endregion #region 删除 /// /// 删除 /// /// 结果 [HttpPost] [HandleException] public ActionResult Delete(OrderPlan model) { string selectKey = Request.Form["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_Delete", selectKey); if (result.IsSuccess == false) { SetMessage(result.Msg); return List(true); } SetMessage(AppResource.DeleteMessage); return List(true); } catch (Exception ex) { throw ex; } } #endregion #region 发布 /// /// 发布 /// /// [HttpPost] [HandleException] public ActionResult PutOut(OrderPlan model) { string selectKey = Request.Form["selectKey"]; ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_PutOut", selectKey); if (result.IsSuccess == false) { SetMessage(result.Msg); return List(true); } SetMessage(AppResource.PutOutMessage); return List(true); } #endregion #region 导出excel /// /// 导出excel /// /// 结果 [HttpPost] public ActionResult ExportExcel() { DoorPlankPlanModel seachModel = null; OrderPlan condition = null; DataTable exportDt = new DataTable(); ServiceAgent wcfAgent = this.GetServiceAgent(); try { //获取查询对象 seachModel = GetModel(); condition = CopyToModel(seachModel); condition.PIDList = Request.Form["selectKey"]; //获取数据 DoorPlankPlanBLL dp = new DoorPlankPlanBLL(); exportDt = dp.GetExportData(condition); //exportDt = wcfAgent.InvokeServiceFunction("DoorPlankPlanBLL_GetExportData", condition); //导出 QMFrameWork.WebUI.Util.IEFileTool efTool = new QMFrameWork.WebUI.Util.IEFileTool(); return efTool.GetExcelFileResult("DoorPlankPlanExp", "门板计划信息.xlsx", exportDt); } catch (Exception ex) { throw ex; } } #endregion #region 导入excel /// /// 导入excel /// /// 结果 [HttpPost] public ActionResult ImportExcel() { DataTable dt = null; List list = new List(); DataResult serviceResult = null; string fileName = Request.Form["fileName"]; string orderby = Request.Form["ORDER_TYPE"]; ServiceAgent wcfAgent = this.GetServiceAgent(); Materiel materialmodel = new Materiel(); ProduceShift produceshiftmodel = new ProduceShift(); MachineInfo machine = new MachineInfo(); //初始工作中心编号条件 QMAPP.MD.Entity.WorkCell workcell = new QMAPP.MD.Entity.WorkCell(); workcell.WORKCELL_CODE = orderby; try { dt = this.GetTableByExcel("DoorPlankPlanImp", fileName, dt); //格式转换 list = QMFrameWork.Common.Util.BindHelper.ConvertToList(dt).ToList(); serviceResult = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_GetImportData", list, materialmodel,machine, produceshiftmodel, workcell); if (serviceResult.Ex != null) { throw serviceResult.Ex; } if (serviceResult.Result.failureNum != 0) { foreach (RowError error in serviceResult.Result.Errors) { dt.Rows[error.Key - 1]["InfoError"] = error.Value; } ImportMessageModel model = new ImportMessageModel(); model.InfoName = "DoorPlankPlanImp"; model.ReturnUrl = "/DoorPlankPlan/List?callBack=true"; model.Message = serviceResult.Result; model.ErrorDt = dt; return new MessageOutputController().OutputImportMessage(model); } else { SetMessage(serviceResult.Msg + ",如下:
" + "插入" + serviceResult.Result.insertNum + "条," + "更新" + serviceResult.Result.updateNum + "条" ); return List(true); } } catch (Exception ex) { throw ex; } finally { System.IO.File.Delete(MvcApplication.TempPath + fileName); } } #endregion #region 下载模板 /// /// 下载导入模板 /// /// 结果 [HttpPost] public ActionResult GetTemplate() { try { string path = AppDomain.CurrentDomain.BaseDirectory + "App_Data/Excel/"; string fileName = "DoorPlankPlanImp.xlsx"; return File(path + fileName, "application/vnd.ms-excel", Url.Encode("门板信息导入模板.xlsx")); } catch (Exception ex) { throw ex; } } #endregion #region 整车添加 /// /// 编辑载入 /// /// 处理结果 [HandleException] public ActionResult AddWholeDoor() { DoorPlankPlanModel model = new DoorPlankPlanModel(); string ID = Request.Params["PID"]; string TYPE = Request.Params["ORDER_TYPE"]; OrderPlan Entity = new OrderPlan(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { if (string.IsNullOrEmpty(ID) == false) { //修改获取原数据 Entity.PID = ID; result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_Get", Entity); if (result.IsSuccess == false) { SetMessage(result.Msg); return View("DoorPlankPlanEdit", model); } model = CopyToModel(result.Result); } model.ORDER_TYPE = TYPE; return View("AddWholeDoorEdit", model); } catch (Exception ex) { throw ex; } } #endregion #region 保存整车添加 /// /// 保存 /// /// /// 处理结果 [HttpPost] [HandleException] [ValidateInput(false)] public ActionResult DoorPlanSave(DoorPlankPlanModel saveModel) { Material condition = new Material(); OrderPlan Entity = new OrderPlan(); string TYPE = Request.Form["ORDER_TYPE"]; string SetCode = Request.Form["AsmSetCode"]; string source = Request.Form["PLANSOURCE"]; DataResult result = new DataResult(); ServiceAgent wcfAgent = this.GetServiceAgent(); string materialcode = "('" + saveModel.MaterialCodes.Replace(";", "','") + "')"; condition.MaterialCodes = materialcode; List materiallist = wcfAgent.InvokeServiceFunction>("MaterialBLL_GetMaterialInfoList", condition); Entity.ORDER_TYPE = TYPE; Entity.QTY = Convert.ToInt32(saveModel.QTY); Entity.SHIFT_CODE = saveModel.SHIFT_CODE; Entity.PLAN_DATE = saveModel.PLAN_DATE; Entity.PLANSOURCE = source; Entity.AsmSetCode = SetCode; result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_InsertWholeDoor", Entity, materiallist); return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); } #endregion //#region 整车添加物料信息 ///// ///// 编辑载入 ///// ///// 处理结果 //[HandleException] //public ActionResult AddMaterial() //{ // DoorPlankPlanModel model = new DoorPlankPlanModel(); // string ID = Request.Params["PID"]; // string TYPE = Request.Params["ORDER_TYPE"]; // OrderPlan Entity = new OrderPlan(); // ServiceAgent wcfAgent = this.GetServiceAgent(); // DataResult result = new DataResult(); // try // { // model.ORDER_TYPE = TYPE; // return View("AddMaterialEdit", model); // } // catch (Exception ex) // { // throw ex; // } //} ///// ///// 保存 ///// ///// ///// 处理结果 //[HttpPost] //[HandleException] //[ValidateInput(false)] //public ActionResult SaveMaterial(DoorPlankPlanModel saveModel) //{ // Material condition = new Material(); // ServiceAgent wcfAgent = this.GetServiceAgent(); // condition.MATERIAL_CODE = saveModel.MATERIAL_CODE; // Material material = wcfAgent.InvokeServiceFunction("MaterialBLL_GetMaterialInfo", condition); // if (!string.IsNullOrEmpty(material.PID)) // { // saveModel.MATERIAL_NAME = material.MATERIAL_NAME; // saveModel.COLOR = material.COLOR; // saveModel.HBTYPE = material.HBTYPE; // return View("AddWholeDoorEdit", saveModel); // } // return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); //} //#endregion #region 整车添加物料信息 [HandleException] public ActionResult AddSendDetail(bool? callBack) { //实例化服务 ServiceAgent wcfAgent = this.GetServiceAgent(); QMAPP.MD.Web.Models.MaterialModel seachModel = null; DataResult pageResult = new DataResult(); DataPage page = new DataPage(); string Fisid = Request["MATERIAL_CODE"].ToString(); FISAssembly MaterialAssInfo = wcfAgent.InvokeServiceFunction("DoorPlankPlanBLL_GetFISMaterialInfoCD", Fisid); string materials = "('" + MaterialAssInfo.MESModulFL + "','" + MaterialAssInfo.MESModulFR + "','" + MaterialAssInfo.MESModulRL + "','" + MaterialAssInfo.MESModulRR + "')"; //物料发货明细实体 Material detail = new Material() { MaterialCodes = materials, }; try { //获取查询对象 seachModel = GetModel(); #region 获取缓存值 if (callBack != null) { TryGetSelectBuffer(out seachModel); } else { //保存搜索条件 SetSelectBuffer(seachModel); } #endregion //获取前台分页设置信息 page = this.GetDataPage(seachModel); pageResult = wcfAgent.InvokeServiceFunction>("MaterialBLL_GetList", detail, page); if (pageResult.IsSuccess == false) { SetMessage(pageResult.Msg); return List(true); } DateGridResult result = new DateGridResult(); result.Total = pageResult.Result.RecordCount; result.Rows = JsonConvertHelper.GetDeserialize>(pageResult.Result.Result.ToString()); for (var i = 0; i < result.Total; i++) { result.Rows[i].AsmSetCode = MaterialAssInfo.AsmSetCode; } return Content(result.GetJsonSource()); } catch (Exception ex) { throw ex; } } #endregion #region 门板顺序号编辑 /// /// 门板顺序号编辑 /// /// public ActionResult DoorPlankEditSeq() { DoorPlankPlanModel model = new DoorPlankPlanModel(); OrderPlan Entity = new OrderPlan(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); try { model = GetModel(); return View("DoorPlankEditSeq", model); } catch (Exception ex) { throw ex; } } #endregion #region 获取编辑系列号列表 /// /// 获取编辑系列号列表 /// /// /// [HandleException] public ActionResult GetDoorPlankPlanList(bool? callBack) { DoorPlankPlanModel seachModel = null; DataResult pageResult = new DataResult(); DataPage page = new DataPage(); ServiceAgent wcfAgent = this.GetServiceAgent(); OrderPlan condition = new OrderPlan(); try { //获取查询对象 seachModel = GetModel(); condition.PIDList =seachModel.PIDList; condition.ORDER_TYPE = seachModel.ORDER_TYPE; #region 获取缓存值 if (callBack != null) { TryGetSelectBuffer(out seachModel); } else { //保存搜索条件 SetSelectBuffer(seachModel); } #endregion //获取前台分页设置信息 page = this.GetDataPage(seachModel); condition = CopyToModel(seachModel); #region wcf服务统一接口 pageResult = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_GetDoorPlankPlanList", condition, page); if (pageResult.IsSuccess == false) { SetMessage(pageResult.Msg); return List(true); } DateGridResult result = new DateGridResult(); result.Total = pageResult.Result.RecordCount; result.Rows = JsonConvertHelper.GetDeserialize>(pageResult.Result.Result.ToString()); #endregion return Content(result.GetJsonSource()); } catch (Exception ex) { throw ex; } } #endregion #region 保存顺序号修改 /// /// /// /// /// 处理结果 [HttpPost] [HandleException] [ValidateInput(false)] public ActionResult DoorPlankPlanSeqSave(DoorPlankPlanModel saveModel) { OrderPlan entity = new OrderPlan(); ServiceAgent wcfAgent = this.GetServiceAgent(); DataResult result = new DataResult(); entity.PLAN_SEQ = saveModel.PLAN_SEQ; entity.PIDList = saveModel.PIDList; entity = CopyToModel(saveModel); //修改 result = wcfAgent.InvokeServiceFunction>("DoorPlankPlanBLL_UpdateDoorPlankPlanSeq", entity); return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge)); } #endregion } }