From b3906f90bc4194234734463f555d79162021ddf1 Mon Sep 17 00:00:00 2001 From: ndbs Date: Wed, 1 Mar 2023 18:14:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=88=91=E7=9A=84=E7=8F=AD=E7=BA=A7-?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E5=AD=A6=E5=8F=B7/=E5=A7=93=E5=90=8D=E5=8F=8C?= =?UTF-8?q?=E9=87=8D=E9=AA=8C=E8=AF=81=20=E6=9B=B4=E6=96=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=9F=BA=E7=A1=80=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/StuInfoBasicController.cs | 32 +++ .../Views/StuInfoBasic/ImportForm.cshtml | 24 ++ .../Views/StuInfoBasic/ImportForm.css | 136 ++++++++++ .../Views/StuInfoBasic/ImportForm.js | 240 ++++++++++++++++++ .../Views/StuInfoBasic/MyClass.cshtml | 3 +- .../Views/StuInfoBasic/MyClass.js | 11 + .../Controllers/ExcelImportController.cs | 33 +++ .../excel/StuInfoBasicUpdateImport.xls | Bin 0 -> 20480 bytes .../Learun.Application.Web.csproj | 4 + .../StuInfoBasic/StuInfoBasicBLL.cs | 25 +- .../StuInfoBasic/StuInfoBasicIBLL.cs | 8 + .../StuInfoBasic/StuInfoBasicService.cs | 236 +++++++++++++++++ 12 files changed, 750 insertions(+), 2 deletions(-) create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.cshtml create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.css create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.js create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/StuInfoBasicUpdateImport.xls diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuInfoBasicController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuInfoBasicController.cs index 5a8050e97..79cd6eb59 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuInfoBasicController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/StuInfoBasicController.cs @@ -148,6 +148,16 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers return View(stuInfoBasicEntity); } + + /// + /// 导入页面 + /// + /// + [HttpGet] + public ActionResult ImportForm() + { + return View(); + } #endregion @@ -537,6 +547,28 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers stuInfoBasicIBLL.SyncMajor(); return Success("同步成功"); } + + /// + /// 我的班级导入数据 + /// + /// + public ActionResult DownTemplate() + { + FileStreamResult result = null; + try + { + var path = Server.MapPath("~/Content/excel/"); + var pathoffull = path + "StuInfoBasicUpdateImport.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/StuInfoBasic/ImportForm.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.cshtml new file mode 100644 index 000000000..e45c62394 --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.cshtml @@ -0,0 +1,24 @@ +@{ + ViewBag.Title = "Form"; + Layout = "~/Views/Shared/_Form.cshtml"; +} + + +@Html.AppendCssFile("/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.css") +
+
+
上传文件
+
下载模板
+
+
+
+
+ +
+
+

试试将电脑里的文件拖拽到此上传

+
+
+
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.js") diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.css b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.css new file mode 100644 index 000000000..04b556b7a --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/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/StuInfoBasic/ImportForm.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.js new file mode 100644 index 000000000..c9af166f7 --- /dev/null +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/ImportForm.js @@ -0,0 +1,240 @@ +/* + * 版 本 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/StuInfoBasicImport", 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/StuInfoBasic/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/StuInfoBasic/MyClass.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.cshtml index ef6f2b03b..060115a5d 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.cshtml +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.cshtml @@ -21,9 +21,10 @@
- diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.js index 8782fbbc1..68e46e13c 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.js +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/StuInfoBasic/MyClass.js @@ -101,6 +101,17 @@ var bootstrap = function ($, learun) { }); } }); + //更新学生数据 + $('#lr_update').on('click', function () { + learun.layerForm({ + id: 'form_import', + title: '更新学生数据', + url: top.$.rootUrl + '/EducationalAdministration/StuInfoBasic/ImportForm', + width: 600, + height: 400, + btn: null + }); + }); }, // 初始化列表 initGird: function () { diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_SystemModule/Controllers/ExcelImportController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_SystemModule/Controllers/ExcelImportController.cs index 909ff2cb2..7735d4c6e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_SystemModule/Controllers/ExcelImportController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_SystemModule/Controllers/ExcelImportController.cs @@ -6,6 +6,7 @@ using System.Data; using Learun.Application.Base.SystemModule; using System; using System.Drawing; +using Learun.Application.TwoDevelopment.EducationalAdministration; namespace Learun.Application.Web.Areas.LR_SystemModule.Controllers { @@ -20,6 +21,8 @@ namespace Learun.Application.Web.Areas.LR_SystemModule.Controllers { private ExcelImportIBLL excelImportIBLL = new ExcelImportBLL(); private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); + private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); + #region 视图功能 /// /// 导入模板管理页面 @@ -287,6 +290,36 @@ namespace Learun.Application.Web.Areas.LR_SystemModule.Controllers } } + /// + /// 学生学籍信息批量修改 + /// + /// 模板Id + /// 文件主键 + /// 分片数 + /// 文件扩展名 + /// + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult StuInfoBasicImport(string fileId, int chunks, string ext) + { + UserInfo userInfo = LoginUserInfo.Get(); + string path = annexesFileIBLL.SaveAnnexes(fileId, fileId + "." + ext, chunks, userInfo); + if (!string.IsNullOrEmpty(path)) + { + DataTable dt = ExcelHelper.ExcelImport(path); + string res = stuInfoBasicIBLL.StuInfoBasicUpdateImport(dt, fileId); + var data = new + { + Success = res.Split('|')[0], + Fail = res.Split('|')[1] + }; + return JsonResult(data); + } + else + { + return Fail("导入数据失败!"); + } + } /// /// 下载文件(导入文件未被导入的数据) /// diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/StuInfoBasicUpdateImport.xls b/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/StuInfoBasicUpdateImport.xls new file mode 100644 index 0000000000000000000000000000000000000000..9b04b07cfccc084e581d65c409c3f45086b6ad45 GIT binary patch literal 20480 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 + + @@ -8046,6 +8048,8 @@ + + diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs index ac49b9ca6..96f164b11 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs @@ -564,7 +564,30 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } - + /// + /// 更新学生数据 + /// + /// + /// + /// + public string StuInfoBasicUpdateImport(DataTable dt, string fileId) + { + try + { + return stuInfoBasicService.StuInfoBasicUpdateImport(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/StuInfoBasic/StuInfoBasicIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs index 49686ff18..e37fbeb6e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs @@ -81,5 +81,13 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration IEnumerable GetStuInfoByClassNo(string classNo); void SyncDept(); void SyncMajor(); + /// + /// 跟新学生数据 + /// + /// + /// + /// + string StuInfoBasicUpdateImport(DataTable dt, string fileId); + } } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs index 998a66bdc..dddecc93a 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs @@ -11,6 +11,8 @@ using Learun.Application.Organization; using System.Reflection; using Learun.Application.Base.SystemModule; using Learun.Application.TwoDevelopment.LogisticsManagement; +using Learun.Cache.Base; +using Learun.Cache.Factory; namespace Learun.Application.TwoDevelopment.EducationalAdministration { @@ -23,6 +25,8 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// public class StuInfoBasicService : RepositoryFactory { + private DataItemIBLL dataItemIBLL = new DataItemBLL(); + #region 获取数据 /// @@ -993,5 +997,237 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } + + #region 缓存定义 + private ICache cache = CacheFactory.CaChe(); + private string cacheKey = "Learun_adms_excelError_"; // +公司主键 + #endregion + + /// + /// 批量更新学生数据 + /// + /// + public string StuInfoBasicUpdateImport(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 stuInfoBasicEntities = this.BaseRepository("CollegeMIS").FindList("select * from StuInfoBasic"); + //修改学生list + List insertedorderlist = new List(); + var db = this.BaseRepository("CollegeMIS").BeginTrans(); + // 循环遍历导入 + foreach (DataRow dr in dt.Rows) + { + try + { + //Dictionary> dataItemMap = new Dictionary>(); + //检测是否有空值 + if (dr[0].ToString() == "" || dr[4].ToString() == "") + { + throw (new Exception("学号和姓名不能为空,不能为空!")); + } + + var stuInfoBasic = stuInfoBasicEntities.FirstOrDefault(s => s.StuNo == dr[0].ToString() && s.StuName == dr[4].ToString()); + + //写入要导入的数据 + var stuUpdateList = new StuInfoBasicEntity + { + StuId = stuInfoBasic.StuId, + StuNo = "", + StuCode = "", + NoticeNo = "", + GraduateYear = "", + ksh = "", + //DeptNo = "", + //MajorNo = "", + //MajorDetailNo = "", + //MajorDetailName = "", + //Grade = "", + //ClassNo = "", + //StuName = "", + ////GenderNo = true, + //Birthday = DateTime.Now, + //PartyFaceNo = "", + //FamilyOriginNo = "", + //NationalityNo = "", + //ProvinceNo = "", + //RegionNo = "", + //ResidenceNo = "", + //TestStuSortNo = "", + //HealthStatusNo = "", + //WillNo = "", + //TestStuSubjectNo = "", + //GraduateNo = "", + //PlanFormNo = "", + //IsThreeGood = "", + //IsExcellent = "", + //IsNormalCadre = "", + //IsProvinceFirstThree = "", + //OverseasChineseNo = "", + //MatriculateSort = "", + //ComeProvinceNo = "", + //HighSchoolNo = "", + //HighSchoolName = "", + //EntranceDate = DateTime.Now, + //Religion = "", + //GoodAt = "", + //IdentityCardNo = "", + //JoinPartyDate = DateTime.Now, + //JoinLeagueDate = DateTime.Now, + //InSchoolAddress = "", + //InSchoolTelephone = "", + //AbmormityMoveMark = "", + //AwardMark = "", + //PunishMark = "", + //LinkmanMark = "", + //StuNoChangeMark = "", + //FinishSchoolMark = "", + //CurrentRegisterMark = "", + //FinishSchoolDate = DateTime.Now, + //DiplomaNo = "", + //DiplomaRemark = "", + //Remark = "", + //RegisterDate = DateTime.Now, + //Photo = "", + //TeachPlanNo = "", + CheckMark = "1", + //mobile = "", + //EMail = "", + //QQ = "", + //FatherUnit = "", + //FatherName = "", + //FatherPhone = "", + //MatherName = "", + //MatherUnit = "", + //MatherPhone = "", + //username = "", + //password = "", + //MailAddress = "", + //PostalCode = "", + //InSchoolStatus = "", + //TransMark = "", + //ClassTutorNo = "", + //ResumeCheck = "", + //PracStatus = "", + //RegisterStatus = 0, + //PunishmentDate = DateTime.Now, + //F_CityId = "", + //F_CountyId = "", + //F_ProvinceId = "", + //F_SchoolId = "", + //EduSystem = "", + //StudyModality = "", + //ChangeStatus = 0, + //SyncFlag = true, + //Balance = "", + //HealthStatus = "", + //IdCardType = "", + //EntranceWay = "", + //StudyingWay = "", + //CountryNo = "", + //MarriageStatus = "", + //TrainInterval = "", + //IsTrailChildren = "", + //StuPlaceCode = "", + //BirthPlaceCode = "", + //NativePlaceCode = "", + //ResidencePlaceCode = "", + //BelongPolice = "", + //StuLivePlaceType = "", + //StuOrigin = "", + //RecruitObject = "", + //PoorIsRecord = "", + //RecruitWay = "", + //RecruitCooperateType = "", + //AdmissionNo = "", + //ExamScore = 0, + //RecruitCooperateForm = "", + //RecruitCooperateSchoolNo = "", + //SchoolOutsidePlace = "", + //PieceCultivateWay = "", + //EnglishName = "", + //OneMembership = "", + //OneIsGuardian = "", + //OneBirthday = "", + //OneIdCardType = "", + //OneIdCardNo = "", + //OneNationalityNo = "", + //OnePartyFaceNo = "", + //OneHealthStatus = "", + //OneJob = "", + //OnePosition = "", + //TwoMembership = "", + //TwoIsGuardian = "", + //TwoBirthday = "", + //TwoIdCardType = "", + //TwoIdCardNo = "", + //TwoNationalityNo = "", + //TwoPartyFaceNo = "", + //TwoHealthStatus = "", + //TwoJob = "", + //TwoPosition = "", + //DepositBank = "", + //BankCard = "", + //BankLocation = "", + //Domicile = "", + //OneDomicile = "", + //TwoDomicile = "", + //OneAddress = "", + //TwoAddress = "", + //ThreeName = "", + //ThreeMobile = "", + //IsSingle = true, + //MoveType = "", + //MoveStatus = 0, + //GuardianName = "", + //GuardianIdCardNo = "", + //GuardianPhone = "", + //GuardianDomicile = "", + //GuardianAddress = "", + + }; + insertedorderlist.Add(stuUpdateList); + snum++; + } + catch (Exception ex) + { + fnum++; + dr["导入错误"] = ex.Message; + failDt.Rows.Add(dr.ItemArray); + } + } + //执行导入 + db.Update(insertedorderlist); + 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); + } + } + } } } From 697064834eef50e7e9741969475bf94563af8367 Mon Sep 17 00:00:00 2001 From: ndbs Date: Thu, 2 Mar 2023 11:49:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E5=8A=9E=E4=BA=8B=E5=A4=A7=E5=8E=85=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Content/images/wsbsdt.png | Bin 0 -> 2028 bytes .../Learun.Application.Web.csproj | 1 + .../Views/Home/AdminDefault.cshtml | 17 +++++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 Learun.Framework.Ultimate V7/Learun.Application.Web/Content/images/wsbsdt.png diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/images/wsbsdt.png b/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/images/wsbsdt.png new file mode 100644 index 0000000000000000000000000000000000000000..9bcf6dce2d02d0680a0312e38cc20a3f8220c714 GIT binary patch literal 2028 zcmcIlZA=qq9IwkH4CdwwIyKuk&WWI0@0DwNS{Sq_9ab4sg^9-Nb5H3>+dJoRBr4Idmt@JZ7e6?sS#<6NH+3`Pi<&)0OJ^2!d|A`WJukoK z_y7H0p8vI$uUIxEZEl*yVwvJ8byuMGbn{6~u~;T$eRgaJO&(B7t96SdeTMl=vb?cx zw#71eMD|q~Ro>+SP{LMGQvA>w3#$liu`DT!sUoO@2Ihyga>R*W89a_-vgE|qViSJv`K@NO)Gq$sSY?Kys!XU5)%+X7#boL3x^`Q5Od;VyaF1V%OsACL5w;lUSt}? zs=VcxOVJ>fZ{-O}$meT^z4E1<5_ zYXFusz=$z#+?WKCXVrQwH0G%UNEm`)1k;f)I%!G`Du$v5mAm+n+)jF<3N8(bhNAft zB{ZI>@^Kc-<-&5-$Pr12>ba(#1RT0W13GbrVrYUw31fUTCvfP`E~4xLMa7|BR0Wb~ zh!X=Vk{oE92-NEpJQ3XxBLI5bP8^A{%CaO#Ebr%RfFc0Ju>?bLfUxIt65*E^PGVTQ zot5C2E_B|lfO<1{=J|NhN(w+6$@mBX8bTmCAQ8w1JQ1*QJRt%I36^3Q*3VFYa>Ttv zY%4Vx-5W7=F+M*2V!E1bCao(>NvpA)shs5mkvC z7Hc7?Mrv{FA2lu|q-b76LNRA=U-!6N<(d+ZLuf;k8AxEM ztfLG!CazH>+>{uFWNfT91reB6!ifX37NCSDmgPHyd14O5X`?}iNbgZ4ahR?IjHsx= zqFR)a|ENLoZqjwJ;oib0Rv-VH@I**KP>j?<)LTj1bcHm#P&^^zzjHOVcU#9Ahod%V z4wL;CO_CiPMi8}z`t#bgu@})N;T?~=$Y*bF|9Y@)S5d~~tLI1iyxku!>^{_*`trlm z(--YHcxq|$)DQZ%rOoosPwAV!_~fiZ9jU**utA*W9$J=#=Qd;0d|X>mR$I&FlGFZx z+Sxnu`0P%He(Bue(Wj>zy;Snx=}rBUGUr~Sw%S&`{_VhSerwm~c_(J}_OSj(X3^^x z{@8P&v+Pt3-*seU=kEPy_r$h*QD1cU#Gc>}d`H)j;nXwqxs~?z1NN5Zs(P-a&RqRg ztE+SPnSDRc&mLGaybIjlKl`^Qdalj^F-v$A&F?j2lET{AMHI;G&T$)kN!zqh8}SekLUI=ne!`E`GAb + diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/AdminDefault.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/AdminDefault.cshtml index 15744a4a8..bdd225e8e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/AdminDefault.cshtml +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/AdminDefault.cshtml @@ -3,6 +3,20 @@ Layout = "~/Views/Shared/_Admin.cshtml"; } @Html.AppendCssFile("/Views/Home/AdminDefault/index.css") + @@ -47,6 +61,9 @@
  • 备课任务 0 条
  • *@
  •           共 @ViewBag.UnreadNum 条
  • +
    + +
    @* 即时通讯窗体 *@