diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java index cfdacfe7a..4ce6d89a5 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java @@ -52,4 +52,10 @@ public interface IWarehouseUpdownTypeClient { @PostMapping(TOP + "/packageChangeStock") boolean packageChangeStock(@RequestBody List orderPackageCodes); + + @GetMapping(TOP + "/downPackageOrDelTray") + R downPackageOrDelTray(@RequestParam("orderPackageCodes") String orderPackageCodes, @RequestParam("warehouseId") Long warehouseId); + + + } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java index 0fd5dbcf4..fe076efe6 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java @@ -28,7 +28,7 @@ public class WarehouseTrayTypeClient implements IWarehouseTrayTypeClient { @Override public TrayTypeDataVO selectListByTrayCode(String trayCode) { - return warehouseTrayTypeService.selectListByTrayCode(trayCode); + return warehouseTrayTypeService.selectListByTrayCodeNoLimitation(trayCode); } @Override diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java index c11c0e6c8..3cd04935b 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java @@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSONObject; import com.logpm.warehouse.dto.UpShelfPackageDTO; import com.logpm.warehouse.dto.UpShelfStockDTO; import com.logpm.warehouse.dto.UpShelfZeroOrderDTO; +import com.logpm.warehouse.service.IWarehouseTaryAllocationService; import com.logpm.warehouse.service.IWarehouseUpdownTypeService; import lombok.AllArgsConstructor; import org.springblade.core.tool.api.R; @@ -58,6 +59,25 @@ public class WarehouseUpdownTypeClient implements IWarehouseUpdownTypeClient { } } + + @Override + public R downPackageOrDelTray(String orderPackageCodes,Long warehouseId) { + List upShelfPackageList = new ArrayList<>(); + String[] split = orderPackageCodes.split(","); + for(String orderPackageCode:split){ + UpShelfPackageDTO dto = new UpShelfPackageDTO(); + dto.setOrderPackageCode(orderPackageCode); + upShelfPackageList.add(dto); + } + if(upShelfPackageList.size() > 0){ + return warehouseUpdownTypeService.downPackageOrDelTray(upShelfPackageList,warehouseId); + }else{ + return R.fail(403,"处理失败"); + } + } + + + @Override public R downZeroOrder(List zeroOrders) { List ls = new ArrayList<>(); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java index 03a74f126..c7d84beed 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java @@ -89,4 +89,6 @@ public interface IWarehouseTrayTypeService extends BaseService upShelfPackageList,Long warehouseId); + R downPackageOrDelTray(List upShelfPackageList,Long warehouseId); + R downZeroOrder(List upShelfPackageList,Long warehouseId); R downEnterStock(String code, Integer stockType, Long marketId,Long warehouseId); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java index c6b27ddab..a4e030d4d 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java @@ -2621,6 +2621,86 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl queryTrayTypeWrapper = new QueryWrapper<>(); + queryTrayTypeWrapper.eq("is_deleted",0) + .eq("tray_code",trayCode); + WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryTrayTypeWrapper); + if(Objects.isNull(trayTypeEntity)){ + //没有查询到托盘打托信息 + return null; + } + String type = trayTypeEntity.getType();//类型 1扫码分拣(订制品) 2人工分拣(零担) 3库存品 + Long trayTypeId = trayTypeEntity.getId();//打托方式id + String trayType = trayTypeEntity.getTrayType(); + Long wId = trayTypeEntity.getWarehouseId();//托盘打托仓库 + + TrayTypeDataVO trayTypeDataVO = new TrayTypeDataVO(); + trayTypeDataVO.setTrayTypeId(trayTypeId); + trayTypeDataVO.setType(type); + trayTypeDataVO.setTrayCode(trayTypeEntity.getTrayCode()); + trayTypeDataVO.setTrayNum(trayTypeEntity.getTotalNum()); + trayTypeDataVO.setName(trayTypeEntity.getFilterValue()); + trayTypeDataVO.setOrderTotalNum(trayTypeEntity.getOrderTotalNum()); + trayTypeDataVO.setTrayType(trayType); + trayTypeDataVO.setMarketId(trayTypeEntity.getMarketId()); + trayTypeDataVO.setMarketName(trayTypeEntity.getMarketName()); + trayTypeDataVO.setReamrk(trayTypeEntity.getRemark()); + trayTypeDataVO.setWarehosueId(wId); + + QueryWrapper queryWrapper =new QueryWrapper<>(); + queryWrapper.eq("tray_type_id",trayTypeId); + + List goodsList = warehouseTrayGoodsService.list(queryWrapper); + trayTypeDataVO.setGoodsLsit(goodsList); + +// if(PalletProductTypeConstant.CUSTOMIZED.equals(type)){//订制品打托 +// String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_ORDER_TYPE, trayTypeEntity.getTrayType()); +// trayTypeDataVO.setTrayTypeName(trayTypeName); +// List list = warehouseTrayGoodsService.getListByTrayTypeId(trayTypeId); +// trayTypeDataVO.setList(list); +// }else if(PalletProductTypeConstant.ARTIFICIAL.equals(type)){ +// String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_ZERO_TYPE, trayTypeEntity.getTrayType()); +// trayTypeDataVO.setTrayTypeName(trayTypeName); +// List list = warehouseTrayGoodsService.getZeroListByTrayTypeId(trayTypeId); +// trayTypeDataVO.setList(list); +// }else if(PalletProductTypeConstant.STOCKDATA.equals(type)){ +// String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_STOCK_TYPE, trayTypeEntity.getTrayType()); +// trayTypeDataVO.setTrayTypeName(trayTypeName); +// List list = warehouseTrayGoodsService.getStockListByTrayTypeId(trayTypeId); +// trayTypeDataVO.setList(list); +// }else if(PalletProductTypeConstant.STOCKNODATA.equals(type)){ +// String trayTypeName = DictBizCache.getValue(DictBizConstant.PALLET_STOCKNODATA_TYPE, trayTypeEntity.getTrayType()); +// trayTypeDataVO.setTrayTypeName(trayTypeName); +// List list = warehouseTrayGoodsService.getStockListByTrayTypeId(trayTypeId); +// trayTypeDataVO.setList(list); +// }else { +// log.warn("##################getEntityByTrayCode: 未知的打托类型"); +// } +// return trayTypeDataVO; + return trayTypeDataVO; + } + + private R moveTrayOrderPackageCode(WarehouseTrayTypeEntity trayTypeEntity, String orderPackageCode) { Long wid = trayTypeEntity.getWarehouseId(); DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode,wid); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java index d9c8958fb..61a38dd38 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java @@ -1174,6 +1174,68 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl upShelfPackageList,Long warehouseId) { + int num = 0; + for (UpShelfPackageDTO upShelfPackageDTO:upShelfPackageList){ + String orderPackageCode = upShelfPackageDTO.getOrderPackageCode(); + //查询包件在哪个库位上 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("association_type","3") + .eq("warehouse_id",warehouseId) + .eq("association_value",orderPackageCode); + WarehouseUpdownGoodsEntity updownGoodsEntity = warehouseUpdownGoodsService.getOne(queryWrapper); + if(Objects.isNull(updownGoodsEntity)){ + log.warn("##############downPackage: 包件没有上架记录 orderPackageCode={}",orderPackageCode); + //判断是否有打托记录 + QueryWrapper trayGoodsEntityQueryWrapper = new QueryWrapper<>(); + trayGoodsEntityQueryWrapper.eq("association_type","3") + .eq("warehouse_id",warehouseId) + .eq("association_value",orderPackageCode); + WarehouseTrayGoodsEntity warehouseTrayGoodsEntity = warehouseTrayGoodsService.getOne(trayGoodsEntityQueryWrapper); + if(!Objects.isNull(warehouseTrayGoodsEntity)){ + //有托盘,托盘下托 + warehouseTrayTypeService.downPackageByOrderPackageCode(orderPackageCode,"包件下架:同步下托",warehouseId); + } + continue; + } + Long allocationId = updownGoodsEntity.getAllocationId(); + DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(orderPackageCode,warehouseId); + Integer quantity = parcelListEntity.getQuantity(); + Long updownGoodsId = updownGoodsEntity.getId(); + Long updownTypeId = updownGoodsEntity.getUpdownTypeId(); + WarehouseUpdownTypeEntity updownTypeEntity = baseMapper.selectById(updownTypeId); + QueryWrapper taryAllocationEntityQueryWrapper = new QueryWrapper<>(); + taryAllocationEntityQueryWrapper.eq("allocation_id",allocationId) + .eq("is_deleted",0); + WarehouseTaryAllocationEntity taryAllocationEntity = warehouseTaryAllocationService.getOne(taryAllocationEntityQueryWrapper); +// BasicdataTrayEntity trayEntity = warehouseTaryAllocationService.getTrayByAllocationId(allocationId); + if(!Objects.isNull(taryAllocationEntity)){ + //有托盘,托盘下托 + warehouseTrayTypeService.downPackageByOrderPackageCode(orderPackageCode,"包件下架:同步下托",warehouseId); + } + Integer residue = warehouseUpdownGoodsService.deleteByUpdownGoodsId(updownGoodsId); + if(residue == 0){ + //删除上架方式 + removeById(updownTypeId); + //修改库位状态为空闲 + basicdataGoodsAllocationClient.updateAllocationStatus(allocationId,"1"); + //如果有托盘还要删除托盘与库位的绑定 + if(!Objects.isNull(taryAllocationEntity)){ + warehouseTaryAllocationService.deleteById(taryAllocationEntity); + } + } + warehouseUpdownGoodsLogService.saveAllocationAndPackage(updownTypeEntity,parcelListEntity,"2",0,"包件下架:包件下架"); + updatePackageGroundingStatus(orderPackageCode,"10",warehouseId); + updateUpdownTypeNum(updownTypeEntity); + + num = num + quantity; + warehouseGoodsAllocationClient.updateAllocationCache(allocationId.toString()); + } + return Resp.scanSuccess("下架成功","成功下架"+num+"件"); + } + @Override public R downZeroOrder(List upShelfPackageList,Long warehouseId) { StringBuffer stringBuffer = new StringBuffer("下架零担订单成功");