From 37b697351e8e0a9200eee1276c4081c07588dc10 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 17 六月 2025 20:39:48 +0800
Subject: [PATCH] 未回款金额(元)为NaN修复
---
src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml | 7 +
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 2
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 6 +
src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java | 2
src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java | 6 +
src/main/resources/mapper/purchase/ProductRecordMapper.xml | 11 ++
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 24 ++++
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml | 6 +
src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java | 6 +
src/main/java/com/ruoyi/purchase/service/IProductRecordService.java | 4
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | 7 +
src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java | 34 ++++++
src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java | 8 +
src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java | 7 +
src/main/java/com/ruoyi/basic/controller/SupplierManageController.java | 6 +
src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java | 8 +
src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java | 32 ++++++
src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java | 4
src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java | 5 +
src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java | 9 +
src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java | 5
src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java | 4
src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java | 9 +
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java | 11 ++
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java | 28 +++--
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java | 6 +
src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml | 32 ++++++
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml | 6 +
28 files changed, 279 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java b/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
index d934e46..b50f88f 100644
--- a/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
+++ b/src/main/java/com/ruoyi/basic/controller/SupplierManageController.java
@@ -95,7 +95,11 @@
@PostMapping("/import")
@Log(title = "渚涘簲鍟嗗鍏�", businessType = BusinessType.IMPORT)
public AjaxResult importData(MultipartFile file) {
- return AjaxResult.success(supplierService.importData(file));
+ Boolean b = supplierService.importData(file);
+ if (b) {
+ return AjaxResult.success("瀵煎叆鎴愬姛");
+ }
+ return AjaxResult.error("瀵煎叆澶辫触");
}
diff --git a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
new file mode 100644
index 0000000..50367c9
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
@@ -0,0 +1,34 @@
+package com.ruoyi.purchase.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.purchase.dto.InvoicePurchaseDto;
+import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
+import com.ruoyi.purchase.pojo.InvoicePurchase;
+import com.ruoyi.purchase.service.IInvoicePurchaseService;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@Api(tags = "閲囪喘鎶ヨ〃")
+@RequestMapping("/purchase/report")
+@AllArgsConstructor
+public class AccountingReportController {
+
+ @Autowired
+ private IInvoicePurchaseService invoicePurchaseService;
+
+ @GetMapping("/list")
+ @Log(title = "閲囪喘鎶ヨ〃", businessType = BusinessType.OTHER)
+ public AjaxResult list(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto) {
+ IPage<InvoicePurchaseReportDto> result =invoicePurchaseService.listPurchaseReport(page, invoicePurchaseReportDto);
+ return AjaxResult.success(result);
+ }
+}
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index eb917ec..8f991e3 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -12,6 +12,7 @@
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.purchase.service.IPurchaseLedgerService;
import com.ruoyi.sales.service.ISalesLedgerService;
+import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
@@ -136,4 +137,11 @@
public IPage<PurchaseLedger> listPage(Page page, PurchaseLedger purchaseLedger) {
return purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger);
}
+
+ @ApiOperation("鐢熸垚閲囪喘搴忓垪鍙�")
+ @GetMapping("/createPurchaseNo")
+ @Log(title = "鐢熸垚閲囪喘搴忓垪鍙�", businessType = BusinessType.OTHER)
+ public String createPurchaseNo() {
+ return purchaseLedgerService.getPurchaseNo();
+ }
}
diff --git a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
index 93cb18a..7580833 100644
--- a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
@@ -105,6 +105,15 @@
}
/**
+ * 鍒嗛〉鏌ヨ浜у搧淇℃伅寮�绁ㄨ褰曞垪琛�
+ */
+ @GetMapping("/productRecordPage")
+ public AjaxResult productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
+ IPage<ProductRecord> list = productRecordService.productRecordPage(page,ticketRegistrationDto);
+ return AjaxResult.success(list);
+ }
+
+ /**
* 鏌ヨ鍙戠エ鍙�
*/
@GetMapping("/getTicketNo")
diff --git a/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java b/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java
new file mode 100644
index 0000000..f9b8657
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java
@@ -0,0 +1,32 @@
+package com.ruoyi.purchase.dto;
+
+import lombok.Data;
+
+/**
+ * 鎶ヨ〃鍒嗘瀽---椤圭洰鍒╂鼎
+ */
+@Data
+public class InvoicePurchaseReportDto {
+
+ //閿�鍞悎鍚屽彿
+ private String customerContractNo;
+// 瀹㈡埛鍚嶇О
+ private String customerName;
+// 椤圭洰鍚嶇О
+ private String projectName;
+// 鍚堝悓閲戦
+ private String contractAmount;
+// 閲囪喘閲戦
+ private String purchaseAmount;
+
+ private String saleTaxExclusiveTotalPrice;
+
+ private String taxExclusiveTotalPrice;
+// 鍒╂鼎
+ private String balance;
+ // 鍒╂鼎鐜�
+ private String balanceRatio;
+ // 澧炲�肩◣
+ private String balanceAmount;
+
+}
diff --git a/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java b/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java
index b34494d..0ba914a 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java
@@ -39,4 +39,8 @@
// 宸蹭粯娆炬�婚噾棰�
private BigDecimal paymentAmountTotal;
+
+ private String paymentDateStart;
+
+ private String paymentDateEnd;
}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
index 39f245a..36ed16f 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
@@ -2,7 +2,10 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
import com.ruoyi.purchase.pojo.InvoicePurchase;
+import org.apache.ibatis.annotations.Param;
/**
* 鍙戠エ淇℃伅Mapper鎺ュ彛
@@ -11,4 +14,8 @@
* @date 2025-05-14
*/
public interface InvoicePurchaseMapper extends BaseMapper<InvoicePurchase> {
+
+
+ IPage<InvoicePurchaseReportDto> selectPurchaseReport(IPage page, @Param("c") InvoicePurchaseReportDto invoicePurchaseReportDto);
+
}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
index d4570fb..0f81a0e 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
@@ -1,6 +1,9 @@
package com.ruoyi.purchase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.purchase.dto.TicketRegistrationDto;
import com.ruoyi.purchase.pojo.ProductRecord;
/**
@@ -11,4 +14,5 @@
*/
public interface ProductRecordMapper extends BaseMapper<ProductRecord> {
+ IPage<ProductRecord> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto);
}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
index d4b49c2..d742bc8 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
@@ -140,4 +140,10 @@
@ApiModelProperty(value = "鏈粯娆炬�婚噾棰�")
@TableField(exist = false)
private BigDecimal unPaymentAmountTotal;
+
+ @TableField(exist = false)
+ private Boolean status;
+
+ private String issueDateStart;
+ private String issueDateEnd;
}
diff --git a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
index fe664f8..41e8198 100644
--- a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
@@ -1,8 +1,11 @@
package com.ruoyi.purchase.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.purchase.dto.InvoicePurchaseDto;
+import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
import com.ruoyi.purchase.pojo.InvoicePurchase;
import java.io.IOException;
@@ -24,4 +27,6 @@
InvoicePurchaseDto getInvoiceById(InvoicePurchaseDto invoicePurchaseDto);
List<InvoicePurchase> selectInvoicePurchaseLists(InvoicePurchase invoicePurchase);
+
+ IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto);
}
diff --git a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
index 0eee184..17805a2 100644
--- a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
@@ -1,5 +1,7 @@
package com.ruoyi.purchase.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.purchase.dto.TicketRegistrationDto;
import com.ruoyi.purchase.pojo.ProductRecord;
@@ -15,4 +17,6 @@
public interface IProductRecordService extends IService<ProductRecord> {
List<ProductRecord> selectProductRecordList(TicketRegistrationDto ticketRegistrationDto);
+
+ IPage<ProductRecord> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto);
}
diff --git a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
index e1978f1..2190972 100644
--- a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -37,4 +37,6 @@
IPage<PurchaseLedger> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedger purchaseLedger);
List<InvoiceRegistrationProduct> getProductBySalesNo(Long id);
+
+ String getPurchaseNo();
}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
index ee93b39..1c8f326 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
@@ -2,13 +2,16 @@
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.other.mapper.TempFileMapper;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.purchase.dto.InvoicePurchaseDto;
+import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
import com.ruoyi.purchase.mapper.InvoicePurchaseMapper;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.InvoicePurchase;
@@ -158,4 +161,10 @@
public List<InvoicePurchase> selectInvoicePurchaseLists(InvoicePurchase invoicePurchase) {
return invoicePurchaseMapper.selectList(new LambdaQueryWrapper<>());
}
+
+ @Override
+ public IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto) {
+
+ return invoicePurchaseMapper.selectPurchaseReport(page, invoicePurchaseReportDto);
+ }
}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
index 96f2ff0..b3959b9 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.purchase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.purchase.dto.TicketRegistrationDto;
import com.ruoyi.purchase.mapper.ProductRecordMapper;
@@ -36,4 +38,10 @@
.eq(ProductRecord::getType, "2"));
}
+ @Override
+ public IPage<ProductRecord> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
+
+ return productRecordMapper.productRecordPage(page, ticketRegistrationDto);
+ }
+
}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index ac9691b..ffe7f4f 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -38,6 +38,7 @@
import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.io.IOException;
@@ -50,6 +51,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -85,6 +87,8 @@
private final ProductRecordMapper productRecordMapper;
private final InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
+
+ private final StringRedisTemplate redisTemplate;
@Value("${file.upload-dir}")
private String uploadDir;
@@ -440,6 +444,26 @@
return invoiceRegistrationProducts;
}
+ @Override
+ public String getPurchaseNo() {
+ // 鐢熸垚鏃ユ湡鍓嶇紑锛堜緥濡傦細CG20250405锛�
+ String purchaseNo = "CG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+
+ // 鏋勫缓 Redis Key锛堟寜澶╁垎闅旓級
+ String redisKey = "purchase_no:" + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE);
+
+ // 鑾峰彇褰撳墠搴忓彿骞堕�掑锛堝師瀛愭搷浣滐級
+ Long sequence = redisTemplate.opsForValue().increment(redisKey);
+
+ // 璁剧疆杩囨湡鏃堕棿锛堟鏃ュけ鏁堬紝闃叉鍐椾綑鏁版嵁锛�
+ if (sequence == 1) {
+ redisTemplate.expire(redisKey, 1, TimeUnit.DAYS);
+ }
+
+ // 杩斿洖瀹屾暣缂栧彿锛堝 CG202504050001锛�
+ return purchaseNo + String.format("%03d", sequence);
+ }
+
/**
* 涓嬪垝绾垮懡鍚嶈浆椹煎嘲鍛藉悕
*/
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
index a1272c3..d154370 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -3,6 +3,7 @@
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.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.base.BaseException;
@@ -88,13 +89,13 @@
}
List<TicketRegistration> ticketRegistrationList = ticketRegistrationMapper.selectList(queryWrapper);
// 璁$畻宸蹭粯娆鹃噾棰�
- if(CollectionUtils.isNotEmpty(ticketRegistrationList)){
+ if (CollectionUtils.isNotEmpty(ticketRegistrationList)) {
List<Long> ids = ticketRegistrationList.stream().map(TicketRegistration::getId).collect(Collectors.toList());
List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids);
for (TicketRegistration registration : ticketRegistrationList) {
BigDecimal paymentAmountTotal = BigDecimal.ZERO;
for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) {
- if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){
+ if (registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())) {
paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal();
break;
}
@@ -138,13 +139,13 @@
// 6. 澧炲姞閲囪喘鍙拌处浜у搧寮�绁ㄨ褰�
List<SalesLedgerProduct> salesLedgerProducts = ticketRegistrationDto.getProductData();
- if (CollectionUtils.isNotEmpty(salesLedgerProducts)){
+ if (CollectionUtils.isNotEmpty(salesLedgerProducts)) {
for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
ProductRecord productRecord = new ProductRecord();
productRecord.setTicketRegistrationId(ticketRegistration.getId());
productRecord.setPurchaseLedgerId(ticketRegistrationDto.getPurchaseLedgerId());
productRecord.setCreatedAt(DateUtils.getNowDate());
- BeanUtils.copyProperties(salesLedgerProduct,productRecord);
+ BeanUtils.copyProperties(salesLedgerProduct, productRecord);
productRecord.setId(null);
productRecord.setType("2");
productRecordMapper.insert(productRecord);
@@ -257,8 +258,8 @@
@Override
public List getTicketNo(TicketRegistrationDto ticketRegistrationDto) {
LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.select(TicketRegistration::getId,TicketRegistration::getInvoiceNumber,TicketRegistration::getInvoiceAmount)
- .eq(TicketRegistration::getPurchaseLedgerId,ticketRegistrationDto.getId());
+ queryWrapper.select(TicketRegistration::getId, TicketRegistration::getInvoiceNumber, TicketRegistration::getInvoiceAmount)
+ .eq(TicketRegistration::getPurchaseLedgerId, ticketRegistrationDto.getId());
List<Map<String, Object>> result = ticketRegistrationMapper.selectMaps(queryWrapper);
// 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
return result.stream().map(map -> map.entrySet().stream()
@@ -273,18 +274,20 @@
LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(ticketRegistration.getPurchaseContractNumber())) {
queryWrapper.like(TicketRegistration::getPurchaseContractNumber, ticketRegistration.getPurchaseContractNumber())
- .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName())
- .eq(TicketRegistration::getIssueDate, ticketRegistration.getIssueDate());
+ .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName());
+ }
+ if (ObjectUtils.isEmpty(ticketRegistration.getIssueDateStart())&&ObjectUtils.isEmpty(ticketRegistration.getIssueDateEnd())) {
+ queryWrapper.between(TicketRegistration::getIssueDate,LocalDate.parse(ticketRegistration.getIssueDateStart(), DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalDate.parse(ticketRegistration.getIssueDateEnd(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
IPage<TicketRegistration> ticketRegistrationIPage = ticketRegistrationMapper.selectPage(page, queryWrapper);
// 璁$畻宸蹭粯娆鹃噾棰�
- if(CollectionUtils.isNotEmpty(ticketRegistrationIPage.getRecords())){
+ if (CollectionUtils.isNotEmpty(ticketRegistrationIPage.getRecords())) {
List<Long> ids = ticketRegistrationIPage.getRecords().stream().map(TicketRegistration::getId).collect(Collectors.toList());
List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids);
for (TicketRegistration registration : ticketRegistrationIPage.getRecords()) {
BigDecimal paymentAmountTotal = BigDecimal.ZERO;
for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) {
- if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){
+ if (registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())) {
paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal();
break;
}
@@ -295,7 +298,12 @@
registration.setUnPaymentAmountTotal(subtractAmount);
}
}
+ if (!ObjectUtils.isEmpty(ticketRegistration.getStatus())) {
+ if (ticketRegistration.getStatus()) {
+ ticketRegistrationIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getUnPaymentAmountTotal()));
+ }
+ }
return ticketRegistrationIPage;
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 79bde14..b5296d9 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -1,6 +1,7 @@
package com.ruoyi.sales.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -22,6 +23,7 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -196,6 +198,11 @@
}
salesLedger.setInvoiceTotal(invoiceTotal);
}
+ if (ObjectUtils.isNotEmpty(salesLedgerDto.getStatus())) {
+ if (salesLedgerDto.getStatus()==1) {
+ iPage.getRecords().removeIf(salesLedger -> !Objects.equals(salesLedger.getNoInvoiceAmountTotal(), new BigDecimal("0.00")));
+ }
+ }
return iPage;
}
}
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
index 6edc5f0..8f3c175 100644
--- a/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.sales.dto;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.vo.FileVo;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
@@ -40,6 +41,11 @@
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate invoiceDate;
+ @TableField(exist = false)
+ private String invoiceDateStart;
+ @TableField(exist = false)
+ private String invoiceDateEnd;
+
@ApiModelProperty(value = "寮�绁ㄥ彴璐d")
private Integer invoiceLedgerId;
diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
index f46e99d..eb16ede 100644
--- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
@@ -1,10 +1,12 @@
package com.ruoyi.sales.dto;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.sales.pojo.ReceiptPayment;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
+import java.time.LocalDate;
@Data
public class ReceiptPaymentDto extends ReceiptPayment {
@@ -45,4 +47,13 @@
@ApiModelProperty(value = "寰呭洖娆鹃噾棰�")
private BigDecimal noReceiptAmount;
+ @TableField(exist = false)
+ private Boolean status;
+
+ @TableField(exist = false)
+ private String receiptPaymentDateStart;
+ @TableField(exist = false)
+ private String receiptPaymentDateEnd;
+
+
}
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index e873834..3f57720 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -32,4 +32,6 @@
private Integer Type;
@ApiModelProperty(value = "绛捐鏃ユ湡")
private LocalDate executionDate;
+
+ private Integer status;
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
index a67ec3a..125ed83 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -384,6 +384,7 @@
queryWrapper.eq("sales_ledger_product_id", invoiceRegistrationProduct.getSalesLedgerProductId());
queryWrapper.orderByAsc("create_time");
List<InvoiceRegistrationProduct> invoiceRegistrationProductList = invoiceRegistrationProductMapper.selectList(queryWrapper);
+// InvoiceRegistrationProduct invoiceRegistrationProduct = invoiceRegistrationProductMapper.selectById(invoiceRegistrationProductId);
int index = -1;
for (int i = 0; i < invoiceRegistrationProductList.size(); i++) {
InvoiceRegistrationProduct currentInvoiceRegProduct = invoiceRegistrationProductList.get(i);
@@ -415,8 +416,8 @@
salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
}else {
- salesLedgerProduct.setNoInvoiceNum(newInvoiceRegistrationProductList.get(newInvoiceRegistrationProductList.size()-1).getNoInvoiceNum());
- salesLedgerProduct.setNoInvoiceAmount(newInvoiceRegistrationProductList.get(newInvoiceRegistrationProductList.size()-1).getNoInvoiceAmount());
+ salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getNoInvoiceNum().add(invoiceRegistrationProduct.getInvoiceNum()));
+ salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getNoInvoiceAmount().add(invoiceRegistrationProduct.getInvoiceAmount()));
}
salesLedgerProductMapper.updateById(salesLedgerProduct);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
index c2b0619..e6f459a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -134,7 +134,11 @@
*/
@Override
public IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
- return receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
+ IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
+ if (receiptPaymentDto.getStatus()) {
+ receiptPaymentDtoIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()));
+ }
+ return receiptPaymentDtoIPage;
}
/**
diff --git a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
new file mode 100644
index 0000000..9a04b88
--- /dev/null
+++ b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.purchase.mapper.InvoicePurchaseMapper">
+
+
+ <select id="selectPurchaseReport" resultType="com.ruoyi.purchase.dto.InvoicePurchaseReportDto">
+ select sl.customer_contract_no,
+ sl.customer_name,
+ sl.project_name,
+ sl.contract_amount,
+ pl.contract_amount as purchase_amount,
+ sum(slp.tax_exclusive_total_price) as sale_tax_exclusive_total_price,
+ sum(pr.tax_exclusive_total_price) as tax_exclusive_total_price,
+ (sl.contract_amount-pl.contract_amount) as balance,
+ CONCAT(FORMAT((sl.contract_amount - pl.contract_amount) / sl.contract_amount * 100, 2), '%') AS balance_ratio,
+ sl.contract_amount-sum(slp.tax_exclusive_total_price)-(pl.contract_amount-sum(pr.tax_exclusive_total_price)) as balance_amount
+ from purchase_ledger pl
+ left join sales_ledger sl on pl.sales_ledger_id = sl.id
+ left join product_record pr on pr.purchase_ledger_id = pl.id
+ left join sales_ledger_product slp on slp.sales_ledger_id = sl.id
+
+ group by sl.customer_contract_no, sl.customer_name, sl.project_name, sl.contract_amount, pl.contract_amount
+ having sl.customer_contract_no is not null
+ <where>
+ <if test="c.customerName != null and c.customerName != ''">
+ and sl.customer_name like concat('%',#{c.customerName},'%')
+ </if>
+ </where>
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
index 61bbdfc..88c8a85 100644
--- a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
+++ b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -167,6 +167,12 @@
<if test="params.searchText != null and params.searchText != '' ">
AND T2.supplier_name LIKE CONCAT('%',#{params.searchText},'%')
</if>
+ <if test="params.paymentDateStart != null and params.paymentDateStart !='' ">
+ AND T1.payment_date >= STR_TO_DATE(#{params.paymentDateStart},'yyyy-MM-dd')
+ </if>
+ <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' ">
+ AND T1.payment_date >= STR_TO_DATE(#{params.paymentDateEnd},'yyyy-MM-dd')
+ </if>
</where>
ORDER BY T1.payment_date,T1.create_time DESC
</select>
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
new file mode 100644
index 0000000..c135606
--- /dev/null
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.purchase.mapper.ProductRecordMapper">
+
+
+ <select id="productRecordPage" resultType="com.ruoyi.purchase.pojo.ProductRecord">
+
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
index 9a68cb3..cab5382 100644
--- a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
@@ -107,8 +107,11 @@
T2.customer_name LIKE CONCAT('%',#{invoiceRegistrationProductDto.searchText},'%')
)
</if>
- <if test="invoiceRegistrationProductDto.invoiceDate != null">
- AND T3.invoice_date = #{invoiceRegistrationProductDto.invoiceDate}
+ <if test="invoiceRegistrationProductDto.invoiceDateStart != null and invoiceRegistrationProductDto.invoiceDateStart != ''">
+ AND T3.invoice_date >= STR_TO_DATE(#{invoiceRegistrationProductDto.invoiceDateStart}, '%Y-%m-%d')
+ </if>
+ <if test="invoiceRegistrationProductDto.invoiceDateEnd != null and invoiceRegistrationProductDto.invoiceDateEnd != ''">
+ AND T3.invoice_date < STR_TO_DATE(#{invoiceRegistrationProductDto.invoiceDateEnd}, '%Y-%m-%d')
</if>
</where>
ORDER BY T1.create_time DESC
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index 3e288af..a73f338 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -184,6 +184,12 @@
<if test="params.searchText != null and params.searchText != '' ">
T5.customer_name LIKE CONCAT('%',#{params.searchText},'%')
</if>
+ <if test="params.receiptPaymentDateStart != null and params.receiptPaymentDateStart != '' ">
+ AND T1.receipt_payment_date >= STR_TO_DATE(#{params.receiptPaymentDateStart},'yyyy-mm-dd')
+ </if>
+ <if test="params.receiptPaymentDateEnd != null and params.receiptPaymentDateEnd != '' ">
+ AND T1.receipt_payment_date < STR_TO_DATE(#{params.receiptPaymentDateEnd}, '%Y-%m-%d')
+ </if>
</where>
ORDER BY T1.receipt_payment_date DESC
</select>
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index a9ad438..118d092 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -64,6 +64,12 @@
<if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
</if>
+ <if test="salesLedgerDto.customerContractNo != null and salesLedgerDto.customerContractNo != '' ">
+ T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.customerContractNo},'%')
+ </if>
+ <if test="salesLedgerDto.projectName != null and salesLedgerDto.projectName != '' ">
+ T1.project_name LIKE CONCAT('%',#{salesLedgerDto.projectName},'%')
+ </if>
</where>
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3