|
|
|
@ -114,6 +114,44 @@ public class InvoiceServiceImpl implements InvoiceService { |
|
|
|
|
private TaxSpecialPolicyUtil taxSpecialPolicyUtil; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R preInvoice(PageInvoiceReq pageInvoiceReq) { |
|
|
|
|
List<PageInvoiceItem> pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); |
|
|
|
|
//查询数据列表
|
|
|
|
|
List<CommonOrderInfo> commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); |
|
|
|
|
commonOrderInfos.stream().forEach(f -> { |
|
|
|
|
String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId()); |
|
|
|
|
List<CommonOrderInfo> originalCommonOrderInfo = new ArrayList<>(); |
|
|
|
|
originalCommonOrderInfo.add(f); |
|
|
|
|
List<CommonOrderInfo> orderSplit = new ArrayList<>(); |
|
|
|
|
// 订单超限额拆分
|
|
|
|
|
try { |
|
|
|
|
orderSplit = generateReadyOpenOrderService.orderSplit(originalCommonOrderInfo, terminalCode, pageInvoiceReq.getUserId()); |
|
|
|
|
log.info("{},{}生成预制发票拆分结果:{}",LOGGER_MSG,f.getOrderInfo().getDdh(),JsonUtils.getInstance().toJsonString(orderSplit)); |
|
|
|
|
} catch (OrderSplitException e) { |
|
|
|
|
log.error("{}生成预制发票拆分异常:",LOGGER_MSG,e); |
|
|
|
|
} |
|
|
|
|
if(orderSplit.size() == 1){ |
|
|
|
|
OrderProcessInfo processInfo = f.getProcessInfo(); |
|
|
|
|
processInfo.setYzfp(ConfigureConstant.STRING_1); |
|
|
|
|
orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); |
|
|
|
|
}else if(orderSplit.size() > 1){ |
|
|
|
|
List<CommonOrderInfo> commonOrderInfoSaveResults = new ArrayList<>(); |
|
|
|
|
try { |
|
|
|
|
commonOrderInfoSaveResults = generateReadyOpenOrderService.saveOrderSplitInfo(orderSplit); |
|
|
|
|
} catch (OrderReceiveException e) { |
|
|
|
|
log.error("{}生成预制发票拆分后保存异常:",LOGGER_MSG,e); |
|
|
|
|
} |
|
|
|
|
commonOrderInfoSaveResults.stream().forEach(s -> { |
|
|
|
|
OrderProcessInfo processInfo = s.getProcessInfo(); |
|
|
|
|
processInfo.setYzfp(ConfigureConstant.STRING_1); |
|
|
|
|
orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
return R.ok("生成预制发票成功,请到开票处理页面查看"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R batchInvoiceById(PageInvoiceReq pageInvoiceReq) { |
|
|
|
|
|
|
|
|
|