Ver código fonte

【增加】月常规工作绩效;

应县
dyy 7 meses atrás
pai
commit
4853179e98
20 arquivos alterados com 2827 adições e 0 exclusões
  1. +214
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/JobPerformanceController.cs
  2. +160
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.cshtml
  3. +66
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.js
  4. +25
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.cshtml
  5. +136
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css
  6. +242
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js
  7. +64
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.cshtml
  8. +269
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.js
  9. +44
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.cshtml
  10. +126
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js
  11. +57
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.cshtml
  12. +269
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js
  13. +12
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
  14. +29
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/JobPerformanceMap.cs
  15. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj
  16. +247
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceBLL.cs
  17. +337
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceEntity.cs
  18. +70
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceIBLL.cs
  19. +455
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceService.cs
  20. +4
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj

+ 214
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/JobPerformanceController.cs Ver arquivo

@@ -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
}
}

+ 160
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.cshtml Ver arquivo

@@ -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")

+ 66
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.js Ver arquivo

@@ -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();
}

+ 25
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.cshtml Ver arquivo

@@ -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")

+ 136
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css Ver arquivo

@@ -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;
}

+ 242
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js Ver arquivo

@@ -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();

}

+ 64
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.cshtml Ver arquivo

@@ -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>&nbsp;新增</a>
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;编辑</a>
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;删除</a>
<a id="lr_checkall" class="btn btn-default"><i class="fa fa-print"></i>&nbsp;审核全部</a>
<a id="lr_check" class="btn btn-default"><i class="fa fa-lock"></i>&nbsp;审核</a>
<a id="lr_uncheck" class="btn btn-default"><i class="fa fa-unlock"></i>&nbsp;去审核</a>
<a id="lr_import" class="btn btn-default"><i class="fa fa-share-square-o"></i>&nbsp;导入</a>
</div>
</div>
</div>
<div class="lr-layout-body" id="gridtable"></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/Index.js")

+ 269
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.js Ver arquivo

@@ -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();
}

+ 44
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.cshtml Ver arquivo

@@ -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>&nbsp;打印</a>*@
</div>
</div>
</div>
<div class="lr-layout-body" id="gridtable"></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js")

+ 126
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js Ver arquivo

@@ -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();
}

+ 57
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.cshtml Ver arquivo

@@ -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")

+ 269
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js Ver arquivo

@@ -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();
}

+ 12
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj Ver arquivo

@@ -373,6 +373,7 @@
<Compile Include="Areas\EducationalAdministration\Controllers\Sys_ReceiveDocumentController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\TeachingPlanController.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\Controllers\Eval_MainController.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\StatisticIndex.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.js" />
<Content Include="Areas\EducationalAdministration\Views\WageSchedule\IndexMy.js" />
@@ -8144,6 +8151,11 @@
<Content Include="Areas\PersonnelManagement\Views\ActivitySchedule\qrCode.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuScore\InputScoreIndexInTeacherImport.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\FolderProfile.pubxml" />
<Content Include="Views\Login\Default-beifen.cshtml" />


+ 29
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/JobPerformanceMap.cs Ver arquivo

@@ -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
}
}
}


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj Ver arquivo

@@ -137,6 +137,7 @@
<Compile Include="EducationalAdministration\TeachSwitchMap.cs" />
<Compile Include="EducationalAdministration\Teach_attendanceMap.cs" />
<Compile Include="EducationalAdministration\ThermographyMap.cs" />
<Compile Include="EducationalAdministration\JobPerformanceMap.cs" />
<Compile Include="EvaluationTeach\Eval_MainMap.cs" />
<Compile Include="EvaluationTeach\Eval_QuestionItemsMap.cs" />
<Compile Include="EvaluationTeach\Eval_QuestionMap.cs" />


+ 247
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceBLL.cs Ver arquivo

@@ -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

}
}

+ 337
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceEntity.cs Ver arquivo

@@ -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
}
}


+ 70
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceIBLL.cs Ver arquivo

@@ -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

}
}

+ 455
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceService.cs Ver arquivo

@@ -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

}
}

+ 4
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj Ver arquivo

@@ -402,6 +402,10 @@
<Compile Include="EducationalAdministration\TextbookInOut\TextBookInOutIBLL.cs" />
<Compile Include="EducationalAdministration\TextbookInOut\TextBookInOutService.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_MainEntity.cs" />
<Compile Include="EvaluationTeach\Eval_Main\Eval_MainIBLL.cs" />


Carregando…
Cancelar
Salvar