Browse Source

运单查询发票bug

xusonglin 5 years ago
parent
commit
0dd3f2aa06

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

@@ -83,7 +83,7 @@ public class ApiCarFreeChargeServiceImpl implements ApiCarFreeChargeService {
             List<InvoiceResult> newSearchInvoiceResultList;
             List<InvoiceResult> newSearchInvoiceResultList;
 
 
             // 根据运单发票状态更新运单状态
             // 根据运单发票状态更新运单状态
-            if (invoiceResultDto.getWaybillStatus().equals("3")) {
+            if (invoiceResultDto.getWaybillStatus().equals(CommonConstant.STATUS_INVOICE_OVER)) {
                 if (po.getId() == null) {
                 if (po.getId() == null) {
                     po.setIsSearch(2);
                     po.setIsSearch(2);
                     po.setStatus(CommonConstant.STATUS_INVOICE_OVER);
                     po.setStatus(CommonConstant.STATUS_INVOICE_OVER);

+ 19 - 2
src/main/java/com/jkcredit/invoice/hub/service/apiCarFree/ApiCarFreeServiceImpl.java

@@ -9,6 +9,7 @@ import cn.com.taiji.sdk.model.comm.protocol.tts.vehicle.VehicleRegisterResponse;
 import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.*;
 import cn.com.taiji.sdk.model.comm.protocol.tts.waybill.*;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
 import com.jkcredit.invoice.hub.constant.CommonConstant;
 import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
 import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResult;
 import com.jkcredit.invoice.hub.model.dto.apiCarFree.InvoiceResult;
@@ -353,14 +354,30 @@ public class ApiCarFreeServiceImpl extends BaseService implements ApiCarFreeServ
     public ApiResponseData findInvoice(JSONObject param) {
     public ApiResponseData findInvoice(JSONObject param) {
         try {
         try {
             CarFreeCarrierBillStartPo po = wayBillStartService.getBillStartByNum(param.getString("num"));
             CarFreeCarrierBillStartPo po = wayBillStartService.getBillStartByNum(param.getString("num"));
-            if (po != null) {
+            if (po != null && po.getStatus().equals(CommonConstant.STATUS_INVOICE_OVER)) {
+                // 数据库中已经存在运单开始信息,并且运单状态为已结束,直接从数据库中查询运单发票数据,封装返回
                 wayBillStartService.updateBillStartIsSearch(param.getString("num"));
                 wayBillStartService.updateBillStartIsSearch(param.getString("num"));
+                // 结果集外层数据
+                SearchInvoiceDto searchInvoiceDto = searchInvoiceService.getSearchInvoiceByNum(param.getString("num"));
+                // 结果集发票集合
+                List<InvoiceResult> invoiceResultList = searchInvoiceResultService.getSearchInvoiceResult(param.getString("num"), param.getLong("userId"));
+
+                // 返回结果集
+                InvoiceResultDto invoiceResultDto = new InvoiceResultDto();
+                BeanUtil.copyProperties(invoiceResultDto, searchInvoiceDto);
+                invoiceResultDto.setResult(invoiceResultList);
+
+                return ApiResponseData.success(ApiResponseCodeEnum.CODE_200.getValue(), JSON.toJSONString(invoiceResultDto, SerializerFeature.WriteMapNullValue));
+            } else if (po != null && !po.getStatus().equals(CommonConstant.STATUS_INVOICE_OVER)) {
+                // 数据库中已经存在运单开始信息,并且运单状态非已结束,需要重新查询接口
+                return apiCarFreeChargeService.charge(po);
             } else {
             } else {
+                // 数据库中没有运单开始信息(这部分数据为遗留数据,老平台迁移用户,没有运单开始数据的存储),需要调接口
                 po = new CarFreeCarrierBillStartPo();
                 po = new CarFreeCarrierBillStartPo();
                 po.setUserId(param.getLong("userId"));
                 po.setUserId(param.getLong("userId"));
                 po.setNum(param.getString("num"));
                 po.setNum(param.getString("num"));
+                return apiCarFreeChargeService.charge(po);
             }
             }
-            return apiCarFreeChargeService.charge(po);
         } catch (ServiceException se) {
         } catch (ServiceException se) {
             log.error("[-findInvoice-] 错误信息:" + se.getMessage());
             log.error("[-findInvoice-] 错误信息:" + se.getMessage());
             throw new ServiceException(se.getMessage());
             throw new ServiceException(se.getMessage());