@ -15,10 +15,10 @@ import com.logpm.distribution.dto.app.StockupZeroDTO;
import com.logpm.distribution.entity.* ;
import com.logpm.distribution.mapper.* ;
import com.logpm.distribution.service.* ;
import com.logpm.distribution.vo.DistributionParcelNumberVO ;
import com.logpm.distribution.vo.DistributionStockPackageV O ;
import com.logpm.distribution.vo.DistributionStockupSelfV O ;
import com.logpm.distribution.vo.DistrilbutionBillStockV O ;
import com.logpm.distribution.vo.* ;
import com.logpm.factory.mt.dto.MtReceiveContentDT O ;
import com.logpm.factory.mt.dto.MtReceiveDT O ;
import com.logpm.factory.mt.dto.MtReceiveImagesDT O ;
import com.logpm.factory.mt.feign.IMtOrderMainClinet ;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient ;
import lombok.AllArgsConstructor ;
@ -49,11 +49,7 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional ;
import java.security.NoSuchAlgorithmException ;
import java.util.ArrayList ;
import java.util.Date ;
import java.util.List ;
import java.util.Map ;
import java.util.Objects ;
import java.util.* ;
import java.util.concurrent.atomic.AtomicBoolean ;
import java.util.concurrent.atomic.AtomicInteger ;
import java.util.concurrent.atomic.AtomicReference ;
@ -1402,11 +1398,114 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
throw new RuntimeException ( e ) ;
}
break ;
//其他.....
}
}
}
@Override
@Transactional
public void sendReviewFactory ( Long signingId , Long warehouseId ) {
String brands = "梦天" ; //可追加
//查询签收信息
DistributionSignforEntity distributionSignforEntity = distributionSignforMapper . selectById ( signingId ) ;
if ( Func . isNotEmpty ( distributionSignforEntity ) ) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper . selectById ( distributionSignforEntity . getReservationId ( ) ) ;
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper . selectById ( distributionSignforEntity . getDeliveryId ( ) ) ;
//推送内容
MtReceiveDTO mtReceiveDTO = new MtReceiveDTO ( ) ;
mtReceiveDTO . setReceiver ( distributionReservationEntity . getConsignee ( ) ) ;
mtReceiveDTO . setSendTaskId ( distributionDeliveryListEntity . getId ( ) . toString ( ) ) ;
Map < String , List < MtReceiveContentDTO > > brand = null ;
List < DistributionReservationStockarticleEntity > distributionReservationStockarticleEntities = distributionReservationMapper . selectStockArticleByReservationId ( distributionReservationEntity . getId ( ) ) ;
if ( Func . isNotEmpty ( distributionReservationStockarticleEntities ) ) {
//存在订单
List < Long > orderIds = distributionReservationStockarticleEntities . stream ( ) . filter ( f - > f . getIsZero ( ) . equals ( IsOrNoConstant . no . getValue ( ) ) ) . map ( DistributionReservationStockarticleEntity : : getStockArticleId ) . collect ( Collectors . toList ( ) ) ;
List < DistributionStockArticleEntity > distributionStockArticleEntities = distributionStockArticleService . listByIds ( orderIds ) ;
if ( Func . isNotEmpty ( distributionStockArticleEntities ) ) {
String [ ] split = Func . split ( brands , "," ) ;
//包件信息列表
brand = handkeBrandsPackageList ( split , distributionStockArticleEntities , warehouseId , distributionReservationEntity . getId ( ) , distributionDeliveryListEntity . getOrderCode ( ) ) ;
}
}
//签收图片信息
List < MtReceiveImagesDTO > mtReceiveImagesDTOS = new ArrayList < > ( ) ;
List < DistributionSignPrintVO > distributionSignPrintVOS = distributionSignforMapper . selectSignImgsUrl ( distributionSignforEntity . getReservationId ( ) ) ;
if ( Func . isNotEmpty ( distributionSignPrintVOS ) ) {
for ( DistributionSignPrintVO distributionSignPrintVO : distributionSignPrintVOS ) {
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO ( ) ;
mtReceiveImagesDTO . setImage ( distributionSignPrintVO . getUrlRoute ( ) ) ;
mtReceiveImagesDTOS . add ( mtReceiveImagesDTO ) ;
}
mtReceiveDTO . setReceiveImagesList ( mtReceiveImagesDTOS ) ;
}
try {
if ( Func . isNotEmpty ( brand . get ( "梦天" ) ) ) {
mtReceiveDTO . setReceiveContentList ( brand . get ( "梦天" ) ) ;
orderMainClinet . sendReceiveInfoByNewSystem ( mtReceiveDTO ) ;
}
//....工厂
} catch ( Exception e ) {
throw new RuntimeException ( e ) ;
}
}
}
private Map < String , List < MtReceiveContentDTO > > handkeBrandsPackageList ( String [ ] split , List < DistributionStockArticleEntity > distributionStockArticleEntities , Long warehouseId , Long reservationId , String deliveryCode ) {
Map < String , List < MtReceiveContentDTO > > packageList = new HashMap < > ( ) ;
Map < String , List < DistributionStockArticleEntity > > orderMap = distributionStockArticleEntities . stream ( ) . collect ( Collectors . groupingBy ( DistributionStockArticleEntity : : getBrand ) ) ;
for ( String s : split ) {
orderMap . forEach ( ( k , v ) - > {
if ( k . equals ( s ) ) {
List < MtReceiveContentDTO > mtReceiveContentDTOS = new ArrayList < > ( ) ;
for ( DistributionStockArticleEntity distributionStockArticleEntity : v ) {
List < DistributionParcelListEntity > distributionParcelListEntities = distributionReservationMapper . selectPackageByReservationAndStockArticle ( reservationId , distributionStockArticleEntity . getId ( ) ) ;
for ( DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities ) {
if ( distributionParcelListEntity . getOrderPackageStatus ( ) . equals ( OrderPackageStatusConstant . yiqianshou . getValue ( ) ) ) {
String signingTime = distributionLoadscanMapper . selectPackageSigningTime ( distributionParcelListEntity . getId ( ) ) ;
MtReceiveContentDTO mtReceiveContentDTO = new MtReceiveContentDTO ( ) ;
//查询签收时间
mtReceiveContentDTO . setWarehouse ( warehouseId . toString ( ) ) ; //仓库Id
mtReceiveContentDTO . setOrderCode ( distributionStockArticleEntity . getOrderCode ( ) ) ; //仓库Id
mtReceiveContentDTO . setUnitNo ( distributionParcelListEntity . getOrderPackageCode ( ) ) ; //仓库Id
mtReceiveContentDTO . setOperateDate ( signingTime ) ; //操作时间
mtReceiveContentDTO . setInvoiceOrderCode ( deliveryCode ) ; //发货编号
mtReceiveContentDTOS . add ( mtReceiveContentDTO ) ;
}
}
}
packageList . put ( s , mtReceiveContentDTOS ) ;
}
} ) ;
}
return packageList ;
}
private List < MtReceiveContentDTO > handleBrandPackageList ( Long warehouseId , List < DistributionStockArticleEntity > mtOrderList , DistributionReservationEntity distributionReservationEntity , DistributionDeliveryListEntity distributionDeliveryListEntity ) {
List < MtReceiveContentDTO > mtReceiveContentDTOS = new ArrayList < > ( ) ;
for ( DistributionStockArticleEntity distributionStockArticleEntity : mtOrderList ) {
}
return mtReceiveContentDTOS ;
}
/ * *
* 维护配送数量和状态
*