From eba011c9c3a25e73763eb420e9c3275cc1112bab Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 20 一月 2026 14:05:31 +0800
Subject: [PATCH] yys 1.回款提醒,人力资源优化
---
src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java | 7 +++
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 2
src/main/java/com/ruoyi/home/controller/HomeController.java | 6 +++
src/main/java/com/ruoyi/home/service/HomeService.java | 2 +
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java | 10 +++--
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml | 5 ++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 8 +++-
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java | 2 +
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java | 7 +++
src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java | 9 +++-
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 17 ++++++++
11 files changed, 66 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/home/controller/HomeController.java b/src/main/java/com/ruoyi/home/controller/HomeController.java
index d0af0b5..1a32b8a 100644
--- a/src/main/java/com/ruoyi/home/controller/HomeController.java
+++ b/src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -77,5 +77,11 @@
return AjaxResult.success(statisticsReceivablePayable);
}
+ @ApiOperation("瓒呰繃15澶╁緟鍥炴鎻愮ず")
+ @GetMapping("/overdueReceivable")
+ public AjaxResult overdueReceivable() {
+ return AjaxResult.success(homeService.overdueReceivable());
+ }
+
}
diff --git a/src/main/java/com/ruoyi/home/service/HomeService.java b/src/main/java/com/ruoyi/home/service/HomeService.java
index 1902488..05b6e1a 100644
--- a/src/main/java/com/ruoyi/home/service/HomeService.java
+++ b/src/main/java/com/ruoyi/home/service/HomeService.java
@@ -26,4 +26,6 @@
List<ApproveProcess> todos() throws ParseException;
StatisticsReceivablePayableDto statisticsReceivablePayable(Integer type);
+
+ Long overdueReceivable();
}
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index ad6ca2f..0fc9ba9 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.home.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.ruoyi.approve.mapper.ApproveProcessMapper;
import com.ruoyi.approve.pojo.ApproveProcess;
import com.ruoyi.common.utils.SecurityUtils;
@@ -22,12 +24,14 @@
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.sales.dto.ReceiptPaymentDto;
import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.impl.ReceiptPaymentServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -404,4 +408,17 @@
return statisticsReceivablePayableDto;
}
+
+ @Autowired
+ private ReceiptPaymentServiceImpl receiptPaymentService;
+
+ @Override
+ public Long overdueReceivable() {
+ // 閫氳繃寮�绁ㄦ棩鏈熻秴杩�15澶╃殑鏈洖娆炬彁绀�
+ ReceiptPaymentDto receiptPaymentDto = new ReceiptPaymentDto();
+ receiptPaymentDto.setTimeOut(true);
+ receiptPaymentDto.setStatus(false);
+ IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentService.bindInvoiceNoRegPage(new Page<>(-1, -1), receiptPaymentDto);
+ return receiptPaymentDtoIPage.getTotal();
+ }
}
diff --git a/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
index 71f1b5d..c96d9fc 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
@@ -14,6 +14,7 @@
import com.ruoyi.purchase.pojo.PaymentRegistration;
import com.ruoyi.purchase.service.IPaymentRegistrationService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -69,8 +70,12 @@
*/
@Log(title = "浠樻鐧昏", businessType = BusinessType.INSERT)
@PostMapping
- public AjaxResult add(@RequestBody PaymentRegistration paymentRegistration) {
- return toAjax(paymentRegistrationService.insertPaymentRegistration(paymentRegistration));
+ public AjaxResult add(@RequestBody List<PaymentRegistration> paymentRegistration) {
+ if(CollectionUtils.isEmpty(paymentRegistration)) return error("璇烽�夋嫨浠樻鐧昏");
+ for (PaymentRegistration registration : paymentRegistration) {
+ paymentRegistrationService.insertPaymentRegistration(registration);
+ }
+ return toAjax(1);
}
/**
diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
index 5bbf31f..dd55f7d 100644
--- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
@@ -15,6 +15,9 @@
@Data
public class ReceiptPaymentDto extends ReceiptPayment {
+ @ApiModelProperty(value = "true:鏌ヨ瓒呰繃鍗佷簲澶╃殑鏈洖娆捐褰�")
+ private Boolean timeOut;
+
@ApiModelProperty(value = "瀹㈡埛鍚堝悓鍙�")
@Excel(name = "瀹㈡埛鍚堝悓鍙�")
private String customerContractNo;
@@ -70,6 +73,10 @@
@Excel(name = "浜у搧澶х被")
private String productCategory;
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ @Excel(name = "瑙勬牸鍨嬪彿")
+ private String specificationModel;
+
@ApiModelProperty(value = "鍥炴閲戦")
@Excel(name = "鍥炴閲戦")
private BigDecimal receiptPaymentAmountTotal;
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 0874b3e..c4379c2 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -22,7 +22,7 @@
private String productCategory;
private Set<Long> ids; //
/**
- * 鏄惁寮�绁� 1-鍚� 2-鏄�
+ * 鏄惁寮�绁� 2-鍚� 1-鏄�
*/
private Integer isInvoice;
@JsonFormat(pattern = "yyyy-MM-dd")
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index e79c836..2754b09 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -540,8 +540,10 @@
if (!insertList.isEmpty()) {
for (SalesLedgerProduct salesLedgerProduct : insertList) {
salesLedgerProduct.setType(type);
- salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
- salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
+ salesLedgerProduct
+ .setNoInvoiceNum(salesLedgerDto.getIsInvoice().equals(2) ? BigDecimal.ZERO :salesLedgerProduct.getQuantity());
+ salesLedgerProduct
+ .setNoInvoiceAmount(salesLedgerDto.getIsInvoice().equals(2) ? BigDecimal.ZERO : salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
}
if (salesLedgerDto.getIsInvoice().equals(2)) {
@@ -549,6 +551,8 @@
for (SalesLedgerProduct productDatum : insertList) {
productDatum.setCurrentInvoiceAmount(productDatum.getTaxInclusiveTotalPrice());
productDatum.setCurrentInvoiceNum(productDatum.getQuantity());
+ productDatum.setInvoiceNum(productDatum.getQuantity());
+ productDatum.setInvoiceAmount(productDatum.getTaxInclusiveTotalPrice());
}
salesLedgerDto.setId(salesLedgerId);
salesLedgerDto.setIssueDate(LocalDate.now());
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
index 058513a..a7a7ab5 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.sales.dto.SalesQuotationDto;
@@ -100,6 +101,7 @@
@Override
public BigDecimal detail(String type, String productName, String specification) {
+ if(StringUtils.isEmpty(type)) return null;
SalesQuotationProduct salesQuotationProduct = salesQuotationProductMapper.selectOne(new LambdaQueryWrapper<SalesQuotationProduct>()
.eq(SalesQuotationProduct::getProduct, productName)
.eq(SalesQuotationProduct::getSpecification, specification)
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java b/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
index dc17ed2..56908a7 100644
--- a/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffOnJob.java
@@ -117,6 +117,13 @@
private String contractTerm;
/**
+ * 鍚堝悓寮�濮嬫棩鏈�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "鍚堝悓寮�濮嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date contractStartTime;
+
+ /**
* 鍚堝悓鍒版湡鏃ユ湡
*/
@JsonFormat(pattern = "yyyy-MM-dd")
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
index f82ecc8..d2e82fd 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -156,10 +156,12 @@
StaffOnJob job = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery()
.eq(StaffOnJob::getStaffNo, staffJoinLeaveRecord.getStaffNo())).get(0);
//濡傛灉鏇存敼鐨勫悎鍚屽埌鏈熸椂闂存洿涔呭垯鏇存柊,濡傛灉娌℃湁灏变笉鐢ㄦ洿鏂�
- if (staffJoinLeaveRecord.getContractEndTime().compareTo(job.getContractExpireTime())>0) {
- BeanUtils.copyProperties(staffJoinLeaveRecord,job,ignoreProperties);
- staffOnJobMapper.updateById(job);
- }
+// if (staffJoinLeaveRecord.getContractEndTime().compareTo(job.getContractExpireTime())>0) {
+// BeanUtils.copyProperties(staffJoinLeaveRecord,job,ignoreProperties);
+// staffOnJobMapper.updateById(job);
+// }
+ BeanUtils.copyProperties(staffJoinLeaveRecord,job,ignoreProperties);
+ staffOnJobMapper.updateById(job);
}else {
/*绂昏亴*/
//绂昏亴鐨勭紪杈戜笉浼氬奖鍝嶅湪鑱岃〃
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index a52038b..28ddd02 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -78,6 +78,7 @@
T3.customer_name,
T4.invoiceFileName,
T5.product_category,
+ T5.specification_model,
IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
(T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
FROM invoice_ledger T1
@@ -113,6 +114,10 @@
<if test="req.invoiceDateEnd != null and req.invoiceDateEnd != '' ">
AND T1.invoice_date <= DATE_FORMAT(#{req.invoiceDateEnd},'%Y-%m-%d')
</if>
+ <if test="req.timeOut != null and req.timeOut">
+ AND T1.invoice_date < DATE_SUB(CURDATE(), INTERVAL 15 DAY)
+ AND (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) > 0
+ </if>
</where>
ORDER BY T2.create_time DESC
</select>
--
Gitblit v1.9.3