From 125f5ace77349c80a7d8c537fbf2e98c91fc4d70 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 25 Mar 2024 19:08:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E6=8F=90=E8=B0=83=E6=95=B4=E7=AD=BE?= =?UTF-8?q?=E6=94=B6=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/DistributionBillOrderPackVO.java | 1 + .../DistributionBillLadingAppController.java | 12 ++++ .../DistributionStockListController.java | 2 +- .../DistrilbutionBillLadingController.java | 29 ++++++++ .../mapper/DistrilbutionBillLadingMapper.java | 2 +- .../mapper/DistrilbutionBillStockMapper.xml | 3 +- .../service/IDistributionAsyncService.java | 6 ++ .../IDistrilbutionBillLadingService.java | 7 ++ .../IDistrilbutionBillStockService.java | 6 ++ .../impl/DistributionAsyncServiceImpl.java | 36 ++++++++++ .../DistrilbutionBillLadingServiceImpl.java | 67 ++++++++++++++++--- .../DistrilbutionBillStockServiceImpl.java | 46 +++++++++++++ 12 files changed, 203 insertions(+), 14 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java index 3cb6e69ce..3019e240e 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java @@ -12,6 +12,7 @@ import java.util.Date; **/ @Data public class DistributionBillOrderPackVO { + private Long id; private String orderPackageCode; private String orderPackageStatus; private String warehouse; diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java index 4043e6f20..ec7aadedd 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java @@ -18,9 +18,12 @@ package com.logpm.distribution.appcontroller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.distribution.bean.Resp; import com.logpm.distribution.dto.app.BillLadingAppDTO; +import com.logpm.distribution.entity.DistributionBillLadingScanEntity; +import com.logpm.distribution.service.IDistributionBillLadingScanService; import com.logpm.distribution.service.IDistrilbutionBillLadingService; import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO; import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO; @@ -35,9 +38,11 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; import java.util.Map; /** @@ -55,6 +60,8 @@ public class DistributionBillLadingAppController extends BladeController { private final IDistrilbutionBillLadingService distrilbutionBillLadingService; + + private final IDistributionBillLadingScanService distributionBillLadingScanService; /** * 自提信息表 分页列表 */ @@ -179,10 +186,15 @@ public class DistributionBillLadingAppController extends BladeController { @PostMapping("/addReceivedImage") @ApiOperation(value = "添加自提单签收图片") public R updateReceivedImage(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====签收图片自提签收:{}",billLadingAppDTO); if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { return R.fail(3002, "自提id不能为空 !"); } + List list = distributionBillLadingScanService.list(Wrappers.query().lambda().eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId())); + if (Func.isEmpty(list)){ + return R.fail(3002, "请扫描货物后提交签收图片 !"); + } if(ObjectUtils.isNull(billLadingAppDTO.getPrintList()) || billLadingAppDTO.getPrintList().isEmpty()){ throw new ServiceException("图片对象不能为空!!"); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java index 1bb29eab6..a3f9e0581 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java @@ -225,7 +225,7 @@ public class DistributionStockListController extends BladeController { } /** - * 库存品管理 删除 + * 库存品管理撤销转 */ @PostMapping("/cancelAddStockListByPackage") @ApiOperationSupport(order = 7) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java index ea322394a..88581f8fc 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java @@ -251,6 +251,35 @@ public class DistrilbutionBillLadingController extends BladeController { public R update(@Valid @RequestBody DistrilbutionBillLadingEntity distrilbutionBillLading) { return R.status(distrilbutionBillLadingService.updateById(distrilbutionBillLading)); } + + /** + * 查询提货单是否需要释放资源 + */ + @GetMapping("/checkBillLadingIsRelease") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入distrilbutionBillLading") + public Boolean checkBillLadingIsRelease(@RequestParam Long billLadingId) { + Integer flag = distrilbutionBillLadingService.checkBillLadingIsRelease(billLadingId); + switch (flag){ + case 1: + return true; + case 2: + log.info("#####################提货单查询错误billLadingId:{}",billLadingId); + return false; + case 3: + log.info("#####################提货单装车未完成:{}",billLadingId); + return false; + case 4: + log.info("#####################提货单未装车:{}",billLadingId); + return false; + + } + return false; + } + + + + /** * 提货单 自己修改 签收 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java index c1a8d50a6..12aa6e236 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java @@ -123,7 +123,7 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper - ldbs.is_deleted = 0 and ldbs.bill_lading_id = #{param.billLadingId} and ldbs.order_status in (1,2) + ldbs.is_deleted = 0 and ldbs.bill_lading_id = #{param.billLadingId} and ldbs.order_status in (1,3) @@ -155,6 +155,7 @@ lds.outbound_type, ldpl.order_package_code orderPackageCode, ldpl.warehouse, + ldpl.id, ldpl.firsts, ldpl.SECOND AS `second`, ldpl.third_product thirdProduct, diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java index 32f6ad154..f556826a8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java @@ -314,4 +314,10 @@ public interface IDistributionAsyncService { * @param id */ void sendTrunkineLog(Long deliveryId,Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse,Integer a); + + /** + * 自提单未扫描数据进行资源释放 + * @param l + */ + void releaseBillLadingResource(Long l,Long warehouseId); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java index 30e9c26c3..8cb70e993 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java @@ -235,4 +235,11 @@ public interface IDistrilbutionBillLadingService extends BaseService distrilbutionBillStock(Map distrilbutionBillStock); List billOrderPackExcel(Map distrilbutionBillStock); + + /** + * 维护自提单订单状态 + * @param l + */ + void maintenanceOrderInfo(Long l); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index e9f288efe..6da68f743 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -3,6 +3,7 @@ package com.logpm.distribution.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; @@ -1804,6 +1805,41 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } + /** + * @param l + */ + @Override + @Transactional + public void releaseBillLadingResource(Long l,Long warehouseId) { + List list = billPackageService.list(Wrappers.query().lambda() + .eq(DistrilbutionBillPackageEntity::getBillLadingId, l) + .ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2) + ); + if (Func.isNotEmpty(list)){ + List ids = list.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList()); + //查询包件 + List distributionParcelListEntities = distributionParcelListService.listByIds(ids); + List packageIds = distributionParcelListEntities.stream().filter(f -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(f.getOrderPackageLoadingStatus())|| !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())).map(DistributionParcelListEntity::getId).collect(Collectors.toList()); + distributionParcelListService.update(new UpdateWrapper().lambda() + .set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.daiyuyue.getValue()) + .set(DistributionParcelListEntity::getOrderPackageLoadingStatus,OrderPackageLoadingStatusConstant.weizhuancghe.getValue()) + .set(DistributionParcelListEntity::getOrderPackageStatus,OrderPackageStatusConstant.yiruku.getValue()) + .set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.daibeihuo.getValue()) + .in(DistributionParcelListEntity::getId,packageIds) + ); + billPackageService.update(new UpdateWrapper().lambda() + .set(DistrilbutionBillPackageEntity::getPacketBarStatus,2) + .eq(DistrilbutionBillPackageEntity::getBillLadingId,l) + .in(DistrilbutionBillPackageEntity::getParceListId,packageIds) + ); + String collect = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getOrderCode).distinct().collect(Collectors.joining(",")); + distributionStockArticleService.maintenanceOrderInfo(collect,warehouseId); + //维护自提单订单信息 + distrilbutionBillStockService.maintenanceOrderInfo(l); + } + + } + /** * 定制品 修改备货时间 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index 0cf9389f4..f7efb4fc4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -103,7 +103,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl ladingScanEntities = distributionBillLadingScanService.list(Wrappers.query().lambda() + .eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)); + boolean a = false; + if (Func.isEmpty(ladingScanEntities)) { + int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); + //提货扫描数量和计划保持一致无需进行资源释放 + if (integer == sum) { + return 1; + }else { + return 3; + } + } else { + return 4; + } + } + @Transactional private Integer cancelBillLodingPackage(List ids) { String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding,"; @@ -727,16 +756,16 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl updateWrapper = new UpdateWrapper<>(); updateWrapper.lambda() - .in(DistrilbutionBillPackageEntity::getBillLadingId,ids) - .set(DistrilbutionBillPackageEntity::getPacketBarStatus,"3") + .in(DistrilbutionBillPackageEntity::getBillLadingId, ids) + .set(DistrilbutionBillPackageEntity::getPacketBarStatus, "3") ; distrilbutionBillPackageService.update(updateWrapper); //取消订单 UpdateWrapper orderUpdateWrapper = new UpdateWrapper<>(); orderUpdateWrapper.lambda() - .in(DistrilbutionBillStockEntity::getBillLadingId,ids) - .set(DistrilbutionBillStockEntity::getOrderStatus,"3") + .in(DistrilbutionBillStockEntity::getBillLadingId, ids) + .set(DistrilbutionBillStockEntity::getOrderStatus, "3") ; distrilbutionBillStockService.update(orderUpdateWrapper); @@ -753,8 +782,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl { - //恢复库存品数量 - distributionStockListService.updateInventoryQuantityOccupied(ddd.getStockListId(),ddd.getQuantity()); + //恢复库存品数量 + distributionStockListService.updateInventoryQuantityOccupied(ddd.getStockListId(), ddd.getQuantity()); //进行库存品包件取消 if (ddd.getStockStatus().equals("3")) { disStockListDetailService.cancelInventoryPackageByReservationIdAnStockListId(ddd.getStockListId(), ddd.getBillLadingId()); @@ -1790,7 +1819,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImplquery().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId) - .apply("order_status in (1 , 2)") + .apply("order_status in (1 , 3)") .eq(DistrilbutionBillStockEntity::getStockArticleId, list4.get(0).getStockArticleId()) ); if (ObjectUtils.isNull(one2)) { @@ -1879,7 +1908,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl > 签收成功!!"); return Resp.scanSuccess("签收成功", ""); } @@ -1942,6 +1970,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl ladingScanEntities = distributionBillLadingScanService.list(Wrappers.query().lambda().eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s))); + if (Func.isNotEmpty(ladingScanEntities)){ + int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); + if (integer != sum){ + //存在资源释放操作 + distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId()); + } + }else { + distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId()); + } + //修改订单状态 List list = distrilbutionBillStockService.list(Wrappers.query().lambda() .eq(DistrilbutionBillStockEntity::getBillLadingId, s) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java index 1139255d4..dc332c14d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java @@ -18,26 +18,33 @@ package com.logpm.distribution.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.dto.app.StockupDTO; +import com.logpm.distribution.entity.DistrilbutionBillPackageEntity; import com.logpm.distribution.entity.DistrilbutionBillStockEntity; import com.logpm.distribution.excel.DistributionBillOrderExcel; import com.logpm.distribution.excel.DistributionBillOrderPackExcel; import com.logpm.distribution.excel.DistrilbutionBillStockExcel; import com.logpm.distribution.mapper.DistrilbutionBillStockMapper; +import com.logpm.distribution.service.IDistrilbutionBillPackageService; import com.logpm.distribution.service.IDistrilbutionBillStockService; import com.logpm.distribution.vo.*; import lombok.AllArgsConstructor; import org.springblade.common.constant.DictBizConstant; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.DictBizCache; import org.springblade.system.entity.User; import org.springblade.system.feign.IUserClient; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -53,6 +60,8 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl selectDistrilbutionBillStockPage(IPage page, DistrilbutionBillStockVO distrilbutionBillStock) { return page.setRecords(baseMapper.selectDistrilbutionBillStockPage(page, distrilbutionBillStock)); @@ -170,4 +179,41 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl entityList = this.list(Wrappers.query().lambda() + .eq(DistrilbutionBillStockEntity::getBillLadingId, l) + .ne(DistrilbutionBillStockEntity::getOrderStatus, "2") + ); + List ids = new ArrayList<>(); + if (Func.isNotEmpty(entityList)){ + for (DistrilbutionBillStockEntity distrilbutionBillStockEntity : entityList) { + List packageEntities = distrilbutionBillPackageService.list(Wrappers.query().lambda() + .eq(DistrilbutionBillPackageEntity::getBillLadingId, l) + .eq(DistrilbutionBillPackageEntity::getStockArticleId, distrilbutionBillStockEntity.getStockArticleId()) + .ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2) + ); + if (Func.isEmpty(packageEntities)){ + //取消订单 + ids.add(distrilbutionBillStockEntity.getId()); + }else { + int sum = packageEntities.stream().mapToInt(DistrilbutionBillPackageEntity::getPacketNumber).sum(); + if (sum == 0){ + ids.add(distrilbutionBillStockEntity.getId()); + } + } + } + } + if (Func.isNotEmpty(ids)){ + this.update(new UpdateWrapper().lambda() + .set(DistrilbutionBillStockEntity::getOrderStatus, "2") + .in(DistrilbutionBillStockEntity::getId, ids) + ); + } + } }