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. 23
      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.entity.DistributionReservationEntity;
import com.logpm.distribution.service.IDistributionNodeWorkService; import com.logpm.distribution.service.IDistributionNodeWorkService;
import com.logpm.distribution.service.IDistributionReservationService; import com.logpm.distribution.service.IDistributionReservationService;
import com.logpm.distribution.vo.DistributionRetentionScanVo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.model.NodeFanoutMsg; import org.springblade.common.model.NodeFanoutMsg;
import org.springblade.common.model.ReservationVO; 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.mp.support.Query;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;

23
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>> cmpMap = new HashMap<>();
Map<String, List<QualityDeliverEntity>> ltlMap = new HashMap<>(); Map<String, List<QualityDeliverEntity>> ltlMap = new HashMap<>();
Map<String, List<QualityDeliverEntity>> invMap = 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)) { if (CollUtil.isNotEmpty(reservationCodeSet)) {
List<QualityDeliverEntity> qualityDeliverEntities = qualityDeliverService.list(Wrappers.<QualityDeliverEntity>lambdaQuery().in(QualityDeliverEntity::getPlanReservationCode, reservationCodeSet)); List<QualityDeliverEntity> qualityDeliverEntities = qualityDeliverService.list(Wrappers.<QualityDeliverEntity>lambdaQuery().in(QualityDeliverEntity::getPlanReservationCode, reservationCodeSet));
if (CollUtil.isNotEmpty(qualityDeliverEntities)) { 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() 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())) .filter(item -> StrUtil.isNotEmpty(item.getOrderPackageCode()))
@ -225,10 +244,6 @@ public class PlanReportListener implements ReportService {
.build(); .build();
String exchange = ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE; String exchange = ReportConstants.REPORT_QUALITY_DELIVER_EXCHANGE;
String routKey = ReportConstants.REPORT_QUALITY_DELIVER_ROUTINGKEY; 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() factoryDataClient.sendMessage(SendMsg.builder()
.exchange(exchange) .exchange(exchange)
.routingKey(routKey) .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.Arrays;
import java.util.Calendar; import java.util.Calendar;
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.Objects; import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -438,22 +440,13 @@ public class FactoryXxlJob {
// 走新系统入库 // 走新系统入库
if (collect.size() > 0) { if (collect.size() > 0) {
List<cn.hutool.json.JSONObject> advances = new ArrayList<>(); List<cn.hutool.json.JSONObject> advances = new ArrayList<>();
Set<String> orderPackageSet = new HashSet<>();
collect.forEach((k, v) -> { collect.forEach((k, v) -> {
List<cn.hutool.json.JSONObject> packageList = new ArrayList<>(); List<cn.hutool.json.JSONObject> packageList = new ArrayList<>();
List<StaorderPackagesEntity> staorderPackagesList = staorderPackagesService.list(Wrappers.<StaorderPackagesEntity>query().lambda() List<StaorderPackagesEntity> staorderPackagesList = staorderPackagesService.list(Wrappers.<StaorderPackagesEntity>query().lambda()
.eq(StaorderPackagesEntity::getIdentification, "2") .eq(StaorderPackagesEntity::getIdentification, "2")
.eq(StaorderPackagesEntity::getOrderId, k) .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()); StationlinenumEntity stationlinenumEntity = stationlinenumService.selectNameByNumber(v.getTcWlb006());
String siteName = Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName(); String siteName = Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName();
@ -514,7 +507,11 @@ public class FactoryXxlJob {
Long finalStartWarehouseId = startWarehouseId; Long finalStartWarehouseId = startWarehouseId;
String finalStartWarehouseName = startWarehouseName; String finalStartWarehouseName = startWarehouseName;
String finalTenantId = tenantId; 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(); TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity();
advanceDetailEntity.setWarehouseId(finalStartWarehouseId); advanceDetailEntity.setWarehouseId(finalStartWarehouseId);
@ -553,7 +550,7 @@ public class FactoryXxlJob {
advanceDetailEntity.setIsDeleted(0); advanceDetailEntity.setIsDeleted(0);
cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceDetailEntity); cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceDetailEntity);
packageList.add(entries); packageList.add(entries);
}); }
// 转成json对象,然后将包件明细放到detail中 // 转成json对象,然后将包件明细放到detail中
cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceEntity); cn.hutool.json.JSONObject entries = JSONUtil.parseObj(advanceEntity);
entries.set("details", JSONUtil.toJsonStr(packageList)); entries.set("details", JSONUtil.toJsonStr(packageList));

Loading…
Cancel
Save