using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Central.Control.Domain;
using System.Collections;
using MES.Production.Service.IService;
using Ant.Service.Common;
using System.Linq.Expressions;
using Ant.Service.Common.Enums;
using ChangFa.Machinery.WebPage.Controllers;
using MES.Production.Entity.Entity;
using MES.Production.Entity.Extensions;
using Ant.Service.Utility;
namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers
{
///
/// 控制器描述:对岗位信息的CURD管理
/// 创建标识:add by 季健国 2013-8-2 10:20
///
public class DeviceSetController : BaseController
{
#region 基本视图
///
/// 加载列表
///
///
[UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "View")]
public ActionResult Index()
{
try
{
#region 处理查询参数
#endregion
#region 加载列表
var result = BindList();
ViewBag.Search = base.keywords;
#endregion
return View(result);
}
catch (Exception e)
{
WriteLog(enumOperator.Select, "加载设备列表:", e);
throw e.InnerException;
}
}
///
/// 绑定页面需要的属性
///
public PageInfo BindList()
{
using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
{
orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
Ant.ORM.RequestModel request = new Ant.ORM.RequestModel();
request.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-BindList" };
var query = orm.Queryable().Where(p => p.IsDelete == 0);
// 检索条件
query = query.WhereIf(!string.IsNullOrEmpty(keywords), p => p.Name.Contains(keywords));
// 分页查询
var skipLimit = PageCollection.GetSkipLimit(base.page, base.pagesize);
// 具体查询
var list = query.OrderByDesc(o => o.ModifyDT).Skip(skipLimit.Item1).Top(skipLimit.Item2).ToList(request);
// 查出总数
var total = query.Count();
return new PageInfo(base.page, base.pagesize, total, list.ResultModel);
}
}
///
/// 加载详情
///
///
[HttpGet]
[UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Detail")]
public ActionResult Detail(string id)
{
using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
{
orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
var result = orm.Queryable().Where(p => p.Id == id).FirstOrDefault();
var _entity = result.ResultModel as SYS_Device ?? new SYS_Device();
return View(_entity);
}
}
///
/// 保存岗位
///
[UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Add,Edit")]
public ActionResult Save(SYS_Device entity)
{
Ant.ORM.RequestModel sqlQueryReq = new Ant.ORM.RequestModel();
sqlQueryReq.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-Save" };
bool isEdit = false;
JsonHelper json = new JsonHelper() { Msg = "保存设备成功", Status = "n", ReUrl = "/DeviceSet/Index" };
try
{
if (entity != null)
{
Ant.ORM.AntORM orm = new Ant.ORM.AntORM();
orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
var _entity = new SYS_Device();
//添加
if (string.IsNullOrEmpty(entity.Id))
{
string id = IdGenerator.NewId();
_entity = entity;
_entity.Id = id;
_entity.Password = id;
_entity.CreateDT = DateTime.Now;
_entity.CreateBY = CurrentUser.Id.ToString();
_entity.ModifyDT = DateTime.Now;
}
else //修改
{
orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
var result = orm.GetEntity(entity, sqlQueryReq);
_entity = entity;
_entity.Name = entity.Name;
_entity.Code = entity.Code;
_entity.Address = entity.Address;
_entity.ModifyDT = DateTime.Now;
_entity.ModifyBY = CurrentUser.Id.ToString();
isEdit = true;
}
//判断岗位是否重名
var sqlQuery = orm.Queryable().Where(p => p.Code == entity.Code && p.Id != entity.Id).ToList();
List sames = sqlQuery.ResultModel;
if (sames?.Count > 0)
{
json.Msg = $"设备编码{entity.Code}已存在,不能重复添加";
}
else
{
Ant.ORM.ResponseModel saveResult = new Ant.ORM.ResponseModel();
if (isEdit)
{
saveResult = orm.UpdateByLambda(_entity, p => p.Id == _entity.Id, sqlQueryReq);
}
else
{
saveResult = orm.Save(_entity, sqlQueryReq);
}
if (saveResult.IsSuccess)
{
json.Status = "y";
}
else
{
json.Msg = "保存失败";
}
}
orm.Dispose();
}
else
{
json.Msg = "未找到需要保存的设备";
}
if (isEdit)
{
WriteLog(enumOperator.Edit, "修改设备,结果:" + json.Msg, enumLog4net.INFO);
}
else
{
WriteLog(enumOperator.Add, "添加设备,结果:" + json.Msg, enumLog4net.INFO);
}
}
catch (Exception e)
{
json.Msg = "设备岗位发生内部错误!";
WriteLog(enumOperator.None, "保存设备:", e);
}
return Json(json);
}
///
/// 删除岗位
///
[UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "Remove")]
public ActionResult Delete(string idList)
{
JsonHelper json = new JsonHelper() { Msg = "删除设备完毕", Status = "n" };
try
{
if (!string.IsNullOrEmpty(idList))
{
var ids = idList.Trim(',').Split(',').ToArray();
using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
{
orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
Ant.ORM.RequestModel sqlQueryReq = new Ant.ORM.RequestModel();
sqlQueryReq.newSt = new Ant.ORM.SqlNote() { Author = "smj", NewSt = new System.Diagnostics.StackTrace(true), SqlDesc = "DeviceSetController-Delete" };
var queryResult = orm.Queryable().Where(p => ids.Contains(p.Id)).ToList(sqlQueryReq);
List olds = queryResult?.ResultModel;
olds?.ForEach(item => {
item.IsDelete = 1;
orm.UpdateByLambda(item, p => p.Id == item.Id, sqlQueryReq);
});
json.Status = "y";
}
}
else
{
json.Msg = "未找到要删除的设备记录";
}
WriteLog(enumOperator.Remove, "删除设备,结果:" + json.Msg, enumLog4net.WARN);
}
catch(Exception e)
{
json.Msg = "删除设备发生内部错误!";
WriteLog(enumOperator.Remove, "删除设备:", e);
}
return Json(json);
}
///
/// 加载详情
///
///
[HttpGet]
[UserAuthorizeAttribute(ModuleAlias = "DeviceSet", OperaAction = "ShowPassword")]
public ActionResult ShowPassword(string id)
{
using (Ant.ORM.AntORM orm = new Ant.ORM.AntORM())
{
orm.db = Ant.Data.DataAccessFactory.CreateDataConnection("CyclingItem");
var result = orm.Queryable().Where(p => p.Id == id).FirstOrDefault();
SYS_Device _entity = result.ResultModel;
return View(_entity);
}
}
#endregion
}
}