From 59b8ebd5995594a786a1e9c5f1dc453e667c508b Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 20 Sep 2024 01:03:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E9=9B=B6=E6=8B=85?= =?UTF-8?q?=E5=8D=B8=E8=BD=A6=E5=85=A5=E5=BA=93=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/business/dto/BusinessSanDTO.java | 2 + .../entity/DistributionParcelListEntity.java | 4 +- .../feign/IDistributionParcelListClient.java | 21 ++- .../IDistributionStockArticleClient.java | 3 + .../business/api/BusinessPreOrderApi.java | 19 +-- .../impl/BusinessPreOrderServiceImpl.java | 160 +++++++++++++++--- .../feign/DistributionParcelListClient.java | 16 +- .../feign/DistributionStockArticleClient.java | 7 + 8 files changed, 188 insertions(+), 44 deletions(-) diff --git a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java index 1ff73d10b..04ad1d1a0 100644 --- a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java +++ b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java @@ -38,6 +38,8 @@ public class BusinessSanDTO { @ApiModelProperty(value = "卸车数量") private Integer unloadNum; + @ApiModelProperty(value = "状态 1 定制品 2 库存品 3零担") + private String conditions; } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java index 673a3e634..b9abba72c 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java @@ -332,11 +332,11 @@ public class DistributionParcelListEntity extends TenantEntity { @ApiModelProperty(value = "包件冻结状态") private String orderPackageFreezeStatus; - @ApiModelProperty(value = "包件冻结状态") + @ApiModelProperty(value = "预约状态") private String orderPackageReservationStatus; - @ApiModelProperty(value = "包件冻结状态") + @ApiModelProperty(value = "预约数量") @TableField(exist = false) private Integer reservationNum; diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index 6fa85f923..33a3d1447 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -102,9 +102,26 @@ public interface IDistributionParcelListClient { @PostMapping(API_PREFIX + "/update") void update(@RequestBody DistributionParcelListEntity distributionParcelListEntity); + /** + * 根据 订单号合开单品类查询指定仓库下的零担的品类信息 + * @param orderCode + * @param first + * @param warehouseId + * @return + */ + @GetMapping(API_PREFIX + "/findDistributionParcelListEntityByOrderCodeAndFirstName") + DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstName(@RequestParam String orderCode, @RequestParam String first,@RequestParam Long warehouseId); - @GetMapping(API_PREFIX + "/SumEntityZkByOrderId") - Integer SumEntityByOrderId(@RequestParam Long orderId, @RequestParam Long warehouseId); + /** + * 根据 订单号合开单品类查询指定租户下的仓库的零担的品类信息 + * @param tenantId + * @param orderCode + * @param first + * @param warehouseId + * @return + */ + @GetMapping(API_PREFIX + "/findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId") + DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(@RequestParam String tenantId,@RequestParam String orderCode, @RequestParam String first,@RequestParam Long warehouseId); /** diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java index 926d966f9..8bd19b831 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java @@ -75,6 +75,9 @@ public interface IDistributionStockArticleClient { @GetMapping(API_PREFIX + "/findByOrderSelfNum") DistributionStockArticleEntity findByOrderSelfNum(@RequestParam String orderCode, @RequestParam Long warehouseId); + @GetMapping(API_PREFIX + "/findByOrderSelfNumAndTenantId") + DistributionStockArticleEntity findByOrderSelfNumAndTenantId(@RequestParam String tenantId,@RequestParam String orderCode, @RequestParam Long warehouseId); + @GetMapping(API_PREFIX + "/deleteById") void deleteById(@RequestParam Long orderId); diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java b/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java index 1cdca442d..74a238b9c 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java @@ -46,6 +46,12 @@ public class BusinessPreOrderApi { } + /** + * 商家入库接口 + * 零担入库也走这个接口 + * @param businessSanDTO + * @return + */ @PostMapping("/scanOrderPackageCode") @ApiOperationSupport(order = 1) public R scanOrderPackageCode(@RequestBody BusinessSanDTO businessSanDTO) { @@ -60,22 +66,9 @@ public class BusinessPreOrderApi { return resp; } - @PostMapping("/inputZeroOrderData") - @ApiOperationSupport(order = 1) - public R inputZeroOrderData(@RequestBody List businessSanDTOincentices) { - - log.info(" >> 请求参数 {}", businessSanDTOincentices); - - // 传入的集合对象 中获取 - - - return R.success("操作成功"); - } - - @GetMapping("/listCarNum") @ApiOperationSupport(order = 1) @ApiOperation(value = "条件查询", notes = "传入trayTypeDTO") diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java index ae1224b73..6f5ad4efb 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java @@ -17,8 +17,10 @@ import com.logpm.business.service.IBusinessAsyncService; import com.logpm.business.service.IBusinessPreOrderService; import com.logpm.business.vo.*; import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionDeliveryListClient; import com.logpm.distribution.feign.IDistributionParcelListClient; +import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.feign.IInComingClient; @@ -56,6 +58,8 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, distrCarNumber); + queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0); + List list = baseMapper.selectList(queryWrapper); + if (list.isEmpty()) { + return Resp.scanFail("扫描失败", "车次信息不存在"); + } - if (Func.isAllEmpty(orderPackageCode, distrCarNumber, businessSanDTO.getInWarehouseException())) { - return Resp.scanFail("扫描失败", "没有包件或者车次"); - } - // 查询配送车次下面所有的包件 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, distrCarNumber); - queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0); - List list = baseMapper.selectList(queryWrapper); - if (list.isEmpty()) { - return Resp.scanFail("扫描失败", "车次信息不存在"); - } + // 异常入库 + if (1 == businessSanDTO.getInWarehouseException()) { + Resp a = handleExceptionalWarehourse(businessSanDTO, list, orderPackageCode, distrCarNumber); + if (a != null) return a; + } else { + //正常入口 + Resp scanFail = handleNormalWarehourse(businessSanDTO, orderPackageCode, list, distrCarNumber); + if (scanFail != null) return scanFail; + + } + } else if ("3".equals(businessSanDTO.getConditions())) { + // 零担 + LambdaQueryWrapper queryWrapper3 = new LambdaQueryWrapper<>(); + queryWrapper3.eq(BusinessPreOrderEntity::getDistrCarNumber, businessSanDTO.getDistrCarNumber()); + queryWrapper3.eq(BusinessPreOrderEntity::getReservationCode, businessSanDTO.getReservationCode()); + queryWrapper3.eq(BusinessPreOrderEntity::getOrderCode, businessSanDTO.getOrderCode()); + queryWrapper3.eq(BusinessPreOrderEntity::getFirsts, businessSanDTO.getFirsts()); + List list3 = baseMapper.selectList(queryWrapper3); + if (list3.isEmpty()) { + throw new CustomerException("入库数据错误,请联系管理员"); + } + BusinessPreOrderEntity businessPreOrderEntity = list3.get(0); + if (1 == businessPreOrderEntity.getInWarehouse()) { + return Resp.scanFail("操作失败", businessSanDTO.getFirsts() + "已入库"); + } + + // 构建 订单 + DistributionStockArticleEntity distributionStockArticleEntity = checkStockArticle(businessPreOrderEntity, myCurrentWarehouse); + // 构建 订单下级【包件】 + DistributionParcelListEntity distributionParcelListEntityByOrderCodeAndFirstName = distributionParcelListClient.findDistributionParcelListEntityByOrderCodeAndFirstName(businessPreOrderEntity.getOrderCode(), businessSanDTO.getFirsts(), myCurrentWarehouse.getId()); + + int temp = 0; + if (distributionParcelListEntityByOrderCodeAndFirstName == null) { + // 执行新增功能 + DistributionParcelListEntity distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId = distributionParcelListClient.findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(businessPreOrderEntity.getFromTenantId(), businessPreOrderEntity.getOrderCode(), businessSanDTO.getFirsts(), businessPreOrderEntity.getWarehouseId()); + if (distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId != null) { + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setId(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setTenantId(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setCreateUser(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setUpdateUser(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setCreateTime(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setUpdateTime(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setOrderPackageReservationStatus("10"); + // 卸车数量作为入库数量 + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setQuantity(businessSanDTO.getUnloadNum()); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setStockArticleId(distributionStockArticleEntity.getId()); + distributionParcelListClient.add(distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId); + temp = businessSanDTO.getUnloadNum(); + } + + } else { + // 修改其入库数量 + if(distributionParcelListEntityByOrderCodeAndFirstName.getQuantity() lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DistributionParcelListEntity::getOrderCode, orderCode); + lambdaQueryWrapper.eq(DistributionParcelListEntity::getFirsts, first); + lambdaQueryWrapper.eq(DistributionParcelListEntity::getWarehouseId, warehouseId); + return distributionParcelListService.getOne(lambdaQueryWrapper); + } + @ChangeAsync @Override - public Integer SumEntityByOrderId(Long orderId, Long warehouseId) { - Integer i = distributionParcelListService.selectSumByOrderId(orderId, warehouseId); - return i; + public DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(String tenantId, String orderCode, String first, Long warehouseId) { + return findDistributionParcelListEntityByOrderCodeAndFirstName(orderCode, first, warehouseId); } @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java index 76c45f506..8c905bf82 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java @@ -32,6 +32,7 @@ import com.logpm.distribution.service.IDistributionStockArticleService; import com.logpm.distribution.vo.UpDownStockupAreaVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.annotations.ChangeAsync; import org.springblade.common.exception.CustomerException; import org.springblade.core.mp.support.BladePage; import org.springblade.core.mp.support.Condition; @@ -108,6 +109,12 @@ public class DistributionStockArticleClient implements IDistributionStockArticle return distributionStockArticleService.getOne(queryWrapper); } + @ChangeAsync + @Override + public DistributionStockArticleEntity findByOrderSelfNumAndTenantId(String tenantId, String orderCode, Long warehouseId) { + return findByOrderSelfNum(orderCode,warehouseId); + } + @Override public void deleteById(Long orderId) { QueryWrapper queryWrapper = new QueryWrapper<>();