|
|
@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import cn.hutool.core.util.NumberUtil; |
|
|
|
import cn.hutool.core.util.NumberUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import cn.hutool.json.JSONObject; |
|
|
|
import cn.hutool.json.JSONObject; |
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
@ -30,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.HashSet; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
import java.util.Set; |
|
|
@ -80,24 +82,30 @@ public class PlanReportListener implements ReportService { |
|
|
|
if (CollUtil.isNotEmpty(qualityDeliverEntities)) { |
|
|
|
if (CollUtil.isNotEmpty(qualityDeliverEntities)) { |
|
|
|
cmpMap = qualityDeliverEntities.stream() |
|
|
|
cmpMap = qualityDeliverEntities.stream() |
|
|
|
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.CMP.getCode())) |
|
|
|
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.CMP.getCode())) |
|
|
|
|
|
|
|
.filter(item -> StrUtil.isNotEmpty(item.getOrderPackageCode())) |
|
|
|
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getOrderPackageCode())); |
|
|
|
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getOrderPackageCode())); |
|
|
|
ltlMap = qualityDeliverEntities.stream() |
|
|
|
ltlMap = qualityDeliverEntities.stream() |
|
|
|
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.LTL.getCode())) |
|
|
|
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.LTL.getCode())) |
|
|
|
|
|
|
|
.filter(item -> StrUtil.isNotEmpty(item.getCategory()) && StrUtil.isNotEmpty(item.getOrderCode())) |
|
|
|
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getCategory() + item.getOrderCode())); |
|
|
|
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getCategory() + item.getOrderCode())); |
|
|
|
invMap = qualityDeliverEntities.stream() |
|
|
|
invMap = qualityDeliverEntities.stream() |
|
|
|
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.INV.getCode())) |
|
|
|
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.INV.getCode())) |
|
|
|
|
|
|
|
.filter(item -> StrUtil.isNotEmpty(item.getPlanReservationCode()) && StrUtil.isNotEmpty(item.getMallName()) && StrUtil.isNotEmpty(item.getMaterielCode())) |
|
|
|
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getMallName() + item.getMaterielCode())); |
|
|
|
.collect(Collectors.groupingBy(item -> item.getPlanReservationCode() + item.getMallName() + item.getMaterielCode())); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
// 没有查询到,延迟30秒重新推送
|
|
|
|
// 没有查询到,延迟10秒重新推送
|
|
|
|
factoryDataClient.sendMessage(SendMsg.builder() |
|
|
|
factoryDataClient.sendMessage(SendMsg.builder() |
|
|
|
.exchange(FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE_DELAY) |
|
|
|
.exchange(FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE_DELAY) |
|
|
|
.routingKey(null) |
|
|
|
.routingKey(null) |
|
|
|
.message(msg) |
|
|
|
.message(msg) |
|
|
|
.delay(30000) |
|
|
|
.delay(10000) |
|
|
|
.build()); |
|
|
|
.build()); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Set<String> cmpSet = new HashSet<>(); |
|
|
|
|
|
|
|
Set<String> ltlSet = new HashSet<>(); |
|
|
|
|
|
|
|
Set<String> invSet = new HashSet<>(); |
|
|
|
for (ReservationVO reservationVO : reservationVOList) { |
|
|
|
for (ReservationVO reservationVO : reservationVOList) { |
|
|
|
String reservationCode = reservationVO.getReservationCode(); |
|
|
|
String reservationCode = reservationVO.getReservationCode(); |
|
|
|
List<PackageData> details = reservationVO.getPackageDataList(); |
|
|
|
List<PackageData> details = reservationVO.getPackageDataList(); |
|
|
@ -130,6 +138,9 @@ public class PlanReportListener implements ReportService { |
|
|
|
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); |
|
|
|
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(StrUtil.isNotEmpty(detail.getPackageCode())){ |
|
|
|
|
|
|
|
cmpSet.add(reservationCode + detail.getPackageCode()); |
|
|
|
|
|
|
|
} |
|
|
|
} else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { |
|
|
|
} else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) { |
|
|
|
qualityDeliverEntity.setOrderCode(detail.getOrderCode()); |
|
|
|
qualityDeliverEntity.setOrderCode(detail.getOrderCode()); |
|
|
|
qualityDeliverEntity.setCategory(detail.getProductName()); |
|
|
|
qualityDeliverEntity.setCategory(detail.getProductName()); |
|
|
@ -142,6 +153,9 @@ public class PlanReportListener implements ReportService { |
|
|
|
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); |
|
|
|
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(StrUtil.isNotEmpty(detail.getProductName()) && StrUtil.isNotEmpty(detail.getOrderCode())){ |
|
|
|
|
|
|
|
ltlSet.add(reservationCode + detail.getProductName() + detail.getOrderCode()); |
|
|
|
|
|
|
|
} |
|
|
|
} else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { |
|
|
|
} else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) { |
|
|
|
qualityDeliverEntity.setBizCode(reservationVO.getReservationCode()); |
|
|
|
qualityDeliverEntity.setBizCode(reservationVO.getReservationCode()); |
|
|
|
qualityDeliverEntity.setIncomingBatch(detail.getPickupBatch()); |
|
|
|
qualityDeliverEntity.setIncomingBatch(detail.getPickupBatch()); |
|
|
@ -165,36 +179,31 @@ public class PlanReportListener implements ReportService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(StrUtil.isNotEmpty(detail.getMallName()) && StrUtil.isNotEmpty(detail.getMaterialCode())){ |
|
|
|
|
|
|
|
invSet.add(reservationCode + detail.getMallName() + detail.getMaterialCode()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 系统中有的包件在当前不存在,则删除
|
|
|
|
} |
|
|
|
Set<String> cmpSet = details.stream() |
|
|
|
for (Map.Entry<String, List<QualityDeliverEntity>> entry : cmpMap.entrySet()) { |
|
|
|
.filter(item -> ObjectUtil.equals(item.getPackageType(), PackageTypeEnums.CMP)) |
|
|
|
String key = entry.getKey(); |
|
|
|
.map(i -> reservationCode + i.getPackageCode()).collect(Collectors.toSet()); |
|
|
|
if (!cmpSet.contains(key)) { |
|
|
|
for (Map.Entry<String, List<QualityDeliverEntity>> entry : cmpMap.entrySet()) { |
|
|
|
sendReport(entry.getValue().get(0), BizOperationEnums.DELETE); |
|
|
|
String key = entry.getKey(); |
|
|
|
|
|
|
|
if (!cmpSet.contains(key)) { |
|
|
|
|
|
|
|
sendReport(entry.getValue().get(0), BizOperationEnums.DELETE); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
Set<String> ltlSet = details.stream().filter(item -> ObjectUtil.equals(item.getPackageType(), PackageTypeEnums.LTL)) |
|
|
|
} |
|
|
|
.map(i -> reservationCode + i.getProductName() + i.getOrderCode()).collect(Collectors.toSet()); |
|
|
|
for (Map.Entry<String, List<QualityDeliverEntity>> entry : ltlMap.entrySet()) { |
|
|
|
for (Map.Entry<String, List<QualityDeliverEntity>> entry : ltlMap.entrySet()) { |
|
|
|
String key = entry.getKey(); |
|
|
|
String key = entry.getKey(); |
|
|
|
if (!ltlSet.contains(key)) { |
|
|
|
if (!ltlSet.contains(key)) { |
|
|
|
sendReport(entry.getValue().get(0), BizOperationEnums.DELETE); |
|
|
|
sendReport(entry.getValue().get(0), BizOperationEnums.DELETE); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
Set<String> invSet = details.stream().filter(item -> ObjectUtil.equals(item.getPackageType(), PackageTypeEnums.INV)) |
|
|
|
} |
|
|
|
.map(i -> reservationCode + i.getMallName() + i.getMaterialCode()).collect(Collectors.toSet()); |
|
|
|
for (Map.Entry<String, List<QualityDeliverEntity>> entry : invMap.entrySet()) { |
|
|
|
for (Map.Entry<String, List<QualityDeliverEntity>> entry : invMap.entrySet()) { |
|
|
|
String key = entry.getKey(); |
|
|
|
String key = entry.getKey(); |
|
|
|
if (!invSet.contains(key)) { |
|
|
|
if (!invSet.contains(key)) { |
|
|
|
List<QualityDeliverEntity> value = entry.getValue(); |
|
|
|
List<QualityDeliverEntity> value = entry.getValue(); |
|
|
|
for (QualityDeliverEntity entity : value) { |
|
|
|
for (QualityDeliverEntity entity : value) { |
|
|
|
sendReport(entity, BizOperationEnums.DELETE); |
|
|
|
sendReport(entity, BizOperationEnums.DELETE); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|