diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppPagerQuery.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppPagerQuery.java new file mode 100644 index 0000000000..2bae50ae1c --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppPagerQuery.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.reportcenter.api.dailyreport; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/12/7 + **/ +@Data +public class DailyReportAppPagerQuery implements Query { + private static final long serialVersionUID = 1122320253221250027L; +} diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppPagerVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppPagerVo.java new file mode 100644 index 0000000000..050f524f3a --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppPagerVo.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.reportcenter.api.dailyreport; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/12/7 + **/ +@Data +public class DailyReportAppPagerVo { + + @ApiModelProperty("日期") + private String date; + + //存销比 + @ApiModelProperty("存销比") + private String saleOfStockRatio; + //库存小计 + @ApiModelProperty("库存小计") + private int stock_subtotal; + @ApiModelProperty("排产小计") + private int pcOrder_subtotal; + @ApiModelProperty("本日销售订单") + private int saleOrder_subtotal_day; + @ApiModelProperty("本日销售") + private int sale_subtotal_day; + @ApiModelProperty("欠款出库金额") + private int arrears_carry_veh_amount; + @ApiModelProperty("金融未放款金额") + private int loan_not_amount; + @ApiModelProperty("本日买断") + private int buyout_day; + + private String useOrgSid; +} diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java index 490a324b85..864a335959 100644 --- a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportFeign.java @@ -33,12 +33,13 @@ public interface DailyReportFeign { /** * 获取动态列 + * * @param useOrgSid * @return */ @GetMapping("selectListByUseOrgSid") @ResponseBody - ResultBean> selectListByUseOrgSid(@RequestParam("useOrgSid")String useOrgSid); + ResultBean> selectListByUseOrgSid(@RequestParam("useOrgSid") String useOrgSid); /** * 按照生成日期、 @@ -73,9 +74,19 @@ public interface DailyReportFeign { @ResponseBody ResultBean> listPage_1(@RequestBody PagerQuery pagerQuery); - @ApiOperation("移动端事业部") + @ApiOperation("移动端事业部日报表") @PostMapping("list1") @ResponseBody ResultBean list1(@RequestBody ListQuery query); + @ApiOperation("移动端集团列表") + @PostMapping("pageList1") + @ResponseBody + ResultBean> pageList1(@RequestBody PagerQuery pagerQuery); + + @ApiOperation("集团日期初始化") + @GetMapping("getReport") + @ResponseBody + ResultBean getReport(@RequestParam("date")String date); + } diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/ReportVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/ReportVo.java new file mode 100644 index 0000000000..b9586f22e7 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/ReportVo.java @@ -0,0 +1,110 @@ +package com.yxt.anrui.reportcenter.api.dailyreport; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/12/7 + **/ +@Data +public class ReportVo implements Vo { + private static final long serialVersionUID = 7906138153156271043L; + + @ApiModelProperty("存销比") + private String saleOfStockRatio; + @ApiModelProperty("库存总计") + private int stock_total; + @ApiModelProperty("库存未定") + private int stock_unreserve; + @ApiModelProperty("库存已定") + private int stock_reserve; + @ApiModelProperty("库存小计") + private int stock_subtotal; + @ApiModelProperty("库存-买断未定") + private int stock_buyout_unreserve; + @ApiModelProperty("库存-买断已定") + private int stock_buyout_reserve; + @ApiModelProperty("库存-买断小计") + private int stock_buyout_subtotal; + @ApiModelProperty("排产-未定") + private int pcOrder_unreserve; + @ApiModelProperty("排产-已定") + private int pcOrder_reserve; + @ApiModelProperty("排产-小计") + private int pcOrder_subtotal; + @ApiModelProperty("简易订单-本日") + private int simpleOrder_day; + @ApiModelProperty("简易订单-本月") + private int simpleOrder_month; + @ApiModelProperty("销售订单-全款-本日") + private int saleOrder_full_day; + @ApiModelProperty("销售订单-贷款-本日") + private int saleOrder_loan_day; + @ApiModelProperty("销售订单-小计-本日") + private int saleOrder_subtotal_day; + @ApiModelProperty("销售订单-全款-本月") + private int saleOrder_full_month; + @ApiModelProperty("销售订单-贷款-本月") + private int saleOrder_loan_month; + @ApiModelProperty("销售订单-小计-本月") + private int saleOrder_subtotal_month; + @ApiModelProperty("销售订单-待交车累计") + private int saleOrder_waitVeh_total; + @ApiModelProperty("销售-全款-本日") + private int sale_full_day; + @ApiModelProperty("销售-贷款-本日") + private int sale_loan_day; + @ApiModelProperty("销售-小计-本日") + private int sale_subtotal_day; + @ApiModelProperty("销售-全款-本月") + private int sale_full_month; + @ApiModelProperty("销售-贷款-本月") + private int sale_loan_month; + @ApiModelProperty("销售-小计-本月") + private int sale_subtotal_month; + @ApiModelProperty("销售-全款-本年") + private int sale_full_year; + @ApiModelProperty("销售-贷款-本年") + private int sale_loan_year; + @ApiModelProperty("销售-小计-本年") + private int sale_subtotal_year; + @ApiModelProperty("本日交付贷款") + private String deliver_loan_day; + + @ApiModelProperty("本日交付全款") + private String deliver_full_day; + + @ApiModelProperty("本日交付小计") + private String deliver_subtotal_day; + @ApiModelProperty("本月交付贷款") + private String deliver_loan_month; + @ApiModelProperty("本月交付全款") + private String deliver_full_month; + @ApiModelProperty("本月交付小计") + private String deliver_subtotal_month; + @ApiModelProperty("全年交付贷款") + private String deliver_loan_year; + @ApiModelProperty("全年交付全款") + private String deliver_full_year; + @ApiModelProperty("全年交付小计") + private String deliver_subtotal_year; + @ApiModelProperty("厂家开票数-全年") + private int manufacturer_invoicing_year; + @ApiModelProperty("买断-本日") + private int buyout_day; + @ApiModelProperty("买断-本月") + private int buyout_month; + @ApiModelProperty("买断-本年") + private int buyout_year; + @ApiModelProperty("欠款出库-数量") + private int arrears_carry_veh_count; + @ApiModelProperty("欠款出库-金额") + private String arrears_carry_veh_amount; + @ApiModelProperty("金融未放款-数量") + private int loan_not_count; + @ApiModelProperty("金融未放款-金额") + private String loan_not_amount; +} diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java index 4735ab40e5..7cce5d2b08 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java @@ -21,7 +21,7 @@ import java.util.List; public interface DailyReportMapper extends BaseMapper { IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - IPage listPage3(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + IPage listPage3(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List selectByParameters(String useOrgSid); @@ -29,7 +29,7 @@ public interface DailyReportMapper extends BaseMapper { BaseModelConfig selectConfig(String configSid); - IPage listPage3_1(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + IPage listPage3_1(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); String select(@Param("useOrgSid") String useOrgSid, @Param("brandSid") String brandSid, @Param("vehModelSid") String vehModelSid, @Param("vehMConfigSid") String vehMConfigSid, @Param("createTime") String createTime); @@ -39,7 +39,11 @@ public interface DailyReportMapper extends BaseMapper { String select3(@Param("busOrgSid") String busOrgSid, @Param("brandSid") String brandSid, @Param("vehModelSid") String vehModelSid, @Param("vehMConfigSid") String vehMConfigSid, @Param("createTime") String createTime); - List selectByBrand(@Param("sybOrgSid") String sybOrgSid,@Param("queryTime")String queryTime); + List selectByBrand(@Param("sybOrgSid") String sybOrgSid, @Param("queryTime") String queryTime); List selectReport(@Param("join") List brandList, @Param("sybOrgSid") String sybOrgSid, @Param("queryTime") String queryTime); + + IPage pageList1(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + ReportVo getReport(@Param(Constants.WRAPPER) QueryWrapper qw); } diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml index 15619966d0..5cee5e68fe 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml @@ -119,7 +119,56 @@ + + + + \ No newline at end of file diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportRest.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportRest.java index be70edc42a..aff79acab6 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportRest.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportRest.java @@ -75,4 +75,16 @@ public class DailyReportRest implements DailyReportFeign { public ResultBean list1(ListQuery query) { return dailyReportService.list1(query); } + + @Override + public ResultBean> pageList1(PagerQuery pagerQuery) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = dailyReportService.pageList1(pagerQuery); + return rb.success().setData(pv); + } + + @Override + public ResultBean getReport(String date) { + return dailyReportService.getReport(date); + } } diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java index 1d1ae70182..95c1c7a6d3 100644 --- a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java @@ -309,7 +309,10 @@ public class DailyReportService extends MybatisBaseService stringList = Arrays.asList(query.getOrgPath().split("/")); - sybOrgSid = query.getOrgPath().substring(37, 73); + if(stringList.size()>=2){ + sybOrgSid = query.getOrgPath().substring(37, 73); + } + } if (StringUtils.isNotBlank(sybOrgSid)) { List rows1 = baseMapper.selectByBrand(sybOrgSid, query.getQueryTime()); @@ -324,56 +327,95 @@ public class DailyReportService extends MybatisBaseService row3 = dailyReportVoList.stream().map(v -> v.getEmissionStandardValue()).collect(Collectors.toList()); dailyReportAppVo.setRow3(row3); //存销比 + List row4 = dailyReportVoList.stream().map(v -> v.getSaleOfStockRatio()).collect(Collectors.toList()); + //合计 + BigDecimal row4All = row4.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row4.add(row4All.toString()); + dailyReportAppVo.setRow4(row4); //库存总计 List row5 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_total())).collect(Collectors.toList()); + BigDecimal row5All = row5.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row5.add(row5All.toString()); dailyReportAppVo.setRow5(row5); //库存未定 List row6 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_unreserve())).collect(Collectors.toList()); + BigDecimal row6All = row6.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row6.add(row6All.toString()); dailyReportAppVo.setRow6(row6); //库存-已定 List row7 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_reserve())).collect(Collectors.toList()); + BigDecimal row7All = row7.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row7.add(row7All.toString()); dailyReportAppVo.setRow7(row7); //库存-小计 List row8 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_subtotal())).collect(Collectors.toList()); + BigDecimal row8All = row8.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row8.add(row8All.toString()); dailyReportAppVo.setRow8(row8); //其中买断-未定 List row9 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_buyout_unreserve())).collect(Collectors.toList()); + BigDecimal row9All = row9.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row9.add(row9All.toString()); dailyReportAppVo.setRow9(row9); //其中买断-已定 List row10 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_buyout_reserve())).collect(Collectors.toList()); + BigDecimal row10All = row10.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row10.add(row10All.toString()); dailyReportAppVo.setRow10(row10); //其中买断-小计 List row11 = dailyReportVoList.stream().map(v -> String.valueOf(v.getStock_buyout_subtotal())).collect(Collectors.toList()); + BigDecimal row11All = row11.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row11.add(row11All.toString()); dailyReportAppVo.setRow11(row11); //排产-未定 List row12 = dailyReportVoList.stream().map(v -> String.valueOf(v.getPcOrder_unreserve())).collect(Collectors.toList()); + BigDecimal row12All = row12.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row12.add(row12All.toString()); dailyReportAppVo.setRow12(row12); //排产-已定 List row13 = dailyReportVoList.stream().map(v -> String.valueOf(v.getPcOrder_reserve())).collect(Collectors.toList()); + BigDecimal row13All = row13.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row13.add(row13All.toString()); dailyReportAppVo.setRow13(row13); //排产-小计 List row14 = dailyReportVoList.stream().map(v -> String.valueOf(v.getPcOrder_subtotal())).collect(Collectors.toList()); + BigDecimal row14All = row14.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row14.add(row14All.toString()); dailyReportAppVo.setRow14(row14); //订车-简易订单-本日 List row15 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSimpleOrder_day())).collect(Collectors.toList()); + BigDecimal row15All = row15.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row15.add(row15All.toString()); dailyReportAppVo.setRow15(row15); //订车-简易订单-本月 List row16 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSimpleOrder_month())).collect(Collectors.toList()); + BigDecimal row16All = row16.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row16.add(row16All.toString()); dailyReportAppVo.setRow16(row16); //订车-本日销售订单-贷款 List row17 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSaleOrder_loan_day())).collect(Collectors.toList()); + BigDecimal row17All = row17.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row17.add(row17All.toString()); dailyReportAppVo.setRow17(row17); //订车-本日销售订单-全款 List row18 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSaleOrder_full_day())).collect(Collectors.toList()); + BigDecimal row18All = row18.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row18.add(row18All.toString()); dailyReportAppVo.setRow18(row18); //订车-本日销售订单-小计 List row19 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSaleOrder_subtotal_day())).collect(Collectors.toList()); + BigDecimal row19All = row19.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row19.add(row19All.toString()); dailyReportAppVo.setRow19(row19); //订车-本月销售订单-贷款 List row20 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSaleOrder_loan_month())).collect(Collectors.toList()); + BigDecimal row20All = row20.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row20.add(row20All.toString()); dailyReportAppVo.setRow20(row20); //订车-本月销售订单-全款 List row21 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSaleOrder_full_month())).collect(Collectors.toList()); + BigDecimal row21All = row21.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); + row21.add(row21All.toString()); dailyReportAppVo.setRow21(row21); //订车-本月销售订单-小计 List row22 = dailyReportVoList.stream().map(v -> String.valueOf(v.getSaleOrder_subtotal_month())).collect(Collectors.toList()); @@ -449,4 +491,26 @@ public class DailyReportService extends MybatisBaseService pageList1(PagerQuery pagerQuery) { + DailyReportAppPagerQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + + } + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.pageList1(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean getReport(String date) { + ResultBean rb = ResultBean.fireFail(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(date)) { + qw.like("createTime", date); + } + ReportVo reportVo = baseMapper.getReport(qw); + return rb.success().setData(reportVo); + } } diff --git a/doc/databases/报表中心.sql b/doc/databases/报表中心.sql index c1859cc712..5e5f4e6db6 100644 --- a/doc/databases/报表中心.sql +++ b/doc/databases/报表中心.sql @@ -525,6 +525,23 @@ set deliver_subtotal_year = s.scount where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); +-- 存销比 +update daily_report r inner join ( + select ifnull(sum(dr.sale_subtotal_month), 0) as subtotal,dr.useOrgSid,dr.vehModelSid,dr.vehMConfigSid + from daily_report dr + where + (DATE_FORMAT(createTime, '%Y-%m') LIKE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') + OR DATE_FORMAT(createTime, '%Y-%m') LIKE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH), '%Y-%m') + OR DATE_FORMAT(createTime, '%Y-%m') LIKE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m') + ) group by dr.useOrgSid, dr.vehModelSid, dr.vehMConfigSid) s + on r.useOrgSid = s.useOrgSid + and r.vehModelSid = s.vehModelSid + and r.vehMConfigSid = s.vehMConfigSid +set saleOfStockRatio =if(s.subtotal= 0,stock_subtotal+pcOrder_subtotal,ROUND((stock_subtotal+pcOrder_subtotal)/ROUND(s.subtotal/3,2),2)) , + stock_total = (stock_subtotal+pcOrder_subtotal) +where DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); + +