新购任务管理、验收、绑定、入库展示方式修改、新增阶段

This commit is contained in:
syruan 2024-12-23 16:50:41 +08:00
parent 9311d8c0e9
commit 0692590215
7 changed files with 163 additions and 42 deletions

View File

@ -0,0 +1,37 @@
package com.bonus.common.biz.enums;
import lombok.Getter;
/**
* @author : 阮世耀
* @version : 1.0
* @PackagePath: com.bonus.common.biz.enums
* @CreateTime: 2024-12-23 10:42
* @Description: 新购任务阶段枚举
*/
@Getter
public enum PurchaseTaskStageEnum {
MANAGE(1, "管理"),
CHECK(2, "验收"),
BIND(3, "绑定"),
STORE(4, "入库");
private final int code;
private final String name;
PurchaseTaskStageEnum(int code, String name) {
this.code = code;
this.name = name;
}
public static PurchaseTaskStageEnum getByCode(int code) {
for (PurchaseTaskStageEnum stageEnum : PurchaseTaskStageEnum.values()) {
if (stageEnum.getCode() == code) {
return stageEnum;
}
}
return null;
}
}

View File

@ -2,31 +2,57 @@ package com.bonus.common.biz.enums;
import lombok.Getter; import lombok.Getter;
import java.util.List;
import java.util.Objects;
/** /**
* @author bonus * @author bonus
*/ */
@Getter @Getter
public enum PurchaseTaskStatusEnum { public enum PurchaseTaskStatusEnum {
TO_NOTICE(1, "待通知"), TO_NOTICE(1, "待通知", PurchaseTaskStageEnum.MANAGE.getCode()),
TO_CHECK(2, "待验收"), TO_CHECK(2, "待验收", PurchaseTaskStageEnum.CHECK.getCode()),
TO_BIND(3, "待绑定"), TO_BIND(3, "待绑定", PurchaseTaskStageEnum.BIND.getCode()),
TO_STORE(4, "待入库"), TO_STORE(4, "待入库", PurchaseTaskStageEnum.STORE.getCode()),
TO_CHECK_AFTER_REJECT(12, "待验收(驳回后)"), TO_CHECK_AFTER_REJECT(12, "待验收(驳回后)", PurchaseTaskStageEnum.CHECK.getCode()),
TO_BIND_AFTER_REJECT(13, "待绑定(驳回后)"), TO_BIND_AFTER_REJECT(13, "待绑定(驳回后)", PurchaseTaskStageEnum.BIND.getCode()),
TO_STORE_AFTER_REJECT(14, "待入库(驳回后)"), TO_STORE_AFTER_REJECT(14, "待入库(驳回后)", PurchaseTaskStageEnum.STORE.getCode()),
IN_STORE(19, "已入库"), IN_STORE(19, "已入库", PurchaseTaskStageEnum.STORE.getCode()),
TASK_IN_PROGRESS(21, "入库进行中"), TASK_IN_PROGRESS(21, "入库进行中", PurchaseTaskStageEnum.STORE.getCode()),
TASK_FINISHED(22, "入库已完成"); TASK_FINISHED(22, "入库已完成", PurchaseTaskStageEnum.STORE.getCode());
private final Integer status; private final Integer status;
private final String statusName; private final String statusName;
// 新购任务阶段
private final Integer stage;
PurchaseTaskStatusEnum(Integer status, String statusName) { PurchaseTaskStatusEnum(Integer status, String statusName, Integer stage) {
this.status = status; this.status = status;
this.statusName = statusName; this.statusName = statusName;
this.stage = stage;
} }
// 判断任务状态是否为此阶段所属状态
public static boolean isStatusOfStage(Integer status, PurchaseTaskStageEnum stageEnum) {
PurchaseTaskStatusEnum findEnum = null;
for (PurchaseTaskStatusEnum statusEnum : values()) {
if (statusEnum.status.equals(status)) {
findEnum = statusEnum;
break;
}
}
if (findEnum == null || stageEnum == null) {
return false;
} else {
// 如果是最后的入库完成那么说明流程已走完不需要再判断了
if (Objects.equals(findEnum.getStage(), TASK_FINISHED.getStage())) {
return false;
}
return findEnum.getStage().equals(stageEnum.getCode());
}
}
public static PurchaseTaskStatusEnum getByStatus(Integer status) { public static PurchaseTaskStatusEnum getByStatus(Integer status) {
for (PurchaseTaskStatusEnum statusEnum : values()) { for (PurchaseTaskStatusEnum statusEnum : values()) {
@ -37,11 +63,4 @@ public enum PurchaseTaskStatusEnum {
return null; return null;
} }
public Integer getStatus() {
return status;
}
public String getStatusName() {
return statusName;
}
} }

View File

@ -37,6 +37,9 @@ public class PurchaseCheckInfo extends BaseEntity {
@ApiModelProperty(value = "任务状态") @ApiModelProperty(value = "任务状态")
private Integer taskStatus; private Integer taskStatus;
@ApiModelProperty(value = "任务状态名称,未完成/已完成")
private String taskStatusName;
@Excel(name = "采购单号", sort = 2) @Excel(name = "采购单号", sort = 2)
@ApiModelProperty(value = "采购单号") @ApiModelProperty(value = "采购单号")
private String code; private String code;

View File

@ -26,9 +26,15 @@ public class PurchaseQueryDto {
@ApiModelProperty(value = "任务id") @ApiModelProperty(value = "任务id")
private Long taskId; private Long taskId;
@ApiModelProperty(value = "登录用户id")
private Long userId;
@ApiModelProperty(value = "任务单号") @ApiModelProperty(value = "任务单号")
private String code; private String code;
@ApiModelProperty(value = "任务阶段,对应新购阶段枚举")
private Integer taskStage;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime; private Date startTime;

View File

@ -37,7 +37,7 @@ public interface PurchaseCheckDetailsMapper {
* 根据任务id查询新购验收任务详细列表--Join查询 * 根据任务id查询新购验收任务详细列表--Join查询
* @param taskId 任务id * @param taskId 任务id
*/ */
List<PurchaseCheckDetails> selectPurchaseCheckDetailsListByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status); List<PurchaseCheckDetails> selectPurchaseCheckDetailsListByTaskId(@Param("taskId") Long taskId, @Param("status") Integer status, @Param("userId") Long userId);
/** /**
* 根据任务id查询新购验收任务详细列表--Join查询 * 根据任务id查询新购验收任务详细列表--Join查询

View File

@ -6,8 +6,11 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.hutool.core.map.MapUtil;
import com.bonus.common.biz.constant.BmConfigItems; import com.bonus.common.biz.constant.BmConfigItems;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum; import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.common.biz.enums.PurchaseTaskStageEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum; import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
@ -65,6 +68,12 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
@Resource @Resource
BmFileInfoMapper bmFileInfoMapper; BmFileInfoMapper bmFileInfoMapper;
// 引入新购任务阶段常量
private static final int PURCHASE_TASK_STAGE_MANAGE = 1;
private static final int PURCHASE_TASK_STAGE_CHECK = 2;
private static final int PURCHASE_TASK_STAGE_BIND = 3;
private static final int PURCHASE_TASK_STAGE_STORE = 4;
/** /**
* 查询新购验收任务 * 查询新购验收任务
* *
@ -73,6 +82,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
*/ */
@Override @Override
public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) { public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) {
purchaseQueryDto.setUserId(SecurityUtils.getUserId());
PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto(); PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto();
PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId()); PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId());
if (purchaseCheckInfo != null) { if (purchaseCheckInfo != null) {
@ -129,40 +139,76 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
*/ */
@Override @Override
public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) { public List<PurchaseCheckInfo> selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) {
// TODO 引入采购任务阶段管理先写死 后期由前端传入
// purchaseQueryDto.setTaskStage(PurchaseTaskStageEnum.CHECK.getCode());
List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto); List<PurchaseCheckInfo> purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto);
if (CollectionUtils.isEmpty(purchaseCheckInfos) ) {return Collections.emptyList();}
AtomicReference<Long> loginUserId = new AtomicReference<>(SecurityUtils.getUserId());
if (Objects.isNull(loginUserId.get()) || Objects.isNull(purchaseQueryDto.getTaskStage())) {return Collections.emptyList();}
List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>(); List<PurchaseCheckInfo> purchaseCheckInfoResult = new ArrayList<>();
if (CollectionUtils.isEmpty(purchaseCheckInfos)) {
return purchaseCheckInfoResult;
}
boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER); boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER);
for (PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) { for (PurchaseCheckInfo purchaseInfo : purchaseCheckInfos) {
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), null); // 获取采购物资明细2024-12-23日修改by阮世耀 根据当前库管员绑定物资来查询 不展示非本角色管理的物资类型
// 筛除绑定状态 + 数量设备 List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(purchaseInfo.getTaskId(), null, loginUserId.get());
if (CollectionUtils.isEmpty(purchaseCheckDetails)) {continue;}
// 过滤掉数量管理并且是待绑定状态或者驳回后待绑定状态的物资
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) && purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) &&
(o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())))).collect(Collectors.toList()); (o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || o.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())))).collect(Collectors.toList());
OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min(); OptionalInt minStatus = purchaseCheckDetails.stream().mapToInt(PurchaseCheckDetails::getStatus).min();
if (isAllowPartTransfer) { if (isAllowPartTransfer) {
if (!CollectionUtils.isEmpty(purchaseQueryDto.getStatusList())) { // 过滤由前端传入的物资所属状态
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getStatusList().contains(o.getStatus())).collect(Collectors.toList()); // TODO 2024-12-23日 取消状态过滤修改由任务阶段来过滤 --- by 阮世耀
// if (!CollectionUtils.isEmpty(purchaseQueryDto.getStatusList())) {
// purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> purchaseQueryDto.getStatusList().contains(o.getStatus())).collect(Collectors.toList());
// }
switch (purchaseQueryDto.getTaskStage()) {
case PURCHASE_TASK_STAGE_MANAGE:
// 新购管理阶段展示全部任务不进行过滤
break;
case PURCHASE_TASK_STAGE_CHECK:
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus())).collect(Collectors.toList());
break;
case PURCHASE_TASK_STAGE_BIND:
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o ->
!PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) &&
!PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) &&
!PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus())
).collect(Collectors.toList());
break;
case PURCHASE_TASK_STAGE_STORE:
purchaseCheckDetails = purchaseCheckDetails.stream().filter(o ->
!PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) &&
!PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_BIND.getStatus().equals(o.getStatus()) &&
!PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus())
).collect(Collectors.toList());
break;
default:
return Collections.emptyList();
} }
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), purchaseQueryDto.getStatusList())); purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), purchaseQueryDto.getStatusList()));
} else { } else {
purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>())); purchaseInfo.setPurchaseMaTypeName(purchaseCheckDetailsMapper.selectMaTypeNameByTaskAndStatusList(purchaseInfo.getTaskId(), new ArrayList<>()));
} }
if (!CollectionUtils.isEmpty(purchaseCheckDetails)) { if (!CollectionUtils.isEmpty(purchaseCheckDetails)) {
BigDecimal purchaseMaTotalNumber = BigDecimal.ZERO; BigDecimal purchaseMaTotalNumber = BigDecimal.ZERO, checkMaTotalNumber = BigDecimal.ZERO, bindMaTotalNumber = BigDecimal.ZERO, inputMaTotalNumber = BigDecimal.ZERO;
BigDecimal checkMaTotalNumber = BigDecimal.ZERO;
BigDecimal bindMaTotalNumber = BigDecimal.ZERO;
BigDecimal inputMaTotalNumber = BigDecimal.ZERO;
AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO); AtomicReference<BigDecimal> purchaseMaTotalPrice = new AtomicReference<>(BigDecimal.ZERO);
boolean isIncludeStage = false;
for (PurchaseCheckDetails detail : purchaseCheckDetails) { for (PurchaseCheckDetails detail : purchaseCheckDetails) {
if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) { if (detail.getPurchaseNum() == null || detail.getPurchasePrice() == null) {continue;}
continue;
}
if (detail.getPurchaseNum().compareTo(BigDecimal.ZERO) < 0 || detail.getPurchasePrice().compareTo(BigDecimal.ZERO) < 0) { if (detail.getPurchaseNum().compareTo(BigDecimal.ZERO) < 0 || detail.getPurchasePrice().compareTo(BigDecimal.ZERO) < 0) {
throw new IllegalArgumentException("采购数量和价格必须为非负数"); throw new IllegalArgumentException("采购数量和价格必须为非负数");
} }
if (!isIncludeStage) {
isIncludeStage = PurchaseTaskStatusEnum.isStatusOfStage(detail.getStatus(), PurchaseTaskStageEnum.getByCode(purchaseQueryDto.getTaskStage()));
}
// 更新 purchaseMaTotalNumber // 更新 purchaseMaTotalNumber
purchaseMaTotalNumber = purchaseMaTotalNumber.add(Optional.of(detail.getPurchaseNum()).orElse(BigDecimal.ZERO)); purchaseMaTotalNumber = purchaseMaTotalNumber.add(Optional.of(detail.getPurchaseNum()).orElse(BigDecimal.ZERO));
checkMaTotalNumber = checkMaTotalNumber.add(Optional.ofNullable(detail.getCheckNum()).orElse(BigDecimal.ZERO)); checkMaTotalNumber = checkMaTotalNumber.add(Optional.ofNullable(detail.getCheckNum()).orElse(BigDecimal.ZERO));
@ -179,16 +225,20 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) { if (purchaseInfo.getTaxRate() != null && purchaseInfo.getPurchasePrice() != null) {
purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate())); purchaseInfo.setPurchaseTaxPrice(calculateTaxPrice(purchaseMaTotalPrice.get(), purchaseInfo.getTaxRate()));
} }
// 设置外层任务状态入库待开始入库进行中入库已完成 // 设置外层任务状态入库待开始入库进行中入库已完成
TmTask tmTask = tmTaskMapper.selectTmTaskByTaskId(purchaseInfo.getTaskId()); TmTask tmTask = tmTaskMapper.selectTmTaskByTaskId(purchaseInfo.getTaskId());
purchaseInfo.setTaskStatusName(isIncludeStage ? "未完成" : "已完成");
purchaseInfo.setTaskStatus(tmTask.getTaskStatus()); purchaseInfo.setTaskStatus(tmTask.getTaskStatus());
// 设置外层任务列表 // 设置外层任务列表
if (isAllowPartTransfer) { if (isAllowPartTransfer) {
purchaseCheckInfoResult.add(purchaseInfo); purchaseCheckInfoResult.add(purchaseInfo);
} else if (minStatus.isPresent() && purchaseQueryDto.getStatusList().contains(Integer.valueOf(minStatus.getAsInt()))) { } else if (minStatus.isPresent() && purchaseQueryDto.getStatusList().contains(minStatus.getAsInt())) {
// 当不允许部分物资状态流转时例如内部状态含(2,12,3,13)其中最小的状态值(2),当等于传入的状态值(2,12)才显示外面的列表 // 当不允许部分物资状态流转时例如内部状态含(2,12,3,13)其中最小的状态值(2),当等于传入的状态值(2,12)才显示外面的列表
purchaseCheckInfoResult.add(purchaseInfo); purchaseCheckInfoResult.add(purchaseInfo);
} }
} }
} }
return purchaseCheckInfoResult; return purchaseCheckInfoResult;
@ -232,7 +282,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId()); int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId());
String taskCode = genderTaskCode(thisMonthMaxOrder); String taskCode = genderTaskCode(thisMonthMaxOrder);
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId(), TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId(),
PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus(), PurchaseTaskStatusEnum.TO_NOTICE.getStatus(),
purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), thisMonthMaxOrder + 1, taskCode); purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), thisMonthMaxOrder + 1, taskCode);
tmTask.setCreateTime(DateUtils.getNowDate()); tmTask.setCreateTime(DateUtils.getNowDate());
tmTaskMapper.insertTmTask(tmTask); tmTaskMapper.insertTmTask(tmTask);
@ -370,7 +420,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
if (result != null) { if (result != null) {
// 执行SQL查询内层信息 // 执行SQL查询内层信息
List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null); List<PurchaseCheckDetails> purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getUserId());
// 过滤掉空数据 // 过滤掉空数据
purchaseCheckDetails.removeIf(Objects::isNull); purchaseCheckDetails.removeIf(Objects::isNull);
result.setMaterialList(purchaseCheckDetails); result.setMaterialList(purchaseCheckDetails);

View File

@ -90,6 +90,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectPurchaseCheckDetailsListByTaskId" resultMap="PurchaseCheckDetailsResult"> <select id="selectPurchaseCheckDetailsListByTaskId" resultMap="PurchaseCheckDetailsResult">
<include refid="selectPurchaseCheckDetailsJoinVo"/> <include refid="selectPurchaseCheckDetailsJoinVo"/>
<if test="userId != null">
right join ma_type_keeper mtk ON mtk.type_id = mt.type_id AND mtk.user_id = #{userId}
</if>
where 1=1 where 1=1
<!-- <if test="status != null">--> <!-- <if test="status != null">-->
<!-- and pcd.status = #{status}--> <!-- and pcd.status = #{status}-->
@ -101,6 +104,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectPurchaseCheckDetailsListByQueryDto" parameterType="com.bonus.material.purchase.domain.dto.PurchaseQueryDto" resultMap="PurchaseCheckDetailsResult"> <select id="selectPurchaseCheckDetailsListByQueryDto" parameterType="com.bonus.material.purchase.domain.dto.PurchaseQueryDto" resultMap="PurchaseCheckDetailsResult">
<include refid="selectPurchaseCheckDetailsJoinVo"/> <include refid="selectPurchaseCheckDetailsJoinVo"/>
<if test="userId != null">
right join ma_type_keeper mtk ON mtk.type_id = mt.type_id AND mtk.user_id = #{userId}
</if>
where pcd.task_id = #{taskId} where pcd.task_id = #{taskId}
<if test="typeId != null"> <if test="typeId != null">
and pcd.type_id = #{typeId} and pcd.type_id = #{typeId}
@ -111,12 +117,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productionTime != null"> <if test="productionTime != null">
and pcd.production_time between #{startTime} and #{endTime} and pcd.production_time between #{startTime} and #{endTime}
</if> </if>
<if test="statusList != null and statusList.size() > 0"> <!-- <if test="statusList != null and statusList.size() > 0">-->
and pcd.status in <!-- and pcd.status in-->
<foreach item="item" collection="statusList" open="(" separator="," close=")"> <!-- <foreach item="item" collection="statusList" open="(" separator="," close=")">-->
#{item} <!-- #{item}-->
</foreach> <!-- </foreach>-->
</if> <!-- </if>-->
<if test="keyWord != null and keyWord != ''"> <if test="keyWord != null and keyWord != ''">
and (mt.type_name like concat('%', #{keyWord}, '%') and (mt.type_name like concat('%', #{keyWord}, '%')
or mt.unit_name like concat('%', #{keyWord}, '%') or mt.unit_name like concat('%', #{keyWord}, '%')