|
@@ -11,77 +11,137 @@ class ExcelimportService extends Service {
|
|
|
}
|
|
|
|
|
|
|
|
|
- async getImportXLSXData(result) {
|
|
|
- console.log(result);
|
|
|
- for (const elem of result) {
|
|
|
- const _id = elem._id;
|
|
|
- const filepath = this.ctx.app.config.fileDirImp + elem.content;
|
|
|
- if (elem.type === '0') {
|
|
|
- const workbook = XLSX.readFile(filepath);
|
|
|
-
|
|
|
- const sheetNames = workbook.SheetNames;
|
|
|
- const sheet = workbook.Sheets[sheetNames[0]];
|
|
|
-
|
|
|
- const params = XLSX.utils.sheet_to_json(sheet);
|
|
|
-
|
|
|
- console.log(params);
|
|
|
- if (!params) return [];
|
|
|
- const maps = {
|
|
|
- szyx: '院系',
|
|
|
- szbj: '班级',
|
|
|
- yxdm: '院校代码',
|
|
|
- yxmc: '院校名称',
|
|
|
- zydm: '专业代码',
|
|
|
- zymc: '专业名称',
|
|
|
- xh: '学号',
|
|
|
- xm: '姓名',
|
|
|
- sfzh: '身份证号',
|
|
|
- xb: '性别',
|
|
|
- xldm: '学历代码',
|
|
|
- xl: '学历名称',
|
|
|
- year: '毕业年份',
|
|
|
- mz: '民族',
|
|
|
- dhhm: '电话号码',
|
|
|
- syszddm: '生源所在地代码',
|
|
|
- syszd: '生源所在地',
|
|
|
- zzmm: '政治面貌',
|
|
|
- };
|
|
|
- const _datas = params.map(p => {
|
|
|
- const data = {};
|
|
|
- Object.keys(maps).forEach(k => { data[k] = p[maps[k]]; });
|
|
|
-
|
|
|
- return data;
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- const queryData = { year: elem.createtime, schid: elem.userid, schname: elem.name };
|
|
|
- let errCount = 0;
|
|
|
- const errmsgRes = [];
|
|
|
- for (const i in _datas) {
|
|
|
- try {
|
|
|
- const studRes = await this.ctx.service.axiox.student.create(queryData, _datas[i]);
|
|
|
- console.log(studRes);
|
|
|
- } catch (err) {
|
|
|
- console.log(err);
|
|
|
- errCount++;
|
|
|
- errmsgRes.push(_datas[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- console.log(errCount);
|
|
|
-
|
|
|
- if (errCount === 0) {
|
|
|
- const updatedata = { status: '1' };
|
|
|
- await this.ctx.service.dataimp.update({ id: _id }, updatedata);
|
|
|
- } else {
|
|
|
- console.log(errmsgRes);
|
|
|
- const updatedata = { status: '2', errmsg: errmsgRes };
|
|
|
- console.log(updatedata);
|
|
|
- await this.ctx.service.dataimp.update({ id: _id }, updatedata);
|
|
|
- }
|
|
|
+ async getImportXLSXData(elem) {
|
|
|
+ const filepath = this.ctx.app.config.fileDirImp + elem.content;
|
|
|
+ if (elem.type === '0') {
|
|
|
+ const workbook = XLSX.readFile(filepath);
|
|
|
+
|
|
|
+ const sheetNames = workbook.SheetNames;
|
|
|
+ const sheet = workbook.Sheets[sheetNames[0]];
|
|
|
+
|
|
|
+ const params = XLSX.utils.sheet_to_json(sheet);
|
|
|
+
|
|
|
+ if (!params) return [];
|
|
|
+ const maps = {
|
|
|
+ szyx: '院系',
|
|
|
+ szbj: '班级',
|
|
|
+ yxdm: '院校代码',
|
|
|
+ yxmc: '院校名称',
|
|
|
+ zydm: '专业代码',
|
|
|
+ zymc: '专业名称',
|
|
|
+ xh: '学号',
|
|
|
+ xm: '姓名',
|
|
|
+ sfzh: '身份证号',
|
|
|
+ xb: '性别',
|
|
|
+ xldm: '学历代码',
|
|
|
+ xl: '学历名称',
|
|
|
+ year: '毕业年份',
|
|
|
+ mz: '民族',
|
|
|
+ dhhm: '电话号码',
|
|
|
+ syszddm: '生源所在地代码',
|
|
|
+ syszd: '生源所在地',
|
|
|
+ zzmm: '政治面貌',
|
|
|
+ };
|
|
|
+ const _datas = params.map(p => {
|
|
|
+ const data = {};
|
|
|
+ Object.keys(maps).forEach(k => { data[k] = p[maps[k]]; });
|
|
|
+
|
|
|
+ return data;
|
|
|
+ });
|
|
|
+ return _datas;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ async validatedata(elem, _datas) {
|
|
|
+ let errCount = 0;
|
|
|
+ const errmsgRes = [];
|
|
|
+ for (const i in _datas) {
|
|
|
+ const data = _datas[i];
|
|
|
+ if (data.xh === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '学号为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.xm === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '姓名为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.sfzh === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '身份证号为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.xb === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '性别为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.yxdm === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '院校代码为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.yxmc === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '院校名称为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.zymc === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '专业名称为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (data.xl === '') {
|
|
|
+ errCount++;
|
|
|
+ const errmsg = { ...data, errmsg: '学历为空' };
|
|
|
+ errmsgRes.push(errmsg);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
+ if (errCount !== 0) {
|
|
|
+ const updatedata = { status: '2', errmsg: errmsgRes };
|
|
|
+ console.log(updatedata);
|
|
|
+ await this.ctx.service.dataimp.update({ id: elem.id }, updatedata);
|
|
|
+ }
|
|
|
+ return errCount;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ async dataimport(elem, _datas) {
|
|
|
+
|
|
|
+ const queryData = { year: elem.createtime, schid: elem.userid, schname: elem.name };
|
|
|
+ let errCount = 0;
|
|
|
+ const errmsgRes = [];
|
|
|
+ for (const i in _datas) {
|
|
|
+ try {
|
|
|
+ await this.ctx.service.axiox.student.create(queryData, _datas[i]);
|
|
|
+ } catch (err) {
|
|
|
+ console.log(err);
|
|
|
+ errCount++;
|
|
|
+ errmsgRes.push(_datas[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log(errCount);
|
|
|
+
|
|
|
+ if (errCount === 0) {
|
|
|
+ const updatedata = { status: '1' };
|
|
|
+ await this.ctx.service.dataimp.update({ id: elem.id }, updatedata);
|
|
|
+ } else {
|
|
|
+ console.log(errmsgRes);
|
|
|
+ const updatedata = { status: '2', errmsg: errmsgRes };
|
|
|
+ console.log(updatedata);
|
|
|
+ await this.ctx.service.dataimp.update({ id: elem.id }, updatedata);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
module.exports = ExcelimportService;
|