Browse Source

Merge remote-tracking branch 'origin/dev' into pre-production

visual
汤建军 6 months ago
parent
commit
def009fb36
  1. 45
      blade-biz-common/src/main/java/org/springblade/common/constant/Inventory/InventoryStockTypeStatusConstant.java
  2. 4
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  3. 15
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/UpdateOrderDTO.java
  4. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  5. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java
  6. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  7. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  8. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryDetailsService.java
  9. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java
  10. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java
  11. 53
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryDetailsServiceImpl.java
  12. 101
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  13. 450
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  14. 46
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java
  15. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java
  16. 47
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml
  17. 1
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml
  18. 4
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
  19. 19
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  20. 10
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
  21. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java

45
blade-biz-common/src/main/java/org/springblade/common/constant/Inventory/InventoryStockTypeStatusConstant.java

@ -0,0 +1,45 @@
package org.springblade.common.constant.Inventory;
/**
* 订单包件状态
* 关联码表 order_package_status
*
* @author pref
*/
public enum InventoryStockTypeStatusConstant {
shengcheng("生成", "10"),
caiji("采集", "20");
/**
* 状态
*/
private String name;
/**
*
*/
private String value;
private InventoryStockTypeStatusConstant(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

4
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java

@ -21,6 +21,7 @@ import com.logpm.distribution.dto.FindParamterDTO;
import com.logpm.distribution.dto.OrderPackageDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.UpdateOrderDTO;
import com.logpm.distribution.vo.ZeroPackageSupplyVO;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage;
@ -167,6 +168,9 @@ public interface IDistributionParcelListClient {
@GetMapping(API_PREFIX + "/updateEntityByOpenOrder")
void updateEntityByOpenOrder(@RequestParam Long advanceId, @RequestParam Long waybillId);
@PostMapping(API_PREFIX + "/updateEntityByOpenOrderByAdvanceIds")
void updateEntityByOpenOrderByAdvanceIds(@RequestBody UpdateOrderDTO updateOrderDTO);
@GetMapping(API_PREFIX + "/findByWaybillNumber")
List<DistributionParcelListEntity> findByWaybillNumber(@RequestParam String waybillNumber);

15
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/UpdateOrderDTO.java

@ -0,0 +1,15 @@
package com.logpm.distribution.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class UpdateOrderDTO implements Serializable {
private List<Long> advanceIds;
private Long waybillId;
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java

@ -34,6 +34,7 @@ import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.UpdateOrderDTO;
import com.logpm.distribution.vo.ZeroPackageSupplyVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -333,6 +334,11 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
}
@Override
public void updateEntityByOpenOrderByAdvanceIds(UpdateOrderDTO updateOrderDTO) {
distributionParcelListService.updateEntityByOpenOrderByAdvanceIds(updateOrderDTO);
}
@Override
public List<DistributionParcelListEntity> findByWaybillNumber(String waybillNumber) {
return distributionParcelListService.findByWaybillNumber(waybillNumber);

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java

@ -131,8 +131,8 @@ public interface DistributionStockListMapper extends BaseMapper<DistributionStoc
/**
* 扣减对应库存品的冻结数量
* @param k
* @param size
* @param stockListId
* @param num
*/
void decreaseStockListQuantityOccupied(@Param("stockListId") Long stockListId,@Param("num") int num);

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

@ -20,12 +20,10 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.distribution.dto.DistributionDeliveryDetailsDTO;
import com.logpm.distribution.dto.DistrilbutionBillLadingDTO;
import com.logpm.distribution.dto.app.BillLadingAppDTO;
import com.logpm.distribution.entity.DistributionDeliveryDetailsEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.entity.DistrilbutionBillLadingEntity;
import com.logpm.distribution.excel.DistrilbutionBillLadingExcel;
import com.logpm.distribution.vo.*;
@ -92,7 +90,7 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
*/
List<DistrilbutionBillLadingAppVO> getInventory(@Param("param") DistrilbutionBillLadingEntity distrilbutionBillLadingEntity);
DistrilbutionBillLadingVO getBillLadingNum(@Param("param") DistrilbutionBillLadingDTO billLadingEntity);
DistrilbutionBillLadingVO getBillLadingNum(@Param("param") DistrilbutionBillLadingEntity billLadingEntity);
List<DistrilbutionBillLadingViewVO> getViewDetailOwn(@Param("id") String id);

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

@ -744,12 +744,14 @@
</select>
<select id="selectBillLadingPlanNum" resultType="java.lang.Integer">
SELECT(
IF((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 2) IS NULL,0,(SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 2))
IFNULL((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 2),0)
+
IFNULL((SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 2) ,0)
+
IF((SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 2) IS NULL ,0,(SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 2) ) )
IFNULL((SELECT sum(quantity) FROM logpm_distribution_reservation_zero_package WHERE reservation_id =#{billLadingId} AND zero_package_status != 2 AND type = 3) ,0 ))
</select>
<select id="selectBillLadingLoading" resultType="java.lang.Integer">
SELECT sum(quantity) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id =#{billLadingId} AND is_deleted = 0
SELECT IFNULL(sum(quantity),0) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id =#{billLadingId} AND is_deleted = 0
</select>
<select id="selectBillLadingPackagePlanNum" resultType="java.lang.Integer">
SELECT

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

@ -87,4 +87,6 @@ public interface IDistributionDeliveryDetailsService extends BaseService<Distrib
List<DistributionBillInventoryExcel> getBillOrderInventoryExcel(Map<String, Object> distributionDeliveryDetails);
List<DistributionBillInventoryExcel> getBillLadingDetailOrderInventoryExcel(Long id);
void maintainInvnetory(Long l);
}

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

@ -284,4 +284,6 @@ public interface IDistributionParcelListService extends BaseService<Distribution
boolean maintainInWarehouse(Long orderPackageId,String taskCode);
Map<String, Object> findOrderInfoByOrderPackageCode(String orderPackageCode, Long warehouseId);
void updateEntityByOpenOrderByAdvanceIds(UpdateOrderDTO updateOrderDTO);
}

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

@ -124,4 +124,11 @@ public interface IDistrilbutionBillStockService extends BaseService<Distrilbutio
* @return
*/
boolean judgmentRemove(Long billLadingId, Long orderId);
/**
* 维护计划内订单状态
* @param orderIds
* @param id
*/
void maintenancePlanOrderStatus(List<Long> orderIds, Long id);
}

53
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryDetailsServiceImpl.java

@ -20,17 +20,24 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionDeliveryDetailsEntity;
import com.logpm.distribution.entity.DistrilbutionBillStockEntity;
import com.logpm.distribution.excel.DistributionBillInventoryExcel;
import com.logpm.distribution.excel.DistributionBillOrderPackExcel;
import com.logpm.distribution.excel.DistributionDeliveryDetailsExcel;
import com.logpm.distribution.mapper.DistributionDeliveryDetailsMapper;
import com.logpm.distribution.service.IDisStockListDetailService;
import com.logpm.distribution.service.IDistributionDeliveryDetailsService;
import com.logpm.distribution.vo.DistributionBillInventoryVO;
import com.logpm.distribution.vo.DistributionDeliveryDetailsVO;
import com.logpm.distribution.vo.app.DistrilbutionBillLadingInventoryAppVO;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.Inventory.InventoryPackageStatusConstant;
import org.springblade.common.constant.Inventory.InventorySigningStatusConstant;
import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant;
import org.springblade.common.constant.delivery.DeliveryStockStatuConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
@ -39,8 +46,10 @@ import org.springblade.system.cache.DictCache;
import org.springblade.system.entity.User;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 提货订单明细 服务实现类
@ -49,8 +58,13 @@ import java.util.Map;
* @since 2023-06-28
*/
@Service
@AllArgsConstructor
public class DistributionDeliveryDetailsServiceImpl extends BaseServiceImpl<DistributionDeliveryDetailsMapper, DistributionDeliveryDetailsEntity> implements IDistributionDeliveryDetailsService {
private final IDisStockListDetailService disStockListDetailService;
@Override
public IPage<DistributionDeliveryDetailsVO> selectDistributionDeliveryDetailsPage(IPage<DistributionDeliveryDetailsVO> page, DistributionDeliveryDetailsVO distributionDeliveryDetails) {
return page.setRecords(baseMapper.selectDistributionDeliveryDetailsPage(page, distributionDeliveryDetails));
@ -143,4 +157,43 @@ public class DistributionDeliveryDetailsServiceImpl extends BaseServiceImpl<Dist
}
return billOrderInventoryExcel;
}
@Override
public void maintainInvnetory(Long billId) {
List<DistributionDeliveryDetailsEntity> detailsEntities = this.list(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda()
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, billId)
.ne(DistributionDeliveryDetailsEntity::getInventoryStatus, InventoryPackageStatusConstant.quxiao.getValue())
);
List<DistributionDeliveryDetailsEntity> updateDeliveryDetailsList = new ArrayList<>();
for (DistributionDeliveryDetailsEntity detailsEntity : detailsEntities) {
List<DisStockListDetailEntity> detailEntities = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, billId)
.eq(DisStockListDetailEntity::getStockListId, detailsEntity.getStockListId())
.ne(DisStockListDetailEntity::getStockPackageStatus, InventoryPackageStatusConstant.quxiao.getValue())
);
DistributionDeliveryDetailsEntity updateDeliveryDetailsEntity = new DistributionDeliveryDetailsEntity();
updateDeliveryDetailsEntity.setId(detailsEntity.getId());
int sum = 0;
int stockupNUm = 0;
if (detailEntities.isEmpty()) {
detailsEntity.setStockStatus(InventoryPackageStatusConstant.quxiao.getValue());
detailsEntity.setConditions("10");
}else {
sum = detailEntities.stream().mapToInt(DisStockListDetailEntity::getNum).sum();
stockupNUm = detailEntities.stream().filter(f-> InventoryStockUpStatusConstant.yibeihuo.getValue().equals(f.getStockStatus())).mapToInt(DisStockListDetailEntity::getNum).sum();
}
detailsEntity.setQuantity(sum);
detailsEntity.setRealityQuantity(stockupNUm);
if (Objects.equals(sum , stockupNUm)){
detailsEntity.setConditions("30");
}else {
detailsEntity.setConditions("20");
}
updateDeliveryDetailsList.add(detailsEntity);
}
if (!updateDeliveryDetailsList.isEmpty()) {
this.updateBatchById(updateDeliveryDetailsList);
}
}
}

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

@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.zxing.WriterException;
import com.logpm.basic.entity.BasicMaterialEntity;
import com.logpm.basic.feign.IBasicMaterialClient;
import com.logpm.basicdata.entity.BasicdataClientEntity;
@ -35,30 +34,10 @@ import com.logpm.basicdata.feign.IBasicdataGoodsAllocationClient;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.DistributionParcelListDTO;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionReservationZeroPackageEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.entity.DistributionStockListInfoEntity;
import com.logpm.distribution.entity.DistrilbutionBillPackageEntity;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistributionParcelListExcel;
import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.logpm.distribution.mapper.DistributionStockArticleMapper;
import com.logpm.distribution.service.IDistributionParcelDetailsService;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import com.logpm.distribution.service.IDistributionReservationZeroPackageService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.service.IDistributionStockListInfoService;
import com.logpm.distribution.service.IDistributionStockListService;
import com.logpm.distribution.service.IDistrilbutionBillPackageService;
import com.logpm.distribution.vo.DistributionParcelListBaseVO;
import com.logpm.distribution.vo.DistributionParcelListNodeVO;
import com.logpm.distribution.vo.DistributionParcelListVO;
import com.logpm.distribution.vo.DistributionParcelListZeroVO;
import com.logpm.distribution.vo.PackageStockupVO;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
import com.logpm.trunkline.feign.ITrunklinePackageTrackLogClient;
@ -98,20 +77,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -1487,4 +1454,70 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
}
return orderInfoByOrderPackageCode;
}
@Override
public void updateEntityByOpenOrderByAdvanceIds(UpdateOrderDTO updateOrderDTO) {
Long waybillId = updateOrderDTO.getWaybillId();
List<Long> advanceIds = updateOrderDTO.getAdvanceIds();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
if (Objects.isNull(waybillEntity)) {
log.warn("############updateEntityByOpenOrderByAdvanceIds: 运单信息不存在 waybillId={}", waybillId);
throw new CustomerException(405, "运单信息不存在");
}
Long departureWarehouseId = waybillEntity.getDepartureWarehouseId();
String departureWarehouseName = waybillEntity.getDepartureWarehouseName();
Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
String destinationWarehouseName = waybillEntity.getDestinationWarehouseName();
String waybillNo = waybillEntity.getWaybillNo();
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.in("advance_id", advanceIds)
.eq("is_deleted", 0);
List<DistributionParcelListEntity> listEntityList = baseMapper.selectList(queryWrapper);
Set<String> orderCodes = new TreeSet<>();
for (DistributionParcelListEntity parcelListEntity : listEntityList) {
Long packageWarehouseId = parcelListEntity.getWarehouseId();
parcelListEntity.setWaybillId(waybillId);
parcelListEntity.setWaybillNumber(waybillNo);
parcelListEntity.setSendWarehouseId(departureWarehouseId);
parcelListEntity.setSendWarehouseName(departureWarehouseName);
parcelListEntity.setAcceptWarehouseId(destinationWarehouseId);
parcelListEntity.setAcceptWarehouseName(destinationWarehouseName);
if (departureWarehouseId.equals(destinationWarehouseId)) {
parcelListEntity.setIsTransfer(0);
} else {
if (destinationWarehouseId.equals(packageWarehouseId)) {
parcelListEntity.setIsTransfer(0);
} else {
parcelListEntity.setIsTransfer(1);
}
}
orderCodes.add(parcelListEntity.getOrderCode());
}
updateBatchById(listEntityList);
Long consigneeId = waybillEntity.getConsigneeId();
BasicdataClientEntity basicdataClientEntity = basicdataClientClient.findEntityById(consigneeId);
for (String orderCode : orderCodes) {
QueryWrapper<DistributionStockArticleEntity> stockArticleEntityQueryWrapper = new QueryWrapper<>();
stockArticleEntityQueryWrapper.eq("order_code", orderCode)
.eq("is_deleted", 0);
List<DistributionStockArticleEntity> stockArticleEntities = distributionStockArticleMapper.selectList(stockArticleEntityQueryWrapper);
for (DistributionStockArticleEntity stockArticleEntity : stockArticleEntities) {
Long orderId = stockArticleEntity.getId();
String waybillNumber = baseMapper.findOrderWaybillNo(orderId);
stockArticleEntity.setWaybillNumber(waybillNumber);
stockArticleEntity.setMallId(consigneeId);
stockArticleEntity.setMallCode(basicdataClientEntity.getClientCode());
stockArticleEntity.setMallName(basicdataClientEntity.getClientName());
stockArticleEntity.setConsigneePerson(waybillEntity.getConsigneeName());
stockArticleEntity.setConsigneeMobile(waybillEntity.getConsigneeMobile());
stockArticleEntity.setConsigneeAddress(waybillEntity.getConsigneeAddress());
stockArticleEntity.setConsigneeUnit(basicdataClientEntity.getClientName());
}
distributionStockArticleService.updateBatchById(stockArticleEntities);
}
}
}

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

@ -75,13 +75,15 @@ import com.logpm.oldproject.feign.IOldSignPushClient;
import com.logpm.trunkline.dto.WaybillLogDTO;
import com.logpm.trunkline.feign.ITrunklinePackageTrackLogClient;
import com.logpm.trunkline.feign.ITrunklineWaybillTrackClient;
import com.logpm.warehouse.entity.WarehouseConfigEntity;
import com.logpm.warehouse.feign.IWarehouseConfigClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.sun.org.apache.xpath.internal.operations.Bool;
import lombok.extern.log4j.Log4j2;
import org.apache.logging.log4j.util.Strings;
import org.jetbrains.annotations.NotNull;
import org.springblade.common.constant.*;
import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant;
import org.springblade.common.constant.Inventory.*;
import org.springblade.common.constant.billLading.BillLadingStatusConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.order.OrderReservationStatusConstant;
@ -220,6 +222,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
@Autowired
private IDistributionPlanLogService distributionPlanLogService;
@Autowired
private IWarehouseConfigClient warehouseConfigClient;
@Override
public IPage<DistrilbutionBillLadingVO> selectDistrilbutionBillLadingPage(IPage<DistrilbutionBillLadingVO> page, DistrilbutionBillLadingVO distrilbutionBillLading) {
@ -585,7 +590,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
updateStockBill(distrilbutionBillLading);
}
//修改自提单信息
//进行自提单的修改日志记录
Integer integer = baseMapper.selectBillLadingPlanNum(distrilbutionBillLading.getId());
handleUpdateDistributionPlanLog(billLadingEntity, distrilbutionBillLading, AuthUtil.getUser(), myCurrentWarehouse, integer);
} else {
//设置lockey
String lockKey = "lock:" + distrilbutionBillLading.getStockArticleId();
@ -645,7 +652,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
List<DistributionParcelListDTO> zeroPackageList = distrilbutionBillLading.getParcelLisList();
zeroPackageMap = zeroPackageList.stream().collect(Collectors.groupingBy(DistributionParcelListDTO::getStockArticleId));
}
this.saveDistrilbutionBillLading(distrilbutionBillLading,myCurrentWarehouse);
this.saveDistrilbutionBillLading(distrilbutionBillLading, myCurrentWarehouse);
// List<DistrilbutionBillPackageEntity> packageEntityList = new ArrayList<>();
if (StringUtils.isNotBlank(distrilbutionBillLading.getStockArticleId())) {
String[] split = distrilbutionBillLading.getStockArticleId().split(",");
@ -880,7 +887,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionDeliveryDetailsService.saveBatch(detailsEntities);
}
Integer integer = baseMapper.selectBillLadingPlanNum(distrilbutionBillLading.getId());
handleCreatedReservationPlanLog(distrilbutionBillLading,AuthUtil.getUser(),myCurrentWarehouse,integer);
handleCreatedDistributionPlanLog(distrilbutionBillLading, AuthUtil.getUser(), myCurrentWarehouse, integer);
}
//添加库存品信息
//添加费用
@ -911,13 +918,13 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return true;
}
private void handleCreatedReservationPlanLog(DistrilbutionBillLadingEntity billLadingEntity, BladeUser user, BasicdataWarehouseEntity warehouse,Integer planNum) {
private void handleCreatedDistributionPlanLog(DistrilbutionBillLadingEntity billLadingEntity, BladeUser user, BasicdataWarehouseEntity warehouse, Integer planNum) {
String planContent = user.getNickName() + "在" + warehouse.getName()
+ "创建自提计划;自提计划编号:" + billLadingEntity.getPickupBatch()
+ ";收货单位:" + billLadingEntity.getConsigneeUnit()
+ ",提货人:" + billLadingEntity.getConsignee()
+ ",提货车牌:" + billLadingEntity.getPickUpPlate()
+ ",提货证件:" + billLadingEntity.getDeliveryDocument()!=null?billLadingEntity.getDeliveryDocument():"未填写"
+ ",提货证件:" + (billLadingEntity.getDeliveryDocument() != null ? billLadingEntity.getDeliveryDocument() : "未填写")
+ ",计划件数:" + planNum;
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
@ -926,10 +933,60 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionPlanLogEntity.setWarehouseId(warehouse.getId());
distributionPlanLogEntity.setWarehouseName(warehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(1);
distributionPlanLogEntity.setType(2);
distributionPlanLogService.save(distributionPlanLogEntity);
}
private void handleUpdateDistributionPlanLog(DistrilbutionBillLadingEntity oldEntity, DistrilbutionBillLadingEntity newEntity, BladeUser user, BasicdataWarehouseEntity warehouse, Integer planNum) {
if (StringUtils.isBlank(oldEntity.getDeliveryDocument())) {
oldEntity.setDeliveryDocument("未填写");
}
if (StringUtils.isBlank(newEntity.getDeliveryDocument())) {
newEntity.setDeliveryDocument("未填写");
}
String planContent = user.getNickName() + "在" + warehouse.getName()
+ "修改自提计划;自提计划编号:" + oldEntity.getPickupBatch()
+ ";收货单位:" + (oldEntity.getConsigneeUnit().equals(newEntity.getConsigneeUnit()) ? oldEntity.getConsigneeUnit() : "由" + oldEntity.getConsigneeUnit() + "变更为-->" + newEntity.getConsigneeUnit())
+ ",提货人:" + (oldEntity.getConsignee().equals(newEntity.getConsignee()) ? oldEntity.getConsignee() : "由" + oldEntity.getConsignee() + "变更为-->" + newEntity.getConsignee())
+ ",提货车牌:" + (oldEntity.getPickUpPlate().equals(newEntity.getPickUpPlate()) ? oldEntity.getPickUpPlate() : "由" + oldEntity.getPickUpPlate() + "变更为-->" + newEntity.getPickUpPlate())
+ ",提货证件:" + (oldEntity.getDeliveryDocument().equals(newEntity.getDeliveryDocument()) ? oldEntity.getDeliveryDocument() : "由" + oldEntity.getDeliveryDocument() + "变更为-->" + newEntity.getDeliveryDocument())
+ ",计划件数:" + planNum;
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(oldEntity.getId());
distributionPlanLogEntity.setRefCode(oldEntity.getPickupBatch());
distributionPlanLogEntity.setWarehouseId(warehouse.getId());
distributionPlanLogEntity.setWarehouseName(warehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(2);
distributionPlanLogService.save(distributionPlanLogEntity);
}
private List<DistributionPlanLogEntity> handleCancelDistributionPlanLog(List<Long> ids, BladeUser user, BasicdataWarehouseEntity warehouse) {
List<DistributionPlanLogEntity> logsList = new ArrayList<>();
if (!ids.isEmpty()) {
List<DistrilbutionBillLadingEntity> distrilbutionBillLadingEntities = this.listByIds(ids);
for (DistrilbutionBillLadingEntity distrilbutionBillLadingEntity : distrilbutionBillLadingEntities) {
String planContent = user.getNickName() + "在" + warehouse.getName()
+ "取消自提计划;自提计划编号:" + distrilbutionBillLadingEntity.getPickupBatch();
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(distrilbutionBillLadingEntity.getId());
distributionPlanLogEntity.setRefCode(distrilbutionBillLadingEntity.getPickupBatch());
distributionPlanLogEntity.setWarehouseId(warehouse.getId());
distributionPlanLogEntity.setWarehouseName(warehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(2);
logsList.add(distributionPlanLogEntity);
}
}
if (!logsList.isEmpty()) {
return logsList;
}
return null;
}
private NodeFanoutMsg<DeliveryOfPickupPlanVO> buildNodeFanoutMsgForBill(DistrilbutionBillLadingDTO distrilbutionBillLading, List<DistrilbutionBillPackageEntity> packageEntityList, List<DistributionDeliveryDetailsEntity> detailsEntities, List<DistributionReservationZeroPackageEntity> zeroPackageEntityList, List<DistributionDeliveryChargeEntity> listEntity) {
@ -1143,6 +1200,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
log.error(method + "存在已提货或签收自提单:{}", errorBillLading);
return R.fail(errorBillLading + "已提货或已签收!!!");
}
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Objects.isNull(myCurrentWarehouse)) {
return R.fail(403, "未授权!!!");
}
//查询是否存在自提扫描的有效包件
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.in(DistributionBillLadingScanEntity::getBillLadingId, ids)
@ -1156,6 +1217,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
Integer a = this.cancelBillLodingPackage(ids);
switch (a) {
case 0:
//日志记录
List<DistributionPlanLogEntity> cancelLogList = handleCancelDistributionPlanLog(ids, AuthUtil.getUser(), myCurrentWarehouse);
//进行自提单的取消
this.removeBatchByIds(ids);
//取消备货任务
@ -1173,6 +1236,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
//对自提所有的包件进行状态恢复
distributionAsyncService.maintenanceCancelBillLading(ids);
//取消日志记录
if (!cancelLogList.isEmpty()) {
distributionPlanLogService.saveBatch(cancelLogList);
}
return R.status(true);
case 1:
return R.fail("未授权!!!");
@ -1320,7 +1387,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (Func.isNotEmpty(builder)) {
String string = builder.deleteCharAt(builder.length() - 1).toString();
if(StringUtils.isNotBlank(string)){
if (StringUtils.isNotBlank(string)) {
warehouseUpdownTypeClient.downPackageOrDelTray(string, myCurrentWarehouse.getId(), "签收下架解托");
}
}
@ -1396,7 +1463,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
// 转换仓库ID
// modifyWarehouseId(delivery);
Map<String,Object> map = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
Map<String, Object> map = oldSystemDataPushClient.pushOldSystemSignInfo(delivery);
Boolean flag = (Boolean) map.get("result");
return flag;
} catch (Exception e) {
@ -2537,7 +2604,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
records.forEach(i -> {
if (groupedEntities != null) {
List<DistributionDeliveryChargeEntity> list = groupedEntities.get(i.getId());
if (!Func.isEmpty(groupedEntities.get(i.getId()))){
if (!Func.isEmpty(groupedEntities.get(i.getId()))) {
list.forEach(ii -> ii.setCostName(DictBizCache.getValue(DictBizConstant.DELIVERY_COST, ii.getCost())));
i.setList(list);
}
@ -3238,8 +3305,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
Object billLadingId = distributionBillLading.get("id");
String coding = distributionBillLading.get("coding").toString();
String type = distributionBillLading.get("type").toString();
try {
DistrilbutionBillLadingEntity billLadingEntity1 = baseMapper.selectById((Serializable) billLadingId);
DistrilbutionAppBillLadingOrderMainVO billLadingOrderMainVO = baseMapper.getBillLadingOrderMainVO(Long.parseLong(billLadingId.toString()));
@ -3266,7 +3331,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionBillLadingScan.setScanUser(AuthUtil.getUser().getNickName());
return processScan(type, distributionBillLadingScan.getBillLadingId(), coding, distributionBillLadingScan, myCurrentWarehouse, billLadingEntity1.getPickupBatch());
// return Resp.scanSuccess("签收成功", "签收成功");
@ -3350,6 +3414,11 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (matchedPackage == null) {
return Resp.scanFail("系统无此编码!", "系统无此编码");
}
DisStockListDetailEntity disStockListDetailEntity = new DisStockListDetailEntity();
disStockListDetailEntity.setId(matchedPackage.getId());
disStockListDetailEntity.setStockLockingStatus(InventoryLoadingStatusConstant.yizhuangche.getValue());
disStockListDetailEntity.setStockSignfoStatus(InventorySigningStatusConstant.yiqianshou.getValue());
disStockListDetailService.updateById(disStockListDetailEntity);
List<DistributionBillLadingScanEntity> billLadingScanEntities = new ArrayList<>();
distributionBillLadingScan.setPacketBarCode(coding);
@ -3496,7 +3565,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//查询订单包件数量签收的信息
DistributionStockArticleEntity one = distributionStockArticleEntityList.stream().filter(s -> s.getId().equals(so.getStockArticleId())).findFirst().orElse(null);
DistributionStockArticleEntity upObj =new DistributionStockArticleEntity();
DistributionStockArticleEntity upObj = new DistributionStockArticleEntity();
upObj.setId(so.getStockArticleId());
@ -3798,8 +3867,17 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
String[] split = ids.split(",");
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)) {
return R.fail(403,"未授权!!!");
return R.fail(403, "未授权!!!");
}
Integer isAutoRelease;
WarehouseConfigEntity warehouseConfig = warehouseConfigClient.getWarehouseConfig(myCurrentWarehouse.getId());
if (!Objects.isNull(warehouseConfig)) {
isAutoRelease = warehouseConfig.getIsAutoRelease() != null ? warehouseConfig.getIsAutoRelease() : 0;
} else {
isAutoRelease = 0;
}
Set<Long> parcelListIds = new HashSet<>();
for (int i = 0; i < split.length; i++) {
String s = split[i];
@ -3824,6 +3902,14 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (ladingScanEntities.isEmpty()) {
return R.fail("无签收数据!!");
}
if (Objects.equals(isAutoRelease, Integer.parseInt(IsOrNoConstant.no.getValue()))) {
//检查是否进行签收完毕
Integer planNum = baseMapper.selectBillLadingPlanNum(Long.valueOf(s));
Integer sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
if (!Objects.equals(planNum, sum)) {
return R.fail("当前任务未签收完成!!!");
}
}
//修改提货状态
DistrilbutionBillLadingEntity billLadingEntity = new DistrilbutionBillLadingEntity();
billLadingEntity.setConditions(BillLadingStatusConstant.yiqianshou.getValue());
@ -3838,98 +3924,117 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
Integer integer = this.selectBillLadingPlanNum(Long.parseLong(s));
if (Func.isNotEmpty(ladingScanEntities)) {
int sum = ladingScanEntities.stream().filter(f -> "2".equals(f.getMaterialType())).mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
// if (sum == 0){
// //未进行任何签收扫描的操作这里需要进行拦截
// throw new ServiceException("无签收数据");
//
// }
if (integer != sum) {
//存在资源释放操作
releaseBillLadingResource(Long.parseLong(s), myCurrentWarehouse,distrilbutionBillLadingEntity.getPickupBatch());
}
try {
if (sum > 0){
parcelListIds.addAll(ladingScanEntities.stream().map(DistributionBillLadingScanEntity::getParcelListId).collect(Collectors.toSet()));
List<DistributionParcelListEntity> listByOrderPackageCode = distributionParcelListService.findListByOrderPackageCode(ladingScanEntities.stream().map(DistributionBillLadingScanEntity::getPacketBarCode).collect(Collectors.toList()), myCurrentWarehouse.getId());
// 根据品牌分组
Map<String, List<DistributionParcelListEntity>> collect = listByOrderPackageCode.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getBrandName));
for (Map.Entry<String, List<DistributionParcelListEntity>> entry : collect.entrySet()) {
String brand = entry.getKey();
List<DistributionParcelListEntity> list2 = entry.getValue();
// 按订单分组
if (integer != sum) {
//存在资源释放操作
releaseBillLadingResource(Long.parseLong(s), myCurrentWarehouse, distrilbutionBillLadingEntity.getPickupBatch());
}
try {
if (sum > 0) {
parcelListIds.addAll(ladingScanEntities.stream().map(DistributionBillLadingScanEntity::getParcelListId).collect(Collectors.toSet()));
List<DistributionParcelListEntity> listByOrderPackageCode = distributionParcelListService.findListByOrderPackageCode(ladingScanEntities.stream().map(DistributionBillLadingScanEntity::getPacketBarCode).collect(Collectors.toList()), myCurrentWarehouse.getId());
// 根据品牌分组
Map<String, List<DistributionParcelListEntity>> collect = listByOrderPackageCode.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getBrandName));
for (Map.Entry<String, List<DistributionParcelListEntity>> entry : collect.entrySet()) {
String brand = entry.getKey();
List<DistributionParcelListEntity> list2 = entry.getValue();
// 按订单分组
// Map<String, List<DistributionParcelListEntity>> collect1 = list.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getOrderCode));
// for (Map.Entry<String, List<DistributionParcelListEntity>> stringListEntry : collect1.entrySet()) {
// String orderCode = stringListEntry.getKey();
// List<DistributionParcelListEntity> list2 = stringListEntry.getValue();
JSONObject js = new JSONObject();
js.put("boId", billLadingEntity.getId());
js.put("consignee", distrilbutionBillLadingEntity.getConsignee());
js.put("images", list1.stream().map(m -> m.getSite()).collect(Collectors.toList()));
NodePushMsg msg = new NodePushMsg();
msg.setNode(WorkNodeEnums.CLERK_REVIEW);
msg.setBrand(BrandEnums.getByValue(brand));
msg.setWarehouse(myCurrentWarehouse.getName());
msg.setOperator(AuthUtil.getNickName());
msg.setOperatorTime(new Date());
msg.setContent(list2.stream().map(pushData->{
return PushData.builder()
.packageCode(pushData.getOrderPackageCode())
.warehouseName(myCurrentWarehouse.getName())
.waybillNumber(pushData.getWaybillNumber())
.orderCode(pushData.getOrderCode())
.build();
}).collect(Collectors.toList()));
msg.setMain(JSONUtil.toJsonStr(js));
log.info("推送工厂数据:{}", JSONUtil.toJsonStr(msg));
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
}
}catch (Exception e){
log.error("推送失败:{}", e);
JSONObject js = new JSONObject();
js.put("boId", billLadingEntity.getId());
js.put("consignee", distrilbutionBillLadingEntity.getConsignee());
js.put("images", list1.stream().map(m -> m.getSite()).collect(Collectors.toList()));
NodePushMsg msg = new NodePushMsg();
msg.setNode(WorkNodeEnums.CLERK_REVIEW);
msg.setBrand(BrandEnums.getByValue(brand));
msg.setWarehouse(myCurrentWarehouse.getName());
msg.setOperator(AuthUtil.getNickName());
msg.setOperatorTime(new Date());
msg.setContent(list2.stream().map(pushData -> {
return PushData.builder()
.packageCode(pushData.getOrderPackageCode())
.warehouseName(myCurrentWarehouse.getName())
.waybillNumber(pushData.getWaybillNumber())
.orderCode(pushData.getOrderCode())
.build();
}).collect(Collectors.toList()));
msg.setMain(JSONUtil.toJsonStr(js));
log.info("推送工厂数据:{}", JSONUtil.toJsonStr(msg));
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
}
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
if(ladingScanEntity.getStockArticleId()!=null){
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(ladingScanEntity.getStockArticleId());
if(stockArticleEntity!=null){
// 签收发送消息到工厂
pushFactoryOrderData(myCurrentWarehouse.getId(), ladingScanEntity.getParcelListId().toString(), stockArticleEntity.getOrderCode());
}
} catch (Exception e) {
log.error("推送失败:{}", e);
}
for (DistributionBillLadingScanEntity ladingScanEntity : ladingScanEntities) {
if (ladingScanEntity.getStockArticleId() != null) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(ladingScanEntity.getStockArticleId());
if (stockArticleEntity != null) {
// 签收发送消息到工厂
pushFactoryOrderData(myCurrentWarehouse.getId(), ladingScanEntity.getParcelListId().toString(), stockArticleEntity.getOrderCode());
}
}
}
//修改订单状态
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, s)
.apply("order_status in ( '1' , '3')")
}
//修改订单状态
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, s)
.apply("order_status in ( '1' , '3')")
// .or(ew -> ew.eq(DistrilbutionBillStockEntity::getBillLadingId, s).apply(DistrilbutionBillStockEntity::getOrderStatus, "2"))
);
List<String> orderCode = new ArrayList<>();
List<Long> orderIds = new ArrayList<>();
if (!list.isEmpty()) {
list.forEach(li -> {
DistributionStockArticleEntity stockArticleEntity = new DistributionStockArticleEntity();
stockArticleEntity.setId(li.getStockArticleId());
List<DistributionParcelListEntity> list2 = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, li.getStockArticleId())
.apply("order_package_status != 70 ")
);
if (list2.isEmpty()) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue());
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(li.getStockArticleId());
if (IsOrNoConstant.no.getValue().equals(stockArticleEntity.getIsZero())) {
//开启自动释放才可以进行 否则这里无法进行复核
if (Integer.parseInt(IsOrNoConstant.yes.getValue()) == (isAutoRelease)) {
Integer i1 = updatePack(li.getStockArticleId(), Long.valueOf(s));
if (i1 > 0) {
//存在释放 需要对订单状态进行维护
orderCode.add(stockArticleEntity.getOrderCode());
orderIds.add(stockArticleEntity.getId());
}
}
} else {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue());
}
//回退包件数据
Integer i1 = updatePack(li.getStockArticleId(), Long.valueOf(s));
if (i1 > 0) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue());
if (Integer.parseInt(IsOrNoConstant.yes.getValue()) == (isAutoRelease)) {
//释放零担
Integer i2 = updateZeroPack(li.getStockArticleId(), Long.valueOf(s));
switch (i2) {
case 1:
orderCode.add(stockArticleEntity.getOrderCode());
orderIds.add(stockArticleEntity.getId());
break;
case 0:
throw new CustomerException("查询零担信息错误");
default:
log.error("updateZeroPack>>>>>>>>>>>>>未知返回值");
}
}
}
distributionStockArticleService.updateById(stockArticleEntity);
});
distributionAsyncService.sendFactorySignforInfo(s, myCurrentWarehouse, AuthUtil.getUser());
if (!orderIds.isEmpty()) {
//维护计划内进行释放订单状态
distrilbutionBillStockService.maintenancePlanOrderStatus(orderIds, billLadingEntity.getId());
}
}
//处理库存品签收数据
updateStock(s, scanEntityList);
if (!orderCode.isEmpty()) {
String collect = orderCode.stream().distinct().collect(Collectors.joining(","));
distributionStockArticleService.maintenanceOrderInfo(collect, myCurrentWarehouse.getId());
}
if (Integer.parseInt(IsOrNoConstant.yes.getValue()) == (isAutoRelease)) {
//释放库存品
updateStock(s, scanEntityList);
}
Integer num = baseMapper.selectBillLadingLoading(billLadingEntity.getId());
//自提复核日志
handleDExamineDistributionPlanLog(billLadingEntity,AuthUtil.getUser(),myCurrentWarehouse,num);
// 回传老系统自提数据
sendOldSystem(Long.parseLong(s));
//整理运单信息
@ -3938,6 +4043,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
NodeFanoutMsg<PickUpByReCheckVO> nodeFanoutMsg = buildPickUpByReCheckVO(billLadingEntity, ladingScanEntities, myCurrentWarehouse);
iDistributionNodeWorkService.billofladingSignforCheck(nodeFanoutMsg, AuthUtil.getUser());
}
// 回传工厂数据
// sendFactory(myCurrentWarehouse, parcelListIds);
@ -3945,6 +4051,102 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return R.success("操作成功");
}
private void handleDExamineDistributionPlanLog(DistrilbutionBillLadingEntity billLadingEntity, BladeUser user, BasicdataWarehouseEntity myCurrentWarehouse,Integer num) {
String planContent = user.getNickName() + "在" + myCurrentWarehouse.getName()
+ "完成自提计划;自提计划编号:" + billLadingEntity.getPickupBatch()
+ ",签收件数:" + num;
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(billLadingEntity.getId());
distributionPlanLogEntity.setRefCode(billLadingEntity.getPickupBatch());
distributionPlanLogEntity.setWarehouseId(myCurrentWarehouse.getId());
distributionPlanLogEntity.setWarehouseName(myCurrentWarehouse.getName());
distributionPlanLogEntity.setOperator(user.getNickName());
distributionPlanLogEntity.setType(2);
distributionPlanLogService.save(distributionPlanLogEntity);
}
private Integer updateZeroPack(Long stockArticleId, Long billId) {
//查询零担计划信息
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = distributionZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billId)
.eq(DistributionReservationZeroPackageEntity::getStockArticleId, stockArticleId)
.eq(DistributionReservationZeroPackageEntity::getType, "3")
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
List<DistributionReservationZeroPackageEntity> recoveryReservationZeroPackageEntities = new ArrayList<>();
List<DistributionReservationZeroPackageEntity> updateReservationZeroPackageEntities = new ArrayList<>();
if (!reservationZeroPackageEntities.isEmpty()) {
List<Long> zeropackageIds = reservationZeroPackageEntities.stream().map(DistributionReservationZeroPackageEntity::getParcelListId).collect(Collectors.toList());
//查询此品类的签收数量
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billId)
.eq(DistributionBillLadingScanEntity::getStockArticleId, stockArticleId)
.in(DistributionBillLadingScanEntity::getParcelListId, zeropackageIds)
);
if (!ladingScanEntities.isEmpty()) {
//收集需要进行恢复的数据
Map<Long, List<DistributionBillLadingScanEntity>> loadingPackageMap = ladingScanEntities.stream().collect(Collectors.groupingBy(DistributionBillLadingScanEntity::getParcelListId));
for (DistributionReservationZeroPackageEntity reservationZeroPackageEntity : reservationZeroPackageEntities) {
if (!Objects.isNull(loadingPackageMap.get(reservationZeroPackageEntity.getParcelListId()))) {
//进行签收的数量比对
DistributionBillLadingScanEntity ladingScanEntity = loadingPackageMap.get(reservationZeroPackageEntity.getParcelListId()).get(0);
if (!Objects.equals(reservationZeroPackageEntity.getQuantity(), ladingScanEntity.getQuantity())) {
//存在数据差异
int i = reservationZeroPackageEntity.getQuantity() - ladingScanEntity.getQuantity();
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setParcelListId(reservationZeroPackageEntity.getParcelListId());
distributionReservationZeroPackageEntity.setQuantity(i);
recoveryReservationZeroPackageEntities.add(distributionReservationZeroPackageEntity);
reservationZeroPackageEntity.setQuantity(ladingScanEntity.getQuantity());
updateReservationZeroPackageEntities.add(reservationZeroPackageEntity);
}
//计划和签收一致 不进行处理
} else {
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setParcelListId(reservationZeroPackageEntity.getParcelListId());
distributionReservationZeroPackageEntity.setQuantity(reservationZeroPackageEntity.getQuantity());
recoveryReservationZeroPackageEntities.add(distributionReservationZeroPackageEntity);
reservationZeroPackageEntity.setQuantity(0);
reservationZeroPackageEntity.setZeroPackageStatus(ReservationPackageStatusConstant.quxiao.getValue());
//进行整个品类释放
updateReservationZeroPackageEntities.add(reservationZeroPackageEntity);
}
}
} else {
recoveryReservationZeroPackageEntities.addAll(reservationZeroPackageEntities);
reservationZeroPackageEntities.stream().forEach(rz -> {
rz.setZeroPackageStatus(ReservationPackageStatusConstant.quxiao.getValue());
rz.setQuantity(0);
});
//进行整个品类释放
updateReservationZeroPackageEntities.addAll(reservationZeroPackageEntities);
}
} else {
return 0;
}
if (!recoveryReservationZeroPackageEntities.isEmpty()) {
//存在需要释放的
for (DistributionReservationZeroPackageEntity recoveryReservationZeroPackageEntity : recoveryReservationZeroPackageEntities) {
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getParcelListId, recoveryReservationZeroPackageEntity.getParcelListId())
);
distributionParcelNumberEntity.setDeliveryQuantity(distributionParcelNumberEntity.getDeliveryQuantity() - recoveryReservationZeroPackageEntity.getQuantity());
distributionParcelNumberService.updateById(distributionParcelNumberEntity);
distributionParcelListService.maintenanceZerpPackageInfo(recoveryReservationZeroPackageEntity.getParcelListId());
}
}
if (!updateReservationZeroPackageEntities.isEmpty()) {
//存在需要修改计划的
distributionZeroPackageService.updateBatchById(updateReservationZeroPackageEntities);
}
return 1;
}
private NodeFanoutMsg<PickUpByReCheckVO> buildPickUpByReCheckVO(DistrilbutionBillLadingEntity billLadingEntity, List<DistributionBillLadingScanEntity> ladingScanEntities, BasicdataWarehouseEntity myCurrentWarehouse) {
NodeFanoutMsg<org.springblade.common.model.workNode.PickUpByReCheckVO> nodeFanoutMsg = new NodeFanoutMsg();
nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD);
@ -4041,7 +4243,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
}
public void releaseBillLadingResource(Long l, BasicdataWarehouseEntity warehouse,String pickupBatch) {
public void releaseBillLadingResource(Long l, BasicdataWarehouseEntity warehouse, String pickupBatch) {
List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, l)
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2)
@ -4146,23 +4348,52 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
*/
public void updateStock(String billId, List<DistributionBillLadingScanEntity> scanEntityList) {
List<DisStockListDetailEntity> list = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, billId));
.eq(DisStockListDetailEntity::getReservationId, billId)
.ne(DisStockListDetailEntity::getStockPackageStatus, InventoryPackageStatusConstant.quxiao.getValue())
);
if (ObjectUtils.isNotNull(list)) {
//处理库存
list.stream().filter(i -> "10".equals(i.getStockSignfoStatus())).forEach(i -> {
//添加自提库存品记录
DistributionBillLadingScanEntity billLadingScan = new DistributionBillLadingScanEntity();
billLadingScan.setMaterialType("1");
billLadingScan.setScanType(2);
billLadingScan.setBillLadingId(Long.valueOf(billId));
billLadingScan.setQuantity(1);
billLadingScan.setStockListId(i.getStockListId());
billLadingScan.setPacketBarCode(i.getStockPackageCode());
scanEntityList.add(billLadingScan);
});
if (!scanEntityList.isEmpty()) {
distributionBillLadingScanService.saveBatch(scanEntityList);
// //处理库存
// list.stream().filter(i -> "10".equals(i.getStockSignfoStatus())).forEach(i -> {
// //添加自提库存品记录
// DistributionBillLadingScanEntity billLadingScan = new DistributionBillLadingScanEntity();
// billLadingScan.setMaterialType("1");
// billLadingScan.setScanType(2);
// billLadingScan.setBillLadingId(Long.valueOf(billId));
// billLadingScan.setQuantity(1);
// billLadingScan.setStockListId(i.getStockListId());
// billLadingScan.setPacketBarCode(i.getStockPackageCode());
// scanEntityList.add(billLadingScan);
// });
// if (!scanEntityList.isEmpty()) {
// distributionBillLadingScanService.saveBatch(scanEntityList);
// }
List<DisStockListDetailEntity> cancelList = new ArrayList<>();
List<DisStockListDetailEntity> recoveryInventoryPackageList = list.stream().filter(f -> InventorySigningStatusConstant.weiqianshou.getValue().equals(f.getStockSignfoStatus())).collect(Collectors.toList());
if (!recoveryInventoryPackageList.isEmpty()) {
Map<Long, List<DisStockListDetailEntity>> recoveryInventoryPackageGroupByMap = recoveryInventoryPackageList.stream().collect(Collectors.groupingBy(DisStockListDetailEntity::getStockListId));
recoveryInventoryPackageGroupByMap.forEach((k,v)->{
//进行指定库存品的冻结数量进行释放
DistributionStockListEntity stockListEntity = distributionStockListService.getById(k);
if (Objects.isNull(stockListEntity)){
log.error("查询库存品信息错误>>>>>>>>>>>>>>>>>updateStock,id:{}",k);
throw new CustomerException("查询库存品信息错误");
}
//维护库存品的冻结数量
distributionStockListMapper.decreaseStockListQuantityOccupied(k,v.stream().mapToInt(DisStockListDetailEntity::getNum).sum());
cancelList.addAll(v);
});
}
if (!cancelList.isEmpty()) {
cancelList.stream().forEach(c->c.setStockPackageStatus(InventoryPackageStatusConstant.quxiao.getValue()));
List<DisStockListDetailEntity> packageList = cancelList.stream().filter(p -> InventoryStockTypeStatusConstant.caiji.getValue().equals(p.getStockType()) && InventoryStockUpStatusConstant.yibeihuo.getValue().equals(p.getStockStatus())).collect(Collectors.toList());
if (!packageList.isEmpty()) {
//TODO这是包件转的库存品进行包件的
//对此包件进行取消备货标识,增加此包件的日志记录
}
disStockListDetailService.updateBatchById(cancelList);
}
//维护此自提下的所有库存品信息
distributionDeliveryDetailsService.maintainInvnetory(Long.parseLong(billId));
}
@ -4176,7 +4407,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
*/
@Transactional(rollbackFor = Exception.class)
public Integer updatePack(Long ids, Long billId) {
List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, billId)
.eq(DistrilbutionBillPackageEntity::getStockArticleId, ids)
@ -4193,7 +4423,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
DistrilbutionBillPackageEntity next = iterator.next();
if (ObjectUtils.isNotNull(next.getParceListId())) {
boolean b = list1.stream().anyMatch(q -> {
if (ObjectUtils.isNotNull(q.getParcelListId())) {
return q.getParcelListId().equals(next.getParceListId());
}
@ -4203,10 +4432,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//删除包件
iterator.remove();
}
}
}
//回退包件信息
list.forEach(i -> {
@ -4255,7 +4481,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
}
@Transactional(rollbackFor = Exception.class)
public void saveDistrilbutionBillLading(DistrilbutionBillLadingDTO distrilbutionBillLading,BasicdataWarehouseEntity warehouse) {
public void saveDistrilbutionBillLading(DistrilbutionBillLadingDTO distrilbutionBillLading, BasicdataWarehouseEntity warehouse) {
//判断是不是零担
List<DistributionParcelListDTO> list = new ArrayList<>();
boolean isZeroType = false;

46
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java

@ -37,6 +37,9 @@ import com.logpm.distribution.vo.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.redis.cache.BladeRedis;
@ -89,6 +92,10 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
@Lazy
private IDistributionStockArticleService distributionStockArticleService;
@Autowired
@Lazy
private IDistributionReservationZeroPackageService distributionReservationZeroPackageService;
@Override
@ -336,4 +343,43 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
return ladingScanEntities.isEmpty();
}
@Override
public void maintenancePlanOrderStatus(List<Long> orderIds, Long billId) {
List<Long> cancelBillOrderIds = new ArrayList<>();
for (Long orderId : orderIds) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(orderId);
if (IsOrNoConstant.no.getValue().equals(stockArticleEntity.getIsZero())){
//查询是否还存在有计划的包件 如果没有则进行取消
List<DistrilbutionBillPackageEntity> list = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, billId)
.eq(DistrilbutionBillPackageEntity::getStockArticleId, orderId)
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
if (list.isEmpty()) {
//需要取消的订单
cancelBillOrderIds.add(orderId);
}
}else {
List<DistributionReservationZeroPackageEntity> reservationZeroPackageEntities = distributionReservationZeroPackageService.list(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, billId)
.eq(DistributionReservationZeroPackageEntity::getStockArticleId, orderId)
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
if (!reservationZeroPackageEntities.isEmpty()) {
//需要取消的订单
cancelBillOrderIds.add(orderId);
}
}
}
if (!orderIds.isEmpty()) {
//存在需要进行取消的订单
this.update(Wrappers.<DistrilbutionBillStockEntity>update().lambda()
.in(DistrilbutionBillStockEntity::getStockArticleId,orderIds)
.eq(DistrilbutionBillStockEntity::getBillLadingId,billId)
.set(DistrilbutionBillStockEntity::getOrderStatus, ReservationOrderStatusConstant.quxiao.getValue())
);
}
}
}

4
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java

@ -83,4 +83,8 @@ public interface TrunklineAdvanceDetailMapper extends BaseMapper<TrunklineAdvanc
void clearWaybillInfoByWaybillId(@Param("waybillId") Long waybillId);
AdvancenceTotalNumberVO findTotalNumberByAdvanceIds(@Param("advanceIds") List<Long> advanceIds);
void updateWaybillNoByAdvanceIds(@Param("advanceIds") List<Long> advanceIds, @Param("waybillNo") String waybillNo, @Param("waybillId") Long waybillId);
List<TrunklineAdvanceDetailVO> findListByAdvanceIds(@Param("advanceIds") List<Long> advanceIds);
}

47
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml

@ -184,6 +184,17 @@
where advance_id = #{advanceId}
</update>
<update id="updateWaybillNoByAdvanceIds" >
update logpm_trunkline_advance_detail
set waybill_no = #{waybillNo},
waybill_id = #{waybillId}
where advance_id in
<foreach collection="advanceIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<select id="findIncomingWarehouseName" resultType="String">
select incoming_warehouse_name
from logpm_trunkline_advance_detail
@ -517,4 +528,40 @@
and is_deleted = 0
</select>
<select id="findListByAdvanceIds" resultType="com.logpm.trunkline.vo.TrunklineAdvanceDetailVO">
select ltad.id id,
ltad.warehouse_id warehouseId,
ltad.warehouse_name warehouseName,
lta.waybill_no waybillNo,
ltad.order_code orderCode,
lta.train_number trainNumber,
ltad.package_status packageStatus,
ltad.first_pack_name firstPackName,
ltad.second_pack_name secondPackName,
ltad.third_pack_name thirdPackName,
ltad.material_code materialCode,
ltad.material_name materialName,
ltad.order_package_code orderPackageCode,
ltad.brand brand,
ltad.service_num serviceNum,
ltad.quantity quantity,
lwtg.tray_code trayCode,
lwt.pallet_name trayName,
ltad.system_type systemType,
ltad.weight weight,
ltad.volume volume,
ltad.advance_id advanceId,
ltad.incoming_warehouse_name incomingWarehouseName,
ltad.now_warehouse_name nowWarehouseName,
ltad.create_time createTime
from logpm_trunkline_advance_detail ltad
left join logpm_trunkline_advance lta on lta.id = ltad.advance_id
left join logpm_warehouse_tray_goods lwtg on lwtg.association_value = ltad.order_package_code
left join logpm_warehouse_tray lwt on lwt.id = lwtg.tray_id
where advance_id in
<foreach collection="advanceIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

1
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml

@ -571,6 +571,7 @@
<if test="param.warehouseName != null and param.warehouseName != ''">
and (Locate(#{param.warehouseName},ltcl.start_warehouse_name) > 0 or Locate(#{param.warehouseName},ltcl.end_warehouse_name) > 0)
</if>
order by ltcl.create_time desc
</select>
<select id="findZeroListByWarehouseId" resultType="com.logpm.trunkline.vo.ZeroSuppleListVO">

4
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java

@ -100,4 +100,8 @@ public interface ITrunklineAdvanceDetailService extends BaseService<TrunklineAdv
void sendReportIncomingData(Long userId, String nickName, List<TrunklineAdvanceDetailEntity> sendAdvanceDetailEntityList, Long warehouseId, String warehouseName,Integer incomingType);
void sendReportAdvanceOpenData(String nickName, Long userId, Long warehouseId, String warehouseName, List<TrunklineAdvanceDetailEntity> updateAdvanceDetailList, WarehouseWaybillEntity waybillEntity);
void updateWaybillNoByAdvanceIds(List<Long> advanceIds, String waybillNo, Long waybillId);
List<TrunklineAdvanceDetailVO> findListByAdvanceIds(List<Long> advanceIds);
}

19
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java

@ -23,6 +23,7 @@ import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionParcelNumberClient;
import com.logpm.distribution.feign.IDistributionReservationStockarticleClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.distribution.vo.UpdateOrderDTO;
import com.logpm.statistics.feign.IOrderInfoClient;
import com.logpm.trunkline.dto.*;
import com.logpm.trunkline.entity.*;
@ -657,12 +658,6 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
waybillOrderEntity.setHandleNumber(incomingNum);
waybillOrderEntities.add(waybillOrderEntity);
//更新暂存单包件的运单信息
advanceDetailService.updateWaybillNoByAdvanceId(advanceId, waybillNo, waybillId);
List<TrunklineAdvanceDetailVO> list = advanceDetailService.findList(advanceId);
trunklineWaybillPackageService.saveList(list, waybillEntity);
trunklineWaybillPackageService.updateWaybillStatus(waybillEntity);
distributionParcelListClient.updateEntityByOpenOrder(advanceId, waybillId);
// orderCodes.add(advanceEntity.getOrderCode());
advanceEntity.setWaybillStatus("1");
advanceEntity.setWaybillNo(waybillNo);
@ -672,6 +667,18 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
//修改暂存单的状态为已开单
advanceService.updateBatchById(advanceEntityList);
//更新暂存单包件的运单信息
if(CollUtil.isNotEmpty(advanceIds)){
advanceDetailService.updateWaybillNoByAdvanceIds(advanceIds, waybillNo, waybillId);
List<TrunklineAdvanceDetailVO> list = advanceDetailService.findListByAdvanceIds(advanceIds);
trunklineWaybillPackageService.saveList(list, waybillEntity);
UpdateOrderDTO updateOrderDTO = new UpdateOrderDTO();
updateOrderDTO.setAdvanceIds(advanceIds);
updateOrderDTO.setWaybillId(waybillId);
distributionParcelListClient.updateEntityByOpenOrderByAdvanceIds(updateOrderDTO);
}
trunklineWaybillPackageService.updateWaybillStatus(waybillEntity);
//修改暂存单明细的结算品类
List<TrunklineAdvanceDetailEntity> updateAdvanceDetailList = openOrderDTO.getUpdateAdvanceDetailList();
advanceDetailService.updateBatchById(updateAdvanceDetailList);

10
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java

@ -542,4 +542,14 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
sendFanoutService.sendFanoutMsg(fanoutMsg);
}
@Override
public void updateWaybillNoByAdvanceIds(List<Long> advanceIds, String waybillNo, Long waybillId) {
baseMapper.updateWaybillNoByAdvanceIds(advanceIds, waybillNo, waybillId);
}
@Override
public List<TrunklineAdvanceDetailVO> findListByAdvanceIds(List<Long> advanceIds) {
return baseMapper.findListByAdvanceIds(advanceIds);
}
}

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java

@ -830,6 +830,11 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc
Long consigneeId = waybillEntity.getConsigneeId();
String consigneeName1= waybillEntity.getConsignee();
List<TrunklineAdvanceDetailEntity> advanceDetailEntities1 = orderCodeMap.get(orderCode);
//把advanceDetailEntities1中素有所有元素的incomeCategoryName去重并拼接成一个字符串
String incomeCategoryName = advanceDetailEntities1.stream().map(TrunklineAdvanceDetailEntity::getIncomeCategoryName).distinct().collect(Collectors.joining(","));
stockArticleEntity.setDescriptionGoods(incomeCategoryName);
BasicdataClientEntity clientEntity = basicdataClientClient.findByName(consigneeName1);
if(!Objects.isNull(clientEntity)){
stockArticleEntity.setMallId(clientEntity.getId());

Loading…
Cancel
Save