xusonglin пре 5 година
родитељ
комит
7e7f0a898b

+ 18 - 0
src/main/java/com/jkcredit/invoice/hub/controller/web/record/BillRecordResource.java

@@ -4,13 +4,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jkcredit.invoice.hub.controller.base.WebResource;
 import com.jkcredit.invoice.hub.controller.web.record.fb.BillRecordFB;
+import com.jkcredit.invoice.hub.controller.web.record.fb.ConsumptionStatisticsFB;
 import com.jkcredit.invoice.hub.controller.web.record.fb.InvoiceRecordFB;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResultDto;
 import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.BillRecordDto;
+import com.jkcredit.invoice.hub.model.dto.record.ConsumptionStatisticsDto;
 import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.InvoiceRecordDto;
 import com.jkcredit.invoice.hub.model.vo.record.BillRecordVo;
 import com.jkcredit.invoice.hub.model.vo.record.InvoiceRecordVo;
 import com.jkcredit.invoice.hub.service.carFreeCarrierBillStart.CarFreeCarrierBillStartService;
+import com.jkcredit.invoice.hub.service.consumptionStatistics.ConsumptionStatisticsService;
 import com.jkcredit.invoice.hub.service.searchInvoiceResult.SearchInvoiceResultService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.web.data.ResponseData;
@@ -34,6 +37,9 @@ public class BillRecordResource extends WebResource {
     CarFreeCarrierBillStartService startService;
     @Autowired
     SearchInvoiceResultService resultService;
+    @Autowired
+    ConsumptionStatisticsService consumptionStatisticsService;
+
     @GetMapping("/billRecord")
     public ResponseData billRecord(Page page, BillRecordFB fb) {
         try {
@@ -59,4 +65,16 @@ public class BillRecordResource extends WebResource {
             return ResponseData.failed("获取发票详情列表失败");
         }
     }
+
+    @GetMapping("/consumptionStatistics")
+    public ResponseData consumptionStatistics(Page page, ConsumptionStatisticsFB fb) {
+        try {
+            ConsumptionStatisticsDto dto = new ConsumptionStatisticsDto();
+            BeanUtil.copyProperties(dto, fb);
+            return ResponseData.success(consumptionStatisticsService.getConsumptionStatistics(page, dto));
+        } catch (ServiceException e) {
+            log.error("获取消费统计列表失败,失败原因:{}", e.getMessage());
+            return ResponseData.failed("获取消费统计列表失败");
+        }
+    }
 }

+ 18 - 0
src/main/java/com/jkcredit/invoice/hub/controller/web/record/fb/ConsumptionStatisticsFB.java

@@ -0,0 +1,18 @@
+package com.jkcredit.invoice.hub.controller.web.record.fb;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:10
+ * @version: V1.0
+ **/
+@Data
+public class ConsumptionStatisticsFB implements Serializable {
+    private static final long serialVersionUID = 2159843213731537245L;
+    private String appKey;
+    private String company;
+}

+ 18 - 0
src/main/java/com/jkcredit/invoice/hub/mapper/ConsumptionStatisticsMapper.java

@@ -0,0 +1,18 @@
+package com.jkcredit.invoice.hub.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jkcredit.invoice.hub.model.dto.record.ConsumptionStatisticsDto;
+import com.jkcredit.invoice.hub.model.po.record.ConsumptionStatisticsPo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:19
+ * @version: V1.0
+ **/
+public interface ConsumptionStatisticsMapper extends BaseMapper {
+    IPage<ConsumptionStatisticsPo> getConsumptionStatistics(Page page, @Param("query") ConsumptionStatisticsDto dto);
+}

+ 18 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/record/ConsumptionStatisticsDto.java

@@ -0,0 +1,18 @@
+package com.jkcredit.invoice.hub.model.dto.record;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:11
+ * @version: V1.0
+ **/
+@Data
+public class ConsumptionStatisticsDto implements Serializable {
+    private static final long serialVersionUID = -74602641734829902L;
+    private String appKey;
+    private String company;
+}

+ 32 - 0
src/main/java/com/jkcredit/invoice/hub/model/po/record/ConsumptionStatisticsPo.java

@@ -0,0 +1,32 @@
+package com.jkcredit.invoice.hub.model.po.record;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:12
+ * @version: V1.0
+ **/
+@Data
+public class ConsumptionStatisticsPo implements Serializable {
+    private static final long serialVersionUID = -3598119418285864838L;
+    // appKey
+    private String appKey;
+    // 公司名称
+    private String company;
+    // 运单开始总计
+    private String startAmount;
+    // 运单结束总计
+    private String endAmount;
+    // 发票条数总计
+    private String invoiceAmount;
+    // 计费条数总计
+    private String chargeAmount;
+    // 总金额
+    private String totalAmount;
+    // 抵税金额
+    private String totalTaxAmount;
+}

+ 33 - 0
src/main/java/com/jkcredit/invoice/hub/model/vo/record/ConsumptionStatisticsVo.java

@@ -0,0 +1,33 @@
+package com.jkcredit.invoice.hub.model.vo.record;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:17
+ * @version: V1.0
+ **/
+@Data
+public class ConsumptionStatisticsVo implements Serializable {
+
+    private static final long serialVersionUID = -5372707176653263308L;
+    // appKey
+    private String appKey;
+    // 公司名称
+    private String company;
+    // 运单开始总计
+    private String startAmount;
+    // 运单结束总计
+    private String endAmount;
+    // 发票条数总计
+    private String invoiceAmount;
+    // 计费条数总计
+    private String chargeAmount;
+    // 总金额
+    private String totalAmount;
+    // 抵税金额
+    private String totalTaxAmount;
+}

+ 16 - 0
src/main/java/com/jkcredit/invoice/hub/service/consumptionStatistics/ConsumptionStatisticsService.java

@@ -0,0 +1,16 @@
+package com.jkcredit.invoice.hub.service.consumptionStatistics;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jkcredit.invoice.hub.model.dto.record.ConsumptionStatisticsDto;
+import com.jkcredit.invoice.hub.model.vo.record.ConsumptionStatisticsVo;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:28
+ * @version: V1.0
+ **/
+public interface ConsumptionStatisticsService {
+    IPage<ConsumptionStatisticsVo> getConsumptionStatistics(Page page, ConsumptionStatisticsDto dto);
+}

+ 52 - 0
src/main/java/com/jkcredit/invoice/hub/service/consumptionStatistics/ConsumptionStatisticsServiceImpl.java

@@ -0,0 +1,52 @@
+package com.jkcredit.invoice.hub.service.consumptionStatistics;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jkcredit.invoice.hub.mapper.ConsumptionStatisticsMapper;
+import com.jkcredit.invoice.hub.model.dto.record.ConsumptionStatisticsDto;
+import com.jkcredit.invoice.hub.model.po.record.ConsumptionStatisticsPo;
+import com.jkcredit.invoice.hub.model.vo.record.ConsumptionStatisticsVo;
+import com.jkcredit.invoice.hub.service.base.BaseService;
+import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
+import com.jkcredit.invoice.hub.util.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 21:28
+ * @version: V1.0
+ **/
+@Slf4j
+@Service
+public class ConsumptionStatisticsServiceImpl extends BaseService implements ConsumptionStatisticsService {
+    @Resource
+    ConsumptionStatisticsMapper mapper;
+
+    @Override
+    public IPage<ConsumptionStatisticsVo> getConsumptionStatistics(Page page, ConsumptionStatisticsDto dto) {
+        try {
+            IPage<ConsumptionStatisticsPo> poIPage = mapper.getConsumptionStatistics(page, dto);
+            return poIPage.convert(this::convert);
+        } catch (Exception e) {
+            log.error("获取消费统计列表失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("获取消费统计列表失败");
+        }
+    }
+
+    private ConsumptionStatisticsVo convert(ConsumptionStatisticsPo po) {
+        ConsumptionStatisticsVo vo = new ConsumptionStatisticsVo();
+        BeanUtil.copyProperties(vo, po);
+        // 将数据库存储的decimal转double
+//        if (po.getPrice() != null) {
+//            vo.setPrice(CommonUtil.parseDouble(po.getPrice()));
+//        }
+//        if (po.getBalance() != null) {
+//            vo.setBalance(CommonUtil.parseDouble(po.getBalance()));
+//        }
+        return vo;
+    }
+}

+ 45 - 0
src/main/resources/mapper/ConsumptionStatisticsMapper.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jkcredit.invoice.hub.mapper.ConsumptionStatisticsMapper">
+
+    <select id="getConsumptionStatistics" resultType="com.jkcredit.invoice.hub.model.po.record.ConsumptionStatisticsPo">
+        select
+        user.app_key,
+        user.company,
+        start.startAmount,
+        end.endAmount,
+        invoiceResult.invoiceAmount,
+        invoiceResult.totalAmount,
+        invoiceResult.totalTaxAmount,
+        charge.chargeAmount
+        from h_user user
+        left join(select start.user_id, count(*) startAmount
+        from h_car_free_carrier_bill_start start
+        where start.activated = 1
+        group by start.user_id) start on user.id = start.user_id
+        left join (select end.user_id, count(*) endAmount
+        from h_car_free_carrier_bill_end end
+        where end.activated = 1
+        group by end.user_id) end on user.id = end.user_id
+        left join (select result.user_id,
+        count(*) as invoiceAmount,
+        sum(total_amount) as totalAmount,
+        sum(total_tax_amount) as totalTaxAmount
+        from h_search_invoice_result result
+        where result.activated = 1
+        group by result.user_id) invoiceResult
+        on user.id = invoiceResult.user_id
+        left join (select charge.user_id, count(*) chargeAmount
+        from h_real_charge charge
+        group by charge.user_id) charge on user.id = charge.user_id
+        <where>
+            user.activated = 1 and user.user_type = 2
+            <if test="query.appKey != null and query.appKey != ''">
+                and user.app_key = #{query.appKey}
+            </if>
+            <if test="query.company != null and query.company != ''">
+                and user.company like CONCAT('%',#{query.company},'%')
+            </if>
+        </where>
+    </select>
+</mapper>

+ 1 - 1
src/main/resources/mapper/RechargeMapper.xml

@@ -27,7 +27,7 @@
         left join h_role role on userRolePermission.role_id = role.id
         <where>
             <if test="query.appKey != null and query.appKey != ''">
-                and user.app_key = ${query.appKey}
+                and user.app_key = #{query.appKey}
             </if>
             <if test="query.company != null and query.company != ''">
                 and user.company like CONCAT('%',#{query.company},'%')