From b0b0273c5d6784a0c99cd98214bc31b39ff3e221 Mon Sep 17 00:00:00 2001 From: kilo Date: Tue, 17 Oct 2023 10:38:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E5=88=B6=E5=93=81=E3=80=81=E9=9B=B6?= =?UTF-8?q?=E6=8B=85=E3=80=81=E5=BA=93=E5=AD=98=E5=93=81=E7=9B=98=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IDistributionParcelListClient.java | 7 + .../IDistributionStockArticleClient.java | 4 +- .../vo/DistributionPackadeliVO.java | 2 + .../warehouse/entity/QuestDetailEntity.java | 5 + .../logpm/warehouse/vo/TaskContractVO.java | 22 +- .../logpm/warehouse/vo/TaskPackagelistVO.java | 65 ++ .../logpm/warehouse/vo/TaskStripApiVO.java | 1 + .../com/logpm/warehouse/vo/TaskTrayVO.java | 2 + .../feign/DistributionParcelListClient.java | 6 + .../feign/DistributionStockArticleClient.java | 4 +- .../feign/DistributionStockListClient.java | 3 +- .../IDistributionParcelListService.java | 7 + .../IDistributionStockArticleService.java | 2 +- .../DistributionDeliveryListServiceImpl.java | 5 +- .../DistributionParcelListServiceImpl.java | 5 + .../DistributionStockArticleServiceImpl.java | 17 +- .../api/WarehouseTaskApiController.java | 17 +- .../logpm/warehouse/dto/TaskSearchDTO.java | 15 + .../warehouse/service/ITaskQuestService.java | 7 + .../service/impl/TaskQuestServiceImpl.java | 783 ++++++++++++------ 20 files changed, 691 insertions(+), 288 deletions(-) create mode 100644 blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java 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 3098be8d6..433eedf55 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 @@ -89,4 +89,11 @@ public interface IDistributionParcelListClient { Integer SumEntityByOrderId(@RequestParam Long orderId,@RequestParam Long warehouseId); + /** + * 查询订单下所有包件信息 + * @param id + * @return + */ + @GetMapping(API_PREFIX+"/getParcelListByStockArticleId") + List getParcelListByStockArticleId(@RequestParam Long id); } 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 0fb1e4da7..1e031bb57 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 @@ -98,7 +98,7 @@ public interface IDistributionStockArticleClient { DistributionStockArticleEntity findZeroByOrderCodeAndWarehouseId(@RequestParam String orderCode, @RequestParam Long warehouseId); - @GetMapping(API_PREFIX + "/findStockArticleByCodeAndMarket") - DistributionStockArticleEntity findStockArticleByCodeAndMarketAndWarehouseId(@RequestParam String orderCode,@RequestParam List marketNames,@RequestParam Long warehosueId); + @GetMapping(API_PREFIX + "/findStockArticleByCodeAndMarketAndWarehouseId") + List findStockArticleByCodeAndMarketAndWarehouseId(@RequestParam String incomingBatch,@RequestParam String marketNames,@RequestParam Long warehouseId); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionPackadeliVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionPackadeliVO.java index 60f191d43..adced4846 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionPackadeliVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionPackadeliVO.java @@ -32,4 +32,6 @@ public class DistributionPackadeliVO extends DistributionPackadeliEntity { private static final long serialVersionUID = 1L; + + } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailEntity.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailEntity.java index 3904a756b..5713d1aeb 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailEntity.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/QuestDetailEntity.java @@ -170,6 +170,11 @@ public class QuestDetailEntity extends TenantEntity { */ private String materialCode; + /** + * 物料名称 + */ + private String materialName; + /** * 商场名称 */ diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskContractVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskContractVO.java index e7e3dd86b..1b5d6922f 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskContractVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskContractVO.java @@ -3,6 +3,8 @@ package com.logpm.warehouse.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + @Data public class TaskContractVO { @@ -18,7 +20,6 @@ public class TaskContractVO { @ApiModelProperty(value = "订单号") private Long orderId; - /** * 总件数 */ @@ -36,4 +37,23 @@ public class TaskContractVO { */ @ApiModelProperty(value = "盘点件数") private Integer unTotal; + + + /** + * 是否是零担 0- 否 1-是 + */ + @ApiModelProperty(value = "是否是零担 0- 否 1-是") + private Integer isZero; + + /** + * 是否是库存品 0- 否 1-是 + */ + @ApiModelProperty(value = "是否是库存品 0- 否 1-是") + private Integer isInventory; + + /** + * 包件列表 + */ + @ApiModelProperty(value = "包件列表") + List packagelistVOList; } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java new file mode 100644 index 000000000..9b4a2c0fe --- /dev/null +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java @@ -0,0 +1,65 @@ +package com.logpm.warehouse.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class TaskPackagelistVO { + + /** + * 订单自编号 + */ + @ApiModelProperty(value = "订单自编号") + private String orderCode; + + /** + * 包条码 + */ + @ApiModelProperty(value = "订单自编号") + private String orderPackageCode; + + /** + * 包条码 + */ + @ApiModelProperty(value = "订单自编号") + private String waybillNub; + + /** + * 库位信息 + */ + @ApiModelProperty(value = "订单自编号") + private String allocation; + + /** + * 当前状态 只能是在库 + */ + @ApiModelProperty(value = "当前状态 只能是在库") + private String currentStatus; + + /** + * 订单号 + */ + @ApiModelProperty(value = "订单号") + private Long orderId; + + /** + * 数量 + */ + @ApiModelProperty(value = "数量") + private Integer quantity; + + /** + * 数量 + */ + @ApiModelProperty(value = "物料名称") + private String materialName; + + /** + * 物料编码 + */ + @ApiModelProperty(value = "物料编码") + private String materialCode; + + + +} diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskStripApiVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskStripApiVO.java index 8dcc00103..2dd97142c 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskStripApiVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskStripApiVO.java @@ -79,6 +79,7 @@ public class TaskStripApiVO { private String materialCode; + private String materialName; private String waybillNo; diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskTrayVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskTrayVO.java index 27021aff2..2175c57a9 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskTrayVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskTrayVO.java @@ -56,4 +56,6 @@ public class TaskTrayVO { */ private List list; + + } 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 32517fbd3..819c2f75e 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 @@ -151,4 +151,10 @@ public class DistributionParcelListClient implements IDistributionParcelListClie Integer i = distributionParcelListService.selectSumByOrderId(orderId,warehouseId); return i; } + + @Override + public List getParcelListByStockArticleId(Long id) { + + return distributionParcelListService.getParcelListByStockArticleId(id); + } } 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 9df9d8b58..bba65b68a 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 @@ -177,8 +177,8 @@ public class DistributionStockArticleClient implements IDistributionStockArticle @Override - public DistributionStockArticleEntity findStockArticleByCodeAndMarketAndWarehouseId(String code, List marketNames,Long warehouseId) { - return distributionStockArticleService.findStockArticleByCodeAndMarketAndWarehouseId(code,marketNames,warehouseId); + public List findStockArticleByCodeAndMarketAndWarehouseId(String incomingBatch, String marketNames,Long warehouseId) { + return distributionStockArticleService.findStockArticleByCodeAndMarketAndWarehouseId(incomingBatch,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 979384bed..01ce2518f 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 @@ -163,7 +163,7 @@ public class DistributionStockListClient implements IDistributionStockListClient 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); + stockListEntityLambdaQueryWrapper.eq(DistributionStockListEntity::getIncomingBatch,incomingBatch).or().eq(DistributionStockListEntity::getMarketCode,incomingBatch); } if (Func.isNotEmpty(marketNames)){ stockListEntityLambdaQueryWrapper.in(DistributionStockListEntity::getMarketName,marketNames); @@ -173,5 +173,4 @@ public class DistributionStockListClient implements IDistributionStockListClient return distributionStockListService.list(stockListEntityLambdaQueryWrapper); } - } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index 8de7d0a59..c5032d0a8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -132,4 +132,11 @@ public interface IDistributionParcelListService extends BaseService distributionParcelList); Integer selectSumByOrderId(Long orderId, Long warehouseId); + + /** + * 查询订单下所有包件信息 + * @param id + * @return + */ + List getParcelListByStockArticleId(Long id); } 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 e1c28966a..5861a7427 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 @@ -180,5 +180,5 @@ public interface IDistributionStockArticleService extends BaseService marketNames,Long warehouseId); + List findStockArticleByCodeAndMarketAndWarehouseId(String code, String marketNames,Long warehouseId); } 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 5cc28f842..3d46a7403 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 @@ -481,6 +481,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImplquery().lambda() diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index cee4f39f6..9fcd2c067 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -341,6 +341,11 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl getParcelListByStockArticleId(Long id) { + return this.list(Wrappers.query().lambda().eq(DistributionParcelListEntity::getStockArticleId,id)); + } + /** * * @param distributionParcelList 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 fb3e6af7c..f982b27e0 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 @@ -46,6 +46,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.common.IsOrNoConstant; +import org.springblade.common.constant.order.OrderStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageGroundingStatusConstant; import org.springblade.common.constant.printTemplate.PrintTemplateStatusConstant; import org.springblade.common.utils.CommonUtil; @@ -1078,18 +1079,22 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl marketNames,Long warehouseId) { + public List findStockArticleByCodeAndMarketAndWarehouseId(String code, String marketNames,Long warehouseId) { if (Func.isEmpty(warehouseId)){ return null; } - LambdaQueryWrapper lambda = Wrappers.query().lambda().eq(DistributionStockArticleEntity::getAcceptWarehouseId,warehouseId); + ArrayList str = new ArrayList<>(); + str.add(OrderStatusConstant.qianshou.getValue()); + str.add(OrderStatusConstant.chuku.getValue()); + LambdaQueryWrapper lambda = Wrappers.query().lambda() + .eq(DistributionStockArticleEntity::getAcceptWarehouseId,warehouseId).notIn(DistributionStockArticleEntity::getOrderStatus,str); if (Func.isNotEmpty(code)){ - lambda.like(DistributionStockArticleEntity::getOrderCode,code); + lambda.eq(DistributionStockArticleEntity::getOrderCode,code); } - if (Func.isNotEmpty(marketNames) && marketNames.size()>0){ - lambda.in(DistributionStockArticleEntity::getMallName,code); + if (Func.isNotEmpty(marketNames)){ + lambda.in(DistributionStockArticleEntity::getMallName,Func.toStrList(",",marketNames)); } - return this.getOne(lambda); + return this.list(lambda); } 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 0f3bbff83..a3b368218 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 @@ -74,7 +74,7 @@ public class WarehouseTaskApiController { } /** - * 合同号列表 + * 合同号查询列表 */ @GetMapping("/contractList") @ApiOperationSupport(order = 1) @@ -86,7 +86,20 @@ public class WarehouseTaskApiController { /** - * 合同号扫描 + * 合同号订单详情 + */ + @GetMapping("/contractQuestDetail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "合同号列表", notes = "code,type") + public R contractQuestDetail(TaskSearchDTO taskSearchDTO) { + R r = taskQuestService.contractQuestDetail(taskSearchDTO); + return r; + } + + + + /** + * 合同号方式添加查询 */ @PostMapping("/queryContract") @ApiOperationSupport(order = 1) 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 424966e3d..f86ac932b 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 @@ -57,6 +57,12 @@ public class TaskSearchDTO { @ApiModelProperty(value = "type(1-手动输入,2-扫描)") private Integer type; + /** + * 是否库存品 + */ + @ApiModelProperty(value = "0 否 1是") + private Integer isInventory; + /** * goodsType 合同号类型 */ @@ -75,10 +81,19 @@ public class TaskSearchDTO { @ApiModelProperty(value = "列表存在订单ID") private String stockArticleIds; + /** + * 订单ID + */ + @ApiModelProperty(value = "订单ID") + private Long orderId; + private String trayCode; + + + /** * 商场名称 */ 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 cf232ddc3..2058f29c4 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 @@ -107,6 +107,13 @@ public interface ITaskQuestService extends BaseService { List findMaterialList(TaskSearchDTO taskSearchDTO); + /** + * 盘点合同查询详情 + * @param taskSearchDTO + * @return + */ + R contractQuestDetail(TaskSearchDTO taskSearchDTO); + IPage SelectStrip(IPage page,Long id); IPage SelectInventory(IPage page,Long id); 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 ca6841ba2..029605648 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 @@ -17,6 +17,7 @@ package com.logpm.warehouse.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; +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.ObjectUtils; @@ -29,6 +30,7 @@ import com.logpm.distribution.entity.DistributionStockListEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.distribution.feign.IDistributionStockListClient; +import com.logpm.distribution.vo.DistributionPackadeliVO; import com.logpm.distribution.vo.DistributionStockListVO; import com.logpm.warehouse.bean.Resp; import com.logpm.warehouse.dto.QuestDetailDTO; @@ -96,8 +98,6 @@ public class TaskQuestServiceImpl extends BaseServiceImpl selectTaskQuestPage(IPage page, TaskQuestVO taskQuest) { //获取当前登录人仓库 @@ -226,45 +226,67 @@ public class TaskQuestServiceImpl extends BaseServiceImpl 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; + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda() + .eq(QuestDetailEntity::getQuestType, 3) + .eq(QuestDetailEntity::getQuestId, taskSearchDTO.getTaskId()); + List list = new ArrayList<>(); + List questDetailEntityList = questDetailService.list(queryWrapper); + if (Func.isEmpty(questDetailEntityList)){ + return null; } - List list = baseMapper.selectcontractList(page, taskSearchDTO, collect); - - if (!list.isEmpty()) { - for (TaskContractVO taskContractVO : list) { - Long orderId = taskContractVO.getOrderId(); - String orderCode = taskContractVO.getOrderCode(); - //查询该订单,如果是零担直接用在库数量 - DistributionStockArticleEntity entityByStockArticle = distributionStockArticleClient.findEntityByStockArticleId(orderId); - if (entityByStockArticle.getIsZero().equals("1")) { - if (entityByStockArticle.getGenre() == 1) { - taskContractVO.setTotal(entityByStockArticle.getTotalNumber()); - taskContractVO.setZktotal(entityByStockArticle.getTotalNumber()); - } - } else if (entityByStockArticle.getIsZero().equals("0")) { - //包条 - if (entityByStockArticle.getGenre() == 1) { - //查询该订单下包条的所有数量 - Integer integer = distributionParcelListClient.SumEntityByOrderId(orderId, null); - Integer integer1 = distributionParcelListClient.SumEntityByOrderId(orderId, collect.get(0)); - taskContractVO.setTotal(integer); - taskContractVO.setZktotal(integer1); - } - + Map> questDetailMap = questDetailEntityList.stream().collect(Collectors.groupingBy(QuestDetailEntity::getQuestTarget)); + //订制品 + List questDetailEntities = questDetailMap.get(1); + List zeroQuestDetailEntities = questDetailMap.get(2); + List inventoryQuestDetailEntities = questDetailMap.get(3); + if (Func.isNotEmpty(questDetailEntities)){ + Map> orderMap = questDetailEntities.stream().collect(Collectors.groupingBy(QuestDetailEntity::getOrderId)); + orderMap.forEach((k,v)->{ + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findEntityByStockArticleId(k); + List detailEntities = orderMap.get(k); + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setIsInventory(0); + taskContractVO.setIsZero(0); + taskContractVO.setOrderCode(detailEntities.get(0).getOrderCode()); + taskContractVO.setOrderId(k); + taskContractVO.setTotal(detailEntities.stream().mapToInt(QuestDetailEntity::getStockNum).sum()); + taskContractVO.setZktotal(detailEntities.stream().mapToInt(QuestDetailEntity::getStockNum).sum()); + taskContractVO.setUnTotal(detailEntities.stream().filter(q->Func.equals(q.getQuestStatus(),1)).mapToInt(QuestDetailEntity::getStockNum).sum()); + list.add(taskContractVO); + }); + } + if (Func.isNotEmpty(zeroQuestDetailEntities)){ + for (QuestDetailEntity questDetailEntity : zeroQuestDetailEntities) { + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findEntityByStockArticleId(questDetailEntity.getOrderId()); + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setIsInventory(0); + taskContractVO.setIsZero(1); + taskContractVO.setOrderCode(questDetailEntity.getOrderCode()); + taskContractVO.setOrderId(questDetailEntity.getOrderId()); + taskContractVO.setTotal(stockArticleEntity.getTotalNumber()); + taskContractVO.setZktotal(questDetailEntity.getStockNum()); + taskContractVO.setUnTotal(questDetailEntity.getStockNum()); + list.add(taskContractVO); + } + } + if (Func.isNotEmpty(inventoryQuestDetailEntities)){ + for (QuestDetailEntity questDetailEntity : inventoryQuestDetailEntities) { + DistributionStockListEntity stockListEntity = distributionStockListClient.getStockListById(questDetailEntity.getStockId()); + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setOrderCode(questDetailEntity.getOrderCode()); + taskContractVO.setOrderId(questDetailEntity.getStockId()); + taskContractVO.setTotal(stockListEntity.getQuantityStock()); + taskContractVO.setIsZero(0); + taskContractVO.setIsInventory(1); + taskContractVO.setZktotal(questDetailEntity.getStockNum()); + taskContractVO.setUnTotal(0); + if (questDetailEntity.getQuestStatus().equals(1)){ + taskContractVO.setUnTotal(questDetailEntity.getStockNum()); } - + list.add(taskContractVO); } } + return page.setRecords(list); } @@ -330,6 +352,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl getTaskTrayInfo(List list1){ @@ -337,7 +360,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl list = new ArrayList<>(); list1.stream().collect(Collectors.groupingBy(QuestDetailEntity::getTrayId)) - .forEach((k,v) ->{ + .forEach((k, v) -> { TaskTrayVO taskTrayVO = new TaskTrayVO(); taskTrayVO.setTrayId(k); AtomicReference num = new AtomicReference<>(0); //总数 @@ -345,10 +368,10 @@ public class TaskQuestServiceImpl extends BaseServiceImpl{ taskTrayVO.setTrayCode(p.getTrayCode()); num.set(num.get() + p.getStockNum()); - if(p.getQuestStatus().equals(1)){ + if (p.getQuestStatus().equals(1)) { unTotal.set(unTotal.get() + p.getQuestStatus()); } - switch (p.getQuestTarget()){ + switch (p.getQuestTarget()) { case 1: taskTrayVO.setGoodsType("定制品"); break; @@ -364,16 +387,17 @@ public class TaskQuestServiceImpl extends BaseServiceImpl list1,String type){ - TaskTrayVO taskTrayVO = new TaskTrayVO(); list1.stream().collect(Collectors.groupingBy(QuestDetailEntity::getTrayId)) .forEach((k,v) ->{ @@ -420,6 +444,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl list = taskQuestChildService.list(Wrappers.query().lambda() .eq(TaskQuestChildEntity::getQuestId, taskId) ); - if(!list.isEmpty()){ + if (!list.isEmpty()) { boolean b = list.stream().anyMatch(t -> ObjectUtils.isNotNull(t.getRefId())); List warehouseTrayGoodsEntities = warehouseTrayGoodsMapper.selectList(Wrappers.query().lambda() .eq(WarehouseTrayGoodsEntity::getTrayId, trayByTrayCode.getId()) .eq(WarehouseTrayGoodsEntity::getWarehouseId, warehouseId) ); - if(!warehouseTrayGoodsEntities.isEmpty()){ + if (!warehouseTrayGoodsEntities.isEmpty()) { List questDetailList = new ArrayList<>(); for (int ii = 0; ii < warehouseTrayGoodsEntities.size(); ii++) { WarehouseTrayGoodsEntity i = warehouseTrayGoodsEntities.get(ii); @@ -573,7 +598,7 @@ public class TaskQuestServiceImpl extends BaseServiceImplquery().lambda() + private WarehouseUpdownGoodsEntity getUpdownGoodsPack(Long associationId, String type, String associationValue, Long warehouseId) { + return warehouseUpdownGoodsMapper.selectOne(Wrappers.query().lambda() .eq(WarehouseUpdownGoodsEntity::getAssociationValue, associationValue) .eq(WarehouseUpdownGoodsEntity::getAssociationId, associationId) .eq(WarehouseUpdownGoodsEntity::getAssociationType, type) @@ -603,9 +629,10 @@ public class TaskQuestServiceImpl extends BaseServiceImplquery().lambda() .eq(WarehouseUpdownGoodsEntity::getAssociationValue, associationValue) .eq(WarehouseUpdownGoodsEntity::getMarketId, marketId) @@ -615,25 +642,26 @@ public class TaskQuestServiceImpl extends BaseServiceImpl allocationDetailByPackage(TaskSearchDTO taskSearchDTO) { @@ -641,7 +669,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl lsPackage = warehouseUpdownGoodsMapper.allocationDetailByPackage(taskSearchDTO); @@ -656,12 +684,12 @@ public class TaskQuestServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("quest_id",questId) - .eq("is_deleted",0); + queryWrapper.eq("quest_id", questId) + .eq("is_deleted", 0); List questChildEntitys = taskQuestChildService.list(queryWrapper); List marketNames = null; - for (TaskQuestChildEntity childEntity:questChildEntitys) { - if(Objects.isNull(marketNames)){ + for (TaskQuestChildEntity childEntity : questChildEntitys) { + if (Objects.isNull(marketNames)) { marketNames = new ArrayList<>(); } marketNames.add(childEntity.getRefName()); @@ -670,14 +698,14 @@ public class TaskQuestServiceImpl extends BaseServiceImpl questDetailEntityQueryWrapper = new QueryWrapper<>(); - questDetailEntityQueryWrapper.eq("quest_id",questId) - .eq("quest_type",2) - .eq("quest_target",1) - .eq("warehouse_id",warehouseId) - .eq("allocation_id",allocationId) - .eq("is_deleted",0); + questDetailEntityQueryWrapper.eq("quest_id", questId) + .eq("quest_type", 2) + .eq("quest_target", 1) + .eq("warehouse_id", warehouseId) + .eq("allocation_id", allocationId) + .eq("is_deleted", 0); List questDetailEntities = questDetailService.list(questDetailEntityQueryWrapper); - if(!questDetailEntities.isEmpty()){ + if (!questDetailEntities.isEmpty()) { return questDetailEntities; } @@ -690,7 +718,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("quest_id",questId) - .eq("is_deleted",0); + queryWrapper.eq("quest_id", questId) + .eq("is_deleted", 0); List questChildEntitys = taskQuestChildService.list(queryWrapper); List marketNames = null; - for (TaskQuestChildEntity childEntity:questChildEntitys) { - if(Objects.isNull(marketNames)){ + for (TaskQuestChildEntity childEntity : questChildEntitys) { + if (Objects.isNull(marketNames)) { marketNames = new ArrayList<>(); } marketNames.add(childEntity.getRefName()); @@ -720,14 +748,14 @@ public class TaskQuestServiceImpl extends BaseServiceImpl questDetailEntityQueryWrapper = new QueryWrapper<>(); - questDetailEntityQueryWrapper.eq("quest_id",questId) - .eq("quest_type",2) - .eq("quest_target",2) - .eq("warehouse_id",warehouseId) - .eq("allocation_id",allocationId) - .eq("is_deleted",0); + questDetailEntityQueryWrapper.eq("quest_id", questId) + .eq("quest_type", 2) + .eq("quest_target", 2) + .eq("warehouse_id", warehouseId) + .eq("allocation_id", allocationId) + .eq("is_deleted", 0); List questDetailEntities = questDetailService.list(questDetailEntityQueryWrapper); - if(!questDetailEntities.isEmpty()){ + if (!questDetailEntities.isEmpty()) { return questDetailEntities; } @@ -751,16 +779,16 @@ public class TaskQuestServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("quest_id",questId) - .eq("is_deleted",0); + queryWrapper.eq("quest_id", questId) + .eq("is_deleted", 0); List questChildEntitys = taskQuestChildService.list(queryWrapper); List marketNames = null; - for (TaskQuestChildEntity childEntity:questChildEntitys) { - if(Objects.isNull(marketNames)){ + for (TaskQuestChildEntity childEntity : questChildEntitys) { + if (Objects.isNull(marketNames)) { marketNames = new ArrayList<>(); } marketNames.add(childEntity.getRefName()); @@ -769,14 +797,14 @@ public class TaskQuestServiceImpl extends BaseServiceImpl questDetailEntityQueryWrapper = new QueryWrapper<>(); - questDetailEntityQueryWrapper.eq("quest_id",questId) - .eq("quest_type",2) - .eq("quest_target",3) - .eq("warehouse_id",warehouseId) - .eq("allocation_id",allocationId) - .eq("is_deleted",0); + questDetailEntityQueryWrapper.eq("quest_id", questId) + .eq("quest_type", 2) + .eq("quest_target", 3) + .eq("warehouse_id", warehouseId) + .eq("allocation_id", allocationId) + .eq("is_deleted", 0); List questDetailEntities = questDetailService.list(questDetailEntityQueryWrapper); - if(!questDetailEntities.isEmpty()){ + if (!questDetailEntities.isEmpty()) { return questDetailEntities; } @@ -800,10 +828,10 @@ public class TaskQuestServiceImpl extends BaseServiceImpl questDetailList = taskSearchDTO.getQuestDetailList(); - for (QuestDetailDTO questDetailDTO:questDetailList){ + for (QuestDetailDTO questDetailDTO : questDetailList) { Long questDetaiId = questDetailDTO.getId();//明细id QuestDetailEntity detailEntity = questDetailService.getById(questDetaiId); if(Objects.isNull(detailEntity)){ @@ -838,42 +866,42 @@ public class TaskQuestServiceImpl extends BaseServiceImpl questDetailList = taskSearchDTO.getQuestDetailList(); List ls = new ArrayList<>(); - for (QuestDetailDTO questDetailDTO:questDetailList){ + for (QuestDetailDTO questDetailDTO : questDetailList) { Long questDetaiId = questDetailDTO.getId();//明细id QuestDetailEntity detailEntity = questDetailService.getById(questDetaiId); - if(Objects.isNull(detailEntity)){ - log.warn("###########updateQuestSetail: 存在不在盘点计划中的数据 questDetaiId={}",questDetaiId); - throw new CustomerException(403,"存在不在盘点计划中的数据"); + if (Objects.isNull(detailEntity)) { + log.warn("###########updateQuestSetail: 存在不在盘点计划中的数据 questDetaiId={}", questDetaiId); + throw new CustomerException(403, "存在不在盘点计划中的数据"); } detailEntity.setGroundingAllocationId(allocationId); - detailEntity.setGroundingPositionCode(goodsAreaEntity.getHeadline()+"-"+basicdataGoodsShelfEntity.getGoodsShelfName()+"-"+goodsAllocationEntity.getGoodsAllocationName()); + detailEntity.setGroundingPositionCode(goodsAreaEntity.getHeadline() + "-" + basicdataGoodsShelfEntity.getGoodsShelfName() + "-" + goodsAllocationEntity.getGoodsAllocationName()); ls.add(detailEntity); } questDetailService.updateBatchById(ls); @@ -887,16 +915,16 @@ public class TaskQuestServiceImpl extends BaseServiceImpl questDetailList = taskSearchDTO.getQuestDetailList(); List ls = new ArrayList<>(); - for (QuestDetailDTO questDetailDTO:questDetailList){ + for (QuestDetailDTO questDetailDTO : questDetailList) { Long questDetaiId = questDetailDTO.getId();//明细id QuestDetailEntity detailEntity = questDetailService.getById(questDetaiId); - if(Objects.isNull(detailEntity)){ - log.warn("###########deleteQuestDetail: 存在不在盘点计划中的数据 questDetaiId={}",questDetaiId); - throw new CustomerException(403,"存在不在盘点计划中的数据"); + if (Objects.isNull(detailEntity)) { + log.warn("###########deleteQuestDetail: 存在不在盘点计划中的数据 questDetaiId={}", questDetaiId); + throw new CustomerException(403, "存在不在盘点计划中的数据"); } detailEntity.setQuestStatus(3); ls.add(detailEntity); @@ -913,111 +941,110 @@ public class TaskQuestServiceImpl extends BaseServiceImpl queryWrapper = Wrappers.query().lambda() + .eq(QuestDetailEntity::getQuestId, taskSearchDTO.getTaskId()) + .eq(QuestDetailEntity::getWarehouseId, taskSearchDTO.getWarehouseId()) + .eq(QuestDetailEntity::getQuestType, 3); + if (Func.equals(isInventory,1)){ + queryWrapper.eq(QuestDetailEntity::getStockId, taskSearchDTO.getOrderId()); + }else { + queryWrapper.eq(QuestDetailEntity::getOrderId, taskSearchDTO.getOrderId()); + } + List questDetailEntities = questDetailService.list(queryWrapper); + List type = questDetailEntities.stream().filter(f -> Func.isNotEmpty(f.getQuestTarget())).map(QuestDetailEntity::getQuestTarget).distinct().collect(Collectors.toList()); + if (Func.isEmpty(type)){ + return null; + } + if (type.size() != 1){ + log.error("###################orderId查询类型异常:{}",taskSearchDTO.getOrderId()); + return null; + } + TaskContractVO contractVO = new TaskContractVO(); + AtomicInteger total = new AtomicInteger(); + AtomicInteger operationNum = new AtomicInteger(); + ArrayList taskPackagelistVOS = new ArrayList<>(); + List orderCode = questDetailEntities.stream().map(QuestDetailEntity::getOrderCode).distinct().collect(Collectors.toList()); + if (orderCode.size() != 1){ + log.error("###################orderId查询类型异常:{}",taskSearchDTO.getOrderId()); + return null; + } + for (QuestDetailEntity questDetailEntity : questDetailEntities) { + TaskPackagelistVO packagelistVO = new TaskPackagelistVO(); + total.getAndAdd(questDetailEntity.getStockNum()); + if (questDetailEntity.getQuestStatus().equals(1)){ + operationNum.getAndAdd(questDetailEntity.getStockNum()); + } + packagelistVO.setOrderId(questDetailEntity.getOrderId()); + if (type.get(0)==1){ + packagelistVO.setOrderPackageCode(questDetailEntity.getOrdePackageCode()); + packagelistVO.setQuantity(questDetailEntity.getStockNum()); + } + if (type.get(0)==2){ + packagelistVO.setWaybillNub(questDetailEntity.getWaybillNumber()); + packagelistVO.setQuantity(questDetailEntity.getStockNum()); + } + if(type.get(0)==3){ + packagelistVO.setOrderId(questDetailEntity.getStockId()); + packagelistVO.setQuantity(questDetailEntity.getStockNum()); + packagelistVO.setMaterialCode(questDetailEntity.getMaterialCode()); + packagelistVO.setMaterialName(questDetailEntity.getMaterialName()); + } + packagelistVO.setAllocation(questDetailEntity.getPositionCode()); + packagelistVO.setOrderCode(orderCode.get(0)); + packagelistVO.setCurrentStatus("1"); // 默认在库 + taskPackagelistVOS.add(packagelistVO); + } + List orderId = questDetailEntities.stream().map(QuestDetailEntity::getOrderId).distinct().collect(Collectors.toList()); + if (type.get(0).equals(1)){ + contractVO.setOrderId(orderId.get(0)); + contractVO.setOrderCode(orderCode.get(0)); + contractVO.setIsZero(0); + contractVO.setIsInventory(0); + }else if (type.get(0).equals(2)){ + List zeroOrderCode = questDetailEntities.stream().map(QuestDetailEntity::getOrderCode).distinct().collect(Collectors.toList()); + contractVO.setOrderId(orderId.get(0)); + contractVO.setOrderCode(zeroOrderCode.get(0)); + contractVO.setIsZero(1); + contractVO.setIsInventory(0); + }else if (type.get(0).equals(3)){ + List inventoryOrderId = questDetailEntities.stream().map(QuestDetailEntity::getStockId).distinct().collect(Collectors.toList()); + contractVO.setOrderId(inventoryOrderId.get(0)); + contractVO.setIsZero(0); + contractVO.setIsInventory(1); + }else { + return null; + } + contractVO.setZktotal(total.get()); + contractVO.setPackagelistVOList(taskPackagelistVOS); + contractVO.setTotal(total.get()); + contractVO.setUnTotal(operationNum.get()); + return R.data(contractVO); + } + @Override public IPage SelectStrip(IPage page,Long id) { IPage questDetailVOList = baseMapper.selectStripListByQuestId(page,id); @@ -1091,132 +1212,252 @@ 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()); + DistributionParcelListEntity entityListByOrderCode = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(taskSearchDTO.getCode(), taskSearchDTO.getWarehouseId()); + if (Func.isNotEmpty(entityListByOrderCode) ) { + boolean flag = entityListByOrderCode.getConditions().equals(3); + if (flag){ + log.error("####################扫描库存品包件:{}",flag); + return Resp.scanFail("操作失败", "请停止扫描库存品包件"); + } + taskSearchDTO.setIncomingBatch(entityListByOrderCode.getOrderCode()); } } String incomingBatch = taskSearchDTO.getIncomingBatch(); - if (Func.isEmpty(incomingBatch)){ + if (Func.isEmpty(incomingBatch)) { log.error("####################订单合同号为空"); - return Resp.scanFail("操作失败","请输入正确合同号"); + return Resp.scanFail("操作失败", "请输入正确合同号"); } Long taskQuestId = taskSearchDTO.getTaskId(); - verifyTask(taskQuestId,taskSearchDTO.getWarehouseId()); + 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 stockArticleEntity = null; List marketNames = null; - if (Func.isEmpty(taskQuestId)){ + 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 { + stockArticleEntity = distributionStockArticleClient.findStockArticleByCodeAndMarketAndWarehouseId(incomingBatch,"", taskSearchDTO.getWarehouseId()); + } else { + if (Func.isNotEmpty(taskQuestChildEntityList)) { + marketNames = taskQuestChildEntityList.stream().map(TaskQuestChildEntity::getRefName).collect(Collectors.toList()); + stockArticleEntity = distributionStockArticleClient.findStockArticleByCodeAndMarketAndWarehouseId(taskSearchDTO.getIncomingBatch(), String.join(",",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); + List taskContractVOS = new ArrayList<>(); + String goodsType = taskSearchDTO.getGoodsType(); + if (Func.isEmpty(goodsType)){ + log.error("####################参数异常:{}",goodsType); + } + switch (goodsType) { + case "1" : + //查询任务表 是否需要进行盘点任务数据的插入 + List questDetailEntityList = questDetailService.list(Wrappers.query().lambda() + .eq(QuestDetailEntity::getQuestId, taskQuestId) + .like(QuestDetailEntity::getOrderCode, incomingBatch) + .eq(QuestDetailEntity::getQuestType, 3) + .eq(QuestDetailEntity::getQuestTarget, 1) + .eq(QuestDetailEntity::getWarehouseId, taskSearchDTO.getWarehouseId())); + if (Func.isNotEmpty(questDetailEntityList) && questDetailEntityList.size()>0){ + TaskContractVO taskContractVO = new TaskContractVO(); + Map> orderMap = questDetailEntityList.stream().collect(Collectors.groupingBy(QuestDetailEntity::getOrderId)); + orderMap.forEach((k,v)->{ + List questDetailEntities = orderMap.get(k); + taskContractVO.setTotal(v.stream().mapToInt(QuestDetailEntity::getStockNum).sum()); + taskContractVO.setZktotal(v.stream().mapToInt(QuestDetailEntity::getStockNum).sum()); + taskContractVO.setOrderId(questDetailEntities.get(0).getOrderId()); + taskContractVO.setOrderCode(questDetailEntities.get(0).getOrderCode()); + taskContractVO.setIsZero(0); + taskContractVO.setIsInventory(0); + if (questDetailEntities.get(0).getQuestTarget().equals(2)){ + taskContractVO.setIsZero(1); } + taskContractVO.setUnTotal(v.stream().filter(f->Func.equals(f.getQuestStatus(),1)).mapToInt(QuestDetailEntity::getStockNum).sum()); + taskContractVOS.add(taskContractVO); }); }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.isEmpty(stockArticleEntity)) { + log.error("###################此订单不属于该次盘点任务"); + return Resp.scanFail("操作失败", "不属于该任务"); } - if (Func.isNotEmpty(updownGoodsPack)){ - questDetailEntity.setAllocationId(updownGoodsPack.getId()); + for (DistributionStockArticleEntity distributionStockArticleEntity : stockArticleEntity) { + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setOrderId(distributionStockArticleEntity.getId()); + taskContractVO.setOrderCode(distributionStockArticleEntity.getOrderCode()); + taskContractVO.setTotal(distributionStockArticleEntity.getTotalNumber()); + //查询已经【盘点的包件数量 + Long count = questDetailService.count(Wrappers.query().lambda() + .eq(QuestDetailEntity::getOrderId, distributionStockArticleEntity.getId()) + .eq(QuestDetailEntity::getQuestId, taskQuestId) + .eq(QuestDetailEntity::getQuestType, 3) + .eq(QuestDetailEntity::getQuestStatus, 1)); + taskContractVO.setUnTotal(count.intValue()); + taskContractVOS.add(taskContractVO); + List parcelList = distributionParcelListClient.getParcelListByStockArticleId(distributionStockArticleEntity.getId()); + if (Func.isEmpty(parcelList)) { + log.error("###################查询订单包件错误,订单ID:{}", distributionStockArticleEntity.getId()); + } + if (distributionStockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { + AtomicInteger libNum = new AtomicInteger(); + 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.setWaybillNumber(p.getWaybillNumber()); + questDetailEntity.setOrderPackageId(p.getId()); + questDetailEntity.setWarehouseId(taskSearchDTO.getWarehouseId()); + questDetailEntity.setQuestId(taskQuestId); + questDetailEntity.setQuestStatus(0); + questDetailEntity.setQuestTarget(1); + questDetailEntity.setQuestType(3); + questDetailService.save(questDetailEntity); + } + }); + taskContractVO.setZktotal(libNum.get()); + } else { + //查询任务表 是否需要进行盘点任务数据的插入 + List zeroQuestDetailEntityList = questDetailService.list(Wrappers.query().lambda() + .eq(QuestDetailEntity::getQuestId, taskQuestId) + .like(QuestDetailEntity::getOrderCode, incomingBatch) + .eq(QuestDetailEntity::getQuestType, 3) + .eq(QuestDetailEntity::getQuestTarget, 2) + .eq(QuestDetailEntity::getWarehouseId, taskSearchDTO.getWarehouseId())); + if (Func.isNotEmpty(zeroQuestDetailEntityList)){ + for (QuestDetailEntity questDetailEntity : zeroQuestDetailEntityList) { + TaskContractVO contractVO = new TaskContractVO(); + contractVO.setTotal(questDetailEntity.getStockNum()); + contractVO.setZktotal(questDetailEntity.getStockNum()); + contractVO.setOrderId(questDetailEntity.getOrderId()); + contractVO.setOrderCode(questDetailEntity.getOrderCode()); + contractVO.setIsZero(0); + contractVO.setIsInventory(0); + contractVO.setUnTotal(0); + if (questDetailEntity.getQuestTarget().equals(2)){ + taskContractVO.setIsZero(1); + } + if (questDetailEntity.getQuestStatus().equals(1)){ + taskContractVO.setUnTotal(questDetailEntity.getStockNum()); + } + taskContractVOS.add(contractVO); + } + }else { + AtomicInteger libNum = new AtomicInteger(); + QuestDetailEntity questDetailEntity = new QuestDetailEntity(); + DistributionStockArticleEntity stockArticleInfo = getStockArticleInfo(distributionStockArticleEntity.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()); + questDetailEntity.setOrderId(stockArticleInfo.getId()); + libNum.getAndAdd(stockArticleInfo.getHandQuantity()); + questDetailEntity.setIsNew(0); + questDetailEntity.setQuestId(taskQuestId); + questDetailEntity.setWaybillNumber(stockArticleInfo.getWaybillNumber()); + questDetailEntity.setWarehouseId(stockArticleInfo.getWarehouseId()); + questDetailEntity.setQuestStatus(0); + questDetailEntity.setQuestTarget(1); + questDetailEntity.setStockNum(stockArticleInfo.getHandQuantity()); + questDetailEntity.setQuestType(3); + questDetailService.save(questDetailEntity); + } + } } - 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); - }); + //查询任务表 是否需要进行盘点任务数据的插入 + List inventoryQuestDetailEntityList = questDetailService.list(Wrappers.query().lambda() + .eq(QuestDetailEntity::getQuestId, taskQuestId) + .like(QuestDetailEntity::getOrderCode, incomingBatch) + .or() + .eq(QuestDetailEntity::getIncomingBatch,incomingBatch) + .eq(QuestDetailEntity::getQuestType, 3) + .eq(QuestDetailEntity::getQuestTarget, 3) + .eq(QuestDetailEntity::getWarehouseId, taskSearchDTO.getWarehouseId())); + if (Func.isNotEmpty(inventoryQuestDetailEntityList) && inventoryQuestDetailEntityList.size()>0){ + int sum = inventoryQuestDetailEntityList.stream().filter(iqd -> Func.equals(iqd.getQuestStatus(), 1)).mapToInt(QuestDetailEntity::getStockNum).sum(); + inventoryQuestDetailEntityList.forEach(iqd->{ + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setTotal(iqd.getStockNum()); + taskContractVO.setZktotal(iqd.getStockNum()); + taskContractVO.setOrderId(iqd.getStockId()); + taskContractVO.setOrderCode(iqd.getOrderCode()); + taskContractVO.setUnTotal(sum); + taskContractVO.setIsZero(0); + taskContractVO.setIsInventory(1); + taskContractVOS.add(taskContractVO); + }); + }else { + List stockListByWarehouseIdAndMarketAndStockListInfo = distributionStockListClient.getStockListByWarehouseIdAndMarketAndStockListInfo(incomingBatch, marketNames, taskSearchDTO.getWarehouseId()); + if (Func.isEmpty(stockListByWarehouseIdAndMarketAndStockListInfo)){ + return Resp.scanFail("操作失败","该库存品不存在此任务中"); + } + stockListByWarehouseIdAndMarketAndStockListInfo.forEach(s -> { + QuestDetailEntity questDetailEntity = new QuestDetailEntity(); + questDetailEntity.setOrderCode(s.getOrderCode()); + questDetailEntity.setIsNew(0); + questDetailEntity.setQuestId(taskQuestId); + questDetailEntity.setQuestStatus(0); + questDetailEntity.setQuestTarget(3); + questDetailEntity.setQuestType(3); + questDetailEntity.setMaterialName(s.getDescriptionGoods()); + questDetailEntity.setMaterialCode(s.getCargoNumber()); + questDetailEntity.setStockNum(s.getQuantityStock()); + questDetailEntity.setWarehouseId(taskSearchDTO.getWarehouseId()); + questDetailEntity.setIncomingBatch(s.getIncomingBatch()); + questDetailEntity.setMarketName(s.getMarketName()); + questDetailEntity.setStockId(s.getId()); + questDetailEntity.setOrderCode(s.getOrderCode()); + questDetailService.save(questDetailEntity); + TaskContractVO taskContractVO = new TaskContractVO(); + taskContractVO.setOrderId(questDetailEntity.getStockId()); + taskContractVO.setOrderCode(questDetailEntity.getOrderCode()); + taskContractVO.setTotal(questDetailEntity.getStockNum()); + taskContractVO.setZktotal(questDetailEntity.getStockNum()); + taskContractVO.setUnTotal(0); + taskContractVOS.add(taskContractVO); + }); + } 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); + return R.data(taskContractVOS); } @@ -1226,23 +1467,23 @@ public class TaskQuestServiceImpl extends BaseServiceImpl end){ - log.warn("###########verifyTask: 盘点任务已结束 taskId={}",taskId); - throw new CustomerException(403,"盘点任务已结束"); + if (now > end) { + log.warn("###########verifyTask: 盘点任务已结束 taskId={}", taskId); + throw new CustomerException(403, "盘点任务已结束"); } }