From 4853179e98539577cb8eebde676574236b07a888 Mon Sep 17 00:00:00 2001 From: dyy <807692433@qq.com> Date: Sun, 28 Apr 2024 14:00:16 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91=E6=9C=88?= =?UTF-8?q?=E5=B8=B8=E8=A7=84=E5=B7=A5=E4=BD=9C=E7=BB=A9=E6=95=88=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/JobPerformanceController.cs | 214 ++++++++ .../Views/JobPerformance/Form.cshtml | 160 ++++++ .../Views/JobPerformance/Form.js | 66 +++ .../Views/JobPerformance/ImportForm.cshtml | 25 + .../Views/JobPerformance/ImportForm.css | 136 ++++++ .../Views/JobPerformance/ImportForm.js | 242 ++++++++++ .../Views/JobPerformance/Index.cshtml | 64 +++ .../Views/JobPerformance/Index.js | 269 +++++++++++ .../Views/JobPerformance/IndexMy.cshtml | 44 ++ .../Views/JobPerformance/IndexMy.js | 126 +++++ .../Views/JobPerformance/IndexPrint.cshtml | 57 +++ .../Views/JobPerformance/IndexPrint.js | 269 +++++++++++ .../Learun.Application.Web.csproj | 12 + .../JobPerformanceMap.cs | 29 ++ .../Learun.Application.Mapping.csproj | 1 + .../JobPerformance/JobPerformanceBLL.cs | 247 ++++++++++ .../JobPerformance/JobPerformanceEntity.cs | 337 +++++++++++++ .../JobPerformance/JobPerformanceIBLL.cs | 70 +++ .../JobPerformance/JobPerformanceService.cs | 455 ++++++++++++++++++ .../Learun.Application.TwoDevelopment.csproj | 4 + 20 files changed, 2827 insertions(+) create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/JobPerformanceController.cs create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.cshtml create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Form.js create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.cshtml create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.css create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/ImportForm.js create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.cshtml create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/Index.js create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.cshtml create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexMy.js create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.cshtml create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/JobPerformance/IndexPrint.js create mode 100644 Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/EducationalAdministration/JobPerformanceMap.cs create mode 100644 Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceBLL.cs create mode 100644 Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceEntity.cs create mode 100644 Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceIBLL.cs create mode 100644 Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/JobPerformance/JobPerformanceService.cs diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/JobPerformanceController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/JobPerformanceController.cs new file mode 100644 index 000000000..3f8fb357b --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/JobPerformanceController.cs @@ -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 +{ + /// + /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + /// 创 建:超级管理员 + /// 日 期:2022-11-07 11:54 + /// 描 述:工作绩效 + /// + public class JobPerformanceController : MvcControllerBase + { + private JobPerformanceIBLL jobPerformanceIBLL = new JobPerformanceBLL(); + + #region 视图功能 + + /// + /// 主页面 + /// + /// + [HttpGet] + public ActionResult Index() + { + return View(); + } + /// + /// 主页面 + /// + /// + [HttpGet] + public ActionResult IndexPrint() + { + return View(); + } + /// + /// 主页面-我的 + /// + /// + [HttpGet] + public ActionResult IndexMy() + { + return View(); + } + /// + /// 表单页 + /// + /// + [HttpGet] + public ActionResult Form() + { + return View(); + } + + /// + /// 导入页面 + /// + /// + [HttpGet] + public ActionResult ImportForm() + { + return View(); + } + + #endregion + + #region 获取数据 + /// + /// 人员类别 + /// + /// + public ActionResult PeopleType() + { + var data = jobPerformanceIBLL.GetPeopleType(); + return Success(data); + } + /// + /// 岗位类别 + /// + /// + public ActionResult PostType() + { + var data = jobPerformanceIBLL.GetPostType(); + return Success(data); + } + /// + /// 薪级 + /// + /// + public ActionResult PayGrade() + { + var data = jobPerformanceIBLL.GetPayGrade(); + return Success(data); + } + + /// + /// 获取列表数据 + /// + /// 查询参数 + /// + [HttpGet] + [AjaxOnly] + public ActionResult GetList(string queryJson) + { + var data = jobPerformanceIBLL.GetList(queryJson); + return Success(data); + } + /// + /// 获取列表分页数据 + /// + /// 分页参数 + /// 查询参数 + /// + [HttpGet] + [AjaxOnly] + public ActionResult GetPageList(string pagination, string queryJson) + { + Pagination paginationobj = pagination.ToObject(); + 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 @@ + + + +