@@ -0,0 +1,117 @@ | |||
using Learun.Util; | |||
using System.Data; | |||
using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; | |||
using System.Web.Mvc; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:06 | |||
/// 描 述:缴费订单管理 | |||
/// </summary> | |||
public class FinaChargeStuOrderController : MvcControllerBase | |||
{ | |||
private FinaChargeStuOrderIBLL finaChargeStuOrderIBLL = new FinaChargeStuOrderBLL(); | |||
#region 视图功能 | |||
/// <summary> | |||
/// 主页面 | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
public ActionResult Index() | |||
{ | |||
return View(); | |||
} | |||
/// <summary> | |||
/// 表单页 | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
public ActionResult Form() | |||
{ | |||
return View(); | |||
} | |||
#endregion | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="pagination">分页参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetPageList(string pagination, string queryJson) | |||
{ | |||
Pagination paginationobj = pagination.ToObject<Pagination>(); | |||
var data = finaChargeStuOrderIBLL.GetPageList(paginationobj, queryJson); | |||
var jsonData = new | |||
{ | |||
rows = data, | |||
total = paginationobj.total, | |||
page = paginationobj.page, | |||
records = paginationobj.records | |||
}; | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 获取表单数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetFormData(string keyValue) | |||
{ | |||
var FinaChargeStuOrderData = finaChargeStuOrderIBLL.GetFinaChargeStuOrderEntity( keyValue ); | |||
var jsonData = new { | |||
FinaChargeStuOrder = FinaChargeStuOrderData, | |||
}; | |||
return Success(jsonData); | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult DeleteForm(string keyValue) | |||
{ | |||
finaChargeStuOrderIBLL.DeleteEntity(keyValue); | |||
return Success("删除成功!"); | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="strEntity">实体</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[ValidateAntiForgeryToken] | |||
[AjaxOnly] | |||
public ActionResult SaveForm(string keyValue, string strEntity) | |||
{ | |||
FinaChargeStuOrderEntity entity = strEntity.ToObject<FinaChargeStuOrderEntity>(); | |||
finaChargeStuOrderIBLL.SaveEntity(keyValue,entity); | |||
if (string.IsNullOrEmpty(keyValue)) | |||
{ | |||
} | |||
return Success("保存成功!"); | |||
} | |||
#endregion | |||
} | |||
} |
@@ -1,8 +1,18 @@ | |||
using Learun.Util; | |||
using System; | |||
using Learun.Util; | |||
using System.Data; | |||
using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; | |||
using System.Web.Mvc; | |||
using System.Collections.Generic; | |||
using System.Drawing; | |||
using System.IO; | |||
using System.Security.Cryptography; | |||
using System.Text; | |||
using System.Web; | |||
using Learun.Application.Base.SystemModule; | |||
using Learun.Application.TwoDevelopment.EducationalAdministration; | |||
using Newtonsoft.Json; | |||
using ThoughtWorks.QRCode.Codec; | |||
namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
{ | |||
@@ -16,6 +26,7 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
public class FinaChargeStuYearController : MvcControllerBase | |||
{ | |||
private FinaChargeStuYearIBLL finaChargeStuYearIBLL = new FinaChargeStuYearBLL(); | |||
private FinaChargeStuOrderIBLL finaChargeStuOrderIbll = new FinaChargeStuOrderBLL(); | |||
#region 视图功能 | |||
@@ -28,6 +39,12 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
{ | |||
return View(); | |||
} | |||
[HttpGet] | |||
public ActionResult IndexForStudent() | |||
{ | |||
return View(); | |||
} | |||
/// <summary> | |||
/// 表单页 | |||
/// <summary> | |||
@@ -38,6 +55,12 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
return View(); | |||
} | |||
[HttpGet] | |||
public ActionResult PayFeeForm() | |||
{ | |||
return View(); | |||
} | |||
[HttpGet] | |||
public ActionResult GenerateByConditionForm() | |||
{ | |||
@@ -90,6 +113,28 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
}; | |||
return Success(jsonData); | |||
} | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetPayFeeDetail(string keyValue) | |||
{ | |||
//学生基础信息 | |||
var FinaChargeStuYearData = finaChargeStuYearIBLL.GetFinaChargeStuYearEntity(keyValue); | |||
//学生缴费明细 | |||
var FinaChargeStuItemList = finaChargeStuYearIBLL.GetFinaChargeStuItemList(keyValue); | |||
foreach (var finaChargeStuYearItemEntity in FinaChargeStuItemList) | |||
{ | |||
finaChargeStuYearItemEntity.FSBlance = Math.Abs(finaChargeStuYearItemEntity.FSBlance.Value); | |||
} | |||
var jsonData = new | |||
{ | |||
StuInfoFreshData = FinaChargeStuYearData, | |||
FinaChargesStandardList = FinaChargeStuItemList, | |||
PayFeeTotal = Math.Abs(FinaChargeStuYearData.FSBlance.Value), | |||
SJAmount = FinaChargeStuYearData.SJAmount | |||
}; | |||
return Success(jsonData); | |||
} | |||
#endregion | |||
#region 提交数据 | |||
@@ -136,5 +181,130 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
} | |||
#endregion | |||
#region 二维码缴费 | |||
/// <summary> | |||
/// 生成缴费二维码 | |||
/// </summary> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult PayFeeQRCode(string strEntity, string detailList) | |||
{ | |||
FinaChargeStuYearEntity entity = strEntity.ToObject<FinaChargeStuYearEntity>(); | |||
List<FinaChargeStuOrderDetailEntity> list = detailList.ToObject<List<FinaChargeStuOrderDetailEntity>>(); | |||
var imgUrl = ""; | |||
Random ran = new Random(); | |||
string merchantid = "105000082201406";//商户号 | |||
string posid = "043724806";//商户柜台代码 | |||
string branchid = "510000000";//分行代码 | |||
string orderid = DateTime.Now.ToString("yyyyMMddhhmmss") + ran.Next(0, 100000); | |||
string payment = entity.PayMoney.ToString(); | |||
string curcode = "01"; | |||
string txcode = "530550"; | |||
string remark1 = entity.StuNo; | |||
string remark2 = entity.FSYear.ToString(); | |||
string returntype = "3"; | |||
string timeout = DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"); | |||
string pub32tr2 = "40d987faa793a0a27e7a86ef020111"; | |||
string bankURL = "https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?CCB_IBSVersion=V6"; | |||
string tmp = "MERCHANTID=" + merchantid + "&POSID=" + posid + "&BRANCHID=" + branchid + "&ORDERID=" + orderid; | |||
tmp += "&PAYMENT=" + payment + "&CURCODE=" + curcode + "&TXCODE=" + txcode + "&REMARK1=" + remark1; | |||
tmp += "&REMARK2=" + remark2 + "&RETURNTYPE=" + returntype + "&TIMEOUT=" + timeout; | |||
MD5 md5 = MD5.Create(); | |||
string tmp1 = tmp; | |||
tmp += "&PUB=" + pub32tr2; | |||
byte[] buffer = Encoding.Default.GetBytes(tmp); | |||
byte[] md5Buffer = md5.ComputeHash(buffer); | |||
string strMd5 = ""; | |||
//hdnOrderId.Value = orderid; | |||
foreach (byte item in md5Buffer) | |||
{ | |||
strMd5 += item.ToString("x2"); | |||
} | |||
String url = bankURL + "&" + tmp1 + "&MAC=" + strMd5; | |||
string reJson = HttpMethods.Post(url); | |||
LogEntity logEntity = new LogEntity(); | |||
logEntity.F_CategoryId = 121; | |||
logEntity.F_ExecuteResultJson = reJson; | |||
logEntity.WriteLog(); | |||
//HttpConnect conn = new HttpConnect(); | |||
//string reJson = conn.Post(url, ""); | |||
JsonBean MemberInfoList = JsonConvert.DeserializeObject<JsonBean>(reJson); | |||
if (MemberInfoList.SUCCESS.Equals("true")) | |||
{ | |||
string imgCode = HttpMethods.Post(MemberInfoList.PAYURL); | |||
logEntity.F_CategoryId = 121; | |||
logEntity.F_ExecuteResultJson = imgCode; | |||
logEntity.WriteLog(); | |||
MemberInfoList = JsonConvert.DeserializeObject<JsonBean>(imgCode); | |||
if (MemberInfoList.SUCCESS.Equals("true")) | |||
{ | |||
imgUrl = CreateQRImg(MemberInfoList.QRURL, orderid); | |||
} | |||
} | |||
if (!string.IsNullOrEmpty(imgUrl)) | |||
{ | |||
entity.orderid = orderid; | |||
finaChargeStuOrderIbll.SaveOrderData(entity, list); | |||
} | |||
return Success(imgUrl); | |||
} | |||
public class JsonBean | |||
{ | |||
/// <summary> | |||
/// | |||
/// </summary> | |||
public string SUCCESS { get; set; } | |||
public string PAYURL { get; set; } | |||
public string QRURL { get; set; } | |||
} | |||
/// <summary> | |||
/// 生成并保存二维码图片的方法 | |||
/// </summary> | |||
/// <param name="str">输入的内容</param> | |||
public string CreateQRImg(string str, string orderId) | |||
{ | |||
Random ran = new Random(); | |||
Bitmap bt; | |||
str = HttpUtility.UrlDecode(str); | |||
string enCodeString = str; | |||
//生成设置编码实例 | |||
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); | |||
//设置二维码的规模,默认4 | |||
qrCodeEncoder.QRCodeScale = 3; | |||
//设置二维码的版本,默认7 | |||
qrCodeEncoder.QRCodeVersion = 7; | |||
//设置错误校验级别,默认中等 | |||
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; | |||
//生成二维码图片 | |||
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8); | |||
//二维码图片的名称 | |||
string filename = orderId; | |||
if (!Directory.Exists(Server.MapPath("~/Content/images/QRCode/"))) | |||
{ | |||
Directory.CreateDirectory(Server.MapPath("~/Content/images/QRCode/")); | |||
} | |||
var path = Server.MapPath("~/Content/images/QRCode/") + filename + ".jpg"; | |||
//保存二维码图片在photos路径下 | |||
try | |||
{ | |||
bt.Save(path); | |||
} | |||
catch (Exception ex) | |||
{ | |||
return ""; | |||
} | |||
//图片控件要显示的二维码图片路径 | |||
return "/Content/images/QRCode/" + filename + ".jpg"; | |||
} | |||
#endregion | |||
} | |||
} |
@@ -142,14 +142,13 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
if (!string.IsNullOrEmpty(path)) | |||
{ | |||
DataTable dt = ExcelHelper.ExcelImport(path); | |||
(DataTable failDt, int snum, int fnum) res; | |||
res = finaChargeStuYearItemIBLL.ExecuteImportExcel(dt, fileGuid, queryJson); | |||
string res = finaChargeStuYearItemIBLL.ExecuteImportExcel(dt, fileGuid, queryJson); | |||
var data = new | |||
{ | |||
Success =10, | |||
Fail = 0 | |||
Success = res.Split('|')[0], | |||
Fail = res.Split('|')[1] | |||
}; | |||
return Success(data); | |||
return JsonResult(data); | |||
} | |||
else | |||
{ | |||
@@ -0,0 +1,117 @@ | |||
using Learun.Util; | |||
using System.Data; | |||
using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; | |||
using System.Web.Mvc; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:14 | |||
/// 描 述:FinaChargeStuOrderDetail | |||
/// </summary> | |||
public class 缴费订单明细Controller : MvcControllerBase | |||
{ | |||
private 缴费订单明细IBLL 缴费订单明细IBLL = new 缴费订单明细BLL(); | |||
#region 视图功能 | |||
/// <summary> | |||
/// 主页面 | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
public ActionResult Index() | |||
{ | |||
return View(); | |||
} | |||
/// <summary> | |||
/// 表单页 | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
public ActionResult Form() | |||
{ | |||
return View(); | |||
} | |||
#endregion | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="pagination">分页参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetPageList(string pagination, string queryJson) | |||
{ | |||
Pagination paginationobj = pagination.ToObject<Pagination>(); | |||
var data = 缴费订单明细IBLL.GetPageList(paginationobj, queryJson); | |||
var jsonData = new | |||
{ | |||
rows = data, | |||
total = paginationobj.total, | |||
page = paginationobj.page, | |||
records = paginationobj.records | |||
}; | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 获取表单数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetFormData(string keyValue) | |||
{ | |||
var FinaChargeStuOrderDetailData = 缴费订单明细IBLL.GetFinaChargeStuOrderDetailEntity( keyValue ); | |||
var jsonData = new { | |||
FinaChargeStuOrderDetail = FinaChargeStuOrderDetailData, | |||
}; | |||
return Success(jsonData); | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult DeleteForm(string keyValue) | |||
{ | |||
缴费订单明细IBLL.DeleteEntity(keyValue); | |||
return Success("删除成功!"); | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="strEntity">实体</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[ValidateAntiForgeryToken] | |||
[AjaxOnly] | |||
public ActionResult SaveForm(string keyValue, string strEntity) | |||
{ | |||
FinaChargeStuOrderDetailEntity entity = strEntity.ToObject<FinaChargeStuOrderDetailEntity>(); | |||
缴费订单明细IBLL.SaveEntity(keyValue,entity); | |||
if (string.IsNullOrEmpty(keyValue)) | |||
{ | |||
} | |||
return Success("保存成功!"); | |||
} | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,59 @@ | |||
@{ | |||
ViewBag.Title = "缴费订单管理"; | |||
Layout = "~/Views/Shared/_Form.cshtml"; | |||
} | |||
<div class="lr-form-wrap" id="form"> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">缴费年度</div> | |||
<input id="YearNo" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">学号</div> | |||
<input id="StuNo" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">订单编号</div> | |||
<input id="orderid" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">应缴金额</div> | |||
<input id="YJAmount" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">实缴金额</div> | |||
<input id="SJAmount" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">待缴金额</div> | |||
<input id="DJAmount" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">超出余额</div> | |||
<input id="NowBlance" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">缴费状态</div> | |||
<div id="Status" ></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">订单生成时间</div> | |||
<input id="PlaceOrderTime" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">付款时间</div> | |||
<input id="PayTime" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">支付方式</div> | |||
<div id="PayMode" ></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">订单来源</div> | |||
<div id="OrderType" ></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrder" > | |||
<div class="lr-form-item-title">银行订单号</div> | |||
<input id="BankOrder" type="text" class="form-control" /> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/ReceiveSendFeeManagement/Views/FinaChargeStuOrder/Form.js") |
@@ -0,0 +1,53 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2023-08-12 22:06 | |||
* 描 述:缴费订单管理 | |||
*/ | |||
var acceptClick; | |||
var keyValue = request('keyValue'); | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var page = { | |||
init: function () { | |||
$('.lr-form-wrap').lrscroll(); | |||
page.bind(); | |||
page.initData(); | |||
}, | |||
bind: function () { | |||
$('#Status').lrDataItemSelect({ code: 'PayStatus' }); | |||
$('#PayMode').lrDataItemSelect({ code: 'PayMode' }); | |||
$('#OrderType').lrDataItemSelect({ code: 'OrderType' }); | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
$.lrSetForm(top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuOrder/GetFormData?keyValue=' + keyValue, function (data) { | |||
for (var id in data) { | |||
if (!!data[id].length && data[id].length > 0) { | |||
$('#' + id ).jfGridSet('refreshdata', data[id]); | |||
} | |||
else { | |||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); | |||
} | |||
} | |||
}); | |||
} | |||
} | |||
}; | |||
// 保存数据 | |||
acceptClick = function (callBack) { | |||
if (!$('body').lrValidform()) { | |||
return false; | |||
} | |||
var postData = { | |||
strEntity: JSON.stringify($('body').lrGetFormData()) | |||
}; | |||
$.lrSaveForm(top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuOrder/SaveForm?keyValue=' + keyValue, postData, function (res) { | |||
// 保存成功后才回调 | |||
if (!!callBack) { | |||
callBack(); | |||
} | |||
}); | |||
}; | |||
page.init(); | |||
} |
@@ -0,0 +1,57 @@ | |||
@{ | |||
ViewBag.Title = "缴费订单管理"; | |||
Layout = "~/Views/Shared/_Index.cshtml"; | |||
} | |||
<div class="lr-layout " > | |||
<div class="lr-layout-center"> | |||
<div class="lr-layout-wrap lr-layout-wrap-notitle "> | |||
<div class="lr-layout-tool"> | |||
<div class="lr-layout-tool-left"> | |||
<div class="lr-layout-tool-item"> | |||
<div id="datesearch"></div> | |||
</div> | |||
<div class="lr-layout-tool-item"> | |||
<div id="multiple_condition_query"> | |||
<div class="lr-query-formcontent"> | |||
<div class="col-xs-6 lr-form-item"> | |||
<div class="lr-form-item-title">缴费年度</div> | |||
<input id="YearNo" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-6 lr-form-item"> | |||
<div class="lr-form-item-title">学号</div> | |||
<input id="StuNo" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-6 lr-form-item"> | |||
<div class="lr-form-item-title">缴费状态</div> | |||
<div id="Status"></div> | |||
</div> | |||
<div class="col-xs-6 lr-form-item"> | |||
<div class="lr-form-item-title">支付方式</div> | |||
<div id="PayMode"></div> | |||
</div> | |||
<div class="col-xs-6 lr-form-item"> | |||
<div class="lr-form-item-title">订单来源</div> | |||
<div id="OrderType"></div> | |||
</div> | |||
<div class="col-xs-6 lr-form-item"> | |||
<div class="lr-form-item-title">银行订单号</div> | |||
<input id="BankOrder" type="text" class="form-control" /> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="lr-layout-tool-right"> | |||
<div class=" btn-group btn-group-sm"> | |||
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> | |||
</div> | |||
<div class=" btn-group btn-group-sm" learun-authorize="yes"> | |||
<a id="lr_import" class="btn btn-default"><i class="fa fa-plus"></i> 导入</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="lr-layout-body" id="gridtable"></div> | |||
</div> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/ReceiveSendFeeManagement/Views/FinaChargeStuOrder/Index.js") |
@@ -0,0 +1,120 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2023-08-12 22:06 | |||
* 描 述:缴费订单管理 | |||
*/ | |||
var refreshGirdData; | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var startTime; | |||
var endTime; | |||
var page = { | |||
init: function () { | |||
page.initGird(); | |||
page.bind(); | |||
}, | |||
bind: function () { | |||
// 时间搜索框 | |||
$('#datesearch').lrdate({ | |||
dfdata: [ | |||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, | |||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, | |||
{ name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, | |||
{ name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } } | |||
], | |||
// 月 | |||
mShow: false, | |||
premShow: false, | |||
// 季度 | |||
jShow: false, | |||
prejShow: false, | |||
// 年 | |||
ysShow: false, | |||
yxShow: false, | |||
preyShow: false, | |||
yShow: false, | |||
// 默认 | |||
dfvalue: '1', | |||
selectfn: function (begin, end) { | |||
startTime = begin; | |||
endTime = end; | |||
page.search(); | |||
} | |||
}); | |||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||
page.search(queryJson); | |||
}, 220, 400); | |||
$('#Status').lrDataItemSelect({ code: 'PayStatus' }); | |||
$('#PayMode').lrDataItemSelect({ code: 'PayMode' }); | |||
$('#OrderType').lrDataItemSelect({ code: 'OrderType' }); | |||
// 刷新 | |||
$('#lr_refresh').on('click', function () { | |||
location.reload(); | |||
}); | |||
// 导入 | |||
$('#lr_import').on('click', function () { | |||
}); | |||
}, | |||
// 初始化列表 | |||
initGird: function () { | |||
$('#gridtable').lrAuthorizeJfGrid({ | |||
url: top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuOrder/GetPageList', | |||
headData: [ | |||
{ label: "缴费年度", name: "YearNo", width: 100, align: "left"}, | |||
{ label: "学号", name: "StuNo", width: 100, align: "left"}, | |||
{ label: "订单编号", name: "orderid", width: 100, align: "left"}, | |||
{ label: "应缴金额", name: "YJAmount", width: 100, align: "left"}, | |||
{ label: "实缴金额", name: "SJAmount", width: 100, align: "left"}, | |||
{ label: "待缴金额", name: "DJAmount", width: 100, align: "left"}, | |||
{ label: "超出余额", name: "NowBlance", width: 100, align: "left"}, | |||
{ label: "缴费状态", name: "Status", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op,$cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'PayStatus', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
}}, | |||
{ label: "订单生成时间", name: "PlaceOrderTime", width: 100, align: "left"}, | |||
{ label: "付款时间", name: "PayTime", width: 100, align: "left"}, | |||
{ label: "支付方式", name: "PayMode", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op,$cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'PayMode', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
}}, | |||
{ label: "订单来源", name: "OrderType", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op,$cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'OrderType', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
}}, | |||
{ label: "银行订单号", name: "BankOrder", width: 100, align: "left"}, | |||
], | |||
mainId:'Id', | |||
isPage: true | |||
}); | |||
}, | |||
search: function (param) { | |||
param = param || {}; | |||
param.StartTime = startTime; | |||
param.EndTime = endTime; | |||
$('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) }); | |||
} | |||
}; | |||
refreshGirdData = function () { | |||
$('#gridtable').jfGridSet('reload'); | |||
}; | |||
page.init(); | |||
} |
@@ -117,22 +117,24 @@ var bootstrap = function ($, learun) { | |||
} | |||
}, | |||
{ label: "年级", name: "Grade", width: 100, align: "left" }, | |||
{ label: "缴费年度", name: "FSYear", width: 100, align: "left"}, | |||
{ label: "应缴金额", name: "YJAmount", width: 100, align: "left"}, | |||
{ label: "实缴金额", name: "SJAmount", width: 100, align: "left"}, | |||
{ label: "缴费年度余额", name: "FSBlance", width: 100, align: "left"}, | |||
{ label: "缴费状态", name: "PayFeeStatus", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op,$cell) { | |||
learun.clientdata.getAsync('dataItem', { | |||
key: value, | |||
code: 'PayStatus', | |||
callback: function (_data) { | |||
callback(_data.text); | |||
} | |||
}); | |||
}}, | |||
{ label: "缴费年度", name: "FSYear", width: 100, align: "left" }, | |||
{ label: "应缴金额", name: "YJAmount", width: 100, align: "left" }, | |||
{ label: "实缴金额", name: "SJAmount", width: 100, align: "left" }, | |||
{ label: "缴费年度余额", name: "FSBlance", width: 100, align: "left" }, | |||
{ | |||
label: "缴费状态", name: "PayFeeStatus", width: 100, align: "left", | |||
formatter: function (cellvalue, row) { | |||
if (cellvalue === 0) { | |||
return '<span class=\"label label-default\">未缴费</span>'; | |||
} else if (cellvalue === 1) { | |||
return '<span class=\"label label-success\">已缴费</span>'; | |||
} else { | |||
return '<span class=\"label label-warning\">部分缴纳</span>'; | |||
} | |||
} | |||
}, | |||
], | |||
mainId:'FSYId', | |||
mainId: 'FSYId', | |||
isPage: true | |||
}); | |||
page.search(); | |||
@@ -140,7 +142,7 @@ var bootstrap = function ($, learun) { | |||
search: function (param) { | |||
param = param || {}; | |||
param.fSYear = fSYear; | |||
$('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) }); | |||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||
} | |||
}; | |||
refreshGirdData = function () { | |||
@@ -0,0 +1,31 @@ | |||
@{ | |||
ViewBag.Title = "学生年度缴费管理"; | |||
Layout = "~/Views/Shared/_Index.cshtml"; | |||
} | |||
<div class="lr-layout"> | |||
<div class="lr-layout-center"> | |||
<div class="lr-layout-wrap lr-layout-wrap-notitle"> | |||
<div class="lr-layout-tool"> | |||
<div class="lr-layout-tool-left"> | |||
<div class="lr-layout-tool-item"> | |||
<div id="FSYear" style="width: 150px;"></div> | |||
</div> | |||
<div class="lr-layout-tool-item"> | |||
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i> 查询</a> | |||
</div> | |||
</div> | |||
<div class="lr-layout-tool-right"> | |||
<div class=" btn-group btn-group-sm"> | |||
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> | |||
</div> | |||
<div class=" btn-group btn-group-sm"> | |||
<a id="lr_pay" class="btn btn-default"><i class="fa fa-qrcode"></i> 二维码缴费</a> | |||
<a id="lr_detail" class="btn btn-default"><i class="fa fa-list"></i> 缴费记录</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="lr-layout-body" id="gridtable"></div> | |||
</div> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/ReceiveSendFeeManagement/Views/FinaChargeStuYear/IndexForStudent.js") |
@@ -0,0 +1,145 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2023-08-07 15:52 | |||
* 描 述:学生年度缴费管理 | |||
*/ | |||
var refreshGirdData; | |||
var fSYear; | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var page = { | |||
init: function () { | |||
page.bind(); | |||
setTimeout(function () { | |||
page.initGird(); | |||
}, 500);//延迟 | |||
}, | |||
bind: function () { | |||
$('#FSYear').lrselect({ | |||
placeholder:"请选择缴费年度", | |||
url: top.$.rootUrl + '/EducationalAdministration/CdMajor/GenerateNearByYear', | |||
value: 'value', | |||
text: 'text' | |||
}); | |||
var now = new Date(); | |||
fSYear = now.getFullYear(); | |||
$('#FSYear').lrselectSet(fSYear); | |||
$('#btn_Search').on('click', function () { | |||
page.search(); | |||
}); | |||
// 刷新 | |||
$('#lr_refresh').on('click', function () { | |||
location.reload(); | |||
}); | |||
//二维码缴费 | |||
$('#lr_pay').on('click', function () { | |||
var keyValue = $('#gridtable').jfGridValue('FSYId'); | |||
var selectedRow = $('#gridtable').jfGridGet('rowdata'); | |||
if (learun.checkrow(keyValue)) { | |||
if (selectedRow.PayFeeStatus == "1") { | |||
learun.alert.warning("当前学生已缴费!"); | |||
return; | |||
} | |||
learun.layerForm({ | |||
id: 'form_payCode', | |||
title: '二维码缴费', | |||
url: top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuYear/PayFeeForm?keyValue=' + keyValue, | |||
width: 800, | |||
height: 690, | |||
btn: null | |||
}); | |||
} | |||
}); | |||
}, | |||
// 初始化列表 | |||
initGird: function () { | |||
$('#gridtable').jfGrid({ | |||
url: top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuYear/GetPageList', | |||
headData: [ | |||
{ label: "学号", name: "StuNo", width: 100, align: "left" }, | |||
{ label: "姓名", name: "StuName", width: 100, align: "left" }, | |||
{ | |||
label: "性别", name: "GenderNo", width: 80, align: "left", | |||
formatter: function (cellvalue) { | |||
return cellvalue == true ? "男" : "女"; | |||
} | |||
}, | |||
{ label: "身份证号", name: "IdentityCardNo", width: 100, align: "left" }, | |||
{ | |||
label: "系所", name: "DeptNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo', | |||
key: value, | |||
keyId: 'deptno', | |||
callback: function (_data) { | |||
callback(_data['deptname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ | |||
label: "专业", name: "MajorNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo', | |||
key: value, | |||
keyId: 'majorno', | |||
callback: function (_data) { | |||
callback(_data['majorname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ | |||
label: "班级", name: "ClassNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj', | |||
key: value, | |||
keyId: 'classno', | |||
callback: function (_data) { | |||
callback(_data['classname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ label: "年级", name: "Grade", width: 100, align: "left" }, | |||
{ label: "缴费年度", name: "FSYear", width: 100, align: "left" }, | |||
{ label: "应缴金额", name: "YJAmount", width: 100, align: "left" }, | |||
{ label: "实缴金额", name: "SJAmount", width: 100, align: "left" }, | |||
{ label: "缴费年度余额", name: "FSBlance", width: 100, align: "left" }, | |||
{ | |||
label: "缴费状态", name: "PayFeeStatus", width: 100, align: "left", | |||
formatter: function (cellvalue, row) { | |||
if (cellvalue === 0) { | |||
return '<span class=\"label label-default\">未缴费</span>'; | |||
} else if (cellvalue === 1) { | |||
return '<span class=\"label label-success\">已缴费</span>'; | |||
} else { | |||
return '<span class=\"label label-warning\">部分缴纳</span>'; | |||
} | |||
} | |||
}, | |||
], | |||
mainId: 'FSYId', | |||
isPage: true | |||
}); | |||
page.search(); | |||
}, | |||
search: function (param) { | |||
param = param || {}; | |||
var userinfo = learun.clientdata.get(['userinfo']); | |||
param.StuNo = userinfo.account; | |||
param.F_CheckMark = 1; | |||
param.FSYear = $("#FSYear").lrselectGet(); | |||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||
} | |||
}; | |||
refreshGirdData = function () { | |||
$('#gridtable').jfGridSet('reload'); | |||
}; | |||
page.init(); | |||
} |
@@ -0,0 +1,50 @@ | |||
@{ | |||
ViewBag.Title = "新生缴费管理"; | |||
Layout = "~/Views/Shared/_Form.cshtml"; | |||
} | |||
<style> | |||
.title { | |||
text-align: center; | |||
font-size: 16px; | |||
margin-bottom: 10px; | |||
} | |||
#form { | |||
padding: 10px 20px; | |||
} | |||
#btnBox { | |||
text-align: center; | |||
} | |||
#btnBox > div { | |||
margin-right: 50px; | |||
margin-top: 20px; | |||
} | |||
.table { | |||
text-align: center; | |||
margin: auto; | |||
} | |||
.tableLeft { | |||
width: 20%; | |||
font-weight: bold; | |||
} | |||
.tableCenter { | |||
width: 55%; | |||
} | |||
</style> | |||
<div class="lr-form-wrap" id="form"> | |||
<div class="title">费用明细</div> | |||
<table class="table table-bordered" id="PayFeeDetail"></table> | |||
<div id="btnBox"> | |||
<div id="confirmPayFee" class="btn btn-primary">支付</div> | |||
<div id="cancelPayFee" class="btn btn-default">取消</div> | |||
<div id="queryPayFee" class="btn btn-primary">查询缴费结果</div> | |||
</div> | |||
<div id="btnBox"> | |||
<span style="color: red;">注意:1.点击【支付】按钮使用手机支付宝、微信扫描右上角二维码进行支付。<br />2.请于支付成功5分钟后,点击【查询缴费结果】或关闭本窗口刷新列表获取缴费结果。<br />3.发票会在缴费结果变更后开具。</span> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/ReceiveSendFeeManagement/Views/FinaChargeStuYear/PayFeeForm.js") |
@@ -0,0 +1,162 @@ | |||
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||
* Copyright (c) 2013-2018 北京泉江科技有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2019-08-08 17:21 | |||
* 描 述:老生缴费管理 | |||
*/ | |||
var acceptClick; | |||
var keyValue = request('keyValue'); | |||
var PayFeeTotal = 0;//应交费用 | |||
var SJAmount = 0;//已交费用 | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var page = { | |||
init: function () { | |||
$('.lr-form-wrap').lrscroll(); | |||
page.bind(); | |||
page.initData(); | |||
}, | |||
bind: function () { | |||
//获取缴费二维码 | |||
$('#confirmPayFee').click(function () { | |||
if (parseFloat($('#PayMoney').html()) === 0) { | |||
return learun.alert.warning("所交费用不能为0!"); | |||
} | |||
if (parseFloat($('#PayMoney').html()) > PayFeeTotal) { | |||
return learun.alert.warning("所交费用超出应交费用!"); | |||
} | |||
if (SJAmount > 0) { | |||
learun.layerConfirm('当前年度已存在缴费记录,是否继续缴费!', | |||
function (res) { | |||
if (!res) { | |||
return false; | |||
} else { | |||
page.getQRCode(); | |||
} | |||
}); | |||
} else { | |||
page.getQRCode(); | |||
} | |||
}); | |||
//取消缴费 | |||
$('#cancelPayFee').click(function () { | |||
learun.layerClose(window.name); | |||
}); | |||
$('#queryPayFee').click(function () { | |||
location.reload(); | |||
}); | |||
//计算实交金额 | |||
$('table').on('change', | |||
'.paydetail', | |||
function () { | |||
var num = 0; | |||
num = parseFloat(num); | |||
$(".paydetail").each(function (i, item) { | |||
var val = 0; | |||
if (!!$(this).val()) { | |||
val = parseFloat($(this).val()).toFixed(2); | |||
} | |||
num += parseFloat(val); | |||
}); | |||
$('#PayMoney').html(parseFloat(num).toFixed(2)); | |||
}); | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
$.lrSetForm(top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuYear/GetPayFeeDetail?keyValue=' + keyValue, function (data) { | |||
if (data['FinaChargesStandardList'].length == 0) { | |||
learun.alert.warning("未查询到该学生收费明细!请先维护收费明细。"); | |||
learun.layerClose(window.name); | |||
return; | |||
} | |||
var StuInfoFresh = data['StuInfoFreshData']; | |||
var className = ""; | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj', | |||
key: StuInfoFresh.ClassNo, | |||
keyId: 'classno', | |||
callback: function (_data) { | |||
className = _data['classname']; | |||
if (!className) { | |||
className = "未知"; | |||
} | |||
} | |||
}); | |||
var deptName = ""; | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo', | |||
key: StuInfoFresh.DeptNo, | |||
keyId: 'deptno', | |||
callback: function (_data) { | |||
deptName = _data['deptname']; | |||
if (!deptName) { | |||
deptName = "未知"; | |||
} | |||
} | |||
}); | |||
PayFeeTotal = parseFloat(data['PayFeeTotal']); | |||
SJAmount = parseFloat(data['SJAmount']); | |||
var html = "<tr><td class=\"tableLeft\">学号</td><td class=\"tableCenter\" id=\"StuNo\">" + StuInfoFresh.StuNo + "</td><td class=\"tableRight qrcode\" rowspan=\"5\"><img id='qrcodeImg'/></td></tr>"; | |||
html += "<tr><td class=\"tableLeft\">姓名</td> <td>" + StuInfoFresh.StuName + "</td></tr>"; | |||
html += "<tr><td class=\"tableLeft\">班级</td><td>" + className + "</td></tr>"; | |||
html += "<tr><td class=\"tableLeft\">系别</td><td>" + deptName + "</td></tr>"; | |||
html += "<tr><td class=\"tableLeft\">缴费年度</td><td id=\"FSYear\">" + StuInfoFresh.FSYear + "</td></tr>"; | |||
html += '<tr style="border-top: 10px solid blue;"><td class=\"tableLeft\">缴费项目</td><td class=\"tableLeft\">收费标准</td><td class=\"tableLeft\">本次实缴</td></tr>'; | |||
$.each(data['FinaChargesStandardList'], function (i, item) { | |||
html += '<tr><td class=\"tableLeft\">' + item.ChargeItemName + '</td><td>' + item.Standard + '元</td><td>' + | |||
'<input id="' + item.ChargeItemCode + '" onkeyup="if(this.value > ' + item.FSBlance + '){this.value=' + item.FSBlance + '}" onafterpaste="if(this.value > ' + item.FSBlance + '){this.value=' + item.FSBlance +'}" ' + | |||
' max="' + item.FSBlance + '" min="0" data-amount="' + item.Standard + '" data-name="' + item.ChargeItemName + '" type="number" class="form-control paydetail" value="' + item.FSBlance + '" /></td></tr>'; | |||
}); | |||
html += '<tr><td class=\"tableLeft\">应缴合计</td><td>' + data['PayFeeTotal'] + '元</td><td><span id="PayMoney">' + PayFeeTotal + '</span></td></tr>'; | |||
html += '<tr><td class=\"tableLeft\"> </td><td colspan="2"> </td></tr>'; | |||
html += '<tr><td class=\"tableLeft\">已缴金额</td><td colspan="2">' + SJAmount + '</td></tr>'; | |||
$('#PayFeeDetail').html(html); | |||
}); | |||
} | |||
}, | |||
getQRCode: function () { | |||
var list = []; | |||
var ifisnull = false; | |||
$('.paydetail').each(function (i, item) { | |||
var value = 0; | |||
if (!!$(this).val()) { | |||
value = parseFloat($(this).val()); | |||
} else { | |||
ifisnull = true; | |||
} | |||
var entity = { | |||
ChargeItemName: ($(this).attr('data-name')).replace(/^\s*|\s*$/g, ""), | |||
ChargeItemCode: $(this).attr('id'), | |||
YJAmount: $(this).attr('data-amount'), | |||
SJAmount: value | |||
}; | |||
list.push(entity); | |||
}); | |||
if (ifisnull) { | |||
learun.alert.warning("收费项目金额不能为空!请检查并填写。"); | |||
return; | |||
} | |||
$('.paydetail').each(function(i, item) { | |||
$(this).attr('disabled', 'disabled'); | |||
}); | |||
var param = {}; | |||
param.FSYId = keyValue; | |||
param.StuNo = $('#StuNo').html(); | |||
param.FSYear = $('#FSYear').html(); | |||
param.PayMoney = $('#PayMoney').html(); | |||
learun.loading(true, '正在生成付款信息请稍等...'); | |||
$("#confirmPayFee").hide(); | |||
learun.httpAsyncPost(top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuYear/PayFeeQRCode', { strEntity: JSON.stringify(param), detailList: JSON.stringify(list) }, function (res) { | |||
learun.loading(false); | |||
$('#qrcodeImg').attr('src', res.info); | |||
}); | |||
} | |||
}; | |||
page.init(); | |||
} |
@@ -143,7 +143,7 @@ var bootstrap = function ($, learun) { | |||
}, | |||
{ label: "收费标准", name: "Standard", width: 100, align: "left" }, | |||
{ label: "实缴金额", name: "SJAmount", width: 100, align: "left" }, | |||
{ label: "应缴余额", name: "FSBlance", width: 100, align: "left" }, | |||
{ label: "缴费余额", name: "FSBlance", width: 100, align: "left" }, | |||
{ | |||
label: "缴费状态", name: "PayFeeStatus", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
@@ -0,0 +1,31 @@ | |||
@{ | |||
ViewBag.Title = "FinaChargeStuOrderDetail"; | |||
Layout = "~/Views/Shared/_Form.cshtml"; | |||
} | |||
<div class="lr-form-wrap" id="form"> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrderDetail" > | |||
<div class="lr-form-item-title">收费项目编号</div> | |||
<input id="ChargeItemCode" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrderDetail" > | |||
<div class="lr-form-item-title">收费项目名称</div> | |||
<input id="ChargeItemName" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrderDetail" > | |||
<div class="lr-form-item-title">应缴金额</div> | |||
<input id="YJAmount" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrderDetail" > | |||
<div class="lr-form-item-title">实缴金额</div> | |||
<input id="SJAmount" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrderDetail" > | |||
<div class="lr-form-item-title">待缴金额</div> | |||
<input id="DJAmount" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="FinaChargeStuOrderDetail" > | |||
<div class="lr-form-item-title">超出余额</div> | |||
<input id="NowBlance" type="text" class="form-control" /> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/ReceiveSendFeeManagement/Views/缴费订单明细/Form.js") |
@@ -0,0 +1,50 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2023-08-12 22:14 | |||
* 描 述:FinaChargeStuOrderDetail | |||
*/ | |||
var acceptClick; | |||
var keyValue = request('keyValue'); | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var page = { | |||
init: function () { | |||
$('.lr-form-wrap').lrscroll(); | |||
page.bind(); | |||
page.initData(); | |||
}, | |||
bind: function () { | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
$.lrSetForm(top.$.rootUrl + '/ReceiveSendFeeManagement/缴费订单明细/GetFormData?keyValue=' + keyValue, function (data) { | |||
for (var id in data) { | |||
if (!!data[id].length && data[id].length > 0) { | |||
$('#' + id ).jfGridSet('refreshdata', data[id]); | |||
} | |||
else { | |||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); | |||
} | |||
} | |||
}); | |||
} | |||
} | |||
}; | |||
// 保存数据 | |||
acceptClick = function (callBack) { | |||
if (!$('body').lrValidform()) { | |||
return false; | |||
} | |||
var postData = { | |||
strEntity: JSON.stringify($('body').lrGetFormData()) | |||
}; | |||
$.lrSaveForm(top.$.rootUrl + '/ReceiveSendFeeManagement/缴费订单明细/SaveForm?keyValue=' + keyValue, postData, function (res) { | |||
// 保存成功后才回调 | |||
if (!!callBack) { | |||
callBack(); | |||
} | |||
}); | |||
}; | |||
page.init(); | |||
} |
@@ -0,0 +1,21 @@ | |||
@{ | |||
ViewBag.Title = "FinaChargeStuOrderDetail"; | |||
Layout = "~/Views/Shared/_Index.cshtml"; | |||
} | |||
<div class="lr-layout " > | |||
<div class="lr-layout-center"> | |||
<div class="lr-layout-wrap lr-layout-wrap-notitle "> | |||
<div class="lr-layout-tool"> | |||
<div class="lr-layout-tool-left"> | |||
</div> | |||
<div class="lr-layout-tool-right"> | |||
<div class=" btn-group btn-group-sm"> | |||
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="lr-layout-body" id="gridtable"></div> | |||
</div> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/ReceiveSendFeeManagement/Views/缴费订单明细/Index.js") |
@@ -0,0 +1,47 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2023-08-12 22:14 | |||
* 描 述:FinaChargeStuOrderDetail | |||
*/ | |||
var refreshGirdData; | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var page = { | |||
init: function () { | |||
page.initGird(); | |||
page.bind(); | |||
}, | |||
bind: function () { | |||
// 刷新 | |||
$('#lr_refresh').on('click', function () { | |||
location.reload(); | |||
}); | |||
}, | |||
// 初始化列表 | |||
initGird: function () { | |||
$('#gridtable').lrAuthorizeJfGrid({ | |||
url: top.$.rootUrl + '/ReceiveSendFeeManagement/缴费订单明细/GetPageList', | |||
headData: [ | |||
{ label: "收费项目编号", name: "ChargeItemCode", width: 100, align: "left"}, | |||
{ label: "收费项目名称", name: "ChargeItemName", width: 100, align: "left"}, | |||
{ label: "应缴金额", name: "YJAmount", width: 100, align: "left"}, | |||
{ label: "实缴金额", name: "SJAmount", width: 100, align: "left"}, | |||
{ label: "待缴金额", name: "DJAmount", width: 100, align: "left"}, | |||
{ label: "超出余额", name: "NowBlance", width: 100, align: "left"}, | |||
], | |||
mainId:'Id', | |||
isPage: true | |||
}); | |||
page.search(); | |||
}, | |||
search: function (param) { | |||
param = param || {}; | |||
$('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) }); | |||
} | |||
}; | |||
refreshGirdData = function () { | |||
$('#gridtable').jfGridSet('reload'); | |||
}; | |||
page.init(); | |||
} |
@@ -892,6 +892,8 @@ | |||
<Compile Include="Areas\ReceiveSendFeeManagement\Controllers\FinaChargeStudentController.cs" /> | |||
<Compile Include="Areas\ReceiveSendFeeManagement\Controllers\FinaChargeStuYearController.cs" /> | |||
<Compile Include="Areas\ReceiveSendFeeManagement\Controllers\FinaChargeStuYearItemController.cs" /> | |||
<Compile Include="Areas\ReceiveSendFeeManagement\Controllers\FinaChargeStuOrderController.cs" /> | |||
<Compile Include="Areas\ReceiveSendFeeManagement\Controllers\缴费订单明细Controller.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\DropOutIndex.js" /> | |||
@@ -1632,6 +1634,8 @@ | |||
<Content Include="Areas\PersonnelManagement\Views\WorkStudyPositionApply\Index.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYearItem\Import.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYear\GenerateByConditionForm.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYear\IndexForStudent.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYear\PayFeeForm.js" /> | |||
<Content Include="Areas\StudentWork\Views\SW_Ask_Main\AnswerIndex.js" /> | |||
<Content Include="Areas\StudentWork\Views\SW_Ask_Main\AnswerQuery.js" /> | |||
<Content Include="Areas\StudentWork\Views\SW_Ask_Main\Form.js" /> | |||
@@ -6663,6 +6667,14 @@ | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYearItem\Index.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYearItem\Form.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYearItem\Form.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuOrder\Index.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuOrder\Index.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuOrder\Form.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuOrder\Form.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\缴费订单明细\Index.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\缴费订单明细\Index.js" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\缴费订单明细\Form.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\缴费订单明细\Form.js" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Areas\EducationalAdministration\Views\AwardAndPunishment\" /> | |||
@@ -7967,6 +7979,8 @@ | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYear\GenerateByConditionForm.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYearItem\Import.cshtml" /> | |||
<Content Include="Content\excel\缴费明细.xls" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYear\IndexForStudent.cshtml" /> | |||
<Content Include="Areas\ReceiveSendFeeManagement\Views\FinaChargeStuYear\PayFeeForm.cshtml" /> | |||
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | |||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | |||
<Content Include="Views\Login\Default-beifen.cshtml" /> | |||
@@ -593,6 +593,8 @@ | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStudentMap.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuYearMap.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuYearItemMap.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuOrderMap.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuOrderDetailMap.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | |||
@@ -0,0 +1,29 @@ | |||
using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; | |||
using System.Data.Entity.ModelConfiguration; | |||
namespace Learun.Application.Mapping | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:14 | |||
/// 描 述:FinaChargeStuOrderDetail | |||
/// </summary> | |||
public class FinaChargeStuOrderDetailMap : EntityTypeConfiguration<FinaChargeStuOrderDetailEntity> | |||
{ | |||
public FinaChargeStuOrderDetailMap() | |||
{ | |||
#region 表、主键 | |||
//表 | |||
this.ToTable("FINACHARGESTUORDERDETAIL"); | |||
//主键 | |||
this.HasKey(t => t.Id); | |||
#endregion | |||
#region 配置关系 | |||
#endregion | |||
} | |||
} | |||
} | |||
@@ -0,0 +1,29 @@ | |||
using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; | |||
using System.Data.Entity.ModelConfiguration; | |||
namespace Learun.Application.Mapping | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:06 | |||
/// 描 述:缴费订单管理 | |||
/// </summary> | |||
public class FinaChargeStuOrderMap : EntityTypeConfiguration<FinaChargeStuOrderEntity> | |||
{ | |||
public FinaChargeStuOrderMap() | |||
{ | |||
#region 表、主键 | |||
//表 | |||
this.ToTable("FINACHARGESTUORDER"); | |||
//主键 | |||
this.HasKey(t => t.Id); | |||
#endregion | |||
#region 配置关系 | |||
#endregion | |||
} | |||
} | |||
} | |||
@@ -1846,6 +1846,14 @@ | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuYearItem\FinaChargeStuYearItemService.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuYearItem\FinaChargeStuYearItemBLL.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuYearItem\FinaChargeStuYearItemIBLL.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuOrder\FinaChargeStuOrderEntity.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuOrder\FinaChargeStuOrderService.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuOrder\FinaChargeStuOrderBLL.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\FinaChargeStuOrder\FinaChargeStuOrderIBLL.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\缴费订单明细\FinaChargeStuOrderDetailEntity.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\缴费订单明细\缴费订单明细Service.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\缴费订单明细\缴费订单明细BLL.cs" /> | |||
<Compile Include="ReceiveSendFeeManagement\缴费订单明细\缴费订单明细IBLL.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | |||
@@ -0,0 +1,144 @@ | |||
using Learun.Util; | |||
using System; | |||
using System.Data; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:06 | |||
/// 描 述:缴费订单管理 | |||
/// </summary> | |||
public class FinaChargeStuOrderBLL : FinaChargeStuOrderIBLL | |||
{ | |||
private FinaChargeStuOrderService finaChargeStuOrderService = new FinaChargeStuOrderService(); | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="pagination">分页参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<FinaChargeStuOrderEntity> GetPageList(Pagination pagination, string queryJson) | |||
{ | |||
try | |||
{ | |||
return finaChargeStuOrderService.GetPageList(pagination, queryJson); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取FinaChargeStuOrder表实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
public FinaChargeStuOrderEntity GetFinaChargeStuOrderEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
return finaChargeStuOrderService.GetFinaChargeStuOrderEntity(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
public void DeleteEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
finaChargeStuOrderService.DeleteEntity(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="entity">实体</param> | |||
/// <returns></returns> | |||
public void SaveEntity(string keyValue, FinaChargeStuOrderEntity entity) | |||
{ | |||
try | |||
{ | |||
finaChargeStuOrderService.SaveEntity(keyValue, entity); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
public void SaveOrderData(FinaChargeStuYearEntity entity, List<FinaChargeStuOrderDetailEntity> list) | |||
{ | |||
try | |||
{ | |||
finaChargeStuOrderService.SaveOrderData( entity,list); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,116 @@ | |||
using Learun.Util; | |||
using System; | |||
using System.ComponentModel.DataAnnotations.Schema; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:06 | |||
/// 描 述:缴费订单管理 | |||
/// </summary> | |||
public class FinaChargeStuOrderEntity | |||
{ | |||
#region 实体成员 | |||
/// <summary> | |||
/// Id | |||
/// </summary> | |||
[Column("ID")] | |||
public string Id { get; set; } | |||
/// <summary> | |||
/// FSYId | |||
/// </summary> | |||
[Column("FSYID")] | |||
public string FSYId { get; set; } | |||
/// <summary> | |||
/// 年度 | |||
/// </summary> | |||
[Column("YEARNO")] | |||
public int? YearNo { get; set; } | |||
/// <summary> | |||
/// 学号 | |||
/// </summary> | |||
[Column("STUNO")] | |||
public string StuNo { get; set; } | |||
/// <summary> | |||
/// 订单编号 | |||
/// </summary> | |||
[Column("ORDERID")] | |||
public string orderid { get; set; } | |||
/// <summary> | |||
/// 应交金额 | |||
/// </summary> | |||
[Column("YJAMOUNT")] | |||
public decimal? YJAmount { get; set; } | |||
/// <summary> | |||
/// 实交金额 | |||
/// </summary> | |||
[Column("SJAMOUNT")] | |||
public decimal? SJAmount { get; set; } | |||
/// <summary> | |||
/// 待缴金额 | |||
/// </summary> | |||
[Column("DJAMOUNT")] | |||
public decimal? DJAmount { get; set; } | |||
/// <summary> | |||
/// 超出余额 | |||
/// </summary> | |||
[Column("NOWBLANCE")] | |||
public decimal? NowBlance { get; set; } | |||
/// <summary> | |||
/// 缴费订单状态(0未支付,1已支付) | |||
/// </summary> | |||
[Column("STATUS")] | |||
public int? Status { get; set; } | |||
/// <summary> | |||
/// 下单时间 | |||
/// </summary> | |||
[Column("PLACEORDERTIME")] | |||
public DateTime? PlaceOrderTime { get; set; } | |||
/// <summary> | |||
/// 付款时间 | |||
/// </summary> | |||
[Column("PAYTIME")] | |||
public DateTime? PayTime { get; set; } | |||
/// <summary> | |||
/// 付款方式 | |||
/// </summary> | |||
[Column("PAYMODE")] | |||
public string PayMode { get; set; } | |||
/// <summary> | |||
/// 订单来源(1二维码缴费,2人工导入) | |||
/// </summary> | |||
[Column("ORDERTYPE")] | |||
public int? OrderType { get; set; } | |||
/// <summary> | |||
/// 银行流水号 | |||
/// </summary> | |||
[Column("BANKORDER")] | |||
public string BankOrder { get; set; } | |||
#endregion | |||
#region 扩展操作 | |||
/// <summary> | |||
/// 新增调用 | |||
/// </summary> | |||
public void Create() | |||
{ | |||
this.Id = Guid.NewGuid().ToString(); | |||
NowBlance = 0; | |||
} | |||
/// <summary> | |||
/// 编辑调用 | |||
/// </summary> | |||
/// <param name="keyValue"></param> | |||
public void Modify(string keyValue) | |||
{ | |||
this.Id = keyValue; | |||
} | |||
#endregion | |||
#region 扩展字段 | |||
#endregion | |||
} | |||
} | |||
@@ -0,0 +1,49 @@ | |||
using Learun.Util; | |||
using System.Data; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:06 | |||
/// 描 述:缴费订单管理 | |||
/// </summary> | |||
public interface FinaChargeStuOrderIBLL | |||
{ | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
IEnumerable<FinaChargeStuOrderEntity> GetPageList(Pagination pagination, string queryJson); | |||
/// <summary> | |||
/// 获取FinaChargeStuOrder表实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
FinaChargeStuOrderEntity GetFinaChargeStuOrderEntity(string keyValue); | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
void DeleteEntity(string keyValue); | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="entity">实体</param> | |||
void SaveEntity(string keyValue, FinaChargeStuOrderEntity entity); | |||
#endregion | |||
void SaveOrderData(FinaChargeStuYearEntity entity, List<FinaChargeStuOrderDetailEntity> list); | |||
} | |||
} |
@@ -0,0 +1,252 @@ | |||
using Dapper; | |||
using Learun.DataBase.Repository; | |||
using Learun.Util; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Data; | |||
using System.Linq; | |||
using System.Text; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:06 | |||
/// 描 述:缴费订单管理 | |||
/// </summary> | |||
public class FinaChargeStuOrderService : RepositoryFactory | |||
{ | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="pagination">查询参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<FinaChargeStuOrderEntity> GetPageList(Pagination pagination, string queryJson) | |||
{ | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT "); | |||
strSql.Append(@" | |||
t.Id, | |||
t.YearNo, | |||
t.StuNo, | |||
t.orderid, | |||
t.YJAmount, | |||
t.SJAmount, | |||
t.DJAmount, | |||
t.NowBlance, | |||
t.Status, | |||
t.PlaceOrderTime, | |||
t.PayTime, | |||
t.PayMode, | |||
t.OrderType, | |||
t.BankOrder | |||
"); | |||
strSql.Append(" FROM FinaChargeStuOrder t "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
// 虚拟参数 | |||
var dp = new DynamicParameters(new { }); | |||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) | |||
{ | |||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); | |||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); | |||
strSql.Append(" AND ( t.PayTime >= @startTime AND t.PayTime <= @endTime ) "); | |||
} | |||
if (!queryParam["YearNo"].IsEmpty()) | |||
{ | |||
dp.Add("YearNo", "%" + queryParam["YearNo"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND t.YearNo Like @YearNo "); | |||
} | |||
if (!queryParam["StuNo"].IsEmpty()) | |||
{ | |||
dp.Add("StuNo", "%" + queryParam["StuNo"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND t.StuNo Like @StuNo "); | |||
} | |||
if (!queryParam["Status"].IsEmpty()) | |||
{ | |||
dp.Add("Status", queryParam["Status"].ToString(), DbType.String); | |||
strSql.Append(" AND t.Status = @Status "); | |||
} | |||
if (!queryParam["PayMode"].IsEmpty()) | |||
{ | |||
dp.Add("PayMode", queryParam["PayMode"].ToString(), DbType.String); | |||
strSql.Append(" AND t.PayMode = @PayMode "); | |||
} | |||
if (!queryParam["OrderType"].IsEmpty()) | |||
{ | |||
dp.Add("OrderType", queryParam["OrderType"].ToString(), DbType.String); | |||
strSql.Append(" AND t.OrderType = @OrderType "); | |||
} | |||
if (!queryParam["BankOrder"].IsEmpty()) | |||
{ | |||
dp.Add("BankOrder", "%" + queryParam["BankOrder"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND t.BankOrder Like @BankOrder "); | |||
} | |||
return this.BaseRepository("CollegeMIS").FindList<FinaChargeStuOrderEntity>(strSql.ToString(), dp, pagination); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取FinaChargeStuOrder表实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
public FinaChargeStuOrderEntity GetFinaChargeStuOrderEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindEntity<FinaChargeStuOrderEntity>(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
public void DeleteEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
this.BaseRepository("CollegeMIS").Delete<FinaChargeStuOrderEntity>(t => t.Id == keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="entity">实体</param> | |||
public void SaveEntity(string keyValue, FinaChargeStuOrderEntity entity) | |||
{ | |||
try | |||
{ | |||
if (!string.IsNullOrEmpty(keyValue)) | |||
{ | |||
entity.Modify(keyValue); | |||
this.BaseRepository("CollegeMIS").Update(entity); | |||
} | |||
else | |||
{ | |||
entity.Create(); | |||
this.BaseRepository("CollegeMIS").Insert(entity); | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
/// <summary> | |||
/// 二维码缴费下单 | |||
/// </summary> | |||
/// <param name="entity"></param> | |||
/// <param name="list"></param> | |||
public void SaveOrderData(FinaChargeStuYearEntity entity, List<FinaChargeStuOrderDetailEntity> list) | |||
{ | |||
var db = this.BaseRepository("CollegeMIS"); | |||
try | |||
{ | |||
db.BeginTrans(); | |||
//保存缴费订单数据 | |||
var order = new FinaChargeStuOrderEntity(); | |||
order.Create(); | |||
order.FSYId = entity.FSYId; | |||
order.YearNo = entity.FSYear; | |||
order.StuNo = entity.StuNo; | |||
order.orderid = entity.orderid; | |||
order.YJAmount = list.Sum(x => x.YJAmount); | |||
order.SJAmount = list.Sum(x => x.SJAmount); | |||
order.DJAmount = order.YJAmount - order.SJAmount; | |||
if (order.DJAmount<0) | |||
{ | |||
order.NowBlance = Math.Abs(order.DJAmount.Value); | |||
order.DJAmount = 0; | |||
} | |||
order.PlaceOrderTime = DateTime.Now; | |||
order.Status = 0; | |||
order.OrderType = 1; | |||
db.Insert(order); | |||
//订单明细 | |||
foreach (var detail in list) | |||
{ | |||
detail.Create(); | |||
detail.FCSOId = order.Id; | |||
detail.DJAmount = detail.YJAmount - detail.SJAmount; | |||
if (detail.DJAmount < 0) | |||
{ | |||
detail.NowBlance = Math.Abs(detail.DJAmount.Value); | |||
detail.DJAmount = 0; | |||
} | |||
db.Insert(detail); | |||
} | |||
db.Commit(); | |||
} | |||
catch (Exception ex) | |||
{ | |||
db.Rollback(); | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
} | |||
} |
@@ -173,6 +173,25 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
} | |||
} | |||
public IEnumerable<FinaChargeStuYearItemEntity> GetFinaChargeStuItemList(string keyValue) | |||
{ | |||
try | |||
{ | |||
return finaChargeStuYearService.GetFinaChargeStuItemList(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
@@ -30,17 +30,17 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
[Column("FSYEAR")] | |||
public int? FSYear { get; set; } | |||
/// <summary> | |||
/// YJAmount | |||
/// 应缴金额(收费标准) | |||
/// </summary> | |||
[Column("YJAMOUNT")] | |||
public decimal? YJAmount { get; set; } | |||
/// <summary> | |||
/// SJAmount | |||
/// 实缴金额(已缴金额) | |||
/// </summary> | |||
[Column("SJAMOUNT")] | |||
public decimal? SJAmount { get; set; } | |||
/// <summary> | |||
/// 缴费年度余额 | |||
/// 缴费年度余额(剩余应缴金额) | |||
/// </summary> | |||
[Column("FSBLANCE")] | |||
public decimal? FSBlance { get; set; } | |||
@@ -81,6 +81,10 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
public string IdentityCardNo { get; set; } | |||
[NotMapped] | |||
public string StuName { get; set; } | |||
[NotMapped] | |||
public decimal? PayMoney { get; set; } | |||
[NotMapped] | |||
public string orderid { get; set; } | |||
#endregion | |||
} | |||
} | |||
@@ -46,5 +46,11 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
void SaveGenerateByCondition(FinaChargeStuYearEntity entity); | |||
List<TreeModel> GetTree(); | |||
/// <summary> | |||
/// 获取学生缴费明细 | |||
/// </summary> | |||
/// <param name="keyValue"></param> | |||
/// <returns></returns> | |||
IEnumerable<FinaChargeStuYearItemEntity> GetFinaChargeStuItemList(string keyValue); | |||
} | |||
} |
@@ -77,6 +77,11 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
dp.Add("PayFeeStatus", queryParam["PayFeeStatus"].ToString(), DbType.String); | |||
strSql.Append(" AND t.PayFeeStatus = @PayFeeStatus "); | |||
} | |||
if (!queryParam["F_CheckMark"].IsEmpty()) | |||
{ | |||
dp.Add("F_CheckMark", queryParam["F_CheckMark"].ToString(), DbType.String); | |||
strSql.Append(" AND b.F_CheckMark = @F_CheckMark "); | |||
} | |||
return this.BaseRepository("CollegeMIS").FindList<FinaChargeStuYearEntity>(strSql.ToString(), dp, pagination); | |||
} | |||
catch (Exception ex) | |||
@@ -101,7 +106,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindEntity<FinaChargeStuYearEntity>(keyValue); | |||
return this.BaseRepository("CollegeMIS").FindEntity<FinaChargeStuYearEntity>("select b.*,a.FSYear,a.YJAmount,a.SJAmount,a.FSBlance,a.PayFeeStatus from FinaChargeStuYear a left join FinaChargeStudent b on a.StuNo=b.StuNo where a.FSYId='"+keyValue+"'",null); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -116,6 +121,31 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
} | |||
} | |||
/// <summary> | |||
/// 获取学生缴费明细 | |||
/// </summary> | |||
/// <param name="keyValue"></param> | |||
/// <returns></returns> | |||
public IEnumerable<FinaChargeStuYearItemEntity> GetFinaChargeStuItemList(string keyValue) | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindList<FinaChargeStuYearItemEntity>("select a.StuNo,b.* from FinaChargeStuYear a left join FinaChargeStuYearItem b on a.FSYId=b.FSYId where b.F_DeleteMark=0 and b.FSBlance<0 and a.FSYId='"+keyValue+"' order by ChargeItemCode"); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region 提交数据 | |||
@@ -190,7 +220,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
//获取已有年度学生缴费明细记录 | |||
var oldFinaChargeStuYearItemList = db.FindList<FinaChargeStuYearItemEntity>(m => m.FSYear == entity.FSYear); | |||
//获取收费标准 | |||
var finaChargesStandardList = db.FindList<FinaChargesStandardEntity>("select a.Grade,a.DeptNo,a.MajorNo,a.Standard,a.SYear,b.ChargeItemName,b.ChargeItemCode,b.ChargeItemType from [dbo].[FinaChargesStandard] a left join [dbo].[FinaChargeItem] b on a.ChargeItemID=b.[ChargeItemID] where b.ChargeItemType=1 and a.SYear='" + entity.FSYear + "' and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0"); | |||
var finaChargesStandardList = db.FindList<FinaChargesStandardEntity>("select a.Grade,a.DeptNo,a.MajorNo,a.Standard,a.SYear,b.ChargeItemName,b.ChargeItemCode,b.ChargeItemType,b.priority from [dbo].[FinaChargesStandard] a left join [dbo].[FinaChargeItem] b on a.ChargeItemID=b.[ChargeItemID] where b.ChargeItemType=1 and a.SYear='" + entity.FSYear + "' and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0"); | |||
var finaChargesStandardListGroup = db.FindList<FinaChargesStandardEntity>(@"select a.Grade,a.DeptNo,a.MajorNo,sum(isnull(a.Standard,0)) as YJAmount,a.SYear | |||
from[dbo].[FinaChargesStandard] a left join[dbo].[FinaChargeItem] b on a.ChargeItemID = b.[ChargeItemID] where b.ChargeItemType=1 and a.SYear='" + entity.FSYear + "' and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0 group by a.Grade, a.DeptNo, a.MajorNo, a.SYear"); | |||
foreach (var stuitem in stulist) | |||
@@ -213,6 +243,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
finaChargeStuYearItem.ChargeItemCode = finaChargesStandardEntity.ChargeItemCode; | |||
finaChargeStuYearItem.ChargeItemName = finaChargesStandardEntity.ChargeItemName; | |||
finaChargeStuYearItem.ChargeItemType = finaChargesStandardEntity.ChargeItemType; | |||
finaChargeStuYearItem.priority = finaChargesStandardEntity.priority; | |||
finaChargeStuYearItem.Standard = finaChargesStandardEntity.Standard; | |||
//主表应缴金额更新 | |||
oldFinaChargeStuYearEntity.YJAmount += finaChargeStuYearItem.Standard; | |||
@@ -251,6 +282,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
finaChargeStuYearItem.ChargeItemCode = finaChargesStandardEntity.ChargeItemCode; | |||
finaChargeStuYearItem.ChargeItemName = finaChargesStandardEntity.ChargeItemName; | |||
finaChargeStuYearItem.ChargeItemType = finaChargesStandardEntity.ChargeItemType; | |||
finaChargeStuYearItem.priority = finaChargesStandardEntity.priority; | |||
finaChargeStuYearItem.Standard = finaChargesStandardEntity.Standard; | |||
finaChargeStuYearItem.FSBlance = -finaChargeStuYearItem.Standard; | |||
db.Insert(finaChargeStuYearItem); | |||
@@ -138,7 +138,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
} | |||
} | |||
public (DataTable failDt, int snum, int fnum) ExecuteImportExcel(DataTable dt, string fileGuid, string queryJson) | |||
public string ExecuteImportExcel(DataTable dt, string fileGuid, string queryJson) | |||
{ | |||
try | |||
{ | |||
@@ -43,6 +43,11 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
[Column("CHARGEITEMTYPE")] | |||
public int? ChargeItemType { get; set; } | |||
/// <summary> | |||
/// 优先级 | |||
/// </summary> | |||
[Column("PRIORITY")] | |||
public int? priority { get; set; } | |||
/// <summary> | |||
/// 收费标准 | |||
/// </summary> | |||
[Column("STANDARD")] | |||
@@ -43,8 +43,8 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
/// <param name="entity">实体</param> | |||
void SaveEntity(string keyValue, FinaChargeStuYearItemEntity entity); | |||
#endregion | |||
void UnDeleteEntity(string keyValue); | |||
(DataTable failDt, int snum, int fnum) ExecuteImportExcel(DataTable dt, string fileGuid, string queryJson); | |||
string ExecuteImportExcel(DataTable dt, string fileGuid, string queryJson); | |||
} | |||
} |
@@ -4,6 +4,7 @@ using Learun.Util; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Data; | |||
using System.Linq; | |||
using System.Text; | |||
using Learun.Cache.Base; | |||
using Learun.Cache.Factory; | |||
@@ -220,7 +221,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
#endregion | |||
public (DataTable failDt, int snum, int fnum) ExecuteImportExcel(DataTable dt, string fileGuid, string queryJson) | |||
public string ExecuteImportExcel(DataTable dt, string fileGuid, string queryJson) | |||
{ | |||
var db = this.BaseRepository("CollegeMIS").BeginTrans(); | |||
try | |||
@@ -237,56 +238,150 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
failDt.Columns.Add(dc.ColumnName, dc.DataType); | |||
} | |||
//获取收费标准 非固定项目 | |||
var finaChargesStandardList = db.FindList<FinaChargesStandardEntity>("select a.Grade,a.DeptNo,a.MajorNo,a.Standard,a.SYear,b.ChargeItemName,b.ChargeItemCode,b.ChargeItemType,b.priority from [dbo].[FinaChargesStandard] a left join [dbo].[FinaChargeItem] b on a.ChargeItemID=b.[ChargeItemID] where b.ChargeItemType=2 and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0"); | |||
//var finaChargesStandardListGroup = db.FindList<FinaChargesStandardEntity>(@"select a.Grade,a.DeptNo,a.MajorNo,sum(isnull(a.Standard,0)) as YJAmount,a.SYear | |||
// from[dbo].[FinaChargesStandard] a left join[dbo].[FinaChargeItem] b on a.ChargeItemID = b.[ChargeItemID] where b.ChargeItemType=2 and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0 group by a.Grade, a.DeptNo, a.MajorNo, a.SYear"); | |||
//获取已有年度学生缴费记录 | |||
var oldFinaChargeStuYearList = db.FindList<FinaChargeStuYearEntity>(); | |||
//获取已有年度学生缴费明细记录 | |||
var oldFinaChargeStuYearItemList = db.FindList<FinaChargeStuYearItemEntity>("select a.*,b.StuNo from FinaChargeStuYearItem a left join FinaChargeStuYear b on a.FSYId=b.FSYId "); | |||
// 循环遍历导入 | |||
foreach (DataRow dr in dt.Rows) | |||
{ | |||
//检测是否有空值 | |||
if (dr[0].ToString() == "" || dr[1].ToString() == "" || dr[2].ToString() == "" || dr[3].ToString() == "" || dr[4].ToString() == "" || dr[5].ToString() == ""||dr[6].ToString() == "") | |||
{ | |||
throw (new Exception("行内数据有空值,不能为空!")); | |||
} | |||
//检测缴费年度是否为数字 | |||
decimal payyearresult = 0; | |||
bool parsepayyearresult = decimal.TryParse(dr[0].ToString(), out payyearresult); | |||
if (!parsepayyearresult || dr[0].ToString().Length != 4) | |||
{ | |||
throw (new Exception("【缴费年度】格式不正确,必须为四位数字年份!")); | |||
} | |||
//首先校验金额是否为数字 | |||
//第六列是金额 | |||
decimal dresult = 0; | |||
bool parseresult = decimal.TryParse(dr[5].ToString(), out dresult); | |||
if (!parseresult) | |||
{ | |||
throw (new Exception("【金额】转换失败,必须为数字!")); | |||
} | |||
//金额不能小于等于零 | |||
if (dresult <= 0) | |||
try | |||
{ | |||
throw (new Exception("【金额】不能为零或小于零,必须为正数!")); | |||
FinaChargeStudentEntity finaChargeStudentEntity = null; | |||
FinaChargesStandardEntity finaChargesStandardEntity = null; | |||
//检测是否有空值 | |||
if (dr[0].ToString() == "" || dr[1].ToString() == "" || dr[2].ToString() == "" || dr[3].ToString() == "" || dr[4].ToString() == "" || dr[5].ToString() == "") | |||
{ | |||
throw new Exception("行内数据有空值,不能为空!"); | |||
} | |||
//检测缴费年度是否为数字 | |||
decimal payyearresult = 0; | |||
bool parsepayyearresult = decimal.TryParse(dr[2].ToString(), out payyearresult); | |||
if (!parsepayyearresult || dr[2].ToString().Length != 4) | |||
{ | |||
throw new Exception("【缴费年度】格式不正确,必须为四位数字年份!"); | |||
} | |||
//首先校验金额是否为数字 | |||
decimal dresult = 0; | |||
bool parseresult = decimal.TryParse(dr[5].ToString(), out dresult); | |||
if (!parseresult) | |||
{ | |||
throw new Exception("【金额】转换失败,必须为数字!"); | |||
} | |||
//金额不能小于等于零 | |||
if (dresult <= 0) | |||
{ | |||
throw new Exception("【金额】不能为零或小于零,必须为正数!"); | |||
} | |||
//筛选不在标准代码表内的数据 | |||
if (finaChargesStandardList.Count(m => m.ChargeItemCode == dr[3].ToString()&&m.ChargeItemName== dr[4].ToString()) == 0) | |||
{ | |||
throw new Exception("【收费项目】不存在,请核对!"); | |||
} | |||
//筛选不在收费学生表内的数据 | |||
finaChargeStudentEntity = stulist.FirstOrDefault(m => m.StuNo == dr[0].ToString()&&m.StuName== dr[1].ToString()); | |||
if (finaChargeStudentEntity == null) | |||
{ | |||
throw new Exception("【收费学生】不存在,请核对!"); | |||
} | |||
else | |||
{ | |||
//筛选有无对应专业收费标准的数据 | |||
finaChargesStandardEntity = finaChargesStandardList.FirstOrDefault(m => | |||
m.DeptNo == finaChargeStudentEntity.DeptNo && | |||
m.MajorNo == finaChargeStudentEntity.MajorNo && m.SYear == payyearresult && | |||
m.Grade == finaChargeStudentEntity.Grade && m.ChargeItemCode == dr[3].ToString()&&m.ChargeItemName== dr[4].ToString()); | |||
if (finaChargesStandardEntity == null) | |||
{ | |||
throw new Exception("【专业年度收费标准】不存在,请核对!"); | |||
} | |||
} | |||
//开始导入操作 | |||
//查询有无学生年度缴费数据 | |||
FinaChargeStuYearEntity oldFinaChargeStuYearEntity = | |||
oldFinaChargeStuYearList.FirstOrDefault(m => | |||
m.StuNo == finaChargeStudentEntity.StuNo && | |||
m.FSYear == finaChargesStandardEntity.SYear); | |||
if (oldFinaChargeStuYearEntity==null) | |||
{ | |||
//无数据新增主表 | |||
var finaChargeStuYear = new FinaChargeStuYearEntity(); | |||
finaChargeStuYear.Create(); | |||
finaChargeStuYear.StuNo = finaChargeStudentEntity.StuNo; | |||
finaChargeStuYear.FSYear = finaChargesStandardEntity.SYear; | |||
finaChargeStuYear.SJAmount = 0; | |||
finaChargeStuYear.PayFeeStatus = 0; | |||
//子表 | |||
var finaChargeStuYearItem = new FinaChargeStuYearItemEntity(); | |||
finaChargeStuYearItem.Create(); | |||
finaChargeStuYearItem.FSYId = finaChargeStuYear.FSYId; | |||
finaChargeStuYearItem.FSYear = finaChargeStuYear.FSYear; | |||
finaChargeStuYearItem.ChargeItemCode = finaChargesStandardEntity.ChargeItemCode; | |||
finaChargeStuYearItem.ChargeItemName = finaChargesStandardEntity.ChargeItemName; | |||
finaChargeStuYearItem.ChargeItemType = finaChargesStandardEntity.ChargeItemType; | |||
finaChargeStuYearItem.priority = finaChargesStandardEntity.priority; | |||
finaChargeStuYearItem.Standard = finaChargesStandardEntity.Standard; | |||
finaChargeStuYearItem.FSBlance = -finaChargeStuYearItem.Standard; | |||
db.Insert(finaChargeStuYearItem); | |||
finaChargeStuYear.YJAmount = finaChargeStuYearItem.Standard; | |||
finaChargeStuYear.FSBlance = -finaChargeStuYear.YJAmount; | |||
db.Insert(finaChargeStuYear); | |||
} | |||
else | |||
{ | |||
//查询子表有无记录 | |||
if (oldFinaChargeStuYearItemList.Count(m=>m.StuNo== finaChargeStudentEntity.StuNo&&m.FSYear == finaChargesStandardEntity.SYear&&m.ChargeItemCode== finaChargesStandardEntity.ChargeItemCode) ==0) | |||
{ | |||
//子表 | |||
var finaChargeStuYearItem = new FinaChargeStuYearItemEntity(); | |||
finaChargeStuYearItem.Create(); | |||
finaChargeStuYearItem.FSYId = oldFinaChargeStuYearEntity.FSYId; | |||
finaChargeStuYearItem.FSYear = oldFinaChargeStuYearEntity.FSYear; | |||
finaChargeStuYearItem.ChargeItemCode = finaChargesStandardEntity.ChargeItemCode; | |||
finaChargeStuYearItem.ChargeItemName = finaChargesStandardEntity.ChargeItemName; | |||
finaChargeStuYearItem.ChargeItemType = finaChargesStandardEntity.ChargeItemType; | |||
finaChargeStuYearItem.priority = finaChargesStandardEntity.priority; | |||
finaChargeStuYearItem.Standard = finaChargesStandardEntity.Standard; | |||
finaChargeStuYearItem.FSBlance = -finaChargeStuYearItem.Standard; | |||
db.Insert(finaChargeStuYearItem); | |||
//更新主表 | |||
oldFinaChargeStuYearEntity.YJAmount+= finaChargeStuYearItem.Standard; | |||
oldFinaChargeStuYearEntity.FSBlance = -oldFinaChargeStuYearEntity.YJAmount; | |||
db.Update(oldFinaChargeStuYearEntity); | |||
} | |||
else | |||
{ | |||
throw new Exception("【学生收费明细】已存在,请核对!"); | |||
} | |||
} | |||
} | |||
//筛选不在标准代码表内的数据 | |||
//第五列是项目编码 | |||
if (typecodelist.Count(m => m.ProjectCode == dr[4].ToString()) == 0) | |||
catch (Exception ex) | |||
{ | |||
throw (new Exception("【缴费项目编码】不存在,请核对!")); | |||
fnum++; | |||
dr["导入错误"] = ex.Message; | |||
failDt.Rows.Add(dr.ItemArray); | |||
} | |||
} | |||
//获取已有年度学生缴费记录 | |||
var oldFinaChargeStuYearList = db.FindList<FinaChargeStuYearEntity>(m => m.FSYear == entity.FSYear); | |||
//获取已有年度学生缴费明细记录 | |||
var oldFinaChargeStuYearItemList = db.FindList<FinaChargeStuYearItemEntity>(m => m.FSYear == entity.FSYear); | |||
//获取收费标准 | |||
var finaChargesStandardList = db.FindList<FinaChargesStandardEntity>("select a.Grade,a.DeptNo,a.MajorNo,a.Standard,a.SYear,b.ChargeItemName,b.ChargeItemCode,b.ChargeItemType from [dbo].[FinaChargesStandard] a left join [dbo].[FinaChargeItem] b on a.ChargeItemID=b.[ChargeItemID] where b.ChargeItemType=1 and a.SYear='" + entity.FSYear + "' and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0"); | |||
var finaChargesStandardListGroup = db.FindList<FinaChargesStandardEntity>(@"select a.Grade,a.DeptNo,a.MajorNo,sum(isnull(a.Standard,0)) as YJAmount,a.SYear | |||
from[dbo].[FinaChargesStandard] a left join[dbo].[FinaChargeItem] b on a.ChargeItemID = b.[ChargeItemID] where b.ChargeItemType=1 and a.SYear='" + entity.FSYear + "' and a.F_DeleteMark=0 and a.CheckMark=1 and b.CheckMark=1 and b.F_DeleteMark=0 group by a.Grade, a.DeptNo, a.MajorNo, a.SYear"); | |||
// 写入缓存如果有未导入的数据 | |||
if (failDt.Rows.Count > 0) | |||
{ | |||
string errordt = failDt.ToJson(); | |||
cache.Write<string>(cacheKey + fileGuid, errordt, CacheId.excel); | |||
} | |||
db.Commit(); | |||
//更新学生缴费总表 | |||
BaseRepository("CollegeMIS").ExecuteBySql(@"update FinaChargeStudent set FSBlance=a.[FSBlance] | |||
from (select isnull(sum([FSBlance]),0) as [FSBlance],StuNo from [FinaChargeStuYear] group by StuNo) a left join | |||
FinaChargeStudent b on a.stuno=b.stuno"); | |||
} | |||
return snum + "|" + fnum; | |||
} | |||
catch (Exception ex) | |||
{ | |||
db.Rollback(); | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
@@ -50,10 +50,15 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
[Column("SYEAR")] | |||
public int SYear { get; set; } | |||
/// <summary> | |||
/// CheckMark | |||
/// 审核标志 | |||
/// </summary> | |||
[Column("CHECKMARK")] | |||
public bool? CheckMark { get; set; } | |||
/// <summary> | |||
/// 删除标志 | |||
/// </summary> | |||
[Column("F_DELETEMARK")] | |||
public bool? F_DeleteMark { get; set; } | |||
#endregion | |||
#region 扩展操作 | |||
@@ -83,6 +88,8 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
public string ChargeItemCode { get; set; } | |||
[NotMapped] | |||
public int? ChargeItemType { get; set; } | |||
[NotMapped] | |||
public int? priority { get; set; } | |||
/// <summary> | |||
/// 已交金额 | |||
/// </summary> | |||
@@ -366,7 +366,8 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
MajorNo = majorNo, | |||
Standard = item.Standard, | |||
SYear = Convert.ToInt32(sYear), | |||
CheckMark = false | |||
CheckMark = false, | |||
F_DeleteMark=false | |||
}; | |||
entity.Create(); | |||
db.Insert(entity); | |||
@@ -0,0 +1,81 @@ | |||
using Learun.Util; | |||
using System; | |||
using System.ComponentModel.DataAnnotations.Schema; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:14 | |||
/// 描 述:FinaChargeStuOrderDetail | |||
/// </summary> | |||
public class FinaChargeStuOrderDetailEntity | |||
{ | |||
#region 实体成员 | |||
/// <summary> | |||
/// Id | |||
/// </summary> | |||
[Column("ID")] | |||
public string Id { get; set; } | |||
/// <summary> | |||
/// FCSOId | |||
/// </summary> | |||
[Column("FCSOID")] | |||
public string FCSOId { get; set; } | |||
/// <summary> | |||
/// ChargeItemCode | |||
/// </summary> | |||
[Column("CHARGEITEMCODE")] | |||
public string ChargeItemCode { get; set; } | |||
/// <summary> | |||
/// ChargeItemName | |||
/// </summary> | |||
[Column("CHARGEITEMNAME")] | |||
public string ChargeItemName { get; set; } | |||
/// <summary> | |||
/// 应缴 | |||
/// </summary> | |||
[Column("YJAMOUNT")] | |||
public decimal? YJAmount { get; set; } | |||
/// <summary> | |||
/// 实缴 | |||
/// </summary> | |||
[Column("SJAMOUNT")] | |||
public decimal? SJAmount { get; set; } | |||
/// <summary> | |||
/// 待缴 | |||
/// </summary> | |||
[Column("DJAMOUNT")] | |||
public decimal? DJAmount { get; set; } | |||
/// <summary> | |||
/// 超出余额 | |||
/// </summary> | |||
[Column("NOWBLANCE")] | |||
public decimal? NowBlance { get; set; } | |||
#endregion | |||
#region 扩展操作 | |||
/// <summary> | |||
/// 新增调用 | |||
/// </summary> | |||
public void Create() | |||
{ | |||
this.Id = Guid.NewGuid().ToString(); | |||
NowBlance = 0; | |||
} | |||
/// <summary> | |||
/// 编辑调用 | |||
/// </summary> | |||
/// <param name="keyValue"></param> | |||
public void Modify(string keyValue) | |||
{ | |||
this.Id = keyValue; | |||
} | |||
#endregion | |||
#region 扩展字段 | |||
#endregion | |||
} | |||
} | |||
@@ -0,0 +1,125 @@ | |||
using Learun.Util; | |||
using System; | |||
using System.Data; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:14 | |||
/// 描 述:FinaChargeStuOrderDetail | |||
/// </summary> | |||
public class 缴费订单明细BLL : 缴费订单明细IBLL | |||
{ | |||
private 缴费订单明细Service 缴费订单明细Service = new 缴费订单明细Service(); | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="pagination">分页参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<FinaChargeStuOrderDetailEntity> GetPageList(Pagination pagination, string queryJson) | |||
{ | |||
try | |||
{ | |||
return 缴费订单明细Service.GetPageList(pagination, queryJson); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取FinaChargeStuOrderDetail表实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
public FinaChargeStuOrderDetailEntity GetFinaChargeStuOrderDetailEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
return 缴费订单明细Service.GetFinaChargeStuOrderDetailEntity(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
public void DeleteEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
缴费订单明细Service.DeleteEntity(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="entity">实体</param> | |||
/// <returns></returns> | |||
public void SaveEntity(string keyValue, FinaChargeStuOrderDetailEntity entity) | |||
{ | |||
try | |||
{ | |||
缴费订单明细Service.SaveEntity(keyValue, entity); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,48 @@ | |||
using Learun.Util; | |||
using System.Data; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:14 | |||
/// 描 述:FinaChargeStuOrderDetail | |||
/// </summary> | |||
public interface 缴费订单明细IBLL | |||
{ | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
IEnumerable<FinaChargeStuOrderDetailEntity> GetPageList(Pagination pagination, string queryJson); | |||
/// <summary> | |||
/// 获取FinaChargeStuOrderDetail表实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
FinaChargeStuOrderDetailEntity GetFinaChargeStuOrderDetailEntity(string keyValue); | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
void DeleteEntity(string keyValue); | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="entity">实体</param> | |||
void SaveEntity(string keyValue, FinaChargeStuOrderDetailEntity entity); | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,150 @@ | |||
using Dapper; | |||
using Learun.DataBase.Repository; | |||
using Learun.Util; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Data; | |||
using System.Text; | |||
namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2023-08-12 22:14 | |||
/// 描 述:FinaChargeStuOrderDetail | |||
/// </summary> | |||
public class 缴费订单明细Service : RepositoryFactory | |||
{ | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// </summary> | |||
/// <param name="pagination">查询参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<FinaChargeStuOrderDetailEntity> GetPageList(Pagination pagination, string queryJson) | |||
{ | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT "); | |||
strSql.Append(@" | |||
t.Id, | |||
t.ChargeItemCode, | |||
t.ChargeItemName, | |||
t.YJAmount, | |||
t.SJAmount, | |||
t.DJAmount, | |||
t.NowBlance | |||
"); | |||
strSql.Append(" FROM FinaChargeStuOrderDetail t "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
// 虚拟参数 | |||
var dp = new DynamicParameters(new { }); | |||
return this.BaseRepository("CollegeMIS").FindList<FinaChargeStuOrderDetailEntity>(strSql.ToString(),dp, pagination); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取FinaChargeStuOrderDetail表实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <returns></returns> | |||
public FinaChargeStuOrderDetailEntity GetFinaChargeStuOrderDetailEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindEntity<FinaChargeStuOrderDetailEntity>(keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
public void DeleteEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
this.BaseRepository("CollegeMIS").Delete<FinaChargeStuOrderDetailEntity>(t=>t.Id == keyValue); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// </summary> | |||
/// <param name="keyValue">主键</param> | |||
/// <param name="entity">实体</param> | |||
public void SaveEntity(string keyValue, FinaChargeStuOrderDetailEntity entity) | |||
{ | |||
try | |||
{ | |||
if (!string.IsNullOrEmpty(keyValue)) | |||
{ | |||
entity.Modify(keyValue); | |||
this.BaseRepository("CollegeMIS").Update(entity); | |||
} | |||
else | |||
{ | |||
entity.Create(); | |||
this.BaseRepository("CollegeMIS").Insert(entity); | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
} |