From a8d514292f781af37e95d08cd6edbcbeec20aa74 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 09 五月 2026 14:29:16 +0800
Subject: [PATCH] feat(shipping): 增加通过发货单号查询发货审批详情接口
---
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 6 +++---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 3 ---
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | 11 ++++++++++-
src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java | 3 +++
src/main/java/com/ruoyi/sales/service/ShippingInfoService.java | 3 +++
src/main/resources/mapper/sales/ShippingProductDetailMapper.xml | 9 +++++++++
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java | 1 -
src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java | 15 +++++++++++++++
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 9 ++++++++-
9 files changed, 51 insertions(+), 9 deletions(-)
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 3caf7cf..605e378 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -211,11 +211,10 @@
}
salesQuotationMapper.updateById(salesQuote);
}
- // 鍑哄簱瀹℃壒淇敼
+ // 鍑哄簱瀹℃壒淇敼=鍙戣揣瀹℃壒
if (approveProcess.getApproveType().equals(7)) {
- String[] split = approveProcess.getApproveReason().split(":");
ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
- .eq(ShippingInfo::getShippingNo, split[1])
+ .eq(ShippingInfo::getShippingNo, approveProcess.getApproveReason())
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1"));
if (shippingInfo != null) {
@@ -228,6 +227,7 @@
}
shippingInfoMapper.updateById(shippingInfo);
}
+ //搴撳瓨鎵e噺
}
fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVE_NODE, approveNode.getId(), approveNode.getStorageBlobDTOS());
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index e85e72a..a4c1106 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -71,7 +71,6 @@
if (CollUtil.isEmpty(list)) {
return AjaxResult.success(list);
}
- //
List<Long> productIds = list.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList());
List<SimpleReturnOrderGroupDto> groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds);
Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, item -> item.getSumReturnQuantity()));
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index edb7b44..0257f2a 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -61,7 +61,7 @@
ApproveProcessVO approveProcessVO = new ApproveProcessVO();
approveProcessVO.setApproveType(7);
approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
- approveProcessVO.setApproveReason(sh);
+ approveProcessVO.setApproveReason(sh);//鍙戣揣缂栧彿
approveProcessVO.setApproveUserIds(req.getApproveUserIds());
approveProcessVO.setApproveUser(loginUser.getUserId());
approveProcessVO.setApproveTime(LocalDate.now().toString());
@@ -122,7 +122,14 @@
}
@GetMapping("/getDateil/{id}")
+ @Operation(summary = "閫氳繃id鏌ヨ璇︽儏")
public R getDateil(@PathVariable("id") Long id) {
return R.ok(shippingInfoService.getDetail(id));
}
+
+ @GetMapping("/getDateilByShippingNo")
+ @Operation(summary = "閫氳繃鍙戣揣鍗曞彿鏌ヨ璇︽儏")
+ public R getDateilByShippingNo(String shippingNo) {
+ return R.ok(shippingInfoService.getDateilByShippingNo(shippingNo));
+ }
}
diff --git a/src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java b/src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java
new file mode 100644
index 0000000..693016b
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.sales.dto;
+
+import com.ruoyi.sales.pojo.ShippingInfo;
+import lombok.Data;
+
+import java.util.List;
+
+//鍙戣揣瀹℃壒鏌ョ湅璇︽儏
+@Data
+public class ShippingApproveDto {
+
+ private ShippingInfo shippingInfo;
+
+ private List<ShippingProductDetailDto> shippingProductDetailDtoList;
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java b/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java
index f564ba1..a679e0e 100644
--- a/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java
@@ -4,6 +4,7 @@
import com.ruoyi.sales.dto.ShippingProductDetailDto;
import com.ruoyi.sales.pojo.ShippingProductDetail;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +20,6 @@
public interface ShippingProductDetailMapper extends BaseMapper<ShippingProductDetail> {
List<ShippingProductDetailDto> getDetail(Long id);
+
+ List<ShippingProductDetailDto> getDateilByShippingNo(@Param("shippingNo") String shippingNo);
}
diff --git a/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
index c3e8a0c..69e8245 100644
--- a/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
+++ b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.sales.dto.SalesLedgerProductDto;
+import com.ruoyi.sales.dto.ShippingApproveDto;
import com.ruoyi.sales.dto.ShippingInfoDto;
import com.ruoyi.sales.dto.ShippingProductDetailDto;
import com.ruoyi.sales.pojo.ShippingInfo;
@@ -28,4 +29,6 @@
boolean add(ShippingInfoDto req);
List<ShippingProductDetailDto> getDetail(Long id);
+
+ ShippingApproveDto getDateilByShippingNo(String shippingNo);
}
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 37e06bb..8ce023b 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -101,9 +101,6 @@
@Override
public List<SalesLedgerProduct> selectSalesLedgerProductList(SalesLedgerProduct salesLedgerProduct) {
-// LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
-// queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId())
-// .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType());
List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectSalesLedgerProductList(salesLedgerProduct);
if(!CollectionUtils.isEmpty(salesLedgerProducts)){
salesLedgerProducts.forEach(item -> {
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 545ac7d..20e0a36 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.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.sales.dto.SalesLedgerProductDto;
+import com.ruoyi.sales.dto.ShippingApproveDto;
import com.ruoyi.sales.dto.ShippingInfoDto;
import com.ruoyi.sales.dto.ShippingProductDetailDto;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -68,7 +69,6 @@
}
//鎵e噺搴撳瓨
if(!"宸插彂璐�".equals(byId.getStatus())){
-// SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(byId.getSalesLedgerProductId());
List<ShippingProductDetail> shippingProductDetails = shippingProductDetailMapper.selectList(new LambdaQueryWrapper<ShippingProductDetail>().eq(ShippingProductDetail::getShippingInfoId, req.getId()));
if (CollectionUtils.isEmpty(shippingProductDetails)) {
throw new RuntimeException("鍙戣揣淇℃伅涓嶅瓨鍦�");
@@ -141,4 +141,13 @@
public List<ShippingProductDetailDto> getDetail(Long id) {
return shippingProductDetailMapper.getDetail(id);
}
+
+ @Override
+ public ShippingApproveDto getDateilByShippingNo(String shippingNo) {
+ ShippingApproveDto shippingApproveDto = new ShippingApproveDto();
+ shippingApproveDto.setShippingInfo(shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>().eq(ShippingInfo::getShippingNo, shippingNo)));
+ List<ShippingProductDetailDto> dateilByShippingNo = shippingProductDetailMapper.getDateilByShippingNo(shippingNo);
+ shippingApproveDto.setShippingProductDetailDtoList(dateilByShippingNo);
+ return shippingApproveDto;
+ }
}
diff --git a/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml b/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml
index 464af10..15a6168 100644
--- a/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml
@@ -18,5 +18,14 @@
left join product p on p.id = pm.product_id
where spd.shipping_info_id = #{id}
</select>
+ <select id="getDateilByShippingNo" resultType="com.ruoyi.sales.dto.ShippingProductDetailDto">
+ select si.batch_no, pm.model as specification_model, p.product_name, spd.quantity as delivery_quantity
+ from shipping_product_detail spd
+ left join shipping_info sp on sp.id = spd.shipping_info_id
+ left join stock_inventory si on si.id = spd.stock_inventory_id
+ left join product_model pm on pm.id = si.product_model_id
+ left join product p on p.id = pm.product_id
+ where sp.shipping_no = #{shippingNo}
+ </select>
</mapper>
--
Gitblit v1.9.3