Browse Source

返利汇总报表事业部品牌列表

zhanglei
dimengzhe 3 days ago
parent
commit
c8f26cdf71
  1. 9
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/factoryDailyReport/FactoryDaliyReportFeign.java
  2. 4
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.java
  3. 151
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportMapper.xml
  4. 5
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportRest.java
  5. 59
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/factoryDailyReport/FactoryDaliyReportService.java

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

@ -3,10 +3,7 @@ package com.yxt.anrui.reportcenter.api.factoryDailyReport;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@ -33,6 +30,10 @@ public interface FactoryDaliyReportFeign {
@ResponseBody
ResultBean<SybVo> getSybList();
@GetMapping("/sybBrands")
@ResponseBody
ResultBean<SybVo> sybBrands(@RequestParam("divisionSid") String divisionSid);
}

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

@ -24,4 +24,8 @@ public interface FactoryDaliyReportMapper {
List<YearAllVo> getSybNameList();
List<FactoryDaliyReportVo> getSybList();
List<YearAllVo> getBrandsNameList(String divisionSid);
List<FactoryDaliyReportVo> getSybList2(String divisionSid);
}

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

@ -279,4 +279,155 @@
ORDER BY a.division_name desc, a.year DESC;
</select>
<select id="getBrandsNameList" resultType="com.yxt.anrui.reportcenter.api.factoryDailyReport.YearAllVo">
SELECT
date_info.brandName as name,
date_info.brandSid AS linkSid,
COUNT(DISTINCT LEFT(date_info.date_str, 4)) AS colspan
FROM (
-- 单车返利表
SELECT
brandSid,brandName,
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
brandSid,brandName,
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
brandSid,brandName,
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
GROUP BY
date_info.brandSid
ORDER BY
date_info.brandSid desc;
</select>
<select id="getSybList2" resultType="com.yxt.anrui.reportcenter.api.factoryDailyReport.FactoryDaliyReportVo">
SELECT
a.year,
a.division_name,
a.brandSid,
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
brandSid,
LEFT(palceGenDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 2), '/', -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),brandSid
UNION ALL
SELECT
brandSid,
LEFT(palceGenDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 2), '/', -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), brandSid
UNION ALL
SELECT
brandSid,
LEFT(collectionDate, 4) AS year,
SUBSTRING_INDEX(SUBSTRING_INDEX(orgPath, '/', 2), '/', -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), brandSid
) a
WHERE a.year IS NOT NULL AND a.year != ''
GROUP BY a.year, a.brandSid
ORDER BY a.brandSid desc, a.year DESC;
</select>
</mapper>

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

@ -45,5 +45,10 @@ public class FactoryDaliyReportRest implements FactoryDaliyReportFeign {
return factoryDaliyReportService.getSybList();
}
@Override
public ResultBean<SybVo> sybBrands(String divisionSid) {
return factoryDaliyReportService.getSybBrands(divisionSid);
}
}

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

@ -214,4 +214,63 @@ public class FactoryDaliyReportService {
}
return rb.success().setData(sysVo);
}
public ResultBean<SybVo> getSybBrands(String divisionSid) {
ResultBean<SybVo> rb = ResultBean.fireFail();
SybVo sysVo = new SybVo();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(divisionSid).getData();
if(sysOrganizationVo != null){
sysVo.setTitle(sysOrganizationVo.getName());
}
//先查询有哪些事业部以及事业部下的年份
List<YearAllVo> brandNameList = factoryDaliyReportMapper.getBrandsNameList(divisionSid);
List<FactoryDaliyReportVo> factoryDaliyReportVoList = factoryDaliyReportMapper.getSybList2(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> row2 = factoryDaliyReportVoList.stream().map(FactoryDaliyReportVo::getYear).collect(Collectors.toList());
//预提
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());
sysVo.setRow1(brandNameList);
sysVo.setRow2(row2);
sysVo.setRow3(row3);
sysVo.setRow4(row4);
sysVo.setRow5(row5);
sysVo.setRow6(row6);
sysVo.setRow7(row7);
sysVo.setRow8(row8);
sysVo.setRow9(row9);
sysVo.setRow10(row10);
sysVo.setRow11(row11);
}
return rb.success().setData(sysVo);
}
}

Loading…
Cancel
Save