fix 到货单合并入库单

This commit is contained in:
Amjacks 2025-04-01 15:41:26 +08:00
parent 64c4e2f94d
commit 00e0126b4a
5 changed files with 17 additions and 13 deletions

View File

@ -59,17 +59,20 @@ public class DeliveryController {
List<String> nameList = new ArrayList<>(); List<String> nameList = new ArrayList<>();
// 判定是否是到库单 // 判定是否是到库单
String typeByKey = deliveryService.getByKey(siteName, receiveRequestName).getReceiveRequestType(); String typeByKey = deliveryService.getByKey(siteName, receiveRequestName).getReceiveRequestType();
boolean isDelivery = typeByKey.equals(ReceiveTypeEnums.DK.getCode()); // 到货单
if (isDelivery) { String deliveryName = null;
if (typeByKey.equals(ReceiveTypeEnums.DK.getCode())) {
// 到库单找出该单据下的所有的采购单 // 到库单找出该单据下的所有的采购单
nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName) nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName)
.stream().map(MaterialReceiveRequest::getReceiveRequestName).collect(Collectors.toList()); .stream().map(MaterialReceiveRequest::getReceiveRequestName).collect(Collectors.toList());
deliveryName = receiveRequestName;
} else { } else {
// 采购单 // 采购单
nameList.add(receiveRequestName); nameList.add(receiveRequestName);
} }
// 获取采购单明细及批次 // 获取采购单明细及批次
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getStoreDetail(siteName, nameList, isDelivery)); return AjaxResult.me().setSuccess(true).setResultObj(
deliveryService.getStoreDetail(siteName, nameList, deliveryName));
} }
/** /**

View File

@ -41,7 +41,7 @@ public interface DeliveryDao {
@MapKey("storeDetail") @MapKey("storeDetail")
List<Map<String, Object>> getStoreDetail(@Param("siteName") String siteName, List<Map<String, Object>> getStoreDetail(@Param("siteName") String siteName,
@Param("nameList") List<String> nameList, @Param("nameList") List<String> nameList,
@Param("isDelivery") Boolean isDelivery); @Param("deliveryName") String deliveryName);
/** /**
* 获取入库批次 * 获取入库批次

View File

@ -29,10 +29,10 @@ public interface IDeliveryService {
* 获取采购单明细及批次 * 获取采购单明细及批次
* @param siteName 组织 * @param siteName 组织
* @param nameList 名称 * @param nameList 名称
* @param isDelivery 是否到库 * @param deliveryName 到库单号
* @return 采购订单 * @return 采购订单
*/ */
ReceiveDetailVo getStoreDetail(String siteName, List<String> nameList, Boolean isDelivery); ReceiveDetailVo getStoreDetail(String siteName, List<String> nameList, String deliveryName);
/** /**
* 根据 key 获取值 * 根据 key 获取值

View File

@ -58,10 +58,10 @@ public class DeliveryServiceImpl implements IDeliveryService {
} }
@Override @Override
public ReceiveDetailVo getStoreDetail(String siteName, List<String> nameList, Boolean isDelivery) { public ReceiveDetailVo getStoreDetail(String siteName, List<String> nameList, String deliveryName) {
ReceiveDetailVo receiveDetailVo = new ReceiveDetailVo(); ReceiveDetailVo receiveDetailVo = new ReceiveDetailVo();
// 采购单明细 // 采购单明细
List<Map<String, Object>> storeDetail = deliveryDao.getStoreDetail(siteName, nameList, isDelivery); List<Map<String, Object>> storeDetail = deliveryDao.getStoreDetail(siteName, nameList, deliveryName);
receiveDetailVo.setStoreDetail(storeDetail); receiveDetailVo.setStoreDetail(storeDetail);
// 批次 // 批次
List<Map<String, Object>> storeCharge = deliveryDao.getStoreCharge(siteName, nameList); List<Map<String, Object>> storeCharge = deliveryDao.getStoreCharge(siteName, nameList);

View File

@ -62,11 +62,12 @@
</foreach> </foreach>
GROUP BY m.MATERIALSPECNAME GROUP BY m.MATERIALSPECNAME
) )
<if test="isDelivery"> <if test="deliveryName != null">
,DELIVERY AS ( ,DELIVERY AS (
SELECT sum(md.DELIVERYNUM) DELIVERYNUM, md.MATERIALSPECNAME MATERIALSPECNAME SELECT sum(md.DELIVERYNUM) DELIVERYNUM, md.MATERIALSPECNAME MATERIALSPECNAME
FROM MATERIALRECEIVEDELIVERY md FROM MATERIALRECEIVEDELIVERY md
WHERE md.RECEIVEREQUESTNAME IN WHERE md.DELIVERYNAME = #{deliveryName}
and md.RECEIVEREQUESTNAME IN
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")"> <foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
#{name} #{name}
</foreach> </foreach>
@ -74,10 +75,10 @@
) )
</if> </if>
SELECT distinct MAIN.RECEIVEDQUANTITY, MAIN.MINUSQTY, SELECT distinct MAIN.RECEIVEDQUANTITY, MAIN.MINUSQTY,
<if test="isDelivery"> <if test="deliveryName != null">
DELIVERY.DELIVERYNUM REQUESTQUANTITY, DELIVERY.DELIVERYNUM REQUESTQUANTITY,
</if> </if>
<if test="!isDelivery"> <if test="deliveryName == null">
MAIN.REQUESTQUANTITY REQUESTQUANTITY, MAIN.REQUESTQUANTITY REQUESTQUANTITY,
</if> </if>
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH,
@ -105,7 +106,7 @@
AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME
AND BB.SDK_ID = m.SDK_ID AND BB.SDK_ID = m.SDK_ID
AND BB.PHASE = m3.PHASE AND BB.PHASE = m3.PHASE
<if test="isDelivery"> <if test="deliveryName != null">
INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME
</if> </if>
WHERE ( m2.RETURNFLAG IS NULL OR m2.RETURNFLAG != 'Y' ) WHERE ( m2.RETURNFLAG IS NULL OR m2.RETURNFLAG != 'Y' )