Browse Source

自提BUG修复

pull/7/head
汤建军 1 year ago
parent
commit
5909eca9d2
  1. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
  2. 61
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionBillLadingZeroPackageDTO.java
  3. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionParcelListDTO.java
  4. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  5. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  6. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationZeroPackageService.java
  7. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
  8. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  9. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  10. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java
  11. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationZeroPackageServiceImpl.java
  12. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  13. 596
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java

@ -355,8 +355,9 @@ public class DistributionStockupAppController extends BladeController {
return R.fail("未知的查询类型");
}
}
return Resp.scanFail("零担备货维护中!!!","零担备货维护中!!!");
return R.data(map);
// return R.data(map);
}

61
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionBillLadingZeroPackageDTO.java

@ -0,0 +1,61 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.distribution.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* 在库订单包件清单 数据传输对象实体类
*
* @author cyz
* @since 2023-06-13
*/
@Data
public class DistributionBillLadingZeroPackageDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 包件ID
*/
private Long id ;
/**
* 录入数量
*/
private Long tiQuantity ;
/**
* 订单ID
*/
private Long stockArticleId ;
/**
* 零担品类
*/
private String firsts ;
}

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionParcelListDTO.java

@ -39,6 +39,7 @@ public class DistributionParcelListDTO extends DistributionParcelListEntity {
private String materialName;
private String materialCode;
private Integer isLoading;
private Integer tiQuantity;
private Integer isSigning;
private String materialUnit;
private Integer reservationNum; //预约数量

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java

@ -151,6 +151,13 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page,@Param("param") DistrilbutionBillLadingEntity distrilbutionBillLadingEntity);
/**
* 查询自提单的零担包件
* @param reservationId
* @return
*/
List<DistributionStockupOrderListVO> selectBillLadingZeroPackageList(@Param("bullLadingId")Long bullLadingId);
// Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page, DistrilbutionBillLadingEntity distrilbutionBillLadingEntity);
}

25
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml

@ -41,7 +41,7 @@
GROUP_CONCAT(DISTINCT dsa.customer_telephone)
customerTelephone,dsa.warehouse,dsa.warehouse_entry_time warehouseEntryTime,dsa.storage_fee
storageFee,
count( dbp.packet_number ) + IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = dbl.id ),0)AS totalNumber,
count( dbp.packet_number )+IFNULL((SELECT SUM(quantity) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = dbl.id AND zero_package_status !=2),0) + IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = dbl.id AND inventory_status != 2),0)AS totalNumber,
dbl.certificate_type certificateType,
GROUP_CONCAT(DISTINCT dsa.brand) brand,dsa.type_service typeService,
dbl.pick_up_time pickUpTime,dbl.consignee,dbl.delivery_document
@ -82,7 +82,8 @@
) AS productInformation
from logpm_distrilbution_bill_lading dbl
LEFT JOIN logpm_distrilbution_bill_package dbp on dbp.bill_lading_id = dbl.id and dbp.packet_bar_status in (1,3)
LEFT JOIN logpm_distribution_stock_article dsa on dbp.stock_article_id = dsa.id
LEFT JOIN logpm_distribution_reservation_zero_package ldrzp on ldrzp.reservation_id = dbl.id and ldrzp.stock_status in (1,3)
LEFT JOIN logpm_distribution_stock_article dsa on dbp.stock_article_id = dsa.id OR ldrzp.stock_article_id = dsa.id
<where>
dbl.is_deleted = 0
<if test="param.serviceNumber != null and param.serviceNumber != ''">and dsa.service_number like
@ -514,9 +515,9 @@
<select id="getBillLadingOrderMainVO"
resultType="com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO">
SELECT
( SELECT count( 1 ) FROM logpm_distrilbution_bill_stock WHERE bill_lading_id = ldbl.id AND order_status != 2 AND is_deleted = 0 AND order_status = 2 ) AS orderNum ,
( SELECT count( 1 ) FROM logpm_distrilbution_bill_stock WHERE bill_lading_id = ldbl.id AND order_status != 2 AND is_deleted = 0 AND order_status != 2 ) AS orderNum ,
(IFNULL((SELECT SUM(quantity) FROM logpm_distribution_reservation_zero_package WHERE reservation_id = ldbl.id AND zero_package_status != 2 AND is_deleted = 0),0)) +
(IFNULL((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = ldbl.id AND packet_bar_status = 2 AND is_deleted = 0),0))+
(IFNULL((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = ldbl.id AND packet_bar_status != 2 AND is_deleted = 0),0))+
(IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = ldbl.id AND inventory_status != 2 AND is_deleted = 0),0)) AS planNum,
IFNULL((SELECT SUM(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = ldbl.id AND is_deleted = 0 AND inventory_status != 2),0) AS inventoryNub,
IFNULL((SELECT SUM(quantity) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id = ldbl.id AND is_deleted = 0) ,0) AS signedNum
@ -550,6 +551,22 @@
ldbl.id = #{param.id} and lddd.is_deleted = '0'
</where>
</select>
<select id="selectBillLadingZeroPackageList"
resultType="com.logpm.distribution.vo.DistributionStockupOrderListVO">
SELECT
ldrzp.parcel_list_id AS parcelListId,
lds.id AS stockId,
ldsa.order_code AS orderCode,
ldsa.description_goods AS descriptionGoods,
ldsa.id AS stockArticleId
FROM
logpm_distribution_reservation_zero_package AS ldrzp
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrzp.parcel_list_id = ldpl.id
LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldrzp.stock_article_id = ldsa.id
LEFT JOIN logpm_distribution_stock lds ON lds.parcel_list_id = ldrzp.parcel_list_id
WHERE
ldrzp.reservation_id = #{bullLadingId} and ldrzp.zero_package_status in (1,3)
</select>
</mapper>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationZeroPackageService.java

@ -71,4 +71,6 @@ public interface IDistributionReservationZeroPackageService extends BaseService<
* @param collect
*/
void recoverZeroPackage(Long reservationId, List<Long> collect);
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java

@ -120,7 +120,6 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
/**
* 查询自提订单列表库存品
* @param page
* @param distrilbutionBillLading
* @return
*/
@ -242,4 +241,11 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
* @return
*/
Integer checkBillLadingIsRelease(Long billLadingId);
/**
* 查询自提的零担包件
* @param reservationId
* @return
*/
List<DistributionStockupOrderListVO> selectBillLadingZeroPackageList(Long reservationId);
}

19
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -328,10 +328,21 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
log.debug("####修改包件预约状态");
ids.forEach(i -> {
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity();
distributionParcelListEntity.setId(i);
distributionParcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity);
log.debug("####修改包件预约数量===={}", i1);
if ("1".equals(distributionParcelListEntity.getConditions())){
distributionParcelListEntity.setId(i);
distributionParcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity);
log.debug("####修改包件预约数量===={}", i1);
}else if ("3".equals(distributionParcelListEntity.getConditions())){
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getParcelListId, i)
);
if (distributionParcelNumberEntity.getQuantity() == (distributionParcelNumberEntity.getDeliveryQuantity() + distributionParcelNumberEntity.getOutboundQuantity())){
log.debug("####修改包件预约数量===={}", i);
distributionParcelListEntity.setId(i);
int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity);
}
}
});
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -376,7 +376,12 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
BeanUtils.copyProperties(i, parcelListVO);
parcelListVO.setLibraryQuantity(parcelNumber.getHandQuantity());
parcelListVO.setDeliveryQuantity(parcelNumber.getDeliveryQuantity());
parcelListVO.setTiQuantity(parcelNumber.getHandQuantity());
if (Func.isNotEmpty(reservationId)){
if (Func.isNotEmpty(one)){
parcelListVO.setDeliveryQuantity(parcelNumber.getDeliveryQuantity() - one.getQuantity());
}
}
parcelListVO.setTiQuantity((parcelNumber.getHandQuantity() - parcelNumber.getDeliveryQuantity()));
if (ObjectUtils.isNotNull(one)) {
parcelListVO.setReservationQuantity(one.getQuantity());
} else {

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java

@ -92,11 +92,11 @@ public class DistributionParcelNumberServiceImpl extends BaseServiceImpl<Distrib
case 1:
//加
parcelEntity.setId(parcelNumberEntity.getId());
parcelEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + i1);
parcelEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() - i1);
case 2:
//减
parcelEntity.setId(parcelNumberEntity.getId());
parcelEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() - i1);
parcelEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() + i1);
}
baseMapper.updateById(parcelEntity);
}

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationZeroPackageServiceImpl.java

@ -105,7 +105,7 @@ public class DistributionReservationZeroPackageServiceImpl extends BaseServiceIm
String method = "###################DistributionReservationZeroPackageServiceImpl.recoverZeroPackage";
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = this.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, reservationId)
.in(DistributionReservationZeroPackageEntity::getReservationId, collect)
.in(DistributionReservationZeroPackageEntity::getParcelListId, collect)
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
for (DistributionReservationZeroPackageEntity reservationZeroPackageEntity : reservationZeroPackageEntities) {
@ -113,7 +113,7 @@ public class DistributionReservationZeroPackageServiceImpl extends BaseServiceIm
DistributionParcelListEntity parcelListEntity = distributionParcelListMapper.selectById(reservationZeroPackageEntity.getParcelListId());
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelListEntity.getId()));
//进行预约数量的扣减
int i = distributionParcelNumberEntity.getDeliveryQuantity() + distributionParcelNumberEntity.getQuantity();
int i = distributionParcelNumberEntity.getDeliveryQuantity() - distributionParcelNumberEntity.getQuantity();
distributionParcelNumberEntity.setDeliveryQuantity(i);
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
reservationZeroPackageEntity.setQuantity(0);

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

@ -205,6 +205,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Autowired
private DistributionStockListInfoMapper distributionStockListInfoMapper;
@Autowired
@Lazy
private IDistrilbutionBillLadingService distrilbutionBillLadingService;
@Autowired
private IBasicdataClientClient basicdataClientClient;
@ -714,10 +718,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
}
//零担查询货位,托盘信息
if (stockupDTO.getIsZero().equals("1")) {
List<DistributionStockupOrderListVO> zeroTrayInfo = getZeroTrayInfo(list);
if (!zeroTrayInfo.isEmpty()) {
list = zeroTrayInfo;
List<DistributionStockupOrderListVO> zeroOrderList = distrilbutionBillLadingService.selectBillLadingZeroPackageList(reservationId);
if (Func.isNotEmpty(zeroOrderList)){
List<DistributionStockupOrderListVO> zeroTrayInfo = getZeroTrayInfo(zeroOrderList);
if (!zeroTrayInfo.isEmpty()) {
list = zeroTrayInfo;
}
}
}
//获取有货位的数据
List<DistributionStockupOrderListVO> collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList());

596
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -48,11 +48,14 @@ import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant;
import org.springblade.common.constant.billLading.BillLadingStatusConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant;
import org.springblade.common.constant.order.OrderStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.pda.PdaAudioLingoStatus;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.common.constant.stockup.StockAssignStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
@ -68,6 +71,8 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictBizCache;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -87,46 +92,58 @@ import java.util.stream.Collectors;
* @since 2023-06-14
*/
@Service
@AllArgsConstructor
@Log4j2
public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<DistrilbutionBillLadingMapper, DistrilbutionBillLadingEntity> implements IDistrilbutionBillLadingService {
private final IDistributionDeliveryChargeService distributionDeliveryChargeService;
private final IDistributionDeliveryDetailsService distributionDeliveryDetailsService;
private final IDistributionReservationService distributionReservationService;
private final IDistributionPrintService distributionPrintService;
private final IDistributionStockArticleService distributionStockArticleService;
private final IDistributionParcelListService distributionParcelListService;
private final IDistributionBillLadingScanService distributionBillLadingScanService;
private final IDistrilbutionBillStockService distrilbutionBillStockService;
private final IDistributionStockupScanService distributionStockupScanService;
private final IDistributionStockListService distributionStockListService;
private final DistributionStockListMapper distributionStockListMapper;
private final IDistributionAsyncService distributionAsyncService;
private final IDistributionStockService distributionStockService;
private final IDistributionStockupService distributionStockupService;
private final IDistributionStockupInfoService distributionStockupInfoService;
private final IBasicdataWarehouseClient basicdataWarehouseClient;
private final IDistributionReservationZeroPackageService distributionZeroPackageService; //零担配送记录
private final IDistributionParcelNumberService distributionParcelNumberService; //零担配送数量记录
private final IDistrilbutionBillPackageService distrilbutionBillPackageService;
private final IBasicdataWarehouseClient warehouseClient;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private final IDisStockListDetailService disStockListDetailService;
private final BladeRedis redis;
@Autowired
private IDistributionDeliveryChargeService distributionDeliveryChargeService;
@Autowired
private IDistributionDeliveryDetailsService distributionDeliveryDetailsService;
@Autowired
private IDistributionReservationService distributionReservationService;
@Autowired
private IDistributionPrintService distributionPrintService;
@Autowired
private IDistributionStockArticleService distributionStockArticleService;
@Autowired
private IDistributionParcelListService distributionParcelListService;
@Autowired
private IDistributionBillLadingScanService distributionBillLadingScanService;
@Autowired
private IDistrilbutionBillStockService distrilbutionBillStockService;
@Autowired
private IDistributionStockupScanService distributionStockupScanService;
@Autowired
private IDistributionStockListService distributionStockListService;
@Autowired
private DistributionStockListMapper distributionStockListMapper;
@Autowired
private IDistributionAsyncService distributionAsyncService;
@Autowired
private IDistributionStockService distributionStockService;
@Autowired
@Lazy
private IDistributionStockupService distributionStockupService;
@Autowired
private IDistributionStockupInfoService distributionStockupInfoService;
@Autowired
private IBasicdataWarehouseClient basicdataWarehouseClient;
@Autowired
private IDistributionReservationZeroPackageService distributionZeroPackageService; //零担配送记录
@Autowired
private IDistributionParcelNumberService distributionParcelNumberService; //零担配送数量记录
@Autowired
private IDistrilbutionBillPackageService distrilbutionBillPackageService;
@Autowired
private IBasicdataWarehouseClient warehouseClient;
@Autowired
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
@Autowired
private IDisStockListDetailService disStockListDetailService;
@Autowired
private BladeRedis redis;
@Override
@ -479,105 +496,312 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
throw new ServiceException("请选择仓库在操作!!!");
}
distrilbutionBillLading.setWarehouseId(myCurrentWarehouse.getId());
List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLading.getParcelLisList();
// List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLading.getParcelLisList();
Map<Long, List<DistributionParcelListEntity>> packageMap =null;
if (Func.isNotEmpty( distrilbutionBillLading.getBillPackageEntityList())){
List<DistrilbutionBillPackageEntity> packageEntityList= distrilbutionBillLading.getBillPackageEntityList();
List<Long> packageisd = packageEntityList.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(packageisd);
if (Func.isNotEmpty(distributionParcelListEntities)){
packageMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId));
}
}
Map<Long, List<DistributionParcelListDTO>> zeroPackageMap = null;
if (Func.isNotEmpty( distrilbutionBillLading.getParcelLisList())){
List<DistributionParcelListDTO> zeroPackageList = distrilbutionBillLading.getParcelLisList();
zeroPackageMap = zeroPackageList.stream().collect(Collectors.groupingBy(DistributionParcelListDTO::getStockArticleId));
}
this.saveDistrilbutionBillLading(distrilbutionBillLading);
//修改订单状态
// if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
// String[] split = distrilbutionBillLading.getStockArticleId().split(",");
//// for (String s : split) {
//// //查询订单信息
//// DistributionStockArticleEntity byId = distributionStockArticleService.getById(s);
//// //查询是否创建过
//// DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
//// //添加订单和提货单关联
//// DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockVO();
//// distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId());
//// distrilbutionBillStock.setStockArticleId(Long.parseLong(s));
//// distrilbutionBillStock.setConditions(BillLadingStatusConstant.daitihuo.getValue());
//// distrilbutionBillStock.setOrderStatus("1");
//// distrilbutionBillStockService.save(distrilbutionBillStock);
//// List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>();
//// if (ObjectUtils.isNotNull(distrilbutionBillLading.getBillPackageEntityList())) {
//// //添加自提包件信息
////// List<DistrilbutionBillPackageEntity> collect = new ArrayList<>();
//// List<DistrilbutionBillPackageEntity> collect = distrilbutionBillLading.getBillPackageEntityList().stream().filter(qqq -> qqq.getStockArticleId().toString().equals(s)).collect(Collectors.toList());
//// if (!collect.isEmpty()) {
//// //有包件
//// collect.stream().forEach(ss -> {
//// DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
//// billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
//// billPackageEntity.setPacketBarCode(ss.getPacketBarCode());
//// billPackageEntity.setPacketBarStatus(1);
//// billPackageEntity.setParceListId(ss.getParceListId());
//// billPackageEntity.setStockArticleId(ss.getStockArticleId());
//// billPackageEntity.setPacketNumber(1);
//// billPackageEntity.setBillType(byId.getIsZero().equals("1") ? "2" : "1");
//// packageEntityList.add(billPackageEntity);
//// });
////
//// List<Long> collect1 = collect.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
//// distributionAsyncService.updateParcelListReservation(collect1);
////
////// //判断是否全部修改
////// int i = byId.getHandQuantity() - collect.size();
////// if (i > 0) {
////// //部分
////// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
////// }
//// } else {
//// //没有包件 查询包件信息
//// List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
//// if (packageEntityList1.isEmpty()) {
//// throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
//// }
//// packageEntityList.addAll(packageEntityList1);
////
////// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
//// }
//// } else {
//// //没有包件 查询包件信息
//// List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
//// if (packageEntityList1.isEmpty()) {
//// throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
//// }
//// packageEntityList.addAll(packageEntityList1);
////
////// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
//// }
////
////// int i1 = byId.getHandQuantity() + byId.getSigninQuantity(); //总数
//// if (byId.getCompleteSet() == 2) {
//// //全部
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
////
//// } else {
//// //部分
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
//// }
////
//// //判断是否改为已预约
//// List<DistributionParcelNumberEntity> parcelNumberList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
//// .eq(DistributionParcelNumberEntity::getStockArticleId, s)
//// );
//// if (!parcelNumberList.isEmpty()) {
//// //零担
//// int handQuantity = parcelNumberList.stream().mapToInt(DistributionParcelNumberEntity::getHandQuantity).sum(); //在库总数量
//// int sum = parcelNumberList.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum(); //配送数量
//// int i = handQuantity - sum;
//// if (i > 0) {
//// //部分
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
//// } else if (i == 0) {
//// //全部
//// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
//// }
//// }
//// distrilbutionBillPackageService.saveBatch(packageEntityList);
////// distributionStockArticle.setId(Long.parseLong(s));
////// distributionStockArticleService.updateById(distributionStockArticle);
//// distributionStockArticleService.maintenanceOrderInfo(distributionStockArticle.getOrderCode(),myCurrentWarehouse.getId());
//// }
// }
List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>();
if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
String[] split = distrilbutionBillLading.getStockArticleId().split(",");
for (String s : split) {
//查询订单信息
DistributionStockArticleEntity byId = distributionStockArticleService.getById(s);
//查询是否创建过
DistributionStockArticleEntity distributionStockArticle = new DistributionStockArticleEntity();
//添加订单和提货单关联
DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockVO();
//构建订单
List<Long> packageIds = new ArrayList<>();
List<Long> zeroPackageIds = new ArrayList<>();
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(s);
DistrilbutionBillStockEntity distrilbutionBillStock = new DistrilbutionBillStockEntity();
distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId());
distrilbutionBillStock.setStockArticleId(Long.parseLong(s));
distrilbutionBillStock.setConditions(BillLadingStatusConstant.daitihuo.getValue());
distrilbutionBillStock.setOrderStatus("1");
distrilbutionBillStockService.save(distrilbutionBillStock);
List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>();
if (ObjectUtils.isNotNull(distrilbutionBillLading.getBillPackageEntityList())) {
//添加自提包件信息
// List<DistrilbutionBillPackageEntity> collect = new ArrayList<>();
List<DistrilbutionBillPackageEntity> collect = distrilbutionBillLading.getBillPackageEntityList().stream().filter(qqq -> qqq.getStockArticleId().toString().equals(s)).collect(Collectors.toList());
if (!collect.isEmpty()) {
//有包件
collect.stream().forEach(ss -> {
DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
billPackageEntity.setPacketBarCode(ss.getPacketBarCode());
billPackageEntity.setPacketBarStatus(1);
billPackageEntity.setParceListId(ss.getParceListId());
billPackageEntity.setStockArticleId(ss.getStockArticleId());
billPackageEntity.setPacketNumber(1);
billPackageEntity.setBillType(byId.getIsZero().equals("1") ? "2" : "1");
packageEntityList.add(billPackageEntity);
});
List<Long> collect1 = collect.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
distributionAsyncService.updateParcelListReservation(collect1);
//判断是否全部修改
int i = byId.getHandQuantity() - collect.size();
if (i > 0) {
//部分
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
if (Func.isNotEmpty(stockArticleEntity)){
if (IsOrNoConstant.no.getValue().equals(stockArticleEntity.getIsZero())){
//查询此订单是否能够从包件列表获取到信息
if (Func.isNotEmpty(packageMap)){
if (Func.isNotEmpty(packageMap.get(Long.parseLong(s)))){
//存在勾选包件信息
for (DistributionParcelListEntity distrilbutionBillPackageEntity : packageMap.get(Long.parseLong(s))) {
DistrilbutionBillPackageEntity aaa = new DistrilbutionBillPackageEntity();
aaa.setBillLadingId(distrilbutionBillLading.getId());
aaa.setPacketBarStatus(1);
aaa.setBillType("1");
aaa.setPacketNumber(distrilbutionBillPackageEntity.getQuantity());
//进行包件的预约状态修改
packageEntityList.add(aaa);
packageIds.add(aaa.getParceListId());
}
}else {
//没有进行包件的勾选,默认添加所有可用包件至计划下
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue())
.eq(DistributionParcelListEntity::getOrderPackageLoadingStatus, OrderPackageLoadingStatusConstant.weizhuancghe.getValue())
.eq(DistributionParcelListEntity::getConditions, 1)
.eq(DistributionParcelListEntity::getStockArticleId, Long.parseLong(s))
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yiqianshou.getValue())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yichuku.getValue())
);
if (!Func.isEmpty(parcelListEntities)){
for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
billPackageEntity.setPacketBarStatus(1);
billPackageEntity.setBillType("1");
billPackageEntity.setPacketNumber(parcelListEntity.getQuantity());
billPackageEntity.setParceListId(parcelListEntity.getId());
billPackageEntity.setStockArticleId(parcelListEntity.getStockArticleId());
billPackageEntity.setPacketBarCode(parcelListEntity.getOrderPackageCode());
packageEntityList.add(billPackageEntity);
packageIds.add(parcelListEntity.getId());
}
}else {
log.error("#####################自提计划订单无可用包件:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单无可用包件!!!");
}
}
}else {
//没有进行包件的勾选,默认添加所有可用包件至计划下
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue())
.eq(DistributionParcelListEntity::getOrderPackageLoadingStatus, OrderPackageLoadingStatusConstant.weizhuancghe.getValue())
.eq(DistributionParcelListEntity::getConditions, 1)
.eq(DistributionParcelListEntity::getStockArticleId, Long.parseLong(s))
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yiqianshou.getValue())
.ne(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yichuku.getValue())
);
if (!Func.isEmpty(parcelListEntities)){
for (DistributionParcelListEntity parcelListEntity : parcelListEntities) {
DistrilbutionBillPackageEntity billPackageEntity = new DistrilbutionBillPackageEntity();
billPackageEntity.setBillLadingId(distrilbutionBillLading.getId());
billPackageEntity.setPacketBarStatus(1);
billPackageEntity.setBillType("1");
billPackageEntity.setPacketNumber(parcelListEntity.getQuantity());
billPackageEntity.setParceListId(parcelListEntity.getId());
billPackageEntity.setStockArticleId(parcelListEntity.getStockArticleId());
billPackageEntity.setPacketBarCode(parcelListEntity.getOrderPackageCode());
packageEntityList.add(billPackageEntity);
packageIds.add(parcelListEntity.getId());
}
}else {
log.error("#####################自提计划订单无可用包件:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单无可用包件!!!");
}
}
} else {
//没有包件 查询包件信息
List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
if (packageEntityList1.isEmpty()) {
throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
}else if (IsOrNoConstant.yes.getValue().equals(stockArticleEntity.getIsZero())){
boolean a = false;
if (Func.isNotEmpty(zeroPackageMap)){
if (Func.isNotEmpty(zeroPackageMap.get(Long.parseLong(s)))){
a = true;
}
}
if (a){
//存在数量填写
for (DistributionParcelListDTO distributionParcelListDTO : zeroPackageMap.get(Long.parseLong(s))) {
if (distributionParcelListDTO.getQuantity() > 0 || Func.isEmpty(distributionParcelListDTO.getQuantity()) ){
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setParcelListId(distributionParcelListDTO.getId());
distributionReservationZeroPackageEntity.setCategoryName(distributionParcelListDTO.getFirsts());
distributionReservationZeroPackageEntity.setQuantity(distributionParcelListDTO.getTiQuantity());
distributionReservationZeroPackageEntity.setType("3");
distributionReservationZeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
distributionReservationZeroPackageEntity.setStockArticleId(distributionParcelListDTO.getStockArticleId());
distributionReservationZeroPackageEntity.setRealityQuantity(0);
distributionReservationZeroPackageEntity.setZeroPackageStatus("1");
distributionZeroPackageService.save(distributionReservationZeroPackageEntity);
zeroPackageIds.add(distributionReservationZeroPackageEntity.getParcelListId());
//维护对应零担包件的配送数量
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getStockArticleId, distributionParcelListDTO.getStockArticleId())
.eq(DistributionParcelNumberEntity::getParcelListId, distributionParcelListDTO.getId())
);
int num = distributionParcelNumberEntity.getDeliveryQuantity() + distributionParcelListDTO.getTiQuantity();
distributionParcelNumberEntity.setDeliveryQuantity(num);
if (distributionParcelListDTO.getTiQuantity() > (distributionParcelNumberEntity.getHandQuantity() - distributionParcelNumberEntity.getDeliveryQuantity())){
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单在库数量不足!!!");
}
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
}
}
}else {
//查询此订单下可用零担数量
List<DistributionParcelNumberVO> zeroOrderDetail = distributionStockArticleService.getZeroOrderDetail(Long.parseLong(s));
if (Func.isNotEmpty(zeroOrderDetail)){
for (DistributionParcelNumberVO distributionParcelNumberVO : zeroOrderDetail) {
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setRealityQuantity(0);
distributionReservationZeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
distributionReservationZeroPackageEntity.setType("3");
distributionReservationZeroPackageEntity.setStockArticleId(Long.parseLong(s));
int num = distributionParcelNumberVO.getHandQuantity() - distributionParcelNumberVO.getDeliveryQuantity();
distributionReservationZeroPackageEntity.setQuantity(num);
distributionReservationZeroPackageEntity.setParcelListId(distributionParcelNumberVO.getParcelListId());
distributionReservationZeroPackageEntity.setZeroPackageStatus("1");
distributionReservationZeroPackageEntity.setCategoryName(distributionParcelNumberVO.getFirsts());
distributionZeroPackageService.save(distributionReservationZeroPackageEntity);
//维护零担品类配送数量
DistributionParcelNumberEntity distributionParcelNumberEntity = new DistributionParcelNumberEntity();
distributionParcelNumberEntity.setId(distributionParcelNumberVO.getId());
distributionParcelNumberEntity.setDeliveryQuantity(distributionParcelNumberVO.getDeliveryQuantity() + num);
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
zeroPackageIds.add(distributionReservationZeroPackageEntity.getParcelListId());
}
}else {
log.error("#####################订单无可用零担:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单无在库零担!!!");
}
}
packageEntityList.addAll(packageEntityList1);
// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}
} else {
//没有包件 查询包件信息
List<DistrilbutionBillPackageEntity> packageEntityList1 = billPackInfo(s, distrilbutionBillLading.getId(), parcelLisList, byId);
if (packageEntityList1.isEmpty()) {
throw new ServiceException(byId.getOrderCode() + "没有可用包件信息!");
}else {
log.error("#####################订单isZero字段错误orderId:{}",s);
throw new ServiceException(stockArticleEntity.getOrderCode()+"订单数据错误!!!");
}
packageEntityList.addAll(packageEntityList1);
// distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}else {
log.error("#####################自提添加错误订单orderId:{}",s);
throw new ServiceException("订单数据错误!!!");
}
//构建自提订单中间表信息
distrilbutionBillStock.setBillLadingId(distrilbutionBillLading.getId());
distrilbutionBillStock.setStockArticleId(Long.parseLong(s));
distrilbutionBillStock.setConditions("10");
distrilbutionBillStock.setOrderStatus(ReservationOrderStatusConstant.zhengchang.getValue());
distrilbutionBillStockService.save(distrilbutionBillStock);
//对计划包件进行批量预约状态修改
// int i1 = byId.getHandQuantity() + byId.getSigninQuantity(); //总数
if (byId.getCompleteSet() == 2) {
//全部
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
} else {
//部分
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
if (Func.isNotEmpty(zeroPackageIds)){
List<DistributionParcelNumberEntity> parcelNumberEntityList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.in(DistributionParcelNumberEntity::getParcelListId, zeroPackageIds)
);
List<Long> ids = parcelNumberEntityList.stream().filter(f -> f.getQuantity() == (f.getOutboundQuantity() + f.getDeliveryQuantity())).map(DistributionParcelNumberEntity::getParcelListId).collect(Collectors.toList());
packageIds.addAll(ids);
}
//判断是否改为已预约
List<DistributionParcelNumberEntity> parcelNumberList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getStockArticleId, s)
);
if (!parcelNumberList.isEmpty()) {
//零担
int handQuantity = parcelNumberList.stream().mapToInt(DistributionParcelNumberEntity::getHandQuantity).sum(); //在库总数量
int sum = parcelNumberList.stream().mapToInt(DistributionParcelNumberEntity::getDeliveryQuantity).sum(); //配送数量
int i = handQuantity - sum;
if (i > 0) {
//部分
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
} else if (i == 0) {
//全部
distributionStockArticle.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}
if (!Func.isEmpty(packageIds)){
distributionParcelListService.update(new UpdateWrapper<DistributionParcelListEntity>().lambda()
.in(DistributionParcelListEntity::getId,packageIds)
.set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.yiyueyue.getValue())
);
}
distributionStockArticleService.maintenanceOrderInfo(stockArticleEntity.getOrderCode(),stockArticleEntity.getWarehouseId());
}
if (Func.isNotEmpty(packageEntityList)){
distrilbutionBillPackageService.saveBatch(packageEntityList);
distributionStockArticle.setId(Long.parseLong(s));
distributionStockArticleService.updateById(distributionStockArticle);
}
}
//操作图片
if (!distrilbutionBillLading.getPrintList().isEmpty()) {
addPrint(distrilbutionBillLading);
@ -759,6 +983,15 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
}
/**
* @param reservationId
* @return
*/
@Override
public List<DistributionStockupOrderListVO> selectBillLadingZeroPackageList(Long reservationId) {
return baseMapper.selectBillLadingZeroPackageList(reservationId);
}
@Transactional
private Integer cancelBillLodingPackage(List<Long> ids) {
String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding,";
@ -958,6 +1191,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
public int updetaParcelNum(DistrilbutionBillLadingDTO distrilbutionBillLadingDTO) {
List<DistributionReservationZeroPackageEntity> list = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, distrilbutionBillLadingDTO.getId())
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "2")
.eq(DistributionReservationZeroPackageEntity::getType, "3")
); //数据库的品分类数据
List<DistributionParcelListDTO> parcelLisList = distrilbutionBillLadingDTO.getParcelLisList();//品类信息
if (!list.isEmpty()) {
@ -972,11 +1207,11 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
DistributionParcelListDTO next = iterator.next();
if (next.getId().equals(i.getParcelListId())) {
if (i.getRealityQuantity() > 0) {
throw new ServiceException("已备货无法修改备货数量!");
throw new ServiceException("已备货无法修改数量!");
}
//获取修改的数量
Integer quantity = i.getQuantity();//原预约数量
Integer quantity1 = next.getQuantity();//改变的数量
Integer quantity1 = next.getTiQuantity();//改变的数量
int i1 = quantity - quantity1;
if (i1 > 0) {
//减少了
@ -991,19 +1226,22 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//修改预约数量
DistributionReservationZeroPackageEntity zeroPackage = new DistributionReservationZeroPackageEntity();
zeroPackage.setId(i.getId());
zeroPackage.setQuantity(next.getQuantity());
zeroPackage.setQuantity(next.getTiQuantity());
distributionZeroPackageService.updateById(zeroPackage);
iterator.remove();
}
}
} else {
//不存在
longs.add(i.getId());
longs.add(i.getParcelListId());
}
});
if (!longs.isEmpty()) {
distributionZeroPackageService.deleteLogic(longs);
// distributionZeroPackageService.deleteLogic(longs);
//进行零担在库数量恢复
distributionZeroPackageService.recoverZeroPackage(distrilbutionBillLadingDTO.getId(),longs);
// distributionZeroPackageService.cancelZeroPackage(longs);
}
// TODo 添加新的品类
List<DistributionReservationZeroPackageEntity> packageEntityList = new ArrayList<>();
@ -2344,60 +2582,60 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
isZeroType = true;
}
this.save(distrilbutionBillLading);
if (isZeroType) {
if (list.isEmpty()) {
throw new ServiceException("类型数据未填写!!!");
}
List<DistributionReservationZeroPackageEntity> zeroPackageEntityList = new ArrayList<>();
List<DistributionParcelNumberEntity> parcelNumberEntityList = new ArrayList<>();
AtomicInteger nu = new AtomicInteger();
//是 添加物料信息
list.forEach(i -> {
if (i.getQuantity() != 0) {
DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity();
zeroPackageEntity.setQuantity(i.getQuantity());
zeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
zeroPackageEntity.setType("3");
zeroPackageEntity.setCategoryName(i.getFirsts());
zeroPackageEntity.setZeroPackageStatus("1");
zeroPackageEntity.setStockArticleId(i.getStockArticleId());
zeroPackageEntity.setRealityQuantity(0);
//修改包件配送数量
//查询
DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId());
DistributionParcelNumberEntity one = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, i.getId()));
int i1 = one.getDeliveryQuantity() + i.getQuantity();
//全部数据不能大于预约数
if (ObjectUtils.isNotNull(one) && i1 <= one.getHandQuantity()) {
nu.addAndGet(i.getQuantity());
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setId(one.getId());
parcelNumberEntity.setDeliveryQuantity(one.getDeliveryQuantity() + i.getQuantity());
parcelNumberEntity.setHandQuantity(byId.getHandQuantity());
parcelNumberEntityList.add(parcelNumberEntity);
zeroPackageEntity.setParcelListId(one.getParcelListId());
zeroPackageEntityList.add(zeroPackageEntity);
} else {
throw new ServiceException("配送数量大于在库数量!!");
}
}
});
if (!parcelNumberEntityList.isEmpty()) {
parcelNumberEntityList.forEach(p -> {
if (nu.get() <= p.getHandQuantity()) {
p.setHandQuantity(null);
distributionParcelNumberService.updateById(p);
} else {
throw new ServiceException("预约数量大于在库数量!!");
}
});
} else {
throw new ServiceException("数据异常,请联系管理员!!");
}
distributionZeroPackageService.saveBatch(zeroPackageEntityList);
}
// if (isZeroType) {
// if (list.isEmpty()) {
// throw new ServiceException("类型数据未填写!!!");
// }
// List<DistributionReservationZeroPackageEntity> zeroPackageEntityList = new ArrayList<>();
// List<DistributionParcelNumberEntity> parcelNumberEntityList = new ArrayList<>();
// AtomicInteger nu = new AtomicInteger();
// //是 添加物料信息
// list.forEach(i -> {
// if (i.getQuantity() != 0) {
// DistributionReservationZeroPackageEntity zeroPackageEntity = new DistributionReservationZeroPackageEntity();
// zeroPackageEntity.setQuantity(i.getQuantity());
// zeroPackageEntity.setReservationId(distrilbutionBillLading.getId());
// zeroPackageEntity.setType("3");
// zeroPackageEntity.setCategoryName(i.getFirsts());
// zeroPackageEntity.setZeroPackageStatus("1");
// zeroPackageEntity.setStockArticleId(i.getStockArticleId());
// zeroPackageEntity.setRealityQuantity(0);
// //修改包件配送数量
// //查询
// DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId());
// DistributionParcelNumberEntity one = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, i.getId()));
//
// int i1 = one.getDeliveryQuantity() + i.getQuantity();
// //全部数据不能大于预约数
// if (ObjectUtils.isNotNull(one) && i1 <= one.getHandQuantity()) {
// nu.addAndGet(i.getQuantity());
// DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
// parcelNumberEntity.setId(one.getId());
// parcelNumberEntity.setDeliveryQuantity(one.getDeliveryQuantity() + i.getQuantity());
// parcelNumberEntity.setHandQuantity(byId.getHandQuantity());
// parcelNumberEntityList.add(parcelNumberEntity);
// zeroPackageEntity.setParcelListId(one.getParcelListId());
// zeroPackageEntityList.add(zeroPackageEntity);
// } else {
// throw new ServiceException("配送数量大于在库数量!!");
// }
//
// }
// });
// if (!parcelNumberEntityList.isEmpty()) {
// parcelNumberEntityList.forEach(p -> {
// if (nu.get() <= p.getHandQuantity()) {
// p.setHandQuantity(null);
// distributionParcelNumberService.updateById(p);
// } else {
// throw new ServiceException("预约数量大于在库数量!!");
// }
// });
// } else {
// throw new ServiceException("数据异常,请联系管理员!!");
// }
// distributionZeroPackageService.saveBatch(zeroPackageEntityList);
// }
// 创建备货任务
DistributionStockupEntity distributionStockupEntity = buildDistributionStockupEntityBydistrilbutionBillLading(distrilbutionBillLading);
@ -2627,10 +2865,12 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistributionBillLadingScanEntity> list1 = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId())
.eq(DistributionBillLadingScanEntity::getStockArticleId, k)
.eq(DistributionBillLadingScanEntity::getParcelListId, k)
// .eq(DistributionBillLadingScanEntity::getParcelListId, k)
);
if (!list1.isEmpty()) {
zeroOrderVO.setSignforQuantity(list1.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum());
}else {
zeroOrderVO.setSignforQuantity(0);
}
billLadingZeroOrderVOS.add(zeroOrderVO);

Loading…
Cancel
Save