天津投入产出系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

683 lines
23 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using QMFrameWork.WebUI.Attribute;
using QMAPP.MD.Web.Models;
using QMFrameWork.Data;
using QMAPP.ServicesAgent;
using QMAPP.Entity;
using QMAPP.Common.Web.Controllers;
using QMFrameWork.WebUI.DataSource;
using QMFrameWork.Common.Serialization;
using QMAPP.MD.Entity;
using QMAPP.MD.Web;
namespace QMAPP.MD.Web.Controllers
{
/// <summary>
/// 模块名称:Bom信息
/// 作 者:郭兆福
/// 编写日期:2017年05月10日
/// </summary>
public class PbomController : QController
{
public string EmptyItemTitle = " ";
#region 获取列表
/// <summary>
/// 加载列表
/// </summary>
/// <returns>结果</returns>
[HandleException]
public ActionResult List(bool? callBack)
{
PbomModel seachModel = new PbomModel();
if (callBack == true)
TryGetSelectBuffer<PbomModel>(out seachModel);
seachModel.rownumbers = false;
seachModel.url = "/Pbom/GetList";
return View("PbomList", seachModel);
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="callBack">是否回调</param>
/// <returns>列表</returns>
[HandleException]
public ActionResult GetList(bool? callBack)
{
PbomModel seachModel = null;
DataPage page = null;
ServiceAgent wcfAgent = this.GetServiceAgent();
Pbom condition = null;
DataResult<DataPage> pageResult = new DataResult<DataPage>();
try
{
//获取查询对象
seachModel = GetModel<PbomModel>();
#region 获取缓存值
if (callBack != null)
{
TryGetSelectBuffer<PbomModel>(out seachModel);
}
else
{
//保存搜索条件
SetSelectBuffer<PbomModel>(seachModel);
}
#endregion
//获取前台分页设置信息
page = this.GetDataPage(seachModel);
condition = CopyToModel<Pbom, PbomModel>(seachModel);
#region wcf服务统一接口
pageResult = wcfAgent.InvokeServiceFunction<DataResult<DataPage>>("PbomBLL_GetList", condition, page);
if (pageResult.IsSuccess == false)
{
SetMessage(pageResult.Msg);
return List(true);
}
DateGridResult<Pbom> result = new DateGridResult<Pbom>();
result.Total = pageResult.Result.RecordCount;
result.Rows = JsonConvertHelper.GetDeserialize<List<Pbom>>(pageResult.Result.Result.ToString());
#endregion
return Content(result.GetJsonSource());
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 编辑
/// <summary>
/// 编辑载入
/// </summary>
/// <returns>处理结果</returns>
[HandleException]
public ActionResult PbomEdit()
{
PbomModel model = new PbomModel();
try
{
return View("PbomEdit", model);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 保存
/// <summary>
/// 保存
/// </summary>
/// <param name="model"></param>
/// <returns>处理结果</returns>
[HttpPost]
[HandleException]
[ValidateInput(false)]
public ActionResult Save(PbomModel saveModel)
{
Pbom Entity = null;
ServiceAgent wcfAgent = this.GetServiceAgent();
DataResult<int> result = new DataResult<int>();
try
{
Entity = CopyToModel<Pbom, PbomModel>(saveModel);
if (string.IsNullOrEmpty(Entity.PID) == true)
{
//新增
result = wcfAgent.InvokeServiceFunction<DataResult<int>>("PbomBLL_Insert", Entity);
}
if (result.IsSuccess == false)
{
SetMessage(result.Msg);
return View("PbomEdit", saveModel);
}
return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge));
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 删除
/// <summary>
/// 删除
/// </summary>
/// <returns>结果</returns>
[HttpPost]
[HandleException]
public ActionResult PbomDelete()//ProductionLineModel saveMode
{
string selectKey = Request.Form["selectKey"];
ServiceAgent wcfAgent = this.GetServiceAgent();
DataResult<int> result = new DataResult<int>();
try
{
result = wcfAgent.InvokeServiceFunction<DataResult<int>>("PbomBLL_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 配置Bom明细
/// <summary>
/// 加载列表
/// </summary>
/// <param name="callBack"></param>
/// <returns></returns>
public ActionResult PbomItem(bool? callBack)
{
PbomItemModel pblomItemModel = new PbomItemModel();
string pbomCode = Request.Params["PBOM_CODE_PAR"];
string materialCode = Request.Params["MATERIAL_CODE_PAR"];
if (callBack == true)
TryGetSelectBuffer<PbomItemModel>(out pblomItemModel);
pblomItemModel.rownumbers = false;
pblomItemModel.url = "/Pbom/PbomItemList?PBOM_CODE_PAR=" + pbomCode + "&MATERIAL_CODE_PAR=" + materialCode;
pblomItemModel.PBOM_CODE = pbomCode;
pblomItemModel.MATERIAL_CODE = materialCode;
return View("PbomItemList", pblomItemModel);
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="callBack"></param>
/// <returns></returns>
public ActionResult PbomItemList(bool? callBack)
{
PbomItemModel seachModel = null;
DataPage page = null;
ServiceAgent wcfAgent = this.GetServiceAgent();
PbomItem condition = null;
DataResult<DataPage> pageResult = new DataResult<DataPage>();
string pbomCode = Request.Params["PBOM_CODE_PAR"];
string materialCode = Request.Params["MATERIAL_CODE_PAR"];
try
{
//获取查询对象
seachModel = GetModel<PbomItemModel>();
#region 获取缓存值
if (callBack != null)
{
TryGetSelectBuffer<PbomItemModel>(out seachModel);
}
else
{
//保存搜索条件
SetSelectBuffer<PbomItemModel>(seachModel);
}
#endregion
//获取前台分页设置信息
page = this.GetDataPage(seachModel);
if (string.IsNullOrEmpty(seachModel.PBOM_CODE))
{
seachModel.PBOM_CODE = pbomCode;
}
condition = CopyToModel<PbomItem, PbomItemModel>(seachModel);
#region wcf服务统一接口
pageResult = wcfAgent.InvokeServiceFunction<DataResult<DataPage>>("PbomBLL_GetPbomItemList", condition, page);
if (pageResult.IsSuccess == false)
{
SetMessage(pageResult.Msg);
return PbomItem(true);
}
DateGridResult<PbomItem> result = new DateGridResult<PbomItem>();
result.Total = pageResult.Result.RecordCount;
result.Rows = JsonConvertHelper.GetDeserialize<List<PbomItem>>(pageResult.Result.Result.ToString());
#endregion
return Content(result.GetJsonSource());
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 配置Bom明细添加页面
/// </summary>
/// <returns></returns>
public ActionResult PbomItemEdit()
{
PbomItemModel model = new PbomItemModel();
model = GetModel<PbomItemModel>();
model.PBOM_CODE = Request.Params["PBOM_CODE_PAR"];
try
{
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
DataResult<MaterialRoute> result = agent.InvokeServiceFunction<DataResult<MaterialRoute>>("PbomBLL_GetRouteByMaterialCode", new MaterialRoute() { MATERIAL_CODE = Request.Params["MATERIAL_CODE_PAR"] });
model.ROUTE_CODE = result.Result.ROUTE_CODE;
return View("PbomItemEdit", model);
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 保存Bom明细
/// </summary>
/// <returns></returns>
public ActionResult PbomItemSave(PbomItemModel saveModel)
{
PbomItem entity = null;
ServiceAgent wcfAgent = this.GetServiceAgent();
DataResult<int> result = new DataResult<int>();
string pbomCode = Request.Params["PBOM_CODE"];
try
{
entity = CopyToModel<PbomItem, PbomItemModel>(saveModel);
if (string.IsNullOrEmpty(pbomCode))
{
entity.PBOM_CODE = pbomCode;
}
if (string.IsNullOrEmpty(entity.PID) == true)
{
//新增
result = wcfAgent.InvokeServiceFunction<DataResult<int>>("PbomBLL_PbomItemSave", entity);
}
if (result.IsSuccess == false)
{
SetMessage(result.Msg);
return View("PbomItemEdit", saveModel);
}
return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge));
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// 删除
/// </summary>
/// <returns>结果</returns>
[HttpPost]
[HandleException]
public ActionResult PbomItemDelete()
{
string selectKey = Request.Form["selectKey"];
ServiceAgent wcfAgent = this.GetServiceAgent();
DataResult<int> result = new DataResult<int>();
try
{
result = wcfAgent.InvokeServiceFunction<DataResult<int>>("PbomBLL_DeletePbomItem", selectKey);
if (result.IsSuccess == false)
{
SetMessage(result.Msg);
return PbomItem(true);
}
SetMessage(AppResource.DeleteMessage);
return PbomItem(true);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region PBOM树
#region 获取数
public ActionResult PbomItemTree()
{
PbomItemModel pblomItemModel = new PbomItemModel();
string pbomCode = Request.Params["PBOM_CODE_PAR"];
string routeCode = Request.Params["ROUTE_CODE"];
var factory = Request.Params["FACTORY_CODE"];
//pblomItemModel.rownumbers = false;
//pblomItemModel.url = "/Pbom/PbomItemTreeList?PBOM_CODE_PAR=" + pbomCode + "&MATERIAL_CODE_PAR=" + materialCode;
pblomItemModel.PBOM_CODE = pbomCode;
pblomItemModel.ROUTE_CODE = routeCode;
pblomItemModel.FACTORY_CODE = factory;
//TryGetSelectBuffer<PbomItemModel>(out pblomItemModel);
return View(pblomItemModel);
}
public ActionResult GetTreeData()
{
string pbomCode = Request.Params["PBOM_CODE"];
string materialCode = Request.Params["MATERIAL_CODE_PAR"];
List<TreeNodeResult> list = new List<TreeNodeResult>();
PbomItem pi = new PbomItem();
////orga.UP_SQ_NUM = 0;
//查询全部
pi.UP_SQ_NUM = -1;
pi.PBOM_CODE = pbomCode;
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
List<PbomItem> pbomItems = agent.InvokeServiceFunction<List<PbomItem>>("PbomBLL_GetPbomItemAllList", pi);
//查询根数据
pi.UP_SQ_NUM = 0;
List<PbomItem> pbomItemList = agent.InvokeServiceFunction<List<PbomItem>>("PbomBLL_GetPbomItemAllList", pi);
//添加第一级机构
//pbomItems = pbomItems.Where(p => string.IsNullOrWhiteSpace(p.OrgaParent)).ToList();
//添加第一级机构
foreach (PbomItem child in pbomItemList)
{
TreeNodeResult treenode = new TreeNodeResult();
treenode.Tid = child.PID;
treenode.Ttext = child.MATERIAL_NAME;
treenode.Tcode = child.MATERIAL_CODE;
//添加子机构
this.BuildChildItemsPbom(child, treenode, pbomItems);
list.Add(treenode);
}
return Content(TreeNodeResult.GetResultJosnS(list.ToArray()));
}
public ActionResult GetTreeGrid()
{
string pbomCode = Request.Params["PBOM_CODE"];
string materialCode = Request.Params["MATERIAL_CODE_PAR"];
PbomItem pi = new PbomItem();
////orga.UP_SQ_NUM = 0;
//查询全部
pi.UP_SQ_NUM = -1;
pi.PBOM_CODE = pbomCode;
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
List<PbomItem> pbomItems = agent.InvokeServiceFunction<List<PbomItem>>("PbomBLL_GetPbomItemAllList", pi);
//查询根数据
pi.UP_SQ_NUM = 0;
List<PbomItem> pbomItemList = agent.InvokeServiceFunction<List<PbomItem>>("PbomBLL_GetPbomItemAllList", pi);
List<PbomItemModel> trees = new List<PbomItemModel>();
//添加第一级机构
//pbomItems = pbomItems.Where(p => string.IsNullOrWhiteSpace(p.OrgaParent)).ToList();
//添加第一级机构
foreach (PbomItem child in pbomItemList)
{
var subnode = new PbomItemModel
{
PID = child.PID,
Id = child.MATERIAL_CODE,
Text = child.MATERIAL_NAME,
PBOM_CODE = child.PBOM_CODE,
SEQ_NUM = child.SEQ_NUM,
UP_SQ_NUM = child.UP_SQ_NUM,
UNIT_SUM = child.UNIT_SUM,
children = new List<PbomItemModel>()
};
AppendTreeGrid(subnode, pbomItems);
trees.Add(subnode);
//if (subnode.children.Count > 0)
//{
// trees.Add(subnode);
//}
}
//return Content(TreeNodeResult.GetResultJosnS(list.ToArray()));
return Json(trees, JsonRequestBehavior.AllowGet);
}
/// <summary>
/// 创建子组织机构
/// </summary>
/// <param name="parentNode">父节点</param>
/// <param name="childPowers">子权限</param>
private void BuildChildItemsPbom(PbomItem pbomItem, TreeNodeResult tnr, List<PbomItem> list)
{
//PbomItem corga = new PbomItem();
//PbomItemModel corgaModel = new PbomItemModel();
//corga.UP_SQ_NUM = orga.SEQ_NUM;
List<PbomItem> subList = list.Where(p => p.PBOM_CODE == pbomItem.PBOM_CODE && p.UP_SQ_NUM == pbomItem.SEQ_NUM ).ToList();
if (subList.Count > 0)
{
foreach (PbomItem child in subList)
{
TreeNodeResult cTreeNode = new TreeNodeResult();
cTreeNode.Tid = child.PID;
cTreeNode.Ttext = child.MATERIAL_NAME;
cTreeNode.Tcode = child.MATERIAL_CODE;
//添加子菜单
this.BuildChildItemsPbom(child, cTreeNode, list);
tnr.AddchildNode(cTreeNode);
}
}
}
private void AppendTreeGrid(PbomItemModel pbomItem, List<PbomItem> list)
{
//PbomItem corga = new PbomItem();
//PbomItemModel corgaModel = new PbomItemModel();
//corga.UP_SQ_NUM = orga.SEQ_NUM;
List<PbomItem> subList = list.Where(p => p.PBOM_CODE == pbomItem.PBOM_CODE && p.UP_SQ_NUM == pbomItem.SEQ_NUM).ToList();
if (subList.Count > 0)
{
foreach (PbomItem child in subList)
{
var subnode = new PbomItemModel
{
PID = child.PID,
Id = child.MATERIAL_CODE,
Text = child.MATERIAL_NAME,
PBOM_CODE = child.PBOM_CODE,
SEQ_NUM = child.SEQ_NUM,
UP_SQ_NUM = child.UP_SQ_NUM,
UNIT_SUM = child.UNIT_SUM,
children = new List<PbomItemModel>()
};
AppendTreeGrid(subnode, list);
pbomItem.children.Add(subnode);
}
}
}
#endregion
#region 编辑
/// <summary>
/// 编辑载入
/// </summary>
/// <returns>处理结果</returns>
[HandleException]
public ActionResult PbomItemTreeEdit()
{
PbomItemModel model = new PbomItemModel();
string PID = Request.Params["PID"];
//0 :初始化(第一条添加) 1 :树已经存在添加 2 :修改
string isEdit = Request.Params["isEdit"];
string ROUTE_CODE = Request.Params["ROUTE_CODE"];
PbomItem pi = new PbomItem();
ServiceAgent agent = this.GetServiceAgent();
try
{
switch (isEdit)
{
case "0":
model.PBOM_CODE = PID;
model.MATERIAL_CODE = null;
model.GMP = null;
model.UNIT_SUM = 1;
break;
case "1":
pi.PID = PID;
var pbomItem1 = agent.InvokeServiceFunction<PbomItem>("PbomBLL_GetPbomItemOne", pi);
if (pbomItem1 != null)
{
model = CopyToModel<PbomItemModel, PbomItem>(pbomItem1);
}
model.MATERIAL_CODE = null;
model.GMP = null;
model.UNIT_SUM = 1;
break;
case "2":
pi.PID = PID;
var pbomItem2 = agent.InvokeServiceFunction<PbomItem>("PbomBLL_GetPbomItemOne", pi);
if (pbomItem2 != null)
{
model = CopyToModel<PbomItemModel, PbomItem>(pbomItem2);
}
break;
}
model.isEdit = isEdit;
model.ROUTE_CODE = ROUTE_CODE;
return View(model);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 保存
/// <summary>
/// 保存
/// </summary>
/// <param name="model"></param>
/// <returns>处理结果</returns>
[HttpPost]
[HandleException]
public ActionResult PbomItemTreeSave(PbomItemModel saveModel)
{
PbomItem pbom = null;
try
{
pbom = CopyToModel<PbomItem, PbomItemModel>(saveModel);
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
int maxSeqNum = agent.InvokeServiceFunction<int>("PbomBLL_GetMaxSeqNum", pbom);
switch (saveModel.isEdit)
{
case "0":
pbom.UP_SQ_NUM = 0;
//pbom.SEQ_NUM = 1;
pbom.SEQ_NUM = (maxSeqNum + 1);
//新增
agent.InvokeServiceFunction("PbomBLL_InsertPbomItem", pbom);
break;
case "1":
pbom.UP_SQ_NUM = pbom.SEQ_NUM;
pbom.SEQ_NUM = (maxSeqNum + 1);
//新增
agent.InvokeServiceFunction("PbomBLL_InsertPbomItem", pbom);
break;
case "2":
var pbomItem = agent.InvokeServiceFunction<PbomItem>("PbomBLL_GetPbomItemOne", pbom);
pbomItem.MATERIAL_CODE = pbom.MATERIAL_CODE;
//修改
agent.InvokeServiceFunction("PbomBLL_UpdatePbomItem", pbomItem);
break;
}
return this.GetJsViewResult(string.Format("parent.List();parent.showTitle('{0}');parent.closeAppWindow1();", AppResource.SaveMessge));
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 删除
/// <summary>
/// 删除组织机构
/// </summary>
/// <returns>结果</returns>
[HttpPost]
[HandleException]
public ActionResult PbomItemTreeDelete()
{
string PID = Request.Params["PID"];
DataResult<int> result = new DataResult<int>();
try
{
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
result = agent.InvokeServiceFunction<DataResult<int>>("PbomBLL_DelPbomItem", PID);
if (result.IsSuccess == false)
{
SetMessage(result.Msg);
return PbomItemTree();
}
SetMessage(AppResource.DeleteMessage);
return PbomItemTree();
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#endregion
}
}