Browse Source

返利汇总报表不分接口

master
dimengzhe 2 days ago
parent
commit
db8a8a03df
  1. 4
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java
  2. 30
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FgsVo.java
  3. 18
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FgsYearVo.java
  4. 7
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.java
  5. 181
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.xml
  6. 10
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java
  7. 55
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java

4
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java

@ -34,6 +34,10 @@ public interface FactoryDaliyReportFeign {
@ResponseBody
ResultBean<SybVo> sybBrands(@RequestParam("divisionSid") String divisionSid);
@GetMapping("/list3")
@ResponseBody
ResultBean<FgsVo> list3(@RequestParam("divisionSid") String divisionSid);
}

30
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FgsVo.java

@ -0,0 +1,30 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/29
**/
@Data
public class FgsVo {
private String title;
private List<YearAllVo> row1;
private List<FgsYearVo> row2;
private List<String> row3;
private List<String> row4;
private List<String> row5;
private List<String> row6;
private List<String> row7;
private List<String> row8;
private List<String> row9;
private List<String> row10;
private List<String> row11;
}

18
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FgsYearVo.java

@ -0,0 +1,18 @@
package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/5/29
**/
@Data
public class FgsYearVo {
private String name;
private String title;
private String linkSid;
}

7
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.java

@ -3,6 +3,7 @@ package com.yxt.anrui.reportcenter.biz.factoryDailyReport;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FgsYearVo;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.YearAllVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -28,4 +29,10 @@ public interface FactoryDaliyReportMapper {
List<YearAllVo> getBrandsNameList(String divisionSid);
List<FactoryDaliyReportVo> getSybList2(String divisionSid);
List<YearAllVo> getUseOrgNameList(String divisionSid);
List<FgsYearVo> getRow2(String divisionSid);
List<FactoryDaliyReportVo> getFgsList(String divisionSid);
}

181
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.xml

@ -430,4 +430,185 @@
ORDER BY a.brandSid desc, a.year DESC;
</select>
<select id="getUseOrgNameList" resultType="com.yxt.anrui.reportcenter.api.factoryDailyReport.YearAllVo">
SELECT
so.name as name,
so.sid AS linkSid,
COUNT(DISTINCT LEFT(date_info.date_str, 4)) AS colspan
FROM (
-- 单车返利表
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS second_level_org,
palceGenDate AS date_str
FROM anrui_scm.scm_veh_rebate
WHERE orgPath LIKE concat('%/',#{divisionSid},'/%')
AND palceGenDate IS NOT NULL
AND LEFT(palceGenDate, 4) != '' and LEFT(palceGenDate, 4) is not null
UNION ALL
-- 专项返利表
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS second_level_org,
palceGenDate AS date_str
FROM anrui_scm.scm_special_rebate
WHERE orgPath LIKE concat('%/',#{divisionSid},'/%')
AND palceGenDate IS NOT NULL
AND LEFT(palceGenDate, 4) != '' and LEFT(palceGenDate, 4) is not null
UNION ALL
-- 回款返利表
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS second_level_org,
collectionDate AS date_str
FROM anrui_scm.scm_collection_rebate
WHERE orgPath LIKE concat('%/',#{divisionSid},'/%')
AND collectionDate IS NOT NULL
AND LEFT(collectionDate, 4) != '' and LEFT(collectionDate, 4) is not null
) AS date_info
LEFT JOIN anrui_portal.sys_organization so
ON so.sid = date_info.second_level_org
GROUP BY date_info.second_level_org, so.name, so.sid
ORDER BY date_info.second_level_org DESC;
</select>
<select id="getRow2" resultType="com.yxt.anrui.reportcenter.api.factoryDailyReport.FgsYearVo">
SELECT
a.year name,
concat(so.name,'(',a.year,')') as title,
so.sid as linkSid
FROM (
SELECT
LEFT(palceGenDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS division_name
FROM anrui_scm.scm_veh_rebate
WHERE orgPath LIKE concat('%/',#{divisionSid},'/%')
GROUP BY LEFT(palceGenDate, 4), SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1)
UNION ALL
SELECT
LEFT(palceGenDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS division_name
FROM anrui_scm.scm_special_rebate
WHERE orgPath LIKE concat('%/',#{divisionSid},'/%')
GROUP BY LEFT(palceGenDate, 4), SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1)
UNION ALL
SELECT
LEFT(collectionDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS division_name
FROM anrui_scm.scm_collection_rebate
WHERE orgPath LIKE concat('%/',#{divisionSid},'/%')
GROUP BY LEFT(collectionDate, 4), SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1)
) a
LEFT JOIN anrui_portal.sys_organization so
ON so.sid = a.division_name
WHERE a.year IS NOT NULL AND a.year != ''
GROUP BY a.year, a.division_name
ORDER BY a.division_name desc, a.year DESC;
</select>
<select id="getFgsList" resultType="com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo">
SELECT
a.year,
a.division_name,
ROUND(SUM(a.estimateRebate), 2) AS estimate,
ROUND(SUM(a.uploadMoney), 2) AS upload,
ROUND(SUM(a.adjustmentMoney), 2) AS adjust,
ROUND(SUM(a.notUploadMoney), 2) AS notUploadMoney,
ROUND(SUM(a.fee), 2) AS fee,
ROUND(SUM(a.expense_payment), 2) AS expense_payment,
ROUND(SUM(a.pending_payment), 2) AS pending_payment,
ROUND(SUM(a.offset_payment), 2) AS offset_payment,
ROUND(SUM(a.remaining_payment), 2) AS remaining_payment,
ROUND(SUM(a.unuploaded_rebate), 2) AS unuploaded_rebate
FROM (
SELECT
LEFT(palceGenDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS division_name,
SUM(estimateRebate) estimateRebate,
SUM(uploadMoney) uploadMoney,
SUM(adjustmentMoney) adjustmentMoney,
SUM(
estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END, 0)
- IFNULL(uploadMoney, 0) - IFNULL(secondaryUploadMoney, 0)
) AS notUploadMoney,
SUM(
estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END, 0)
- (uploadMoney + secondaryUploadMoney)
) AS unuploaded_rebate,
SUM(onceTreatCost + secondTreatCost + tempTreatCost + expectTreatCost + expectSuppCost +
onceSuppCost + secondSuppCost + tempSuppCost) AS fee,
SUM(onceTreatCost + secondTreatCost + tempTreatCost) AS expense_payment,
SUM(expectTreatCost) AS pending_payment,
SUM(expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost) AS offset_payment,
SUM(
estimateRebate - (uploadMoney + secondaryUploadMoney)
- (onceTreatCost + secondTreatCost + tempTreatCost)
- expectTreatCost
- (expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost)
) AS remaining_payment
FROM anrui_scm.scm_veh_rebate
where SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 2), '/', -1) = #{divisionSid}
GROUP BY LEFT(palceGenDate, 4),SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1)
UNION ALL
SELECT
LEFT(palceGenDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS division_name,
SUM(estimateRebate) estimateRebate,
SUM(uploadMoney) uploadMoney,
SUM(adjustmentMoney) adjustmentMoney,
SUM(
estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END, 0)
- IFNULL(uploadMoney, 0) - IFNULL(secondaryUploadMoney, 0)
) AS notUploadMoney,
SUM(
estimateRebate +
IFNULL(CASE WHEN isAdjustment = '是' AND adjustmentState = 1 THEN adjustmentMoney ELSE 0 END, 0)
- (uploadMoney + secondaryUploadMoney)
) AS unuploaded_rebate,
SUM(onceTreatCost + secondTreatCost + tempTreatCost + expectTreatCost + expectSuppCost +
onceSuppCost + secondSuppCost + tempSuppCost) AS fee,
SUM(onceTreatCost + secondTreatCost + tempTreatCost) AS expense_payment,
SUM(expectTreatCost) AS pending_payment,
SUM(expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost) AS offset_payment,
SUM(
estimateRebate - (uploadMoney + secondaryUploadMoney)
- (onceTreatCost + secondTreatCost + tempTreatCost)
- expectTreatCost
- (expectSuppCost + onceSuppCost + secondSuppCost + tempSuppCost)
) AS remaining_payment
FROM anrui_scm.scm_special_rebate
where SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 2), '/', -1) = #{divisionSid}
GROUP BY LEFT(palceGenDate, 4), SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1)
UNION ALL
SELECT
LEFT(collectionDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1) AS division_name,
SUM(estimateRebate) estimateRebate,
SUM(uploadMoney) uploadMoney,
SUM(adjustmentMoney) adjustmentMoney,
SUM(estimateRebate + IFNULL(adjustmentMoney, 0) - IFNULL(uploadMoney, 0)) AS notUploadMoney,
SUM(estimateRebate + IFNULL(adjustmentMoney, 0) - uploadMoney) AS unuploaded_rebate,
0 AS fee,
0 AS expense_payment,
0 AS pending_payment,
0 AS offset_payment,
SUM(estimateRebate - uploadMoney) AS remaining_payment
FROM anrui_scm.scm_collection_rebate
where SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 2), '/', -1) = #{divisionSid}
GROUP BY LEFT(collectionDate, 4), SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 3), '/', -1)
) a
WHERE a.year IS NOT NULL AND a.year != ''
GROUP BY a.year,a.division_name
ORDER BY a.division_name desc, a.year DESC;
</select>
</mapper>

10
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java

@ -1,9 +1,6 @@
package com.yxt.anrui.reportcenter.biz.factoryDailyReport;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportFeign;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportQuery;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.SybVo;
import com.yxt.anrui.reportcenter.api.factoryDailyReport.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -50,5 +47,10 @@ public class FactoryDaliyReportRest implements FactoryDaliyReportFeign {
return factoryDaliyReportService.getSybBrands(divisionSid);
}
@Override
public ResultBean<FgsVo> list3(String divisionSid) {
return factoryDaliyReportService.list3(divisionSid);
}
}

55
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java

@ -273,4 +273,59 @@ public class FactoryDaliyReportService {
}
return rb.success().setData(sysVo);
}
public ResultBean<FgsVo> list3(String divisionSid) {
ResultBean<FgsVo> rb = ResultBean.fireFail();
FgsVo fgsVo = new FgsVo();
fgsVo.setTitle("分公司报表");
//先查询有哪些分公司以及分公司下的年份
List<YearAllVo> useOrgNameList = factoryDaliyReportMapper.getUseOrgNameList(divisionSid);
List<FgsYearVo> row2 = factoryDaliyReportMapper.getRow2(divisionSid);
List<FactoryDaliyReportVo> factoryDaliyReportVoList = factoryDaliyReportMapper.getFgsList(divisionSid);
factoryDaliyReportVoList.removeAll(Collections.singleton(null));
if(!factoryDaliyReportVoList.isEmpty()){
for (int i = 0; i < factoryDaliyReportVoList.size(); i++) {
FactoryDaliyReportVo factoryDaliyReportVo = factoryDaliyReportVoList.get(i);
factoryDaliyReportVo.setEstimate(DecimalUtil.format(factoryDaliyReportVo.getEstimate()));
factoryDaliyReportVo.setUpload(DecimalUtil.format(factoryDaliyReportVo.getUpload()));
factoryDaliyReportVo.setAdjust(DecimalUtil.format(factoryDaliyReportVo.getAdjust()));
factoryDaliyReportVo.setNotUploadMoney(DecimalUtil.format(factoryDaliyReportVo.getNotUploadMoney()));
factoryDaliyReportVo.setUnuploaded_rebate(DecimalUtil.format(factoryDaliyReportVo.getUnuploaded_rebate()));
factoryDaliyReportVo.setFee(DecimalUtil.format(factoryDaliyReportVo.getFee()));
factoryDaliyReportVo.setExpense_payment(DecimalUtil.format(factoryDaliyReportVo.getExpense_payment()));
factoryDaliyReportVo.setPending_payment(DecimalUtil.format(factoryDaliyReportVo.getPending_payment()));
factoryDaliyReportVo.setOffset_payment(DecimalUtil.format(factoryDaliyReportVo.getOffset_payment()));
}
//预提
List<String> row3 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getEstimate).collect(Collectors.toList());
//上传
List<String> row4 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getUpload).collect(Collectors.toList());
//调整
List<String> row5 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getAdjust).collect(Collectors.toList());
//未上传
List<String> row6 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getNotUploadMoney).collect(Collectors.toList());
//其中返利
List<String> row7 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getUnuploaded_rebate).collect(Collectors.toList());
//其中费用
List<String> row8 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getFee).collect(Collectors.toList());
//支出
List<String> row9 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getExpense_payment).collect(Collectors.toList());
//待支付
List<String> row10 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getPending_payment).collect(Collectors.toList());
//抵顶
List<String> row11 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getOffset_payment).collect(Collectors.toList());
fgsVo.setRow1(useOrgNameList);
fgsVo.setRow2(row2);
fgsVo.setRow3(row3);
fgsVo.setRow4(row4);
fgsVo.setRow5(row5);
fgsVo.setRow6(row6);
fgsVo.setRow7(row7);
fgsVo.setRow8(row8);
fgsVo.setRow9(row9);
fgsVo.setRow10(row10);
fgsVo.setRow11(row11);
}
return rb.success().setData(fgsVo);
}
}

Loading…
Cancel
Save