|
@@ -494,6 +494,216 @@ public class MajorStatisticalStatementServiceImpl implements IMajorStatisticalSt
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 市场部效率查询
|
|
|
|
+ * @param dto 查询dto
|
|
|
|
+ * @return List<MajorMarketEfficiencyVO>
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<MajorMarketEfficiencyVO> getMajorsMarketDepEfficiencyVO(MajorStatisticalSelectDTO dto) {
|
|
|
|
+ List<MajorMarketEfficiencyVO> efficiencyVOList = majorStatisticalStatementMapper.getMajorsMarketDepEfficiencyVO(dto);
|
|
|
|
+
|
|
|
|
+ // 循环计算每个部门的同比、环比
|
|
|
|
+ for (MajorMarketEfficiencyVO efficiencyVO : efficiencyVOList) {
|
|
|
|
+
|
|
|
|
+ // 计算当期出单率
|
|
|
|
+ if (efficiencyVO.getCurrentPeriodReportVolume() > 0 && efficiencyVO.getCurrentPeriodOrderVolume() > 0) { // 当期出报告书大于0
|
|
|
|
+ efficiencyVO.setCurrentPeriodOrderHasReportVolume((efficiencyVO.getCurrentPeriodReportVolume().doubleValue() / efficiencyVO.getCurrentPeriodOrderVolume().doubleValue()));
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setCurrentPeriodOrderHasReportVolume(0.0);
|
|
|
|
+ }
|
|
|
|
+ // 计算同比出单率
|
|
|
|
+ if (efficiencyVO.getYoYReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume())) / (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume()) * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ // 计算环比出单率
|
|
|
|
+ if (efficiencyVO.getQoQReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume())) / (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume()) * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ efficiencyVO.setCurrentPeriodOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
|
|
|
|
+
|
|
|
|
+ // 同比计算(同比增长率 = (当期数据 - 去年同期数据) / 去年同期数据 * 100%) (保留两位小数)
|
|
|
|
+ if (efficiencyVO.getYoYOrderVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getYoYOrderVolume()) / efficiencyVO.getYoYOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYStatementVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getYoYStatementVolume()) / efficiencyVO.getYoYStatementVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getYoYReportVolume()) / efficiencyVO.getYoYReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYShouldAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setYoYShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getYoYShouldAmountSum()) / efficiencyVO.getYoYShouldAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYRealAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setYoYRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getYoYRealAmountSum()) / efficiencyVO.getYoYRealAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 环比计算(环比增长率 = (当期数据 - 前一期数据) / 前一期数据 * 100%) (保留两位小数)
|
|
|
|
+ if (efficiencyVO.getQoQOrderVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getQoQOrderVolume()) / efficiencyVO.getQoQOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQStatementVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getQoQStatementVolume()) / efficiencyVO.getQoQStatementVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getQoQReportVolume()) / efficiencyVO.getQoQReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQShouldAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setQoQShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getQoQShouldAmountSum()) / efficiencyVO.getQoQShouldAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQRealAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setQoQRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getQoQRealAmountSum()) / efficiencyVO.getQoQRealAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 计算死单率
|
|
|
|
+ * 死单率A = (下单数-出报告数) / (下单数)
|
|
|
|
+ * 死单率B = (下单数-出预评数) / (下单数)
|
|
|
|
+ * 死单率C = (下单数-收费项目数) / 下单数
|
|
|
|
+ */
|
|
|
|
+ if (efficiencyVO.getCurrentPeriodOrderVolume() > 0) {
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeA(NumberUtil.round((double) (efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getCurrentPeriodReportVolume()) / efficiencyVO.getCurrentPeriodOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeB(NumberUtil.round((double) (efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getCurrentPeriodStatementVolume()) / efficiencyVO.getCurrentPeriodOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeC(NumberUtil.round((double) (efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getCurrentPeriodRealAmountOrderCount()) / efficiencyVO.getCurrentPeriodOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeA(0.0);
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeB(0.0);
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeC(0.0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return efficiencyVOList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 客户经理效率查询
|
|
|
|
+ * @param dto 查询dto
|
|
|
|
+ * @return List<MajorMarketEfficiencyVO>
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<MajorMarketEfficiencyVO> getMajorMarketPerEfficiencyVO(MajorStatisticalSelectDTO dto) {
|
|
|
|
+ List<MajorMarketEfficiencyVO> efficiencyVOList = majorStatisticalStatementMapper.getMajorMarketPerEfficiencyVO(dto);
|
|
|
|
+
|
|
|
|
+ // 循环计算每个部门的同比、环比
|
|
|
|
+ for (MajorMarketEfficiencyVO efficiencyVO : efficiencyVOList) {
|
|
|
|
+
|
|
|
|
+ // 计算当期出单率
|
|
|
|
+ if (efficiencyVO.getCurrentPeriodReportVolume() > 0 && efficiencyVO.getCurrentPeriodOrderVolume() > 0) { // 当期出报告书大于0
|
|
|
|
+ efficiencyVO.setCurrentPeriodOrderHasReportVolume((efficiencyVO.getCurrentPeriodReportVolume().doubleValue() / efficiencyVO.getCurrentPeriodOrderVolume().doubleValue()));
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setCurrentPeriodOrderHasReportVolume(0.0);
|
|
|
|
+ }
|
|
|
|
+ // 计算同比出单率
|
|
|
|
+ if (efficiencyVO.getYoYReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume())) / (efficiencyVO.getYoYReportVolume() / efficiencyVO.getYoYOrderVolume()) * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ // 计算环比出单率
|
|
|
|
+ if (efficiencyVO.getQoQReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderHasReportVolume() - (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume())) / (efficiencyVO.getQoQReportVolume() / efficiencyVO.getQoQOrderVolume()) * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ efficiencyVO.setCurrentPeriodOrderHasReportVolume(NumberUtil.round(efficiencyVO.getCurrentPeriodOrderHasReportVolume() * 100, 2).doubleValue());
|
|
|
|
+
|
|
|
|
+ // 同比计算(同比增长率 = (当期数据 - 去年同期数据) / 去年同期数据 * 100%) (保留两位小数)
|
|
|
|
+ if (efficiencyVO.getYoYOrderVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getYoYOrderVolume()) / efficiencyVO.getYoYOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYStatementVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getYoYStatementVolume()) / efficiencyVO.getYoYStatementVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setYoYReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getYoYReportVolume()) / efficiencyVO.getYoYReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYShouldAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setYoYShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getYoYShouldAmountSum()) / efficiencyVO.getYoYShouldAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getYoYRealAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setYoYRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getYoYRealAmountSum()) / efficiencyVO.getYoYRealAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setYoYRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 环比计算(环比增长率 = (当期数据 - 前一期数据) / 前一期数据 * 100%) (保留两位小数)
|
|
|
|
+ if (efficiencyVO.getQoQOrderVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQOrderVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getQoQOrderVolume()) / efficiencyVO.getQoQOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQOrderVolume((double) (efficiencyVO.getCurrentPeriodOrderVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQStatementVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQStatementVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodStatementVolume() - efficiencyVO.getQoQStatementVolume()) / efficiencyVO.getQoQStatementVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQStatementVolume((double) (efficiencyVO.getCurrentPeriodStatementVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQReportVolume() > 0) {
|
|
|
|
+ efficiencyVO.setQoQReportVolume(NumberUtil.round((efficiencyVO.getCurrentPeriodReportVolume() - efficiencyVO.getQoQReportVolume()) / efficiencyVO.getQoQReportVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQReportVolume((double) (efficiencyVO.getCurrentPeriodReportVolume() * 100));
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQShouldAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setQoQShouldAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodShouldAmountSum() - efficiencyVO.getQoQShouldAmountSum()) / efficiencyVO.getQoQShouldAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQShouldAmountSum(efficiencyVO.getCurrentPeriodShouldAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+ if (efficiencyVO.getQoQRealAmountSum() > 0) {
|
|
|
|
+ efficiencyVO.setQoQRealAmountSum(NumberUtil.round((efficiencyVO.getCurrentPeriodRealAmountSum() - efficiencyVO.getQoQRealAmountSum()) / efficiencyVO.getQoQRealAmountSum() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setQoQRealAmountSum(efficiencyVO.getCurrentPeriodRealAmountSum() * 100);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 计算死单率
|
|
|
|
+ * 死单率A = (下单数-出报告数) / (下单数)
|
|
|
|
+ * 死单率B = (下单数-出预评数) / (下单数)
|
|
|
|
+ * 死单率C = (下单数-收费项目数) / 下单数
|
|
|
|
+ */
|
|
|
|
+ if (efficiencyVO.getCurrentPeriodOrderVolume() > 0) {
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeA(NumberUtil.round((double) (efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getCurrentPeriodReportVolume()) / efficiencyVO.getCurrentPeriodOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeB(NumberUtil.round((double) (efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getCurrentPeriodStatementVolume()) / efficiencyVO.getCurrentPeriodOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeC(NumberUtil.round((double) (efficiencyVO.getCurrentPeriodOrderVolume() - efficiencyVO.getCurrentPeriodRealAmountOrderCount()) / efficiencyVO.getCurrentPeriodOrderVolume() * 100, 2).doubleValue());
|
|
|
|
+ } else {
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeA(0.0);
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeB(0.0);
|
|
|
|
+ efficiencyVO.setDeadOrderVolumeC(0.0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return efficiencyVOList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 设置项目参与人
|
|
* 设置项目参与人
|
|
* @param majorLedgerVOList 台账集合
|
|
* @param majorLedgerVOList 台账集合
|
|
* @return List<MajorLedgerVO>
|
|
* @return List<MajorLedgerVO>
|