src/main/java/com/ruoyi/ai/tools/SalesAgentTools.java
@@ -11,8 +11,6 @@ import com.ruoyi.basic.vo.CustomerVo; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.mapper.InvoiceLedgerMapper; import com.ruoyi.sales.mapper.ReceiptPaymentMapper; import com.ruoyi.sales.mapper.SalesLedgerMapper; import com.ruoyi.sales.mapper.SalesQuotationMapper; @@ -34,16 +32,7 @@ import java.time.YearMonth; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -63,7 +52,6 @@ private final SalesQuotationMapper salesQuotationMapper; private final ShippingInfoMapper shippingInfoMapper; private final ReceiptPaymentMapper receiptPaymentMapper; private final InvoiceLedgerMapper invoiceLedgerMapper; private final SalesReceiptReturnMapper salesReceiptReturnMapper; private final AiSessionUserContext aiSessionUserContext; @@ -72,7 +60,6 @@ SalesQuotationMapper salesQuotationMapper, ShippingInfoMapper shippingInfoMapper, ReceiptPaymentMapper receiptPaymentMapper, InvoiceLedgerMapper invoiceLedgerMapper, SalesReceiptReturnMapper salesReceiptReturnMapper, AiSessionUserContext aiSessionUserContext) { this.customerMapper = customerMapper; @@ -80,7 +67,6 @@ this.salesQuotationMapper = salesQuotationMapper; this.shippingInfoMapper = shippingInfoMapper; this.receiptPaymentMapper = receiptPaymentMapper; this.invoiceLedgerMapper = invoiceLedgerMapper; this.salesReceiptReturnMapper = salesReceiptReturnMapper; this.aiSessionUserContext = aiSessionUserContext; } @@ -896,12 +882,12 @@ return Map.of(); } Map<Long, BigDecimal> result = new HashMap<>(); for (InvoiceLedgerDto item : defaultList(invoiceLedgerMapper.invoicedTotal(ledgerIds))) { if (item.getSalesLedgerId() == null) { continue; } result.merge(item.getSalesLedgerId().longValue(), defaultDecimal(item.getInvoiceTotal()), BigDecimal::add); } // for (InvoiceLedgerDto item : defaultList(invoiceLedgerMapper.invoicedTotal(ledgerIds))) { // if (item.getSalesLedgerId() == null) { // continue; // } // result.merge(item.getSalesLedgerId().longValue(), defaultDecimal(item.getInvoiceTotal()), BigDecimal::add); // } return result; } src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -59,9 +59,7 @@ PURCHASE_LEDGER_FILE("purchase_ledger_file"), RECEIPT_PAYMENT("receipt_payment"), PAYMENT_SHIPPING("payment_shipping"), INVOICE_REGISTRATION_PRODUCT("invoice_registration_product"), LOSS("loss"), INVOICE_REGISTRATION("invoice_registration"), INVOICE_LEDGER_FILE("invoice_ledger_file"), INVOICE_LEDGER("invoice_ledger"), COMMON_FILE("common_file"), src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; @@ -17,27 +16,23 @@ import com.ruoyi.purchase.pojo.PurchaseLedgerTemplate; import com.ruoyi.purchase.pojo.SalesLedgerProductTemplate; import com.ruoyi.purchase.service.IPurchaseLedgerService; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ISalesLedgerService; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import jakarta.servlet.http.HttpServletResponse; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.math.BigDecimal; import java.net.URLEncoder; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; /** * éè´å°è´¦Controller @@ -219,7 +214,7 @@ */ @GetMapping("/getProductBySalesNo") public AjaxResult getProductBySalesNo(Long id) { return AjaxResult.success(purchaseLedgerService.getProductBySalesNo(id)); return AjaxResult.success(); } /** src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
@@ -24,5 +24,4 @@ IPage<VatDto> listVat(Page page,@Param("month") String month); List<VatDto> listVat1(); } src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -6,7 +6,6 @@ import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.purchase.dto.PurchaseLedgerDto; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; import com.ruoyi.sales.pojo.SalesLedgerProduct; import org.springframework.web.multipart.MultipartFile; @@ -39,8 +38,6 @@ PurchaseLedgerDto getPurchaseNoById(Long id); IPage<PurchaseLedgerDto> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedgerDto purchaseLedger); List<InvoiceRegistrationProduct> getProductBySalesNo(Long id); String getPurchaseNo(); src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -51,11 +51,9 @@ import com.ruoyi.quality.pojo.QualityTestStandard; import com.ruoyi.quality.pojo.QualityTestStandardParam; import com.ruoyi.sales.mapper.CommonFileMapper; import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; import com.ruoyi.sales.mapper.SalesLedgerMapper; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.CommonFile; import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.impl.CommonFileServiceImpl; @@ -102,7 +100,6 @@ private final TicketRegistrationMapper ticketRegistrationMapper; private final ProductRecordMapper productRecordMapper; private final PaymentRegistrationMapper paymentRegistrationMapper; private final InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; private final StringRedisTemplate redisTemplate; private final QualityInspectMapper qualityInspectMapper; private final CommonFileServiceImpl commonFileService; @@ -498,18 +495,6 @@ purchaseLedgerDto.setSalesLedgerFiles(commonFiles); }); return purchaseLedgerDtoIPage; } @Override public List<InvoiceRegistrationProduct> getProductBySalesNo(Long id) { List<InvoiceRegistrationProduct> invoiceRegistrationProducts = invoiceRegistrationProductMapper.selectList(new LambdaQueryWrapper<InvoiceRegistrationProduct>() .select(InvoiceRegistrationProduct::getId, InvoiceRegistrationProduct::getProductCategory, InvoiceRegistrationProduct::getSpecificationModel, InvoiceRegistrationProduct::getUnit, InvoiceRegistrationProduct::getQuantity) .eq(InvoiceRegistrationProduct::getSalesLedgerId, id)); if (invoiceRegistrationProducts.isEmpty()) { return new ArrayList<>(); } return invoiceRegistrationProducts; } @Override src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/controller/InvoiceRegistrationController.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
@@ -9,7 +9,6 @@ import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; import com.ruoyi.sales.dto.ReceiptPaymentRecordDto; import com.ruoyi.sales.pojo.ReceiptPayment; @@ -68,12 +67,12 @@ /** * 客æ·å¾æ¥è®°å½æ¥è¯¢ * @param receiptPaymentDto * @param * @return */ @GetMapping("/customerInteractions") public AjaxResult customerInteractions (InvoiceLedgerDto receiptPaymentDto) { return AjaxResult.success(receiptPaymentService.customerInteractions(receiptPaymentDto)); public AjaxResult customerInteractions () { return AjaxResult.success(); } /** @@ -125,15 +124,6 @@ } /** * å¼ç¥¨å°è´¦è¯¦æ * @param id * @return */ @GetMapping("/invoiceInfo") public AjaxResult invoiceInfo (Integer id) { return AjaxResult.success(receiptPaymentService.invoiceInfo(id)); } /** * æ¬æåºæ¶,忬¾éé¢ src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -13,9 +13,7 @@ import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.R; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.mapper.InvoiceLedgerMapper; import com.ruoyi.sales.mapper.ReceiptPaymentMapper; import com.ruoyi.sales.pojo.ReceiptPayment; import com.ruoyi.sales.pojo.SalesLedger; @@ -57,7 +55,6 @@ private ISalesLedgerService salesLedgerService; private ICommonFileService commonFileService; private InvoiceLedgerMapper invoiceLedgerMapper; private ReceiptPaymentMapper receiptPaymentMapper; private final FileUtil fileUtil; @@ -122,20 +119,6 @@ if(CollectionUtils.isEmpty(list)){ return getDataTable(list); } List<Long> salesLedgerIds = list.stream().map(SalesLedger::getId).collect(Collectors.toList()); List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds); if(CollectionUtils.isEmpty(invoiceLedgerDtoList)){ return getDataTable(list); } for (SalesLedger salesLedger : list) { for (InvoiceLedgerDto invoiceLedgerDto : invoiceLedgerDtoList) { if (salesLedger.getId().intValue() == invoiceLedgerDto.getSalesLedgerId()) { BigDecimal noInvoiceAmountTotal = salesLedger.getContractAmount().subtract(invoiceLedgerDto.getInvoiceTotal()); salesLedger.setNoInvoiceAmountTotal(noInvoiceAmountTotal); } } } return getDataTable(list); } @@ -267,20 +250,6 @@ // è·åå½å页ææå°è´¦è®°å½ç ID éå List<Long> salesLedgerIds = iPage.getRecords().stream().map(SalesLedger::getId).collect(Collectors.toList()); // æ¥è¯¢å票信æ¯çå·²å¼ç¥¨éé¢ List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds); if (CollectionUtils.isEmpty(invoiceLedgerDtoList)) { invoiceLedgerDtoList = Collections.emptyList(); } // 转æ¢åç¥¨æ°æ®, key 为å°è´¦ID, value 为该å°è´¦çæ»å¼ç¥¨éé¢ Map<Long, BigDecimal> invoiceTotals = invoiceLedgerDtoList.stream() .filter(dto -> dto.getSalesLedgerId() != null && dto.getInvoiceTotal() != null) .collect(Collectors.toMap( dto -> dto.getSalesLedgerId().longValue(), InvoiceLedgerDto::getInvoiceTotal, BigDecimal::add // åå¨éå¤IDæ§è¡ç´¯å )); // æ¥è¯¢å款/仿¬¾è®°å½ List<ReceiptPayment> receiptPayments = Collections.emptyList(); @@ -305,30 +274,11 @@ // ååæ»éé¢ BigDecimal contractAmount = salesLedgerVo.getContractAmount() == null ? BigDecimal.ZERO : salesLedgerVo.getContractAmount(); // å¼ç¥¨æ»é¢å忬¾æ»é¢ BigDecimal invoiceTotal = invoiceTotals.getOrDefault(ledgerId, BigDecimal.ZERO); BigDecimal receiptPaymentAmountTotal = receiptTotals.getOrDefault(ledgerId, BigDecimal.ZERO); // æªå¼ç¥¨éé¢ = ååéé¢ - å·²å¼ç¥¨éé¢ BigDecimal noInvoiceAmountTotal = contractAmount.subtract(invoiceTotal); if (noInvoiceAmountTotal.compareTo(BigDecimal.ZERO) < 0) { noInvoiceAmountTotal = BigDecimal.ZERO; } // å¾ åæ¬¾éé¢ = å·²å¼ç¥¨éé¢ - 已忬¾éé¢ BigDecimal noReceiptPaymentAmountTotal = invoiceTotal.subtract(receiptPaymentAmountTotal); if (noReceiptPaymentAmountTotal.compareTo(BigDecimal.ZERO) < 0) { noReceiptPaymentAmountTotal = BigDecimal.ZERO; } salesLedgerVo.setNoInvoiceAmountTotal(noInvoiceAmountTotal); salesLedgerVo.setInvoiceTotal(invoiceTotal); salesLedgerVo.setReceiptPaymentAmountTotal(receiptPaymentAmountTotal); salesLedgerVo.setNoReceiptAmount(noReceiptPaymentAmountTotal); // å¦æå·²ç»æè¿å¼ç¥¨æå款æä½,åä¸å 许ç¼è¾ boolean hasInvoiceOperation = invoiceTotal.compareTo(BigDecimal.ZERO) > 0; boolean hasReceiptOperation = receiptPaymentAmountTotal.compareTo(BigDecimal.ZERO) > 0; salesLedgerVo.setIsEdit(!(hasInvoiceOperation || hasReceiptOperation)); salesLedgerVo.setIsEdit(hasReceiptOperation); salesLedgerVo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.FILE, RecordTypeEnum.SALES_LEDGER, ledgerId)); } src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java
@@ -1,19 +1,12 @@ package com.ruoyi.sales.excel; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.vo.FileVo; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import com.ruoyi.sales.pojo.InvoiceLedger; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Data public class InvoiceLedgerExcelDto { src/main/java/com/ruoyi/sales/excel/InvoiceRegisAndProductExcelDto.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerFileMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/mapper/InvoiceRegistrationProductMapper.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java
@@ -4,14 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.dto.CustomerInteractionDto; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; import com.ruoyi.sales.dto.ReceiptPaymentExeclDto; import com.ruoyi.sales.pojo.ReceiptPayment; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; public interface ReceiptPaymentMapper extends BaseMapper<ReceiptPayment> { @@ -27,13 +25,6 @@ * @return */ IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, @Param("req") ReceiptPaymentDto receiptPaymentDto); /** * å¼ç¥¨å°è´¦è¯¦æ * @param id * @return */ InvoiceLedgerDto invoiceInfo(Integer id); /** * 计ç®åå¤å°æ¡æ°æ®å款éé¢ç»¼å @@ -59,13 +50,6 @@ * @return */ List<CustomerInteractionDto> customerInteractions (ReceiptPaymentDto receiptPaymentDto); /** * 客æ·åæ¬¾è®°å½æ¥è¯¢ * @param invoiceLedgerDto * @return */ List<InvoiceLedgerDto> invoiceLedgerSalesAccount(@Param("invoiceLedgerDto") InvoiceLedgerDto invoiceLedgerDto); /** * æ¥è¯¢å款记å½ä¸å页 src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/pojo/InvoiceLedgerFile.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/pojo/InvoiceRegistration.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/service/InvoiceRegistrationService.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
@@ -2,8 +2,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.dto.CustomerInteractionDto; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; import com.ruoyi.sales.pojo.ReceiptPayment; @@ -60,12 +58,7 @@ */ IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto); /** * å¼ç¥¨å°è´¦è¯¦æ * @param id * @return */ InvoiceLedgerDto invoiceInfo(Integer id); Map<String,BigDecimal> getAmountMouth(); @@ -78,13 +71,6 @@ * æ¥è¯¢å款记å½å页 */ IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto); /** * 客æ·å¾æ¥è®°å½æ¥è¯¢ * @param receiptPaymentDto * @return */ List<InvoiceLedgerDto> customerInteractions (InvoiceLedgerDto receiptPaymentDto); /** * æ¥è¯¢å款记å½å页 src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
ÎļþÒÑɾ³ý src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; import com.ruoyi.sales.dto.ReceiptPaymentExeclDto; import com.ruoyi.sales.mapper.ReceiptPaymentMapper; @@ -212,16 +211,6 @@ return receiptPaymentDtoIPage; } /** * å¼ç¥¨å°è´¦è¯¦æ * @param id * @return */ @Override public InvoiceLedgerDto invoiceInfo(Integer id) { return receiptPaymentMapper.invoiceInfo(id); } @Override public Map<String,BigDecimal> getAmountMouth() { List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(null); @@ -266,16 +255,6 @@ @Override public IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) { return receiptPaymentMapper.receiptPaymentHistoryListPage(page, receiptPaymentDto); } /** * 客æ·å¾æ¥è®°å½æ¥è¯¢ * @param receiptPaymentDto * @return */ @Override public List<InvoiceLedgerDto> customerInteractions(InvoiceLedgerDto receiptPaymentDto) { return receiptPaymentMapper.invoiceLedgerSalesAccount(receiptPaymentDto); } /** src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -14,9 +14,7 @@ import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.quality.mapper.QualityInspectMapper; import com.ruoyi.sales.dto.InvoiceRegistrationProductDto; import com.ruoyi.sales.dto.SalesLedgerProductDto; import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; import com.ruoyi.sales.mapper.SalesLedgerMapper; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; @@ -76,8 +74,6 @@ @Autowired private TechnologyBomStructureMapper technologyBomStructureMapper; @Autowired private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; @Autowired private ProductionProductMainMapper productionProductMainMapper; @Autowired private ProductionProductOutputMapper productionProductOutputMapper; @@ -116,34 +112,6 @@ item.setExpressNumber(shippingInfo.getExpressNumber()); } }); // å¼ç¥¨ InvoiceRegistrationProductDto invoiceRegistrationProductDto = new InvoiceRegistrationProductDto(); invoiceRegistrationProductDto.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId().intValue()); List<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoList = invoiceRegistrationProductMapper.invoiceRegistrationProductList(invoiceRegistrationProductDto); // ç»è®¡å¼ç¥¨ç»è®°äº§åçå·²å¼ç¥¨æ°/å·²å¼ç¥¨éé¢ if (!CollectionUtils.isEmpty(invoiceRegistrationProductDtoList)) { for (SalesLedgerProduct ledgerProduct : salesLedgerProducts) { BigDecimal invoiceNum = BigDecimal.ZERO; BigDecimal invoiceAmount = BigDecimal.ZERO; BigDecimal noInvoiceNum = BigDecimal.ZERO; BigDecimal noInvoiceAmount = BigDecimal.ZERO; for (InvoiceRegistrationProductDto registrationProductDto : invoiceRegistrationProductDtoList) { if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){ invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum()); invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount()); } } noInvoiceNum = ledgerProduct.getQuantity().subtract(invoiceNum); noInvoiceAmount = ledgerProduct.getTaxInclusiveTotalPrice().subtract(invoiceAmount); ledgerProduct.setInvoiceNum(invoiceNum); ledgerProduct.setInvoiceAmount(invoiceAmount); ledgerProduct.setNoInvoiceNum(noInvoiceNum); ledgerProduct.setNoInvoiceAmount(noInvoiceAmount); } } } return salesLedgerProducts; } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -88,9 +88,6 @@ private final ShippingInfoServiceImpl shippingInfoServiceImpl; private final CommonFileServiceImpl commonFileService; private final ShippingInfoMapper shippingInfoMapper; private final InvoiceLedgerMapper invoiceLedgerMapper; private final InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; private final InvoiceRegistrationMapper invoiceRegistrationMapper; private final ProductionProductMainMapper productionProductMainMapper; private final ProductionProductOutputMapper productionProductOutputMapper; private final ProductionProductInputMapper productionProductInputMapper; @@ -294,24 +291,12 @@ .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); // å¼ç¥¨éé¢ LambdaQueryWrapper<InvoiceLedger> invoiceLedgerQuery = new LambdaQueryWrapper<>(); invoiceLedgerQuery .ge(InvoiceLedger::getCreateTime, startTime) .le(InvoiceLedger::getCreateTime, endTime); List<InvoiceLedger> invoiceLedgers = invoiceLedgerMapper.selectList(invoiceLedgerQuery); BigDecimal invoiceAmount = invoiceLedgers.stream() .map(InvoiceLedger::getInvoiceTotal) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); MonthlyAmountDto dto = new MonthlyAmountDto(); dto.setMonth(yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"))); dto.setReceiptAmount(receiptAmount); dto.setInvoiceAmount(invoiceAmount); dto.setInvoiceAmount(BigDecimal.ZERO); result.add(dto); } @@ -533,23 +518,7 @@ salesLedgerProductMapper.deleteBatchIds(productIds); } LambdaQueryWrapper<InvoiceRegistrationProduct> wrapper = new LambdaQueryWrapper<>(); wrapper.in(InvoiceRegistrationProduct::getSalesLedgerId, idList); List<InvoiceRegistrationProduct> invoiceRegistrationProducts = invoiceRegistrationProductMapper.selectList(wrapper); List<Integer> invoiceLedgerIds = new ArrayList<>(); if (CollectionUtils.isNotEmpty(invoiceRegistrationProducts)) { LambdaQueryWrapper<InvoiceLedger> wrapperOne = new LambdaQueryWrapper<>(); wrapperOne.in(InvoiceLedger::getInvoiceRegistrationProductId, invoiceRegistrationProducts.stream().map(InvoiceRegistrationProduct::getId).collect(Collectors.toList())); List<InvoiceLedger> invoiceLedgers = invoiceLedgerMapper.selectList(wrapperOne); if (CollectionUtils.isNotEmpty(invoiceLedgers)) { invoiceLedgerIds = invoiceLedgers.stream().map(InvoiceLedger::getId).collect(Collectors.toList()); } invoiceLedgerMapper.delete(wrapperOne); } invoiceRegistrationProductMapper.delete(wrapper); LambdaQueryWrapper<InvoiceRegistration> wrapperTwo = new LambdaQueryWrapper<>(); wrapperTwo.in(InvoiceRegistration::getSalesLedgerId, idList); invoiceRegistrationMapper.delete(wrapperTwo); if (CollectionUtils.isNotEmpty(invoiceLedgerIds)) { LambdaQueryWrapper<ReceiptPayment> wrapperTree = new LambdaQueryWrapper<>(); src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
@@ -117,30 +117,5 @@ </where> </select> <select id="listVat1" resultType="com.ruoyi.purchase.dto.VatDto"> # SELECT # DATE_FORMAT(il.invoice_date, '%Y-%m') AS month, # ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount # FROM invoice_ledger il # LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id # WHERE il.invoice_no IS NOT NULL # AND invoice_type = 'å¢ä¸ç¥¨' # GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m') # ORDER BY month; # select DATE_FORMAT(a.issue_date, '%Y-%m'), sum(a.invoice_amount) as xTaxAmount # from (SELECT distinct pr.id, # tr.issue_date, # ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price, # ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), # 2) AS invoice_amount # FROM product_record pr # LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id # LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id # LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id # LEFT JOIN product_model pm ON pm.id = pr.product_model_id # WHERE type = 2 # and tr.invoice_number is not null) a # GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m') </select> </mapper> src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
ÎļþÒÑɾ³ý src/main/resources/mapper/sales/InvoiceRegistrationMapper.xml
ÎļþÒÑɾ³ý src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
ÎļþÒÑɾ³ý src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -126,22 +126,6 @@ </select> <select id="invoiceInfo" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto"> SELECT T1.id, T1.invoice_no, T1.invoice_total , T2.tax_rate, T3.customer_name, T3.sales_contract_no FROM invoice_ledger T1 LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id WHERE T1.id = #{id} </select> <select id="getReceiptAmount" resultType="java.math.BigDecimal"> SELECT SUM( receipt_payment_amount ) AS total_amount @@ -433,22 +417,4 @@ </select> <select id="invoiceLedgerSalesAccount" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto"> SELECT T1.sales_contract_no, T1.contract_amount AS invoice_total, IFNULL(SUM(T2.receipt_payment_amount), 0) AS receipt_payment_amount, IFNULL((T1.contract_amount - IFNULL(SUM(T2.receipt_payment_amount), 0)), 0) AS unReceipt_payment_amount, T2.receipt_payment_date FROM sales_ledger T1 INNER JOIN receipt_payment T2 ON T1.id = T2.sales_ledger_id <where> T1.customer_id = #{invoiceLedgerDto.customerId} <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' "> AND T1.customer_name LIKE CONCAT ('%', #{invoiceLedgerDto.searchText}, '%') </if> </where> GROUP BY T1.id, T1.sales_contract_no, T1.contract_amount, T2.receipt_payment_date </select> </mapper> </mapper>