Files
zszq-trs/YLErpWeb/Controllers/StructureInfoController.cs
T
2024-05-09 14:06:26 +08:00

209 lines
7.5 KiB
C#

using YLErp.Enums;
using YLErp.Modules.StructureModule;
namespace YLErp.Web.Controllers
{
public class StructureInfoController : BaseController
{
[MyAuthorize("系统管理-自定义结构")]
public ActionResult Index()
{
return RedirectToAction("Index2");//Index用不到了,后续的bug或者更新都在Index2
//ViewBag.ColumnTypes = EnumHelper.GetDescriptionsByEnum(typeof(StructureColumnTypeEnum)).ToDictionary(K => K.Value, V => V.Key);
//return View();
}
public JsonResult QueryStructureInfo(StructureRangeEnum range)
{
var list = new StructureService(CurUser).QueryStructureInfo(range);
return JsonSuccess("成功", list);
}
public JsonResult QueryStructureDetails(int id)
{
var list = new StructureService(CurUser).QueryStructure_Details(id);
return JsonSuccess("成功", list);
}
public JsonResult SaveStructureInfo(StructureRangeEnum range, List<Structure_Info> objs)
{
new StructureService(CurUser).SaveStructureInfo(range, objs);
return JsonSuccess();
}
public JsonResult SaveStructureDetails(int id, List<Structure_Details> objs)
{
new StructureService(CurUser).SaveStructureDetails(id, objs);
return JsonSuccess();
}
public JsonResult DeleteStructureInfo(int id)
{
new StructureService(CurUser).DeleteStructureInfo(id);
return JsonSuccess();
}
public JsonResult DeleteStructureDetails(int id)
{
new StructureService(CurUser).DeleteStructureDetails(id);
return JsonSuccess();
}
#region 自定义结构-new
[MyAuthorize("系统管理-自定义结构")]
public ActionResult Index2()
{
ViewBag.ColumnTypes = EnumHelper.GetDescriptionsByEnum(typeof(StructureColumnTypeEnum)).ToDictionary(K => K.Value, V => V.Key);
return View();
}
[HttpPost]
public JsonResult QueryStructureInfo2(StructureRangeEnum range)
{
var list = new StructureService(CurUser).QueryStructureInfo(range);
return Json(list);
}
/// <summary>
/// 新增修改结构信息
/// </summary>
/// <param name="enid"></param>
/// <returns></returns>
public ActionResult StructureInfoEdit(string enid, StructureRangeEnum range)
{
var r = new Structure_Info();
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
ViewBag.range = range;
if (isAdd)
{
return View(r);
}
var intid = DataProtectHelper.DecryptInt(enid);
r = yldb.Structure_Info.Find(intid);
return View(r);
}
/// <summary>
/// 新增修改结构信息
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
[HttpPost]
public JsonResult SaveStructureInfo2(Structure_Info obj)
{
var intid = string.IsNullOrEmpty(obj.EncryptId) ? 0 : DataProtectHelper.DecryptInt(obj.EncryptId);
if (intid == 0)
{
var lastData = yldb.Structure_Info.Where(n => n.Range == obj.Range).OrderByDescending(n => n.SortIndex).FirstOrDefault();
obj.SortIndex = lastData == null ? 1 : (lastData.SortIndex + 1);
}
if (obj.StructureName == "自定义")
{
throw new ServiceException("自定义要素中\"自定义\"为保留名称,不可使用");
}
List<Structure_Info> objs = new List<Structure_Info>();
objs.Add(obj);
var range = obj.Range;
new StructureService(CurUser).SaveStructureInfo(range, objs);
return JsonSuccess();
}
/// <summary>
/// 删除结构信息
/// </summary>
/// <param name="enid"></param>
/// <returns></returns>
[HttpPost]
public JsonResult DeleteStructureInfo2(string enid)
{
var intid = string.IsNullOrEmpty(enid) ? 0 : DataProtectHelper.DecryptInt(enid);
new StructureService(CurUser).DeleteStructureInfo(intid);
return JsonSuccess("删除成功");
}
/// <summary>
/// 获取字段信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public JsonResult AjaxGetStructureDetail(int id)
{
var list = new StructureService(CurUser).QueryStructure_Details(id);
return Json(list);
}
/// <summary>
/// 新增修改字段信息页面
/// </summary>
/// <param name="enid"></param>
/// <returns></returns>
public ActionResult StructureDetailEdit(string enid, int structureId = 0)
{
var r = new Structure_Details();
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
var range = yldb.Structure_Info.Where(O => O.id == structureId).Select(O => O.Range).FirstOrDefault();
ViewBag.showReportField = (range != StructureRangeEnum.EXTEND_INFO);
//#region 字段类型
var list = EnumHelper.GetDescriptionsByEnum(typeof(StructureColumnTypeEnum)).ToDictionary(K => K.Value, V => V.Key);
List<SelectListItem> selectListItems = new List<SelectListItem>();
foreach (var item in list)
{
SelectListItem selectListItem = new SelectListItem();
selectListItem.Text = item.Value;
selectListItem.Value = item.Key;
selectListItems.Add(selectListItem);
}
ViewBag.ColumnTypes = selectListItems;
//#endregion
ViewBag.structureId = structureId;
if (isAdd)
{
return View(r);
}
var intdetailid = DataProtectHelper.DecryptInt(enid);
r = yldb.Structure_Details.Find(intdetailid);
return View(r);
}
/// <summary>
/// 保存字段信息数据
/// </summary>
/// <param name="id"></param>
/// <param name="obj"></param>
/// <returns></returns>
public JsonResult SaveStructureDetails2(Structure_Details obj)
{
var intid = string.IsNullOrEmpty(obj.EncryptId) ? 0 : DataProtectHelper.DecryptInt(obj.EncryptId);
if (intid == 0)
{
var lastData = yldb.Structure_Details.Where(n => n.StructureId == obj.StructureId).OrderByDescending(n => n.SortIndex).FirstOrDefault();
obj.SortIndex = lastData == null ? 1 : (lastData.SortIndex + 1);
}
List<Structure_Details> objs = new List<Structure_Details>();
objs.Add(obj);
new StructureService(CurUser).SaveStructureDetails(obj.StructureId, objs);
return JsonSuccess();
}
/// <summary>
/// 删除字段信息
/// </summary>
/// <param name="enid"></param>
/// <returns></returns>
public JsonResult DeleteStructureDetail2(string enid)
{
var intid = string.IsNullOrEmpty(enid) ? 0 : DataProtectHelper.DecryptInt(enid);
new StructureService(CurUser).DeleteStructureDetails(intid);
return JsonSuccess("删除成功");
}
#endregion
}
}