| | |
| | | import com.ruoyi.project.system.domain.SysUser; |
| | | import com.ruoyi.project.system.mapper.SysUserMapper; |
| | | import com.ruoyi.purchase.dto.PurchaseLedgerDto; |
| | | import com.ruoyi.purchase.dto.TicketRegistrationDto; |
| | | import com.ruoyi.purchase.mapper.ProductRecordMapper; |
| | | import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; |
| | | import com.ruoyi.purchase.mapper.TicketRegistrationMapper; |
| | |
| | | import com.ruoyi.purchase.pojo.PurchaseLedger; |
| | | import com.ruoyi.purchase.pojo.TicketRegistration; |
| | | import com.ruoyi.purchase.service.IPurchaseLedgerService; |
| | | import com.ruoyi.purchase.service.ITicketRegistrationService; |
| | | import com.ruoyi.sales.mapper.*; |
| | | import com.ruoyi.sales.pojo.CommonFile; |
| | | import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; |
| | |
| | | // 4. 处理子表数据 |
| | | List<SalesLedgerProduct> productList = purchaseLedgerDto.getProductData(); |
| | | if (productList != null && !productList.isEmpty()) { |
| | | handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType()); |
| | | handleSalesLedgerProducts(purchaseLedgerDto,purchaseLedger.getId(), productList, purchaseLedgerDto.getType()); |
| | | } |
| | | |
| | | // 5. 迁移临时文件到正式目录 |
| | |
| | | return 1; |
| | | } |
| | | |
| | | private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) { |
| | | private final ITicketRegistrationService ticketRegistrationService; |
| | | |
| | | private void handleSalesLedgerProducts(PurchaseLedgerDto purchaseLedgerDto,Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) throws IOException { |
| | | if (products == null || products.isEmpty()) { |
| | | throw new BaseException("产品信息不存在"); |
| | | } |
| | |
| | | salesLedgerProduct.setRegisterDate(localDateTime); |
| | | salesLedgerProductMapper.insert(salesLedgerProduct); |
| | | } |
| | | if (purchaseLedgerDto.getIsInvoice().equals(2)) { |
| | | // 无需开票,提示系统生成发票 |
| | | |
| | | for (SalesLedgerProduct productDatum : insertList) { |
| | | productDatum.setTicketsAmount(productDatum.getTaxInclusiveTotalPrice()); |
| | | productDatum.setTicketsNum(productDatum.getQuantity()); |
| | | } |
| | | BigDecimal invoiceAmount = insertList.stream() |
| | | .map(SalesLedgerProduct::getTicketsAmount) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | TicketRegistrationDto ticketRegistrationDto = new TicketRegistrationDto(); |
| | | BeanUtils.copyProperties(purchaseLedgerDto, ticketRegistrationDto); |
| | | ticketRegistrationDto.setInvoiceAmount(invoiceAmount); |
| | | ticketRegistrationDto.setProductData(insertList); |
| | | ticketRegistrationDto.setPurchaseLedgerId(salesLedgerId); |
| | | ticketRegistrationDto.setIssUer("系统自动生成"); |
| | | ticketRegistrationDto.setIssueDate(LocalDate.now()); |
| | | ticketRegistrationDto.setInvoiceNumber("此台账无需手动开票,系统将所有产品自动生成来票台账"); |
| | | ticketRegistrationService.addOrUpdateRegistration(ticketRegistrationDto); |
| | | } |
| | | } |
| | | |
| | | // 计算总含税金额 |