feat(bpm): 后补票的付款申请分页列表功能- 新增 BpmOAPaymentPageReqVO 和 BpmOAPaymentRespVO 类用于分页查询

- 在 BpmOAPaymentController 中添加分页查询接口- 在 BpmOAPaymentService 中添加分页查询方法
- 在 BpmOAPaymentDO 中添加是否后补发票和后补票批注字段
- 更新相关控制器和 VO 类以支持新功能
This commit is contained in:
furongxin 2024-12-27 12:03:04 +08:00
parent c9510fb65f
commit 49a3cb0064
13 changed files with 131 additions and 37 deletions

View File

@ -2,8 +2,12 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa;
import cn.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract.BpmOAContractPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.contract.BpmOAContractRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.FactoryDetailVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO;
@ -163,4 +167,11 @@ public class BpmOAPaymentController {
return success(paymentService.getPaymentList(type));
}
@GetMapping("/page")
@Operation(summary = "获得 后补票的付款申请分页列表")
public CommonResult<PageResult<BpmOAPaymentRespVO>> getPage(@Valid BpmOAPaymentPageReqVO pageReqVO) {
return success(paymentService.getPaymentPage(pageReqVO));
}
}

View File

@ -57,6 +57,12 @@ public class BpmOAPaymentCreateReqVO {
@NotNull(message = "付款公司编号不能为空")
private Long paymentCompany;
@Schema(description = "是否后补发票 | 0否 1是", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private Integer isTickets;
@Schema(description = "后补票批注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String annotations;
@Schema(description = "父级审批编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private Long parentId;

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@Schema(description = "管理后台 - 付款申请分页 Request VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BpmOAPaymentPageReqVO extends PageParam {
@Schema(description = "补票状态 | 0待补票 1已补票 2已确认")
private Integer status;
}

View File

@ -73,6 +73,12 @@ public class BpmOAPaymentRespVO extends BpmOABaseRespVO {
@Schema(description = "付款公司名称")
private String paymentCompanyName;
@Schema(description = "是否后补发票 | 0否 1是", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private Integer isTickets;
@Schema(description = "后补票批注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String annotations;
@Schema(description = "父级审批编号")
private Long parentId;

View File

@ -102,6 +102,16 @@ public class BpmOAPaymentDO extends BaseDO {
*/
private Long paymentCompany;
/**
* 是否后补发票 | 0否 1是
*/
private Integer isTickets;
/**
* 后补票批注
*/
private String annotations;
/**
* 父级审批
*/

View File

@ -1,6 +1,8 @@
package cn.iocoder.yudao.module.bpm.service.oa;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO;
@ -46,4 +48,11 @@ public interface BpmOAPaymentService {
* @return 付款申请列表
*/
List<BpmOAPaymentRespVO> getPaymentList(Integer type);
/**
* 获得 后补票的付款申请分页列表
* @param pageReqVO 分页条件
* @return 付款申请分页列表
*/
PageResult<BpmOAPaymentRespVO> getPaymentPage(BpmOAPaymentPageReqVO pageReqVO);
}

View File

@ -2,10 +2,12 @@ package cn.iocoder.yudao.module.bpm.service.oa;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.UploadUserFile;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.BpmOAPaymentRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO;
@ -142,6 +144,12 @@ public class BpmOAPaymentServiceImpl extends BpmOABaseService implements BpmOAPa
return paymentMapper.selectPaymentList(type);
}
@Override
public PageResult<BpmOAPaymentRespVO> getPaymentPage(BpmOAPaymentPageReqVO pageReqVO) {
return null;
}
private BpmOAPaymentDO validateLeaveExists(Long id) {
BpmOAPaymentDO paymentDO = paymentMapper.selectById(id);
if (paymentDO == null) {

View File

@ -1,32 +1,31 @@
package cn.iocoder.yudao.module.system.controller.admin.customersettlement;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.*;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.CustomerSettlementPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.CustomerSettlementRespVO;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.CustomerSettlementSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.customersettlement.CustomerSettlementDO;
import cn.iocoder.yudao.module.system.service.customersettlement.CustomerSettlementService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 客户结算信息")
@RestController

View File

@ -1,5 +1,8 @@
package cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo;
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -48,7 +51,7 @@ public class CustomerSettlementRespVO {
@Schema(description = "上传附件", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
@ExcelProperty("上传附件")
private String url;
private List<UploadUserFile> url;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")

View File

@ -1,11 +1,13 @@
package cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo;
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Schema(description = "管理后台 - 客户结算信息新增/修改 Request VO")
@Data
@ -42,6 +44,6 @@ public class CustomerSettlementSaveReqVO {
@Schema(description = "上传附件", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
@NotEmpty(message = "上传附件不能为空")
private String url;
private List<UploadUserFile> url;
}

View File

@ -173,7 +173,7 @@ public class ProjectController {
@GetMapping("/get-my-project")
@Operation(summary = "获得我参与的项目")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:project:query')")
// @PreAuthorize("@ss.hasPermission('system:project:query')")
public CommonResult<List<ProjectRespVO>> getMyProject() {
List<ProjectDO> projectList = projectService.getMyProject(getLoginUserId());
return success(BeanUtils.toBean(projectList, ProjectRespVO.class));

View File

@ -1,21 +1,23 @@
package cn.iocoder.yudao.module.system.dal.dataobject.customersettlement;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;
import java.math.BigDecimal;
import java.util.List;
/**
* 客户结算信息 DO
*
* @author 陈宾顺
*/
@TableName("system_customer_settlement")
@TableName(value = "system_customer_settlement", autoResultMap = true)
@KeySequence("system_customer_settlement_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ -61,6 +63,7 @@ public class CustomerSettlementDO extends BaseDO {
/**
* 上传附件
*/
private String url;
@TableField(typeHandler = JacksonTypeHandler.class)
private List<UploadUserFile> url;
}

View File

@ -1,11 +1,17 @@
package cn.iocoder.yudao.module.system.service.customersettlement;
import cn.iocoder.yudao.module.infra.api.file.FileApi;
import cn.iocoder.yudao.module.system.controller.admin.worklog.vo.upload.UploadUserFile;
import cn.iocoder.yudao.module.system.dal.dataobject.rental.RentalDepositRecordDO;
import org.apache.tomcat.util.digester.ObjectCreateRule;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.customersettlement.CustomerSettlementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
@ -29,15 +35,27 @@ public class CustomerSettlementServiceImpl implements CustomerSettlementService
@Resource
private CustomerSettlementMapper customerSettlementMapper;
@Resource
private FileApi fileApi;
@Override
public Long createCustomerSettlement(CustomerSettlementSaveReqVO createReqVO) {
// 插入
CustomerSettlementDO customerSettlement = BeanUtils.toBean(createReqVO, CustomerSettlementDO.class);
customerSettlementMapper.insert(customerSettlement);
// 更新交易凭证附件 业务编号
UpdateBusinessFile(customerSettlement);
// 返回
return customerSettlement.getId();
}
private void UpdateBusinessFile(CustomerSettlementDO updateReqVO) {
List<String> urls = updateReqVO.getUrl().stream().map(UploadUserFile::getUrl).collect(Collectors.toList());
fileApi.updateBusinessFile(urls, updateReqVO.getId().toString());
}
@Override
public void updateCustomerSettlement(CustomerSettlementSaveReqVO updateReqVO) {
// 校验存在