@@ -0,0 +1,214 @@ | |||||
using Learun.Application.TwoDevelopment.EducationalAdministration; | |||||
using Learun.Util; | |||||
using System; | |||||
using System.Data; | |||||
using System.IO; | |||||
using System.Web.Mvc; | |||||
namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2022-11-07 11:54 | |||||
/// 描 述:工作绩效 | |||||
/// </summary> | |||||
public class JobPerformanceController : MvcControllerBase | |||||
{ | |||||
private JobPerformanceIBLL jobPerformanceIBLL = new JobPerformanceBLL(); | |||||
#region 视图功能 | |||||
/// <summary> | |||||
/// 主页面 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult Index() | |||||
{ | |||||
return View(); | |||||
} | |||||
/// <summary> | |||||
/// 主页面 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult IndexPrint() | |||||
{ | |||||
return View(); | |||||
} | |||||
/// <summary> | |||||
/// 主页面-我的 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult IndexMy() | |||||
{ | |||||
return View(); | |||||
} | |||||
/// <summary> | |||||
/// 表单页 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult Form() | |||||
{ | |||||
return View(); | |||||
} | |||||
/// <summary> | |||||
/// 导入页面 | |||||
/// <summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult ImportForm() | |||||
{ | |||||
return View(); | |||||
} | |||||
#endregion | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 人员类别 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public ActionResult PeopleType() | |||||
{ | |||||
var data = jobPerformanceIBLL.GetPeopleType(); | |||||
return Success(data); | |||||
} | |||||
/// <summary> | |||||
/// 岗位类别 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public ActionResult PostType() | |||||
{ | |||||
var data = jobPerformanceIBLL.GetPostType(); | |||||
return Success(data); | |||||
} | |||||
/// <summary> | |||||
/// 薪级 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public ActionResult PayGrade() | |||||
{ | |||||
var data = jobPerformanceIBLL.GetPayGrade(); | |||||
return Success(data); | |||||
} | |||||
/// <summary> | |||||
/// 获取列表数据 | |||||
/// </summary> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
[AjaxOnly] | |||||
public ActionResult GetList(string queryJson) | |||||
{ | |||||
var data = jobPerformanceIBLL.GetList(queryJson); | |||||
return Success(data); | |||||
} | |||||
/// <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 = jobPerformanceIBLL.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 JobPerformanceData = jobPerformanceIBLL.GetEntity(keyValue); | |||||
var jsonData = new | |||||
{ | |||||
JobPerformance = JobPerformanceData, | |||||
}; | |||||
return Success(jsonData); | |||||
} | |||||
#endregion | |||||
#region 提交数据 | |||||
/// <summary> | |||||
/// 删除实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
[HttpPost] | |||||
[AjaxOnly] | |||||
public ActionResult DeleteForm(string keyValue) | |||||
{ | |||||
jobPerformanceIBLL.DeleteEntity(keyValue); | |||||
return Success("删除成功!"); | |||||
} | |||||
/// <summary> | |||||
/// 保存实体数据(新增、修改) | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="entity">实体</param> | |||||
/// <returns></returns> | |||||
[HttpPost] | |||||
[ValidateAntiForgeryToken] | |||||
[AjaxOnly] | |||||
public ActionResult SaveForm(string keyValue, JobPerformanceEntity entity) | |||||
{ | |||||
jobPerformanceIBLL.SaveEntity(keyValue, entity); | |||||
return Success("保存成功!"); | |||||
} | |||||
#endregion | |||||
#region 扩展代码 | |||||
[HttpPost] | |||||
[AjaxOnly] | |||||
public ActionResult CheckForm(string keyValue,string Status) | |||||
{ | |||||
jobPerformanceIBLL.CheckEntity(keyValue, Status); | |||||
return Success("审核成功!"); | |||||
} | |||||
/// <summary> | |||||
/// 下载文件 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public ActionResult DownTemplate() | |||||
{ | |||||
FileStreamResult result = null; | |||||
try | |||||
{ | |||||
var path = Server.MapPath("~/Content/excel/"); | |||||
var pathoffull = path + "JobPerformanceImport.xls"; | |||||
FileStream fsread = fsread = new FileStream(pathoffull, FileMode.OpenOrCreate, FileAccess.ReadWrite); | |||||
result = File(fsread, "application/ms-excel", "月常规工作绩效导入.xls"); | |||||
return result; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
return null; | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@@ -0,0 +1,160 @@ | |||||
@{ | |||||
ViewBag.Title = "工作绩效"; | |||||
Layout = "~/Views/Shared/_Form.cshtml"; | |||||
} | |||||
<div class="lr-form-wrap" id="form"> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">序号</div> | |||||
<input id="No" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item" data-table="ClassInfo"> | |||||
<div class="lr-form-item-title">姓名<font face="宋体">*</font></div> | |||||
<div id="EmpName" isvalid="yes" checkexpession="NotNull"></div> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">人员类别</div> | |||||
<input id="PeopleType" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">岗位等级</div> | |||||
<input id="PostType" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">薪级</div> | |||||
<input id="PayGrade" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">岗位工资</div> | |||||
<input id="PostWage" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">薪级工资</div> | |||||
<input id="PayGradeWage" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">百分之十</div> | |||||
<input id="TenPercent" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title" style="width: 40%;">基础性绩效(绩效)</div> | |||||
<input id="BasicsPerformance" type="text" class="form-control" style="width: 80%; float: right;" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">奖励绩效(绩效)</div> | |||||
<input id="AwardPerformance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title" style="width: 40%;">基础性绩效(单列)</div> | |||||
<input id="SeparateBasicsPerformance" type="text" class="form-control" style="width: 80%; float: right;" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">奖励绩效(单列)</div> | |||||
<input id="SeparateAwardPerformance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-3 lr-form-item"> | |||||
<div class="lr-form-item-title">艰边津贴</div> | |||||
<input id="RoughEdgeAllowance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-3 lr-form-item"> | |||||
<div class="lr-form-item-title">民族津贴</div> | |||||
<input id="NationAllowance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-3 lr-form-item"> | |||||
<div class="lr-form-item-title">教龄津贴</div> | |||||
<input id="TeachAllowance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-3 lr-form-item"> | |||||
<div class="lr-form-item-title">特级教师津贴</div> | |||||
<input id="SuperfineTeacherResearch" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">交通补贴</div> | |||||
<input id="Transportation" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">物业补贴</div> | |||||
<input id="RealeState" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">工改保留补贴</div> | |||||
<input id="WorkKeep" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">女职工卫生费</div> | |||||
<input id="GirlStaffSanitation" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">乡镇补贴</div> | |||||
<input id="TeacherAndTown" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">住房补贴</div> | |||||
<input id="HousingAllowance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">住房公积金</div> | |||||
<input id="HousingFundAllowance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-4 lr-form-item"> | |||||
<div class="lr-form-item-title">其他</div> | |||||
<input id="OtherOne" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">应发合计</div> | |||||
<input id="TotalGrossPay" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">代扣合计</div> | |||||
<input id="DeductionsSubtotal" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">公积金</div> | |||||
<input id="AccumulationFund" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">养老保险</div> | |||||
<input id="EndowmentInsurance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">职业年金</div> | |||||
<input id="OccupationalAnnuities" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">医疗保险</div> | |||||
<input id="MedicalInsurance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">失业保险</div> | |||||
<input id="UnemploymentInsurance" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">工会工费</div> | |||||
<input id="LaborUnionWage" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">个人所得税</div> | |||||
<input id="PersonalIncomeTax" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">其他</div> | |||||
<input id="Other" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">实发合计</div> | |||||
<input id="NetCombined" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">工资卡号<font face="宋体">*</font></div> | |||||
<input id="WageCardNo" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" /> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">发放年份<font face="宋体">*</font></div> | |||||
<div id="IssueYear" isvalid="yes" checkexpession="NotNull"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">发放月份<font face="宋体">*</font></div> | |||||
<div id="IssueMonth" isvalid="yes" checkexpession="NotNull"></div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/Form.js") |
@@ -0,0 +1,66 @@ | |||||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2022-11-07 11:54 | |||||
* 描 述:工作绩效 | |||||
*/ | |||||
var acceptClick; | |||||
var keyValue = request('keyValue'); | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
//var selectedRow = learun.frameTab.currentIframe().selectedRow; | |||||
var page = { | |||||
init: function () { | |||||
page.initData(); | |||||
page.bind(); | |||||
}, | |||||
bind: function () { | |||||
//年份 | |||||
$('#IssueYear').lrselect({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/PersonnelManagement/MP_ManagementPlan/GetAcademicYear', | |||||
value: 'value', | |||||
text: 'text' | |||||
}); | |||||
$('#IssueMonth').lrDataItemSelect({ code: 'MPMonth' }); | |||||
$('#EmpName').lrDataSourceSelect({ | |||||
allowSearch: true, | |||||
Height: 200, | |||||
code: 'teacheruserdata', value: 'f_realname', text: 'f_realname' | |||||
}); | |||||
}, | |||||
initData: function () { | |||||
//if (!!selectedRow) { | |||||
// $('#form').lrSetFormData(selectedRow); | |||||
//} | |||||
if (!!keyValue) { | |||||
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/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]); | |||||
$('#form').lrSetFormData(data[id]); | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
}; | |||||
// 保存数据 | |||||
acceptClick = function (callBack) { | |||||
if (!$('#form').lrValidform()) { | |||||
return false; | |||||
} | |||||
var postData = $('#form').lrGetFormData(); | |||||
$("#EmpName").val($("#EmpName").find(".lr-select-placeholder").text()); | |||||
$.lrSaveForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/SaveForm?keyValue=' + keyValue, postData, function (res) { | |||||
// 保存成功后才回调 | |||||
if (!!callBack) { | |||||
callBack(); | |||||
} | |||||
}); | |||||
}; | |||||
page.init(); | |||||
} |
@@ -0,0 +1,25 @@ | |||||
@{ | |||||
ViewBag.Title = "Form"; | |||||
Layout = "~/Views/Shared/_Form.cshtml"; | |||||
} | |||||
<link href="~/Content/webuploader/webuploader.css" rel="stylesheet" /> | |||||
<script src="~/Content/webuploader/webuploader.nolog.min.js"></script> | |||||
@Html.AppendCssFile("/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css") | |||||
<div class="lr-form-layout lr-form-layout-top-bottom"> | |||||
<div class="lr-form-layout-header"> | |||||
<div id="lr_add_file_btn"><i class="fa fa-cloud-upload"></i><span class="lrlt">上传文件</span></div> | |||||
<div class="webuploader-pick" id="lr_down_file_btn"><i class="fa fa-download"></i><span class="lrlt">下载模板</span></div> | |||||
</div> | |||||
<div class="lr-form-layout-body"> | |||||
<div class="lr-form-file-queue-wrap" id="lr_form_file_queue"> | |||||
<div class="lr-form-file-queue" id="lr_form_file_queue_list"> | |||||
</div> | |||||
<div class="lr-form-file-queue-bg"> | |||||
<h1><span class="lrlt">试试将电脑里的文件拖拽到此上传</span></h1> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js") |
@@ -0,0 +1,136 @@ | |||||
.lr-form-layout-body { | |||||
padding:0 5px 5px 5px; | |||||
} | |||||
.lr-form-file-queue-wrap { | |||||
position:relative; | |||||
width:100%; | |||||
height:100%; | |||||
border:1px solid #ddd; | |||||
border-radius:4px; | |||||
} | |||||
.lr-form-file-queue { | |||||
position:relative; | |||||
} | |||||
.lr-form-file-queue { | |||||
position:relative; | |||||
} | |||||
.lr-form-file-queue-item { | |||||
position:relative; | |||||
width:100%; | |||||
height:50px; | |||||
border-bottom:1px solid #ddd; | |||||
padding-left:60px; | |||||
} | |||||
.lr-file-image { | |||||
position:absolute; | |||||
top:5px; | |||||
left:5px; | |||||
} | |||||
.lr-file-image img { | |||||
width:40px; | |||||
height:40px; | |||||
} | |||||
.lr-file-name{ | |||||
line-height:50px; | |||||
} | |||||
.lr-msg { | |||||
position:absolute; | |||||
top:0; | |||||
right:5px; | |||||
font-size: 25px; | |||||
line-height:50px; | |||||
} | |||||
.lr-msg .fa-check-circle{ | |||||
color: #5cb85c; | |||||
} | |||||
.lr-msg .fa-exclamation-circle { | |||||
color: #b94a48; | |||||
} | |||||
.lr-msg2 { | |||||
position:absolute; | |||||
top:0; | |||||
right:5px; | |||||
line-height:50px; | |||||
} | |||||
.lr-msg2 span { | |||||
color:#333; | |||||
font-size:14px; | |||||
margin-right:5px; | |||||
} | |||||
.lr-tool-bar { | |||||
position:absolute; | |||||
top:0; | |||||
right:35px; | |||||
font-size: 25px; | |||||
line-height:50px; | |||||
color:#666; | |||||
cursor:pointer; | |||||
} | |||||
.lr-tool-bar > i { | |||||
margin-left:8px; | |||||
} | |||||
.lr-tool-bar .fa-minus-circle { | |||||
color: #b94a48; | |||||
} | |||||
.lr-tool-bar .fa-cloud-download { | |||||
color: #3498db; | |||||
} | |||||
.lr-uploader-progress { | |||||
position:absolute; | |||||
bottom:2px; | |||||
left:60px; | |||||
height:4px; | |||||
width:500px; | |||||
width:calc(100% - 90px); | |||||
} | |||||
.lr-uploader-progress-bar { | |||||
position:relative; | |||||
height:100%; | |||||
background-color:#039cfd; | |||||
border-radius:4px; | |||||
} | |||||
.lr-form-file-queue-bg { | |||||
position:absolute; | |||||
top:50%; | |||||
left:50%; | |||||
width:300px; | |||||
height:30px; | |||||
line-height:30px; | |||||
margin:-15px 0 0 -150px; | |||||
} | |||||
.lr-form-file-queue-bg h1 { | |||||
color: #666; | |||||
font-size: 20px; | |||||
font-family: Microsoft Yahei; | |||||
padding-bottom: 2px; | |||||
margin: 0; | |||||
} | |||||
#lr_down_file_btn { | |||||
position:absolute; | |||||
right:5px; | |||||
background:#fff; | |||||
border:1px solid #ddd; | |||||
color:#333; | |||||
} | |||||
#lr_down_file_btn:hover { | |||||
color:#337ab7; | |||||
} | |||||
/*对百度插件的样式重写*/ | |||||
.webuploader-container { | |||||
position:absolute; | |||||
} | |||||
.webuploader-pick { | |||||
padding:8px 15px; | |||||
background-color:#039cfd; | |||||
} | |||||
.webuploader-pick-hover { | |||||
background-color:#027dcb; | |||||
} |
@@ -0,0 +1,242 @@ | |||||
/* | |||||
* 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn) | |||||
* Copyright (c) 2013-2018 北京泉江科技有限公司 | |||||
* 创建人:陈彬彬 | |||||
* 日 期:2017.04.11 | |||||
* 描 述:导入Excel | |||||
*/ | |||||
var id = request('id'); | |||||
var keyVaule = ''; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var page1 = { | |||||
init: function () { | |||||
page.bind(); | |||||
page.initData(); | |||||
}, | |||||
bind: function () { | |||||
$('#lr_add_format').on('click', function () { | |||||
currentColRow = null; | |||||
learun.layerForm({ | |||||
id: 'FormatForm', | |||||
title: '添加', | |||||
url: top.$.rootUrl + '/LR_SystemModule/CodeRule/FormatForm', | |||||
width: 450, | |||||
height: 310, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(function (data) { | |||||
$('#gridtable').jfGridSet('addRow', { row: data }); | |||||
}); | |||||
} | |||||
}); | |||||
}); | |||||
$('#lr_edit_format').on('click', function () { | |||||
currentColRow = $('#gridtable').jfGridGet('rowdata'); | |||||
var _id = currentColRow ? currentColRow.itemTypeName : ''; | |||||
if (learun.checkrow(_id)) { | |||||
learun.layerForm({ | |||||
id: 'FormatForm', | |||||
title: '修改', | |||||
url: top.$.rootUrl + '/LR_SystemModule/CodeRule/FormatForm', | |||||
width: 450, | |||||
height: 310, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(function (data) { | |||||
$('#gridtable').jfGridSet('updateRow', { row: data }); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
$('#lr_delete_format').on('click', function () { | |||||
currentColRow = null; | |||||
var row = $('#gridtable').jfGridGet('rowdata'); | |||||
var _id = row ? row.itemTypeName : ''; | |||||
if (learun.checkrow(_id)) { | |||||
learun.layerConfirm('是否确认删除该项!', function (res, index) { | |||||
if (res) { | |||||
$('#gridtable').jfGridSet('removeRow'); | |||||
top.layer.close(index); //再执行关闭 | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
$('#gridtable').jfGrid({ | |||||
headData: [ | |||||
{ label: "前缀", name: "itemTypeName", width: 120, align: "left" }, | |||||
{ label: "格式", name: "formatStr", width: 120, align: "left" }, | |||||
{ label: "步长", name: "stepValue", width: 100, align: "left" }, | |||||
{ label: "初始值", name: "initValue", width: 120, align: "left" }, | |||||
{ label: "说明", name: "description", width: 180, align: "left" } | |||||
] | |||||
}); | |||||
/*检测重复项*/ | |||||
$('#F_EnCode').on('blur', function () { | |||||
$.lrExistField(keyValue, 'F_EnCode', top.$.rootUrl + '/LR_SystemModule/CodeRule/ExistEnCode'); | |||||
}); | |||||
$('#F_FullName').on('blur', function () { | |||||
$.lrExistField(keyValue, 'F_FullName', top.$.rootUrl + '/LR_SystemModule/CodeRule/ExistFullName'); | |||||
}); | |||||
}, | |||||
initData: function () { | |||||
if (!!selectedRow) { | |||||
keyValue = selectedRow.F_RuleId; | |||||
$('#form').lrSetFormData(selectedRow); | |||||
var formatdata = JSON.parse(selectedRow.F_RuleFormatJson); | |||||
$('#gridtable').jfGridSet('refreshdata', formatdata); | |||||
} | |||||
} | |||||
}; | |||||
var fileInfo = {}; | |||||
// 触发合并文件碎片 | |||||
var mergeFileChunks = function (file) { | |||||
var param = {}; | |||||
param['__RequestVerificationToken'] = $.lrToken; | |||||
param['fileId'] = fileInfo[file.id].fileGuid; | |||||
param['chunks'] = fileInfo[file.id].chunks; | |||||
param['ext'] = file.ext; | |||||
param['templateId'] = id; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/LR_SystemModule/ExcelImport/SalarySheetImport", param, function (res) { | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.find('.lr-uploader-progress').remove(); | |||||
if (res.code == learun.httpCode.success) { | |||||
if (res.data.Success != '0') { | |||||
learun.alert.success('导入成功' + res.data.Success + '条'); | |||||
} | |||||
// 文件保存成功后 | |||||
$fileItem.append('<div class="lr-msg2"><span>' + res.data.Success + '</span><span>/</span><span style="color:#b94a48;" >' + res.data.Fail + '</span></div>'); | |||||
// 如果有失败 | |||||
if (res.data.Fail != '0') | |||||
{ | |||||
learun.download({ url: top.$.rootUrl + '/LR_SystemModule/ExcelImport/DownImportErrorFile', param: { fileId: fileInfo[file.id].fileGuid, fileName: fileInfo[file.id].name, __RequestVerificationToken: $.lrToken }, method: 'POST' }); | |||||
} | |||||
} | |||||
else { | |||||
$fileItem.append('<div class="lr-msg"><i class="fa fa-exclamation-circle"></i></div>'); | |||||
} | |||||
}); | |||||
} | |||||
// 触发清楚文件碎片 | |||||
var reomveFileChunks = function (file) { | |||||
var param = {}; | |||||
param['__RequestVerificationToken'] = $.lrToken; | |||||
param['fileGuid'] = fileInfo[file.id].fileGuid; | |||||
param['chunks'] = fileInfo[file.id].chunks; | |||||
learun.httpAsyncPost(top.$.rootUrl + "/LR_SystemModule/Annexes/MergeAnnexesFile", param, function (res) { }); | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.find('.lr-uploader-progress').remove(); | |||||
$fileItem.append('<div class="lr-msg"><i class="fa fa-exclamation-circle"></i></div>'); | |||||
} | |||||
var page = { | |||||
uploader: null, | |||||
init: function () { | |||||
/*模板下载*/ | |||||
$('#lr_down_file_btn').on('click', function () { | |||||
learun.download({ url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/DownTemplate', param: { keyValue: id, __RequestVerificationToken: $.lrToken }, method: 'POST' }); | |||||
}); | |||||
if (!WebUploader.Uploader.support()) { | |||||
alert('Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器'); | |||||
throw new Error('WebUploader does not support the browser you are using.'); | |||||
} | |||||
page.uploader = WebUploader.create({ | |||||
auto: true, | |||||
swf: top.$.rootUrl + '/Content/webuploader/Uploader.swf', | |||||
// 文件接收服务端。 | |||||
server: top.$.rootUrl + "/LR_SystemModule/Annexes/UploadAnnexesFileChunk", | |||||
// 选择文件的按钮。可选。 | |||||
// 内部根据当前运行是创建,可能是input元素,也可能是flash. | |||||
pick: '#lr_add_file_btn', | |||||
dnd: '#lr_form_file_queue', | |||||
paste: 'document.body', | |||||
disableGlobalDnd: true, | |||||
accept: { | |||||
extensions: "xls,xlsx" | |||||
}, | |||||
multiple: true, | |||||
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! | |||||
resize: false, | |||||
// 文件分片上传 | |||||
chunked: true, | |||||
chunkRetry: 3, | |||||
prepareNextFile: true, | |||||
chunkSize: '1048576', | |||||
// 上传参数 | |||||
formData: { | |||||
__RequestVerificationToken: $.lrToken | |||||
} | |||||
}); | |||||
page.uploader.on('fileQueued', page.fileQueued); | |||||
page.uploader.on('uploadStart', page.uploadStart); | |||||
page.uploader.on('uploadBeforeSend', page.uploadBeforeSend); | |||||
page.uploader.on('uploadProgress', page.uploadProgress); | |||||
page.uploader.on('uploadSuccess', page.uploadSuccess); | |||||
page.uploader.on('uploadError', page.uploadError); | |||||
page.uploader.on('uploadComplete', page.uploadComplete); | |||||
page.uploader.on('error', page.error); | |||||
$('#lr_form_file_queue').lrscroll(); | |||||
}, | |||||
fileQueued: function (file) {// 文件加载到队列 | |||||
fileInfo[file.id] = { name: file.name }; | |||||
$('#lr_form_file_queue .lr-form-file-queue-bg').hide(); | |||||
// 添加一条文件记录 | |||||
var $item = $('<div class="lr-form-file-queue-item" id="lr_filequeue_' + file.id + '" ></div>'); | |||||
$item.append('<div class="lr-file-image"><img src="' + top.$.rootUrl + '/Content/images/filetype/' + file.ext + '.png"></div>'); | |||||
$item.append('<span class="lr-file-name">' + file.name + '(' + learun.countFileSize(file.size) + ')</span>'); | |||||
$('#lr_form_file_queue_list').append($item); | |||||
}, | |||||
uploadStart: function (file) { | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.append('<div class="lr-uploader-progress"><div class="lr-uploader-progress-bar" style="width:0%;"></div></div>'); | |||||
}, | |||||
uploadBeforeSend: function (object, data, headers) { | |||||
data.chunk = data.chunk || 0; | |||||
data.chunks = data.chunks || 1; | |||||
fileInfo[data.id].fileGuid = fileInfo[data.id].fileGuid || WebUploader.Base.guid(); | |||||
data.fileGuid = fileInfo[data.id].fileGuid; | |||||
fileInfo[data.id].chunks = data.chunks; | |||||
}, | |||||
uploadProgress: function (file, percentage) { | |||||
var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id); | |||||
$fileItem.find('.lr-uploader-progress-bar').css('width', (percentage * 100 + '%')); | |||||
}, | |||||
uploadSuccess: function (file, res) { | |||||
if (res.code == 200) {// 上传成功 | |||||
mergeFileChunks(file); | |||||
} | |||||
else {// 上传失败 | |||||
reomveFileChunks(file); | |||||
} | |||||
}, | |||||
uploadError: function (file, code) { | |||||
reomveFileChunks(file); | |||||
}, | |||||
uploadComplete: function (file) { | |||||
}, | |||||
error: function (type) { | |||||
switch (type) { | |||||
case 'Q_TYPE_DENIED': | |||||
learun.alert.error('当前文件类型不允许上传'); | |||||
break; | |||||
}; | |||||
} | |||||
}; | |||||
page.init(); | |||||
} |
@@ -0,0 +1,64 @@ | |||||
@{ | |||||
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="multiple_condition_query"> | |||||
<div class="lr-query-formcontent"> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">年份</div> | |||||
<div id="IssueYear"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">月份</div> | |||||
<div id="IssueMonth"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">人员类别</div> | |||||
<div id="PeopleType"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">岗位等级</div> | |||||
<div id="PostType"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">薪级</div> | |||||
<div id="PayGrade"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">姓名</div> | |||||
<input id="EmpName" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">工资卡号</div> | |||||
<input id="WageCardNo" 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_add" class="btn btn-default"><i class="fa fa-plus"></i> 新增</a> | |||||
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> 编辑</a> | |||||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> 删除</a> | |||||
<a id="lr_checkall" class="btn btn-default"><i class="fa fa-print"></i> 审核全部</a> | |||||
<a id="lr_check" class="btn btn-default"><i class="fa fa-lock"></i> 审核</a> | |||||
<a id="lr_uncheck" class="btn btn-default"><i class="fa fa-unlock"></i> 去审核</a> | |||||
<a id="lr_import" class="btn btn-default"><i class="fa fa-share-square-o"></i> 导入</a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/Index.js") |
@@ -0,0 +1,269 @@ | |||||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2022-11-07 11:54 | |||||
* 描 述:工作绩效 | |||||
*/ | |||||
var refreshGirdData; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var page = { | |||||
init: function () { | |||||
page.initGird(); | |||||
page.bind(); | |||||
}, | |||||
bind: function () { | |||||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||||
page.search(queryJson); | |||||
}, 220, 400); | |||||
//年份 | |||||
$('#IssueYear').lrselect({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/PersonnelManagement/MP_ManagementPlan/GetAcademicYear', | |||||
value: 'value', | |||||
text: 'text' | |||||
}); | |||||
$('#IssueMonth').lrDataItemSelect({ code: 'MPMonth' }); | |||||
$('#PeopleType').lrselect({ | |||||
placeholder: "请选择人员类别", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/PeopleType', | |||||
value: 'PeopleType', | |||||
text: 'PeopleType' | |||||
}); | |||||
$('#PostType').lrselect({ | |||||
placeholder: "请选择岗位等级", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/PostType', | |||||
value: 'PostType', | |||||
text: 'PostType' | |||||
}); | |||||
$('#PayGrade').lrselect({ | |||||
placeholder: "请选择薪级", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/PayGrade', | |||||
value: 'PayGrade', | |||||
text: 'PayGrade' | |||||
}); | |||||
// 刷新 | |||||
$('#lr_refresh').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
// 新增 | |||||
$('#lr_add').on('click', function () { | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '新增', | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/Form', | |||||
width: 800, | |||||
height: 800, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
}); | |||||
// 编辑 | |||||
$('#lr_edit').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
if (learun.checkrow(keyValue)) { | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
if (CheckMark.indexOf('1') != -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '编辑', | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/Form?keyValue=' + keyValue, | |||||
width: 800, | |||||
height: 800, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 删除 | |||||
$('#lr_delete').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
if (learun.checkrow(keyValue)) { | |||||
if (CheckMark.indexOf('1') != -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerConfirm('是否确认删除该项!', function (res) { | |||||
if (res) { | |||||
learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/DeleteForm', { keyValue: keyValue }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//审核 | |||||
$('#lr_check').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
if (learun.checkrow(keyValue)) { | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
if (CheckMark.indexOf('1') != -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerConfirm('是否确认审核该项?', function (res) { | |||||
if (res) { | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/CheckForm', { keyValue: keyValue, Status: '1' }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//去审 | |||||
$('#lr_uncheck').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
if (learun.checkrow(keyValue)) { | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
var CheckMarkArr = CheckMark.split(','); | |||||
if ($.inArray('0', CheckMarkArr) != -1 || $.inArray('', CheckMarkArr) != -1) { | |||||
learun.alert.warning("选中记录中包含未审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerConfirm('是否确认取消审核该项?', function (res) { | |||||
if (res) { | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/CheckForm', { keyValue: keyValue, Status: '2' }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//审核全部 | |||||
$('#lr_checkall').on('click', function () { | |||||
learun.layerConfirm('是否确认全部审核?', function (res) { | |||||
if (res) { | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/CheckForm', { keyValue: null, Status: '0' }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
}); | |||||
///上传 | |||||
$('#lr_import').on('click', | |||||
function () { | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '导入', | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/ImportForm', | |||||
width: 600, | |||||
height: 400, | |||||
btn: null, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
}); | |||||
}, | |||||
initGird: function () { | |||||
$('#gridtable').jfGrid({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/GetPageList', | |||||
headData: [ | |||||
{ label: '发放年份', name: 'IssueYear', width: 70, align: "left" }, | |||||
{ label: '发放月份', name: 'IssueMonth', width: 70, align: "left" }, | |||||
{ label: '序号', name: 'No', width: 70, align: "left" }, | |||||
{ label: '姓名', name: 'EmpName', width: 70, align: "left" }, | |||||
{ label: '工资卡号', name: 'WageCardNo', width: 130, align: "left" }, | |||||
{ label: '人员类别', name: 'PeopleType', width: 70, align: "left" }, | |||||
{ label: '岗位等级', name: 'PostType', width: 70, align: "left" }, | |||||
{ label: '薪级', name: 'PayGrade', width: 50, align: "left" }, | |||||
{ label: '应发合计', name: 'TotalGrossPay', width: 70, align: "left", statistics: true }, | |||||
{ | |||||
label: '基本工资', name: '基本工资', width: 130, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '岗位工资', name: 'PostWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '薪级工资', name: 'PayGradeWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '百分之十', name: 'TenPercent', width: 70, align: "left", statistics: true }, | |||||
//{ label: '小计', name: 'BasePay', width: 70, align: "left", statistics: true } | |||||
] | |||||
}, | |||||
{ | |||||
label: '绩效工资', name: '绩效工资', width: 70, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '基础绩效', name: 'BasicsPerformance', width: 70, align: "left", statistics: true }, | |||||
{ label: '奖励绩效', name: 'AwardPerformance', width: 70, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '单列绩效', name: '单列绩效', width: 70, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '基础绩效', name: 'SeparateBasicsPerformance', width: 70, align: "left", statistics: true }, | |||||
{ label: '奖励绩效', name: 'SeparateAwardPerformance', width: 70, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '津贴补贴', name: '津贴补贴', width: 130, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '艰边津贴', name: 'RoughEdgeAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '民族津贴', name: 'NationAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '教龄补贴', name: 'TeachAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '特级教师津贴', name: 'SuperfineTeacherResearch', width: 80, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '改革性补贴', name: '改革性补贴', width: 70, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '交通补贴', name: 'Transportation', width: 70, align: "left", statistics: true }, | |||||
{ label: '物业补贴', name: 'RealeState', width: 70, align: "left", statistics: true }, | |||||
{ label: '工改保留补贴', name: 'WorkKeep', width: 90, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ label: '女职工卫生费', name: 'GirlStaffSanitation', width: 90, align: "left", statistics: true }, | |||||
{ label: '乡镇补贴', name: 'TeacherAndTown', width: 130, align: "center", statistics: true }, | |||||
{ label: '住房补贴', name: 'HousingAllowance', width: 80, align: "left", statistics: true }, | |||||
{ label: '住房公积金', name: 'HousingFundAllowance', width: 80, align: "left", statistics: true }, | |||||
{ label: '其他', name: 'OtherOne', width: 70, align: "left", statistics: true }, | |||||
{ label: '代扣合计', name: 'DeductionsSubtotal', width: 70, align: "left", statistics: true }, | |||||
{ | |||||
label: '代扣代缴', name: '代扣代缴', width: 130, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '公积金', name: 'AccumulationFund', width: 70, align: "left", statistics: true }, | |||||
{ label: '养老保险', name: 'EndowmentInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '职业年金', name: 'OccupationalAnnuities', width: 70, align: "left", statistics: true }, | |||||
{ label: '医疗保险', name: 'MedicalInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '失业保险', name: 'UnemploymentInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '工会工费', name: 'LaborUnionWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '个人所得税', name: 'PersonalIncomeTax', width: 70, align: "left", statistics: true }, | |||||
{ label: '其他', name: 'Other', width: 70, align: "left", statistics: true } | |||||
] | |||||
}, | |||||
//{ label: '财政直达', name: 'FiscalDirect', width: 70, align: "left", statistics: true }, | |||||
//{ label: '银行代扣', name: 'BankWithholding', width: 70, align: "left", statistics: true }, | |||||
{ label: '实发合计', name: 'NetCombined', width: 70, align: "left", statistics: true }, | |||||
//{ label: '创建用户', name: 'CreateUser', width: 70, align: "left" }, | |||||
//{ label: '创建时间', name: 'CreateTime', width: 130, align: "left" }, | |||||
{ | |||||
label: "审核状态", name: "F_EnabledMark", width: 70, align: "center", | |||||
formatter: function (cellvalue) { | |||||
return cellvalue == "1" ? "<span class=\"label label-success\">已审核</span>" : "<span class=\"label label-danger\">未审核</span>"; | |||||
} | |||||
}, | |||||
], | |||||
mainId: 'Id', | |||||
isPage: true, | |||||
rows: 300, | |||||
sidx: 'IssueYear desc, IssueMonth desc, CreateTime desc ', | |||||
isMultiselect: true | |||||
}); | |||||
page.search(); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
param.Sqlparam = ""; | |||||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||||
} | |||||
}; | |||||
refreshGirdData = function () { | |||||
$('#gridtable').jfGridSet('reload'); | |||||
}; | |||||
page.init(); | |||||
} |
@@ -0,0 +1,44 @@ | |||||
@{ | |||||
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="multiple_condition_query"> | |||||
<div class="lr-query-formcontent"> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">年份</div> | |||||
<div id="IssueYear"></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">月份</div> | |||||
<div id="IssueMonth"></div> | |||||
</div> | |||||
@*<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">姓名</div> | |||||
<input id="EmpName" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">工资卡号</div> | |||||
<input id="WageCardNo" 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> | |||||
@*<a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i> 打印</a>*@ | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js") |
@@ -0,0 +1,126 @@ | |||||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2022-11-07 11:54 | |||||
* 描 述:工作绩效 | |||||
*/ | |||||
var refreshGirdData; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var page = { | |||||
init: function () { | |||||
page.initGird(); | |||||
page.bind(); | |||||
}, | |||||
bind: function () { | |||||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||||
page.search(queryJson); | |||||
}, 220, 400); | |||||
//年份 | |||||
$('#IssueYear').lrselect({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/PersonnelManagement/MP_ManagementPlan/GetAcademicYear', | |||||
value: 'value', | |||||
text: 'text' | |||||
}); | |||||
$('#IssueMonth').lrDataItemSelect({ code: 'MPMonth' }); | |||||
// 刷新 | |||||
$('#lr_refresh').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
//// 打印 | |||||
//$('#lr_print').on('click', function () { | |||||
// $('#gridtable').jqprintTable(); | |||||
//}); | |||||
}, | |||||
initGird: function () { | |||||
$('#gridtable').jfGrid({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/GetPageList', | |||||
headData: [ | |||||
{ label: '发放年份', name: 'IssueYear', width: 70, align: "left" }, | |||||
{ label: '发放月份', name: 'IssueMonth', width: 70, align: "left" }, | |||||
{ label: '序号', name: 'No', width: 70, align: "left" }, | |||||
{ label: '姓名', name: 'EmpName', width: 70, align: "left" }, | |||||
{ label: '工资卡号', name: 'WageCardNo', width: 130, align: "left" }, | |||||
{ label: '人员类别', name: 'PeopleType', width: 70, align: "left" }, | |||||
{ label: '岗位等级', name: 'PostType', width: 70, align: "left" }, | |||||
{ label: '薪级', name: 'PayGrade', width: 50, align: "left" }, | |||||
{ label: '应发合计', name: 'TotalGrossPay', width: 70, align: "left", statistics: true }, | |||||
{ | |||||
label: '基本工资', name: '基本工资', width: 130, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '岗位工资', name: 'PostWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '薪级工资', name: 'PayGradeWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '百分之十', name: 'TenPercent', width: 70, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '绩效工资', name: '绩效工资', width: 70, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '基础绩效', name: 'BasicsPerformance', width: 70, align: "left", statistics: true }, | |||||
{ label: '奖励绩效', name: 'AwardPerformance', width: 70, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '单列绩效', name: '单列绩效', width: 70, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '基础绩效', name: 'SeparateBasicsPerformance', width: 70, align: "left", statistics: true }, | |||||
{ label: '奖励绩效', name: 'SeparateAwardPerformance', width: 90, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '津贴补贴', name: '津贴补贴', width: 130, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '艰边津贴', name: 'RoughEdgeAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '民族津贴', name: 'NationAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '教龄补贴', name: 'TeachAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '特级教师津贴', name: 'SuperfineTeacherResearch', width: 100, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ | |||||
label: '改革性补贴', name: '改革性补贴', width: 70, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '交通补贴', name: 'Transportation', width: 70, align: "left", statistics: true }, | |||||
{ label: '物业补贴', name: 'RealeState', width: 70, align: "left", statistics: true }, | |||||
{ label: '工改保留补贴', name: 'WorkKeep', width: 90, align: "left", statistics: true }, | |||||
] | |||||
}, | |||||
{ label: '女职工卫生费', name: 'GirlStaffSanitation', width: 90, align: "left", statistics: true }, | |||||
{ label: '乡镇补贴', name: 'TownshipSubsidy', width: 130, align: "center", statistics: true }, | |||||
{ label: '住房补贴', name: 'HousingAllowance', width: 80, align: "left", statistics: true }, | |||||
{ label: '住房公积金', name: 'HousingFundAllowance', width: 80, align: "left", statistics: true }, | |||||
{ label: '其他', name: 'OtherOne', width: 70, align: "left", statistics: true }, | |||||
{ label: '代扣合计', name: 'DeductionsSubtotal', width: 70, align: "left", statistics: true }, | |||||
{ | |||||
label: '代扣代缴', name: '代扣代缴', width: 130, align: "center", statistics: true, | |||||
children: [ | |||||
{ label: '公积金', name: 'AccumulationFund', width: 70, align: "left", statistics: true }, | |||||
{ label: '养老保险', name: 'EndowmentInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '职业年金', name: 'OccupationalAnnuities', width: 70, align: "left", statistics: true }, | |||||
{ label: '医疗保险', name: 'MedicalInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '失业保险', name: 'UnemploymentInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '工会工费', name: 'LaborUnionWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '个人所得税', name: 'PersonalIncomeTax', width: 70, align: "left", statistics: true }, | |||||
{ label: '其他', name: 'Other', width: 70, align: "left", statistics: true } | |||||
] | |||||
}, | |||||
{ label: '实发合计', name: 'NetCombined', width: 70, align: "left", statistics: true }, | |||||
], | |||||
mainId: 'Id', | |||||
isPage: true, | |||||
rows: 300, | |||||
sidx: 'CreateTime', | |||||
}); | |||||
page.search(); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
param.Sqlparam = "1"; | |||||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||||
} | |||||
}; | |||||
refreshGirdData = function () { | |||||
$('#gridtable').jfGridSet('reload'); | |||||
}; | |||||
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="multiple_condition_query"> | |||||
<div class="lr-query-formcontent"> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">年份</div> | |||||
<div id="IssueYear"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">月份</div> | |||||
<div id="IssueMonth"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">人员类别</div> | |||||
<div id="PeopleType"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">岗位等级</div> | |||||
<div id="PostType"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">薪级</div> | |||||
<div id="PayGrade"></div> | |||||
</div> | |||||
<div class="col-xs-6 lr-form-item"> | |||||
<div class="lr-form-item-title">姓名</div> | |||||
<input id="EmpName" type="text" class="form-control" /> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">工资卡号</div> | |||||
<input id="WageCardNo" 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"> | |||||
</div>*@ | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js") |
@@ -0,0 +1,269 @@ | |||||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2022-11-07 11:54 | |||||
* 描 述:工作绩效 | |||||
*/ | |||||
var refreshGirdData; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var page = { | |||||
init: function () { | |||||
page.initGird(); | |||||
page.bind(); | |||||
}, | |||||
bind: function () { | |||||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||||
page.search(queryJson); | |||||
}, 220, 400); | |||||
//年份 | |||||
$('#IssueYear').lrselect({ | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/PersonnelManagement/MP_ManagementPlan/GetAcademicYear', | |||||
value: 'value', | |||||
text: 'text' | |||||
}); | |||||
$('#IssueMonth').lrDataItemSelect({ code: 'MPMonth' }); | |||||
$('#PeopleType').lrselect({ | |||||
placeholder: "请选择人员类别", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/PeopleType', | |||||
value: 'PeopleType', | |||||
text: 'PeopleType' | |||||
}); | |||||
$('#PostType').lrselect({ | |||||
placeholder: "请选择岗位等级", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/PostType', | |||||
value: 'PostType', | |||||
text: 'PostType' | |||||
}); | |||||
$('#PayGrade').lrselect({ | |||||
placeholder: "请选择薪级", | |||||
allowSearch: true, | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/PayGrade', | |||||
value: 'PayGrade', | |||||
text: 'PayGrade' | |||||
}); | |||||
// 刷新 | |||||
$('#lr_refresh').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
// 新增 | |||||
$('#lr_add').on('click', function () { | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '新增', | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/Form', | |||||
width: 800, | |||||
height: 800, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
}); | |||||
// 编辑 | |||||
$('#lr_edit').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
if (learun.checkrow(keyValue)) { | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
if (CheckMark.indexOf('1') != -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '编辑', | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/Form?keyValue=' + keyValue, | |||||
width: 800, | |||||
height: 800, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 删除 | |||||
$('#lr_delete').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
if (learun.checkrow(keyValue)) { | |||||
if (CheckMark.indexOf('1') != -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerConfirm('是否确认删除该项!', function (res) { | |||||
if (res) { | |||||
learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/DeleteForm', { keyValue: keyValue }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//审核 | |||||
$('#lr_check').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
if (learun.checkrow(keyValue)) { | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
if (CheckMark.indexOf('1') != -1) { | |||||
learun.alert.warning("选中记录中包含已审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerConfirm('是否确认审核该项?', function (res) { | |||||
if (res) { | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/CheckForm', { keyValue: keyValue, Status: '1' }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//去审 | |||||
$('#lr_uncheck').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('Id'); | |||||
if (learun.checkrow(keyValue)) { | |||||
var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark'); | |||||
var CheckMarkArr = CheckMark.split(','); | |||||
if ($.inArray('0', CheckMarkArr) != -1 || $.inArray('', CheckMarkArr) != -1) { | |||||
learun.alert.warning("选中记录中包含未审核项目!"); | |||||
return; | |||||
} | |||||
learun.layerConfirm('是否确认取消审核该项?', function (res) { | |||||
if (res) { | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/CheckForm', { keyValue: keyValue, Status: '2' }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
//审核全部 | |||||
$('#lr_checkall').on('click', function () { | |||||
learun.layerConfirm('是否确认全部审核?', function (res) { | |||||
if (res) { | |||||
learun.postForm(top.$.rootUrl + '/EducationalAdministration/JobPerformance/CheckForm', { keyValue: null, Status: '0' }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
}); | |||||
///上传 | |||||
$('#lr_import').on('click', | |||||
function () { | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '导入', | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/ImportForm', | |||||
width: 600, | |||||
height: 400, | |||||
btn: null, | |||||
callBack: function (id) { | |||||
return top[id].acceptClick(refreshGirdData); | |||||
} | |||||
}); | |||||
}); | |||||
}, | |||||
initGird: function () { | |||||
$('#gridtable').jfGrid({ | |||||
url: top.$.rootUrl + '/EducationalAdministration/JobPerformance/GetPageList', | |||||
headData: [ | |||||
{ label: '发放年份', name: 'IssueYear', width: 70, align: "left" }, | |||||
{ label: '发放月份', name: 'IssueMonth', width: 70, align: "left" }, | |||||
{ label: '序号', name: 'No', width: 70, align: "left" }, | |||||
{ label: '姓名', name: 'EmpName', width: 70, align: "left" }, | |||||
{ label: '工资卡号', name: 'WageCardNo', width: 130, align: "left" }, | |||||
{ label: '人员类别', name: 'PeopleType', width: 70, align: "left" }, | |||||
{ label: '岗位等级', name: 'PostType', width: 70, align: "left" }, | |||||
{ label: '薪级', name: 'PayGrade', width: 50, align: "left" }, | |||||
{ label: '应发合计', name: 'TotalGrossPay', width: 70, align: "left", statistics: true }, | |||||
//{ | |||||
// label: '基本工资', name: '基本工资', width: 130, align: "center", statistics: true, | |||||
// children: [ | |||||
{ label: '岗位工资', name: 'PostWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '薪级工资', name: 'PayGradeWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '百分之十', name: 'TenPercent', width: 70, align: "left", statistics: true }, | |||||
//{ label: '小计', name: 'BasePay', width: 70, align: "left", statistics: true } | |||||
// ] | |||||
//}, | |||||
//{ | |||||
// label: '绩效工资', name: '绩效工资', width: 70, align: "center", statistics: true, | |||||
// children: [ | |||||
{ label: '基础绩效', name: 'BasicsPerformance', width: 70, align: "left", statistics: true }, | |||||
{ label: '奖励绩效', name: 'AwardPerformance', width: 70, align: "left", statistics: true }, | |||||
// ] | |||||
//}, | |||||
//{ | |||||
// label: '单列绩效', name: '单列绩效', width: 70, align: "center", statistics: true, | |||||
// children: [ | |||||
{ label: '基础绩效', name: 'SeparateBasicsPerformance', width: 70, align: "left", statistics: true }, | |||||
{ label: '奖励绩效', name: 'SeparateAwardPerformance', width: 70, align: "left", statistics: true }, | |||||
// ] | |||||
//}, | |||||
//{ | |||||
// label: '津贴补贴', name: '津贴补贴', width: 130, align: "center", statistics: true, | |||||
// children: [ | |||||
{ label: '艰边津贴', name: 'RoughEdgeAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '民族津贴', name: 'NationAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '教龄补贴', name: 'TeachAllowance', width: 70, align: "left", statistics: true }, | |||||
{ label: '特级教师津贴', name: 'SuperfineTeacherResearch', width: 80, align: "left", statistics: true }, | |||||
// ] | |||||
//}, | |||||
//{ | |||||
//label: '改革性补贴', name: '改革性补贴', width: 70, align: "center", statistics: true, | |||||
//children: [ | |||||
{ label: '交通补贴', name: 'Transportation', width: 70, align: "left", statistics: true }, | |||||
{ label: '物业补贴', name: 'RealeState', width: 70, align: "left", statistics: true }, | |||||
{ label: '工改保留补贴', name: 'WorkKeep', width: 90, align: "left", statistics: true }, | |||||
// ] | |||||
//}, | |||||
{ label: '女职工卫生费', name: 'GirlStaffSanitation', width: 90, align: "left", statistics: true }, | |||||
{ label: '乡镇补贴', name: 'TeacherAndTown', width: 130, align: "center", statistics: true }, | |||||
{ label: '住房补贴', name: 'HousingAllowance', width: 80, align: "left", statistics: true }, | |||||
{ label: '住房公积金', name: 'HousingFundAllowance', width: 80, align: "left", statistics: true }, | |||||
{ label: '其他', name: 'OtherOne', width: 70, align: "left", statistics: true }, | |||||
{ label: '代扣合计', name: 'DeductionsSubtotal', width: 70, align: "left", statistics: true }, | |||||
//{ | |||||
// label: '代扣代缴', name: '代扣代缴', width: 130, align: "center", statistics: true, | |||||
// children: [ | |||||
{ label: '公积金', name: 'AccumulationFund', width: 70, align: "left", statistics: true }, | |||||
{ label: '养老保险', name: 'EndowmentInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '职业年金', name: 'OccupationalAnnuities', width: 70, align: "left", statistics: true }, | |||||
{ label: '医疗保险', name: 'MedicalInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '失业保险', name: 'UnemploymentInsurance', width: 70, align: "left", statistics: true }, | |||||
{ label: '工会工费', name: 'LaborUnionWage', width: 70, align: "left", statistics: true }, | |||||
{ label: '个人所得税', name: 'PersonalIncomeTax', width: 70, align: "left", statistics: true }, | |||||
{ label: '其他', name: 'Other', width: 70, align: "left", statistics: true }, | |||||
// ] | |||||
//}, | |||||
//{ label: '财政直达', name: 'FiscalDirect', width: 70, align: "left", statistics: true }, | |||||
//{ label: '银行代扣', name: 'BankWithholding', width: 70, align: "left", statistics: true }, | |||||
{ label: '实发合计', name: 'NetCombined', width: 70, align: "left", statistics: true }, | |||||
//{ label: '创建用户', name: 'CreateUser', width: 70, align: "left" }, | |||||
//{ label: '创建时间', name: 'CreateTime', width: 130, align: "left" }, | |||||
{ | |||||
label: "审核状态", name: "F_EnabledMark", width: 70, align: "center", | |||||
formatter: function (cellvalue) { | |||||
return cellvalue == "1" ? "<span class=\"label label-success\">已审核</span>" : "<span class=\"label label-danger\">未审核</span>"; | |||||
} | |||||
}, | |||||
], | |||||
mainId: 'Id', | |||||
isPage: true, | |||||
rows: 300, | |||||
sidx: 'IssueYear desc, IssueMonth desc, CreateTime desc ', | |||||
isMultiselect: true | |||||
}); | |||||
page.search(); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
param.Sqlparam = ""; | |||||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||||
} | |||||
}; | |||||
refreshGirdData = function () { | |||||
$('#gridtable').jfGridSet('reload'); | |||||
}; | |||||
page.init(); | |||||
} |
@@ -373,6 +373,7 @@ | |||||
<Compile Include="Areas\EducationalAdministration\Controllers\Sys_ReceiveDocumentController.cs" /> | <Compile Include="Areas\EducationalAdministration\Controllers\Sys_ReceiveDocumentController.cs" /> | ||||
<Compile Include="Areas\EducationalAdministration\Controllers\TeachingPlanController.cs" /> | <Compile Include="Areas\EducationalAdministration\Controllers\TeachingPlanController.cs" /> | ||||
<Compile Include="Areas\EducationalAdministration\Controllers\TeachingPlanItemController.cs" /> | <Compile Include="Areas\EducationalAdministration\Controllers\TeachingPlanItemController.cs" /> | ||||
<Compile Include="Areas\EducationalAdministration\Controllers\JobPerformanceController.cs" /> | |||||
<Compile Include="Areas\EvaluationTeach\EvaluationTeachAreaRegistration.cs" /> | <Compile Include="Areas\EvaluationTeach\EvaluationTeachAreaRegistration.cs" /> | ||||
<Compile Include="Areas\EvaluationTeach\Controllers\Eval_MainController.cs" /> | <Compile Include="Areas\EvaluationTeach\Controllers\Eval_MainController.cs" /> | ||||
<Compile Include="Areas\EvaluationTeach\Controllers\Eval_QuestionController.cs" /> | <Compile Include="Areas\EvaluationTeach\Controllers\Eval_QuestionController.cs" /> | ||||
@@ -1485,6 +1486,12 @@ | |||||
<Content Include="Areas\EducationalAdministration\Views\Thermography\IndexResult.js" /> | <Content Include="Areas\EducationalAdministration\Views\Thermography\IndexResult.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\Thermography\StatisticIndex.js" /> | <Content Include="Areas\EducationalAdministration\Views\Thermography\StatisticIndex.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\Thermography\SubmitIndex.js" /> | <Content Include="Areas\EducationalAdministration\Views\Thermography\SubmitIndex.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\Form.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\ImportForm.css" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\ImportForm.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\Index.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\IndexMy.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\IndexPrint.js" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\WageSchedule\ImportForm.css" /> | <Content Include="Areas\EducationalAdministration\Views\WageSchedule\ImportForm.css" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\WageSchedule\ImportForm.js" /> | <Content Include="Areas\EducationalAdministration\Views\WageSchedule\ImportForm.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\WageSchedule\IndexMy.js" /> | <Content Include="Areas\EducationalAdministration\Views\WageSchedule\IndexMy.js" /> | ||||
@@ -8144,6 +8151,11 @@ | |||||
<Content Include="Areas\PersonnelManagement\Views\ActivitySchedule\qrCode.cshtml" /> | <Content Include="Areas\PersonnelManagement\Views\ActivitySchedule\qrCode.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuScore\InputScoreIndexInTeacherImport.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\StuScore\InputScoreIndexInTeacherImport.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoGraduate\GraduateCheck.cshtml" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoGraduate\GraduateCheck.cshtml" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\Form.cshtml" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\ImportForm.cshtml" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\Index.cshtml" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\IndexMy.cshtml" /> | |||||
<Content Include="Areas\EducationalAdministration\Views\JobPerformance\IndexPrint.cshtml" /> | |||||
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | <None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | ||||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | <None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | ||||
<Content Include="Views\Login\Default-beifen.cshtml" /> | <Content Include="Views\Login\Default-beifen.cshtml" /> | ||||
@@ -0,0 +1,29 @@ | |||||
using Learun.Application.TwoDevelopment.EducationalAdministration; | |||||
using System.Data.Entity.ModelConfiguration; | |||||
namespace Learun.Application.Mapping | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2022-11-07 11:54 | |||||
/// 描 述:工作绩效 | |||||
/// </summary> | |||||
public class JobPerformanceMap : EntityTypeConfiguration<JobPerformanceEntity> | |||||
{ | |||||
public JobPerformanceMap() | |||||
{ | |||||
#region 表、主键 | |||||
//表 | |||||
this.ToTable("JOBPERFORMANCE"); | |||||
//主键 | |||||
this.HasKey(t => t.Id); | |||||
#endregion | |||||
#region 配置关系 | |||||
#endregion | |||||
} | |||||
} | |||||
} | |||||
@@ -137,6 +137,7 @@ | |||||
<Compile Include="EducationalAdministration\TeachSwitchMap.cs" /> | <Compile Include="EducationalAdministration\TeachSwitchMap.cs" /> | ||||
<Compile Include="EducationalAdministration\Teach_attendanceMap.cs" /> | <Compile Include="EducationalAdministration\Teach_attendanceMap.cs" /> | ||||
<Compile Include="EducationalAdministration\ThermographyMap.cs" /> | <Compile Include="EducationalAdministration\ThermographyMap.cs" /> | ||||
<Compile Include="EducationalAdministration\JobPerformanceMap.cs" /> | |||||
<Compile Include="EvaluationTeach\Eval_MainMap.cs" /> | <Compile Include="EvaluationTeach\Eval_MainMap.cs" /> | ||||
<Compile Include="EvaluationTeach\Eval_QuestionItemsMap.cs" /> | <Compile Include="EvaluationTeach\Eval_QuestionItemsMap.cs" /> | ||||
<Compile Include="EvaluationTeach\Eval_QuestionMap.cs" /> | <Compile Include="EvaluationTeach\Eval_QuestionMap.cs" /> | ||||
@@ -0,0 +1,247 @@ | |||||
using Learun.Util; | |||||
using System; | |||||
using System.Data; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2022-11-07 11:54 | |||||
/// 描 述:工作绩效 | |||||
/// </summary> | |||||
public class JobPerformanceBLL : JobPerformanceIBLL | |||||
{ | |||||
private JobPerformanceService jobPerformanceService = new JobPerformanceService(); | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取列表数据 | |||||
/// </summary> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<JobPerformanceEntity> GetList(string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.GetList(queryJson); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取列表分页数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<JobPerformanceEntity> GetPageList(Pagination pagination, string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.GetPageList(pagination, queryJson); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
public JobPerformanceEntity GetEntity(string keyValue) | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.GetEntity(keyValue); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
public List<JobPerformanceEntity> GetPeopleType() | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.GetPeopleType().Select(x => new JobPerformanceEntity { }).Distinct().ToList(); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
public List<JobPerformanceEntity> GetPostType() | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.GetPostType().Select(x => new JobPerformanceEntity { }).Distinct().ToList(); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
public List<JobPerformanceEntity> GetPayGrade() | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.GetPayGrade().Select(x => new JobPerformanceEntity { }).Distinct().ToList(); | |||||
} | |||||
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 | |||||
{ | |||||
jobPerformanceService.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> | |||||
public void SaveEntity(string keyValue, JobPerformanceEntity entity) | |||||
{ | |||||
try | |||||
{ | |||||
jobPerformanceService.SaveEntity(keyValue, entity); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
public void CheckEntity(string keyValue,string Status) | |||||
{ | |||||
try | |||||
{ | |||||
jobPerformanceService.CheckEntity(keyValue, Status); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 工作绩效导入 | |||||
/// </summary> | |||||
/// <param name="dt"></param> | |||||
/// <param name="fileId"></param> | |||||
/// <returns></returns> | |||||
public string SalarySheelImport(DataTable dt, string fileId) | |||||
{ | |||||
try | |||||
{ | |||||
return jobPerformanceService.SalarySheelImport(dt, fileId); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@@ -0,0 +1,337 @@ | |||||
using Learun.Util; | |||||
using System; | |||||
using System.ComponentModel.DataAnnotations.Schema; | |||||
namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2022-11-07 11:54 | |||||
/// 描 述:工作绩效 | |||||
/// </summary> | |||||
public class JobPerformanceEntity | |||||
{ | |||||
#region 实体成员 | |||||
/// <summary> | |||||
/// Id | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ID")] | |||||
public string Id { get; set; } | |||||
/// <summary> | |||||
/// 发放年份 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ISSUEYEAR")] | |||||
public string IssueYear { get; set; } | |||||
/// <summary> | |||||
/// 发放月份 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ISSUEMONTH")] | |||||
public int? IssueMonth { get; set; } | |||||
/// <summary> | |||||
/// EmpNo | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("EMPNO")] | |||||
public string EmpNo { get; set; } | |||||
/// <summary> | |||||
/// 姓名 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("EMPNAME")] | |||||
public string EmpName { get; set; } | |||||
/// <summary> | |||||
/// 处室 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("DEPARTMENT")] | |||||
public string Department { get; set; } | |||||
/// <summary> | |||||
/// 岗位名称 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("POST")] | |||||
public string Post { get; set; } | |||||
/// <summary> | |||||
/// 行政管理岗位 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ADMINPOSITION")] | |||||
public decimal? AdminPosition { get; set; } | |||||
/// <summary> | |||||
/// 团总支书记 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("LEAGUESECRETARY")] | |||||
public decimal? LeagueSecretary { get; set; } | |||||
/// <summary> | |||||
/// 中心负责人 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("CENTERPEOPLE")] | |||||
public decimal? CenterPeople { get; set; } | |||||
/// <summary> | |||||
/// 教辅、工勤岗位 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TEACHINGPOSITION")] | |||||
public decimal? TeachingPosition { get; set; } | |||||
/// <summary> | |||||
/// 班主任 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("DIRECTOR")] | |||||
public decimal? Director { get; set; } | |||||
/// <summary> | |||||
/// 名师工作室 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TEACHERWORKROOM")] | |||||
public decimal? TeacherWorkRoom { get; set; } | |||||
/// <summary> | |||||
/// 专业负责人、教研组长、备课组长 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("MAJORPEOPLE")] | |||||
public decimal? MajorPeople { get; set; } | |||||
/// <summary> | |||||
/// 办公组长 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("WORKLEADER")] | |||||
public decimal? WorkLeader { get; set; } | |||||
/// <summary> | |||||
/// 实训室类管理员 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TRAINADMIN")] | |||||
public decimal? TrainAdmin { get; set; } | |||||
/// <summary> | |||||
/// 纪委委员、支部委员、工会委员、兼职督学 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("COMMITTEEMEMBER")] | |||||
public decimal? CommitteeMember { get; set; } | |||||
/// <summary> | |||||
/// 正课节数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("LESSONNUM")] | |||||
public int? LessonNum { get; set; } | |||||
/// <summary> | |||||
/// 正课课时分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("LESSONHOUR")] | |||||
public decimal? LessonHour { get; set; } | |||||
/// <summary> | |||||
/// 早自习节数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("MORNINGSTUDYNUM")] | |||||
public int? MorningStudyNum { get; set; } | |||||
/// <summary> | |||||
/// 早自习课时分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("MORNINGSTUDYHOUR")] | |||||
public decimal? MorningStudyHour { get; set; } | |||||
/// <summary> | |||||
/// 晚自习节数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("NIGHTSTUDYNUM")] | |||||
public int? NightStudyNum { get; set; } | |||||
/// <summary> | |||||
/// 晚自习课时分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("NIGHTSTUDYHOUR")] | |||||
public decimal? NightStudyHour { get; set; } | |||||
/// <summary> | |||||
/// 两操节数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TWOEXERCISENUM")] | |||||
public int? TwoExerciseNum { get; set; } | |||||
/// <summary> | |||||
/// 两操课时分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TWOEXERCISEHOUR")] | |||||
public decimal? TwoExerciseHour { get; set; } | |||||
/// <summary> | |||||
/// 临时代班天数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TEMPWORKDAY")] | |||||
public decimal? TempWorkDay { get; set; } | |||||
/// <summary> | |||||
/// 临时代班岗位分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("TEMPWORKSCORE")] | |||||
public decimal? TempWorkScore { get; set; } | |||||
/// <summary> | |||||
/// 缺班天数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("OFFWORKDAY")] | |||||
public decimal? OffWorkDay { get; set; } | |||||
/// <summary> | |||||
/// 临时缺班扣减岗位分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("OFFWORKMINUSSCORE")] | |||||
public decimal? OffWorkMinusScore { get; set; } | |||||
/// <summary> | |||||
/// 值日天数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ONDUTYDAY")] | |||||
public decimal? OnDutyDay { get; set; } | |||||
/// <summary> | |||||
/// 值日岗位分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ONDUTYSCORE")] | |||||
public decimal? OnDutyScore { get; set; } | |||||
/// <summary> | |||||
/// 应出勤天数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("SHOULDWORKDAY")] | |||||
public decimal? ShouldWorkDay { get; set; } | |||||
/// <summary> | |||||
/// 出勤基础分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("WORKBASICSCORE")] | |||||
public decimal? WorkBasicScore { get; set; } | |||||
/// <summary> | |||||
/// 出勤缺卡次数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("WORKOFFCOUNT")] | |||||
public int? WorkOffCount { get; set; } | |||||
/// <summary> | |||||
/// 出勤考核扣减分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("WORKMINUSSCORE")] | |||||
public decimal? WorkMinusScore { get; set; } | |||||
/// <summary> | |||||
/// 大型活动考核扣减分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("BIGACTIVITYMINUSSCORE")] | |||||
public decimal? BigActivityMinusScore { get; set; } | |||||
/// <summary> | |||||
/// 旷工天数 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ABSENTEEISMDAY")] | |||||
public decimal? AbsenteeismDay { get; set; } | |||||
/// <summary> | |||||
/// 旷工扣减分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ABSENTEEISMMINUSSCORE")] | |||||
public decimal? AbsenteeismMinusScore { get; set; } | |||||
/// <summary> | |||||
/// 出勤(病事公产活动等)考核情况说明 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("WORKREMARK")] | |||||
public string WorkRemark { get; set; } | |||||
/// <summary> | |||||
/// 常规工作考核基础分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ROUTINEBASICSCORE")] | |||||
public decimal? RoutineBasicScore { get; set; } | |||||
/// <summary> | |||||
/// 常规工作考核扣减分 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ROUTINEMINUSSCORE")] | |||||
public decimal? RoutineMinusScore { get; set; } | |||||
/// <summary> | |||||
/// 常规工作考核情况详细说明 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("ROUTINEREMARK")] | |||||
public string RoutineRemark { get; set; } | |||||
/// <summary> | |||||
/// 月绩效考核分合计 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("PERFORMANCETOTALSCORE")] | |||||
public decimal? PerformanceTotalScore { get; set; } | |||||
/// <summary> | |||||
/// 假期工作绩效 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("HOLIDAYJOBPERFORMANCE")] | |||||
public string HolidayJobPerformance { get; set; } | |||||
/// <summary> | |||||
/// CreateUser | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("CREATEUSER")] | |||||
public string CreateUser { get; set; } | |||||
/// <summary> | |||||
/// CreateTime | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("CREATETIME")] | |||||
public DateTime? CreateTime { get; set; } | |||||
/// <summary> | |||||
/// UpdateUser | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("UPDATEUSER")] | |||||
public string UpdateUser { get; set; } | |||||
/// <summary> | |||||
/// UpdateTime | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("UPDATETIME")] | |||||
public DateTime? UpdateTime { get; set; } | |||||
/// <summary> | |||||
/// 审核标识(0未审核,1已审核) | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
[Column("F_ENABLEDMARK")] | |||||
public string F_EnabledMark { get; set; } | |||||
#endregion | |||||
#region 扩展操作 | |||||
/// <summary> | |||||
/// 新增调用 | |||||
/// </summary> | |||||
public void Create() | |||||
{ | |||||
this.Id = Guid.NewGuid().ToString(); | |||||
this.CreateTime = DateTime.Now; | |||||
this.CreateUser = LoginUserInfo.Get().userId; | |||||
this.F_EnabledMark = "0"; | |||||
} | |||||
/// <summary> | |||||
/// 编辑调用 | |||||
/// </summary> | |||||
/// <param name="keyValue"></param> | |||||
public void Modify(string keyValue) | |||||
{ | |||||
this.Id = keyValue; | |||||
this.UpdateTime = DateTime.Now; | |||||
this.UpdateUser = LoginUserInfo.Get().userId; | |||||
} | |||||
#endregion | |||||
} | |||||
} | |||||
@@ -0,0 +1,70 @@ | |||||
using Learun.Util; | |||||
using System.Data; | |||||
using System.Collections.Generic; | |||||
namespace Learun.Application.TwoDevelopment.EducationalAdministration | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2022-11-07 11:54 | |||||
/// 描 述:工作绩效 | |||||
/// </summary> | |||||
public interface JobPerformanceIBLL | |||||
{ | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取列表数据 | |||||
/// </summary> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
IEnumerable<JobPerformanceEntity> GetList( string queryJson ); | |||||
/// <summary> | |||||
/// 获取列表分页数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
IEnumerable<JobPerformanceEntity> GetPageList(Pagination pagination, string queryJson); | |||||
/// <summary> | |||||
/// 获取实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
JobPerformanceEntity GetEntity(string keyValue); | |||||
List<JobPerformanceEntity> GetPeopleType(); | |||||
List<JobPerformanceEntity> GetPostType(); | |||||
List<JobPerformanceEntity> GetPayGrade(); | |||||
#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, JobPerformanceEntity entity); | |||||
void CheckEntity(string keyValue,string Status); | |||||
/// <summary> | |||||
/// 工作绩效导入 | |||||
/// </summary> | |||||
/// <param name="dt"></param> | |||||
/// <param name="fileId"></param> | |||||
/// <returns></returns> | |||||
string SalarySheelImport(DataTable dt, string fileId); | |||||
#endregion | |||||
} | |||||
} |
@@ -0,0 +1,455 @@ | |||||
using Dapper; | |||||
using Learun.Cache.Base; | |||||
using Learun.Cache.Factory; | |||||
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.EducationalAdministration | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2022-11-07 11:54 | |||||
/// 描 述:工作绩效 | |||||
/// </summary> | |||||
public class JobPerformanceService : RepositoryFactory | |||||
{ | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取列表数据 | |||||
/// </summary> | |||||
/// <param name="queryJson">条件参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<JobPerformanceEntity> GetList(string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
//参考写法 | |||||
//var queryParam = queryJson.ToJObject(); | |||||
// 虚拟参数 | |||||
//var dp = new DynamicParameters(new { }); | |||||
//dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); | |||||
var strSql = new StringBuilder(); | |||||
strSql.Append("SELECT "); | |||||
strSql.Append("t.*"); | |||||
strSql.Append(" FROM JobPerformance t "); | |||||
return this.BaseRepository("CollegeMIS").FindList<JobPerformanceEntity>(strSql.ToString()); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取列表分页数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">条件参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<JobPerformanceEntity> GetPageList(Pagination pagination, string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
var baseDataName = this.BaseRepository().getDbConnection().Database; | |||||
var strSql = new StringBuilder(); | |||||
strSql.Append(" SELECT t.*,u.F_Account,u.F_RealName FROM JobPerformance t "); | |||||
strSql.Append($" left join {baseDataName}.dbo.LR_Base_User u on t.EmpNo=u.F_Account "); | |||||
strSql.Append(" where 1=1 and u.F_Description='教师' and u.F_DeleteMark = 0"); | |||||
var userInfo = LoginUserInfo.Get(); | |||||
var queryParam = queryJson.ToJObject(); | |||||
// 虚拟参数 | |||||
var dp = new DynamicParameters(new { }); | |||||
//sql条件 | |||||
if (!queryParam["Sqlparam"].IsEmpty()) | |||||
{ | |||||
strSql.Append(" and t.F_EnabledMark = '1' "); | |||||
strSql.Append(" AND u.F_Account = '" + userInfo.account + "' "); | |||||
} | |||||
if (!queryParam["EmpName"].IsEmpty()) | |||||
{ | |||||
dp.Add("EmpName", "%" + queryParam["EmpName"].ToString() + "%", DbType.String); | |||||
strSql.Append(" AND t.EmpName like @EmpName "); | |||||
} | |||||
if (!queryParam["IssueMonth"].IsEmpty()) | |||||
{ | |||||
dp.Add("IssueMonth", queryParam["IssueMonth"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IssueMonth = @IssueMonth "); | |||||
} | |||||
if (!queryParam["IssueYear"].IsEmpty()) | |||||
{ | |||||
dp.Add("IssueYear", queryParam["IssueYear"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.IssueYear = @IssueYear "); | |||||
} | |||||
return this.BaseRepository("CollegeMIS").FindList<JobPerformanceEntity>(strSql.ToString(), dp, pagination); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
public JobPerformanceEntity GetEntity(string keyValue) | |||||
{ | |||||
try | |||||
{ | |||||
return this.BaseRepository("CollegeMIS").FindEntity<JobPerformanceEntity>(keyValue); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
public List<JobPerformanceEntity> GetPeopleType() | |||||
{ | |||||
try | |||||
{ | |||||
string sql = " select distinct PeopleType from JobPerformance where 1=1 and PeopleType is not null order by PeopleType asc "; | |||||
return this.BaseRepository("CollegeMIS").FindList<JobPerformanceEntity>(sql).ToList(); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
public List<JobPerformanceEntity> GetPostType() | |||||
{ | |||||
try | |||||
{ | |||||
string sql = " select distinct PostType from JobPerformance where 1=1 and PostType is not null order by PostType asc "; | |||||
return this.BaseRepository("CollegeMIS").FindList<JobPerformanceEntity>(sql).ToList(); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 薪级 | |||||
/// </summary> | |||||
/// <param name="PayGrade"></param> | |||||
/// <returns></returns> | |||||
public List<JobPerformanceEntity> GetPayGrade() | |||||
{ | |||||
try | |||||
{ | |||||
string sql = " select distinct PayGrade from JobPerformance where 1=1 and PayGrade is not null order by PayGrade asc"; | |||||
return this.BaseRepository("CollegeMIS").FindList<JobPerformanceEntity>(sql).ToList(); | |||||
} | |||||
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) | |||||
{ | |||||
var db = this.BaseRepository("CollegeMIS").BeginTrans(); | |||||
try | |||||
{ | |||||
//多个启用 | |||||
var keyValueArr = keyValue.Split(','); | |||||
foreach (var item in keyValueArr) | |||||
{ | |||||
db.Delete<JobPerformanceEntity>(t => t.Id == item); | |||||
} | |||||
db.Commit(); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
db.Rollback(); | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 删除实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
public void CheckEntity(string keyValue, string Status) | |||||
{ | |||||
var db = this.BaseRepository("CollegeMIS").BeginTrans(); | |||||
try | |||||
{ | |||||
if (Status == "0")//审核全部 | |||||
{ | |||||
db.ExecuteBySql("update JobPerformance set F_EnabledMark=1 "); | |||||
} | |||||
//多个 | |||||
var keyValueArr = keyValue.Split(','); | |||||
if (Status == "1") | |||||
{ | |||||
foreach (var item in keyValueArr) | |||||
{ | |||||
db.ExecuteBySql("update JobPerformance set F_EnabledMark=1 where Id = '" + item + "' "); | |||||
} | |||||
} | |||||
else if (Status == "2") | |||||
{ | |||||
foreach (var item in keyValueArr) | |||||
{ | |||||
db.ExecuteBySql("update JobPerformance set F_EnabledMark=0 where Id = '" + item + "' "); | |||||
} | |||||
} | |||||
db.Commit(); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
db.Rollback(); | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 保存实体数据(新增、修改) | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="entity">实体</param> | |||||
/// </summary> | |||||
public void SaveEntity(string keyValue, JobPerformanceEntity 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); | |||||
} | |||||
} | |||||
} | |||||
#region 缓存定义 | |||||
private ICache cache = CacheFactory.CaChe(); | |||||
private string cacheKey = "Learun_adms_excelError_"; // +公司主键 | |||||
#endregion | |||||
/// <summary> | |||||
/// 工作绩效导入 | |||||
/// </summary> | |||||
/// <param name="dt"></param> | |||||
/// <param name="fileId"></param> | |||||
/// <returns></returns> | |||||
public string SalarySheelImport(DataTable dt, string fileId) | |||||
{ | |||||
try | |||||
{ | |||||
int snum = 0; | |||||
int fnum = 0; | |||||
if (dt.Rows.Count > 0) | |||||
{ | |||||
DataTable failDt = new DataTable(); | |||||
dt.Columns.Add("导入错误", typeof(string)); | |||||
foreach (DataColumn dc in dt.Columns) | |||||
{ | |||||
failDt.Columns.Add(dc.ColumnName, dc.DataType); | |||||
} | |||||
IEnumerable<EmpInfoEntity> EmpInfoEntities = this.BaseRepository("CollegeMIS").FindList<EmpInfoEntity>("select * from empinfo"); | |||||
//修改学生list | |||||
List<JobPerformanceEntity> jobPerformanceEntityList = new List<JobPerformanceEntity>(); | |||||
var db = this.BaseRepository("CollegeMIS").BeginTrans(); | |||||
// 循环遍历导入 | |||||
foreach (DataRow dr in dt.Rows) | |||||
{ | |||||
try | |||||
{ | |||||
//检测是否有空值 | |||||
if (dr[1].ToString() == "" || dr[3].ToString() == "" || dr[6].ToString() == "" || dr[26].ToString() == "" || dr[35].ToString() == "") | |||||
{ | |||||
throw (new Exception("行内必填项数据有空值,不能为空!")); | |||||
} | |||||
if (EmpInfoEntities.Count(m => m.EmpName.ToUpper() == dr[1].ToString().ToUpper()) == 0) | |||||
{ | |||||
throw (new Exception("【姓名】不存在,请核对!")); | |||||
} | |||||
if (dr[2].ToString() == "") | |||||
{ | |||||
throw (new Exception("【工资卡号】不能为空")); | |||||
} | |||||
if (dr[36].ToString() == "" || dr[37].ToString() == "") | |||||
{ | |||||
throw (new Exception("发放【年、月】不能为空")); | |||||
} | |||||
if (jobPerformanceEntityList.Count(x => x.IssueYear == dr[37].ToString() && x.IssueMonth == dr[36].ToInt() && x.EmpName == dr[1].ToString()) > 0) | |||||
{ | |||||
throw (new Exception("导入信息已重复,信息已忽略")); | |||||
} | |||||
//写入要导入的数据 | |||||
JobPerformanceEntity jobPerformanceEntity = new JobPerformanceEntity | |||||
{ | |||||
Id = Guid.NewGuid().ToString(), | |||||
//No = dr[0].ToString(), | |||||
//EmpName = dr[1].ToString(), | |||||
//WageCardNo = dr[2].ToString(), | |||||
//PeopleType = dr[3].ToString(), | |||||
//PostType = dr[4].ToString(), | |||||
//PayGrade = dr[5].ToString(), | |||||
//TotalGrossPay = dr[6].ToDecimalOrNull(), | |||||
//PostWage = dr[7].ToDecimalOrNull(), | |||||
//PayGradeWage = dr[8].ToDecimalOrNull(), | |||||
//TenPercent = dr[9].ToDecimalOrNull(), | |||||
//BasicsPerformance = dr[10].ToDecimalOrNull(), | |||||
//AwardPerformance = dr[11].ToDecimalOrNull(), | |||||
//SeparateBasicsPerformance = dr[12].ToDecimalOrNull(), | |||||
//SeparateAwardPerformance = dr[13].ToDecimalOrNull(), | |||||
//RoughEdgeAllowance = dr[14].ToDecimalOrNull(), | |||||
//NationAllowance = dr[15].ToDecimalOrNull(), | |||||
//TeachAllowance = dr[16].ToDecimalOrNull(), | |||||
//SuperfineTeacherResearch = dr[17].ToDecimalOrNull(), | |||||
//Transportation = dr[18].ToDecimalOrNull(), | |||||
//RealeState = dr[19].ToDecimalOrNull(), | |||||
//WorkKeep = dr[20].ToDecimalOrNull(), | |||||
//GirlStaffSanitation = dr[21].ToDecimalOrNull(), | |||||
//TeacherAndTown = dr[22].ToDecimalOrNull(), | |||||
//HousingAllowance = dr[23].ToDecimalOrNull(), | |||||
//HousingFundAllowance = dr[24].ToDecimalOrNull(), | |||||
//OtherOne = dr[25].ToDecimalOrNull(), | |||||
//DeductionsSubtotal = dr[26].ToDecimalOrNull(), | |||||
//AccumulationFund = dr[27].ToDecimalOrNull(), | |||||
//EndowmentInsurance = dr[28].ToDecimalOrNull(), | |||||
//OccupationalAnnuities = dr[29].ToDecimalOrNull(), | |||||
//MedicalInsurance = dr[30].ToDecimalOrNull(), | |||||
//UnemploymentInsurance = dr[31].ToDecimalOrNull(), | |||||
//LaborUnionWage = dr[32].ToDecimalOrNull(), | |||||
//PersonalIncomeTax = dr[33].ToDecimalOrNull(), | |||||
//Other = dr[34].ToDecimalOrNull(), | |||||
//NetCombined = dr[35].ToDecimalOrNull(), | |||||
IssueMonth = dr[36].ToInt(), | |||||
IssueYear = dr[37].ToString(), | |||||
F_EnabledMark = "0" | |||||
}; | |||||
jobPerformanceEntityList.Add(jobPerformanceEntity); | |||||
//删除表中旧数据 及同年同月同名同姓之人 | |||||
db.Delete<JobPerformanceEntity>(x => x.EmpName == jobPerformanceEntity.EmpName && x.IssueMonth == jobPerformanceEntity.IssueMonth && x.IssueYear == jobPerformanceEntity.IssueYear); | |||||
snum++; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
fnum++; | |||||
dr["导入错误"] = ex.Message; | |||||
failDt.Rows.Add(dr.ItemArray); | |||||
} | |||||
} | |||||
//执行导入 | |||||
db.Insert(jobPerformanceEntityList); | |||||
db.Commit(); | |||||
if (failDt.Rows.Count > 0) | |||||
{ | |||||
string errordt = failDt.ToJson(); | |||||
cache.Write<string>(cacheKey + fileId, errordt, CacheId.excel); | |||||
} | |||||
} | |||||
return snum + "|" + fnum; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@@ -402,6 +402,10 @@ | |||||
<Compile Include="EducationalAdministration\TextbookInOut\TextBookInOutIBLL.cs" /> | <Compile Include="EducationalAdministration\TextbookInOut\TextBookInOutIBLL.cs" /> | ||||
<Compile Include="EducationalAdministration\TextbookInOut\TextBookInOutService.cs" /> | <Compile Include="EducationalAdministration\TextbookInOut\TextBookInOutService.cs" /> | ||||
<Compile Include="EducationalAdministration\Thermography\ThermographyEntity.cs" /> | <Compile Include="EducationalAdministration\Thermography\ThermographyEntity.cs" /> | ||||
<Compile Include="EducationalAdministration\JobPerformance\JobPerformanceBLL.cs" /> | |||||
<Compile Include="EducationalAdministration\JobPerformance\JobPerformanceEntity.cs" /> | |||||
<Compile Include="EducationalAdministration\JobPerformance\JobPerformanceIBLL.cs" /> | |||||
<Compile Include="EducationalAdministration\JobPerformance\JobPerformanceService.cs" /> | |||||
<Compile Include="EvaluationTeach\Eval_Main\Eval_MainBLL.cs" /> | <Compile Include="EvaluationTeach\Eval_Main\Eval_MainBLL.cs" /> | ||||
<Compile Include="EvaluationTeach\Eval_Main\Eval_MainEntity.cs" /> | <Compile Include="EvaluationTeach\Eval_Main\Eval_MainEntity.cs" /> | ||||
<Compile Include="EvaluationTeach\Eval_Main\Eval_MainIBLL.cs" /> | <Compile Include="EvaluationTeach\Eval_Main\Eval_MainIBLL.cs" /> | ||||