Browse Source

推送数据到老系统

training
汤建军 11 months ago
parent
commit
480276d076
  1. 8
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java
  2. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
  3. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  4. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  5. 18
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  6. 17
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java
  7. 65
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  8. 113
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java
  9. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java
  10. 13
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

8
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/dto/SignPushDataDTO.java

@ -38,12 +38,13 @@ public class SignPushDataDTO {
/**
* 出库人ID
*/
private int out_to_id;
private Long out_to_id;
/**
* 出库人
*/
private String out_to_name;
/**
* 出库时间
*/
@ -114,6 +115,11 @@ public class SignPushDataDTO {
*/
private String administrators_name;
/**
* 操作人
*/
private String kind;
/**
* 签收客户集合
*/

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java

@ -29,6 +29,7 @@ import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.DistributionAppDeliveryListVO;
import com.logpm.distribution.vo.app.DistributionAppParcelListVO;
import com.logpm.distribution.vo.app.DistributionAppStockArticleVO;
import com.logpm.oldproject.dto.SignPushDataDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -438,4 +439,12 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
DistributionLoadingNumDTO selectDeliveryLoadingNum(@Param("deliveryId") Long id);
DistributionLoadingNumDTO selectDeliverySigningNum(@Param("deliveryId") Long id);
/**
* 查询推送老系统配送信息
* @param reservationId
* @param deliveryId
* @return
*/
SignPushDataDTO selectPushOldDelivery(@Param("reservationId") Long reservationId,@Param("deliveryId") Long deliveryId);
}

25
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -1707,5 +1707,30 @@
INNER JOIN ( SELECT sum( received_quantity ) AS inventorySigningNum FROM logpm_distribution_loadscaninvn WHERE delivery_id = #{deliveryId} and scan_status != 1 AND signfor_state =2 ) AS b
)
</select>
<select id="selectPushOldDelivery" resultType="com.logpm.oldproject.dto.SignPushDataDTO">
SELECT
lddl.id AS id,
lddl.kind AS kind,
lddl.warehouse_id AS warehouse_id,
lddl.warehouse_name AS warehouse_name,
CASE lddl.type
WHEN 1 THEN 2
WHEN 2 THEN 1
END type,
lddl.vehicle_name AS car,
lddl.task_time AS out_time,
lddl.train_number AS trans_no,
lddl.create_time AS createTime,
1 AS status ,
lddl.delivery_number AS plan,
lddl.delivery_number AS delivery,
lddl.create_user AS administrators_id,
(lds.loaded_number + lds.loadedin_number) AS plan,
(lds.received_quantity + lds.receivedin_quantity) AS sign
FROM
logpm_distribution_signfor AS lds
LEFT JOIN logpm_distribution_delivery_list AS lddl ON lds.delivery_id = lddl.id
LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id
</select>
</mapper>

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

@ -25,6 +25,7 @@ import com.logpm.distribution.dto.DistributionReservationDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistributionReservationExcel;
import com.logpm.distribution.vo.*;
import com.logpm.oldproject.dto.SignPushDataContactDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -265,4 +266,12 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
DistributionLoadingNumDTO selectReservationLoadingNum(@Param("reservationId")Long id);
DistributionLoadingNumDTO selectReservationSigningNum(@Param("reservationId") Long id);
/**
* 查询推送老系统客户
* @param reservationId
* @param deliveryId
* @return
*/
List<SignPushDataContactDTO> selectPushOldCustomer(@Param("reservationId") Long reservationId);
}

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

@ -1120,6 +1120,24 @@
</select>
<select id="selectPushOldCustomer" resultType="com.logpm.oldproject.dto.SignPushDataContactDTO">
SELECT
ldr.consignee AS contact,
ldr.delivery_address AS address,
ldr.delivery_phone AS phone,
(ldr.reservation_num + ldr.reservation_stock_list_num) AS plan,
(lds.loaded_number + lds.loadedin_number) AS actual_plan,
lddl.delivery_number AS delivery,
(lds.received_quantity + lds.receivedin_quantity) AS sign,
lds.signing_status AS state,
lds.create_time AS create_time,
lds.update_time AS update_time
FROM
logpm_distribution_signfor AS lds
LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id AND ldr.is_deleted = 0
LEFT JOIN logpm_distribution_delivery_list AS lddl ON lds.delivery_id = lddl.id AND lddl.is_deleted = 0
WHERE lds.reservation_id =#{reservationId} AND lds.is_deleted = 0
</select>
</mapper>

17
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java

@ -29,6 +29,7 @@ import com.logpm.distribution.vo.app.DistributionAppDeliveryListVO;
import com.logpm.distribution.vo.app.DistributionAppParcelListVO;
import com.logpm.distribution.vo.app.DistributionAppSignforVO;
import com.logpm.distribution.vo.app.DistributionAppStockArticleVO;
import com.logpm.oldproject.dto.SignPushDataUnitDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -249,4 +250,20 @@ public interface DistributionSignforMapper extends BaseMapper<DistributionSignfo
* @return
*/
Integer updatesignforByinvn(@Param("deliveryId") Long deliveryId,@Param("reservationId") Long reservationId,@Param("packageNub") Integer packageNub);
/**
* 查询回推老系统包件信息
* @param reservationId
* @param deliveryId
* @return
*/
SignPushDataUnitDTO selectPushOldPackage(@Param("reservationId") Long reservationId,@Param("deliveryId") Long deliveryId);
/**
* 推送老系统库存品包件
* @param reservationId
* @param deliveryId
* @return
*/
SignPushDataUnitDTO selectPushOldInventory(@Param("reservationId")Long reservationId, @Param("deliveryId")Long deliveryId);
}

65
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml

@ -1093,4 +1093,69 @@
</if>
</where>
</select>
<select id="selectPushOldPackage" resultType="com.logpm.oldproject.dto.SignPushDataUnitDTO">
SELECT
ldpl.id AS id,
ldpl.warehouse_id AS warehouse_id,
lddl.id AS distribution_id,
lddl.train_number AS trans_no,
ldpl.waybill_number AS waybill_no,
ldpl.order_code AS orderSelfNum,
ldpl.order_package_code AS unitNo,
ldpl.quantity AS num,
ldl.signfor_state AS type,
ldl.scan_time AS loading_time,
ldl.signing_time AS sign_time,
IF
( ldl.id IS NOT NULL, 1, ldl.id ) AS is_loading,
1 is_out,
ldpl.conditions AS goods_type,
ldl.received_quantity AS sign_num,
5 AS broke_state
FROM
logpm_distribution_loadscan AS ldl
INNER JOIN logpm_distribution_delivery_list AS lddl ON lddl.id = ldl.delivery_id
AND lddl.is_deleted = 0
INNER JOIN logpm_distribution_parcel_list AS ldpl ON ldl.package_id = ldpl.id
AND ldpl.is_deleted = 0
WHERE
ldl.reservation_id = #{resservationId}
AND ldl.delivery_id = #{deliveryId}
AND ldl.scan_status != 1
AND ldl.is_deleted = 0
</select>
<select id="selectPushOldInventory" resultType="com.logpm.oldproject.dto.SignPushDataUnitDTO">
SELECT
ldsl.id AS id,
ldsl.warehouse_id AS warehouse_id,
lddl.id AS distribution_id,
lddl.train_number AS trans_no,
ldsl.incoming_batch AS waybill_no,
lddl.order_code AS orderSelfNum,
ldsld.stock_package_code AS unitNo,
ldl.signfor_state AS type,
IF
( ldl.id IS NOT NULL, 1, ldl.id ) AS is_loading,
ldl.scan_time AS loading_time,
ldl.signing_time AS sign_time,
1 AS is_out,
ldsl.quantity_stock AS num,
3 AS goods_type,
ldl.received_quantity AS sign_num,
4 AS broke_state
FROM
logpm_distribution_loadscaninvn AS ldl
LEFT JOIN logpm_distribution_delivery_list AS lddl ON ldl.delivery_id = lddl.id
AND lddl.is_deleted = 0
LEFT JOIN logpm_dis_stock_list_detail AS ldsld ON ldsld.reservation_id = ldl.reservation_id
AND ldl.inventory_id = ldsld.stock_list_id
AND ldsld.is_deleted = 0
LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldl.inventory_id
AND ldsl.is_deleted = 0
WHERE
ldl.delivery_id = #{deliveryId}
AND ldl.reservation_id = #{reservationId}
AND ldl.scan_status != 1
AND ldl.signfor_state = 2
</select>
</mapper>

113
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushDataQueueHandler.java

@ -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);
}
}

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java

@ -38,7 +38,6 @@ import java.util.Map;
public interface IDistributionReservationService extends BaseService<DistributionReservationEntity> {
/**
* 自定义分页
*
* @param page
* @param distrbutionReservation
* @return

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

@ -5500,9 +5500,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return Resp.scanFail("该托盘无货物","该托盘无货物");
}
boolean isAll = goodsLsit.stream().allMatch(good -> good.getAssociationType().equals(3));
if (isAll){
int size = goodsLsit.stream().map(WarehouseTrayGoodsEntity::getAssociationValue).distinct().collect(Collectors.toList()).size();
boolean isAll = goodsLsit.stream().allMatch(good -> good.getAssociationType().equals("3"));
if (!isAll){
int size = goodsLsit.stream().map(WarehouseTrayGoodsEntity::getAssociationType).distinct().collect(Collectors.toList()).size();
log.error("#############托盘存在多种货物类型,货物种类:{}",size);
return Resp.scanFail("该托盘存在多种货物","该托盘存在多种货物");
}
@ -5555,14 +5555,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
switch (conditions){
case 1:
//订制品
List<DistributionParcelListEntity> parcelListEntities = baseMapper.selectPackageListByDeliveryListId(deliveryId);
if (Func.isNotEmpty(parcelListEntities)){
if (parcelListEntities.size() == deliveryListEntity.getDeliveryNumber()){
//该配送任务下只有一个包件,那么就只会存在一个预约,此时就该进行所有的包件滞留并且进行删除
}
}
break;
case 2:
//库存品

Loading…
Cancel
Save