Files
zszq-trs/YLErpWeb/Controllers/assetunitController.cs
T
tengyufan 864a29d6a8 #EQD-6605 国联民生-确认书编号规则调整(不基于甲方乙方判定)
feat: 国联民生收益互换按簿记分类生成交易编号

簿记账户新增“簿记分类”字段,支持代客、融券,新增账户默认代客,历史账户统一初始化为代客
簿记账户分类设为必填,列表、编辑及详情页面同步展示
修改已被交易引用的簿记账户分类时增加二次确认,并提示关联交易数量
国联民生收益互换交易编号不再根据甲乙方判断,改为根据簿记账户分类生成
代客使用数字序号,融券使用字母序号,分别从已有同客户同日编号的最大序号继续递增
保留手工交易编号优先逻辑,标准格式的手工编号参与后续最大序号计算
生成候选编号后检查完整交易编号是否已存在,存在则继续递增
新增簿记分类编号格式、最大序号计算及数字字母序列隔离专项单测
2026-08-05 15:55:01 +08:00

177 lines
5.5 KiB
C#

using YLErp.Modules.BasicDataModule;
namespace YLErp.Web.Controllers
{
public class AssetunitController : BaseController
{
public static List<SelectListItem> GetAllassetunit()
{
using (var db = new YLContext())
{
var query = from m in db.assetunit
select new SelectListItem
{
Text = m.Name,
Value = m.id + ""
};
return query.ToList();
}
}
public static List<SelectListItem> GetAllassetunitname()
{
using (var db = new YLContext())
{
var query = from m in db.assetunit
select new SelectListItem
{
Text = m.Name,
Value = m.Name
};
return query.ToList();
}
}
/// <summary>
/// 获取当前用户簿记账户selectlist
/// </summary>
public static List<SelectListItem> GetClientassetunit()
{
return DataCacheProvider.GetAssetUnitDataSource().AsQueryable().Select(m => new SelectListItem
{
Text = m.Name + "",
Value = m.id + ""
}).ToList();
}
/// <summary>
/// 获取当前用户簿记账户selectlist
/// </summary>
public static List<SelectListItem> GetClientassetunitname()
{
return DataCacheProvider.GetAssetUnitDataSource().AsQueryable().Select(m => new SelectListItem
{
Text = m.Name + "",
Value = m.Name + ""
}).ToList();
}
[MyAuthorize("系统管理-资产单元")]
public ActionResult AssetunitList()
{
return View();
}
[MyAuthorize("系统管理-资产单元")]
public ActionResult AssetunitgroupList()
{
return View();
}
[HttpPost]
public JsonResult AssetunitQuery(AssetUnitRequest req)
{
var sList = new AssetUnitDataService(CurUser).SearchList(req);
return Json(sList);
}
[HttpPost]
public JsonResult AssetunitgroupQuery(AssetUnitGroupRequest req)
{
var sList = new AssetUnitDataService(CurUser).SearchAssetUnitGroupList(req);
return Json(sList);
}
public ActionResult AssetunitView(string enid)
{
var intid = DecryptInt(enid);
var r = yldb.assetunit.Find(intid);
r.GroupName = yldb.assetunitgroup.Find(r.GroupId)?.Name;
return View(r);
}
public ActionResult AssetunitEdit(string enid)
{
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
if (isAdd)
{
return View(new AssetUnit { BookCategory = AssetUnit.BookCategoryAgency });
}
var intid = DecryptInt(enid);
var r = yldb.assetunit.Find(intid);
return View(r);
}
[HttpPost]
public JsonResult AssetunitEditJson(AssetUnit req, bool confirmBookCategoryChange = false)
{
if (!string.IsNullOrEmpty(req.EncryptId))
{
req.id = DecryptInt(req.EncryptId);
}
var service = new AssetUnitDataService(CurUser);
var referencedTradeCount = service.GetBookCategoryReferencedTradeCount(req);
if (!confirmBookCategoryChange && referencedTradeCount > 0)
{
return JsonSuccess(data: new
{
NeedBookCategoryChangeConfirm = true,
Message = $"该簿记账户已被 {referencedTradeCount} 笔交易引用,修改簿记分类可能导致历史编号口径不一致,确认继续?"
});
}
var r = service.SaveAssetUnit(req);
return JsonSuccess("更新成功", r);
}
public JsonResult GetAssetUnitTradeNames(int id)
{
var unit = new AssetUnitDataService(CurUser).GetAssetUnit(id);
return Json(unit.TraderNames);
}
public ActionResult AssetunitgroupEdit(string enid)
{
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
if (isAdd)
{
return View(new AssetUnitGroup());
}
var intid = DecryptInt(enid);
var r = yldb.assetunitgroup.Find(intid);
return View(r);
}
[HttpPost]
public JsonResult AssetunitgroupEditJson(AssetUnitGroup req)
{
if (!string.IsNullOrEmpty(req.EncryptId))
{
req.id = DecryptInt(req.EncryptId);
}
var r = new AssetUnitDataService(CurUser).SaveAssetUnitGroup(req);
return JsonSuccess("更新成功", r);
}
public JsonResult assetunitgroupDel(string id)
{
var intid = DecryptInt(id);
new AssetUnitDataService(CurUser).RemoveAssetUnitGroup(intid);
return JsonSuccess("删除成功");
}
[HttpPost]
public JsonResult Deleteassetunit(string id)
{
var intid = DecryptInt(id);
new AssetUnitDataService(CurUser).RemoveAssetUnit(intid);
return JsonSuccess("删除成功");
}
}
}