diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java b/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java index ec0c1f2ab..39d878c59 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java @@ -242,6 +242,19 @@ public abstract class FanoutConstants { } } + /** + * 到达 + * + * @see org.springblade.common.model.ConsigneeArriveVO + **/ + interface DeliveryAndConsigneeArrive { + + String EXCHANGE = "fanout.distribution.ConsigneeArrive" + ModuleNameConstant.DEVAUTH; + + interface QUEUE { + } + } + /** * 签收 diff --git a/blade-biz-common/src/main/java/org/springblade/common/model/ConsigneeArriveVO.java b/blade-biz-common/src/main/java/org/springblade/common/model/ConsigneeArriveVO.java new file mode 100644 index 000000000..536a6e632 --- /dev/null +++ b/blade-biz-common/src/main/java/org/springblade/common/model/ConsigneeArriveVO.java @@ -0,0 +1,36 @@ +package org.springblade.common.model; + + +import lombok.Data; + +import java.util.List; + +/** + * 客户到达 + */ +@Data +public class ConsigneeArriveVO { + + + /** + * 车次号 + */ + private String trainNumber; + + /** + * 司机名 + */ + private String driverName; + /** + * 车牌号 + */ + private String vehicleName; + + /** + * 预约单号 + */ + private String reservationCode; + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java index 942003f63..f52724ded 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java @@ -35,10 +35,7 @@ import com.logpm.distribution.vo.print.PrintPreviewVO; import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity; import com.logpm.warehouse.entity.WarehouseRetentionScanEntity; import org.springblade.common.enums.BizOperationEnums; -import org.springblade.common.model.DistributionTaskVO; -import org.springblade.common.model.NodeFanoutMsg; -import org.springblade.common.model.PackageData; -import org.springblade.common.model.ReservationVO; +import org.springblade.common.model.*; import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; @@ -99,7 +96,10 @@ public interface IDistributionDeliveryListService extends BaseService buildDeliveryCarDriverInfor(DistributionDeliveryListEntity distributionDeliveryListEntity); + + /** *App-装车确认 */ R loadingack(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java index 7947cf725..759204a4e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java @@ -64,7 +64,7 @@ public interface IDistributionNodeWorkService { /** * 配送到达 */ - void carArrived(); + void carArrived(NodeFanoutMsg nodeFanoutMsg, BladeUser user ); /** diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index c84971172..0a58053c9 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -1157,7 +1157,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl buildDeliveryCarDriverInfor(DistributionDeliveryListEntity distributionDeliveryListEntity) { + @Override + public List buildDeliveryCarDriverInfor(DistributionDeliveryListEntity distributionDeliveryListEntity) { List jsonArray = new ArrayList<>(); // 自主配送 if ("1".equals(distributionDeliveryListEntity.getKind())) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionNodeWorkServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionNodeWorkServiceImpl.java index df91e9444..83bd8a7c8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionNodeWorkServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionNodeWorkServiceImpl.java @@ -110,8 +110,12 @@ public class DistributionNodeWorkServiceImpl implements IDistributionNodeWorkSer } @Override - public void carArrived() { - + public void carArrived(NodeFanoutMsg nodeFanoutMsg, BladeUser user) { + try { + rabbitTemplate.convertAndSend(FanoutConstants.distribution.DeliveryAndConsigneeArrive.EXCHANGE, null, com.alibaba.fastjson.JSONObject.toJSONString(nodeFanoutMsg)); + } catch (AmqpException e) { + log.error(">>>>>>>>>>>>>>>>>>>>>>>>>> 消息推送失败~ 请联系管理员! ", e); + } } @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 1100dba4f..32ae4ebbc 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -41,6 +41,7 @@ import com.logpm.distribution.excel.*; import com.logpm.distribution.mapper.*; import com.logpm.distribution.service.*; import com.logpm.distribution.vo.*; +import com.logpm.distribution.vo.DistributionSignforVO; import com.logpm.distribution.vo.app.*; import com.logpm.distribution.wrapper.DistributionParcelListAppWrapper; import com.logpm.distribution.wrapper.DistributionParcelListWrapper; @@ -78,8 +79,7 @@ import org.springblade.common.constant.stockup.StockAssignStatusConstant; import org.springblade.common.enums.BizOperationEnums; import org.springblade.common.enums.PackageTypeEnums; import org.springblade.common.exception.CustomerException; -import org.springblade.common.model.NodeFanoutMsg; -import org.springblade.common.model.PackageData; +import org.springblade.common.model.*; import org.springblade.common.node.BillLadingNode; import org.springblade.common.node.DeliveryNode; import org.springblade.common.node.ReservationNode; @@ -255,7 +255,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl selectDistributionSignforPage(IPage page, DistributionSignforVO distributionSignfor) { @@ -708,7 +711,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl nodeFanoutMsg = buildNodeFanoutMsgByReCheck(reservationEntity); - distributionNodeWorkService.signForCheck(nodeFanoutMsg, AuthUtil.getUser()); + iDistributionNodeWorkService.signForCheck(nodeFanoutMsg, AuthUtil.getUser()); // // 复核作业节点推送 // iDistributionNodeWorkService.signForCheck(DistributionSignforEntity distributionSignforEntity,DistributionReservationEntity reservationEntity); @@ -4689,9 +4692,58 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl nodeFanoutMsg= buildConsigneeArriveVO(deliveryListEntity,reservationEntity,user); + iDistributionNodeWorkService.carArrived(nodeFanoutMsg,user); return Resp.scanSuccess("打卡成功", "打卡成功"); } + private NodeFanoutMsg buildConsigneeArriveVO(DistributionDeliveryListEntity deliveryListEntity, DistributionReservationEntity reservationEntity, BladeUser user) { + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD); + nodeFanoutMsg.setNode(WorkNodeEnums.DISTRIBUTION_CAR_ARRIVED); + nodeFanoutMsg.setWarehouse(deliveryListEntity.getWarehouseName()); + nodeFanoutMsg.setWarehouseId(deliveryListEntity.getWarehouseId()); + nodeFanoutMsg.setOperator(AuthUtil.getTenantId()); + nodeFanoutMsg.setOperatorTime(deliveryListEntity.getCreateTime()); + + List planDriverbindCarVOS = distributionDeliveryListService.buildDeliveryCarDriverInfor(deliveryListEntity); + + String driverName = deliveryListEntity.getDriverName(); + String vehicleName = deliveryListEntity.getVehicleName(); + // 如果是自主配送 需要去获取当前司机绑定的车牌 + if ("1".equals(deliveryListEntity.getKind())) { + BasicdataDriverArteryEntity driverArteryById = basicdataDriverArteryClient.getDriverArteryById(AuthUtil.getUserId()); + if (driverArteryById != null) { + + for (int i = 0; i < planDriverbindCarVOS.size(); i++) { + if (planDriverbindCarVOS.get(i).getDriverName().equals(driverArteryById.getName())) { + driverName = planDriverbindCarVOS.get(i).getDriverName(); + vehicleName = planDriverbindCarVOS.get(i).getCarPlate(); + break; + } + } + } + } + ConsigneeArriveVO consigneeArriveVO = new ConsigneeArriveVO(); + consigneeArriveVO.setTrainNumber(deliveryListEntity.getTrainNumber()); + consigneeArriveVO.setReservationCode(reservationEntity.getReservationCode()); + + consigneeArriveVO.setDriverName(driverName); + consigneeArriveVO.setVehicleName(vehicleName); + nodeFanoutMsg.setMain(consigneeArriveVO); + + + return nodeFanoutMsg; + } + @Override @Transactional(rollbackFor = Exception.class) public R oneclick(DistributionSignforDTO distributionSignfor) {