From 5c4c942b5808c07ece80440e8964b1818fa72216 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Fri, 16 May 2025 10:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=A6=E8=BE=86=E5=88=A9?= =?UTF-8?q?=E6=B6=A6=E6=8A=A5=E8=A1=A8=E7=9A=84=E8=BF=94=E5=88=A9=E6=98=8E?= =?UTF-8?q?=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusDeliveredApplyService.java | 14 ++++++-- .../api/carsSoldProfit/CarsSoldProfitVo.java | 6 ++-- .../carsSoldProfit/CarsSoldProfitMapper.xml | 3 +- .../carsSoldProfit/CarsSoldProfitService.java | 36 ++++++++++++++++++- .../ScmVehRebateCarsSoldProfitVo.java | 33 +++++++++++++++++ .../api/scmvehrebate/ScmVehRebateFeign.java | 5 +++ .../biz/scmvehrebate/ScmVehRebateMapper.java | 2 ++ .../biz/scmvehrebate/ScmVehRebateMapper.xml | 14 ++++++++ .../biz/scmvehrebate/ScmVehRebateRest.java | 5 +++ .../biz/scmvehrebate/ScmVehRebateService.java | 27 ++++++++++++++ 10 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateCarsSoldProfitVo.java diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java index 0bdcbb36bb..895b32c4bb 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java @@ -1441,14 +1441,22 @@ public class BusDeliveredApplyService extends MybatisBaseService diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java index ec622f2801..7bf1916d2b 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/carsSoldProfit/CarsSoldProfitService.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.reportcenter.api.carsSoldProfit.*; +import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateCarsSoldProfitVo; +import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateFeign; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.StringUtils; @@ -16,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; @@ -30,6 +33,8 @@ public class CarsSoldProfitService extends MybatisBaseService dtoList) { ResultBean rb = ResultBean.fireFail(); @@ -138,6 +143,35 @@ public class CarsSoldProfitService extends MybatisBaseService rebates(String sid) { - return null; + ResultBean rb = ResultBean.fireFail(); + CarsSoldProfitRebateAllVo carsSoldProfitRebateAllVo = new CarsSoldProfitRebateAllVo(); + List list = new ArrayList<>(); + String vinSid = sid; + BigDecimal expectedRebateTotalAll = BigDecimal.ZERO; + BigDecimal adjustedRebateTotalAll = BigDecimal.ZERO; + List scmList = scmVehRebateFeign.getDetailByVinSid(vinSid).getData(); + if (!scmList.isEmpty()) { + for (int i = 0; i < scmList.size(); i++) { + ScmVehRebateCarsSoldProfitVo scmVehRebateCarsSoldProfitVo = scmList.get(i); + CarsSoldProfitRebateDetailsVo carsSoldProfitRebateDetailsVo = new CarsSoldProfitRebateDetailsVo(); + carsSoldProfitRebateDetailsVo.setPolicy(scmVehRebateCarsSoldProfitVo.getPolicy()); + carsSoldProfitRebateDetailsVo.setRebateType(scmVehRebateCarsSoldProfitVo.getRebateTypeValue()); + carsSoldProfitRebateDetailsVo.setYearAndMonth(scmVehRebateCarsSoldProfitVo.getPalceGenDate()); + carsSoldProfitRebateDetailsVo.setRebateName(scmVehRebateCarsSoldProfitVo.getRebateName()); + carsSoldProfitRebateDetailsVo.setExpectedRebate(scmVehRebateCarsSoldProfitVo.getExpectedRebate()); + carsSoldProfitRebateDetailsVo.setRebatesAdjust(scmVehRebateCarsSoldProfitVo.getAdjustmentMoney()); + list.add(carsSoldProfitRebateDetailsVo); + if (StringUtils.isNotBlank(carsSoldProfitRebateDetailsVo.getExpectedRebate())) { + expectedRebateTotalAll.add(new BigDecimal(carsSoldProfitRebateDetailsVo.getExpectedRebate())); + } + if (StringUtils.isNotBlank(carsSoldProfitRebateDetailsVo.getRebatesAdjust())) { + adjustedRebateTotalAll.add(new BigDecimal(carsSoldProfitRebateDetailsVo.getRebatesAdjust())); + } + } + } + carsSoldProfitRebateAllVo.setList(list); + carsSoldProfitRebateAllVo.setAdjustedRebateTotal(adjustedRebateTotalAll.toString()); + carsSoldProfitRebateAllVo.setExpectedRebateTotal(adjustedRebateTotalAll.toString()); + return rb.success().setData(carsSoldProfitRebateAllVo); } } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateCarsSoldProfitVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateCarsSoldProfitVo.java new file mode 100644 index 0000000000..efc216583b --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateCarsSoldProfitVo.java @@ -0,0 +1,33 @@ +package com.yxt.anrui.scm.api.scmvehrebate; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/5/16 + **/ +@Data +public class ScmVehRebateCarsSoldProfitVo implements Vo { + private static final long serialVersionUID = -5925794987523752087L; + + @ApiModelProperty("政策方") + private String policy; + @ApiModelProperty("所属年月") + private String palceGenDate; + @ApiModelProperty("返利类型") + private String rebateTypeValue; + @ApiModelProperty("返利名称") + private String rebateName; + @ApiModelProperty("预提返利:预提返利-预提费用的结果(待支付+抵顶)") + private String expectedRebate; + @ApiModelProperty("预计待支付费用") + private String expectTreatCost; + @ApiModelProperty("预计抵顶费用") + private String expectSuppCost; + @ApiModelProperty("返利调整") + private String adjustmentMoney; + +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java index 7488de1e3f..fa9cd383bd 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java @@ -66,6 +66,11 @@ public interface ScmVehRebateFeign { @ResponseBody public ResultBean> getDetail(@PathVariable("sid") String sid); + @ApiOperation("车辆利润报表查询返利明细") + @GetMapping("/getDetailByVinSid") + @ResponseBody + ResultBean> getDetailByVinSid(@RequestParam("vinSid")String vinSid); + @ApiOperation("返利类型统计") @PostMapping("/typeStatistics") @ResponseBody diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java index 7cb77f32dc..36981f480d 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java @@ -84,4 +84,6 @@ public interface ScmVehRebateMapper extends BaseMapper { List getDetail(String vehSid); List getTypeDetail(@Param("sids") List sids); + + List getDetailByVinSid(String vinSid); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml index 13373f97e2..f713e55dea 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml @@ -415,4 +415,18 @@ + + diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java index 7eefa1aa8f..f6e71dc107 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java @@ -89,6 +89,11 @@ public class ScmVehRebateRest implements ScmVehRebateFeign { return rb.success().setData(scmVehRebateStatMxVos); } + @Override + public ResultBean> getDetailByVinSid(String vinSid) { + return scmVehRebateService.getDetailByVinSid(vinSid); + } + @Override public ResultBean> typeStatistics(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java index 688e3b2719..6770f93b91 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java @@ -2718,4 +2718,31 @@ public class ScmVehRebateService extends MybatisBaseService> getDetailByVinSid(String vinSid) { + ResultBean> rb = ResultBean.fireFail(); + List list = baseMapper.getDetailByVinSid(vinSid); + list.removeAll(Collections.singleton(null)); + if(!list.isEmpty()){ + for (int i = 0; i < list.size(); i++) { + ScmVehRebateCarsSoldProfitVo scmVehRebateCarsSoldProfitVo = list.get(i); + String expectedRebate = scmVehRebateCarsSoldProfitVo.getExpectedRebate(); + BigDecimal expectAll = BigDecimal.ZERO; + String expectTreatCost = scmVehRebateCarsSoldProfitVo.getExpectTreatCost(); + String expectSuppCost = scmVehRebateCarsSoldProfitVo.getExpectSuppCost(); + if(StringUtils.isNotBlank(expectedRebate)){ + expectAll = expectAll.add(new BigDecimal(expectedRebate)); + } + if(StringUtils.isNotBlank(expectTreatCost)){ + expectAll = expectAll.subtract(new BigDecimal(expectTreatCost)); + } + if(StringUtils.isNotBlank(expectSuppCost)){ + expectAll = expectAll.subtract(new BigDecimal(expectSuppCost)); + } + scmVehRebateCarsSoldProfitVo.setExpectedRebate(expectAll.toString()); + + } + } + return rb.success().setData(list); + } } \ No newline at end of file