Browse Source

feat(all): 车次成本明细报表

1 修改报表逻辑
pre-production
zhaoqiaobo 2 months ago
parent
commit
ef37fe14fb
  1. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java
  2. 33
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java
  3. 21
      blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionReservationClient.java

@ -22,7 +22,6 @@ import com.logpm.distribution.dto.DistributionCancelReservationPackageDTO;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.service.IDistributionNodeWorkService;
import com.logpm.distribution.service.IDistributionReservationService;
import com.logpm.distribution.vo.DistributionRetentionScanVo;
import lombok.AllArgsConstructor;
import org.springblade.common.model.NodeFanoutMsg;
import org.springblade.common.model.ReservationVO;
@ -31,7 +30,6 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

33
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java

@ -77,9 +77,28 @@ public class PlanReportListener implements ReportService {
Map<String, List<QualityDeliverEntity>> cmpMap = new HashMap<>();
Map<String, List<QualityDeliverEntity>> ltlMap = new HashMap<>();
Map<String, List<QualityDeliverEntity>> invMap = new HashMap<>();
Integer totalNum = 0;
for (ReservationVO reservationVO : reservationVOList) {
List<PackageData> details = reservationVO.getPackageDataList();
if (CollUtil.isNotEmpty(details)) {
totalNum = totalNum + 1;
}
}
if (CollUtil.isNotEmpty(reservationCodeSet)) {
List<QualityDeliverEntity> qualityDeliverEntities = qualityDeliverService.list(Wrappers.<QualityDeliverEntity>lambdaQuery().in(QualityDeliverEntity::getPlanReservationCode, reservationCodeSet));
if (CollUtil.isNotEmpty(qualityDeliverEntities)) {
if (bizOperation.equals(BizOperationEnums.ADD)) {
if (!NumberUtil.equals(qualityDeliverEntities.size(), totalNum)) {
// 没有查询到,延迟10秒重新推送
factoryDataClient.sendMessage(SendMsg.builder()
.exchange(FanoutConstants.distribution.DeliveryAndPlan.EXCHANGE_DELAY)
.routingKey(null)
.message(msg)
.delay(10000)
.build());
return;
}
}
cmpMap = qualityDeliverEntities.stream()
.filter(item -> NumberUtil.equals(item.getConditions(), PackageTypeEnums.CMP.getCode()))
.filter(item -> StrUtil.isNotEmpty(item.getOrderPackageCode()))
@ -139,7 +158,7 @@ public class PlanReportListener implements ReportService {
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY);
}
}
if(StrUtil.isNotEmpty(detail.getPackageCode())){
if (StrUtil.isNotEmpty(detail.getPackageCode())) {
cmpSet.add(reservationCode + detail.getPackageCode());
}
} else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.LTL)) {
@ -154,7 +173,7 @@ public class PlanReportListener implements ReportService {
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY);
}
}
if(StrUtil.isNotEmpty(detail.getProductName()) && StrUtil.isNotEmpty(detail.getOrderCode())){
if (StrUtil.isNotEmpty(detail.getProductName()) && StrUtil.isNotEmpty(detail.getOrderCode())) {
ltlSet.add(reservationCode + detail.getProductName() + detail.getOrderCode());
}
} else if (ObjectUtil.equals(detail.getPackageType(), PackageTypeEnums.INV)) {
@ -169,7 +188,7 @@ public class PlanReportListener implements ReportService {
if (CollUtil.isNotEmpty(qualityDeliverEntities)) {
if (BizOperationEnums.DELETE.equals(bizOperation)) {
for (QualityDeliverEntity deliverEntity : qualityDeliverEntities) {
if(!invedSet.contains(deliverEntity.getId())){
if (!invedSet.contains(deliverEntity.getId())) {
qualityDeliverEntity.setId(deliverEntity.getId());
sendReport(qualityDeliverEntity, BizOperationEnums.DELETE);
}
@ -177,7 +196,7 @@ public class PlanReportListener implements ReportService {
}
} else {
for (QualityDeliverEntity deliverEntity : qualityDeliverEntities) {
if(!invedSet.contains(deliverEntity.getId())){
if (!invedSet.contains(deliverEntity.getId())) {
qualityDeliverEntity.setId(deliverEntity.getId());
sendReport(qualityDeliverEntity, BizOperationEnums.MODIFY);
}
@ -186,7 +205,7 @@ public class PlanReportListener implements ReportService {
}
}
}
if(StrUtil.isNotEmpty(detail.getMallName()) && StrUtil.isNotEmpty(detail.getMaterialCode())){
if (StrUtil.isNotEmpty(detail.getMallName()) && StrUtil.isNotEmpty(detail.getMaterialCode())) {
invSet.add(reservationCode + detail.getMallName() + detail.getMaterialCode());
}
}
@ -225,10 +244,6 @@ public class PlanReportListener implements ReportService {
.build();
String exchange = ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE;
String routKey = ReportConstants.REPORT_QUALITY_DELIVER_ROUTINGKEY;
if (operationEnums.equals(BizOperationEnums.ADD)) {
exchange = ReportConstants.REPORT_QUALITY_DELIVER_ADD_EXCHANGE;
routKey = ReportConstants.REPORT_QUALITY_DELIVER_ADD_ROUTINGKEY;
}
factoryDataClient.sendMessage(SendMsg.builder()
.exchange(exchange)
.routingKey(routKey)

21
blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

@ -61,9 +61,11 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -438,22 +440,13 @@ public class FactoryXxlJob {
// 走新系统入库
if (collect.size() > 0) {
List<cn.hutool.json.JSONObject> advances = new ArrayList<>();
Set<String> orderPackageSet = new HashSet<>();
collect.forEach((k, v) -> {
List<cn.hutool.json.JSONObject> packageList = new ArrayList<>();
List<StaorderPackagesEntity> staorderPackagesList = staorderPackagesService.list(Wrappers.<StaorderPackagesEntity>query().lambda()
.eq(StaorderPackagesEntity::getIdentification, "2")
.eq(StaorderPackagesEntity::getOrderId, k)
);
// 订单 order_id +包件 packagenum 重复 则剔除数据
staorderPackagesList = staorderPackagesList.stream()
.collect(Collectors.collectingAndThen(
Collectors.toMap(
sp -> sp.getOrderId() + sp.getPackagenum(), // 键
sp -> sp, // 值
(existing, replacement) -> existing // 处理重复键的情况,这里选择保留第一个
),
map -> new ArrayList<>(map.values())
));
// 查询基地名称
StationlinenumEntity stationlinenumEntity = stationlinenumService.selectNameByNumber(v.getTcWlb006());
String siteName = Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName();
@ -514,7 +507,11 @@ public class FactoryXxlJob {
Long finalStartWarehouseId = startWarehouseId;
String finalStartWarehouseName = startWarehouseName;
String finalTenantId = tenantId;
groupByPackages.forEach(gpd -> {
for (GroupByPackagesDTO gpd : groupByPackages) {
if(CollUtil.contains(orderPackageSet,gpd.getPackagenum())){
continue;
}
orderPackageSet.add(gpd.getPackagenum());
// 封装包件
TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity();
advanceDetailEntity.setWarehouseId(finalStartWarehouseId);
@ -553,7 +550,7 @@ public class FactoryXxlJob {
advanceDetailEntity.setIsDeleted(0);
cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceDetailEntity);
packageList.add(entries);
});
}
// 转成json对象,然后将包件明细放到detail中
cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceEntity);
entries.set("details", JSONUtil.toJsonStr(packageList));

Loading…
Cancel
Save