| | |
| | | package com.ruoyi.cwgl.service.impl; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.http.HttpUtil; |
| | |
| | | import com.ruoyi.common.core.service.BaseService; |
| | | |
| | | import com.ruoyi.cwgl.mapper.InvoiceManageMapper; |
| | | import com.ruoyi.cwgl.mapper.InvoiceBillDetailMapper; |
| | | import com.ruoyi.cwgl.service.IInvoiceManageService; |
| | | import com.ruoyi.cwgl.service.IInvoiceManageLogService; |
| | | import com.ruoyi.common.core.text.Convert; |
| | |
| | | private InvoiceManageMapper invoiceManageMapper; |
| | | |
| | | @Resource |
| | | private InvoiceBillDetailMapper invoiceBillDetailMapper; |
| | | |
| | | @Resource |
| | | private IInvoiceManageLogService invoiceManageLogService; |
| | | |
| | | @Autowired |
| | |
| | | private String invoicingAddress; |
| | | @Value("${custom.gdpaasApi.returnAddress}") |
| | | private String returnAddress; |
| | | |
| | | @Autowired |
| | | private IInvoiceBusinessService invoiceBusinessService; |
| | | /** |
| | | * 查询发票管理 |
| | | * |
| | |
| | | invoiceManageMapper.batchInvoiceDetail(list); |
| | | } |
| | | } |
| | | |
| | | // 新增发票业务商品明细信息 |
| | | List<InvoiceBillDetail> invoiceBillDetails = invoiceManage.getInvoiceBillDetails(); |
| | | if (StringUtils.isNotNull(invoiceBillDetails)) { |
| | | List<InvoiceBillDetail> billDetailList = new ArrayList<InvoiceBillDetail>(); |
| | | for (InvoiceBillDetail invoiceBillDetail : invoiceBillDetails) { |
| | | invoiceBillDetail.setInvoiceManageId(id); |
| | | invoiceBillDetail.setCreateTime(new Date()); |
| | | billDetailList.add(invoiceBillDetail); |
| | | } |
| | | if (billDetailList.size() > 0) { |
| | | invoiceBillDetailMapper.insertInvoiceBillDetailBatch(billDetailList); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult applyInvoice(Integer id, List<InvoiceBillDetail> invoiceBillDetails) { |
| | | public AjaxResult applyInvoice(Integer id) { |
| | | InvoiceManage invoiceManage = selectInvoiceManageById(id); |
| | | if (invoiceManage == null) { |
| | | throw new ServiceException("发票记录不存在"); |
| | |
| | | throw new ServiceException("请勿重复开票"); |
| | | |
| | | } |
| | | List<InvoiceDetail> invoiceDetailList = invoiceManage.getInvoiceDetailList(); |
| | | if (CollectionUtil.isEmpty(invoiceDetailList)) { |
| | | throw new ServiceException("收费明细无数据"); |
| | | List<InvoiceBillDetail> invoiceBillDetails = invoiceManage.getInvoiceBillDetails(); |
| | | if (CollectionUtil.isEmpty(invoiceBillDetails)) { |
| | | throw new ServiceException("商品明细无数据无法开发票"); |
| | | |
| | | } |
| | | componentInvoice(invoiceManage.getInvoiceNo(),"FP",invoiceManage,invoiceBillDetails); |
| | | return AjaxResult.success("申请开票成功"); |
| | | |
| | | // 记录申请开票日志 |
| | | recordApplyInvoiceLog(invoiceManage); |
| | | |
| | | return componentInvoice(invoiceManage.getInvoiceNo(),"FP",invoiceManage,invoiceBillDetails); |
| | | } |
| | | |
| | | public AjaxResult componentInvoice(String orderNo, String businessType, InvoiceManage invoiceManage, List<InvoiceBillDetail> invoiceBillDetails) { |
| | |
| | | for (InvoiceBillDetail billingDetail : invoiceBillDetails) { |
| | | InvoiceDetailApi invoiceDetail = new InvoiceDetailApi(); |
| | | |
| | | |
| | | invoiceDetail.setGoodsCode(invoiceDetail.getGoodsCode()); |
| | | invoiceDetail.setGoodsName(invoiceDetail.getGoodsName()); |
| | | |
| | | invoiceDetail.setWithTaxFlag(billingDetail.getWithTaxFlag().toString()); |
| | |
| | | } |
| | | JSONObject jsonObject = JSONObject.parseObject(json); |
| | | String code = jsonObject.getString("code"); |
| | | |
| | | logger.info("开票返回{}",jsonObject); |
| | | String invoiceSerialNum = null; |
| | | InvoiceBusiness record = new InvoiceBusiness(); |
| | | record.setReqData(JSONObject.toJSONString(invoicingVo)); |
| | |
| | | logger.info("开票成功发票序列号为{}", invoiceSerialNum); |
| | | record.setInvoiceSerialNum(invoiceSerialNum); |
| | | record.setInvoiceManageId(invoiceManage.getId()); |
| | | invoiceBusinessService.insertInvoiceBusiness(record); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | return AjaxResult.error("开票失败"); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |