ソースを参照

计费 运单号查发票

xusonglin 5 年 前
コミット
21fc837a1f

+ 4 - 1
src/main/java/com/jkcredit/invoice/hub/controller/rest/forward/ForwardResource.java

@@ -77,7 +77,7 @@ public class ForwardResource extends RestResource {
                 // 自用接口,不对客户开放
                 return apiCarFreeService.wayBillNumFindInvoice(JSON.parseObject(JSON.toJSONString(param.getData())));
             } else if (param.getApi().equals(CommonConstant.WAY_BILL_NUM_FIND_INVOICE)) {
-                return null;
+                return apiCarFreeService.findInvoice(JSON.parseObject(JSON.toJSONString(param.getData())));
             } else {
                 return ApiResponseData.failure(ApiResponseCodeEnum.CODE_1080.getValue(), ApiResponseCodeEnum.CODE_1080.getDesc());
             }
@@ -86,6 +86,9 @@ public class ForwardResource extends RestResource {
             return ApiResponseData.failure(ApiResponseCodeEnum.CODE_9998.getValue(), ApiResponseCodeEnum.CODE_9998.getDesc());
         } catch (ApiRequestException ae) {
             log.error("接口业务失败,失败原因:{}", ae.getMessage());
+            if (ae.getErrCode() == 803) {
+                return ApiResponseData.failure(ApiResponseCodeEnum.CODE_200.getValue(), ae.getMessage());
+            }
             return ApiResponseData.failure(ae.getErrCode(), ae.getMessage());
         }
     }

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

@@ -3,6 +3,8 @@ package com.jkcredit.invoice.hub.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.SearchInvoiceResultPo;
 
+import java.util.List;
+
 /**
  * @description:
  * @author: xusonglin
@@ -10,4 +12,5 @@ import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.SearchInvoiceResult
  * @version: V1.0
  **/
 public interface SearchInvoiceResultMapper extends BaseMapper<SearchInvoiceResultPo> {
+    List<SearchInvoiceResultPo> getSearchInvoiceResult(String num, Long userId);
 }

+ 2 - 3
src/main/java/com/jkcredit/invoice/hub/service/apiCarFree/ApiCarFreeChargeService.java

@@ -1,8 +1,7 @@
 package com.jkcredit.invoice.hub.service.apiCarFree;
 
 import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierBillStartPo;
-
-import java.util.List;
+import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
 
 /**
  * @description:
@@ -11,5 +10,5 @@ import java.util.List;
  * @version: V1.0
  **/
 public interface ApiCarFreeChargeService {
-    void charge(List<CarFreeCarrierBillStartPo> startPoList);
+    ApiResponseData charge(CarFreeCarrierBillStartPo startPoList);
 }

+ 77 - 77
src/main/java/com/jkcredit/invoice/hub/service/apiCarFree/ApiCarFreeChargeServiceImpl.java

@@ -22,6 +22,7 @@ import com.jkcredit.invoice.hub.service.searchInvoice.SearchInvoiceService;
 import com.jkcredit.invoice.hub.service.searchInvoiceResult.SearchInvoiceResultService;
 import com.jkcredit.invoice.hub.service.user.UserService;
 import com.jkcredit.invoice.hub.service.userBalance.UserBalanceService;
+import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
 import com.jkcredit.invoice.hub.util.BeanUtil;
 import com.jkcredit.invoice.hub.util.CommonUtil;
@@ -66,47 +67,46 @@ public class ApiCarFreeChargeServiceImpl implements ApiCarFreeChargeService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void charge(List<CarFreeCarrierBillStartPo> startPoList) {
-        for (CarFreeCarrierBillStartPo po : startPoList) {
-            // 封装查询参数
-            JSONObject param = new JSONObject();
-            param.put("num", po.getNum());
+    public ApiResponseData charge(CarFreeCarrierBillStartPo po) {
+        // 封装查询参数
+        JSONObject param = new JSONObject();
+        param.put("num", po.getNum());
 
-            // 接口调用
-            ApiResponseData apiResponseData = carFreeService.wayBillNumFindInvoice(param);
+        // 接口调用
+        ApiResponseData apiResponseData = carFreeService.wayBillNumFindInvoice(param);
 
-            // 判断接口是否调用成功
-            if (apiResponseData.getData().equals(CommonConstant.SUCCESS_CODE)
-                    && apiResponseData.getCode().equals(ApiResponseCodeEnum.CODE_200.getValue())) {
-                // 接口调用成功
-                InvoiceResultDto invoiceResultDto = JSON.toJavaObject(JSON.parseObject(apiResponseData.getMsg()), InvoiceResultDto.class);
-                List<InvoiceResult> newSearchInvoiceResultList;
+        // 判断接口是否调用成功
+        if (apiResponseData.getData().equals(CommonConstant.SUCCESS_CODE)
+                && apiResponseData.getCode().equals(ApiResponseCodeEnum.CODE_200.getValue())) {
+            // 接口调用成功
+            InvoiceResultDto invoiceResultDto = JSON.toJavaObject(JSON.parseObject(apiResponseData.getMsg()), InvoiceResultDto.class);
+            List<InvoiceResult> newSearchInvoiceResultList;
 
-                // 根据运单发票状态更新运单状态
-                if (invoiceResultDto.getWaybillStatus().equals("3")) {
-                    // 开票完成
-                    startService.updateBillStartStatus(invoiceResultDto.getWaybillNum(), CommonConstant.STATUS_INVOICE_OVER);
-                } else {
-                    // 开票中
-                    startService.updateBillStartStatus(invoiceResultDto.getWaybillNum(), CommonConstant.STATUS_MAKING_INVOICE);
+            // 根据运单发票状态更新运单状态
+            if (invoiceResultDto.getWaybillStatus().equals("3")) {
+                // 开票完成
+                startService.updateBillStartStatus(invoiceResultDto.getWaybillNum(), CommonConstant.STATUS_INVOICE_OVER);
+            } else {
+                // 开票中
+                startService.updateBillStartStatus(invoiceResultDto.getWaybillNum(), CommonConstant.STATUS_MAKING_INVOICE);
+            }
+            if (invoiceResultDto.getResult() != null) {
+                // 判断运单查询发票返回共用信息在数据库中是否存在,不存在则存入
+                SearchInvoiceDto searchInvoiceDto = searchInvoiceService.getSearchInvoiceByNum(invoiceResultDto.getWaybillNum());
+                if (searchInvoiceDto == null) {
+                    searchInvoiceService.saveSearchInvoice(invoiceResultDto);
                 }
-                if (invoiceResultDto.getResult() != null) {
-                    // 判断运单查询发票返回共用信息在数据库中是否存在,不存在则存入
-                    SearchInvoiceDto searchInvoiceDto = searchInvoiceService.getSearchInvoiceByNum(invoiceResultDto.getWaybillNum());
-                    if (searchInvoiceDto == null) {
-                        searchInvoiceService.saveSearchInvoice(invoiceResultDto);
-                    }
-                    log.info("invoiceResultDto.getResult().size() = {}", invoiceResultDto.getResult().size());
-                    if (invoiceResultDto.getResult().size() > 0) {
-                        //去重列表
-                        newSearchInvoiceResultList = invoiceResultDto.getResult().stream().collect(
-                                Collectors.collectingAndThen(
-                                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InvoiceResult::getFee))), ArrayList::new));
-                        //计费
-                        newSearchInvoiceResultList.stream().forEach(t -> {
-                            t.setTransactionId(t.getTransactionId());
-                            if (!redisTemplate.hasKey(CommonConstant.TRANSACTION_ID_KEY + t.getTransactionId())) {
-                                // todo 此处计费需要使用消息实现
+                log.info("invoiceResultDto.getResult().size() = {}", invoiceResultDto.getResult().size());
+                if (invoiceResultDto.getResult().size() > 0) {
+                    //去重列表
+                    newSearchInvoiceResultList = invoiceResultDto.getResult().stream().collect(
+                            Collectors.collectingAndThen(
+                                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InvoiceResult::getFee))), ArrayList::new));
+                    //计费
+                    newSearchInvoiceResultList.stream().forEach(t -> {
+                        t.setTransactionId(t.getTransactionId());
+                        if (!redisTemplate.hasKey(CommonConstant.TRANSACTION_ID_KEY + t.getTransactionId())) {
+                            // todo 此处计费需要使用消息实现
 //                                UserBalanceDto userBalanceDto = userBalanceService.getUserBalance(po.getUserId());
 //                                UserBalanceInvoiceDto userBalanceInvoiceDto = new UserBalanceInvoiceDto();
 //                                BeanUtil.copyProperties(userBalanceInvoiceDto, userBalanceDto);
@@ -115,52 +115,52 @@ public class ApiCarFreeChargeServiceImpl implements ApiCarFreeChargeService {
 //                                //发送到消息队列
 //                                log.info("发送到消息队列");
 //                                chargeProducer.send(userBalanceInvoiceDto);
-                                // 将需要计费数据插入数据库
-                                UserDto userDto = userService.getUser(po.getUserId());
-                                NeedChargeDto needChargeDto = new NeedChargeDto();
-                                needChargeDto.setUserId(po.getUserId());
-                                needChargeDto.setNum(t.getWaybillNum());
-                                needChargeDto.setPrice(userDto.getPrice());
-                                needChargeDto.setTransactionId(t.getTransactionId());
-                                needChargeService.saveNeedCharge(needChargeDto);
+                            // 将需要计费数据插入数据库
+                            UserDto userDto = userService.getUser(po.getUserId());
+                            NeedChargeDto needChargeDto = new NeedChargeDto();
+                            needChargeDto.setUserId(po.getUserId());
+                            needChargeDto.setNum(t.getWaybillNum());
+                            needChargeDto.setPrice(userDto.getPrice());
+                            needChargeDto.setTransactionId(t.getTransactionId());
+                            needChargeService.saveNeedCharge(needChargeDto);
 
-                                // 计费
-                                UserBalanceDto userBalanceDto = userBalanceService.getUserBalance(po.getUserId());
-                                userBalanceDto.setBalance(userBalanceDto.getBalance().subtract(userDto.getPrice()));
-                                userBalanceService.updateUserBalance(userBalanceDto);
+                            // 计费
+                            UserBalanceDto userBalanceDto = userBalanceService.getUserBalance(po.getUserId());
+                            userBalanceDto.setBalance(userBalanceDto.getBalance().subtract(userDto.getPrice()));
+                            userBalanceService.updateUserBalance(userBalanceDto);
 
-                                // 实际扣费数据
-                                RealChargeDto realChargeDto = new RealChargeDto();
-                                realChargeDto.setUserId(userBalanceDto.getUserId());
-                                realChargeDto.setPrice(userDto.getPrice());
-                                realChargeDto.setNum(po.getNum());
-                                realChargeDto.setTransactionId(t.getTransactionId());
-                                realChargeService.saveRealCharge(realChargeDto);
-                                log.warn("计费日志:{},计费用户id:{}", JSON.toJSONString(t), po.getUserId());
-                            }
-                        });
-                    }
-                    // 遍历发票集合
-                    invoiceResultDto.getResult().stream().forEach(t -> {
-                        t.setTransactionId(t.getTransactionId());
-                        if (!redisTemplate.hasKey(CommonConstant.NUM_FIND_INVOICE_KEY + t.getInvoiceNum() + "_" + t.getInvoiceCode())) {
-                            SearchInvoiceResultDto dto = new SearchInvoiceResultDto();
-                            BeanUtil.copyProperties(dto, t);
-                            dto.setUserId(po.getUserId());
-                            //插入发票信息
-                            searchInvoiceResultService.saveSearchInvoiceResult(dto);
-                            log.info("插入的发票信息:{}", JSON.toJSONString(t));
-                            //存入redis发票信息
-                            redisTemplate.opsForValue().set(CommonConstant.NUM_FIND_INVOICE_KEY + t.getInvoiceNum() + "_" + t.getInvoiceCode(), JSON.toJSONString(t));
-                            //存入redis交易id
-                            redisTemplate.opsForValue().set(CommonConstant.TRANSACTION_ID_KEY + t.getTransactionId(), t.getTransactionId());
+                            // 实际扣费数据
+                            RealChargeDto realChargeDto = new RealChargeDto();
+                            realChargeDto.setUserId(userBalanceDto.getUserId());
+                            realChargeDto.setPrice(userDto.getPrice());
+                            realChargeDto.setNum(po.getNum());
+                            realChargeDto.setTransactionId(t.getTransactionId());
+                            realChargeService.saveRealCharge(realChargeDto);
+                            log.warn("计费日志:{},计费用户id:{}", JSON.toJSONString(t), po.getUserId());
                         }
                     });
                 }
-            } else {
-                log.error("定时任务处理运单失败;失败原因:调用接口失败;时间:{};运单编号:{}", CommonUtil.dateFormat(new Date()), po.getNum());
+                // 遍历发票集合
+                invoiceResultDto.getResult().stream().forEach(t -> {
+                    t.setTransactionId(t.getTransactionId());
+                    if (!redisTemplate.hasKey(CommonConstant.NUM_FIND_INVOICE_KEY + t.getInvoiceNum() + "_" + t.getInvoiceCode())) {
+                        SearchInvoiceResultDto dto = new SearchInvoiceResultDto();
+                        BeanUtil.copyProperties(dto, t);
+                        dto.setUserId(po.getUserId());
+                        //插入发票信息
+                        searchInvoiceResultService.saveSearchInvoiceResult(dto);
+                        log.info("插入的发票信息:{}", JSON.toJSONString(t));
+                        //存入redis发票信息
+                        redisTemplate.opsForValue().set(CommonConstant.NUM_FIND_INVOICE_KEY + t.getInvoiceNum() + "_" + t.getInvoiceCode(), JSON.toJSONString(t));
+                        //存入redis交易id
+                        redisTemplate.opsForValue().set(CommonConstant.TRANSACTION_ID_KEY + t.getTransactionId(), t.getTransactionId());
+                    }
+                });
             }
-
+            return apiResponseData;
+        } else {
+            log.error("调用接口失败;时间:{};运单编号:{}", CommonUtil.dateFormat(new Date()), po.getNum());
+            throw new ServiceException("调用接口失败");
         }
     }
 }

+ 40 - 1
src/main/java/com/jkcredit/invoice/hub/service/apiCarFree/ApiCarFreeServiceImpl.java

@@ -11,15 +11,23 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
 import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
+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.apiCarFree.WayBillNumFindInvoiceDto;
 import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillEnd.CarFreeCarrierBillEndDto;
 import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.CarFreeCarrierBillStartDto;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.VehicleRegisterDto;
+import com.jkcredit.invoice.hub.model.dto.searchInvoice.SearchInvoiceDto;
+import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierBillStartPo;
+import com.jkcredit.invoice.hub.model.po.searchInvoice.SearchInvoicePo;
 import com.jkcredit.invoice.hub.service.base.BaseService;
 import com.jkcredit.invoice.hub.service.carFreeCarrierBillEnd.CarFreeCarrierBillEndService;
 import com.jkcredit.invoice.hub.service.carFreeCarrierBillStart.CarFreeCarrierBillStartService;
+import com.jkcredit.invoice.hub.service.searchInvoice.SearchInvoiceService;
+import com.jkcredit.invoice.hub.service.searchInvoiceResult.SearchInvoiceResultService;
 import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
 import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
+import com.jkcredit.invoice.hub.util.BeanUtil;
 import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +35,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @description: 无车api接口
@@ -41,6 +51,12 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
     CarFreeCarrierBillStartService wayBillStartService;
     @Autowired
     CarFreeCarrierBillEndService wayBillEndService;
+    @Autowired
+    SearchInvoiceResultService searchInvoiceResultService;
+    @Autowired
+    SearchInvoiceService searchInvoiceService;
+    @Autowired
+    ApiCarFreeChargeService apiCarFreeChargeService;
 
     @Override
     public ApiResponseData vehicleRegisterQuery(JSONObject param) {
@@ -335,6 +351,29 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
 
     @Override
     public ApiResponseData findInvoice(JSONObject param) {
-        return null;
+        List<InvoiceResult> dtoList = searchInvoiceResultService.getSearchInvoiceResult(param.getString("num"), param.getLong("userId"));
+        if (dtoList.size() != 0) {
+            SearchInvoiceDto searchInvoiceDto = searchInvoiceService.getSearchInvoiceByNum(param.getString("num"));
+            InvoiceResultDto invoiceResultDto = new InvoiceResultDto();
+            BeanUtil.copyProperties(invoiceResultDto, searchInvoiceDto);
+            invoiceResultDto.setResult(dtoList);
+            return ApiResponseData.success(ApiResponseCodeEnum.CODE_200.getValue(), JSON.toJSONString(invoiceResultDto));
+        } else {
+            try {
+                CarFreeCarrierBillStartPo po = wayBillStartService.getBillStartByNum(param.getString("num"));
+//                if (po == null) {
+//                    throw new ApiRequestException("业务校验错误:运单编号错误或该运单不存在\n", 803);
+//                }
+                if (po == null) {
+                    po = new CarFreeCarrierBillStartPo();
+                    po.setNum(param.getString("num"));
+                    po.setUserId(param.getLong("userId"));
+                    wayBillStartService.saveBillStart(po);
+                }
+                return apiCarFreeChargeService.charge(po);
+            } catch (ServiceException se) {
+                throw new ApiRequestException(se.getMessage(), ApiResponseCodeEnum.CODE_200.getValue());
+            }
+        }
     }
 }

+ 4 - 0
src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillStart/CarFreeCarrierBillStartService.java

@@ -19,4 +19,8 @@ public interface CarFreeCarrierBillStartService {
     List<CarFreeCarrierBillStartPo> getRealTimeBills();
 
     List<CarFreeCarrierBillStartPo> getHistoryBills();
+
+    CarFreeCarrierBillStartPo getBillStartByNum(String num);
+
+    void saveBillStart(CarFreeCarrierBillStartPo po);
 }

+ 24 - 0
src/main/java/com/jkcredit/invoice/hub/service/carFreeCarrierBillStart/CarFreeCarrierBillStartServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jkcredit.invoice.hub.service.carFreeCarrierBillStart;
 
+import cn.com.taiji.common.manager.net.http.binclient.ApiRequestException;
 import com.jkcredit.invoice.hub.mapper.CarFreeCarrierBillStartMapper;
 import com.jkcredit.invoice.hub.model.dto.carFreeCarrierBillStart.CarFreeCarrierBillStartDto;
 import com.jkcredit.invoice.hub.model.po.carFreeCarrierBillStart.CarFreeCarrierBillStartPo;
@@ -10,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -78,4 +80,26 @@ public class CarFreeCarrierBillStartServiceImpl extends BaseService implements C
             throw new ServiceException("历史运单查询失败");
         }
     }
+
+    @Override
+    public CarFreeCarrierBillStartPo getBillStartByNum(String num) {
+        try {
+            CarFreeCarrierBillStartPo po = mapper.getBillStartByNum(num);
+            return po;
+        } catch (Exception e) {
+            log.error("运单查询失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("运单查询失败");
+        }
+    }
+
+    @Override
+    public void saveBillStart(CarFreeCarrierBillStartPo po) {
+        try {
+            po.setCreateTime(new Date());
+            mapper.insert(po);
+        } catch (Exception e) {
+            log.error("新增运单开始指令数据失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("新增运单开始指令数据失败");
+        }
+    }
 }

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

@@ -1,7 +1,10 @@
 package com.jkcredit.invoice.hub.service.searchInvoiceResult;
 
+import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResult;
 import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.SearchInvoiceResultDto;
 
+import java.util.List;
+
 /**
  * @description:
  * @author: xusonglin
@@ -10,4 +13,6 @@ import com.jkcredit.invoice.hub.model.dto.searchInvoiceResult.SearchInvoiceResul
  **/
 public interface SearchInvoiceResultService {
     void saveSearchInvoiceResult(SearchInvoiceResultDto dto);
+
+    List<InvoiceResult> getSearchInvoiceResult(String num, Long userId);
 }

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

@@ -1,6 +1,8 @@
 package com.jkcredit.invoice.hub.service.searchInvoiceResult;
 
 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.SearchInvoiceResultDto;
 import com.jkcredit.invoice.hub.model.po.searchInvoiceResult.SearchInvoiceResultPo;
 import com.jkcredit.invoice.hub.service.base.BaseService;
@@ -10,7 +12,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @description:
@@ -36,4 +40,21 @@ public class SearchInvoiceResultServiceImpl extends BaseService implements Searc
             throw new ServiceException("插入发票数据失败");
         }
     }
+
+    @Override
+    public List<InvoiceResult> getSearchInvoiceResult(String num, Long userId) {
+        try {
+            List<SearchInvoiceResultPo> poList = mapper.getSearchInvoiceResult(num, userId);
+            List<InvoiceResult> dtoList = new ArrayList<>();
+            for (SearchInvoiceResultPo po : poList) {
+                InvoiceResult dto = new InvoiceResult();
+                BeanUtil.copyProperties(dto, po);
+                dtoList.add(dto);
+            }
+            return dtoList;
+        } catch (Exception e) {
+            log.error("查询发票数据失败,失败原因:{}", e.getMessage());
+            throw new ServiceException("查询发票数据失败");
+        }
+    }
 }

+ 6 - 2
src/main/java/com/jkcredit/invoice/hub/task/WayBillTask.java

@@ -33,7 +33,9 @@ public class WayBillTask {
         // 根据返回transationID去重
         // 每一条放入消息队列,计费
         List<CarFreeCarrierBillStartPo> startPoList = startService.getRealTimeBills();
-        chargeService.charge(startPoList);
+        for (CarFreeCarrierBillStartPo po : startPoList) {
+            chargeService.charge(po);
+        }
     }
 
     @Scheduled(cron = "0 0 * * * ?", zone = "Asia/Shanghai")
@@ -45,6 +47,8 @@ public class WayBillTask {
         // 根据返回transationID去重
         // 每一条放入消息队列,计费
         List<CarFreeCarrierBillStartPo> startPoList = startService.getHistoryBills();
-        chargeService.charge(startPoList);
+        for (CarFreeCarrierBillStartPo po : startPoList) {
+            chargeService.charge(po);
+        }
     }
 }

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

@@ -0,0 +1,42 @@
+<?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.SearchInvoiceResultMapper">
+    <resultMap id="baseResultMap"
+               type="com.jkcredit.invoice.hub.model.po.searchInvoiceResult.SearchInvoiceResultPo">
+        <id column="id" property="id"/>
+        <result column="invoice_num" property="invoiceNum"/>
+        <result column="invoice_code" property="invoiceCode"/>
+        <result column="invoice_make_time" property="invoiceMakeTime"/>
+        <result column="invoice_url" property="invoiceUrl"/>
+        <result column="invoice_html_url" property="invoiceHtmlUrl"/>
+        <result column="en_station" property="enStation"/>
+        <result column="ex_station" property="exStation"/>
+        <result column="ex_time" property="exTime"/>
+        <result column="fee" property="fee"/>
+        <result column="total_tax_amount" property="totalTaxAmount"/>
+        <result column="plate_num" property="plateNum"/>
+        <result column="vehicle_type" property="vehicleType"/>
+        <result column="seller_name" property="sellerName"/>
+        <result column="seller_taxpayer_code" property="sellerTaxpayerCode"/>
+        <result column="waybill_num" property="waybillNum"/>
+        <result column="waybill_status" property="waybillStatus"/>
+        <result column="waybill_start_time" property="waybillStartTime"/>
+        <result column="waybill_end_time" property="waybillEndTime"/>
+        <result column="total_amount" property="totalAmount"/>
+        <result column="tax_rate" property="taxRate"/>
+        <result column="invoice_type" property="invoiceType"/>
+        <result column="amount" property="amount"/>
+        <result column="transaction_id" property="transactionId"/>
+        <result column="user_id" property="userId"/>
+        <result column="create_time" property="createTime"/>
+        <result column="trade_match_time" property="tradeMatchTime"/>
+        <result column="buyer_name" property="buyerName"/>
+        <result column="buyer_taxpayer_code" property="buyerTaxpayerCode"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="activated" property="activated"/>
+    </resultMap>
+
+    <select id="getSearchInvoiceResult" resultMap="baseResultMap">
+        select * from h_search_invoice_result where waybill_num = #{num} and user_id = #{userId}
+    </select>
+</mapper>