Browse Source

装车配送列表BUG修复、预约任务取消包件维护包件订单状态BUG修复

pull/8/head
汤建军 6 months ago
parent
commit
c766aaa647
  1. 6
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppReservationVO.java
  2. 9
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java
  3. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml
  4. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  5. 126
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  6. 11
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayGoodsClient.java
  7. 8
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.java
  8. 10
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.xml
  9. 7
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayGoodsService.java
  10. 10
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java

6
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppReservationVO.java

@ -53,6 +53,12 @@ public class DistributionAppReservationVO extends DistributionReservationEntity
@ApiModelProperty(value = "装车件数")
private Integer loadingNub;
/**
* 备货数量
*/
@ApiModelProperty(value = "备货数量")
private Integer stockupNum;
/**
* 签收数

9
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayGoodsClient.java

@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* 托盘 货物 绑定 Feign接口类
@ -101,4 +102,12 @@ public interface IWarehouseTrayGoodsClient {
@GetMapping(API_PREFIX+"/delTrayGoodsById")
void delTrayGoodsById(@RequestParam Long trayGoodsId, @RequestParam Long warehouseId);
/**
* 查询一批包件所在托盘
* @param map
* @return
*/
@PostMapping(GETTRAYLIST+"/getPackageTrayInfo")
List<WarehouseTrayGoodsEntity> getPackageTrayInfo(@RequestBody Map<String, Object> map);
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml

@ -574,12 +574,12 @@
) ordNub,
COALESCE ( lds.received_quantity + lds.receivedin_quantity, 0 ) signNub,
ldsk.stockup_area stockupArea,
(SELECT SUM(reservation_num) FROM logpm_distribution_reservation_stocklist WHERE reservation_id = ldr.id ) inventoryNub
-- COUNT(DISTINCT lwtg.tray_id) AS trayNum
(SELECT SUM(reservation_num) FROM logpm_distribution_reservation_stocklist WHERE reservation_id = ldr.id ) inventoryNub,
IFNULL((SELECT SUM(loaded_nub) FROM logpm_distribution_loadscan WHERE reservation_id = lds.reservation_id AND is_abnormal_loading != 2 AND is_deleted = 0 ),0) + IFNULL((SELECT SUM(loaded_nub) FROM logpm_distribution_loadscaninvn WHERE reservation_id = lds.reservation_id AND scan_status != 1 AND is_deleted = 0 ),0) AS loadingNub,
IFNULL((SELECT SUM(stock_quantity) FROM logpm_distribution_stock WHERE reservation_id = lds.reservation_id AND is_deleted = 0 ),0) AS stockupNum
FROM
logpm_distribution_signfor lds
LEFT JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
AND ldr.reservation_status != '40'
LEFT JOIN logpm_distribution_stockup_info ldsi ON ldr.id = ldsi.reservation_id
LEFT JOIN logpm_distribution_stockup ldsk ON ldsk.id = ldsi.stockup_id
LEFT JOIN logpm_distribution_reservation_stocklist ldrs ON ldrs.reservation_id = ldr.id
@ -587,7 +587,7 @@ FROM
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON lds.reservation_id = ldrp.reservation_id
LEFT JOIN logpm_warehouse_tray_goods AS lwtg ON lwtg.association_id = ldrp.parce_list_id AND lwtg.association_type = 3
WHERE
lds.delivery_id = #{deliveryListId} and ldr.id is not null
lds.delivery_id = #{deliveryListId} and ldr.id is not null AND ldr.reservation_num + ldr.reservation_stock_list_num > 0 AND ldr.reservation_status != '40'
GROUP BY ldr.id,lds.loaded_number,lds.loadedin_number,lds.received_quantity,lds.receivedin_quantity,ldsk.stockup_area,ldrs.reservation_num
</select>
<select id="selectDistributionAppDeliveryInventoryPage"

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -1598,6 +1598,8 @@
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrp.parce_list_id = ldpl.id
WHERE
ldrp.reservation_id = #{param.reservationId}
AND ldrp.stock_article_id = #{param.orderId}
AND ldrp.packet_bar_status != '2'
AND ldpl.order_package_freeze_status = 10
AND ldpl.warehouse_id = #{warehouseId}
<if test="param.waybillNumber != null and param.waybillNumber != ''">

126
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -2505,123 +2505,49 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
//查询客户
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
List<DistributionAppReservationVO> customList = distributionDeliveryInfoMapper.selectAppcustomListPage(distributionDeliveryList.getId());
// 查询所有的预约单ID
List<Long> idList = customList.stream()
.map(DistributionAppReservationVO::getId)
.collect(Collectors.toList());
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityLists =distributionReservationMapper.selectStockArticleByReservationIds(idList);
for (DistributionAppReservationVO distributionAppReservationVO : customList) {
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = localFindReservationStockarticleEntityLists(reservationStockarticleEntityLists,distributionAppReservationVO.getId());
log.info(">>>>>>>>>> reservationStockarticleEntityList ={}",reservationStockarticleEntityList.size());
List<DistributionStockEntity> distributionStockEntities = new ArrayList<>();
List<DistributionLoadscanEntity> loadscanEntityList = new ArrayList<>();
List<WarehouseTrayGoodsEntity> trayList = new ArrayList<>();
List<Long> reaveIds=reservationStockarticleEntityList.stream()
.map(DistributionReservationStockarticleEntity::getReservationId)
.collect(Collectors.toList());
if(reaveIds.isEmpty()){
log.info(">>>>> reaveIds ==null 匹配的预约ID = {}",distributionAppReservationVO.getId());
continue;
if (distributionAppReservationVO.getReservationNum() == distributionAppReservationVO.getLoadingNub()){
distributionAppReservationVO.setIsload("是");
}else {
distributionAppReservationVO.setIsload("否");
}
List<DistributionParcelListEntity> allParcelListEntities =distributionReservationMapper.selectPackageByReservations(reaveIds, myCurrentWarehouse.getId());
for (DistributionReservationStockarticleEntity reservationStockarticleEntity : reservationStockarticleEntityList) {
if (reservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
//查询订制品备货数量
List<DistributionStockEntity> packageListStockUpScan = distributionStockMapper.selectList(Wrappers.<DistributionStockEntity>query().lambda().eq(DistributionStockEntity::getType, 1).eq(DistributionStockEntity::getParcelListId, reservationStockarticleEntity.getStockArticleId()).eq(DistributionStockEntity::getReservationId, reservationStockarticleEntity.getReservationId()));
if (Func.isNotEmpty(packageListStockUpScan)) {
distributionStockEntities.addAll(packageListStockUpScan);
}
//统计托盘数
//查询所有包件
// List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationStockarticleEntity.getReservationId(), reservationStockarticleEntity.getStockArticleId(), myCurrentWarehouse.getId());
List<DistributionParcelListEntity> parcelListEntities =localFindAllParcelListEntities(allParcelListEntities,reservationStockarticleEntity.getStockArticleId());
parcelListEntities.forEach(p -> {
WarehouseTrayGoodsEntity warehouseTrayGoodsEntity = new WarehouseTrayGoodsEntity();
warehouseTrayGoodsEntity.setAssociationId(p.getId());
warehouseTrayGoodsEntity.setAssociationValue(p.getOrderPackageCode());
warehouseTrayGoodsEntity.setAssociationType("3");
List<WarehouseTrayGoodsEntity> trayGoodsClientTrayList = warehouseTrayGoodsClient.getTrayList(warehouseTrayGoodsEntity);
if (Func.isNotEmpty(trayGoodsClientTrayList)) {
trayList.addAll(trayGoodsClientTrayList);
}
});
//查询订制品装车数量
List<DistributionLoadscanEntity> packageListLoadingScan = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, reservationStockarticleEntity.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, reservationStockarticleEntity.getStockArticleId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
if (Func.isNotEmpty(packageListLoadingScan)) {
loadscanEntityList.addAll(packageListLoadingScan);
}
} else if (reservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.yes.getValue())) {
//查询零担备货数量
List<DistributionStockEntity> zeroPackageListStockUpScan = distributionStockMapper.selectList(Wrappers.<DistributionStockEntity>query().lambda().eq(DistributionStockEntity::getType, 2).eq(DistributionStockEntity::getParcelListId, reservationStockarticleEntity.getStockArticleId()).eq(DistributionStockEntity::getReservationId, reservationStockarticleEntity.getReservationId()));
if (Func.isNotEmpty(zeroPackageListStockUpScan)) {
distributionStockEntities.addAll(zeroPackageListStockUpScan);
}
//查询零担装车数量
List<DistributionLoadscanEntity> zeroPackageListLoadingScan = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, reservationStockarticleEntity.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, reservationStockarticleEntity.getStockArticleId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
if (Func.isNotEmpty(zeroPackageListLoadingScan)) {
loadscanEntityList.addAll(zeroPackageListLoadingScan);
}
}
if (distributionAppReservationVO.getReservationNum() == distributionAppReservationVO.getStockupNum()){
distributionAppReservationVO.setIsstock("是");
}else {
distributionAppReservationVO.setIsstock("否");
}
distributionAppReservationVO.setTrayNum(0);
if (Func.isNotEmpty(trayList)) {
// Long count = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).count();
List<WarehouseTrayGoodsEntity> trayList = new ArrayList<>();
//查询满足条件的托盘码
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(distributionAppReservationVO.getId());
int trayNum = 0;
if (Func.isNotEmpty(distributionParcelListEntities)) {
Map<String,Object> map = new HashMap<>();
List<Long> packageIds = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList());
map.put("packageIds",packageIds);
map.put("warehouseId",myCurrentWarehouse.getId());
List<WarehouseTrayGoodsEntity> packageTrayInfo = warehouseTrayGoodsClient.getPackageTrayInfo(map);
List<String> packageCodeList = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getOrderPackageCode).collect(Collectors.toList());
// List<WarehouseTrayGoodsEntity> collect = trayList.stream().distinct().collect(Collectors.toList());
List<Long> trayIds = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).distinct().collect(Collectors.toList());
for (Long trayId : trayIds) {
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(trayId.toString(), "");
//判断该托盘上的货物都存在于计划之中
boolean isLoadingTrayFlag = trayIdList.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).allMatch(t -> packageCodeList.contains(t));
if (isLoadingTrayFlag) {
trayNum += 1;
if (Func.isNotEmpty(packageTrayInfo)){
List<Long> trayIds = packageTrayInfo.stream().map(WarehouseTrayGoodsEntity::getTrayId).distinct().collect(Collectors.toList());
for (Long trayId : trayIds) {
List<WarehouseTrayGoodsEntity> trayIdList = warehouseTrayGoodsClient.getTrayIdList(trayId.toString(), "");
//判断该托盘上的货物都存在于计划之中
boolean isLoadingTrayFlag = trayIdList.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).allMatch(t -> packageCodeList.contains(t));
if (isLoadingTrayFlag) {
trayNum += 1;
}
}
}
}
//统计满足条件的托盘
// Long aaa = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).distinct().count();
distributionAppReservationVO.setTrayNum(trayNum);
}
List<DisStockListDetailEntity> stockListDetailEntityList = distributionReservationMapper.selectInventoryListByReservation(distributionAppReservationVO.getId());
// boolean inventoryStockupStatus = stockListDetailEntityList.stream().allMatch(i -> Func.isNotEmpty(i.getStockPackageCode()));
//备货数和计划数一致时完成备货
if (distributionStockEntities.size() + stockListDetailEntityList.stream().filter(s -> Func.isNotEmpty(s.getStockPackageCode())).count() == distributionAppReservationVO.getReservationNum()) {
distributionAppReservationVO.setIsstock("是");
} else {
distributionAppReservationVO.setIsstock("否");
}
Integer packageListScanNum = loadscanEntityList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum();
Long inventoryListScanNum = stockListDetailEntityList.stream().filter(i -> Func.isNotEmpty(i.getStockPackageCode()) && i.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())).count();
distributionAppReservationVO.setLoadingNub(packageListScanNum + inventoryListScanNum.intValue());
if (packageListScanNum + inventoryListScanNum == distributionAppReservationVO.getReservationNum()) {
distributionAppReservationVO.setIsload("是");
} else {
distributionAppReservationVO.setIsload("否");
}
}
return customList;
}

11
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayGoodsClient.java

@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
@ApiIgnore()
@RestController
@ -103,4 +104,14 @@ public class WarehouseTrayGoodsClient implements IWarehouseTrayGoodsClient {
public void delTrayGoodsById(Long trayGoodsId,Long warehouseId) {
warehouseTrayGoodsService.deleteByTrayGoodsId(trayGoodsId,warehouseId);
}
/**
* @param map
* @return
*/
@Override
public List<WarehouseTrayGoodsEntity> getPackageTrayInfo(Map<String, Object> map) {
return warehouseTrayGoodsService.getPackageTrayInfo(map);
}
}

8
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.java

@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
public interface WarehouseTrayGoodsMapper extends BaseMapper<WarehouseTrayGoodsEntity> {
@ -86,4 +87,11 @@ public interface WarehouseTrayGoodsMapper extends BaseMapper<WarehouseTrayGoodsE
List<ZeroOrderListVO> findZeroOrderDetailList(@Param("trayCode") String trayCode, @Param("warehouseId") Long warehouseId);
List<StockOrderListVO> findStockOrderDetailList(@Param("trayCode") String trayCode, @Param("warehouseId") Long warehouseId);
/**
* 批量查询包件所在托盘
* @param map
* @return
*/
List<WarehouseTrayGoodsEntity> getPackageTrayInfo(@Param("param")Map<String, Object> map);
}

10
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseTrayGoodsMapper.xml

@ -430,6 +430,16 @@
and ldsl.warehouse_id = #{warehouseId}
and lwtg.association_type = '4'
</select>
<select id="getPackageTrayInfo" resultType="com.logpm.warehouse.entity.WarehouseTrayGoodsEntity">
SELECT DISTINCT tray_id FROM logpm_warehouse_tray_goods
WHERE association_type = '3'
AND warehouse_id = #{param.warehouseId}
AND association_id IN
<foreach collection="param.packageIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
GROUP BY tray_id
</select>
</mapper>

7
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayGoodsService.java

@ -8,6 +8,7 @@ import com.logpm.warehouse.vo.*;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
import java.util.Map;
public interface IWarehouseTrayGoodsService extends BaseService<WarehouseTrayGoodsEntity> {
@ -113,4 +114,10 @@ public interface IWarehouseTrayGoodsService extends BaseService<WarehouseTrayGoo
List<StockOrderListVO> findStockOrderDetailList(String trayCode, Long warehouseId);
/**
*
* @param map
* @return
*/
List<WarehouseTrayGoodsEntity> getPackageTrayInfo(Map<String, Object> map);
}

10
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayGoodsServiceImpl.java

@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Log4j2
@ -331,6 +332,15 @@ public class WarehouseTrayGoodsServiceImpl extends BaseServiceImpl<WarehouseTray
return baseMapper.findStockOrderDetailList(trayCode,warehouseId);
}
/**
* @param map
* @return
*/
@Override
public List<WarehouseTrayGoodsEntity> getPackageTrayInfo(Map<String, Object> map) {
return baseMapper.getPackageTrayInfo(map);
}
@Override
public Boolean deleteByMasterId(Long masterId) {
int delete = baseMapper.delete(new QueryWrapper<WarehouseTrayGoodsEntity>().lambda()

Loading…
Cancel
Save