diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java index 6c1c064e..934e2222 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java @@ -41,6 +41,8 @@ public class PurchaseCheckInfo extends BaseEntity { @ApiModelProperty(value = "任务状态名称,未完成/已完成") private String taskStatusName; + private String taskStatusText; + @Excel(name = "采购单号", sort = 2) @ApiModelProperty(value = "采购单号") private String code; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/dto/PurchaseQueryDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/dto/PurchaseQueryDto.java index aa6af3c8..1f57b963 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/dto/PurchaseQueryDto.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/dto/PurchaseQueryDto.java @@ -49,6 +49,8 @@ public class PurchaseQueryDto { @ApiModelProperty(value = "外层任务状态") private Integer taskStatus; + private String taskStatusText; + @ApiModelProperty(value = "关键字") private String keyWord; 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 aa703b37..2f950018 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 @@ -265,6 +265,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { continue; } + // 任务状态判断逻辑 + String taskStatus = calculateTaskStatus(purchaseCheckDetails); + purchaseInfo.setTaskStatusText(taskStatus); + // 过滤掉数量管理并且是待绑定状态或者驳回后待绑定状态的物资 purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) && @@ -421,6 +425,13 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { .filter(item -> containsKeyword(item, keyWord)) .collect(Collectors.toList()); } + + String taskStatusText = purchaseQueryDto.getTaskStatusText(); + if (!StringUtils.isBlank(taskStatusText)) { + purchaseCheckInfoResult = purchaseCheckInfoResult.stream() + .filter(item -> item.getTaskStatusText().contains(taskStatusText)) + .collect(Collectors.toList()); + } } return purchaseCheckInfoResult; @@ -1220,4 +1231,58 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { } return count; } + + + // 状态判断方法 + private String calculateTaskStatus(List details) { + if (details == null || details.isEmpty()) { + return "无明细数据"; // 或者根据业务需求返回默认状态 + } + + // 统计各种状态的数量 + boolean hasStatus2 = false; + boolean hasStatus3 = false; + boolean hasStatus4 = false; + boolean hasStatus19 = false; + + for (PurchaseCheckDetails detail : details) { + int status = detail.getStatus(); // 假设status是int类型 + switch (status) { + case 2: hasStatus2 = true; break; + case 3: hasStatus3 = true; break; + case 4: hasStatus4 = true; break; + case 19: hasStatus19 = true; break; + } + } + + // 根据规则判断任务状态 + if (hasStatus19 && !hasStatus2 && !hasStatus3 && !hasStatus4) { + // 所有状态都是19 + return "已入库"; + } else if (hasStatus4 && !hasStatus2 && !hasStatus3 && !hasStatus19) { + // 所有状态都是4 + return "待入库"; + } else if (hasStatus2 && !hasStatus3 && !hasStatus4 && !hasStatus19) { + // 所有状态都是2 + return "待验收"; + } else if (hasStatus3 && !hasStatus2 && !hasStatus4 && !hasStatus19) { + // 所有状态都是3 + return "待绑定"; + } else if (hasStatus4 && hasStatus19 && !hasStatus2 && !hasStatus3) { + // 有4和19,没有2和3 + return "入库中"; + } else if (hasStatus3 && hasStatus4 && hasStatus19) { + // 有3、4、19 + return "待绑定、入库中"; + } else if (hasStatus3 && hasStatus4 && !hasStatus19) { + // 有3和4,没有19 + return "待绑定、待入库"; + } else if (hasStatus3 && hasStatus19 && !hasStatus4) { + // 有3和19,没有4 + return "待绑定、已入库"; + } else { + // 其他未明确覆盖的组合情况 + return "未完成"; // 或者根据业务需求调整 + } + } } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckInfoMapper.xml index 88013b7c..8b9341e7 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckInfoMapper.xml @@ -44,12 +44,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select pci.id, pci.task_id, pci.purchase_time, pci.arrival_time, pci.purchaser, pci.supplier_id, pci.tax_rate, pci.create_by, pci.create_time, pci.update_by, pci.update_time, pci.remark, pci.company_id, - t.task_status, t.task_type, t.code, su.user_name as create_user_name, msi.supplier + t.task_status,sda.dict_label as taskStatusText, t.task_type, t.code, su.user_name as create_user_name, msi.supplier from purchase_check_info pci left join tm_task t on t.task_id = pci.task_id left join sys_user su ON pci.create_by = su.user_id left join ma_supplier_info msi on pci.supplier_id = msi.supplier_id + LEFT JOIN sys_dict_data sda on sda.dict_value=t.task_status and sda.dict_type='purchase_task_status'