();
+ var data = jobPerformanceIBLL.GetPageList(paginationobj, queryJson);
+ var jsonData = new
+ {
+ rows = data,
+ total = paginationobj.total,
+ page = paginationobj.page,
+ records = paginationobj.records
+ };
+ return Success(jsonData);
+ }
+ ///
+ /// 获取表单数据
+ ///
+ /// 主键
+ ///
+ [HttpGet]
+ [AjaxOnly]
+ public ActionResult GetFormData(string keyValue)
+ {
+ var JobPerformanceData = jobPerformanceIBLL.GetEntity(keyValue);
+ var jsonData = new
+ {
+ JobPerformance = JobPerformanceData,
+ };
+ return Success(jsonData);
+ }
+ #endregion
+
+ #region 提交数据
+
+ ///
+ /// 删除实体数据
+ ///
+ /// 主键
+ ///
+ [HttpPost]
+ [AjaxOnly]
+ public ActionResult DeleteForm(string keyValue)
+ {
+ jobPerformanceIBLL.DeleteEntity(keyValue);
+ return Success("删除成功!");
+ }
+ ///
+ /// 保存实体数据(新增、修改)
+ ///
+ /// 主键
+ /// 实体
+ ///
+ [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("审核成功!");
+ }
+
+ ///
+ /// 下载文件
+ ///
+ ///
+ 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
+ }
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.cshtml
new file mode 100644
index 000000000..123c3d5f3
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.cshtml
@@ -0,0 +1,160 @@
+@{
+ ViewBag.Title = "工作绩效";
+ Layout = "~/Views/Shared/_Form.cshtml";
+}
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/Form.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.js
new file mode 100644
index 000000000..a7c1fd1cf
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/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();
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.cshtml
new file mode 100644
index 000000000..6b793ba3c
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.cshtml
@@ -0,0 +1,25 @@
+@{
+ ViewBag.Title = "Form";
+ Layout = "~/Views/Shared/_Form.cshtml";
+}
+
+
+@Html.AppendCssFile("/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css")
+
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css
new file mode 100644
index 000000000..04b556b7a
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css
@@ -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;
+}
\ No newline at end of file
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js
new file mode 100644
index 000000000..19638a9c4
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js
@@ -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('' + res.data.Success + '/' + res.data.Fail + '
');
+ // 如果有失败
+ 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('
');
+ }
+ });
+ }
+ // 触发清楚文件碎片
+ 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('
');
+ }
+
+ 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 = $('');
+ $item.append('');
+ $item.append('' + file.name + '(' + learun.countFileSize(file.size) + ')');
+
+ $('#lr_form_file_queue_list').append($item);
+ },
+ uploadStart: function (file) {
+ var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id);
+ $fileItem.append('');
+ },
+ 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();
+
+}
\ No newline at end of file
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.cshtml
new file mode 100644
index 000000000..2d17dbb1c
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.cshtml
@@ -0,0 +1,64 @@
+@{
+ ViewBag.Title = "工作绩效";
+ Layout = "~/Views/Shared/_Index.cshtml";
+}
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/Index.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.js
new file mode 100644
index 000000000..b727a0050
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/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" ? "已审核" : "未审核";
+ }
+ },
+ ],
+ 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();
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.cshtml
new file mode 100644
index 000000000..c2c572094
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.cshtml
@@ -0,0 +1,44 @@
+@{
+ ViewBag.Title = "工作绩效";
+ Layout = "~/Views/Shared/_Index.cshtml";
+}
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js
new file mode 100644
index 000000000..21ba0df1d
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/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();
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.cshtml
new file mode 100644
index 000000000..21995e339
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.cshtml
@@ -0,0 +1,57 @@
+@{
+ ViewBag.Title = "工作绩效";
+ Layout = "~/Views/Shared/_Index.cshtml";
+}
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js
new file mode 100644
index 000000000..f8ed4bb33
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/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" ? "已审核" : "未审核";
+ }
+ },
+ ],
+ 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();
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
index 08d19c110..206807150 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
@@ -373,6 +373,7 @@
+
@@ -1485,6 +1486,12 @@
+
+
+
+
+
+
@@ -8144,6 +8151,11 @@
+
+
+
+
+
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/JobPerformanceMap.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/JobPerformanceMap.cs
new file mode 100644
index 000000000..e29bdc8a1
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/JobPerformanceMap.cs
@@ -0,0 +1,29 @@
+using Learun.Application.TwoDevelopment.EducationalAdministration;
+using System.Data.Entity.ModelConfiguration;
+
+namespace Learun.Application.Mapping
+{
+ ///
+ /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
+ /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
+ /// 创 建:超级管理员
+ /// 日 期:2022-11-07 11:54
+ /// 描 述:工作绩效
+ ///
+ public class JobPerformanceMap : EntityTypeConfiguration
+ {
+ public JobPerformanceMap()
+ {
+ #region 表、主键
+ //表
+ this.ToTable("JOBPERFORMANCE");
+ //主键
+ this.HasKey(t => t.Id);
+ #endregion
+
+ #region 配置关系
+ #endregion
+ }
+ }
+}
+
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj
index eb3a35601..5508dff7a 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj
@@ -137,6 +137,7 @@
+
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceBLL.cs
new file mode 100644
index 000000000..fc5888cd6
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceBLL.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
+{
+ ///
+ /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
+ /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
+ /// 创 建:超级管理员
+ /// 日 期:2022-11-07 11:54
+ /// 描 述:工作绩效
+ ///
+ public class JobPerformanceBLL : JobPerformanceIBLL
+ {
+ private JobPerformanceService jobPerformanceService = new JobPerformanceService();
+
+ #region 获取数据
+
+ ///
+ /// 获取列表数据
+ ///
+ /// 查询参数
+ ///
+ public IEnumerable GetList(string queryJson)
+ {
+ try
+ {
+ return jobPerformanceService.GetList(queryJson);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
+
+ ///
+ /// 获取列表分页数据
+ ///
+ /// 分页参数
+ /// 查询参数
+ ///
+ public IEnumerable GetPageList(Pagination pagination, string queryJson)
+ {
+ try
+ {
+ return jobPerformanceService.GetPageList(pagination, queryJson);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
+
+ ///
+ /// 获取实体数据
+ ///
+ /// 主键
+ ///
+ 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 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 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 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 提交数据
+
+ ///
+ /// 删除实体数据
+ ///
+ /// 主键
+ public void DeleteEntity(string keyValue)
+ {
+ try
+ {
+ jobPerformanceService.DeleteEntity(keyValue);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowBusinessException(ex);
+ }
+ }
+ }
+
+ ///
+ /// 保存实体数据(新增、修改)
+ ///
+ /// 主键
+ /// 实体
+ 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);
+ }
+ }
+ }
+
+ ///
+ /// 工作绩效导入
+ ///
+ ///
+ ///
+ ///
+ 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
+
+ }
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceEntity.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceEntity.cs
new file mode 100644
index 000000000..84e708be3
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceEntity.cs
@@ -0,0 +1,337 @@
+using Learun.Util;
+using System;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace Learun.Application.TwoDevelopment.EducationalAdministration
+
+{
+ ///
+ /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
+ /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
+ /// 创 建:超级管理员
+ /// 日 期:2022-11-07 11:54
+ /// 描 述:工作绩效
+ ///
+ public class JobPerformanceEntity
+ {
+ #region 实体成员
+ ///
+ /// Id
+ ///
+ ///
+ [Column("ID")]
+ public string Id { get; set; }
+ ///
+ /// 发放年份
+ ///
+ ///
+ [Column("ISSUEYEAR")]
+ public string IssueYear { get; set; }
+ ///
+ /// 发放月份
+ ///
+ ///
+ [Column("ISSUEMONTH")]
+ public int? IssueMonth { get; set; }
+ ///
+ /// EmpNo
+ ///
+ ///
+ [Column("EMPNO")]
+ public string EmpNo { get; set; }
+ ///
+ /// 姓名
+ ///
+ ///
+ [Column("EMPNAME")]
+ public string EmpName { get; set; }
+ ///
+ /// 处室
+ ///
+ ///
+ [Column("DEPARTMENT")]
+ public string Department { get; set; }
+ ///
+ /// 岗位名称
+ ///
+ ///
+ [Column("POST")]
+ public string Post { get; set; }
+ ///
+ /// 行政管理岗位
+ ///
+ ///
+ [Column("ADMINPOSITION")]
+ public decimal? AdminPosition { get; set; }
+ ///
+ /// 团总支书记
+ ///
+ ///
+ [Column("LEAGUESECRETARY")]
+ public decimal? LeagueSecretary { get; set; }
+ ///
+ /// 中心负责人
+ ///
+ ///
+ [Column("CENTERPEOPLE")]
+ public decimal? CenterPeople { get; set; }
+ ///
+ /// 教辅、工勤岗位
+ ///
+ ///
+ [Column("TEACHINGPOSITION")]
+ public decimal? TeachingPosition { get; set; }
+ ///
+ /// 班主任
+ ///
+ ///
+ [Column("DIRECTOR")]
+ public decimal? Director { get; set; }
+ ///
+ /// 名师工作室
+ ///
+ ///
+ [Column("TEACHERWORKROOM")]
+ public decimal? TeacherWorkRoom { get; set; }
+ ///
+ /// 专业负责人、教研组长、备课组长
+ ///
+ ///
+ [Column("MAJORPEOPLE")]
+ public decimal? MajorPeople { get; set; }
+ ///
+ /// 办公组长
+ ///
+ ///
+ [Column("WORKLEADER")]
+ public decimal? WorkLeader { get; set; }
+ ///
+ /// 实训室类管理员
+ ///
+ ///
+ [Column("TRAINADMIN")]
+ public decimal? TrainAdmin { get; set; }
+ ///
+ /// 纪委委员、支部委员、工会委员、兼职督学
+ ///
+ ///
+ [Column("COMMITTEEMEMBER")]
+ public decimal? CommitteeMember { get; set; }
+ ///
+ /// 正课节数
+ ///
+ ///
+ [Column("LESSONNUM")]
+ public int? LessonNum { get; set; }
+ ///
+ /// 正课课时分
+ ///
+ ///
+ [Column("LESSONHOUR")]
+ public decimal? LessonHour { get; set; }
+ ///
+ /// 早自习节数
+ ///
+ ///
+ [Column("MORNINGSTUDYNUM")]
+ public int? MorningStudyNum { get; set; }
+ ///
+ /// 早自习课时分
+ ///
+ ///
+ [Column("MORNINGSTUDYHOUR")]
+ public decimal? MorningStudyHour { get; set; }
+ ///
+ /// 晚自习节数
+ ///
+ ///
+ [Column("NIGHTSTUDYNUM")]
+ public int? NightStudyNum { get; set; }
+ ///
+ /// 晚自习课时分
+ ///
+ ///
+ [Column("NIGHTSTUDYHOUR")]
+ public decimal? NightStudyHour { get; set; }
+ ///
+ /// 两操节数
+ ///
+ ///
+ [Column("TWOEXERCISENUM")]
+ public int? TwoExerciseNum { get; set; }
+ ///
+ /// 两操课时分
+ ///
+ ///
+ [Column("TWOEXERCISEHOUR")]
+ public decimal? TwoExerciseHour { get; set; }
+ ///
+ /// 临时代班天数
+ ///
+ ///
+ [Column("TEMPWORKDAY")]
+ public decimal? TempWorkDay { get; set; }
+ ///
+ /// 临时代班岗位分
+ ///
+ ///
+ [Column("TEMPWORKSCORE")]
+ public decimal? TempWorkScore { get; set; }
+ ///
+ /// 缺班天数
+ ///
+ ///
+ [Column("OFFWORKDAY")]
+ public decimal? OffWorkDay { get; set; }
+ ///
+ /// 临时缺班扣减岗位分
+ ///
+ ///
+ [Column("OFFWORKMINUSSCORE")]
+ public decimal? OffWorkMinusScore { get; set; }
+ ///
+ /// 值日天数
+ ///
+ ///
+ [Column("ONDUTYDAY")]
+ public decimal? OnDutyDay { get; set; }
+ ///
+ /// 值日岗位分
+ ///
+ ///
+ [Column("ONDUTYSCORE")]
+ public decimal? OnDutyScore { get; set; }
+ ///
+ /// 应出勤天数
+ ///
+ ///
+ [Column("SHOULDWORKDAY")]
+ public decimal? ShouldWorkDay { get; set; }
+ ///
+ /// 出勤基础分
+ ///
+ ///
+ [Column("WORKBASICSCORE")]
+ public decimal? WorkBasicScore { get; set; }
+ ///
+ /// 出勤缺卡次数
+ ///
+ ///
+ [Column("WORKOFFCOUNT")]
+ public int? WorkOffCount { get; set; }
+ ///
+ /// 出勤考核扣减分
+ ///
+ ///
+ [Column("WORKMINUSSCORE")]
+ public decimal? WorkMinusScore { get; set; }
+ ///
+ /// 大型活动考核扣减分
+ ///
+ ///
+ [Column("BIGACTIVITYMINUSSCORE")]
+ public decimal? BigActivityMinusScore { get; set; }
+ ///
+ /// 旷工天数
+ ///
+ ///
+ [Column("ABSENTEEISMDAY")]
+ public decimal? AbsenteeismDay { get; set; }
+ ///
+ /// 旷工扣减分
+ ///
+ ///
+ [Column("ABSENTEEISMMINUSSCORE")]
+ public decimal? AbsenteeismMinusScore { get; set; }
+ ///
+ /// 出勤(病事公产活动等)考核情况说明
+ ///
+ ///
+ [Column("WORKREMARK")]
+ public string WorkRemark { get; set; }
+ ///
+ /// 常规工作考核基础分
+ ///
+ ///
+ [Column("ROUTINEBASICSCORE")]
+ public decimal? RoutineBasicScore { get; set; }
+ ///
+ /// 常规工作考核扣减分
+ ///
+ ///
+ [Column("ROUTINEMINUSSCORE")]
+ public decimal? RoutineMinusScore { get; set; }
+ ///
+ /// 常规工作考核情况详细说明
+ ///
+ ///
+ [Column("ROUTINEREMARK")]
+ public string RoutineRemark { get; set; }
+ ///
+ /// 月绩效考核分合计
+ ///
+ ///
+ [Column("PERFORMANCETOTALSCORE")]
+ public decimal? PerformanceTotalScore { get; set; }
+ ///
+ /// 假期工作绩效
+ ///
+ ///
+ [Column("HOLIDAYJOBPERFORMANCE")]
+ public string HolidayJobPerformance { get; set; }
+ ///
+ /// CreateUser
+ ///
+ ///
+ [Column("CREATEUSER")]
+ public string CreateUser { get; set; }
+ ///
+ /// CreateTime
+ ///
+ ///
+ [Column("CREATETIME")]
+ public DateTime? CreateTime { get; set; }
+ ///
+ /// UpdateUser
+ ///
+ ///
+ [Column("UPDATEUSER")]
+ public string UpdateUser { get; set; }
+ ///
+ /// UpdateTime
+ ///
+ ///
+ [Column("UPDATETIME")]
+ public DateTime? UpdateTime { get; set; }
+ ///
+ /// 审核标识(0未审核,1已审核)
+ ///
+ ///
+ [Column("F_ENABLEDMARK")]
+ public string F_EnabledMark { get; set; }
+ #endregion
+
+ #region 扩展操作
+ ///
+ /// 新增调用
+ ///
+ public void Create()
+ {
+ this.Id = Guid.NewGuid().ToString();
+ this.CreateTime = DateTime.Now;
+ this.CreateUser = LoginUserInfo.Get().userId;
+ this.F_EnabledMark = "0";
+ }
+ ///
+ /// 编辑调用
+ ///
+ ///
+ public void Modify(string keyValue)
+ {
+ this.Id = keyValue;
+ this.UpdateTime = DateTime.Now;
+ this.UpdateUser = LoginUserInfo.Get().userId;
+ }
+ #endregion
+ }
+}
+
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceIBLL.cs
new file mode 100644
index 000000000..fa959976f
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceIBLL.cs
@@ -0,0 +1,70 @@
+using Learun.Util;
+using System.Data;
+using System.Collections.Generic;
+
+namespace Learun.Application.TwoDevelopment.EducationalAdministration
+{
+ ///
+ /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
+ /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
+ /// 创 建:超级管理员
+ /// 日 期:2022-11-07 11:54
+ /// 描 述:工作绩效
+ ///
+ public interface JobPerformanceIBLL
+ {
+ #region 获取数据
+
+ ///
+ /// 获取列表数据
+ ///
+ /// 查询参数
+ ///
+ IEnumerable GetList( string queryJson );
+ ///
+ /// 获取列表分页数据
+ ///
+ /// 分页参数
+ /// 查询参数
+ ///
+ IEnumerable GetPageList(Pagination pagination, string queryJson);
+ ///
+ /// 获取实体数据
+ ///
+ /// 主键
+ ///
+ JobPerformanceEntity GetEntity(string keyValue);
+
+ List GetPeopleType();
+ List GetPostType();
+ List GetPayGrade();
+
+ #endregion
+
+ #region 提交数据
+
+ ///
+ /// 删除实体数据
+ ///
+ /// 主键
+ void DeleteEntity(string keyValue);
+ ///
+ /// 保存实体数据(新增、修改)
+ ///
+ /// 主键
+ /// 实体
+ void SaveEntity(string keyValue, JobPerformanceEntity entity);
+
+ void CheckEntity(string keyValue,string Status);
+
+ ///
+ /// 工作绩效导入
+ ///
+ ///
+ ///
+ ///
+ string SalarySheelImport(DataTable dt, string fileId);
+ #endregion
+
+ }
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceService.cs
new file mode 100644
index 000000000..8aab3aa51
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceService.cs
@@ -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
+{
+ ///
+ /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
+ /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
+ /// 创 建:超级管理员
+ /// 日 期:2022-11-07 11:54
+ /// 描 述:工作绩效
+ ///
+ public class JobPerformanceService : RepositoryFactory
+ {
+
+ #region 获取数据
+
+ ///
+ /// 获取列表数据
+ ///
+ /// 条件参数
+ ///
+ public IEnumerable 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(strSql.ToString());
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+ ///
+ /// 获取列表分页数据
+ ///
+ /// 分页参数
+ /// 条件参数
+ ///
+ public IEnumerable 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(strSql.ToString(), dp, pagination);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+ ///
+ /// 获取实体数据
+ ///
+ /// 主键
+ ///
+ public JobPerformanceEntity GetEntity(string keyValue)
+ {
+ try
+ {
+ return this.BaseRepository("CollegeMIS").FindEntity(keyValue);
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+
+ public List 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(sql).ToList();
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+ public List 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(sql).ToList();
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+ ///
+ /// 薪级
+ ///
+ ///
+ ///
+ public List 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(sql).ToList();
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+ #endregion
+
+ #region 提交数据
+
+ ///
+ /// 删除实体数据
+ ///
+ /// 主键
+ public void DeleteEntity(string keyValue)
+ {
+ var db = this.BaseRepository("CollegeMIS").BeginTrans();
+ try
+ {
+ //多个启用
+ var keyValueArr = keyValue.Split(',');
+ foreach (var item in keyValueArr)
+ {
+ db.Delete(t => t.Id == item);
+ }
+ db.Commit();
+ }
+ catch (Exception ex)
+ {
+ db.Rollback();
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+ ///
+ /// 删除实体数据
+ ///
+ /// 主键
+ 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);
+ }
+ }
+ }
+
+ ///
+ /// 保存实体数据(新增、修改)
+ /// 主键
+ /// 实体
+ ///
+ 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
+
+ ///
+ /// 工作绩效导入
+ ///
+ ///
+ ///
+ ///
+ 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 EmpInfoEntities = this.BaseRepository("CollegeMIS").FindList("select * from empinfo");
+ //修改学生list
+ List jobPerformanceEntityList = new List();
+ 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(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(cacheKey + fileId, errordt, CacheId.excel);
+ }
+ }
+ return snum + "|" + fnum;
+ }
+ catch (Exception ex)
+ {
+ if (ex is ExceptionEx)
+ {
+ throw;
+ }
+ else
+ {
+ throw ExceptionEx.ThrowServiceException(ex);
+ }
+ }
+ }
+
+ #endregion
+
+ }
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
index cceaddb83..a3933a882 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
@@ -402,6 +402,10 @@
+
+
+
+