feat(wms): 添加已开单未过账数量字段和查询功能

- 在多个DTO和VO类中新增lockedNum字段用于存储已开单未过账数量
- 为各个出库和转移相关的服务接口添加getLockedNum方法
- 实现数据库查询逻辑,通过关联表计算sum(left)或sum(lock_num)作为锁定数量
- 在控制器层调用服务方法设置锁定数量到返回对象中
- 更新MyBatis映射文件添加相应的SQL查询语句
This commit is contained in:
曹鹏飞 2026-06-12 11:30:23 +08:00
parent cb1500efbe
commit 0f29c9489c
37 changed files with 182 additions and 5 deletions

View File

@ -110,7 +110,13 @@ public class OutAssistanceController extends BaseController {
*/
@PostMapping("searchSAP")
public ApiResult<List<SubcontractedOrderDTO>> searchSAP0(@Valid @RequestBody SubcontractedOrderQO request) {
return ApiResult.success(sapService.zwm3a12(request));
List<SubcontractedOrderDTO> dtos = sapService.zwm3a12(request);
if (CollectionUtil.isNotEmpty(dtos)){
dtos.forEach(dto -> {
dto.setLockedNum(outAssistanceItemService.getLockedNum(dto.getEbeln(),dto.getEbelp()));
});
}
return ApiResult.success(dtos);
}
/**

View File

@ -112,7 +112,13 @@ public class OutCostCenterController extends BaseController {
*/
@PostMapping("searchSAP")
public ApiResult<List<DepartmentMaterialRequisitionDTO>> searchSAP0(@Valid @RequestBody DepartmentMaterialRequisitionQO request) {
return ApiResult.success(sapService.zwm3a13(request));
List<DepartmentMaterialRequisitionDTO> dtos = sapService.zwm3a13(request);
if (CollectionUtil.isNotEmpty(dtos)){
dtos.forEach(dto -> {
dto.setLockedNum(outCostcenterItemService.getLockedNum(dto.getAufnr(),dto.getMatnr()));
});
}
return ApiResult.success(dtos);
}
/**

View File

@ -136,6 +136,7 @@ public class OutProduceController extends BaseController {
.findFirst()
.orElse(new InventoryInDTO().setNum(BigDecimal.ZERO)).getNum());
item.setWname(wname);
item.setLockedNum(outProduceItemService.getLockedNum(item.getAufnr(),item.getMatnr()));
});
});

View File

@ -7,6 +7,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest;
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
@ -158,8 +159,13 @@ public class PurchaseReturnController extends BaseController {
@PostMapping("searchPos")
@ApiMark(moduleName = "获取送货单的入库信息", apiName = "获取送货单的入库信息")
public ApiResult<PageData<GoodsReceiptVO>> getGoodsReceipts(@Valid @RequestBody GoodsReceiptSearchQO request) {
return ApiResult.success(returnRequestService.getGoodsReceipts(request));
IPage<GoodsReceiptVO> dtos = returnRequestService.getGoodsReceipts(request);
if (CollectionUtil.isNotEmpty(dtos.getRecords())){
dtos.getRecords().forEach(dto -> {
dto.setLockedNum(returnRequestItemService.getLockedNum(dto.getPoNum(),dto.getPoLineNumber()));
});
}
return ApiResult.success(dtos);
}
/**
@ -540,6 +546,7 @@ public class PurchaseReturnController extends BaseController {
//判断是否为有效码
VUtil.trueThrowBusinessError(ObjectUtil.isNull(qrCodeMaster)).throwMessage("无效码");
QrCodeVO qrCodeVO = BarcodeValidation(qrCodeMaster);
qrCodeVO.setLockedNum(returnRequestItemService.getLockedNum(qrCodeVO.getPoNumber(),qrCodeVO.getPoLineNumber()));
return ApiResult.success(qrCodeVO);
}

View File

@ -123,6 +123,11 @@ public class TransferCompanyController extends BaseController {
@PostMapping("searchSAP")
public ApiResult<PageData<AllocationOrderDTO>> searchSAP0(@Valid @RequestBody AllocationOrderQO request) {
List<AllocationOrderDTO> datas = sapService.zwm3a15(request);
if (CollectionUtil.isNotEmpty(datas)){
datas.forEach(dto -> {
dto.setLockedNum(transferCompanyItemService.getLockedNum(dto.getEbeln(),dto.getEbelp()));
});
}
return ApiResult.success(PageUtil.Page(datas, request.getPage(), request.getPageSize()));
}

View File

@ -121,6 +121,11 @@ public class TransferFactoryController extends BaseController {
@PostMapping("searchSAP")
public ApiResult<PageData<TransferOrderDTO>> searchSAP0(@Valid @RequestBody TransferOrderQO request) {
List<TransferOrderDTO> datas = sapService.zwm3a16(request);
if (CollectionUtil.isNotEmpty(datas)){
datas.forEach(dto -> {
dto.setLockedNum(transferFactoryItemService.getLockedNum(dto.getAufnr(),dto.getMatnr()));
});
}
return ApiResult.success(PageUtil.Page(datas, request.getPage(), request.getPageSize()));
}

View File

@ -168,6 +168,11 @@ public class AllocationOrderDTO{
@Positive(message = "申请数量必须大于0")
private BigDecimal num;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
public BigDecimal getNum() {
return Objects.isNull(num) ? sqsl2 : num;
}

View File

@ -153,6 +153,11 @@ public class DepartmentMaterialRequisitionDTO {
*/
private String rspos;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
private String key1;
public String getKey1() {

View File

@ -153,6 +153,11 @@ public class SubcontractedOrderDTO {
@Positive(message = "领料数量必须大于0")
private BigDecimal num;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
private String key;
public String getKey() {

View File

@ -157,6 +157,11 @@ public class TransferOrderDTO {
@Positive(message = "调库数量必须大于0")
private BigDecimal num;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
@JsonIgnore
private String group1;

View File

@ -81,5 +81,10 @@ public class GoodsReceiptVO {
*/
private String storageLocation;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
}

View File

@ -155,4 +155,9 @@ public class QrCodeVO {
private BigDecimal outBoundNum;
private BigDecimal leftNum;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
}

View File

@ -138,6 +138,11 @@ public class Zwm3a07VO {
*/
private Integer dataType = 0;
/**
* 已开单未过账数量
*/
private BigDecimal lockedNum;
@JsonIgnore
private String key1;

View File

@ -3,6 +3,8 @@ package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsOutAssistanceItem;
import java.math.BigDecimal;
/**
* <p>
* Mapper 接口
@ -12,4 +14,5 @@ import com.nflg.wms.repository.entity.WmsOutAssistanceItem;
*/
public interface WmsOutAssistanceItemMapper extends BaseMapper<WmsOutAssistanceItem> {
BigDecimal getLockedNum(String ebeln, String ebelp);
}

View File

@ -3,6 +3,7 @@ package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsOutCostcenterItem;
import java.math.BigDecimal;
import java.util.List;
/**
@ -15,4 +16,6 @@ import java.util.List;
public interface WmsOutCostcenterItemMapper extends BaseMapper<WmsOutCostcenterItem> {
List<WmsOutCostcenterItem> getList(Long id);
BigDecimal getLockedNum(String aufnr, String matnr);
}

View File

@ -3,6 +3,7 @@ package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsOutProduceItem;
import java.math.BigDecimal;
import java.util.List;
/**
@ -17,4 +18,6 @@ public interface WmsOutProduceItemMapper extends BaseMapper<WmsOutProduceItem> {
void releaseNum(List<Long> ids);
List<WmsOutProduceItem> getList(Long id);
BigDecimal getLockedNum(String aufnr, String matnr);
}

View File

@ -3,6 +3,8 @@ package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsReturnRequestItem;
import java.math.BigDecimal;
/**
* <p>
* Mapper 接口
@ -13,4 +15,5 @@ import com.nflg.wms.repository.entity.WmsReturnRequestItem;
*/
public interface WmsReturnRequestItemMapper extends BaseMapper<WmsReturnRequestItem> {
BigDecimal getLockedNum(String poNum, String poLineNumber);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.common.pojo.vo.TransferCompanyItemVO;
import com.nflg.wms.repository.entity.WmsTransferCompanyItem;
import java.math.BigDecimal;
import java.util.List;
/**
@ -16,4 +17,6 @@ import java.util.List;
public interface WmsTransferCompanyItemMapper extends BaseMapper<WmsTransferCompanyItem> {
List<TransferCompanyItemVO> getVOList(Long id);
BigDecimal getLockedNum(String ebeln, String ebelp);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.common.pojo.vo.TransferFactoryItemVO;
import com.nflg.wms.repository.entity.WmsTransferFactoryItem;
import java.math.BigDecimal;
import java.util.List;
/**
@ -16,4 +17,6 @@ import java.util.List;
public interface WmsTransferFactoryItemMapper extends BaseMapper<WmsTransferFactoryItem> {
List<TransferFactoryItemVO> getVOList(Long id);
BigDecimal getLockedNum(String aufnr, String matnr);
}

View File

@ -5,6 +5,7 @@ import com.nflg.wms.repository.entity.WmsOutAssistanceItem;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
@ -17,4 +18,6 @@ import java.util.List;
public interface IWmsOutAssistanceItemService extends IService<WmsOutAssistanceItem> {
List<WmsOutAssistanceItem> getList(@Valid @NotNull Long id);
BigDecimal getLockedNum(String ebeln, String ebelp);
}

View File

@ -5,6 +5,7 @@ import com.nflg.wms.repository.entity.WmsOutCostcenterItem;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
@ -17,4 +18,6 @@ import java.util.List;
public interface IWmsOutCostcenterItemService extends IService<WmsOutCostcenterItem> {
List<WmsOutCostcenterItem> getList(@Valid @NotNull Long id);
BigDecimal getLockedNum(String aufnr, String matnr);
}

View File

@ -6,6 +6,7 @@ import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
@ -20,4 +21,6 @@ public interface IWmsOutProduceItemService extends IService<WmsOutProduceItem> {
void releaseNum(@Valid @NotEmpty List<Long> ids);
List<WmsOutProduceItem> getList(@Valid @NotNull Long id);
BigDecimal getLockedNum(String aufnr, String matnr);
}

View File

@ -3,6 +3,8 @@ package com.nflg.wms.repository.service;
import com.nflg.wms.repository.entity.WmsReturnRequestItem;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
/**
* <p>
* 服务类
@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IWmsReturnRequestItemService extends IService<WmsReturnRequestItem> {
BigDecimal getLockedNum(String poNum, String poLineNumber);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.vo.TransferCompanyItemVO;
import com.nflg.wms.repository.entity.WmsTransferCompanyItem;
import java.math.BigDecimal;
import java.util.List;
/**
@ -18,4 +19,6 @@ public interface IWmsTransferCompanyItemService extends IService<WmsTransferComp
List<WmsTransferCompanyItem> getList(Long id);
List<TransferCompanyItemVO> getVOList(Long id);
BigDecimal getLockedNum(String ebeln, String ebelp);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.vo.TransferFactoryItemVO;
import com.nflg.wms.repository.entity.WmsTransferFactoryItem;
import java.math.BigDecimal;
import java.util.List;
/**
@ -18,4 +19,6 @@ public interface IWmsTransferFactoryItemService extends IService<WmsTransferFact
List<WmsTransferFactoryItem> getList(Long id);
List<TransferFactoryItemVO> getVOList(Long id);
BigDecimal getLockedNum(String aufnr, String matnr);
}

View File

@ -6,6 +6,7 @@ import com.nflg.wms.repository.mapper.WmsOutAssistanceItemMapper;
import com.nflg.wms.repository.service.IWmsOutAssistanceItemService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@ -22,4 +23,9 @@ public class WmsOutAssistanceItemServiceImpl extends ServiceImpl<WmsOutAssistanc
public List<WmsOutAssistanceItem> getList(Long id) {
return lambdaQuery().eq(WmsOutAssistanceItem::getOrderId, id).list();
}
@Override
public BigDecimal getLockedNum(String ebeln, String ebelp) {
return baseMapper.getLockedNum(ebeln,ebelp);
}
}

View File

@ -6,6 +6,7 @@ import com.nflg.wms.repository.mapper.WmsOutCostcenterItemMapper;
import com.nflg.wms.repository.service.IWmsOutCostcenterItemService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@ -22,4 +23,9 @@ public class WmsOutCostcenterItemServiceImpl extends ServiceImpl<WmsOutCostcente
public List<WmsOutCostcenterItem> getList(Long id) {
return baseMapper.getList(id);
}
@Override
public BigDecimal getLockedNum(String aufnr, String matnr) {
return baseMapper.getLockedNum(aufnr, matnr);
}
}

View File

@ -6,6 +6,7 @@ import com.nflg.wms.repository.mapper.WmsOutProduceItemMapper;
import com.nflg.wms.repository.service.IWmsOutProduceItemService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@ -27,4 +28,9 @@ public class WmsOutProduceItemServiceImpl extends ServiceImpl<WmsOutProduceItemM
public List<WmsOutProduceItem> getList(Long id) {
return baseMapper.getList(id);
}
@Override
public BigDecimal getLockedNum(String aufnr, String matnr) {
return baseMapper.getLockedNum(aufnr, matnr);
}
}

View File

@ -6,6 +6,8 @@ import com.nflg.wms.repository.service.IWmsReturnRequestItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* <p>
* 服务实现类
@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
@Service
public class WmsReturnRequestItemServiceImpl extends ServiceImpl<WmsReturnRequestItemMapper, WmsReturnRequestItem> implements IWmsReturnRequestItemService {
@Override
public BigDecimal getLockedNum(String poNum, String poLineNumber) {
return baseMapper.getLockedNum(poNum, poLineNumber);
}
}

View File

@ -7,6 +7,7 @@ import com.nflg.wms.repository.mapper.WmsTransferCompanyItemMapper;
import com.nflg.wms.repository.service.IWmsTransferCompanyItemService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@ -28,4 +29,9 @@ public class WmsTransferCompanyItemServiceImpl extends ServiceImpl<WmsTransferCo
public List<TransferCompanyItemVO> getVOList(Long id) {
return baseMapper.getVOList(id);
}
@Override
public BigDecimal getLockedNum(String ebeln, String ebelp) {
return baseMapper.getLockedNum(ebeln, ebelp);
}
}

View File

@ -7,6 +7,7 @@ import com.nflg.wms.repository.mapper.WmsTransferFactoryItemMapper;
import com.nflg.wms.repository.service.IWmsTransferFactoryItemService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@ -28,4 +29,9 @@ public class WmsTransferFactoryItemServiceImpl extends ServiceImpl<WmsTransferFa
public List<TransferFactoryItemVO> getVOList(Long id) {
return baseMapper.getVOList(id);
}
@Override
public BigDecimal getLockedNum(String aufnr, String matnr) {
return baseMapper.getLockedNum(aufnr, matnr);
}
}

View File

@ -2,4 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsOutAssistanceItemMapper">
</mapper>
<select id="getLockedNum" resultType="java.math.BigDecimal">
SELECT SUM(oai."left") AS "lockedNum"
FROM wms_out_assistance_item oai
INNER JOIN wms_out_assistance oa ON oai.order_id=oa."id"
WHERE oa.ebeln=#{ebeln} AND oai.ebelp=#{ebelp}
</select>
</mapper>

View File

@ -8,4 +8,11 @@
where order_id = #{id}
order by id desc
</select>
<select id="getLockedNum" resultType="java.math.BigDecimal">
SELECT SUM(oi."left") AS "lockedNum"
FROM wms_out_costcenter_item oi
INNER JOIN wms_out_costcenter o ON oi.order_id=o."id"
WHERE o.aufnr=#{aufnr} AND oi.matnr=#{matnr}
</select>
</mapper>

View File

@ -17,4 +17,11 @@
where order_id=#{id}
order by id desc
</select>
<select id="getLockedNum" resultType="java.math.BigDecimal">
SELECT SUM(oi.lock_num) AS "lockedNum"
FROM wms_out_produce_item oi
INNER JOIN wms_out_produce o ON oi.order_id=o."id"
WHERE o.aufnr=#{aufnr} AND oi.matnr=#{matnr}
</select>
</mapper>

View File

@ -2,4 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsReturnRequestItemMapper">
<select id="getLockedNum" resultType="java.math.BigDecimal">
SELECT SUM(oi."left") AS "lockedNum"
FROM wms_return_request_item oi
INNER JOIN wms_return_request o ON oi.application_id=o."id"
WHERE o.po_num=#{poNum} AND oi.po_line_number=#{poLineNumber}
</select>
</mapper>

View File

@ -8,4 +8,11 @@
FROM wms_transfer_company_item tci
WHERE order_id = #{id}
</select>
<select id="getLockedNum" resultType="java.math.BigDecimal">
SELECT SUM(oi."left") AS "lockedNum"
FROM wms_transfer_company_item oi
INNER JOIN wms_transfer_company o ON oi.order_id=o."id"
WHERE o.ebeln=#{ebeln} AND oi.ebelp=#{ebelp}
</select>
</mapper>

View File

@ -8,4 +8,11 @@
FROM wms_transfer_factory_item tfi
WHERE order_id = #{id}
</select>
<select id="getLockedNum" resultType="java.math.BigDecimal">
SELECT SUM(oi."left") AS "lockedNum"
FROM wms_transfer_factory_item oi
INNER JOIN wms_transfer_factory o ON oi.order_id=o."id"
WHERE oi.aufnr=#{aufnr} AND oi.matnr=#{matnr}
</select>
</mapper>