Browse Source

(Fixed issue #)7466 个人培训记录-导入文档姓名和部门做数据源匹配

master
Archer_cdm 2 years ago
parent
commit
8be1a93b13
  1. 23
      web/client/src/sections/humanAffairs/containers/importPersonalTrainRecord.jsx

23
web/client/src/sections/humanAffairs/containers/importPersonalTrainRecord.jsx

@ -2,12 +2,12 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import moment from 'moment'; import moment from 'moment';
import { Modal, Form, Button, Notification,Toast } from '@douyinfe/semi-ui'; import { Modal, Form, Button, Notification, Toast } from '@douyinfe/semi-ui';
import { IconUpload } from '@douyinfe/semi-icons'; import { IconUpload } from '@douyinfe/semi-icons';
import XLSX from 'xlsx' import XLSX from 'xlsx'
// //
const ImportPerformanceSummaryModal = props => { const ImportPerformanceSummaryModal = props => {
const { dispatch, actions, onCancel,query } = props; const { dispatch, actions, onCancel, query, user } = props;
const { businessManagement } = actions const { businessManagement } = actions
const [msg, setMsg] = useState(''); const [msg, setMsg] = useState('');
const [loading, setLoading] = useState(''); const [loading, setLoading] = useState('');
@ -18,7 +18,7 @@ const ImportPerformanceSummaryModal = props => {
const confirm = () => { const confirm = () => {
if (postData.length) { if (postData.length) {
setLoading(true) setLoading(true)
const { postAllPersonalTrainRecord,getPersonalTrainRecord } = actions.humanAffairs const { postAllPersonalTrainRecord, getPersonalTrainRecord } = actions.humanAffairs
dispatch(postAllPersonalTrainRecord(postData)).then(res => { dispatch(postAllPersonalTrainRecord(postData)).then(res => {
if (res.success) { if (res.success) {
onCancel() onCancel()
@ -32,7 +32,7 @@ const ImportPerformanceSummaryModal = props => {
} }
const download = () => { const download = () => {
const head = [["姓名", "部门", "培训类型", "课程主题", "培训讲师", "培训时间", "培训时长", "培训方式", "考勤分数","考核形式","考核分数","总分"]]; const head = [["姓名", "部门", "培训类型", "课程主题", "培训讲师", "培训时间", "培训时长", "培训方式", "考勤分数", "考核形式", "考核分数", "总分"]];
let sheetName = '个人培训'; let sheetName = '个人培训';
let workbook = { SheetNames: [sheetName], Sheets: {} }; let workbook = { SheetNames: [sheetName], Sheets: {} };
workbook.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(head);//jsonexcel workbook.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(head);//jsonexcel
@ -149,6 +149,21 @@ const ImportPerformanceSummaryModal = props => {
Toast.error(`${i + 2}行,部门为空,请填写`) Toast.error(`${i + 2}行,部门为空,请填写`)
return return
} }
if (user.allDepartment && user.allDepartment.departments) {
let dept = user.allDepartment.departments.find(d => !d.delete && d.name === obj.departmentName);
let personal = dept && dept.departmentUsers.find(e => e.user.name === obj.personalName);
if (dept) {
obj.departmentName = dept.name;
} else if (!dept) {
Toast.error(`${i + 2}行【部门】数据有误,请确认后重新填写`)
return
} else if (personal) {
obj.personalName = personal.user.name;
} else if (!personal) {
Toast.error(`${i + 2}行【姓名】数据有误,请确认后重新填写`)
return
}
}
if (!obj.trainingType) { if (!obj.trainingType) {
Toast.error(`${i + 2}行,培训类型为空,请填写`) Toast.error(`${i + 2}行,培训类型为空,请填写`)
return return

Loading…
Cancel
Save