diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java new file mode 100644 index 000000000..f1b1943f2 --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationInventoryPackageVO.java @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.distribution.vo; + +import com.logpm.distribution.entity.DistributionReservationStocklistEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 预约库存中间表 视图实体类 + * + * @author TJJ + * @since 2023-06-28 + */ +@Data +public class DistributionReservationInventoryPackageVO{ + private static final long serialVersionUID = 1L; + + + + + /** + * 库存品包条码 + */ + @ApiModelProperty(value = "库存品包条码") + private String stockPackageCode; + + /** + * 库存品包件Id + */ + @ApiModelProperty(value = "库存品包件Id") + private Long id; + + /** + * 库存品包件装车状态 + */ + @ApiModelProperty(value = "库存品包件装车状态") + private String stockLockingStatus; + + /** + * 库存品包件装车状态 + */ + @ApiModelProperty(value = "库存品包件装车状态") + private String stockLockingStatusName; + + /** + * 库存品包件装车状态 + */ + @ApiModelProperty(value = "库存品包件装车状态") + private String stockStatus; + + /** + * 库存品包件备货状态 + */ + @ApiModelProperty(value = "库存品包件备货状态") + private String stockStatusName; + + + /** + * 库存品包件签收状态 + */ + @ApiModelProperty(value = "库存品包件签收状态") + private String stockSignfoStatus; + + /** + * 库存品包件签收状态 + */ + @ApiModelProperty(value = "库存品包件签收状态") + private String stockSignfoStatusName; + + /** + * 库存品计划出库数量 + */ + @ApiModelProperty(value = "库存品计划出库数量") + private Integer num; + + /** + * 库存品包件物料编码 + */ + @ApiModelProperty(value = "库存品包件物料编码") + private String cargoNumber; + + /** + * 库存品包件订单自编码 + */ + @ApiModelProperty(value = "库存品包件订单自编码") + private String orderCode; + + /** + * 库存品包件入库批次号 + */ + @ApiModelProperty(value = "库存品包件入库批次号") + private String incomingBatch; + + /** + * 库存品包件物料名称 + */ + @ApiModelProperty(value = "库存品包件物料名称") + private String descriptionGoods; + + /** + * 库存品包件物料单位 + */ + @ApiModelProperty(value = "库存品包件物料单位") + private String cargoUnit; + + + /** + * 库存品包件商场名称 + */ + @ApiModelProperty(value = "库存品包件商场名称") + private String marketName; + + + /** + * 库存品包件品牌信息 + */ + @ApiModelProperty(value = "库存品包件品牌信息") + private String brandName; + + /** + * 库存品包件计划装车人 + */ + @ApiModelProperty(value = "库存品包件计划装车人") + private String driverName; + + /** + * 库存品包件计划装车车牌 + */ + @ApiModelProperty(value = "库存品包件计划装车车牌") + private String vehicleName; + + /** + * 库存品包件装车方式 + */ + @ApiModelProperty(value = "库存品包件装车方式") + private String scanStatus; + + /** + * 库存品包件装车时间 + */ + @ApiModelProperty(value = "库存品包件装车时间") + private String scanTime; + + + /** + * 库存品包件装车数量 + */ + @ApiModelProperty(value = "库存品包件装车数量") + private Integer loadedNub; + + /** + * 库存品包件装车人 + */ + @ApiModelProperty(value = "库存品包件装车人") + private String scanUser; + + /** + * 库存品包件签收人 + */ + @ApiModelProperty(value = "库存品包件签收人") + private String signingUser; + + /** + * 库存品包件签收时间 + */ + @ApiModelProperty(value = "库存品包件签收时间") + private String signingTime; + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java index 9b8b707b0..fa4319395 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java @@ -104,6 +104,17 @@ public class DistributionDeliveryListController extends BladeController { return R.data(pages); } + /** + * 查看库存品包件 详情 + */ + @GetMapping("/getReservationPackageList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看包件详情", notes = "传入distributionDeliveryList") + public R> getReservationPackageList(@RequestParam Map reservationPackageDTO, Query query) { + IPage pages = distributionDeliveryInfoService.getReservationPackageList(reservationPackageDTO,Condition.getPage(query)); + return R.data(pages); + } + /** * 查看订单 */ @@ -463,4 +474,12 @@ public class DistributionDeliveryListController extends BladeController { } return r; } + + @PostMapping("/deliveryInventorySign") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "PC签收包件") + public R deliveryInventorySign(@Valid @RequestBody DistrilbutionAppsignforDTO distrilbutionloadingscanDTO) { + R r = distributionSignforService.signforInPC(distrilbutionloadingscanDTO); + return r; + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java index cf79fd9d4..cb4ffd81a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java @@ -348,4 +348,12 @@ public interface DistributionReservationMapper extends BaseMapper packageIds); + + /** + * 查询客户库存品包件信息 + * @param reservationPackageDTO + * @param page + * @return + */ + IPage selectInvenToryPackageByReservationInfo(@Param("param") Map reservationPackageDTO,IPage page); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index 5034afa41..c97f4faec 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -1550,5 +1550,96 @@ and ldpl.third_product like concat('%',#{param.thirdProduct},'%') + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java index 763ed3594..7dbda9231 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java @@ -102,4 +102,11 @@ public interface IDistributionDeliveryInfoService extends BaseService selectDistributionAppDeliveryInventory( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO); + /** + * 配送详情查看库存品包件 + * @param reservationPackageDTO + * @param page + * @return + */ + IPage getReservationPackageList(Map reservationPackageDTO, IPage page); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java index 98594e606..be72b82c6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java @@ -247,4 +247,11 @@ public interface IDistributionSignforService extends BaseService packageIds, Long id) { List distributionParcelListEntities = distributionParcelListService.listByIds(packageIds); if (Func.isNotEmpty(distributionParcelListEntities)) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java index 4b6ba134f..3238e191a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java @@ -509,5 +509,20 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl getReservationPackageList(Map reservationPackageDTO, IPage page) { + String method = "DistributionDeliveryInfoServiceImpl类,getReservationPackageList方法"; + if (Func.isEmpty(reservationPackageDTO.get("reservationId"))){ + //参数缺失 + log.error(method+"reservationId参数缺失"); + return null; + } + IPage reservationInventoryPackageVOIPage = distributionReservationMapper.selectInvenToryPackageByReservationInfo(reservationPackageDTO,page); + + + + return reservationInventoryPackageVOIPage; + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index 86c7484ec..405603ee8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -1731,7 +1731,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl detailEntities = distributionReservationMapper.selectInventoryListByReservation(distrilbutionloadingscanDTO.getReservationId()); + + if (Func.isNotEmpty(split)){ + for (String s : split) { + List inventoryPackage = detailEntities.stream().filter(f -> Func.isNotEmpty(f.getStockPackageCode()) && f.getStockPackageCode().equals(s)).collect(Collectors.toList()); + if (Func.isNotEmpty(inventoryPackage) && inventoryPackage.size() == 1){ + //查看这个库存品是否进行装车, + DistributionLoadscaninvnEntity loadscaninvnEntity = distributionLoadscaninvnService.getOne(Wrappers.query().lambda() + .eq(DistributionLoadscaninvnEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) + .eq(DistributionLoadscaninvnEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) + .eq(DistributionLoadscaninvnEntity::getOrderPackageCode, s) + .ne(DistributionLoadscaninvnEntity::getScanStatus, 1)); + BladeUser user = AuthUtil.getUser(); + if (Func.isNotEmpty(loadscaninvnEntity)){ + //存在装车数据,进行状态变更即可 + loadscaninvnEntity.setSigningUserId(user.getUserId()); + loadscaninvnEntity.setSigningUser(user.getNickName()); + loadscaninvnEntity.setReceivedQuantity(inventoryPackage.get(0).getNum()); + loadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); + loadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date())); + loadscaninvnEntity.setOneQclick(1); + distributionLoadscaninvnService.updateById(loadscaninvnEntity); + //维护签收数量 + Integer j = distributionSignforMapper.updateSignforNum(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), loadscaninvnEntity.getPackageNub()); + //更新签收人 + Integer i = distributionSignforMapper.updateSignUser(loadscaninvnEntity.getDeliveryId(), loadscaninvnEntity.getReservationId(), user); + }else { + //不存在装车数据,需要进行装车数据的补录 + //库存品未进行装车 + //这里装车的数据需要进行补录 + DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); + DistributionDeliverySelfEntity distributionDeliverySelfEntity = new DistributionDeliverySelfDTO(); + if (deliveryListEntity.getKind().equals(ServiceConstant.DELIVERLIST_KIND_SELF)) { + distributionDeliverySelfEntity = distributionDeliverySelfMapper.selectOne(new QueryWrapper().lambda() + .eq(DistributionDeliverySelfEntity::getIsMaster, ServiceConstant.IS_MASTER_YES) + .eq(DistributionDeliverySelfEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) + ); + } else { + DistributionDeliveryTripartiteEntity distributionDeliveryTripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(new QueryWrapper().lambda() + .eq(DistributionDeliveryTripartiteEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId())); + BeanUtils.copyProperties(distributionDeliveryTripartiteEntity, distributionDeliverySelfEntity); + } + DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = new DistributionLoadscaninvnEntity(); + + if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverId())) { + distributionLoadscaninvnEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) { + distributionLoadscaninvnEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) { + distributionLoadscaninvnEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) { + distributionLoadscaninvnEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) { + distributionLoadscaninvnEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); + } + distributionLoadscaninvnEntity.setLoadingId(distributionDeliverySelfEntity.getId().toString()); + distributionLoadscaninvnEntity.setOrderPackageCode(inventoryPackage.get(0).getStockPackageCode()); + distributionLoadscaninvnEntity.setInventoryId(inventoryPackage.get(0).getStockListId()); + distributionLoadscaninvnEntity.setDeliveryId(distrilbutionloadingscanDTO.getDeliveryId()); + distributionLoadscaninvnEntity.setReservationId(distrilbutionloadingscanDTO.getReservationId()); + distributionLoadscaninvnEntity.setScanUser(user.getNickName()); + distributionLoadscaninvnEntity.setScanTime(simpleDateFormat.format(new Date())); + distributionLoadscaninvnEntity.setPackageNub(inventoryPackage.get(0).getNum()); + distributionLoadscaninvnEntity.setScanStatus(LoadingStatusConstant.yijianzhuangche.getValue()); + distributionLoadscaninvnEntity.setIsInsert(LoadingIsInsertConstant.bulu.getValue()); + distributionLoadscaninvnEntity.setScanType("1"); + distributionLoadscaninvnEntity.setType(2); + distributionLoadscaninvnEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); + distributionLoadscaninvnEntity.setIsSignfor(1); + distributionLoadscaninvnEntity.setReceivedQuantity(inventoryPackage.get(0).getNum()); + distributionLoadscaninvnEntity.setOneClick(1); + distributionLoadscaninvnEntity.setOneQclick(1); + distributionLoadscaninvnEntity.setLoadedNub(1); + distributionLoadscaninvnEntity.setSigningUser(user.getNickName()); + distributionLoadscaninvnEntity.setSigningUserId(user.getUserId()); + distributionLoadscaninvnEntity.setSigningTime(simpleDateFormat.format(new Date(System.currentTimeMillis()+(6*1000)))); + distributionLoadscaninvnService.save(distributionLoadscaninvnEntity); + //更新装车数量 + Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getPackageNub()); + //更新签收人 + Integer i = distributionSignforMapper.updateSignUser(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), AuthUtil.getUser()); + //扣减库存 + distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub()); + } + //修改对应库存品包件的签收数量 + DisStockListDetailEntity disStockListDetailEntity = inventoryPackage.get(0); + disStockListDetailEntity.setStockSignfoStatus(InventorySigningStatusConstant.yiqianshou.getValue()); + disStockListDetailService.updateById(disStockListDetailEntity); + }else { + //出现不属于当前客户的库存品包件信息 + log.error(method+"库存品包件信息异常,请检查!!!:{}",s); + throw new RuntimeException("数据异常,请联系管理员!!!"); + + } + } + } + return R.status(true); + } + private boolean judgmentSignIsHavePackage(Long reservationId) { boolean flag = false; List distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId); @@ -1853,7 +1976,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl