From 413d8a0e894dbfd0382e4a8a8113109b7c49f9a5 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Tue, 12 Nov 2024 10:18:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/domain/PurchaseCheckDetails.java | 6 +- .../mapper/PurchaseCheckDetailsMapper.java | 4 +- .../impl/PurchaseCheckInfoServiceImpl.java | 28 ++++--- .../purchase/PurchaseCheckDetailsMapper.xml | 78 +++++++++++++------ 4 files changed, 78 insertions(+), 38 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java index 2aa046a9..cd7827e9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java @@ -86,9 +86,9 @@ public class PurchaseCheckDetails extends BaseEntity { @Excel(name = "物资厂家名称") private String supplierName; - /** 0-未验收,1-已验收,2-待通知,3-验收不通过,4-已入库,5-入库驳回,6-综合服务中心审核通过,7-综合服务中心不通过 */ - //@Excel(name = "0-未验收,1-已验收,2-待通知,3-验收不通过,4-已入库,5-入库驳回,6-综合服务中心审核通过,7-综合服务中心不通过") - @ApiModelProperty(value = "0-未验收,1-已验收,2-待通知,3-验收不通过,4-已入库,5-入库驳回,6-综合服务中心审核通过,7-综合服务中心不通过") + /** 状态,参考数据字典purchase_task_status键值 */ + @Excel(name = "状态") + @ApiModelProperty(value = "状态,参考数据字典purchase_task_status键值") private Integer status; /** 出厂日期 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java index 02c984ef..ad4db6b2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java @@ -20,7 +20,9 @@ public interface PurchaseCheckDetailsMapper { * @param taskId * @param type 1-验收,2-入库 * @return String类型,多个物资类型根据逗号分割 */ - String selectMaTypeNameByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status); + //String selectMaTypeNameByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status); + + String selectMaTypeNameByTaskAndStatusList(@Param("taskId") Long taskId, @Param("statusList") List statusList); /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java index cc9f2ff4..d5a427cc 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java @@ -68,15 +68,19 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { @Override public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) { PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto(); - boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER); - List purchaseCheckDetails; - if (isAllowPartTransfer) { - purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); - } else { - purchaseQueryDto.setTaskStatus(null); - purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); + PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId()); + if (purchaseCheckInfo != null) { + purchaseCheckDtoResult.setPurchaseCheckInfo(purchaseCheckInfo); + boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER); + List purchaseCheckDetails; + if (isAllowPartTransfer) { + purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); + } else { + purchaseQueryDto.setTaskStatus(null); + purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); + } + purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetails); } - purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetails); return purchaseCheckDtoResult; } @@ -95,16 +99,16 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { } boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER); // TODO 下一行需要前端传1后删除 - purchaseQueryDto.setTaskStatus(Objects.isNull(purchaseQueryDto.getTaskStatus()) ? PurchaseTaskStatusEnum.TO_NOTICE.getStatus() : purchaseQueryDto.getTaskStatus()); + // purchaseQueryDto.setTaskStatus(Objects.isNull(purchaseQueryDto.getTaskStatus()) ? PurchaseTaskStatusEnum.TO_NOTICE.getStatus() : purchaseQueryDto.getTaskStatus()); for (PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) { List purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), null); OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min(); OptionalInt maxStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).max(); if (isAllowPartTransfer) { - purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getTaskStatus().equals(o.getStatus())).collect(Collectors.toList()); - purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), purchaseQueryDto.getTaskStatus())); + purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getStatusList().contains(o.getStatus())).collect(Collectors.toList()); + purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), purchaseQueryDto.getStatusList())); } else { - purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskId(purchaseInfo.getTaskId(), null)); + purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>())); } if (!CollectionUtils.isEmpty(purchaseCheckDetails)) { AtomicLong purchaseMaTotalNumber = new AtomicLong(0L); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml index 37c2c2b6..3f3d88fa 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml @@ -108,8 +108,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and pcd.production_time between #{startTime} and #{endTime} - - and pcd.status = #{taskStatus} + + + + + and pcd.status in + + #{item} + and (mt.type_name like concat('%', #{keyWord}, '%') @@ -231,28 +237,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select - GROUP_CONCAT(type_name) typeName + GROUP_CONCAT(type_name) typeName from - ( - select - distinct pcd.task_id, mt1.type_name - from - purchase_check_details pcd - left join - ma_type mt on pcd.type_id = mt.type_id - left join - ma_type mt1 on mt.parent_id = mt1.type_id - where - 1=1 - - and pcd.status = #{status} - - - and pcd.task_id = #{taskId} - - ) t + ( + select + distinct pcd.task_id, mt1.type_name + from + purchase_check_details pcd + left join + ma_type mt on pcd.type_id = mt.type_id + left join + ma_type mt1 on mt.parent_id = mt1.type_id + where + 1=1 + + and pcd.status in + + #{item} + + + + and pcd.task_id = #{taskId} + + ) t GROUP BY task_id