Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
|
40c11dd974 | |
|
c6d44f1787 |
|
@ -35,4 +35,10 @@ build/
|
|||
### VS Code ###
|
||||
.vscode/
|
||||
target/
|
||||
logs/
|
||||
logs/
|
||||
|
||||
### Maven ###
|
||||
pom.xml
|
||||
|
||||
### YAML ###
|
||||
*.yaml
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
package com.dite.znpt.domain.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.dite.znpt.domain.AuditableEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:26
|
||||
* @description 设备审批实体
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("equipment_approval")
|
||||
@ApiModel(value="EquipmentApprovalEntity对象", description="设备审批信息表")
|
||||
public class EquipmentApprovalEntity extends AuditableEntity implements Serializable {
|
||||
private static final long serialVersionUID = -6665040704562461286L;
|
||||
|
||||
@ApiModelProperty("审批ID")
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private String approvalId;
|
||||
|
||||
@ApiModelProperty("设备ID")
|
||||
private String equipmentId;
|
||||
|
||||
@ApiModelProperty("设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
@ApiModelProperty("设备类型")
|
||||
private String equipmentType;
|
||||
|
||||
@ApiModelProperty("设备型号")
|
||||
private String equipmentModel;
|
||||
|
||||
@ApiModelProperty("品牌")
|
||||
private String brand;
|
||||
|
||||
@ApiModelProperty("供应商名称")
|
||||
private String supplierName;
|
||||
|
||||
@ApiModelProperty("采购价格")
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
@ApiModelProperty("总价")
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
@ApiModelProperty("数量")
|
||||
private Integer quantity;
|
||||
|
||||
@ApiModelProperty("申请人")
|
||||
private String applicantName;
|
||||
|
||||
@ApiModelProperty("申请人ID")
|
||||
private String applicantId;
|
||||
|
||||
@ApiModelProperty("申请时间")
|
||||
private LocalDateTime applyTime;
|
||||
|
||||
@ApiModelProperty("申请原因")
|
||||
private String applyReason;
|
||||
|
||||
@ApiModelProperty("业务类型,PROCUREMENT-采购,BORROW-借用,RETURN-归还")
|
||||
private String businessType;
|
||||
|
||||
@ApiModelProperty("审批状态,PENDING-待审批,APPROVED-已通过,REJECTED-已拒绝")
|
||||
private String approvalStatus;
|
||||
|
||||
@ApiModelProperty("审批人")
|
||||
private String approverName;
|
||||
|
||||
@ApiModelProperty("审批人ID")
|
||||
private String approverId;
|
||||
|
||||
@ApiModelProperty("审批时间")
|
||||
private LocalDateTime approvalTime;
|
||||
|
||||
@ApiModelProperty("审批意见")
|
||||
private String approvalComment;
|
||||
|
||||
@ApiModelProperty("删除标志(0代表存在 1代表删除)")
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.dite.znpt.domain.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.dite.znpt.domain.entity.EquipmentApprovalEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:30
|
||||
* @description 设备审批Mapper接口
|
||||
*/
|
||||
@Mapper
|
||||
public interface EquipmentApprovalMapper extends BaseMapper<EquipmentApprovalEntity> {
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:45
|
||||
* @description 设备审批列表查询请求VO
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="EquipmentApprovalListReq对象", description="设备审批列表查询请求")
|
||||
public class EquipmentApprovalListReq implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
@ApiModelProperty("申请人")
|
||||
private String applicantName;
|
||||
|
||||
@ApiModelProperty("业务类型,PROCUREMENT-采购,BORROW-借用,RETURN-归还")
|
||||
private String businessType;
|
||||
|
||||
@ApiModelProperty("审批状态")
|
||||
private String approvalStatus;
|
||||
|
||||
@ApiModelProperty("申请时间开始")
|
||||
private String applyTimeStart;
|
||||
|
||||
@ApiModelProperty("申请时间结束")
|
||||
private String applyTimeEnd;
|
||||
|
||||
@ApiModelProperty("审批时间开始")
|
||||
private String approvalTimeStart;
|
||||
|
||||
@ApiModelProperty("审批时间结束")
|
||||
private String approvalTimeEnd;
|
||||
|
||||
@ApiModelProperty("当前页码")
|
||||
private Integer page;
|
||||
|
||||
@ApiModelProperty("每页大小")
|
||||
private Integer pageSize;
|
||||
|
||||
@ApiModelProperty("排序字段")
|
||||
private String orderBy;
|
||||
|
||||
@ApiModelProperty("排序方向")
|
||||
private String orderDirection;
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:35
|
||||
* @description 设备审批请求VO
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="EquipmentApprovalReq对象", description="设备审批请求")
|
||||
public class EquipmentApprovalReq implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("审批意见")
|
||||
private String approvalComment;
|
||||
|
||||
@ApiModelProperty("审批结果,APPROVED-通过,REJECTED-拒绝")
|
||||
@NotBlank(message = "审批结果不能为空")
|
||||
private String approvalResult;
|
||||
|
||||
@ApiModelProperty("审批人")
|
||||
private String approverName;
|
||||
|
||||
@ApiModelProperty("审批人ID")
|
||||
private String approverId;
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:40
|
||||
* @description 设备审批响应VO
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="EquipmentApprovalResp对象", description="设备审批响应")
|
||||
public class EquipmentApprovalResp implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("审批ID")
|
||||
private String approvalId;
|
||||
|
||||
@ApiModelProperty("设备ID")
|
||||
private String equipmentId;
|
||||
|
||||
@ApiModelProperty("设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
@ApiModelProperty("设备类型")
|
||||
private String equipmentType;
|
||||
|
||||
@ApiModelProperty("设备型号")
|
||||
private String equipmentModel;
|
||||
|
||||
@ApiModelProperty("品牌")
|
||||
private String brand;
|
||||
|
||||
@ApiModelProperty("供应商名称")
|
||||
private String supplierName;
|
||||
|
||||
@ApiModelProperty("采购价格")
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
@ApiModelProperty("总价")
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
@ApiModelProperty("数量")
|
||||
private Integer quantity;
|
||||
|
||||
@ApiModelProperty("申请人")
|
||||
private String applicantName;
|
||||
|
||||
@ApiModelProperty("申请人ID")
|
||||
private String applicantId;
|
||||
|
||||
@ApiModelProperty("申请时间")
|
||||
private LocalDateTime applyTime;
|
||||
|
||||
@ApiModelProperty("申请原因")
|
||||
private String applyReason;
|
||||
|
||||
@ApiModelProperty("业务类型,PROCUREMENT-采购,BORROW-借用,RETURN-归还")
|
||||
private String businessType;
|
||||
|
||||
@ApiModelProperty("审批状态")
|
||||
private String approvalStatus;
|
||||
|
||||
@ApiModelProperty("审批人")
|
||||
private String approverName;
|
||||
|
||||
@ApiModelProperty("审批人ID")
|
||||
private String approverId;
|
||||
|
||||
@ApiModelProperty("审批时间")
|
||||
private LocalDateTime approvalTime;
|
||||
|
||||
@ApiModelProperty("审批意见")
|
||||
private String approvalComment;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.dite.znpt.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
@ -29,7 +30,7 @@ public class EquipmentResp implements Serializable {
|
|||
@ApiModelProperty("设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
@ApiModelProperty("设备类型")
|
||||
@ApiModelProperty("类型")
|
||||
private String equipmentType;
|
||||
|
||||
@ApiModelProperty("设备类型描述")
|
||||
|
@ -75,21 +76,27 @@ public class EquipmentResp implements Serializable {
|
|||
private String healthStatusLabel;
|
||||
|
||||
@ApiModelProperty("采购时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime purchaseTime;
|
||||
|
||||
@ApiModelProperty("入库时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime inStockTime;
|
||||
|
||||
@ApiModelProperty("启用时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime activationTime;
|
||||
|
||||
@ApiModelProperty("预计报废时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime expectedScrapTime;
|
||||
|
||||
@ApiModelProperty("实际报废时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime actualScrapTime;
|
||||
|
||||
@ApiModelProperty("状态变更时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime statusChangeTime;
|
||||
|
||||
@ApiModelProperty("采购订单")
|
||||
|
@ -115,12 +122,15 @@ public class EquipmentResp implements Serializable {
|
|||
private BigDecimal salvageValue;
|
||||
|
||||
@ApiModelProperty("保修截止日期")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime warrantyExpireDate;
|
||||
|
||||
@ApiModelProperty("上次维护日期")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime lastMaintenanceDate;
|
||||
|
||||
@ApiModelProperty("下次维护日期")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime nextMaintenanceDate;
|
||||
|
||||
@ApiModelProperty("维护人员")
|
||||
|
@ -168,12 +178,15 @@ public class EquipmentResp implements Serializable {
|
|||
private String usingDepartment;
|
||||
|
||||
@ApiModelProperty("领用时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime borrowingTime;
|
||||
|
||||
@ApiModelProperty("归还时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime returnTime;
|
||||
|
||||
@ApiModelProperty("出库时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime outStockTime;
|
||||
|
||||
@ApiModelProperty("总使用时间")
|
||||
|
@ -234,8 +247,10 @@ public class EquipmentResp implements Serializable {
|
|||
private String name;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
package com.dite.znpt.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalListReq;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalReq;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalResp;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:50
|
||||
* @description 设备审批服务接口
|
||||
*/
|
||||
public interface EquipmentApprovalService {
|
||||
|
||||
/**
|
||||
* 分页查询待审批的设备采购申请
|
||||
*/
|
||||
IPage<EquipmentApprovalResp> getPendingApprovals(EquipmentApprovalListReq req);
|
||||
|
||||
/**
|
||||
* 分页查询已审批的设备采购申请
|
||||
*/
|
||||
IPage<EquipmentApprovalResp> getApprovedApprovals(EquipmentApprovalListReq req);
|
||||
|
||||
/**
|
||||
* 审批通过
|
||||
*/
|
||||
void approve(String approvalId, EquipmentApprovalReq req);
|
||||
|
||||
/**
|
||||
* 审批拒绝
|
||||
*/
|
||||
void reject(String approvalId, EquipmentApprovalReq req);
|
||||
|
||||
/**
|
||||
* 获取审批详情
|
||||
*/
|
||||
EquipmentApprovalResp getApprovalDetail(String approvalId);
|
||||
|
||||
/**
|
||||
* 获取审批统计信息
|
||||
*/
|
||||
Object getApprovalStats();
|
||||
}
|
|
@ -0,0 +1,199 @@
|
|||
package com.dite.znpt.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.dite.znpt.domain.entity.EquipmentApprovalEntity;
|
||||
import com.dite.znpt.domain.mapper.EquipmentApprovalMapper;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalListReq;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalReq;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalResp;
|
||||
import com.dite.znpt.service.EquipmentApprovalService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 17:55
|
||||
* @description 设备审批服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
|
||||
|
||||
@Resource
|
||||
private EquipmentApprovalMapper equipmentApprovalMapper;
|
||||
|
||||
@Override
|
||||
public IPage<EquipmentApprovalResp> getPendingApprovals(EquipmentApprovalListReq req) {
|
||||
// 创建分页对象,处理null值
|
||||
Integer pageNum = req.getPage() != null ? req.getPage() : 1;
|
||||
Integer pageSize = req.getPageSize() != null ? req.getPageSize() : 10;
|
||||
Page<EquipmentApprovalEntity> page = new Page<>(pageNum, pageSize);
|
||||
|
||||
LambdaQueryWrapper<EquipmentApprovalEntity> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(EquipmentApprovalEntity::getApprovalStatus, "PENDING");
|
||||
|
||||
// 添加查询条件
|
||||
addQueryConditions(wrapper, req);
|
||||
|
||||
IPage<EquipmentApprovalEntity> result = equipmentApprovalMapper.selectPage(page, wrapper);
|
||||
|
||||
return convertToRespPage(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<EquipmentApprovalResp> getApprovedApprovals(EquipmentApprovalListReq req) {
|
||||
// 创建分页对象,处理null值
|
||||
Integer pageNum = req.getPage() != null ? req.getPage() : 1;
|
||||
Integer pageSize = req.getPageSize() != null ? req.getPageSize() : 10;
|
||||
Page<EquipmentApprovalEntity> page = new Page<>(pageNum, pageSize);
|
||||
|
||||
LambdaQueryWrapper<EquipmentApprovalEntity> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(EquipmentApprovalEntity::getApprovalStatus, "APPROVED", "REJECTED");
|
||||
|
||||
// 添加查询条件
|
||||
addQueryConditions(wrapper, req);
|
||||
|
||||
IPage<EquipmentApprovalEntity> result = equipmentApprovalMapper.selectPage(page, wrapper);
|
||||
|
||||
return convertToRespPage(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approve(String approvalId, EquipmentApprovalReq req) {
|
||||
EquipmentApprovalEntity entity = equipmentApprovalMapper.selectById(approvalId);
|
||||
if (entity == null) {
|
||||
throw new RuntimeException("审批记录不存在");
|
||||
}
|
||||
|
||||
entity.setApprovalStatus("APPROVED");
|
||||
entity.setApproverName(req.getApproverName());
|
||||
entity.setApproverId(req.getApproverId());
|
||||
entity.setApprovalTime(LocalDateTime.now());
|
||||
entity.setApprovalComment(req.getApprovalComment());
|
||||
|
||||
equipmentApprovalMapper.updateById(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reject(String approvalId, EquipmentApprovalReq req) {
|
||||
EquipmentApprovalEntity entity = equipmentApprovalMapper.selectById(approvalId);
|
||||
if (entity == null) {
|
||||
throw new RuntimeException("审批记录不存在");
|
||||
}
|
||||
|
||||
entity.setApprovalStatus("REJECTED");
|
||||
entity.setApproverName(req.getApproverName());
|
||||
entity.setApproverId(req.getApproverId());
|
||||
entity.setApprovalTime(LocalDateTime.now());
|
||||
entity.setApprovalComment(req.getApprovalComment());
|
||||
|
||||
equipmentApprovalMapper.updateById(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EquipmentApprovalResp getApprovalDetail(String approvalId) {
|
||||
EquipmentApprovalEntity entity = equipmentApprovalMapper.selectById(approvalId);
|
||||
if (entity == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return convertToResp(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getApprovalStats() {
|
||||
Map<String, Object> stats = new HashMap<>();
|
||||
|
||||
// 待审批数量
|
||||
LambdaQueryWrapper<EquipmentApprovalEntity> pendingWrapper = new LambdaQueryWrapper<>();
|
||||
pendingWrapper.eq(EquipmentApprovalEntity::getApprovalStatus, "PENDING");
|
||||
long pendingCount = equipmentApprovalMapper.selectCount(pendingWrapper);
|
||||
stats.put("pendingCount", pendingCount);
|
||||
|
||||
// 已通过数量
|
||||
LambdaQueryWrapper<EquipmentApprovalEntity> approvedWrapper = new LambdaQueryWrapper<>();
|
||||
approvedWrapper.eq(EquipmentApprovalEntity::getApprovalStatus, "APPROVED");
|
||||
long approvedCount = equipmentApprovalMapper.selectCount(approvedWrapper);
|
||||
stats.put("approvedCount", approvedCount);
|
||||
|
||||
// 已拒绝数量
|
||||
LambdaQueryWrapper<EquipmentApprovalEntity> rejectedWrapper = new LambdaQueryWrapper<>();
|
||||
rejectedWrapper.eq(EquipmentApprovalEntity::getApprovalStatus, "REJECTED");
|
||||
long rejectedCount = equipmentApprovalMapper.selectCount(rejectedWrapper);
|
||||
stats.put("rejectedCount", rejectedCount);
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加查询条件
|
||||
*/
|
||||
private void addQueryConditions(LambdaQueryWrapper<EquipmentApprovalEntity> wrapper, EquipmentApprovalListReq req) {
|
||||
if (StringUtils.hasText(req.getEquipmentName())) {
|
||||
wrapper.like(EquipmentApprovalEntity::getEquipmentName, req.getEquipmentName());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getApplicantName())) {
|
||||
wrapper.like(EquipmentApprovalEntity::getApplicantName, req.getApplicantName());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getBusinessType())) {
|
||||
wrapper.eq(EquipmentApprovalEntity::getBusinessType, req.getBusinessType());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getApprovalStatus())) {
|
||||
wrapper.eq(EquipmentApprovalEntity::getApprovalStatus, req.getApprovalStatus());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getApplyTimeStart())) {
|
||||
wrapper.ge(EquipmentApprovalEntity::getApplyTime, req.getApplyTimeStart());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getApplyTimeEnd())) {
|
||||
wrapper.le(EquipmentApprovalEntity::getApplyTime, req.getApplyTimeEnd());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getApprovalTimeStart())) {
|
||||
wrapper.ge(EquipmentApprovalEntity::getApprovalTime, req.getApprovalTimeStart());
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(req.getApprovalTimeEnd())) {
|
||||
wrapper.le(EquipmentApprovalEntity::getApprovalTime, req.getApprovalTimeEnd());
|
||||
}
|
||||
|
||||
// 排序
|
||||
wrapper.orderByDesc(EquipmentApprovalEntity::getCreateTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为响应对象
|
||||
*/
|
||||
private EquipmentApprovalResp convertToResp(EquipmentApprovalEntity entity) {
|
||||
EquipmentApprovalResp resp = new EquipmentApprovalResp();
|
||||
BeanUtils.copyProperties(entity, resp);
|
||||
return resp;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为响应分页对象
|
||||
*/
|
||||
private IPage<EquipmentApprovalResp> convertToRespPage(IPage<EquipmentApprovalEntity> page) {
|
||||
List<EquipmentApprovalResp> records = page.getRecords().stream()
|
||||
.map(this::convertToResp)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Page<EquipmentApprovalResp> respPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
|
||||
respPage.setRecords(records);
|
||||
|
||||
return respPage;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
package com.dite.znpt.web.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalListReq;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalReq;
|
||||
import com.dite.znpt.domain.vo.EquipmentApprovalResp;
|
||||
import com.dite.znpt.service.EquipmentApprovalService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/1/8/周三 18:00
|
||||
* @description 设备审批控制器
|
||||
*/
|
||||
@Api(tags = "设备审批管理")
|
||||
@RestController
|
||||
@RequestMapping("/equipment/approval")
|
||||
public class EquipmentApprovalController {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(EquipmentApprovalController.class);
|
||||
|
||||
@Resource
|
||||
private EquipmentApprovalService equipmentApprovalService;
|
||||
|
||||
@ApiOperation(value = "分页查询待审批的设备采购申请", httpMethod = "GET")
|
||||
@GetMapping("/pending")
|
||||
public PageResult<EquipmentApprovalResp> getPendingApprovals(EquipmentApprovalListReq req) {
|
||||
IPage<EquipmentApprovalResp> page = equipmentApprovalService.getPendingApprovals(req);
|
||||
return PageResult.ok(page.getRecords(), page.getTotal());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "分页查询已审批的设备采购申请", httpMethod = "GET")
|
||||
@GetMapping("/approved")
|
||||
public PageResult<EquipmentApprovalResp> getApprovedApprovals(EquipmentApprovalListReq req) {
|
||||
IPage<EquipmentApprovalResp> page = equipmentApprovalService.getApprovedApprovals(req);
|
||||
return PageResult.ok(page.getRecords(), page.getTotal());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "审批通过", httpMethod = "POST")
|
||||
@PostMapping("/{approvalId}/approve")
|
||||
public Result<?> approve(@PathVariable String approvalId, @Validated @RequestBody EquipmentApprovalReq req) {
|
||||
equipmentApprovalService.approve(approvalId, req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "审批拒绝", httpMethod = "POST")
|
||||
@PostMapping("/{approvalId}/reject")
|
||||
public Result<?> reject(@PathVariable String approvalId, @Validated @RequestBody EquipmentApprovalReq req) {
|
||||
equipmentApprovalService.reject(approvalId, req);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取审批详情", httpMethod = "GET")
|
||||
@GetMapping("/{approvalId}")
|
||||
public Result<EquipmentApprovalResp> getApprovalDetail(@PathVariable String approvalId) {
|
||||
return Result.ok(equipmentApprovalService.getApprovalDetail(approvalId));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取审批统计信息", httpMethod = "GET")
|
||||
@GetMapping("/stats")
|
||||
public Result<?> getApprovalStats() {
|
||||
return Result.ok(equipmentApprovalService.getApprovalStats());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue