Browse Source

Merge remote-tracking branch 'origin/dist.1.2.0' into dist.1.2.0

# Conflicts:
#	blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
#	blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
dist.1.3.0
汤建军 7 months ago
parent
commit
f24f46201f
  1. 3
      blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java
  2. 1
      blade-biz-common/src/main/java/org/springblade/common/enums/BrandEnums.java
  3. 22
      blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java
  4. 11
      blade-biz-common/src/main/java/org/springblade/common/model/NodeFanoutMsg.java
  5. 18
      blade-biz-common/src/main/java/org/springblade/common/model/PackageData.java
  6. 3
      blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java
  7. 492
      blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java
  8. 36
      blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java
  9. 5
      blade-service/logpm-distribution/pom.xml
  10. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
  11. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
  12. 154
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  13. 125
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java
  14. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  15. 17
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java
  16. 49
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  17. 172
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionNodeWorkServiceImpl.java
  18. 151
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

3
blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java

@ -170,6 +170,9 @@ public abstract class FanoutConstants {
}
}
interface signfor {
String EXCHANGE = "fanout.distribution.signfor" + ModuleNameConstant.DEVAUTH;

1
blade-biz-common/src/main/java/org/springblade/common/enums/BrandEnums.java

@ -20,6 +20,7 @@ public enum BrandEnums implements IDict<Integer> {
OLO(8, "我乐"),
MHJ(9, "曼好家"),
LINSY(10, "林氏家居"),
;
BrandEnums(Integer code, String value) {

22
blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java

@ -51,19 +51,19 @@ public class LauncherServiceImpl implements LauncherService {
PropsUtil.setProperty(props, "spring.cloud.nacos.config.username","nacos");
PropsUtil.setProperty(props, "spring.cloud.nacos.config.password","Nacos123123");
// dubbo注册
PropsUtil.setProperty(props, "dubbo.application.name", appName);
PropsUtil.setProperty(props, "dubbo.application.qos.enable", "false");
PropsUtil.setProperty(props, "dubbo.protocol.name", "dubbo");
PropsUtil.setProperty(props, "dubbo.registry.address", "nacos://" + LauncherConstant.nacosAddr(profile));
PropsUtil.setProperty(props, "dubbo.version", AppConstant.APPLICATION_VERSION);
PropsUtil.setProperty(props, "dubbo.scan.base-packages", AppConstant.BASE_PACKAGES);
// PropsUtil.setProperty(props, "dubbo.application.name", appName);
// PropsUtil.setProperty(props, "dubbo.application.qos.enable", "false");
// PropsUtil.setProperty(props, "dubbo.protocol.name", "dubbo");
// PropsUtil.setProperty(props, "dubbo.registry.address", "nacos://" + LauncherConstant.nacosAddr(profile));
// PropsUtil.setProperty(props, "dubbo.version", AppConstant.APPLICATION_VERSION);
// PropsUtil.setProperty(props, "dubbo.scan.base-packages", AppConstant.BASE_PACKAGES);
// seata注册地址
PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile));
// seata注册group格式
PropsUtil.setProperty(props, "seata.tx-service-group", LauncherConstant.seataServiceGroup(appName));
// seata配置服务group
PropsUtil.setProperty(props, "seata.service.vgroup-mapping.".concat(LauncherConstant.seataServiceGroup(appName)), LauncherConstant.DEFAULT_MODE);
// PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile));
// // seata注册group格式
// PropsUtil.setProperty(props, "seata.tx-service-group", LauncherConstant.seataServiceGroup(appName));
// // seata配置服务group
// PropsUtil.setProperty(props, "seata.service.vgroup-mapping.".concat(LauncherConstant.seataServiceGroup(appName)), LauncherConstant.DEFAULT_MODE);
// seata注册模式配置
// PropsUtil.setProperty(props, "seata.registry.type", LauncherConstant.NACOS_MODE);
// PropsUtil.setProperty(props, "seata.registry.nacos.server-addr", LauncherConstant.nacosAddr(profile));

11
blade-biz-common/src/main/java/org/springblade/common/model/NodeFanoutMsg.java

@ -50,6 +50,17 @@ public class NodeFanoutMsg implements Serializable {
* 当前仓
*/
private String warehouse;
/**
* 当前仓ID
*/
private Long warehouseId;
/**
* 作业租户
*/
private String tenantId;
/**
* 主单数据

18
blade-biz-common/src/main/java/org/springblade/common/model/PackageData.java

@ -52,15 +52,29 @@ public class PackageData implements Serializable {
/**
* 数量
*/
private String number;
private Integer number;
/**
* 包件类型 订制品库存品零担
*/
private PackageTypeEnums packageType;
/**
* 是否有无数据
*/
private Boolean isHaveData;
/**
* 品牌
*/
private BrandEnums brand;
private String brand;
/**
* 结算品类
* 零担的开单品类
*
*/
private String productName;
}

3
blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java

@ -127,5 +127,8 @@ public interface IBasicdataWarehouseClient {
@GetMapping(API_PREFIX + "/findWarehouseList")
List<JSONObject> findWarehouseList(@RequestParam("warehouseName") String warehouseName);
@GetMapping(API_PREFIX + "/findWarehousesByIds")
List<BasicdataWarehouseEntity> findWarehousesByIds(@RequestParam("ids") List<Long> ids);
}

492
blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java

@ -0,0 +1,492 @@
package com.logpm.report.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springblade.core.tenant.mp.TenantEntity;
import java.math.BigDecimal;
import java.util.Date;
/**
* 配送明细
*
* @author zqb
* @create 2024-08-23
*/
@Data
@TableName("logpm_quality_deliver")
@ApiModel(value = "QualityDeliver对象", description = "配送明细")
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QualityDeliverEntity extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 事业线
*/
@ApiModelProperty(value = "事业线")
private String businessUnit;
/**
* 作业仓库
*/
@ApiModelProperty(value = "作业仓库")
private String warehouseName;
/**
* 作业仓库ID
*/
@ApiModelProperty(value = "作业仓库ID")
private Long warehouseId;
/**
* 品牌
*/
@ApiModelProperty(value = "品牌")
private String brandName;
/**
* 客户名称
*/
@ApiModelProperty(value = "客户名称")
private String customName;
/**
* 客户电话
*/
@ApiModelProperty(value = "客户电话")
private String customPhone;
/**
* 客户地址
*/
@ApiModelProperty(value = "客户地址")
private String customAddress;
/**
* 运单发货单位
*/
@ApiModelProperty(value = "运单发货单位")
private String shipperUnit;
/**
* 运单发货人
*/
@ApiModelProperty(value = "运单发货人")
private String shipperPerson;
/**
* 运单发货电话
*/
@ApiModelProperty(value = "运单发货电话")
private String shipperMobile;
/**
* 运单发货地址
*/
@ApiModelProperty(value = "运单发货地址")
private String shipperAddress;
/**
* 运单收货单位
*/
@ApiModelProperty(value = "运单收货单位")
private String consigneeUnit;
/**
* 运单收货人
*/
@ApiModelProperty(value = "运单收货人")
private String consigneePerson;
/**
* 运单收货电话
*/
@ApiModelProperty(value = "运单收货电话")
private String consigneeMobile;
/**
* 运单收货地址
*/
@ApiModelProperty(value = "运单收货地址")
private String consigneeAddress;
/**
* 运单号
*/
@ApiModelProperty(value = "运单号")
private String waybillNumber;
/**
* 商场名称
*/
@ApiModelProperty(value = "商场名称")
private String mallName;
/**
* 商场ID
*/
@ApiModelProperty(value = "商场ID")
private Long mallId;
/**
* 入库批次号
*/
@ApiModelProperty(value = "入库批次号")
private String incomingBatch;
/**
* 订单号
*/
@ApiModelProperty(value = "订单号")
private String orderCode;
/**
* 包条码
*/
@ApiModelProperty(value = "包条码")
private String orderPackageCode;
/**
* 客户车次号
*/
@ApiModelProperty(value = "客户车次号")
private String trainNumber;
/**
* 数据类型 1 定制品 2 库存品 3零担
*/
@ApiModelProperty(value = "数据类型 1 定制品 2 库存品 3零担")
private Integer conditions;
/**
* 一级品
*/
@ApiModelProperty(value = "一级品")
private String firstsProduct;
/**
* 二级品
*/
@ApiModelProperty(value = "二级品")
private String secondProduct;
/**
* 三级品
*/
@ApiModelProperty(value = "三级品")
private String thirdProduct;
/**
* 体积
*/
@ApiModelProperty(value = "体积")
private BigDecimal volume;
/**
* 重量
*/
@ApiModelProperty(value = "重量")
private BigDecimal weight;
/**
* 成本结算品类
*/
@ApiModelProperty(value = "成本结算品类")
private String costCategory;
/**
* 收入结算品类
*/
@ApiModelProperty(value = "收入结算品类")
private String revenueCategory;
/**
* 物料信息
*/
@ApiModelProperty(value = "物料信息")
private String materielName;
/**
* 物料编码
*/
@ApiModelProperty(value = "物料编码")
private String materielCode;
/**
* 始发仓
*/
@ApiModelProperty(value = "始发仓")
private String beginWarehouseName;
/**
* 始发仓入库时间
*/
@ApiModelProperty(value = "始发仓入库时间")
private Date beginWarehouseInTime;
/**
* 始发仓发货时间
*/
@ApiModelProperty(value = "始发仓发货时间")
private Date beginWarehouseOutTime;
/**
* 末端仓入库时间
*/
@ApiModelProperty(value = "末端仓入库时间")
private String endWarehouseInTime;
/**
* 计划配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号
*/
@ApiModelProperty(value = "计划配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号")
private String planTrainNumber;
/**
* 计划预约单号 只有商市配自提采用自提车次号 三方中转采用三方中转车次号
*/
@ApiModelProperty(value = "计划预约单号 只有商市配,自提采用自提车次号 三方中转采用三方中转车次号")
private String planReservationCode;
/**
* 配送日期
*/
@ApiModelProperty(value = "配送日期")
private Date deliveryTime;
/**
* 配送类型2市配 1商配 3自提 4三方中转5直发商家 签收节点进行驱动) 没有这个字段
*/
@ApiModelProperty(value = "配送类型2市配 1商配 3自提 4三方中转(5直发商家 【签收节点进行驱动】) 没有这个字段")
private String deliveryType;
/**
* 配送种类
*/
@ApiModelProperty(value = "配送种类")
private String deliveryKind;
/**
* 配送车辆 存在多个逗号拼接
*/
@ApiModelProperty(value = "配送车辆 存在多个逗号拼接")
private String vehicleName;
/**
* 配送司机 存在多个逗号拼接
*/
@ApiModelProperty(value = "配送司机 存在多个逗号拼接")
private String driverName;
/**
* 配送公司
*/
@ApiModelProperty(value = "配送公司")
private String distributionCompany;
/**
* 计划时间
*/
@ApiModelProperty(value = "计划时间")
private Date deliveryPlanTime;
/**
* 计划数量
*/
@ApiModelProperty(value = "计划数量")
private Integer planNum;
/**
* 计划类型新增 补录
*/
@ApiModelProperty(value = "计划类型(新增 补录)")
private String planType;
/**
* 计划人
*/
@ApiModelProperty(value = "计划人")
private String deliveryCreateUserName;
/**
* 备货单号
*/
@ApiModelProperty(value = "备货单号")
private String stockupCode;
/**
* 备货人
*/
@ApiModelProperty(value = "备货人")
private String stockupUserName;
/**
* 备货时间
*/
@ApiModelProperty(value = "备货时间")
private Date stockupFinishTime;
/**
* 备货数量
*/
@ApiModelProperty(value = "备货数量")
private Integer stockNum;
/**
* 备货区
*/
@ApiModelProperty(value = "备货区")
private String stockAllocation;
/**
* 备货类型新增 补录
*/
@ApiModelProperty(value = "备货类型(新增 补录)")
private String stockupType;
/**
* 装车人
*/
@ApiModelProperty(value = "装车人")
private String loadUserName;
/**
* 装车时间
*/
@ApiModelProperty(value = "装车时间")
private Date loadTime;
/**
* 装车配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号
*/
@ApiModelProperty(value = "装车配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号")
private String loadTrainNumber;
/**
* 装车数量
*/
@ApiModelProperty(value = "装车数量")
private Integer loadNum;
/**
* 装车类型按件装车 一键装车 补录
*/
@ApiModelProperty(value = "装车类型(按件装车 一键装车 补录)")
private String loadType;
/**
* 发车人
*/
@ApiModelProperty(value = "发车人")
private String startCarUserName;
/**
* 发车时间
*/
@ApiModelProperty(value = "发车时间")
private String startCarTime;
/**
* 到达人
*/
@ApiModelProperty(value = "到达人")
private String arriveCarUserName;
/**
* 到达时间
*/
@ApiModelProperty(value = "到达时间")
private String arriveCarTime;
/**
* 到达省
*/
@ApiModelProperty(value = "到达省")
private String arriveProvince;
/**
* 到达市
*/
@ApiModelProperty(value = "到达市")
private String arriveCity;
/**
* 到达区/
*/
@ApiModelProperty(value = "到达区/县")
private String arriveDistrict;
/**
* 到达地址
*/
@ApiModelProperty(value = "到达地址")
private String arriveAddress;
/**
* 签收人
*/
@ApiModelProperty(value = "签收人")
private String signUserName;
/**
* 签收时间
*/
@ApiModelProperty(value = "签收时间")
private String signTime;
/**
* 签收状态 1.已签收 0 未签收 -1 已回库 -2 滞留
*/
@ApiModelProperty(value = "签收状态 1.已签收 0 未签收 -1 已回库 -2 滞留")
private String signStatus;
/**
* 签收数量
*/
@ApiModelProperty(value = "签收数量")
private String signNum;
/**
* 签收配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号
*/
@ApiModelProperty(value = "签收配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号")
private String signTrainNumber;
/**
* 签收预约单号 只有商市配自提没有该字段
*/
@ApiModelProperty(value = "签收预约单号 只有商市配,自提没有该字段")
private String signReservationCode;
/**
* 签收车牌
*/
@ApiModelProperty(value = "签收车牌")
private String signCarNumber;
/**
* 签收类型按件签收 批量签收 补录
*/
@ApiModelProperty(value = "签收类型(按件签收 批量签收 补录)")
private String signType;
/**
* 车辆类型
*/
@ApiModelProperty(value = "车辆类型")
private String signCarType;
/**
* 复核人
*/
@ApiModelProperty(value = "复核人")
private String reviewUserName;
/**
* 复核时间 复核时间=回库时间
*/
@ApiModelProperty(value = "复核时间 复核时间=回库时间")
private String reviewTime;
/**
* 滞留人
*/
@ApiModelProperty(value = "滞留人")
private String retentionUserName;
/**
* 滞留时间
*/
@ApiModelProperty(value = "滞留时间")
private String retentionTime;
/**
* 配送成本
*/
@ApiModelProperty(value = "配送成本")
private String distributionCost;
/**
* 分货费成本
*/
@ApiModelProperty(value = "分货费成本")
private String apartCost;
/**
* 上楼费成本
*/
@ApiModelProperty(value = "上楼费成本")
private String apstairsCost;
/**
* 平移费成本
*/
@ApiModelProperty(value = "平移费成本")
private String moveCost;
/**
* 装卸费成本
*/
@ApiModelProperty(value = "装卸费成本")
private String stevedoreCost;
/**
* 公里数成本
*/
@ApiModelProperty(value = "公里数成本")
private String kiloAllowCost;
/**
* 补贴公里数成本
*/
@ApiModelProperty(value = "补贴公里数成本")
private String allowKiloAllowCost;
/**
* 超区公里数成本
*/
@ApiModelProperty(value = "超区公里数成本")
private String ultrAllpwCost;
/**
* 点位补贴成本
*/
@ApiModelProperty(value = "点位补贴成本")
private String pointAllowCost;
/**
* 保底费成本
*/
@ApiModelProperty(value = "保底费成本")
private String guarCost;
/**
* 油费成本
*/
@ApiModelProperty(value = "油费成本")
private String fuelCost;
/**
* 其它成本
*/
@ApiModelProperty(value = "其它成本")
private String otherCost;
}

36
blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java

@ -16,6 +16,9 @@
*/
package com.logpm.basicdata.feign;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -32,14 +35,18 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springblade.system.entity.Dept;
import org.springblade.system.feign.IDeptClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 仓库 Feign实现类
@ -55,6 +62,8 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient {
private final IBasicdataWarehouseService warehouseWarehouseService;
private final IDeptClient deptClient;
private final BladeRedis bladeRedis;
@Override
@ -225,5 +234,32 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient {
return list;
}
@Override
public List<BasicdataWarehouseEntity> findWarehousesByIds(List<Long> ids) {
if(CollUtil.isNotEmpty(ids)){
List<BasicdataWarehouseEntity> list = warehouseWarehouseService.list(Wrappers.<BasicdataWarehouseEntity>lambdaQuery().in(BasicdataWarehouseEntity::getId, ids.stream().collect(Collectors.toSet())));
if(CollUtil.isNotEmpty(list)){
for (BasicdataWarehouseEntity warehouseEntity : list) {
Long department = warehouseEntity.getDepartment();
if(ObjectUtil.isNotNull(department)){
Dept dept = deptClient.findEntityById(department);
if(ObjectUtil.isNotEmpty(dept)){
Integer deptCategory = dept.getDeptCategory();
if(NumberUtil.equals(deptCategory,2)){
warehouseEntity.setBusinessLine(dept.getDeptName());
} else {
Long parentId = dept.getParentId();
Dept parentDept = deptClient.findEntityById(parentId);
warehouseEntity.setBusinessLine(parentDept.getDeptName());
}
}
}
}
return list;
}
}
return Collections.emptyList();
}
}

5
blade-service/logpm-distribution/pom.xml

@ -133,6 +133,11 @@
<artifactId>logpm-business-api</artifactId>
<version>${bladex.project.version}</version>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-report-api</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
</dependencies>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java

@ -351,7 +351,6 @@ public class DistributionDeliveryListController extends BladeController {
@ApiOperation(value = "分页", notes = "customArgs")
public R<?> updateDeliveryList(@RequestBody DistributionDeliveryListDTO deliveryListDTO) {
try{
R<?> result = distributionDeliveryListService.updateDeliveryListInfo(deliveryListDTO);
return result;
}catch (CustomerException e){
@ -409,7 +408,6 @@ public class DistributionDeliveryListController extends BladeController {
*/
@PutMapping("/updateMarketDelivery")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "customArgs")
public R<?> updateMarketDeliveryList(@RequestBody DistributionDeliveryListDTO deliveryListDTO) {
R<?> result = distributionDeliveryListService.updateMarketDeliveryList(deliveryListDTO);
return result;

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

@ -503,7 +503,6 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
List<Map<String,Object>> getBroadcastData(@Param("deliveryId")Long deliveryId,@Param("warehouseId") Long warehouseId);
/**
* 查询PDA司机关联的配送任务
@ -546,6 +545,30 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
*/
List<DistributionParcelNumberVO> selectDeliveryZeroOrderInfoDetail(Long id, Long id1);
/**
* 配送计划内的定制品计划查询
* @param deliveryId
* @param warehouseId
* @return
*/
List<Map<String,Object>> getBroadcastDataByArticles(@Param("deliveryId")Long deliveryId,@Param("warehouseId") Long warehouseId);
/**
* 配送计划内的库存品查询
* @param deliveryId
* @param warehouseId
* @return
*/
List<Map<String,Object>> getBroadcastDataByStock(@Param("deliveryId")Long deliveryId,@Param("warehouseId") Long warehouseId);
/**
* 配送计划内的零担查询
* @param deliveryId
* @param warehouseId
* @return
*/
List<Map<String,Object>> getBroadcastDataByZeroOrder(@Param("deliveryId")Long deliveryId,@Param("warehouseId") Long warehouseId);
/**
* 查询计划中的包件信息
* @param orderPackageCode

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

@ -2249,73 +2249,7 @@
<select id="checkDeliveryStart" resultType="java.lang.Boolean">
SELECT IF(departure_time is null,true,false) FROM logpm_distribution_delivery_self WHERE delivery_id = #{deliveryId} AND is_master = 2
</select>
<select id="getBroadcastData" resultType="java.util.Map">
SELECT
ldpl.order_package_code AS packageCode,
ldpl.order_code AS orderCode,
ldpl.waybill_number AS waybillNumber,
'' AS pickupBatch,
ldpl.material_name AS materialName,
ldpl.material_code AS materialCode,
ldsa.mall_name AS mallName,
ldpl.quantity AS number,
ldsa.brand AS brandName,
IF(ldrp.id is not null,1,null) AS type
FROM
logpm_distribution_delivery_list AS lddl
LEFT JOIN logpm_distribution_signfor AS lds ON lddl.id = lds.delivery_id
LEFT JOIN logpm_distribution_reservation_package AS ldrp ON ldrp.reservation_id = lds.reservation_id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.id = ldrp.parce_list_id
LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldsa.id = ldpl.stock_article_id
WHERE
lddl.id = #{deliveryId}
AND lddl.warehouse_id = #{warehouseId}
AND ldrp.packet_bar_status != 2
UNION ALL
SELECT
ldpl.order_package_code AS packageCode,
ldpl.order_code AS orderCode,
ldpl.waybill_number AS waybillNumber,
IF(ldrzp.id is not null,'',null) AS pickupBatch,
ldpl.material_name AS materialName,
ldpl.material_code AS materialCode,
ldsa.mall_name AS mallName,
ldrzp.quantity AS number,
ldsa.brand AS brandName,
IF(ldrzp.id is not null,3,null) AS type
FROM
logpm_distribution_delivery_list AS lddl
LEFT JOIN logpm_distribution_signfor AS lds ON lddl.id = lds.delivery_id
LEFT JOIN logpm_distribution_reservation_zero_package AS ldrzp ON ldrzp.reservation_id = lds.reservation_id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.id = ldrzp.parcel_list_id
LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldsa.id = ldpl.stock_article_id
WHERE
lddl.id = #{deliveryId}
AND lddl.warehouse_id = #{warehouseId}
AND ldrzp.zero_package_status!=2
UNION ALL
SELECT
ldsld.stock_package_code AS packageCode,
ldpl.order_code AS orderCode,
ldpl.waybill_number AS waybillNumber,
ldsl.incoming_batch AS pickupBatch,
ldsl.description_goods AS materialName,
ldsl.cargo_number AS materialCode,
ldsl.market_name AS mallName,
ldsld.num AS number,
ldsl.brand_name AS brandName,
IF(ldsld.id is not null,3,null) AS type
FROM
logpm_distribution_delivery_list AS lddl
LEFT JOIN logpm_distribution_signfor AS lds ON lddl.id = lds.delivery_id
LEFT JOIN logpm_dis_stock_list_detail AS ldsld ON ldsld.reservation_id = lds.reservation_id
LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.order_package_code = ldsld.stock_package_code
LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldsld.stock_list_id
WHERE
lddl.id = #{deliveryId}
AND lddl.warehouse_id = #{warehouseId}
AND ldsld.stock_package_status != 2
</select>
<select id="selectDistributionNewAppDeliveryListPage"
resultType="com.logpm.distribution.vo.app.DistributionAppDeliveryListVO">
SELECT DISTINCT
@ -2577,6 +2511,92 @@
AND ldrs.stock_article_status in ('1','3')
AND ldrzp.zero_package_status IN ( '1', '3' )
</select>
<select id="getBroadcastDataByArticles" resultType="java.util.Map">
SELECT
ldpl.order_package_code AS packageCode,
ldpl.order_code AS orderCode,
ldpl.waybill_number AS waybillNumber,
'' AS pickupBatch,
ldpl.material_name AS materialName,
ldpl.material_code AS materialCode,
ldsa.mall_name AS mallName,
ldpl.quantity AS number,
ldsa.brand AS brandName
FROM
logpm_distribution_delivery_list lddl
LEFT JOIN logpm_distribution_signfor lds ON lddl.id = lds.delivery_id
AND lds.tenant_id = '627683'
LEFT JOIN logpm_distribution_reservation_package ldrp ON ldrp.reservation_id = lds.reservation_id
AND ldrp.tenant_id = '627683'
LEFT JOIN logpm_distribution_parcel_list ldpl ON ldpl.id = ldrp.parce_list_id
AND ldpl.tenant_id = '627683'
LEFT JOIN logpm_distribution_stock_article ldsa ON ldsa.id = ldpl.stock_article_id
AND ldsa.tenant_id = '627683'
WHERE
lddl.id = #{deliveryId}
AND lddl.warehouse_id = #{warehouseId}
AND ldrp.packet_bar_status != 2
AND lddl.tenant_id = '627683'
</select>
<select id="getBroadcastDataByStock" resultType="java.util.Map">
SELECT
ldsld.stock_package_code AS packageCode,
ldpl.order_code AS orderCode,
ldpl.waybill_number AS waybillNumber,
ldsl.incoming_batch AS pickupBatch,
ldsl.description_goods AS materialName,
ldsl.cargo_number AS materialCode,
ldsl.market_name AS mallName,
ldsld.num AS number,
ldsl.brand_name AS brandName
FROM
logpm_distribution_delivery_list lddl
LEFT JOIN logpm_distribution_signfor lds ON lddl.id = lds.delivery_id
AND lds.tenant_id = '627683'
LEFT JOIN logpm_dis_stock_list_detail ldsld ON ldsld.reservation_id = lds.reservation_id
AND ldsld.tenant_id = '627683'
LEFT JOIN logpm_distribution_parcel_list ldpl ON ldpl.order_package_code = ldsld.stock_package_code
AND ldpl.tenant_id = '627683'
LEFT JOIN logpm_distribution_stock_list ldsl ON ldsl.id = ldsld.stock_list_id
AND ldsl.tenant_id = '627683'
WHERE
lddl.id = #{deliveryId}
AND lddl.warehouse_id = #{warehouseId}
AND ldsld.stock_package_status != 2
AND lddl.tenant_id = '627683'
</select>
<select id="getBroadcastDataByZeroOrder" resultType="java.util.Map">
SELECT
ldpl.order_package_code AS packageCode,
ldpl.order_code AS orderCode,
ldpl.waybill_number AS waybillNumber,
IF
( ldrzp.id IS NOT NULL, '', NULL ) AS pickupBatch,
ldpl.material_name AS materialName,
ldpl.material_code AS materialCode,
ldsa.mall_name AS mallName,
ldrzp.quantity AS number,
ldsa.brand AS brandName,
ldpl.firsts as productName
FROM
logpm_distribution_delivery_list lddl
LEFT JOIN logpm_distribution_signfor lds ON lddl.id = lds.delivery_id
AND lds.tenant_id = '627683'
LEFT JOIN logpm_distribution_reservation_zero_package ldrzp ON ldrzp.reservation_id = lds.reservation_id
AND ldrzp.tenant_id = '627683'
LEFT JOIN logpm_distribution_parcel_list ldpl ON ldpl.id = ldrzp.parcel_list_id
AND ldpl.tenant_id = '627683'
LEFT JOIN logpm_distribution_stock_article ldsa ON ldsa.id = ldpl.stock_article_id
AND ldsa.tenant_id = '627683'
WHERE
lddl.id = #{deliveryId}
AND lddl.warehouse_id = #{warehouseId}
AND ldrzp.zero_package_status != 2
AND lddl.tenant_id = '627683'
</select>
<select id="selectPackageByorderPackageCodeAndDeliveryId"
resultType="java.lang.Long">
SELECT

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

@ -0,0 +1,125 @@
package com.logpm.distribution.receiver.report;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionParcelListService;
import com.logpm.report.entity.QualityDeliverEntity;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.broadcast.FanoutConstants;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.common.enums.PackageTypeEnums;
import org.springblade.common.model.NodeFanoutMsg;
import org.springblade.common.model.PackageData;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 配送计划生成明细报表
*
* @author zhaoqiaobo
* @create 2024-03-18 0:02
*/
@Slf4j
@Component
@AllArgsConstructor
public class PlanReportListener {
@Resource
private IDistributionParcelListService parcelListService;
@Resource
private IDistributionDeliveryListService deliveryListService;
@Resource
private IBasicdataWarehouseClient warehouseClient;
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = FanoutConstants.distribution.plan.QUEUE.REPORT, durable = "true"),
exchange = @Exchange(name = FanoutConstants.distribution.plan.EXCHANGE, type = ExchangeTypes.FANOUT)
))
public void nodeDataPushDelayed(String msg) {
log.info("配送计划生成明细报表: {}", msg);
if (StrUtil.isEmpty(msg)) {
return;
}
NodeFanoutMsg bean = JSONUtil.toBean(msg, NodeFanoutMsg.class);
// Long warehouseId = bean.getWarehouseId();
BizOperationEnums bizOperation = bean.getBizOperation();
List<PackageData> details = bean.getDetails();
Object main = bean.getMain();
// main: {"distributionCompany":"承运商", "driverName":"司机姓名", "id":"任务ID", "kind":"任务类型 1-自主 2-外协", "taskTime":"任务时间", "trainNumber":"车次号","type":"配送类型 1商配 2市配", "vehicleName":"车牌号"}
JSONObject entries = JSONUtil.parseObj(main);
BasicdataWarehouseEntity warehouseEntity = null;
// if (ObjectUtil.isNotEmpty(warehouseId)) {
// List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.findWarehousesByIds(CollUtil.newArrayList(warehouseId));
// if (CollUtil.isNotEmpty(warehouseEntities)) {
// warehouseEntity = warehouseEntities.get(0);
// }
// }
if (BizOperationEnums.ADD.equals(bizOperation)) {
List<QualityDeliverEntity> entities = new ArrayList<>();
// 新增
// 查询出基础信息插入基础表
// 订制品 库存品 零担
if (CollUtil.isNotEmpty(details)) {
// 按 packageType 分组
Map<PackageTypeEnums, List<PackageData>> detailMap = details.stream().collect(Collectors.groupingBy(PackageData::getPackageType));
if (detailMap.containsKey(PackageTypeEnums.CMP)) {
// 订制品
List<PackageData> packageData = detailMap.get(PackageTypeEnums.CMP);
// List<DistributionParcelListEntity> listByOrderPackageCode = parcelListService.findListByOrderPackageCode(packageData.stream().map(PackageData::getPackageCode).collect(Collectors.toList()), bean.getWarehouseId());
Map<String, DistributionParcelListEntity> parcelListMap = null;
// if (CollUtil.isNotEmpty(listByOrderPackageCode)) {
// 转map
// parcelListMap = listByOrderPackageCode.stream().collect(Collectors.toMap(DistributionParcelListEntity::getOrderPackageCode, e -> e));
// }
for (PackageData packageDatum : packageData) {
QualityDeliverEntity entity = QualityDeliverEntity.builder()
.orderCode(packageDatum.getOrderCode())
.businessUnit(ObjectUtil.isNotEmpty(warehouseEntity) ? warehouseEntity.getBusinessLine() : "")
.warehouseName(bean.getWarehouse())
// .warehouseId(bean.getWarehouseId())
.build();
if (MapUtil.isNotEmpty(parcelListMap) && parcelListMap.containsKey(packageDatum.getPackageCode())) {
DistributionParcelListEntity parcelListEntity = parcelListMap.get(packageDatum.getPackageCode());
if (ObjectUtil.isNotEmpty(parcelListEntity)) {
entity.setBrandName(parcelListEntity.getBrandName());
}
}
}
} else if (detailMap.containsKey(PackageTypeEnums.INV)) {
// 库存品
} else if (detailMap.containsKey(PackageTypeEnums.LTL)) {
// 零担
}
}
} else if (BizOperationEnums.DELETE.equals(bizOperation)) {
// 删除
} else if (BizOperationEnums.MODIFY.equals(bizOperation)) {
// 修改
}
}
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java

@ -479,13 +479,15 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/
void mallClientSignfor(String trainNumber, Long warehouseId, String orderPackageCode);
/**
* 查询车次计划内所有包件信息
* 获取配送任务下的数据
* @param id
* @param warehouseId
* @return
*/
List<Map<String,Object>> getBroadcastData(Long id, Long warehouseId);
Map<String,List<Map<String,Object>>> getDeliveryreBroadcastData(Long id, Long warehouseId);
/**
* 查询装车详情

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

@ -1,6 +1,9 @@
package com.logpm.distribution.service;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.core.secure.BladeUser;
/**
* <p>
@ -9,6 +12,20 @@ import com.logpm.distribution.entity.DistributionParcelListEntity;
*/
public interface IDistributionNodeWorkService {
/**
* 配送计划性节点
* @param distributionDeliveryListEntity
* @param user
* @param bizOperation
*/
void planDelivery(DistributionDeliveryListEntity distributionDeliveryListEntity, BladeUser user, BizOperationEnums bizOperation);
/**
* 备货计划节点
*/
// void planStock();
// 签收作业节点
/**

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

@ -17,7 +17,6 @@
package com.logpm.distribution.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
@ -52,7 +51,6 @@ import com.logpm.factorydata.util.FactoryDataMessageSender;
import com.logpm.factorydata.vo.NodePushMsg;
import com.logpm.factorydata.vo.PushData;
import com.logpm.trunkline.feign.ITrunklinePackageTrackLogClient;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
@ -60,7 +58,6 @@ import com.logpm.warehouse.feign.*;
import com.logpm.warehouse.vo.TrayTypeDataVO;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.logging.log4j.util.Strings;
import org.jetbrains.annotations.NotNull;
import org.springblade.common.constant.DistributionTypeConstant;
@ -82,8 +79,8 @@ import org.springblade.common.constant.reservation.*;
import org.springblade.common.constant.signing.SignforStatusConstant;
import org.springblade.common.constant.stockup.StockAssignStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.model.PackageData;
import org.springblade.common.serviceConstant.ServiceConstant;
import org.springblade.common.utils.CommonUtil;
import org.springblade.common.utils.QRCodeUtil;
@ -270,13 +267,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
@Autowired
private IDistributionPlanLogService distributionPlanLogService;
// private final IWarehouseRetentionScanClient warehouseRetentionScanClient;
// @Lazy
// @Autowired
// private IDistributionReservationService distributionReservationService;
// private final BladeRedis redis;
@Autowired
private IDistributionNodeWorkService distributionNodeWorkService;
@Override
public IPage<DistributionDeliveryListEntity> selectDistributionDeliveryListPage(IPage<DistributionDeliveryListEntity> page, DistributionDeliveryListDTO distributionDeliveryList) {
@ -3347,9 +3339,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
this.updateById(deliveryListEntity);
//对修改计划下的所有包件进行维护
// // 执行发送推送
// distributionReservationService.createBusinessPreConversionQueue(deliveryListEntity.getId());
// 作业节点推送
distributionNodeWorkService.planDelivery(deliveryListEntity, AuthUtil.getUser(), BizOperationEnums.MODIFY);
trunklinePackageTrackLogClient.addPackageTrackLog(logs);
return R.status(true);
@ -3601,7 +3592,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return R.fail(403, "未授权!!!");
}
DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryListDTO.getId());
//查询原来的预约信息,
List<DistributionReservationEntity> reservationDTOS = baseMapper.selectReservationByDeliveryListId(deliveryListDTO.getId());
@ -3723,7 +3713,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
});
if (!oldIds.isEmpty()) {
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "取消配车计划,操作方式:车次移除预约计划,车次号:" + deliveryListEntity.getTrainNumber();
String ids = oldIds.stream().map(String::valueOf).collect(Collectors.joining(","));
distributionAsyncService.recordsReservationDeliveryLog(oldReservationEntities, myCurrentWarehouse, AuthUtil.getUser(), deliveryListEntity, WorkNodeEnums.CANCEL_DISTRIBUTION.getCode(), content);
}
@ -3812,6 +3801,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
deliveryListEntity.setCustomersNumber(clientTotal.get());
//对配送进行更改
this.updateById(deliveryListEntity);
// 作业节点推送
distributionNodeWorkService.planDelivery(deliveryListEntity, AuthUtil.getUser(), BizOperationEnums.MODIFY);
//进行日志记录
handleUpdateDistributionLog(deliveryListEntity, user, reservationDTOS, distributionReservationEntities, myCurrentWarehouse);
return R.status(true);
@ -7839,9 +7832,29 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
@Override
public List<Map<String, Object>> getBroadcastData(Long deliveryId, Long warehouseId) {
return baseMapper.getBroadcastData(deliveryId, warehouseId);
public Map<String, List<Map<String, Object>>> getDeliveryreBroadcastData(Long id, Long warehouseId) {
Map<String, List<Map<String, Object>>> data = new HashMap<>();
// 定制品
List<Map<String, Object>> broadcastDataByArticles = baseMapper.getBroadcastDataByArticles(id, warehouseId);
if(!broadcastDataByArticles.isEmpty()){
data.put("1",broadcastDataByArticles);
}
// 库寸品
List<Map<String, Object>> broadcastDataByStock = baseMapper.getBroadcastDataByStock(id, warehouseId);
if(!broadcastDataByStock.isEmpty()){
data.put("2",broadcastDataByStock);
}
// 零担
List<Map<String, Object>> broadcastDataByZeroOrder = baseMapper.getBroadcastDataByZeroOrder(id, warehouseId);
if(!broadcastDataByZeroOrder.isEmpty()){
data.put("3",broadcastDataByZeroOrder);
}
return data;
}
@Override

172
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionNodeWorkServiceImpl.java

@ -1,8 +1,17 @@
package com.logpm.distribution.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionDeliverySelfEntity;
import com.logpm.distribution.entity.DistributionDeliveryTripartiteEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionDeliverySelfService;
import com.logpm.distribution.service.IDistributionDeliveryTripartiteService;
import com.logpm.distribution.service.IDistributionNodeWorkService;
import com.logpm.factorydata.enums.BrandEnums;
import com.logpm.factorydata.util.FactoryDataMessageSender;
@ -10,26 +19,169 @@ import com.logpm.factorydata.vo.NodePushMsg;
import com.logpm.factorydata.vo.PushData;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.jetbrains.annotations.NotNull;
import org.springblade.common.constant.WorkNodeEnums;
import org.springblade.common.constant.broadcast.FanoutConstants;
import org.springblade.common.enums.BizOperationEnums;
import org.springblade.common.enums.PackageTypeEnums;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.model.BroadcastNodeData;
import org.springblade.common.model.FanoutMsg;
import org.springblade.common.model.NodeFanoutMsg;
import org.springblade.common.model.PackageData;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.amqp.AmqpException;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.retry.annotation.Backoff;
import org.springframework.retry.annotation.Retryable;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.*;
@Service
@AllArgsConstructor
@Slf4j
public class DistributionNodeWorkServiceImpl implements IDistributionNodeWorkService {
private final RabbitTemplate rabbitTemplate;
private final FactoryDataMessageSender factoryDataMessageSender;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private FactoryDataMessageSender factoryDataMessageSender;
@Autowired
@Lazy
private IDistributionDeliveryListService distributionDeliveryListService;
@Autowired
private IDistributionDeliverySelfService distributionDeliverySelfService;
@Autowired
private IDistributionDeliveryTripartiteService distributionDeliveryTripartiteService;
@Override
public void planDelivery(DistributionDeliveryListEntity distributionDeliveryListEntity, BladeUser user,BizOperationEnums bizOperation) {
try {
NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg();
nodeFanoutMsg.setBizOperation(bizOperation);
nodeFanoutMsg.setNode(WorkNodeEnums.PLAN_DELIVERY);
nodeFanoutMsg.setWarehouse(distributionDeliveryListEntity.getWarehouseName());
nodeFanoutMsg.setWarehouseId(distributionDeliveryListEntity.getWarehouseId());
nodeFanoutMsg.setOperator(user.getTenantId());
nodeFanoutMsg.setOperatorTime(distributionDeliveryListEntity.getCreateTime());
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
jsonObject.put("id", distributionDeliveryListEntity.getId());
jsonObject.put("trainNumber", distributionDeliveryListEntity.getTrainNumber());
jsonObject.put("kind", distributionDeliveryListEntity.getKind());
jsonObject.put("type", distributionDeliveryListEntity.getType());
jsonObject.put("distributionCompany", distributionDeliveryListEntity.getDistributionCompany());
jsonObject.put("taskTime", distributionDeliveryListEntity.getTaskTime());
JSONArray jsonArray = buildDeliveryCarDriverInfor(distributionDeliveryListEntity);
jsonObject.put("planDriverbindCars", jsonArray);
String jsonString = jsonObject.toJSONString();
nodeFanoutMsg.setMain(jsonString);
nodeFanoutMsg.setTenantId(AuthUtil.getTenantId());
Map<String, List<Map<String, Object>>> deliveryreBroadcastData = distributionDeliveryListService.getDeliveryreBroadcastData(distributionDeliveryListEntity.getId(), distributionDeliveryListEntity.getWarehouseId());
// 构建返回数据
List<PackageData> packageDataList = buildSendNodePackageData(deliveryreBroadcastData);
if (!packageDataList.isEmpty()) {
nodeFanoutMsg.setDetails(packageDataList);
rabbitTemplate.convertAndSend(FanoutConstants.distribution.plan.EXCHANGE, null, com.alibaba.fastjson.JSONObject.toJSONString(nodeFanoutMsg));
}
} catch (AmqpException e) {
log.error(">>>>>>>>>>>>>>>>>>>>>>>>>> 消息推送失败~ 请联系管理员! ", e);
}
}
/**
* 构建车辆信息
*
* @param distributionDeliveryListEntity
* @return
*/
private JSONArray buildDeliveryCarDriverInfor(DistributionDeliveryListEntity distributionDeliveryListEntity) {
JSONArray jsonArray = new JSONArray();
// 自主配送
if ("1".equals(distributionDeliveryListEntity.getKind())) {
LambdaQueryWrapper<DistributionDeliverySelfEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DistributionDeliverySelfEntity::getDeliveryId, distributionDeliveryListEntity.getId());
List<DistributionDeliverySelfEntity> list = distributionDeliverySelfService.list(queryWrapper);
if (list != null && !list.isEmpty()) {
for (DistributionDeliverySelfEntity distributionDeliverySelfEntity : list) {
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
jsonObject.put("driverName", distributionDeliverySelfEntity.getDriverName());
jsonObject.put("carPlate", distributionDeliverySelfEntity.getVehicleNub());
jsonArray.add(jsonObject);
}
}
} else {
LambdaQueryWrapper<DistributionDeliveryTripartiteEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distributionDeliveryListEntity.getId());
List<DistributionDeliveryTripartiteEntity> list = distributionDeliveryTripartiteService.list(queryWrapper);
if (list != null && !list.isEmpty()) {
for (DistributionDeliveryTripartiteEntity distributionDeliverySelfEntity : list) {
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
jsonObject.put("driverName", distributionDeliverySelfEntity.getDriverName());
jsonObject.put("carPlate", distributionDeliverySelfEntity.getVehicleNum());
jsonArray.add(jsonObject);
}
}
}
return jsonArray;
}
@NotNull
private List<PackageData> buildSendNodePackageData(Map<String, List<Map<String, Object>>> deliveryreBroadcastData) {
List<PackageData> packageDataList = new ArrayList<>();
// 定制品
List<Map<String, Object>> data = deliveryreBroadcastData.get("1");
if (data != null) {
for (Map<String, Object> map : data) {
PackageData packageData = BeanUtil.copy(map, PackageData.class);
assert packageData != null;
packageData.setBrand(Convert.toStr(map.get("brandName")));
PackageTypeEnums type = PackageTypeEnums.CMP;
packageData.setPackageType(type);
packageDataList.add(packageData);
}
}
// 库存品
data = deliveryreBroadcastData.get("2");
if (data != null) {
for (Map<String, Object> map : data) {
PackageData packageData = BeanUtil.copy(map, PackageData.class);
assert packageData != null;
packageData.setBrand(Convert.toStr(map.get("brandName")));
PackageTypeEnums type = PackageTypeEnums.INV;
packageData.setPackageType(type);
packageDataList.add(packageData);
}
}
//零担
data = deliveryreBroadcastData.get("3");
if (data != null) {
for (Map<String, Object> map : data) {
PackageData packageData = BeanUtil.copy(map, PackageData.class);
assert packageData != null;
packageData.setBrand(Convert.toStr(map.get("brandName")));
PackageTypeEnums type = PackageTypeEnums.LTL;
packageData.setPackageType(type);
packageData.setProductName(Convert.toStr(map.get("productName")));
packageDataList.add(packageData);
}
}
return packageDataList;
}
@Override
public void nodeLoad() {
@ -95,8 +247,8 @@ public class DistributionNodeWorkServiceImpl implements IDistributionNodeWorkSer
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
}catch (Exception e){
log.error("推送工厂失败:{}",e);
} catch (Exception e) {
log.error("推送工厂失败:{}", e);
}
}
@ -107,7 +259,7 @@ public class DistributionNodeWorkServiceImpl implements IDistributionNodeWorkSer
}
@Override
public void billofladingSignfor(DistributionParcelListEntity parcelListEntity,Long taskId,String operationTime, String destinationWarehouse) {
public void billofladingSignfor(DistributionParcelListEntity parcelListEntity, Long taskId, String operationTime, String destinationWarehouse) {
log.info(">>>>>>>>>> billofladingSignfor 自提扫描 {}", parcelListEntity.getOrderPackageCode());
@ -146,8 +298,8 @@ public class DistributionNodeWorkServiceImpl implements IDistributionNodeWorkSer
.build()))
.build();
factoryDataMessageSender.sendNodeDataByBrand(nodePushMsg);
}catch (Exception e){
log.error("推送工厂失败:{}",e);
} catch (Exception e) {
log.error("自提扫码广播:", e);
}
}

151
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -74,6 +74,7 @@ import com.logpm.warehouse.feign.IWarehouseGoodsAllocationClient;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.jetbrains.annotations.NotNull;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.Inventory.InventoryBindingStatusConstant;
@ -272,16 +273,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private IDistributionPlanLogService distributionPlanLogService;
// @Autowired
// private IWarehouseWaybillClient warehouseWaybillClient;
// @Autowired
// private DistributionParcelNumberMapper distributionParcelNumberMapper;
// @Autowired
// private IDistributionReservationZeroPackageService distributionReservationZeroPackageService;
@Autowired
private DistributionReservationZeroPackageMapper distributionReservationZeroPackageMapper;
@ -300,6 +293,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Autowired
private ITrunklinePackageTrackLogClient trunklinePackageTrackLogClient;
@Autowired
private IDistributionNodeWorkService distributionNodeWorkService;
@Override
public IPage<DistributionReservationVO> selectDistrbutionReservationPage(IPage<DistributionReservationVO> page, DistributionReservationVO distrbutionReservation) {
@ -1292,7 +1288,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionStockupInfoEntity stockupInfoEntity = new DistributionStockupInfoEntity();
stockupInfoEntity.setStockUpType(StockupTypeConstant.shipei.getValue());
stockupInfoEntity.setReservationId(ids.get(i));
if(stockupEntity!=null){
if (stockupEntity != null) {
stockupInfoEntity.setStockupId(stockupEntity.getId());
}
distributionStockupInfoService.save(stockupInfoEntity);
@ -1455,9 +1451,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
String content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getUser().getNickName() + "转车次任务,操作方式:批量预约任务转配送,车次号:" + distributionDeliveryListEntity.getTrainNumber();
distributionAsyncService.recordsReservationDeliveryLog(reservationEntityList, myCurrentWarehouse, user, distributionDeliveryListEntity, WorkNodeEnums.PLAN_DISTRIBUTION.getCode(), content);
//处理广播数据
handleBroadcast(distributionDeliveryListEntity,AuthUtil.getUser().getNickName(),new Date());
distributionNodeWorkService.planDelivery(distributionDeliveryListEntity, AuthUtil.getUser(),BizOperationEnums.ADD);
//日志记录
handleCreatedDistributionLog(distributionDeliveryListEntity,myCurrentWarehouse,user,reservationEntityList);
handleCreatedDistributionLog(distributionDeliveryListEntity, myCurrentWarehouse, user, reservationEntityList);
return R.status(true);
}
@ -1465,9 +1462,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
List<DistributionPlanLogEntity> reservationLogList = new ArrayList<>();
//进行预约计划日志
for (DistributionReservationEntity reservationEntity : reservationEntityList) {
String reservationContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"进行预约计划转配送;预约计划:"+reservationEntity.getReservationCode()
+"车次号:"+distributionDeliveryListEntity.getTrainNumber();
String reservationContent = user.getNickName() + "在" + myCurrentWarehouse.getName()
+ "进行预约计划转配送;预约计划:" + reservationEntity.getReservationCode()
+ "车次号:" + distributionDeliveryListEntity.getTrainNumber();
DistributionPlanLogEntity reservationPlanLogEntity = new DistributionPlanLogEntity();
reservationPlanLogEntity.setContent(reservationContent);
reservationPlanLogEntity.setRefId(reservationEntity.getId());
@ -1481,9 +1478,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
if (!reservationLogList.isEmpty()) {
distributionPlanLogService.saveBatch(reservationLogList);
}
String distributionContent =user.getNickName()+"在"+myCurrentWarehouse.getName()
+"创建市配配送计划;车次号:"+distributionDeliveryListEntity.getTrainNumber()
+"预约编号:["+reservationEntityList.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(","))+"],总件数:"+distributionDeliveryListEntity.getDeliveryNumber();
String distributionContent = user.getNickName() + "在" + myCurrentWarehouse.getName()
+ "创建市配配送计划;车次号:" + distributionDeliveryListEntity.getTrainNumber()
+ "预约编号:[" + reservationEntityList.stream().map(DistributionReservationEntity::getReservationCode).collect(Collectors.joining(",")) + "],总件数:" + distributionDeliveryListEntity.getDeliveryNumber();
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(distributionContent);
distributionPlanLogEntity.setRefId(distributionDeliveryListEntity.getId());
@ -1495,47 +1492,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionPlanLogService.save(distributionPlanLogEntity);
}
/**
* 处理广播数据
* @param distributionDeliveryListEntity
*/
private void handleBroadcast(DistributionDeliveryListEntity distributionDeliveryListEntity,String operatorName,Date date) {
NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg();
nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD);
nodeFanoutMsg.setNode(WorkNodeEnums.PLAN_DELIVERY);
nodeFanoutMsg.setWarehouse(distributionDeliveryListEntity.getWarehouseName());
nodeFanoutMsg.setOperator(operatorName);
nodeFanoutMsg.setOperatorTime(date);
DistributionDeliveryListEntity newEntity = new DistributionDeliveryListEntity();
newEntity.setId(distributionDeliveryListEntity.getId());
newEntity.setTrainNumber(distributionDeliveryListEntity.getTrainNumber());
newEntity.setVehicleName(distributionDeliveryListEntity.getVehicleName());
newEntity.setVehicleId(distributionDeliveryListEntity.getVehicleId());
newEntity.setDriverName(distributionDeliveryListEntity.getDriverName());
newEntity.setDriverId(distributionDeliveryListEntity.getDriverId());
newEntity.setTaskTime(distributionDeliveryListEntity.getTaskTime());
newEntity.setType(distributionDeliveryListEntity.getType());
newEntity.setKind(distributionDeliveryListEntity.getKind());
newEntity.setDistributionCompany(distributionDeliveryListEntity.getDistributionCompany());
String jsonString = JSONObject.toJSONString(newEntity);
nodeFanoutMsg.setMain(jsonString);
List<Map<String, Object>> mapList = distributionDeliveryListService.getBroadcastData(distributionDeliveryListEntity.getId(), distributionDeliveryListEntity.getWarehouseId());
List<PackageData> packageDataList = new ArrayList<>();
if (!mapList.isEmpty()) {
for (Map<String, Object> map : mapList) {
PackageData packageData = BeanUtil.copy(map, PackageData.class);
assert packageData != null;
BrandEnums brandEnums = IDict.getByCode(BrandEnums.class, IDict.getCodeByText(BrandEnums.class,Convert.toStr(map.get("brandName"))));
packageData.setBrand(brandEnums);
PackageTypeEnums type = IDict.getByCode(PackageTypeEnums.class, Convert.toInt(map.get("type")));
packageData.setPackageType(type);
packageDataList.add(packageData);
}
}
nodeFanoutMsg.setDetails(packageDataList);
rabbitTemplate.convertAndSend(FanoutConstants.distribution.plan.EXCHANGE, null, JSONObject.toJSONString(nodeFanoutMsg));
}
@Override
public R<DistributionReservationVO> getReservationInfo(String reservationId) {
@ -2143,13 +2100,14 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setIsUrgent(distributionReservationDTO.getIsUrgent());
reservationEntity.setIsInstall(distributionReservationDTO.getIsInstall());
this.updateById(reservationEntity);
compareReservation(reservationEntity,oldReservation,AuthUtil.getUser(),myCurrentWarehouse);
compareReservation(reservationEntity, oldReservation, AuthUtil.getUser(), myCurrentWarehouse);
return R.status(true);
}
/**
* 比对预约计划
*
* @param reservationEntity
* @param oldReservation
* @param user
@ -2158,13 +2116,13 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
private void compareReservation(DistributionReservationEntity reservationEntity, DistributionReservationEntity oldReservation, BladeUser user, BasicdataWarehouseEntity myCurrentWarehouse) {
Integer newPlanNum = reservationEntity.getReservationNum() + reservationEntity.getReservationStockListNum();
Integer oldPlanNum = oldReservation.getReservationNum() + oldReservation.getReservationStockListNum();
String planContent = user.getNickName()+"在"+myCurrentWarehouse.getName()
+"修改预约计划;预约计划编号:"+reservationEntity.getReservationCode()
+";收货单位:"+(reservationEntity.getReceivingUnit().equals(oldReservation.getReceivingUnit())?reservationEntity.getReceivingUnit():"由"+oldReservation.getReceivingUnit()+"变更为-->"+reservationEntity.getReceivingUnit())
+",收货人:"+(reservationEntity.getConsignee().equals(oldReservation.getConsignee())?reservationEntity.getConsignee():"由"+oldReservation.getConsignee()+"变更为-->"+reservationEntity.getConsignee())
+",联系电话:"+(reservationEntity.getDeliveryPhone().equals(oldReservation.getDeliveryPhone())?reservationEntity.getDeliveryPhone():"由"+oldReservation.getDeliveryPhone()+"变更为-->"+reservationEntity.getDeliveryPhone())
+",收货地址:"+(reservationEntity.getDeliveryAddress().equals(oldReservation.getDeliveryAddress())?reservationEntity.getDeliveryAddress():"由"+oldReservation.getDeliveryAddress()+"变更为-->"+reservationEntity.getDeliveryAddress())
+",计划件数:"+(newPlanNum.equals(oldPlanNum)?newPlanNum:"由"+oldPlanNum+"变更为-->"+newPlanNum);
String planContent = user.getNickName() + "在" + myCurrentWarehouse.getName()
+ "修改预约计划;预约计划编号:" + reservationEntity.getReservationCode()
+ ";收货单位:" + (reservationEntity.getReceivingUnit().equals(oldReservation.getReceivingUnit()) ? reservationEntity.getReceivingUnit() : "由" + oldReservation.getReceivingUnit() + "变更为-->" + reservationEntity.getReceivingUnit())
+ ",收货人:" + (reservationEntity.getConsignee().equals(oldReservation.getConsignee()) ? reservationEntity.getConsignee() : "由" + oldReservation.getConsignee() + "变更为-->" + reservationEntity.getConsignee())
+ ",联系电话:" + (reservationEntity.getDeliveryPhone().equals(oldReservation.getDeliveryPhone()) ? reservationEntity.getDeliveryPhone() : "由" + oldReservation.getDeliveryPhone() + "变更为-->" + reservationEntity.getDeliveryPhone())
+ ",收货地址:" + (reservationEntity.getDeliveryAddress().equals(oldReservation.getDeliveryAddress()) ? reservationEntity.getDeliveryAddress() : "由" + oldReservation.getDeliveryAddress() + "变更为-->" + reservationEntity.getDeliveryAddress())
+ ",计划件数:" + (newPlanNum.equals(oldPlanNum) ? newPlanNum : "由" + oldPlanNum + "变更为-->" + newPlanNum);
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(reservationEntity.getId());
@ -2597,7 +2555,6 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliverySelfService.save(distributionDeliverySelfEntity);
//司机车辆名称拼接
vehicleNubs.append(a.getVehicleNub()).append(",");
// driverNames.append(a.getDriverName()).append(",");
});
distributionDeliveryListEntity.setDistributionCompany("汇通");
distributionDeliveryListEntity.setKind(ServiceConstant.DELIVERLIST_KIND_SELF);
@ -2643,6 +2600,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
trunklinePackageTrackLogClient.addPackageTrackLog(aaa);
}
//处理广播数据
distributionNodeWorkService.planDelivery(distributionDeliveryListEntity, AuthUtil.getUser(),BizOperationEnums.ADD);
// 创建处理商场信息队列
//createBusinessPreConversionQueue(distributionDeliveryListEntity.getId());
@ -3438,19 +3399,19 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionReservationMapper.updateById(reservationEntity);
//进行日志的添加
BladeUser user = AuthUtil.getUser();
handleCreatedReservationPlanLog(reservationEntity,user,myCurrentWarehouse);
handleCreatedReservationPlanLog(reservationEntity, user, myCurrentWarehouse);
return R.status(true);
}
private void handleCreatedReservationPlanLog(DistributionReservationEntity reservationEntity, BladeUser user,BasicdataWarehouseEntity warehouse) {
String planContent = user.getNickName()+"在"+warehouse.getName()
+"创建预约计划;预约计划编号:"+reservationEntity.getReservationCode()
+";收货单位:"+reservationEntity.getReceivingUnit()
+",收货人:"+reservationEntity.getConsignee()
+",联系电话:"+reservationEntity.getDeliveryPhone()
+",收货地址:"+reservationEntity.getDeliveryAddress()
+",计划件数:"+(reservationEntity.getReservationNum()+reservationEntity.getReservationStockListNum())
+",配送类型:"+(reservationEntity.getDeliveryWay().equals(DistributionTypeConstant.shangpei.getValue())?"商配":"市配");
private void handleCreatedReservationPlanLog(DistributionReservationEntity reservationEntity, BladeUser user, BasicdataWarehouseEntity warehouse) {
String planContent = user.getNickName() + "在" + warehouse.getName()
+ "创建预约计划;预约计划编号:" + reservationEntity.getReservationCode()
+ ";收货单位:" + reservationEntity.getReceivingUnit()
+ ",收货人:" + reservationEntity.getConsignee()
+ ",联系电话:" + reservationEntity.getDeliveryPhone()
+ ",收货地址:" + reservationEntity.getDeliveryAddress()
+ ",计划件数:" + (reservationEntity.getReservationNum() + reservationEntity.getReservationStockListNum())
+ ",配送类型:" + (reservationEntity.getDeliveryWay().equals(DistributionTypeConstant.shangpei.getValue()) ? "商配" : "市配");
DistributionPlanLogEntity distributionPlanLogEntity = new DistributionPlanLogEntity();
distributionPlanLogEntity.setContent(planContent);
distributionPlanLogEntity.setRefId(reservationEntity.getId());
@ -3753,6 +3714,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliveryListService.maintenanceDeliveryInfo(distributionCancelReservationPackageDTO.getDeliveryId());
//维护配送任务数量
distributionDeliveryListService.maintenanceDeliveryNum(distributionCancelReservationPackageDTO.getDeliveryId());
// 作业节点推送
DistributionDeliveryListEntity deliveryListEntity= distributionDeliveryListService.getById(distributionCancelReservationPackageDTO.getDeliveryId());
distributionNodeWorkService.planDelivery(deliveryListEntity, AuthUtil.getUser(), BizOperationEnums.MODIFY);
return R.status(true);
}
@ -3908,7 +3875,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
for (String isZero : strings) {
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = listMap.get(isZero);
//取消订制品
orderIds = distributionReservationStockarticleEntities.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList());
orderIds = distributionReservationStockarticleEntities.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList());
if (IsOrNoConstant.no.getValue().equals(isZero)) {
//对此计划下的所有订制品包件进行取消和状态恢复
List<DistributionReservationPackageEntity> packageEntityList = distributionReservationPackageService.list(Wrappers.<DistributionReservationPackageEntity>query().lambda()
@ -3930,9 +3897,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
}
List<Long> packageIds = packageEntityList.stream().map(DistributionReservationPackageEntity::getId).collect(Collectors.toList());
distributionReservationPackageService.update(Wrappers.<DistributionReservationPackageEntity>update().lambda()
.in(DistributionReservationPackageEntity::getId,packageIds)
.set(DistributionReservationPackageEntity::getCancelRemark,"商家端取消")
.set(DistributionReservationPackageEntity::getPacketBarStatus,ReservationPackageStatusConstant.quxiao.getValue())
.in(DistributionReservationPackageEntity::getId, packageIds)
.set(DistributionReservationPackageEntity::getCancelRemark, "商家端取消")
.set(DistributionReservationPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
@ -3953,9 +3920,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionParcelListService.maintenanceZeroPackageInfo(reservationZeroPackageEntity.getParcelListId(), myCurrentWarehouse.getId());
}
distributionReservationZeroPackageService.update(Wrappers.<DistributionReservationZeroPackageEntity>update().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId,reservationId)
.in(DistributionReservationZeroPackageEntity::getId,collect)
.set(DistributionReservationZeroPackageEntity::getZeroPackageStatus,ReservationPackageStatusConstant.quxiao.getValue())
.eq(DistributionReservationZeroPackageEntity::getReservationId, reservationId)
.in(DistributionReservationZeroPackageEntity::getId, collect)
.set(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
}
} else {
@ -3977,7 +3944,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
);
if (!reservationStocklistEntityList.isEmpty()) {
for (DistributionReservationStocklistEntity reservationStocklistEntity : reservationStocklistEntityList) {
distributionStockListService.updateInventoryQuantityOccupied(reservationStocklistEntity.getStocklistId(),reservationStocklistEntity.getReservationNum());
distributionStockListService.updateInventoryQuantityOccupied(reservationStocklistEntity.getStocklistId(), reservationStocklistEntity.getReservationNum());
}
//对生成包件进行状态取消
List<Long> waitInventoryIds = reservationStocklistEntityList.stream().map(DistributionReservationStocklistEntity::getStocklistId).collect(Collectors.toList());
@ -3990,24 +3957,24 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
List<Long> waitInventoryPackageIds = inventoryPackage.stream().map(DisStockListDetailEntity::getId).collect(Collectors.toList());
//对库存品包件进行取消
disStockListDetailService.update(Wrappers.<DisStockListDetailEntity>update().lambda()
.eq(DisStockListDetailEntity::getReservationId,reservationId)
.in(DisStockListDetailEntity::getId,waitInventoryPackageIds)
.set(DisStockListDetailEntity::getStockPackageStatus,ReservationPackageStatusConstant.quxiao.getValue())
.eq(DisStockListDetailEntity::getReservationId, reservationId)
.in(DisStockListDetailEntity::getId, waitInventoryPackageIds)
.set(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
}
//对计划数据进行取消
distributionReservationStocklistService.update(Wrappers.<DistributionReservationStocklistEntity>update().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId,reservationId)
.set(DistributionReservationStocklistEntity::getStockListStatus,ReservationPackageStatusConstant.quxiao.getValue())
.in(DistributionReservationStocklistEntity::getStocklistId,waitInventoryIds)
.eq(DistributionReservationStocklistEntity::getReservationId, reservationId)
.set(DistributionReservationStocklistEntity::getStockListStatus, ReservationPackageStatusConstant.quxiao.getValue())
.in(DistributionReservationStocklistEntity::getStocklistId, waitInventoryIds)
);
}
}
this.update(Wrappers.<DistributionReservationEntity>update().lambda()
.eq(DistributionReservationEntity::getId,reservationId)
.set(DistributionReservationEntity::getReservationStatus,ReservationStatusConstant.yiquexiao.getValue())
.eq(DistributionReservationEntity::getId, reservationId)
.set(DistributionReservationEntity::getReservationStatus, ReservationStatusConstant.yiquexiao.getValue())
);
}
if (!logList.isEmpty()) {

Loading…
Cancel
Save