From 27aa4dd460ebd996f190315c9f9052b0646b6460 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 25 三月 2026 15:31:43 +0800
Subject: [PATCH] 采购销售审批功能迁移
---
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 10 ++
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 15 ++-
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 9 +
src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java | 2
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java | 6 +
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 64 ++++++++++++
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 6 +
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 7 +
src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java | 2
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 31 ++++++
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | 8 +
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 72 ++++++++++++++
src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java | 8 +
src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java | 3
14 files changed, 234 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index c1114bd..440eca1 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -22,7 +22,7 @@
@ApiModel
public class ApproveProcess{
/**
- *
+ *
*/
@TableId(type = IdType.AUTO)
private Long id;
@@ -124,9 +124,14 @@
// @TableField(fill = FieldFill.INSERT)
private Long tenantId;
- /**
- * 瀹℃壒绫诲瀷
- */
+ /** * 瀹℃壒绫诲瀷
+ * 0: "鍗忓悓瀹℃壒绠$悊琛�",
+ * 1: "鍏嚭绠$悊瀹℃壒琛�",
+ * 2: "璇峰亣绠$悊瀹℃壒琛�",
+ * 3: "鍑哄樊绠$悊瀹℃壒琛�",
+ * 4: "鎶ラ攢绠$悊瀹℃壒琛�",
+ * 5: "閲囪喘鐢宠瀹℃壒琛�",
+ * 6: "閿�鍞鍗曞鎵硅〃", */
private Integer approveType;
/**
@@ -143,4 +148,4 @@
private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index d0ff36a..491d87c 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.approve.mapper.ApproveNodeMapper;
import com.ruoyi.approve.mapper.ApproveProcessMapper;
@@ -13,8 +14,12 @@
import com.ruoyi.other.service.impl.TempFileServiceImpl;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +42,12 @@
private ApproveProcessMapper approveProcessMapper;
@Autowired
private SysUserMapper sysUserMapper;
+
+ @Autowired
+ private SalesLedgerMapper salesLedgerMapper;
+
+ @Autowired
+ private PurchaseLedgerMapper purchaseLedgerMapper;
@Autowired
private TempFileServiceImpl tempFileService;
@@ -137,6 +148,26 @@
}
approveProcessMapper.updateById(approveProcess);
+ //濡傛灉鏄�6閿�鍞鎵�,瀵瑰簲閿�鍞叧鑱旂殑琛ㄩ渶瑕佹洿鏂�
+ if (approveProcess.getApproveType()==6){
+ List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(Wrappers.
+ <SalesLedger>lambdaQuery().eq(SalesLedger::getSalesContractNo, approveProcess.getApproveReason()));
+ if (!CollectionUtils.isEmpty(salesLedgers)){
+ SalesLedger salesLedger = salesLedgers.get(0);
+ salesLedger.setApprovalStatus(status);
+ salesLedgerMapper.updateById(salesLedger);
+ }
+ }
+ //濡傛灉鏄�5閲囪喘瀹℃壒,瀵瑰簲閲囪喘鍏宠仈鐨勮〃闇�瑕佹洿鏂�
+ if (approveProcess.getApproveType()==5){
+ List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(Wrappers.<PurchaseLedger>lambdaQuery().eq(PurchaseLedger::getPurchaseContractNumber, approveProcess.getApproveReason()));
+ if (!CollectionUtils.isEmpty(purchaseLedgers)){
+ PurchaseLedger purchaseLedger = purchaseLedgers.get(0);
+ purchaseLedger.setApprovalStatus(status);
+ purchaseLedgerMapper.updateById(purchaseLedger);
+ }
+ }
+
// 缁戝畾闄勪欢
if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){
tempFileService.migrateTempFilesToFormal(approveNode.getId(), approveNode.getTempFileIds(), FileNameType.ApproveNode.getValue());
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index fca4277..366a3c3 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -158,4 +158,12 @@
public AjaxResult createPurchaseNo() {
return AjaxResult.success("鐢熸垚鎴愬姛",purchaseLedgerService.getPurchaseNo());
}
+
+ /**
+ * 鏍规嵁閲囪喘鍚堝悓鍙锋煡璇㈣鎯�
+ */
+ @GetMapping("/getPurchaseByCode")
+ public AjaxResult getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) {
+ return AjaxResult.success(purchaseLedgerService.getPurchaseByCode(purchaseLedgerDto));
+ }
}
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index 7d1e9e5..ba2c85a 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -181,4 +181,10 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")//榛樿鏄�1
+ private Integer approvalStatus;
+
+ // 瀹℃壒浜�
+ private String approveUserIds;
+
}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
index 7b7ad72..3c34359 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -153,5 +153,8 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty(value = "0-寰呭鏍革紝1-瀹℃壒涓紝2-瀹℃壒閫氳繃锛�3-瀹℃壒涓嶉�氳繃锛�4-宸查噸鏂版彁浜�")
+//榛樿鏄�0
+ private Integer approvalStatus;
}
diff --git a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
index 3979810..b4b5384 100644
--- a/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -39,4 +39,6 @@
List<InvoiceRegistrationProduct> getProductBySalesNo(Long id);
String getPurchaseNo();
+
+ PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto);
}
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 e5a64fd..7305a75 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -10,6 +10,9 @@
import com.ruoyi.account.pojo.AccountIncome;
import com.ruoyi.account.service.AccountExpenseService;
import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.mapper.SupplierManageMapper;
@@ -98,6 +101,8 @@
private final StringRedisTemplate redisTemplate;
+ private final IApproveProcessService approveProcessService;
+
@Value("${file.upload-dir}")
private String uploadDir;
@@ -178,6 +183,26 @@
// 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
+ }
+
+ //6.閲囪喘闇�瑕佸鎵�
+ //鏂板瀹℃壒鏁版嵁approve_proces
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ approveProcessVO.setApproveDeptId(purchaseLedger.getTenantId());
+ //瀹℃壒鐞嗙敱鏄噰璐悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
+ approveProcessVO.setApproveReason(purchaseLedger.getPurchaseContractNumber());
+ DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
+ //5鏄噰璐敵璇�
+ approveProcessVO.setApproveType(5);
+ //褰曞叆浜�=鐢宠浜�
+ approveProcessVO.setApproveUser(purchaseLedger.getRecorderId());
+ //瀹℃壒浜�
+ approveProcessVO.setApproveUserIds(purchaseLedgerDto.getApproveUserIds());
+ try {
+ approveProcessService.addApprove(approveProcessVO);
+ } catch (Exception e) {
+ e.printStackTrace();
}
return 1;
@@ -359,6 +384,25 @@
LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId,ids);
productRecordMapper.delete(productRecordLambdaQueryWrapper);
+
+ // 鍒犻櫎鍏宠仈鐨勫鎵硅〃
+ List<String> strings = purchaseLedgerMapper.selectBatchIds(Arrays.asList(ids)).stream()
+ .map(PurchaseLedger::getPurchaseContractNumber)
+ .distinct()
+ .collect(Collectors.toList());
+ List<ApproveProcess> list = approveProcessService.list(Wrappers.<ApproveProcess>lambdaQuery().eq(ApproveProcess::getApproveType, 5) .in(ApproveProcess::getApproveReason, strings));
+ if (CollectionUtils.isNotEmpty(list)){
+ List<String> approveIds = list.stream()
+ .map(ApproveProcess::getApproveId)
+ .distinct()
+ .collect(Collectors.toList());
+ Long[] ides = approveIds.stream()
+ .filter(s -> s != null && !s.isEmpty())
+ .map(Long::valueOf)
+ .toArray(Long[]::new);
+ approveProcessService.delApprove(ides);
+ }
+
// 鎵归噺鍒犻櫎閲囪喘鍙拌处
return purchaseLedgerMapper.deleteBatchIds(Arrays.asList(ids));
}
@@ -513,6 +557,26 @@
return purchaseNo + String.format("%03d", sequence);
}
+ @Override
+ public PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) {
+ // 1. 鏌ヨ涓昏〃
+ PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>() .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedgerDto.getPurchaseContractNumber()) .last("LIMIT 1"));
+ if (purchaseLedger == null) {
+ throw new BaseException("閲囪喘鍙拌处涓嶅瓨鍦�");
+ }
+ // 2. 鏌ヨ瀛愯〃
+ LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
+ productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()) .eq(SalesLedgerProduct::getType, 2);
+ List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+ // 4. 杞崲 DTO
+ PurchaseLedgerDto resultDto = new PurchaseLedgerDto(); BeanUtils.copyProperties(purchaseLedger, resultDto);
+ if (!products.isEmpty()) {
+ resultDto.setHasChildren(true);
+ resultDto.setProductData(products);
+ }
+ return resultDto;
+ }
+
/**
* 涓嬪垝绾垮懡鍚嶈浆椹煎嘲鍛藉悕
*/
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index e398a11..456b008 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -306,4 +306,12 @@
}
return AjaxResult.error("璇ヤ骇鍝佸簱瀛樹笉瓒�");
}
+
+ /**
+ * 鏍规嵁閲囪喘鍚堝悓鍙锋煡璇㈣鎯�
+ */
+ @GetMapping("/getSalesByCode")
+ public AjaxResult getSalesByCode(SalesLedgerDto salesLedgerDto) {
+ return AjaxResult.success(salesLedgerService.getSalesByCode(salesLedgerDto));
+ }
}
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 486ffcb..291a8c0 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -54,4 +54,14 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+
+ @ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
+ private String salesType;
+
+ @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")
+ //榛樿鏄�1
+ private Integer approvalStatus;
+
+ // 瀹℃壒浜�
+ private String approveUserIds;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 4ffdb03..e180abe 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -125,5 +125,12 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+
+ @ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
+ private String salesType;
+
+ @ApiModelProperty(value = "0-寰呭鏍革紝1-瀹℃壒涓紝2-瀹℃壒閫氳繃锛�3-瀹℃壒涓嶉�氳繃锛�4-宸查噸鏂版彁浜�")
+//榛樿鏄�0
+ private Integer approvalStatus;
}
diff --git a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
index b4cf320..408751e 100644
--- a/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/ISalesLedgerService.java
@@ -35,4 +35,6 @@
List<MonthlyAmountDto> getAmountHalfYear(Integer type);
IPage<SalesLedger> selectSalesLedgerListPage(Page page, SalesLedgerDto salesLedgerDto);
+
+ SalesLedgerDto getSalesByCode(SalesLedgerDto salesLedgerDto);
}
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 6493d46..23cf2f7 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -11,6 +11,9 @@
import com.ruoyi.account.pojo.AccountExpense;
import com.ruoyi.account.pojo.AccountIncome;
import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.enums.FileNameType;
@@ -82,6 +85,8 @@
private final InvoiceLedgerMapper invoiceLedgerMapper;
private final SalesLedgerSchedulingMapper salesLedgerSchedulingMapper;
+
+ private final IApproveProcessService approveProcessService;
@Autowired
private SysDeptMapper sysDeptMapper;
@@ -361,7 +366,27 @@
LambdaQueryWrapper<SalesLedgerScheduling> in = new LambdaQueryWrapper<SalesLedgerScheduling>()
.in(SalesLedgerScheduling::getSalesLedgerId, idList);
salesLedgerSchedulingMapper.delete(in);
- // 2. 鍐嶅垹闄や富琛ㄦ暟鎹�
+ // 2. 鍒犻櫎鍏宠仈鐨勫鎵硅〃
+ List<String> strings = salesLedgerMapper.selectBatchIds(idList)
+ .stream()
+ .map(SalesLedger::getSalesContractNo)
+ .distinct()
+ .collect(Collectors.toList());
+ List<ApproveProcess> list = approveProcessService.list(Wrappers.<ApproveProcess>lambdaQuery() .eq(ApproveProcess::getApproveType, 6) .in(ApproveProcess::getApproveReason, strings));
+ if (CollectionUtils.isNotEmpty(list)){
+ List<String> approveIds = list
+ .stream()
+ .map(ApproveProcess::getApproveId)
+ .distinct()
+ .collect(Collectors.toList());
+ Long[] ides = approveIds
+ .stream()
+ .filter(s -> s != null && !s.isEmpty())
+ .map(Long::valueOf)
+ .toArray(Long[]::new);
+ approveProcessService.delApprove(ides);
+ }
+ // 3. 鍐嶅垹闄や富琛ㄦ暟鎹�
return salesLedgerMapper.deleteBatchIds(idList);
}
@@ -431,12 +456,57 @@
if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {
migrateTempFilesToFormal(salesLedger.getId(), salesLedgerDto.getTempFileIds());
}
+ //6.閿�鍞鍗曟寜绱ф�ョ▼搴﹀垎绫伙紝濡傛櫘閫氳鍗曚互鍙婄揣鎬ヨ鍗曪紱鏅�氳鍗曢渶娴佽浆鑷充笟鍔″崟鎹繘琛屽鎵癸紝绱ф�ヨ鍗曟棤闇�瀹℃壒銆�
+ if (salesLedger.getSalesType().equals("鏅��")){
+ //鏂板瀹℃壒鏁版嵁approve_process
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ approveProcessVO.setApproveDeptId(salesLedger.getTenantId());
+ approveProcessVO.setApproveReason(salesLedger.getSalesContractNo());
+ //瀹℃壒鐞嗙敱鏄攢鍞悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
+ DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
+ //6鏄攢鍞彴璐�
+ approveProcessVO.setApproveType(6);
+ //褰曞叆浜�=鐢宠浜�
+ approveProcessVO.setApproveUser(Long.parseLong(salesLedger.getEntryPerson()));
+ approveProcessVO.setApproveUserIds(salesLedgerDto.getApproveUserIds());//瀹℃壒浜�
+ try {
+ approveProcessService.addApprove(approveProcessVO);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }else {
+ //绱ф�ラ粯璁ら�氳繃
+ salesLedger.setApprovalStatus(2);
+ salesLedgerMapper.updateById(salesLedger);
+ }
return 1;
} catch (IOException e) {
throw new BaseException("鏂囦欢杩佺Щ澶辫触: " + e.getMessage());
}
}
+ @Override
+ public SalesLedgerDto getSalesByCode(SalesLedgerDto salesLedgerDto) {
+ // 1. 鏌ヨ涓昏〃
+ SalesLedger salesLedger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+ .eq(SalesLedger::getSalesContractNo, salesLedgerDto.getSalesContractNo()) .last("LIMIT 1"));
+ if (salesLedger == null) {
+ throw new BaseException("閿�鍞彴璐︿笉瀛樺湪");
+ }
+ // 2. 鏌ヨ瀛愯〃
+ LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>(); productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedger.getId()) .eq(SalesLedgerProduct::getType, 1);
+ List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
+ // 4. 杞崲 DTO
+ SalesLedgerDto resultDto = new SalesLedgerDto();
+ BeanUtils.copyProperties(salesLedger, resultDto);
+ if (!products.isEmpty()) {
+ resultDto.setHasChildren(true);
+ resultDto.setProductData(products);
+ }
+ return resultDto;
+ }
+
// 鏂囦欢杩佺Щ鏂规硶
/**
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index bc6c38a..4b617d1 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -21,6 +21,7 @@
pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount,
pl.entry_date,
pl.recorder_name,
+ pl.approval_status,
pl.payment_method
from purchase_ledger pl
left join product_record pr on pl.id = pr.purchase_ledger_id
@@ -43,6 +44,9 @@
</if>
<if test="c.entryDateEnd != null and c.entryDateEnd != '' ">
AND pl.entry_date <= DATE_FORMAT(#{c.entryDateEnd},'%Y-%m-%d')
+ </if>
+ <if test="c.approvalStatus != null">
+ and pl.approval_status =#{c.approvalStatus}
</if>
</where>
group by pl.id, pl.purchase_contract_number, pl.sales_contract_no, pl.supplier_name,
@@ -70,4 +74,4 @@
WHERE
T4.id = #{id}
</select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 7ce76a8..bfd3ff1 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -10,7 +10,7 @@
WHERE sales_contract_no LIKE CONCAT('%',#{datePart},'%')
</select>
<select id="getSalesNo" resultType="com.ruoyi.sales.pojo.SalesLedger">
-
+
</select>
<select id="selectSalesLedgerList" resultType="com.ruoyi.sales.pojo.SalesLedger">
@@ -56,6 +56,8 @@
T1.attachment_materials,
T1.tenant_id,
T1.contract_amount,
+ T1.approval_status,
+ T1.sales_type,
T1.execution_date,
T2.nick_name AS entry_person_name,
T1.payment_method
@@ -81,6 +83,9 @@
<if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
AND T1.entry_date <= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
</if>
+ <if test="salesLedgerDto.approvalStatus != null">
+ AND T1.approval_status =#{salesLedgerDto.approvalStatus}
+ </if>
</where>
</select>
-</mapper>
\ No newline at end of file
+</mapper>
--
Gitblit v1.9.3