From 7b2233d1dab53574facc66b3bebffcd8ca5919de Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 21 三月 2026 14:27:19 +0800
Subject: [PATCH] yys 1.已退货完毕的出库单号不要展示在关联出库单中 2.退货管理唯一处理 3.生产订单-库存数量回显 4.发货管理回显退货数量 5.发货增加详情接口 6.生产核算清理脏数据 7.生产报工-删除生产报工记录报错 8.筛选客户名称数据展示有误
---
src/main/java/com/ruoyi/procurementrecord/service/ReturnManagementService.java | 3
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java | 1
src/main/java/com/ruoyi/sales/service/ShippingInfoService.java | 2
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoDetailServiceImpl.java | 8 +
src/main/resources/mapper/stock/StockInventoryMapper.xml | 2
src/main/java/com/ruoyi/account/pojo/AccountExpense.java | 2
src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java | 5 +
src/main/resources/mapper/sales/ShippingInfoMapper.xml | 38 +++++++
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 15 +-
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java | 2
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java | 67 +++++++++++--
src/main/java/com/ruoyi/sales/pojo/ShippingInfoDetail.java | 8 +
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | 60 ++++++++---
src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java | 2
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 18 +++
src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java | 7 -
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 14 +-
src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml | 2
18 files changed, 200 insertions(+), 56 deletions(-)
diff --git a/src/main/java/com/ruoyi/account/pojo/AccountExpense.java b/src/main/java/com/ruoyi/account/pojo/AccountExpense.java
index c87f423..faa3350 100644
--- a/src/main/java/com/ruoyi/account/pojo/AccountExpense.java
+++ b/src/main/java/com/ruoyi/account/pojo/AccountExpense.java
@@ -35,7 +35,7 @@
private Long businessId;
/**
- * 涓氬姟绫诲瀷 1-浠樻 2-杩樻
+ * 涓氬姟绫诲瀷 1-浠樻 2-杩樻 3-閿�鍞��娆�
*/
private Integer businessType;
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java
index 1db28ca..4ddeb74 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ReturnManagementController.java
@@ -68,11 +68,8 @@
@Transactional(rollbackFor = Exception.class)
public AjaxResult del(@RequestBody List<Long> ids) {
if (CollectionUtils.isEmpty(ids)) return error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
- returnSaleProductService.remove(new QueryWrapper<ReturnSaleProduct>()
- .lambda()
- .in(ReturnSaleProduct::getReturnManagementId, ids));
- boolean result = returnManagementService.removeByIds(ids);
- return result ? success() : error();
+ int result = returnManagementService.delete(ids);
+ return result > 0 ? success() : error();
}
@GetMapping("/getById")
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ReturnManagementService.java b/src/main/java/com/ruoyi/procurementrecord/service/ReturnManagementService.java
index 0214d25..1904056 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ReturnManagementService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ReturnManagementService.java
@@ -8,6 +8,7 @@
import com.ruoyi.sales.dto.SalesLedgerDto;
import java.math.BigDecimal;
+import java.util.List;
/**
* @author :yys
@@ -33,4 +34,6 @@
boolean handle(Long returnManagementId);
ReturnManagementDto getReturnManagementDtoById(Long returnManagementId);
+
+ int delete(List<Long> ids);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
index 74196ea..cfced60 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.procurementrecord.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,6 +14,7 @@
import com.ruoyi.procurementrecord.dto.ReturnManagementDto;
import com.ruoyi.procurementrecord.dto.ReturnSaleProductDto;
import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper;
+import com.ruoyi.procurementrecord.mapper.ReturnSaleProductMapper;
import com.ruoyi.procurementrecord.pojo.ReturnManagement;
import com.ruoyi.procurementrecord.pojo.ReturnSaleProduct;
import com.ruoyi.procurementrecord.service.ReturnManagementService;
@@ -36,6 +38,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* @author :yys
@@ -51,6 +54,8 @@
@Autowired
private ReturnSaleProductService returnSaleProductService;
@Autowired
+ private ReturnSaleProductMapper returnSaleProductMapper;
+ @Autowired
private ShippingInfoDetailService shippingInfoDetailService;
@Autowired
private ShippingInfoService shippingInfoService;
@@ -64,6 +69,20 @@
@Autowired
private AccountExpenseMapper accountExpenseMapper;
+
+// 閫氳繃鍙戣揣璁㈠崟璇︽儏ID鏌ヨ閫�璐ф暟閲�
+ public BigDecimal getReturnSaleProductCountByShippingId(List<Long> shippingInfoDetailId) {
+ List<ReturnManagement> returnManagements = returnManagementMapper.selectList(new LambdaQueryWrapper<ReturnManagement>()
+ .in(ReturnManagement::getShippingId, shippingInfoDetailId)
+ .eq(ReturnManagement::getStatus, 1));
+ if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(returnManagements)){
+ List<ReturnSaleProduct> returnSaleProducts = returnSaleProductMapper.selectList(new LambdaQueryWrapper<ReturnSaleProduct>()
+ .in(ReturnSaleProduct::getReturnManagementId, returnManagements.stream().map(ReturnManagement::getId).collect(Collectors.toList()))
+ .eq(ReturnSaleProduct::getStatus, 1));
+ return returnSaleProducts.stream().map(ReturnSaleProduct::getNum).reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+ return BigDecimal.ZERO;
+ }
@Override
public IPage<ReturnManagementDto> listPage(Page page, ReturnManagementDto returnManagement) {
@@ -116,15 +135,9 @@
List<ReturnSaleProductDto> list = returnSaleProductService.listReturnSaleProduct(returnManagementId);
byId.setStatus(1);
updateById(byId);
-// SalesRefundAmountOrderDto salesRefundAmountOrder = new SalesRefundAmountOrderDto();
-// salesRefundAmountOrder.setReturnManagementId(returnManagementId);
-// salesRefundAmountOrder.setStatus(0);
-// salesRefundAmountOrder.setCreateTime(byId.getCreateTime());
-// salesRefundAmountOrder.setCreateUserId(SecurityUtils.getUserId());
BigDecimal bigDecimal = new BigDecimal(0);
for (ReturnSaleProductDto returnSaleProduct : list) {
bigDecimal = bigDecimal.add(returnSaleProduct.getPrice());
-// salesRefundAmountOrder.setRefundedAmount(new BigDecimal(0));
// 鏄惁鏈夎川閲忛棶棰�
if (returnSaleProduct.getIsQuality() == 1) {
// 鏈夎川閲忛棶棰橈紝鍏ヤ笉鍚堟牸搴�
@@ -136,10 +149,17 @@
returnSaleProduct.setStatus(1);
returnSaleProductService.updateById(returnSaleProduct);
}
-// salesRefundAmountOrder.setRefundAmount(bigDecimal);
-// salesRefundAmountOrder.setNotRefundedAmount(salesRefundAmountOrder.getRefundedAmount());
- // 鍒嗘壒閫�娆�
-// salesRefundAmountOrderService.addSalesRefundAmountOrderDto(salesRefundAmountOrder);
+ // 淇敼鍙戣揣璇︽儏涓洪��璐�
+ SalesLedgerDto returnManagementDtoByShippingIdId = getReturnManagementDtoByShippingIdId(byId.getShippingId());
+ for (SalesLedgerProductDto salesLedgerProductDto : returnManagementDtoByShippingIdId.getProductDtoData()) {
+ if(salesLedgerProductDto.getUnQuantity().compareTo(BigDecimal.ZERO) == 0){
+ ShippingInfoDetail shippingInfoDetail = shippingInfoDetailService.getById(byId.getShippingId());
+ if(shippingInfoDetail != null){
+ shippingInfoDetail.setStatus("宸查��璐�");
+ shippingInfoDetailService.updateById(shippingInfoDetail);
+ }
+ }
+ }
// 鍜岃储鍔¤仈鍔紝鏂板鏀嚭
AccountExpense accountExpense = new AccountExpense();
accountExpense.setBusinessType(3);
@@ -163,5 +183,32 @@
return returnManagementDtoById;
}
+ @Override
+ public int delete(List<Long> ids) {
+ List<ReturnSaleProduct> returnSaleProducts = returnSaleProductMapper.selectList(new QueryWrapper<ReturnSaleProduct>()
+ .lambda()
+ .in(ReturnSaleProduct::getReturnManagementId, ids));
+ if(com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(returnSaleProducts)){
+ List<Long> collect = returnSaleProducts
+ .stream()
+ .map(ReturnSaleProduct::getId)
+ .collect(Collectors.toList());
+ returnSaleProductMapper.deleteBatchIds(collect);
+ // 鍒犻櫎鍏ュ簱璁板綍
+ for (ReturnSaleProduct returnSaleProduct : returnSaleProducts) {
+ if(returnSaleProduct.getIsQuality() == 1){
+ stockUtils.deleteStockInRecord(returnSaleProduct.getId(), StockInUnQualifiedRecordTypeEnum.RETURN_UNSTOCK_IN.getCode());
+ }else{
+ stockUtils.deleteStockInRecord(returnSaleProduct.getId(), StockInQualifiedRecordTypeEnum.RETURN_HE_IN.getCode());
+ }
+ }
+ }
+ accountExpenseMapper.delete(new QueryWrapper<AccountExpense>()
+ .lambda()
+ .in(AccountExpense::getBusinessId, ids)
+ .eq(AccountExpense::getBusinessType, 3));
+ return returnManagementMapper.deleteBatchIds(ids);
+ }
+
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 819ce65..4e85270 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -1,6 +1,7 @@
package com.ruoyi.procurementrecord.utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
@@ -21,7 +22,9 @@
import java.math.BigDecimal;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Component
@RequiredArgsConstructor
@@ -99,19 +102,19 @@
//涓嶅悎鏍煎簱瀛樺垹闄�
public void deleteStockInRecord(Long recordId, String recordType) {
- StockInRecord one = stockInRecordService.getOne(new QueryWrapper<StockInRecord>()
+ List<StockInRecord> one = stockInRecordService.getBaseMapper().selectList(new QueryWrapper<StockInRecord>()
.lambda().eq(StockInRecord::getRecordId, recordId)
.eq(StockInRecord::getRecordType, recordType));
- if (ObjectUtils.isNotEmpty(one)) {
- stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
+ if (CollectionUtils.isNotEmpty(one)) {
+ stockInRecordService.batchDelete(one.stream().map(StockInRecord::getId).collect(Collectors.toList()));
}
}
public void deleteStockOutRecord(Long recordId, String recordType) {
- StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
+ List<StockOutRecord> one = stockOutRecordService.getBaseMapper().selectList(new QueryWrapper<StockOutRecord>()
.lambda().eq(StockOutRecord::getRecordId, recordId)
.eq(StockOutRecord::getRecordType, recordType));
- if (ObjectUtils.isNotEmpty(one)) {
- stockOutRecordService.batchDelete(Collections.singletonList(one.getId()));
+ if (CollectionUtils.isNotEmpty(one)) {
+ stockOutRecordService.batchDelete(one.stream().map(StockOutRecord::getId).collect(Collectors.toList()));
}
}
}
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index 1dd597b..111f227 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -17,7 +17,7 @@
import java.util.Arrays;
import java.util.List;
-@RequestMapping("productionProductMain")
+@RequestMapping("/productionProductMain")
@RestController
@Api(value = "鐢熶骇鎶ュ伐")
public class ProductionProductMainController {
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 9e03eec..6d46f7c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -76,6 +76,7 @@
// 鑾峰彇浜у搧鍚堟牸搴撳瓨
StockInventoryDto stockInventoryDto = new StockInventoryDto();
stockInventoryDto.setProductModelId(productOrderDto.getProductModelId());
+ stockInventoryDto.setProductType(1);
Page page1 = new Page<>(1,1);
IPage<StockInventoryDto> stockInventoryDtoIPage = stockInventoryService.pagestockInventory(page1,stockInventoryDto);
if(stockInventoryDtoIPage.getTotal() > 0){
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index 2f77dc4..29dafda 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -66,6 +66,12 @@
return AjaxResult.success(shippingInfoService.getShippingInfoByCustomerName(customerName));
}
+ @ApiOperation("璇︽儏")
+ @GetMapping("/getById")
+ public AjaxResult getById(Long id) {
+ return AjaxResult.success(shippingInfoService.getDateil(id));
+ }
+
@GetMapping("/listPage")
@ApiOperation("鍙戣揣淇℃伅鍒楄〃")
@@ -95,14 +101,6 @@
req.setStatus("寰呭鏍�");
boolean save = shippingInfoService.save(req);
return save ? AjaxResult.success() : AjaxResult.error();
- }
-
- @ApiOperation("鍙戣揣鎵e簱瀛�")
- @PostMapping("/deductStock")
- @Transactional(rollbackFor = Exception.class)
- @Log(title = "鍙戣揣淇℃伅绠$悊", businessType = BusinessType.UPDATE)
- public AjaxResult deductStock(@RequestBody ShippingInfoDto req) throws IOException {
- return shippingInfoService.deductStock( req) ? AjaxResult.success() : AjaxResult.error();
}
@PostMapping("/update")
diff --git a/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java b/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java
index 54481ca..48db590 100644
--- a/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/ShippingInfoDto.java
@@ -40,4 +40,9 @@
*/
private BigDecimal waitShippingTotal = BigDecimal.ZERO;
+ /**
+ * 閫�璐ф暟閲�
+ */
+ private BigDecimal returnTotal = BigDecimal.ZERO;
+
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java b/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java
index 4b74ed9..5a206d0 100644
--- a/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/ShippingInfoMapper.java
@@ -22,4 +22,6 @@
List<ShippingInfo> getShippingInfoByCustomerName(String customerName);
List<SalesLedgerProductDto> getReturnManagementDtoById(@Param("shippingId")Long shippingId);
+
+ ShippingInfoDto getDateil(@Param("id") Long id);
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfoDetail.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfoDetail.java
index e5ee5cb..90e1d9e 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ShippingInfoDetail.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfoDetail.java
@@ -33,6 +33,12 @@
private static final long serialVersionUID = 1L;
+ /**
+ * 閫�璐ф暟閲�
+ */
+ @TableField(exist = false)
+ private BigDecimal returnTotal = BigDecimal.ZERO;
+
@TableField(exist = false)
private List<String> tempFileIds;
@TableField(exist = false)
@@ -90,7 +96,7 @@
@ApiModelProperty("鍙戣揣绫诲瀷")
private String type;
- @ApiModelProperty("鐘舵��")
+ @ApiModelProperty("鐘舵�� 宸查��璐�")
private String status;
@ApiModelProperty("鍙戣揣鏁伴噺")
diff --git a/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
index fbd1d19..cbc414a 100644
--- a/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
+++ b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
@@ -28,4 +28,6 @@
List<SalesLedgerProductDto> getReturnManagementDtoById(Long id);
Map<String ,BigDecimal> getNumberOfSalesLedgerProduct(Long id);
+
+ ShippingInfoDto getDateil(Long id);
}
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 c5f649d..86e560c 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -23,6 +23,9 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.other.mapper.TempFileMapper;
import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper;
+import com.ruoyi.procurementrecord.pojo.ReturnManagement;
+import com.ruoyi.procurementrecord.service.ReturnManagementService;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProductionProductMainService;
@@ -98,6 +101,10 @@
private final CommonFileServiceImpl commonFileService;
private final ShippingInfoMapper shippingInfoMapper;
+
+ private final ReturnManagementMapper returnManagementMapper;
+
+ private final ReturnManagementService returnManagementService;
private final InvoiceLedgerMapper invoiceLedgerMapper;
@@ -558,8 +565,17 @@
List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
.in(ShippingInfo::getSalesLedgerId, idList));
if (CollectionUtils.isNotEmpty(shippingInfos)) {
- shippingInfoServiceImpl.delete(shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList()));
+ List<Long> shippingIds = shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList());
+ shippingInfoServiceImpl.delete(shippingIds);
+ // 鍒犻櫎閫�璐у彴璐﹁褰�
+ List<ReturnManagement> returnManagements = returnManagementMapper.selectList(new LambdaQueryWrapper<ReturnManagement>()
+ .in(ReturnManagement::getShippingId, shippingIds));
+ if (CollectionUtils.isNotEmpty(returnManagements)) {
+ List<Long> returnIds = returnManagements.stream().map(ReturnManagement::getId).collect(Collectors.toList());
+ returnManagementService.delete(returnIds);
+ }
}
+
// 鍒犻櫎闄勪欢琛�
commonFileService.deleteByBusinessIds(idList, FileNameType.SALE.getValue());
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoDetailServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoDetailServiceImpl.java
index 53d28ae..f3e9e4d 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoDetailServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoDetailServiceImpl.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.other.service.impl.TempFileServiceImpl;
+import com.ruoyi.procurementrecord.service.impl.ReturnManagementServiceImpl;
import com.ruoyi.sales.dto.ShippingInfoDto;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.pojo.ShippingInfoDetail;
@@ -48,11 +49,16 @@
@Autowired
private CommonFileServiceImpl commonFileService;
+ @Autowired
+ private ReturnManagementServiceImpl returnManagementService;
+
@Override
public IPage<ShippingInfoDetail> listPage(Page page, ShippingInfoDetail shippingInfoDetail) {
IPage<ShippingInfoDetail> shippingInfoDetailIPage = shippingInfoDetailMapper.listPage(page, shippingInfoDetail);
shippingInfoDetailIPage.getRecords().forEach(item ->{
item.setCommonFileList(commonFileService.getFileListByBusinessId(item.getId(), FileNameType.SHIP.getValue()));
+ BigDecimal returnSaleProductCountByShippingId = returnManagementService.getReturnSaleProductCountByShippingId(Collections.singletonList(item.getId()));
+ item.setReturnTotal(returnSaleProductCountByShippingId);
});
return shippingInfoDetailIPage;
}
@@ -76,6 +82,8 @@
}else{
shippingInfo.setStatus("鍙戣揣涓�");
}
+ // 鎵e簱瀛�
+ shippingInfo.setShippingTotal(shippingInfoDetail.getShippingNum());
shippingInfoService.deductStock(shippingInfo);
// 杩佺Щ鏂囦欢
if(CollectionUtils.isNotEmpty(shippingInfoDetail.getTempFileIds())){
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index d0587a9..21049c7 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.procurementrecord.mapper.ReturnSaleProductMapper;
import com.ruoyi.procurementrecord.pojo.ReturnManagement;
import com.ruoyi.procurementrecord.pojo.ReturnSaleProduct;
+import com.ruoyi.procurementrecord.service.impl.ReturnManagementServiceImpl;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.sales.dto.SalesLedgerProductDto;
import com.ruoyi.sales.dto.ShippingInfoDto;
@@ -67,6 +68,9 @@
@Autowired
private ReturnSaleProductMapper returnSaleProductMapper;
+ @Autowired
+ private ReturnManagementServiceImpl returnManagementService;
+
@Override
public List<SalesLedgerProductDto> getReturnManagementDtoById(Long shippingId) {
return shippingInfoMapper.getReturnManagementDtoById(shippingId );
@@ -75,8 +79,6 @@
/**
* 鑾峰彇閿�鍞骇鍝佸崟鐨勫凡鍙戣揣鏁伴噺
- * @param id
- * @return
*/
@Override
public Map<String, BigDecimal> getNumberOfSalesLedgerProduct(Long salesLedgerProductId) {
@@ -109,6 +111,15 @@
}
@Override
+ public ShippingInfoDto getDateil(Long id) {
+ ShippingInfoDto shippingInfoDto = shippingInfoMapper.getDateil(id);
+ if(shippingInfoDto != null){
+ assembleDetails(shippingInfoDto);
+ }
+ return shippingInfoDto;
+ }
+
+ @Override
public List<ShippingInfo> getShippingInfoByCustomerName(String customerName) {
return shippingInfoMapper.getShippingInfoByCustomerName(customerName);
}
@@ -116,22 +127,35 @@
@Override
public IPage<ShippingInfoDto> listPage(Page page, ShippingInfo req) {
IPage<ShippingInfoDto> listPage = shippingInfoMapper.listPage(page, req);
- listPage.getRecords().forEach(item ->{
- item.setCommonFileList(commonFileService.getFileListByBusinessId(item.getId(), FileNameType.SHIP.getValue()));
- List<ShippingInfoDetail> shippingInfoDetails = shippingInfoDetailMapper.selectList(new LambdaQueryWrapper<ShippingInfoDetail>()
- .eq(ShippingInfoDetail::getShippingInfoId, item.getId()));
- // 鏍稿績浼樺寲锛氬眰灞傞槻鎶ょ┖鎸囬拡 + 澶勭悊绌洪泦鍚堝満鏅�
- item.setShippingSuccessTotal(Optional.ofNullable(shippingInfoDetails)
- .orElse(Collections.emptyList())
- .stream()
- .filter(Objects::nonNull)
- .map(ShippingInfoDetail::getShippingNum)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add)); // 鐢↙ambda鏇夸唬鏂规硶寮曠敤
- item.setWaitShippingTotal(item.getShippingTotal().subtract(item.getShippingSuccessTotal()));
-
- });
+ listPage.getRecords().forEach(this::assembleDetails);
return listPage;
+ }
+
+
+ /**
+ * 灏佽璇︽儏
+ * @param item
+ */
+ public void assembleDetails(ShippingInfoDto item) {
+ item.setCommonFileList(commonFileService.getFileListByBusinessId(item.getId(), FileNameType.SHIP.getValue()));
+ List<ShippingInfoDetail> shippingInfoDetails = shippingInfoDetailMapper.selectList(new LambdaQueryWrapper<ShippingInfoDetail>()
+ .eq(ShippingInfoDetail::getShippingInfoId, item.getId()));
+ // 鏍稿績浼樺寲锛氬眰灞傞槻鎶ょ┖鎸囬拡 + 澶勭悊绌洪泦鍚堝満鏅�
+ item.setShippingSuccessTotal(Optional.ofNullable(shippingInfoDetails)
+ .orElse(Collections.emptyList())
+ .stream()
+ .filter(Objects::nonNull)
+ .map(ShippingInfoDetail::getShippingNum)
+ .filter(Objects::nonNull)
+ .reduce(BigDecimal.ZERO, BigDecimal::add)); // 鐢↙ambda鏇夸唬鏂规硶寮曠敤
+ item.setWaitShippingTotal(item.getShippingTotal().subtract(item.getShippingSuccessTotal()));
+ // 鏌ヨ閫�璐ф暟閲�
+ if(CollectionUtils.isNotEmpty(shippingInfoDetails)){
+ item.setReturnTotal(returnManagementService.getReturnSaleProductCountByShippingId(shippingInfoDetails
+ .stream()
+ .map(ShippingInfoDetail::getId)
+ .collect(Collectors.toList())));
+ }
}
@Override
@@ -142,7 +166,7 @@
}
//鎵e噺搴撳瓨
SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(byId.getSalesLedgerProductId());
- stockUtils.substractStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId());
+ stockUtils.substractStock(salesLedgerProduct.getProductModelId(), req.getShippingTotal(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId());
byId.setExpressNumber(req.getExpressNumber());
byId.setExpressCompany(req.getExpressCompany());
byId.setStatus(req.getStatus());
diff --git a/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml b/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
index 71d38ea..8c66b7f 100644
--- a/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ReturnSaleProductMapper.xml
@@ -19,7 +19,7 @@
COALESCE(rs.total_return_num, 0) AS total_return_num
FROM return_sale_product rsp
LEFT JOIN return_management rm ON rm.id = rsp.return_management_id
- LEFT JOIN shipping_info si ON si.id = rm.shipping_id
+ LEFT JOIN shipping_info_detail si ON si.id = rm.shipping_id
LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id and slp.type = 1
LEFT JOIN (SELECT return_sale_ledger_product_id,
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 54c2608..9e28542 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -32,6 +32,9 @@
<if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
</if>
+ <if test="req.customerName != null and req.customerName != ''">
+ AND sl.customer_name LIKE CONCAT('%',#{req.customerName},'%')
+ </if>
<if test="req.shippingNo != null and req.shippingNo != ''">
AND s.shipping_no LIKE CONCAT('%',#{req.shippingNo},'%')
</if>
@@ -60,7 +63,7 @@
select *,sid.id as id from shipping_info_detail sid
left join shipping_info si on si.id = sid.shipping_info_id
left join sales_ledger sl on si.sales_ledger_id = sl.id
- where (si.status = '宸插彂璐�' or si.status = '鍙戣揣涓�') and sl.customer_name = #{customerName}
+ where (si.status = '宸插彂璐�' or si.status = '鍙戣揣涓�') and (sid.status is null or sid.status != '宸查��璐�') and sl.customer_name = #{customerName}
</select>
<select id="getReturnManagementDtoById" resultType="com.ruoyi.sales.dto.SalesLedgerProductDto">
SELECT
@@ -77,8 +80,12 @@
FROM return_sale_product rsp
left join return_management rm on rm.id = rsp.return_management_id
left join shipping_info_detail si on si.id = rm.shipping_id
- WHERE 1=1
- GROUP BY return_sale_ledger_product_id
+ <where>
+ <if test="shippingId != null">
+ si.id = #{shippingId}
+ </if>
+ </where>
+ GROUP BY si.id
) rs ON rs.return_sale_ledger_product_id = slp.id
<where>
<if test="shippingId != null">
@@ -86,4 +93,29 @@
</if>
</where>
</select>
+ <select id="getDateil" resultType="com.ruoyi.sales.dto.ShippingInfoDto" parameterType="java.lang.Long">
+ SELECT
+ s.id,
+ s.sales_ledger_id,
+ s.shipping_date,
+ s.shipping_car_number,
+ s.express_number,
+ s.express_company,
+ s.shipping_no,
+ s.type,
+ s.status,
+ s.create_time,
+ s.update_time,
+ s.create_user,
+ s.update_user,
+ s.tenant_id,
+ sl.sales_contract_no,
+ sl.customer_name,
+ s.shipping_total AS shipping_total,
+ slp.id as salesLedgerProductId
+ FROM shipping_info s
+ LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
+ LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id and slp.type = 1
+ WHERE s.id = #{id}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 9baadb9..a1f65b0 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -72,7 +72,7 @@
<if test="ew.productName != null and ew.productName !=''">
and p.product_name like concat('%',#{ew.productName},'%')
</if>
- <if test="ew.productModelId != null and ew.productModelId !=''">
+ <if test="ew.productModelId != null">
and pm.id = #{ew.productModelId}
</if>
</select>
--
Gitblit v1.9.3