Browse Source

(*)业绩汇总表导出

master
ww664853070 2 years ago
parent
commit
e0569d677c
  1. 207
      web/client/src/sections/business/containers/performanceReport/performanceSummary.jsx
  2. 2
      web/package.json

207
web/client/src/sections/business/containers/performanceReport/performanceSummary.jsx

@ -148,23 +148,23 @@ const AchievementDetails = (props) => {
<th rowspan='2'><div style="${tableStyle}">入职日期</div></th>
<th rowspan='2'><div style="${tableStyle}">转正日期</div></th>
<th rowspan='2'><div style="${tableStyle}">工龄</div></th>
<th colspan="3"><div style="${tableStyle}">1</div></th>
<th colspan="3"><div style="${tableStyle}">2</div></th>
<th colspan="3"><div style="${tableStyle}">3</div></th>
<th colspan="5"><div style="${tableStyle}">1</div></th>
<th colspan="5"><div style="${tableStyle}">2</div></th>
<th colspan="5"><div style="${tableStyle}">3</div></th>
<th colspan="2"><div style="${tableStyle}">一季度</div></th>
<th colspan="3"><div style="${tableStyle}">4</div></th>
<th colspan="3"><div style="${tableStyle}">5</div></th>
<th colspan="3"><div style="${tableStyle}">6</div></th>
<th colspan="5"><div style="${tableStyle}">4</div></th>
<th colspan="5"><div style="${tableStyle}">5</div></th>
<th colspan="5"><div style="${tableStyle}">6</div></th>
<th colspan="2"><div style="${tableStyle}">二季度</div></th>
<th colspan="3"><div style="${tableStyle}">7</div></th>
<th colspan="3"><div style="${tableStyle}">8</div></th>
<th colspan="3"><div style="${tableStyle}">9</div></th>
<th colspan="5"><div style="${tableStyle}">7</div></th>
<th colspan="5"><div style="${tableStyle}">8</div></th>
<th colspan="5"><div style="${tableStyle}">9</div></th>
<th colspan="2"><div style="${tableStyle}">三季度</div></th>
<th colspan="3"><div style="${tableStyle}">10</div></th>
<th colspan="3"><div style="${tableStyle}">11</div></th>
<th colspan="3"><div style="${tableStyle}">12</div></th>
<th colspan="5"><div style="${tableStyle}">10</div></th>
<th colspan="5"><div style="${tableStyle}">11</div></th>
<th colspan="5"><div style="${tableStyle}">12</div></th>
<th colspan="2"><div style="${tableStyle}">四季度</div></th>
<th colspan="3><div style="${tableStyle}">2022</div></th>
<th colspan="3"><div style="${tableStyle}">四季</div></th>
<th rowspan='2'><div style="${tableStyle}">扣除转法务业绩金额</div></th>
<th rowspan='2'><div style="${tableStyle}">2022年最终业绩合计</div></th>
</tr>
@ -237,6 +237,9 @@ const AchievementDetails = (props) => {
<th><div style="${tableStyle}">完成率</div></th>
<th><div style="${tableStyle}">销售任务</div></th>
<th><div style="${tableStyle}">完成率</div></th>
<th><div style="${tableStyle}">合同金额合计</div></th>
<th><div style="${tableStyle}">实际业绩合计</div></th>
<th><div style="${tableStyle}">考核业绩合计</div></th>
</tr>
`;
//
@ -249,58 +252,69 @@ const AchievementDetails = (props) => {
const oneCompletion = oneAssessmentPerformance && oneTask && oneAssessmentPerformance / oneTask;
const twoAssessmentPerformance = item.two && item.two.assessmentPerformance;
const twoTask = item.two && item.two.task;
const twoCompletion = twoAssessmentPerformance && twoTask && twoAssessmentPerformance / twoTask || '-';
const twoCompletion = twoAssessmentPerformance && twoTask && twoAssessmentPerformance / twoTask;
const threeAssessmentPerformance = item.three && item.three.assessmentPerformance;
const threeTask = item.three && item.three.task;
const threeCompletion = threeAssessmentPerformance && threeTask && threeAssessmentPerformance / threeTask || '-';
const threeCompletion = threeAssessmentPerformance && threeTask && threeAssessmentPerformance / threeTask;
const fourAssessmentPerformance = item.four && item.four.assessmentPerformance;
const fourTask = item.four && item.four.task;
const fourCompletion = fourAssessmentPerformance && fourTask && fourAssessmentPerformance / fourTask || '-';
const fourCompletion = fourAssessmentPerformance && fourTask && fourAssessmentPerformance / fourTask;
const fiveAssessmentPerformance = item.five && item.five.assessmentPerformance;
const fiveTask = item.five && item.five.task;
const fiveCompletion = fiveAssessmentPerformance && fiveTask && fiveAssessmentPerformance / fiveTask || '-';
const fiveCompletion = fiveAssessmentPerformance && fiveTask && fiveAssessmentPerformance / fiveTask;
const sixAssessmentPerformance = item.six && item.six.assessmentPerformance;
const sixTask = item.six && item.six.task;
const sixCompletion = sixAssessmentPerformance && sixTask && sixAssessmentPerformance / sixTask || '-';
const sixCompletion = sixAssessmentPerformance && sixTask && sixAssessmentPerformance / sixTask;
const sevenAssessmentPerformance = item.seven && item.seven.assessmentPerformance;
const sevenTask = item.seven && item.seven.task;
const sevenCompletion = sevenAssessmentPerformance && sevenTask && sevenAssessmentPerformance / sevenTask || '-';
const sevenCompletion = sevenAssessmentPerformance && sevenTask && sevenAssessmentPerformance / sevenTask;
const eightAssessmentPerformance = item.eight && item.eight.assessmentPerformance;
const eightTask = item.eight && item.eight.task;
const eightCompletion = eightAssessmentPerformance && eightTask && eightAssessmentPerformance / eightTask || '-';
const eightCompletion = eightAssessmentPerformance && eightTask && eightAssessmentPerformance / eightTask;
const nineAssessmentPerformance = item.nine && item.nine.assessmentPerformance;
const nineTask = item.nine && item.nine.task;
const nineCompletion = nineAssessmentPerformance && nineTask && nineAssessmentPerformance / nineTask || '-';
const nineCompletion = nineAssessmentPerformance && nineTask && nineAssessmentPerformance / nineTask;
const tenAssessmentPerformance = item.ten && item.ten.assessmentPerformance;
const tenTask = item.ten && item.ten.task;
const tenCompletion = tenAssessmentPerformance && tenTask && tenAssessmentPerformance / tenTask || '-';
const tenCompletion = tenAssessmentPerformance && tenTask && tenAssessmentPerformance / tenTask;
const elevenAssessmentPerformance = item.eleven && item.eleven.assessmentPerformance;
const elevenTask = item.eleven && item.eleven.task;
const elevenCompletion = elevenAssessmentPerformance && elevenTask && elevenAssessmentPerformance / elevenTask || '-';
const elevenCompletion = elevenAssessmentPerformance && elevenTask && elevenAssessmentPerformance / elevenTask;
const twelveAssessmentPerformance = item.twelve && item.twelve.assessmentPerformance;
const twelveTask = item.twelve && item.twelve.task;
const twelveCompletion = twelveAssessmentPerformance && twelveTask && twelveAssessmentPerformance / twelveTask || '-';
const twelveCompletion = twelveAssessmentPerformance && twelveTask && twelveAssessmentPerformance / twelveTask;
let days = moment().diff(moment(item.hiredate).format('YYYY-MM-DD'), 'days')
let day = days / 365
const workingYears = day.toFixed(1)
console.log(Number(fourTask ? fourTask : 0) + Number(fiveTask ? fiveTask : 0) + Number(sixTask ? sixTask : 0));
return Object.assign({}, item, {
oneCompletion: oneCompletion || '-',
twoCompletion: twoCompletion || '-',
threeCompletion: threeCompletion || '-',
oneQuarterTask: (oneAssessmentPerformance || twoAssessmentPerformance || threeAssessmentPerformance) && (oneTask || twoTask || threeTask) && (oneAssessmentPerformance || 0 + twoAssessmentPerformance || 0 + threeAssessmentPerformance || 0) / (oneTask || 0 + twoTask || 0 + threeTask || 0) || '-',
fourCompletion: fourTask || '-',
fiveCompletion: fiveCompletion || '-',
sixCompletion: sixCompletion || '-',
twoQuarterTask: (fourAssessmentPerformance || fiveAssessmentPerformance || sixAssessmentPerformance) && (fourTask || fiveTask || sixTask) && (fourAssessmentPerformance || 0 + fiveAssessmentPerformance || 0 + sixAssessmentPerformance || 0) / (fourTask || 0 + fiveTask || 0 + sixTask || 0) || '-',
sevenCompletion: sevenCompletion || '-',
eightCompletion: eightCompletion || '-',
nineCompletion: nineCompletion || '-',
tenCompletion: tenCompletion || '-',
elevenCompletion: elevenCompletion || '-',
twelveCompletion: twelveCompletion || '-',
workingYears:workingYears,
oneCompletion: oneCompletion,
twoCompletion: twoCompletion,
threeCompletion: threeCompletion,
oneQuarterTaskNnu: Number(oneTask ? oneTask : 0) + Number(twoTask ? twoTask : 0) + Number(threeTask ? threeTask : 0),
oneQuarterTask: (oneAssessmentPerformance || twoAssessmentPerformance || threeAssessmentPerformance) && (oneTask || twoTask || threeTask) && (oneAssessmentPerformance || 0 + twoAssessmentPerformance || 0 + threeAssessmentPerformance || 0) / (oneTask || 0 + twoTask || 0 + threeTask || 0),
fourCompletion: fourCompletion,
fiveCompletion: fiveCompletion,
sixCompletion: sixCompletion,
twoQuarterTaskNnu: Number(fourTask ? fourTask : 0) + Number(fiveTask ? fiveTask : 0) + Number(sixTask ? sixTask : 0),
twoQuarterTask: (fourAssessmentPerformance || fiveAssessmentPerformance || sixAssessmentPerformance) && (fourTask || fiveTask || sixTask) && (fourAssessmentPerformance || 0 + fiveAssessmentPerformance || 0 + sixAssessmentPerformance || 0) / (fourTask || 0 + fiveTask || 0 + sixTask || 0),
sevenCompletion: sevenCompletion,
eightCompletion: eightCompletion,
nineCompletion: nineCompletion,
threeQuarterTaskNnu: Number(sevenTask ? sevenTask : 0) + Number(eightTask ? eightTask : 0) + Number(nineTask ? nineTask : 0),
threeQuarterTask: (sevenAssessmentPerformance || eightAssessmentPerformance || nineAssessmentPerformance) && (sevenTask || eightTask || nineTask) && (sevenAssessmentPerformance || 0 + eightAssessmentPerformance || 0 + nineAssessmentPerformance || 0) / (sevenTask || 0 + eightTask || 0 + nineTask || 0),
tenCompletion: tenCompletion,
elevenCompletion: elevenCompletion,
twelveCompletion: twelveCompletion,
fourQuarterTaskNnu: Number(tenTask ? tenTask : 0) + Number(elevenTask ? elevenTask : 0) + Number(twelveTask ? twelveTask : 0),
fourQuarterTask: (tenAssessmentPerformance || elevenAssessmentPerformance || twelveAssessmentPerformance) && (tenTask || elevenTask || twelveTask) && (tenAssessmentPerformance || 0 + elevenAssessmentPerformance || 0 + twelveAssessmentPerformance || 0) / (tenTask || 0 + elevenTask || 0 + twelveTask || 0),
workingYears: workingYears,
allAmount: Number(item.one ? item.one.amount : 0) + Number(item.two ? item.two.amount : 0) + Number(item.three ? item.three.amount : 0) + Number(item.four ? item.four.amount : 0) + Number(item.five ? item.five.amount : 0) + Number(item.six ? item.six.amount : 0) + Number(item.seven ? item.seven.amount : 0) + Number(item.eight ? item.eight.amount : 0) + Number(item.nine ? item.nine.amount : 0) + Number(item.ten ? item.ten.amount : 0) + Number(item.eleven ? item.eleven.amount : 0) + Number(item.twelve ? item.twelve.amount : 0),
allactualPerformance: Number(item.one ? item.one.actualPerformance : 0) + Number(item.two ? item.two.actualPerformance : 0) + Number(item.three ? item.three.actualPerformance : 0) + Number(item.four ? item.four.actualPerformance : 0) + Number(item.five ? item.five.actualPerformance : 0) + Number(item.six ? item.six.actualPerformance : 0) + Number(item.seven ? item.seven.actualPerformance : 0) + Number(item.eight ? item.eight.actualPerformance : 0) + Number(item.nine ? item.nine.actualPerformance : 0) + Number(item.ten ? item.ten.actualPerformance : 0) + Number(item.eleven ? item.eleven.actualPerformance : 0) + Number(item.twelve ? item.twelve.actualPerformance : 0),
allassessmentPerformance: Number(item.one ? item.one.assessmentPerformance : 0) + Number(item.two ? item.two.assessmentPerformance : 0) + Number(item.three ? item.three.assessmentPerformance : 0) + Number(item.four ? item.four.assessmentPerformance : 0) + Number(item.five ? item.five.assessmentPerformance : 0) + Number(item.six ? item.six.assessmentPerformance : 0) + Number(item.seven ? item.seven.assessmentPerformance : 0) + Number(item.eight ? item.eight.assessmentPerformance : 0) + Number(item.nine ? item.nine.assessmentPerformance : 0) + Number(item.ten ? item.ten.assessmentPerformance : 0) + Number(item.eleven ? item.eleven.assessmentPerformance : 0) + Number(item.twelve ? item.twelve.assessmentPerformance : 0),
})
})
for (let d of allList) {
@ -311,35 +325,88 @@ const AchievementDetails = (props) => {
<td><div style="${tableStyle}">${d['business']}</div></td>
<td><div style="${tableStyle}">${d['hiredate']}</div></td>
<td><div style="${tableStyle}">${d['regularDate']}</div></td>
<td><div style="${tableStyle}">${d['workingYears']}</div></td>
<td><div style="${tableStyle}">${d['oneCompletion']}</div></td>
<td><div style="${tableStyle}">${d['twoCompletion']}</div></td>
<td><div style="${tableStyle}">${d['threeCompletion']}</div></td>
<td><div style="${tableStyle}">${d['oneQuarterTask']}</div></td>
<td><div style="${tableStyle}">${d['phone']}</div></td>
<td><div style="${tableStyle}">${d['post'] ? d['post'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['email'] ? d['email'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['wechat'] ? d['wechat'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['region']}</div></td>
<td><div style="${tableStyle}">${d['regionPathName']}</div></td>
<td><div style="${tableStyle}">${d['projectState']}</div></td>
<td><div style="${tableStyle}">${d['LostTypeName'] ? d['LostTypeName'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['cause'] ? d['cause'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['groundTime'] ? d['groundTime'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['projectSuccess']}</div></td>
<td><div style="${tableStyle}">${d['amountMoney'] ? d['amountMoney'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['bidding'] ? '是' : '否'}</div></td>
<td><div style="${tableStyle}">${d['competitor'] ? d['competitor'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['fundsSufficient'] ? '是' : '否'}</div></td>
<td><div style="${tableStyle}">${d['planAgreed'] ? '是' : '否'}</div></td>
<td><div style="${tableStyle}">${d['projectProgress'] ? d['projectProgress'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['problemAnalysis'] ? d['problemAnalysis'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['nextTodo'] ? d['nextTodo'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['remarks'] ? d['remarks'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['recordTime']}</div></td>
<td><div style="${tableStyle}">${d['intervalDays']}</div></td>
<td><div style="${tableStyle}">${d['newUpdateTime'] ? d['newUpdateTime'] : '暂无'}</div></td>
<td><div style="${tableStyle}">${d['updateInterval']}</div></td>
<td><div style="${tableStyle}">${d['workingYears']}</div></td>
<td><div style="${tableStyle}">${d.one ? d.one.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.one ? d.one.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.one ? d.one.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.one ? d.one.task : ''}</div></td>
<td><div style="${tableStyle}">${d.oneCompletion ? d.oneCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.two ? d.two.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.two ? d.two.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.two ? d.two.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.two ? d.two.task : ''}</div></td>
<td><div style="${tableStyle}">${d.twoCompletion ? d.twoCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.three ? d.three.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.three ? d.three.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.three ? d.three.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.three ? d.three.task : ''}</div></td>
<td><div style="${tableStyle}">${d.threeCompletion ? d.threeCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.oneQuarterTaskNnu == 0 ? '' : d.oneQuarterTaskNnu}</div></td>
<td><div style="${tableStyle}">${d.oneQuarterTask ? d.oneQuarterTask : ''}</div></td>
<td><div style="${tableStyle}">${d.four ? d.four.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.four ? d.four.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.four ? d.four.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.four ? d.four.task : ''}</div></td>
<td><div style="${tableStyle}">${d.fourCompletion ? d.fourCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.five ? d.five.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.five ? d.five.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.five ? d.five.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.five ? d.five.task : ''}</div></td>
<td><div style="${tableStyle}">${d.fiveCompletion ? d.fiveCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.six ? d.six.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.six ? d.six.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.six ? d.six.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.six ? d.six.task : ''}</div></td>
<td><div style="${tableStyle}">${d.sixCompletion ? d.sixCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.twoQuarterTaskNnu == 0 ? '' : d.twoQuarterTaskNnu}</div></td>
<td><div style="${tableStyle}">${d.twoQuarterTask ? d.twoQuarterTask : ''}</div></td>
<td><div style="${tableStyle}">${d.seven ? d.seven.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.seven ? d.seven.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.seven ? d.seven.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.seven ? d.seven.task : ''}</div></td>
<td><div style="${tableStyle}">${d.sevenCompletion ? d.sevenCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.eight ? d.eight.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.eight ? d.eight.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.eight ? d.eight.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.eight ? d.eight.task : ''}</div></td>
<td><div style="${tableStyle}">${d.eightCompletion ? d.eightCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.nine ? d.nine.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.nine ? d.nine.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.nine ? d.nine.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.nine ? d.nine.task : ''}</div></td>
<td><div style="${tableStyle}">${d.nineCompletion ? d.nineCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.threeQuarterTaskNnu == 0 ? '' : d.threeQuarterTaskNnu}</div></td>
<td><div style="${tableStyle}">${d.threeQuarterTask ? d.threeQuarterTask : ''}</div></td>
<td><div style="${tableStyle}">${d.ten ? d.ten.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.ten ? d.ten.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.ten ? d.ten.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.ten ? d.ten.task : ''}</div></td>
<td><div style="${tableStyle}">${d.tenCompletion ? d.tenCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.eleven ? d.eleven.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.eleven ? d.eleven.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.eleven ? d.eleven.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.eleven ? d.eleven.task : ''}</div></td>
<td><div style="${tableStyle}">${d.elevenCompletion ? d.elevenCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.twelve ? d.twelve.amount : ''}</div></td>
<td><div style="${tableStyle}">${d.twelve ? d.twelve.actualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.twelve ? d.twelve.assessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.twelve ? d.twelve.task : ''}</div></td>
<td><div style="${tableStyle}">${d.twelveCompletion ? d.twelveCompletion : ''}</div></td>
<td><div style="${tableStyle}">${d.fourQuarterTaskNnu == 0 ? '' : d.fourQuarterTaskNnu}</div></td>
<td><div style="${tableStyle}">${d.fourQuarterTask ? d.fourQuarterTask : ''}</div></td>
<td><div style="${tableStyle}">${d.allAmount ? d.allAmount : ''}</div></td>
<td><div style="${tableStyle}">${d.allactualPerformance ? d.allactualPerformance : ''}</div></td>
<td><div style="${tableStyle}">${d.allassessmentPerformance ? d.allassessmentPerformance : ''}</div></td>
<td><div style="${tableStyle}"></div></td>
<td><div style="${tableStyle}"></div></td>
</tr>
`
}

2
web/package.json

@ -32,6 +32,7 @@
"css-loader": "^3.5.0",
"express": "^4.17.1",
"file-loader": "^6.0.0",
"file-saver": "^2.0.5",
"html-webpack-plugin": "^4.5.0",
"immutable": "^4.0.0-rc.12",
"less": "^3.12.2",
@ -58,7 +59,6 @@
"echarts": "^5.3.3",
"echarts-for-react": "^3.0.2",
"ezuikit-js": "^0.6.1",
"file-saver": "^2.0.5",
"fs-attachment": "^1.0.0",
"fs-web-server-scaffold": "^1.0.6",
"js-cookie": "^3.0.1",

Loading…
Cancel
Save