新购任务管理、验收、绑定、入库展示方式修改、新增阶段
This commit is contained in:
parent
9311d8c0e9
commit
0692590215
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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查询
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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}, '%')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue