@ -1,20 +1,27 @@
package com.logpm.distribution.receiver ;
import com.baomidou.mybatisplus.core.conditions.Wrapper ;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper ;
import com.logpm.distribution.entity.DistributionDeliveryListEntity ;
import com.logpm.distribution.entity.DistributionReservationEntity ;
import com.logpm.distribution.entity.DistributionSignforEntity ;
import com.logpm.distribution.entity.DistributionStockEntity ;
import com.logpm.distribution.mapper.DistributionDeliveryListMapper ;
import com.logpm.distribution.mapper.DistributionReservationMapper ;
import com.logpm.distribution.mapper.DistributionSignforMapper ;
import com.baomidou.mybatisplus.core.toolkit.Wrappers ;
import com.logpm.distribution.entity.* ;
import com.logpm.distribution.mapper.* ;
import com.logpm.distribution.service.IDistributionStockService ;
import com.logpm.distribution.vo.DistributionStockupStockListVO ;
import com.logpm.oldproject.dto.SignPushDataContactDTO ;
import com.logpm.oldproject.dto.SignPushDataDTO ;
import com.logpm.oldproject.dto.SignPushDataUnitDTO ;
import com.logpm.oldproject.feign.IOldSystemDataPushClient ;
import com.rabbitmq.client.Channel ;
import lombok.extern.slf4j.Slf4j ;
import org.springblade.common.constant.RabbitConstant ;
import org.springblade.common.constant.common.IsOrNoConstant ;
import org.springblade.common.constant.stockup.StockAssignStatusConstant ;
import org.springblade.core.tool.api.R ;
import org.springblade.core.tool.utils.Func ;
import org.springblade.core.tool.utils.ObjectUtil ;
import org.springblade.system.entity.User ;
import org.springblade.system.feign.IUserClient ;
import org.springblade.system.feign.IUserSearchClient ;
import org.springframework.amqp.core.Message ;
import org.springframework.amqp.rabbit.annotation.RabbitHandler ;
import org.springframework.amqp.rabbit.annotation.RabbitListener ;
@ -22,6 +29,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component ;
import java.io.IOException ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.Map ;
@ -46,6 +55,14 @@ public class ClerkCheckPushDataQueueHandler {
@Autowired
private DistributionReservationMapper distributionReservationMapper ;
@Autowired
private DistributionDeliverySelfMapper distributionDeliverySelfMapper ;
@Autowired
private DistributionDeliveryTripartiteMapper distributionDeliveryTripartiteMapper ;
@Autowired
private IUserClient userClient ;
@RabbitHandler
public void clerkCheckPushDataHandler ( Map map , Message message , Channel channel ) {
@ -60,6 +77,7 @@ public class ClerkCheckPushDataQueueHandler {
//得到签收对象
DistributionSignforEntity distributionSignforEntity = distributionSignforMapper . selectById ( signfor_id ) ;
//需要检测文员是否进行复核了
if ( ObjectUtil . isEmpty ( distributionSignforEntity ) ) {
log . info ( ">>>>>>>>>>>> clerkCheckPushDataHandler distributionSignforEntity {}" , distributionSignforEntity ) ;
@ -79,6 +97,76 @@ public class ClerkCheckPushDataQueueHandler {
return ;
}
//组合配送信息
SignPushDataDTO delivery = distributionDeliveryListMapper . selectPushOldDelivery ( distributionSignforEntity . getReservationId ( ) , distributionSignforEntity . getDeliveryId ( ) ) ;
//还需要配送的出库人、配送人、操作人信息
if ( Func . isNotEmpty ( delivery ) ) {
if ( delivery . getKind ( ) . equals ( "1" ) ) {
//自主配送
DistributionDeliverySelfEntity distributionDeliverySelfEntity = distributionDeliverySelfMapper . selectOne ( Wrappers . < DistributionDeliverySelfEntity > query ( ) . lambda ( )
. eq ( DistributionDeliverySelfEntity : : getDeliveryId , delivery . getId ( ) )
. eq ( DistributionDeliverySelfEntity : : getIsMaster , delivery . getId ( ) )
) ;
if ( Func . isNotEmpty ( distributionDeliverySelfEntity ) ) {
delivery . setOut_id ( Long . parseLong ( distributionDeliverySelfEntity . getDriverId ( ) ) ) ;
delivery . setOut_name ( distributionDeliverySelfEntity . getDriverName ( ) ) ;
delivery . setOut_phone ( distributionDeliverySelfEntity . getDriverPhone ( ) ) ;
}
} else {
//外协
DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper . selectOne ( Wrappers . < DistributionDeliveryTripartiteEntity > query ( ) . lambda ( ) . eq ( DistributionDeliveryTripartiteEntity : : getDeliveryId , delivery . getId ( ) ) ) ;
if ( Func . isNotEmpty ( distributionDeliveryTripartiteEntity ) ) {
delivery . setOut_name ( distributionDeliveryTripartiteEntity . getDriverName ( ) ) ;
delivery . setOut_phone ( distributionDeliveryTripartiteEntity . getDriverPhone ( ) ) ;
}
}
R < User > userR = userClient . userInfoById ( delivery . getAdministrators_id ( ) ) ;
if ( Func . isNotEmpty ( userR ) ) {
User user = userR . getData ( ) ;
delivery . setAdministrators_name ( user . getName ( ) ) ;
}
DistributionStockupEntity distributionStockupEntity = distributionReservationMapper . selectStockup ( distributionSignforEntity . getReservationId ( ) ) ;
if ( Func . isNotEmpty ( distributionStockupEntity ) ) {
if ( distributionStockupEntity . getAssignStatus ( ) . equals ( StockAssignStatusConstant . yizhipai . getValue ( ) ) ) {
delivery . setOut_to_id ( distributionStockupEntity . getStockupUserId ( ) ) ;
delivery . setOut_to_name ( distributionStockupEntity . getStockupUser ( ) ) ;
}
}
//查询客户信息
List < SignPushDataContactDTO > customer = distributionReservationMapper . selectPushOldCustomer ( distributionSignforEntity . getReservationId ( ) ) ;
if ( Func . isNotEmpty ( customer ) ) {
//查询客户订单
List < SignPushDataUnitDTO > signPushDataUnitDTOS = new ArrayList < > ( ) ;
if ( distributionReservationEntity . getReservationNum ( ) > 0 ) {
//查询包件扫描签收
SignPushDataUnitDTO pushOldPackage = distributionSignforMapper . selectPushOldPackage ( distributionSignforEntity . getReservationId ( ) , distributionSignforEntity . getDeliveryId ( ) ) ;
if ( Func . isNotEmpty ( pushOldPackage ) ) {
signPushDataUnitDTOS . add ( pushOldPackage ) ;
}
}
if ( distributionReservationEntity . getReservationStockListNum ( ) > 0 ) {
//查询库存品扫描签收
SignPushDataUnitDTO pushOldInventory = distributionSignforMapper . selectPushOldInventory ( distributionSignforEntity . getReservationId ( ) , distributionSignforEntity . getDeliveryId ( ) ) ;
if ( Func . isNotEmpty ( pushOldInventory ) ) {
signPushDataUnitDTOS . add ( pushOldInventory ) ;
}
}
if ( Func . isNotEmpty ( signPushDataUnitDTOS ) ) {
SignPushDataContactDTO signPushDataContactDTO = customer . get ( 0 ) ;
signPushDataContactDTO . setSignPushDataUnitDTOs ( signPushDataUnitDTOS ) ;
}
//完成客户信息添加
delivery . setSignPushDataContactDTOs ( customer ) ;
}
}
//得到客户对应的签收数据
// TODO 这里的数据需要查询 等TJJ 空了来帮我写
@ -90,18 +178,19 @@ public class ClerkCheckPushDataQueueHandler {
// 得到签收订单数量
// 调用方法 推送老系统 闭环
SignPushDataDTO signPushDataDTO = new SignPushDataDTO ( ) ;
// // 得到签收订单数量
//
//// 调用方法 推送老系统 闭环
// SignPushDataDTO signPushDataDTO = new SignPushDataDTO();
Boolean b = oldSystemDataPushClient . pushOldSystemSignInfo ( signPushDataDTO ) ;
Boolean b = oldSystemDataPushClient . pushOldSystemSignInfo ( delivery ) ;
}
}