From d08ca7d5495e8370d156a120f1ddfce7d2a0519f Mon Sep 17 00:00:00 2001 From: kilo Date: Sun, 15 Oct 2023 23:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BB=BB=E5=8A=A1=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=93=81=E3=80=81=E8=AE=A2=E5=8D=95=E3=80=81=E9=9B=B6?= =?UTF-8?q?=E6=8B=85=E8=AE=A2=E5=8D=95=E3=80=81=E5=8C=85=E4=BB=B6=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IDistributionParcelListClient.java | 2 + .../IDistributionStockArticleClient.java | 8 + .../feign/IDistributionStockListClient.java | 3 + .../entity/QuestDetailChildEntity.java | 1 + .../service/IBasicdataCarrierService.java | 2 + .../feign/DistributionParcelListClient.java | 1 + .../feign/DistributionStockArticleClient.java | 8 + .../feign/DistributionStockListClient.java | 17 ++ .../IDistributionStockArticleService.java | 10 ++ .../DistributionStockArticleServiceImpl.java | 15 ++ .../api/WarehouseTaskApiController.java | 22 +++ .../logpm/warehouse/dto/TaskSearchDTO.java | 28 +++- .../warehouse/mapper/TaskQuestMapper.java | 15 ++ .../warehouse/mapper/TaskQuestMapper.xml | 9 ++ .../warehouse/service/ITaskQuestService.java | 7 + .../service/impl/TaskQuestServiceImpl.java | 153 ++++++++++++++++++ 16 files changed, 297 insertions(+), 4 deletions(-) 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 09188cea5..f63dbd57d 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 @@ -87,4 +87,6 @@ public interface IDistributionParcelListClient { @GetMapping(API_PREFIX+"/SumEntityZkByOrderId") Integer SumEntityByOrderId(@RequestParam Long orderId,@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 3261b7124..0fb1e4da7 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 @@ -16,6 +16,8 @@ */ package com.logpm.distribution.feign; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.distribution.entity.DistributionStockArticleEntity; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.mp.support.BladePage; @@ -91,6 +93,12 @@ public interface IDistributionStockArticleClient { List findListByWaybillNumberAndWarehouseId(@RequestParam String waybillNumber, @RequestParam Long warehouseId); @GetMapping(API_PREFIX + "/updateGroundingStatus") void updateGroundingStatus(@RequestParam String orderCode, @RequestParam String groundingStatus, @RequestParam Long warehouseId); + @GetMapping(API_PREFIX + "/findZeroByOrderCodeAndWarehouseId") DistributionStockArticleEntity findZeroByOrderCodeAndWarehouseId(@RequestParam String orderCode, @RequestParam Long warehouseId); + + + @GetMapping(API_PREFIX + "/findStockArticleByCodeAndMarket") + DistributionStockArticleEntity findStockArticleByCodeAndMarketAndWarehouseId(@RequestParam String orderCode,@RequestParam List marketNames,@RequestParam Long warehosueId); + } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockListClient.java index 3b2e484ab..035c73acb 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockListClient.java @@ -112,6 +112,9 @@ public interface IDistributionStockListClient { @GetMapping(API_PREFIX+"/getListByMarketIdAndMaterialName") List getListByMarketIdAndMaterialName(@RequestParam("marketId") Long marketId, @RequestParam("materialName") String materialName, @RequestParam("warehouseId") Long warehouseId); + @GetMapping(API_PREFIX+"/getListByMarketIdAndMaterialName") + List getStockListByWarehouseIdAndMarketAndStockListInfo(String incomingBatch, List marketNames, Long warehouseId); + // /** // * 修改某个客户信息及物品信息 diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailChildEntity.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailChildEntity.java index 9d3ec6cb4..84385f3bf 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailChildEntity.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailChildEntity.java @@ -82,4 +82,5 @@ public class QuestDetailChildEntity extends TenantEntity { @ApiModelProperty(value = "仓库id") private Long warehouseId; + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCarrierService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCarrierService.java index 0d6322348..c74515b5f 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCarrierService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataCarrierService.java @@ -55,4 +55,6 @@ public interface IBasicdataCarrierService extends BaseService selectBasicdataCarrierDictionary(); + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index bba6ff3a3..3bdd588b7 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -59,6 +59,7 @@ public class DistributionParcelListClient implements IDistributionParcelListClie .eq(ObjectUtils.isNotNull(parcelListEntity.getOrderPackageCode()),DistributionParcelListEntity::getOrderPackageCode,parcelListEntity.getOrderPackageCode()) .eq(ObjectUtils.isNotNull(parcelListEntity.getId()),DistributionParcelListEntity::getId,parcelListEntity.getId()) .eq(ObjectUtils.isNotNull(parcelListEntity.getWarehouseId()),DistributionParcelListEntity::getWarehouseId,parcelListEntity.getWarehouseId()) + .eq(ObjectUtils.isNotNull(parcelListEntity.getStockArticleId()),DistributionParcelListEntity::getStockArticleId,parcelListEntity.getStockArticleId()) ); } 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 32dc932f3..9df9d8b58 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 @@ -16,6 +16,7 @@ */ package com.logpm.distribution.feign; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.entity.DistributionParcelListEntity; @@ -173,4 +174,11 @@ public class DistributionStockArticleClient implements IDistributionStockArticle return distributionStockArticleService.findZeroByOrderCodeAndWarehouseId(orderCode,warehouseId); } + + + @Override + public DistributionStockArticleEntity findStockArticleByCodeAndMarketAndWarehouseId(String code, List marketNames,Long warehouseId) { + return distributionStockArticleService.findStockArticleByCodeAndMarketAndWarehouseId(code,marketNames,warehouseId); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockListClient.java index fab4c2c1e..979384bed 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockListClient.java @@ -16,8 +16,10 @@ */ package com.logpm.distribution.feign; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.entity.DistributionStockListEntity; import com.logpm.distribution.service.IDistributionStockListService; import com.logpm.distribution.vo.DistributionStockListVO; @@ -26,6 +28,7 @@ import lombok.AllArgsConstructor; import org.springblade.core.mp.support.BladePage; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -156,5 +159,19 @@ public class DistributionStockListClient implements IDistributionStockListClient return distributionStockListService.getListByMarketIdAndMaterialName(marketId,materialName,warehouseId); } + @Override + public List getStockListByWarehouseIdAndMarketAndStockListInfo(String incomingBatch, List marketNames, Long warehouseId) { + LambdaQueryWrapper stockListEntityLambdaQueryWrapper = Wrappers.query().lambda(); + if (Func.isNotEmpty(incomingBatch)){ + stockListEntityLambdaQueryWrapper.like(DistributionStockListEntity::getIncomingBatch,incomingBatch).or().like(DistributionStockListEntity::getMarketName,incomingBatch); + } + if (Func.isNotEmpty(marketNames)){ + stockListEntityLambdaQueryWrapper.in(DistributionStockListEntity::getMarketName,marketNames); + } + stockListEntityLambdaQueryWrapper.eq(DistributionStockListEntity::getWarehouseId,warehouseId); + + return distributionStockListService.list(stockListEntityLambdaQueryWrapper); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java index 6861307c6..e1c28966a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java @@ -17,6 +17,7 @@ package com.logpm.distribution.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.dto.DistributionStockArticleDTO; import com.logpm.distribution.dto.app.queryOrderDTO; @@ -171,4 +172,13 @@ public interface IDistributionStockArticleService extends BaseService getZeroOrderDetail(Long id); + + + /** + * + * @param code + * @param marketNames + * @return + */ + DistributionStockArticleEntity findStockArticleByCodeAndMarketAndWarehouseId(String code, List marketNames,Long warehouseId); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java index d9818b1b0..85b3fce5a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java @@ -1058,6 +1058,21 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl marketNames,Long warehouseId) { + if (Func.isEmpty(warehouseId)){ + return null; + } + LambdaQueryWrapper lambda = Wrappers.query().lambda().eq(DistributionStockArticleEntity::getAcceptWarehouseId,warehouseId); + if (Func.isNotEmpty(code)){ + lambda.like(DistributionStockArticleEntity::getOrderCode,code); + } + if (Func.isNotEmpty(marketNames) && marketNames.size()>0){ + lambda.in(DistributionStockArticleEntity::getMallName,code); + } + return this.getOne(lambda); + } + @Override public DistributionStockArticleEntity findZeroByOrderCodeAndWarehouseId(String orderCode, Long warehouseId) { diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java index f9bac997f..6f21caec5 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java @@ -20,6 +20,7 @@ import org.springblade.common.exception.CustomerException; 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.springblade.core.tool.utils.StringUtil; import org.springframework.web.bind.annotation.*; @@ -69,6 +70,27 @@ public class WarehouseTaskApiController { return R.data(pages); } + + /** + * 合同号扫描 + */ + @PostMapping("/queryContract") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "合同号列表", notes = "code,type") + public R queryContract(@RequestBody TaskSearchDTO taskSearchDTO) { + String method = "###########queryContract: "; + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (Func.isEmpty(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(403,"仓库信息为空"); + } + taskSearchDTO.setWarehouseId(myCurrentWarehouse.getId()); + R r= taskQuestService.queryContract(taskSearchDTO); + return r; + } + + + /** * 托盘列表 */ diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/TaskSearchDTO.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/TaskSearchDTO.java index 3aab82a87..5b192387f 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/TaskSearchDTO.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/TaskSearchDTO.java @@ -42,7 +42,11 @@ public class TaskSearchDTO { @ApiModelProperty(value = "任务id") private Long questId; @ApiModelProperty(value = "搜索code") - private String trayCode; + private String code; + + + @ApiModelProperty(value = "输入内容") + private String incomingBatch; @ApiModelProperty(value = "托盘ID") private Long trayId; @@ -51,14 +55,30 @@ public class TaskSearchDTO { * type */ @ApiModelProperty(value = "type(1-手动输入,2-扫描)") - private String type; + private Integer type; /** - * 盘点任务Id + * goodsType 合同号类型 */ - @ApiModelProperty(value = "盘点任务Id") + @ApiModelProperty(value = "合同号类型; 1- 订制品、 2- 零担、3- 库存品") + private String goodsType; + + /** + * goodsType 合同号类型 + */ + @ApiModelProperty(value = "合同号类型; 1- 订制品、 2- 零担、3- 库存品") private Long taskId; + /** + * 列表存在订单ID + */ + @ApiModelProperty(value = "列表存在订单ID") + private String stockArticleIds; + + private String trayCode; + + + /** * 商场名称 */ diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java index e8ab001a3..1c4e7cecb 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java @@ -18,6 +18,7 @@ package com.logpm.warehouse.mapper; import com.logpm.warehouse.dto.TaskSearchDTO; import com.logpm.warehouse.entity.TaskQuestEntity; +import com.logpm.warehouse.entity.WarehouseTrayEntity; import com.logpm.warehouse.vo.*; import com.logpm.warehouse.excel.TaskQuestExcel; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -61,4 +62,18 @@ public interface TaskQuestMapper extends BaseMapper { void setSqlMode(); List selecttrayList(IPage page,@Param("param") TaskSearchDTO taskSearchDTO,@Param("collect") List collect); + + /** + * 查询包件托盘码 + * @param id + */ + WarehouseTrayEntity selectTratInfo(@Param("id") Long id,@Param("warehouseId") Long warehouseId); + + /** + * + * @param id + * @param warehouseId + * @return + */ + List selectZeroOrderTratInfo(@Param("stockArticleId") Long id,@Param("warehouseId") Long warehouseId); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml index 10cd66296..3fc6ca2c1 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml @@ -130,6 +130,15 @@ > GROUP BY lqd.tray_id + + diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/ITaskQuestService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/ITaskQuestService.java index 0551905f8..c65b71b40 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/ITaskQuestService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/ITaskQuestService.java @@ -76,6 +76,13 @@ public interface ITaskQuestService extends BaseService { */ R selecttrayList(IPage page, TaskSearchDTO taskSearchDTO); + /** + * 合同号扫描 + * @param taskSearchDTO + * @return + */ + R queryContract(TaskSearchDTO taskSearchDTO); + List allocationDetailByPackage(TaskSearchDTO taskSearchDTO); List allocationDetailByZero(TaskSearchDTO taskSearchDTO); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java index 28a367635..c81bf0153 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java @@ -16,6 +16,7 @@ */ package com.logpm.warehouse.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -43,6 +44,8 @@ import com.logpm.warehouse.service.*; import com.logpm.warehouse.vo.*; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; +import org.springblade.common.constant.common.IsOrNoConstant; +import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.CommonUtil; import org.springblade.core.mp.base.BaseServiceImpl; @@ -54,6 +57,8 @@ import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -94,6 +99,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl selectTaskQuestPage(IPage page, TaskQuestVO taskQuest) { //获取当前登录人仓库 @@ -222,7 +228,21 @@ public class TaskQuestServiceImpl extends BaseServiceImpl selectcontractList(IPage page, TaskSearchDTO taskSearchDTO) { List collect = this.getmyWarehouseList(); baseMapper.setSqlMode(); + String goodsType = taskSearchDTO.getGoodsType(); + switch (goodsType){ + case "1": + //订制品 + List list = baseMapper.selectcontractList(page, taskSearchDTO, collect); + break; + case "2": + //零担 + break; + case "3": + //库存品 + break; + } List list = baseMapper.selectcontractList(page, taskSearchDTO, collect); + if (!list.isEmpty()) { for (TaskContractVO taskContractVO : list) { Long orderId = taskContractVO.getOrderId(); @@ -305,6 +325,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl entityListByOrderCode = distributionParcelListClient.findEntityListByOrderCode(taskSearchDTO.getCode(), taskSearchDTO.getWarehouseId()); + if (Func.isNotEmpty(entityListByOrderCode)){ + DistributionParcelListEntity parcelListEntity = entityListByOrderCode.get(0); + taskSearchDTO.setCode(parcelListEntity.getOrderCode()); + } + } + String incomingBatch = taskSearchDTO.getIncomingBatch(); + if (Func.isEmpty(incomingBatch)){ + log.error("####################订单合同号为空"); + return Resp.scanFail("操作失败","请输入正确合同号"); + } + Long taskQuestId = taskSearchDTO.getTaskId(); + verifyTask(taskQuestId,taskSearchDTO.getWarehouseId()); + List taskQuestChildEntityList = taskQuestChildService.list(Wrappers.query().lambda() + .eq(TaskQuestChildEntity::getQuestId, taskQuestId) + .eq(TaskQuestChildEntity::getRefType, 1)); + DistributionStockArticleEntity stockArticleEntity = null; + AtomicInteger libNum = new AtomicInteger(); + List marketNames = null; + if (Func.isEmpty(taskQuestId)){ + //全仓盘点 + stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(incomingBatch,taskSearchDTO.getWarehouseId()); + }else { + if (Func.isNotEmpty(taskQuestChildEntityList)){ + marketNames = taskQuestChildEntityList.stream().map(TaskQuestChildEntity::getRefName).collect(Collectors.toList()); + stockArticleEntity = distributionStockArticleClient.findStockArticleByCodeAndMarketAndWarehouseId(taskSearchDTO.getCode(), marketNames,taskSearchDTO.getWarehouseId()); + }else { + log.error("###################盘点任务查询失败"); + } + } + switch (goodsType){ + case "1": + + if (Func.isEmpty(stockArticleEntity)){ + log.error("###################此订单不属于该次盘点任务"); + return Resp.scanFail("操作失败","不属于该任务"); + } + DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity(); + parcelListEntity.setStockArticleId(stockArticleEntity.getId()); + List parcelList = distributionParcelListClient.getParcelList(parcelListEntity); + if (Func.isEmpty(parcelList)){ + log.error("###################查询订单包件错误,订单ID:{}",stockArticleEntity.getId()); + } + if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())){ + parcelList.forEach(p->{ + QuestDetailEntity questDetailEntity = new QuestDetailEntity(); + if (!p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yichuku.getValue()) && !p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())){ + WarehouseTrayEntity warehouseTrayEntity = baseMapper.selectTratInfo(p.getId(),taskSearchDTO.getWarehouseId()); + WarehouseUpdownGoodsEntity updownGoodsPack = getUpdownGoodsPack(p.getId(), "3", p.getOrderPackageCode(), taskSearchDTO.getWarehouseId()); + if (Func.isNotEmpty(warehouseTrayEntity)){ + questDetailEntity.setTrayCode(warehouseTrayEntity.getPalletCode()); + questDetailEntity.setTrayId(warehouseTrayEntity.getId()); + } + if (Func.isNotEmpty(updownGoodsPack)){ + questDetailEntity.setAllocationId(updownGoodsPack.getId()); + } + questDetailEntity.setOrdePackageCode(p.getOrderPackageCode()); + questDetailEntity.setOrderCode(p.getOrderCode()); + questDetailEntity.setOrderId(p.getStockArticleId()); + libNum.getAndAdd(p.getQuantity()); + questDetailEntity.setIsNew(0); + questDetailEntity.setQuestId(taskQuestId); + questDetailEntity.setQuestStatus(0); + questDetailEntity.setQuestTarget(1); + questDetailEntity.setQuestType(3); + questDetailService.save(questDetailEntity); + } + }); + }else { + QuestDetailEntity questDetailEntity = new QuestDetailEntity(); + DistributionStockArticleEntity stockArticleInfo = getStockArticleInfo(stockArticleEntity.getId()); + WarehouseUpdownGoodsEntity updownGoodsPack = getUpdownGoodsPack(stockArticleInfo.getId(), "1", stockArticleInfo.getOrderCode(), taskSearchDTO.getWarehouseId()); + List warehouseTrayEntities = baseMapper.selectZeroOrderTratInfo(stockArticleInfo.getId(),taskSearchDTO.getWarehouseId()); + if (Func.isNotEmpty(warehouseTrayEntities)){ + List strings = warehouseTrayEntities.stream().map(WarehouseTrayEntity::getPalletCode).distinct().collect(Collectors.toList()); + questDetailEntity.setTrayCode(String.join(",",strings)); + } + if (Func.isNotEmpty(updownGoodsPack)){ + questDetailEntity.setAllocationId(updownGoodsPack.getId()); + } + questDetailEntity.setOrderCode(stockArticleInfo.getOrderCode()); + libNum.getAndAdd(stockArticleInfo.getHandQuantity()); + questDetailEntity.setIsNew(0); + questDetailEntity.setQuestId(taskQuestId); + questDetailEntity.setQuestStatus(0); + questDetailEntity.setQuestTarget(1); + questDetailEntity.setQuestType(3); + questDetailService.save(questDetailEntity); + } + break; + case "2": + //库存品 + List stockListByWarehouseIdAndMarketAndStockListInfo = distributionStockListClient.getStockListByWarehouseIdAndMarketAndStockListInfo(incomingBatch, marketNames, taskSearchDTO.getWarehouseId()); + stockListByWarehouseIdAndMarketAndStockListInfo.forEach(s->{ + QuestDetailEntity questDetailEntity = new QuestDetailEntity(); + questDetailEntity.setOrderCode(s.getOrderCode()); + questDetailEntity.setIsNew(0); + questDetailEntity.setQuestId(taskQuestId); + questDetailEntity.setQuestStatus(0); + questDetailEntity.setQuestTarget(1); + questDetailEntity.setQuestType(3); + libNum.getAndAdd(s.getQuantityStock() - s.getOutboundQuantity()); + questDetailEntity.setStockId(s.getId()); + questDetailService.save(questDetailEntity); + }); + break; + default: + log.error("####################缺少货物类型字段"); + break; + } + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setTotal(stockArticleEntity.getTotalNumber()); + taskContractVO.setOrderId(stockArticleEntity.getId()); + taskContractVO.setUnTotal(0); + taskContractVO.setZktotal(libNum.get()); + + return R.data(taskContractVO); + } + + private String getQuestNum(String warehouseCode) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); return "PDRW-" + warehouseCode + "-" + simpleDateFormat.format(new Date()) + new Random().nextInt(900) + 100;