From f8e79ecd973b35e98bc189328c7efa3f88f10f02 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期六, 28 三月 2026 10:11:55 +0800
Subject: [PATCH] Merge branch 'hxsj' of http://114.132.189.42:9002/r/product-inventory-management-after into hxsj
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 85 insertions(+), 12 deletions(-)
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 0cbe9d1..d5ece9b 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;
@@ -83,6 +86,8 @@
private final SalesLedgerSchedulingMapper salesLedgerSchedulingMapper;
+ private final IApproveProcessService approveProcessService;
+
@Autowired
private SysDeptMapper sysDeptMapper;
@@ -124,7 +129,8 @@
// 3.鏌ヨ涓婁紶鏂囦欢
LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>();
- salesLedgerFileWrapper.eq(CommonFile::getCommonId, salesLedger.getId());
+ salesLedgerFileWrapper.eq(CommonFile::getCommonId, salesLedger.getId())
+ .eq(CommonFile::getType, FileNameType.SALE.getValue());
List<CommonFile> salesLedgerFiles = commonFileMapper.selectList(salesLedgerFileWrapper);
// 4. 杞崲 DTO
@@ -361,7 +367,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);
}
@@ -399,17 +425,19 @@
} else {
salesLedgerMapper.updateById(salesLedger);
SalesLedger salesLedgerDB = salesLedgerMapper.selectById(salesLedger.getId());
- AccountIncome accountIncomeDB = accountIncomeService.getByInvoiceNumber(salesLedger.getSalesContractNo());
- if (ObjectUtils.isEmpty(accountIncomeDB)) {
- throw new BaseException("鏀跺叆绠$悊鏃犺閿�鍞悎鍚岀殑鏀跺叆璁板綍");
+ List<AccountIncome> accountIncomeDBs = accountIncomeService.getByInvoiceNumberList(salesLedger.getSalesContractNo());
+ if (!CollectionUtils.isEmpty(accountIncomeDBs)) {
+ accountIncomeDBs.forEach(accountIncomeDB ->{
+ accountIncomeDB.setCustomerName(salesLedgerDB.getCustomerName());
+ accountIncomeDB.setIncomeMoney(salesLedgerDB.getContractAmount());
+ accountIncomeDB.setIncomeDescribed("閿�鍞悎鍚岋細" + salesLedgerDB.getSalesContractNo());
+ accountIncomeDB.setInvoiceNumber(salesLedgerDB.getSalesContractNo());
+ accountIncomeDB.setInputTime(new Date());
+ accountIncomeDB.setInputUser(salesLedgerDB.getEntryPerson());
+ accountIncomeService.updateById(accountIncomeDB);
+ });
}
- accountIncomeDB.setCustomerName(salesLedgerDB.getCustomerName());
- accountIncomeDB.setIncomeMoney(salesLedgerDB.getContractAmount());
- accountIncomeDB.setIncomeDescribed("閿�鍞悎鍚岋細" + salesLedgerDB.getSalesContractNo());
- accountIncomeDB.setInvoiceNumber(salesLedgerDB.getSalesContractNo());
- accountIncomeDB.setInputTime(new Date());
- accountIncomeDB.setInputUser(salesLedgerDB.getEntryPerson());
- accountIncomeService.updateById(accountIncomeDB);
+
}
// 4. 澶勭悊瀛愯〃鏁版嵁
@@ -429,12 +457,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;
+ }
+
// 鏂囦欢杩佺Щ鏂规硶
/**
--
Gitblit v1.9.3