From 80c45ea7934443bea5355bc6bace96ec23a58600 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 27 一月 2026 15:34:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java | 11 ++++-
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 2
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 1
src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java | 2
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 6 +++
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 8 ++++
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 14 -------
src/main/resources/mapper/sales/ShippingInfoMapper.xml | 7 +++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 2 +
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | 8 +++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 6 +++
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java | 10 +++++
src/main/resources/static/销售台账导入模板.xlsx | 0
src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java | 3 +
14 files changed, 59 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index e468919..42ca0ba 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -127,7 +127,7 @@
private Long tenantId;
/**
- * 瀹℃壒绫诲瀷
+ * 瀹℃壒绫诲瀷 1-鍏嚭绠$悊 2-璇峰亣绠$悊 3-鍑哄樊绠$悊 4-鎶ラ攢绠$悊 5-閲囪喘瀹℃壒 6-鎶ヤ环瀹℃壒 7-鍙戣揣瀹℃壒
*/
private Integer approveType;
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
index fef46ea..e01db26 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -90,7 +90,7 @@
/**
* 闄勪欢鏉愭枡璺緞鎴栧悕绉�
*/
- @Excel(name = "闄勪欢鏉愭枡璺緞鎴栧悕绉�")
+// @Excel(name = "闄勪欢鏉愭枡璺緞鎴栧悕绉�")
private String attachmentMaterials;
/**
@@ -151,6 +151,7 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
@ApiModelProperty("瀹℃壒鐘舵�� 1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触,5琛ㄧず鏄ā鏉�")
+ @Excel(name = "瀹℃壒鐘舵��", readConverterExp = "1=寰呭鏍�,2=瀹℃壒涓�,3=瀹℃壒閫氳繃,4=瀹℃壒澶辫触")
private Integer approvalStatus;
@ApiModelProperty(value = "妯℃澘鍚嶇О")
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 8277593..e5dd8a3 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -643,6 +643,12 @@
List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getNickName,
salesLedgerImportDtoList.stream().map(PurchaseLedgerImportDto::getRecorderName).collect(Collectors.toList())));
for (PurchaseLedgerImportDto salesLedgerImportDto : salesLedgerImportDtoList) {
+ PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()
+ .eq(PurchaseLedger::getPurchaseContractNumber, salesLedgerImportDto.getPurchaseContractNumber())
+ .last("limit 1"));
+ if(purchaseLedger != null){
+ continue;
+ }
PurchaseLedger salesLedger = new PurchaseLedger();
BeanUtils.copyProperties(salesLedgerImportDto, salesLedger);
// 閫氳繃渚涘簲鍟嗗悕绉版煡璇D
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 46d3d48..f006c5b 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -163,8 +163,14 @@
@Log(title = "閿�鍞彴璐�", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SalesLedgerDto salesLedgerDto) {
- List<SalesLedger> list = salesLedgerService.selectSalesLedgerList(salesLedgerDto);
+ Page page = new Page(-1,-1);
+ IPage<SalesLedger> salesLedgerIPage = listPage(page, salesLedgerDto);
ExcelUtil<SalesLedger> util = new ExcelUtil<SalesLedger>(SalesLedger.class);
+ if(salesLedgerIPage == null){
+ util.exportExcel(response, new ArrayList<>(), "閿�鍞彴璐︽暟鎹�");
+ return;
+ }
+ List<SalesLedger> list = salesLedgerIPage.getRecords();
util.exportExcel(response, list, "閿�鍞彴璐︽暟鎹�");
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index f9ea1df..71556a2 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -39,7 +39,7 @@
SalesQuotationDto afterSalesService = new SalesQuotationDto();
IPage<SalesQuotationDto> listPage = salesQuotationService.listPage(page, afterSalesService);
ExcelUtil<SalesQuotationDto> util = new ExcelUtil<SalesQuotationDto>(SalesQuotationDto.class);
- util.exportExcel(response, listPage.getRecords() , "鍙嶉鐧昏");
+ util.exportExcel(response, listPage.getRecords() , "閿�鍞姤浠�");
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 955f4da..8a48696 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -40,20 +40,6 @@
@Excel(name = "瀹㈡埛鍚堝悓鍙�")
private String customerContractNo;
- /**
- * 鍙戣揣杞︾墝鍙�
- */
- @Excel(name = "鍙戣揣杞︾墝鍙�")
- @TableField(exist = false)
- private String shippingCarNumber;
-
- /**
- * 鍙戣揣鏃ユ湡
- */
- @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- @TableField(exist = false)
- @JsonFormat(pattern = "yyyy-MM-dd")
- private Date shippingDate;
/**
* 椤圭洰鍚嶇О
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 8927d74..1df16bd 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -192,6 +192,14 @@
@TableField(exist = false)
private String shippingCarNumber;
+ @ApiModelProperty("蹇�掑叕鍙�")
+ @TableField(exist = false)
+ private String expressCompany;
+
+ @ApiModelProperty("蹇�掑崟鍙�")
+ @TableField(exist = false)
+ private String expressNumber;
+
/**
* 鍙戣揣鏃ユ湡
*/
diff --git a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
index efa3909..c70bbe1 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
@@ -7,8 +7,10 @@
import com.ruoyi.sales.dto.StatisticsTableDto;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.ShippingInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,6 +33,9 @@
@Autowired
private SalesLedgerProductMapper salesLedgerProductMapper;
+ @Autowired
+ private ShippingInfoMapper shippingInfoMapper;
+
public AjaxResult total() {
List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(null);
if(CollectionUtils.isEmpty(salesLedgers)) return AjaxResult.success(salesLedgers);
@@ -45,9 +50,9 @@
map.put("shipRate", "0%");
if(CollectionUtils.isEmpty(salesLedgerProducts)) return AjaxResult.success(map);
// 鍙戣揣鏁伴噺
- long count = salesLedgerProducts.stream()
- .filter(salesLedgerProduct -> salesLedgerProduct.getApproveStatus().equals(2))
- .count();
+ long count = shippingInfoMapper.selectCount(new LambdaQueryWrapper<ShippingInfo>()
+ .in(ShippingInfo::getSalesLedgerProductId, salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList()))
+ .eq(ShippingInfo::getStatus,"宸插彂璐�"));
map.put("shipRate", String.format("%.2f", count * 100.0 / salesLedgerProducts.size()) + "%");
return AjaxResult.success(map);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 88fb41b..55333a5 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -108,6 +108,8 @@
item.setShippingDate(shippingInfo.getShippingDate());
item.setShippingCarNumber(shippingInfo.getShippingCarNumber());
item.setShippingStatus(shippingInfo.getStatus());
+ item.setExpressCompany(shippingInfo.getExpressCompany());
+ item.setExpressNumber(shippingInfo.getExpressNumber());
}
});
// 寮�绁�
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 6f705a4..7464933 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -375,6 +375,12 @@
List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getNickName,
salesLedgerImportDtoList.stream().map(SalesLedgerImportDto::getEntryPerson).collect(Collectors.toList())));
for (SalesLedgerImportDto salesLedgerImportDto : salesLedgerImportDtoList) {
+ SalesLedger salesLedger1 = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+ .eq(SalesLedger::getSalesContractNo, salesLedgerImportDto.getSalesContractNo())
+ .last("LIMIT 1"));
+ if(salesLedger1 != null){
+ continue;
+ }
SalesLedger salesLedger = new SalesLedger();
BeanUtils.copyProperties(salesLedgerImportDto, salesLedger);
salesLedger.setExecutionDate(DateUtils.toLocalDate(salesLedgerImportDto.getExecutionDate()));
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 f181ea0..8e18058 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -29,6 +29,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
+import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -126,8 +127,17 @@
}
@Override
public boolean delete(Long id) {
+ SalesQuotation salesQuotation = salesQuotationMapper.selectById(id);
+ if(salesQuotation==null) return false;
salesQuotationMapper.deleteById(id);
salesQuotationProductMapper.delete(new LambdaQueryWrapper<SalesQuotationProduct>().eq(SalesQuotationProduct::getSalesQuotationId, id));
+ // 鍒犻櫎鎶ヤ环瀹℃壒
+ ApproveProcess one = approveProcessService.getOne(new LambdaQueryWrapper<ApproveProcess>()
+ .eq(ApproveProcess::getApproveType, 6)
+ .eq(ApproveProcess::getApproveReason, salesQuotation.getQuotationNo()));
+ if(one != null){
+ approveProcessService.delByIds(Collections.singletonList(one.getId()));
+ }
return true;
}
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 5d83bb1..552b83d 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -56,6 +56,7 @@
T1.attachment_materials,
T1.tenant_id,
T1.contract_amount,
+ T1.contract_amount as noInvoiceAmountTotal,
T1.execution_date,
T2.nick_name AS entry_person_name,
T1.payment_method
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 9f7ce19..34073ef 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -29,6 +29,13 @@
<if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
</if>
+ <if test="req.shippingNo != null and req.shippingNo != ''">
+ AND s.shipping_no LIKE CONCAT('%',#{req.shippingNo},'%')
+ </if>
+ <if test="req.expressNumber != null and req.expressNumber != ''">
+ AND s.express_number LIKE CONCAT('%',#{req.expressNumber},'%')
+ </if>
+ order by create_time DESC
</select>
<select id="listAll" resultType="com.ruoyi.sales.pojo.ShippingInfo">
SELECT
diff --git "a/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
index 8630fb2..9558711 100644
--- "a/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
+++ "b/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ
--
Gitblit v1.9.3