Browse Source

统计接口

xusonglin 5 years ago
parent
commit
c6cccf723f

+ 22 - 4
src/main/java/com/jkcredit/invoice/hub/controller/web/record/BillRecordResource.java

@@ -4,9 +4,14 @@ 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.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.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.searchInvoiceResult.SearchInvoiceResultService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.web.data.ResponseData;
 import com.jkcredit.invoice.hub.util.BeanUtil;
@@ -27,18 +32,31 @@ import org.springframework.web.bind.annotation.RestController;
 public class BillRecordResource extends WebResource {
     @Autowired
     CarFreeCarrierBillStartService startService;
-
+    @Autowired
+    SearchInvoiceResultService resultService;
     @GetMapping("/billRecord")
-    public ResponseData billRecord(Page page, @RequestBody BillRecordFB fb) {
+    public ResponseData billRecord(Page page, BillRecordFB fb) {
         try {
             BillRecordDto dto = new BillRecordDto();
             BeanUtil.copyProperties(dto, fb);
             IPage<BillRecordVo> billRecordVoList = startService.getBillRecord(page, dto);
-            ResponseData success = ResponseData.success(billRecordVoList);
-            return success;
+            return ResponseData.success(billRecordVoList);
         } catch (ServiceException e) {
             log.error("获取运单详情列表失败, 失败原因:{}", e.getMessage());
             return ResponseData.failed("获取运单详情列表失败");
         }
     }
+
+    @GetMapping("/invoiceRecord")
+    public ResponseData invoiceRecord(Page page, InvoiceRecordFB fb) {
+        try {
+            InvoiceRecordDto dto = new InvoiceRecordDto();
+            BeanUtil.copyProperties(dto, fb);
+            IPage<InvoiceRecordVo> invoiceRecordVoIPage = resultService.getInvoiceRecords(page, dto);
+            return ResponseData.success(invoiceRecordVoIPage);
+        } catch (ServiceException e) {
+            log.error("获取发票详情列表失败, 失败原因:{}", e.getMessage());
+            return ResponseData.failed("获取发票详情列表失败");
+        }
+    }
 }

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

@@ -0,0 +1,27 @@
+package com.jkcredit.invoice.hub.controller.web.record.fb;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 17:27
+ * @version: V1.0
+ **/
+@Data
+public class InvoiceRecordFB implements Serializable {
+
+    private static final long serialVersionUID = -2367756774873339025L;
+    // 运单编号
+    private String waybillNum;
+    // 车牌号
+    private String plateNum;
+    // 交易id
+    private String transactionId;
+    // appKey
+    private String appKey;
+}

+ 8 - 0
src/main/java/com/jkcredit/invoice/hub/mapper/SearchInvoiceResultMapper.java

@@ -1,7 +1,13 @@
 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.apiCarFree.InvoiceResultDto;
+import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.InvoiceRecordDto;
+import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.InvoiceRecordPo;
 import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.SearchInvoiceResultPo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -13,4 +19,6 @@ import java.util.List;
  **/
 public interface SearchInvoiceResultMapper extends BaseMapper<SearchInvoiceResultPo> {
     List<SearchInvoiceResultPo> getSearchInvoiceResult(String num, Long userId);
+
+    IPage<InvoiceRecordPo> getInvoiceRecords(Page page, @Param("query") InvoiceRecordDto dto);
 }

+ 24 - 0
src/main/java/com/jkcredit/invoice/hub/model/dto/searchInvoiceResult/InvoiceRecordDto.java

@@ -0,0 +1,24 @@
+package com.jkcredit.invoice.hub.model.dto.searchInvoiceResult;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 17:46
+ * @version: V1.0
+ **/
+@Data
+public class InvoiceRecordDto implements Serializable {
+    private static final long serialVersionUID = 6169047730103377072L;
+    // 运单编号
+    private String waybillNum;
+    // 车牌号
+    private String plateNum;
+    // 交易id
+    private String transactionId;
+    // appKey
+    private String appKey;
+}

+ 38 - 0
src/main/java/com/jkcredit/invoice/hub/model/po/searchInvoiceResult/InvoiceRecordPo.java

@@ -0,0 +1,38 @@
+package com.jkcredit.invoice.hub.model.po.searchInvoiceResult;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 17:17
+ * @version: V1.0
+ **/
+@Data
+public class InvoiceRecordPo implements Serializable {
+    private static final long serialVersionUID = -8574202842501743075L;
+    // 运单编号
+    private String waybillNum;
+    // 车牌号
+    private String plateNum;
+    // 交易id
+    private String transactionId;
+    // 交易金额
+    private BigDecimal fee;
+    // 价税合计
+    private Long totalAmount;
+    // 税率
+    private String taxRate;
+    // 金额
+    private BigDecimal amount;
+    // 查询时间
+    private Date createTime;
+    // appKey
+    private String appKey;
+    // 公司名称
+    private String company;
+}

+ 38 - 0
src/main/java/com/jkcredit/invoice/hub/model/vo/record/InvoiceRecordVo.java

@@ -0,0 +1,38 @@
+package com.jkcredit.invoice.hub.model.vo.record;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/1/20 17:26
+ * @version: V1.0
+ **/
+@Data
+public class InvoiceRecordVo implements Serializable {
+    private static final long serialVersionUID = 1041995051807079798L;
+    // 运单编号
+    private String waybillNum;
+    // 车牌号
+    private String plateNum;
+    // 交易id
+    private String transactionId;
+    // 交易金额
+    private BigDecimal fee;
+    // 价税合计
+    private Long totalAmount;
+    // 税率
+    private String taxRate;
+    // 金额
+    private BigDecimal amount;
+    // 查询时间
+    private Date createTime;
+    // appKey
+    private String appKey;
+    // 公司名称
+    private String company;
+}

+ 7 - 0
src/main/java/com/jkcredit/invoice/hub/service/searchInvoiceResult/SearchInvoiceResultService.java

@@ -1,7 +1,12 @@
 package com.jkcredit.invoice.hub.service.searchInvoiceResult;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResult;
+import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResultDto;
+import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.InvoiceRecordDto;
 import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.SearchInvoiceResultDto;
+import com.jkcredit.invoice.hub.model.vo.record.InvoiceRecordVo;
 
 import java.util.List;
 
@@ -15,4 +20,6 @@ public interface SearchInvoiceResultService {
     void saveSearchInvoiceResult(SearchInvoiceResultDto dto);
 
     List<InvoiceResult> getSearchInvoiceResult(String num, Long userId);
+
+    IPage<InvoiceRecordVo> getInvoiceRecords(Page page, InvoiceRecordDto dto);
 }

+ 24 - 0
src/main/java/com/jkcredit/invoice/hub/service/searchInvoiceResult/SearchInvoiceResultServiceImpl.java

@@ -1,10 +1,16 @@
 package com.jkcredit.invoice.hub.service.searchInvoiceResult;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jkcredit.invoice.hub.mapper.SearchInvoiceResultMapper;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResult;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResultDto;
+import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.InvoiceRecordDto;
 import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.SearchInvoiceResultDto;
+import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.BillRecordPo;
+import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.InvoiceRecordPo;
 import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.SearchInvoiceResultPo;
+import com.jkcredit.invoice.hub.model.vo.record.InvoiceRecordVo;
 import com.jkcredit.invoice.hub.service.base.BaseService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.util.BeanUtil;
@@ -57,4 +63,22 @@ public class SearchInvoiceResultServiceImpl extends BaseService implements Searc
             throw new ServiceException("查询发票数据失败");
         }
     }
+
+    @Override
+    public IPage<InvoiceRecordVo> getInvoiceRecords(Page page, InvoiceRecordDto dto) {
+        try {
+            IPage<InvoiceRecordPo> records = mapper.getInvoiceRecords(page, dto);
+            return records.convert(this::convert);
+        } catch (Exception e) {
+            log.error("获取发票详情记录失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("获取运单详情记录失败");
+        }
+    }
+
+    private InvoiceRecordVo convert(InvoiceRecordPo po) {
+        InvoiceRecordVo vo = new InvoiceRecordVo();
+        BeanUtil.copyProperties(vo, po);
+        // 将数据库存储的decimal转double
+        return vo;
+    }
 }

+ 26 - 0
src/main/resources/mapper/SearchInvoiceResultMapper.xml

@@ -39,4 +39,30 @@
     <select id="getSearchInvoiceResult" resultMap="baseResultMap">
         select * from h_search_invoice_result where waybill_num = #{num} and user_id = #{userId}
     </select>
+
+    <select id="getInvoiceRecords" resultType="com.jkcredit.invoice.hub.model.po.searchInvoiceResult.InvoiceRecordPo">
+        select
+        result.waybill_num as waybillNum, result.plate_num as plateNum, result.transaction_id as transactionId,
+        result.fee as fee,
+        result.total_amount as totalAmount, result.tax_rate as taxRate, result.amount as amount, result.create_time as
+        createTime,
+        user.app_key as appKey, user.company
+        from h_search_invoice_result result
+        left join h_user user on result.user_id = user.id
+        <where>
+            result.activated = 1 and user.activated = 1
+            <if test="query.appKey != null and query.appKey != ''">
+                and user.app_key = #{query.appKey}
+            </if>
+            <if test="query.plateNum != null and query.plateNum != ''">
+                and result.plate_num = #{query.plateNum}
+            </if>
+            <if test="query.waybillNum != null and query.waybillNum != ''">
+                and result.waybill_num = #{query.waybillNum}
+            </if>
+            <if test="query.transactionId != null and query.transactionId != ''">
+                and result.transaction_id = #{query.transactionId}
+            </if>
+        </where>
+    </select>
 </mapper>