Merge branch 'frx-后补票功能' into frx

This commit is contained in:
furongxin 2025-01-02 09:34:06 +08:00
commit fc212f9d9e
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.hutool.core.collection.CollectionUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; 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.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.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.BpmOAPaymentRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.FactoryDetailVO; import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.payment.FactoryDetailVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO;
@ -163,4 +167,11 @@ public class BpmOAPaymentController {
return success(paymentService.getPaymentList(type)); 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 = "付款公司编号不能为空") @NotNull(message = "付款公司编号不能为空")
private Long paymentCompany; 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) @Schema(description = "父级审批编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private Long parentId; 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 = "付款公司名称") @Schema(description = "付款公司名称")
private String paymentCompanyName; 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 = "父级审批编号") @Schema(description = "父级审批编号")
private Long parentId; private Long parentId;

View File

@ -102,6 +102,16 @@ public class BpmOAPaymentDO extends BaseDO {
*/ */
private Long paymentCompany; 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; 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.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.BpmOAPaymentRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO;
@ -46,4 +48,11 @@ public interface BpmOAPaymentService {
* @return 付款申请列表 * @return 付款申请列表
*/ */
List<BpmOAPaymentRespVO> getPaymentList(Integer type); 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.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; 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.pojo.UploadUserFile;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.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.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.BpmOAPaymentRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAPaymentDO; 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); return paymentMapper.selectPaymentList(type);
} }
@Override
public PageResult<BpmOAPaymentRespVO> getPaymentPage(BpmOAPaymentPageReqVO pageReqVO) {
return null;
}
private BpmOAPaymentDO validateLeaveExists(Long id) { private BpmOAPaymentDO validateLeaveExists(Long id) {
BpmOAPaymentDO paymentDO = paymentMapper.selectById(id); BpmOAPaymentDO paymentDO = paymentMapper.selectById(id);
if (paymentDO == null) { if (paymentDO == null) {

View File

@ -1,32 +1,31 @@
package cn.iocoder.yudao.module.system.controller.admin.customersettlement; package cn.iocoder.yudao.module.system.controller.admin.customersettlement;
import org.springframework.web.bind.annotation.*; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
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.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; 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 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.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 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.CustomerSettlementPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.CustomerSettlementRespVO;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.*; 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.dal.dataobject.customersettlement.CustomerSettlementDO;
import cn.iocoder.yudao.module.system.service.customersettlement.CustomerSettlementService; 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 = "管理后台 - 客户结算信息") @Tag(name = "管理后台 - 客户结算信息")
@RestController @RestController

View File

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

View File

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

View File

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

View File

@ -1,21 +1,23 @@
package cn.iocoder.yudao.module.system.dal.dataobject.customersettlement; 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.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 * 客户结算信息 DO
* *
* @author 陈宾顺 * @author 陈宾顺
*/ */
@TableName("system_customer_settlement") @TableName(value = "system_customer_settlement", autoResultMap = true)
@KeySequence("system_customer_settlement_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写 @KeySequence("system_customer_settlement_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data @Data
@EqualsAndHashCode(callSuper = true) @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; 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 org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.*; import cn.iocoder.yudao.module.system.controller.admin.customersettlement.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.customersettlement.CustomerSettlementDO; import cn.iocoder.yudao.module.system.dal.dataobject.customersettlement.CustomerSettlementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
@ -29,15 +35,27 @@ public class CustomerSettlementServiceImpl implements CustomerSettlementService
@Resource @Resource
private CustomerSettlementMapper customerSettlementMapper; private CustomerSettlementMapper customerSettlementMapper;
@Resource
private FileApi fileApi;
@Override @Override
public Long createCustomerSettlement(CustomerSettlementSaveReqVO createReqVO) { public Long createCustomerSettlement(CustomerSettlementSaveReqVO createReqVO) {
// 插入 // 插入
CustomerSettlementDO customerSettlement = BeanUtils.toBean(createReqVO, CustomerSettlementDO.class); CustomerSettlementDO customerSettlement = BeanUtils.toBean(createReqVO, CustomerSettlementDO.class);
customerSettlementMapper.insert(customerSettlement); customerSettlementMapper.insert(customerSettlement);
// 更新交易凭证附件 业务编号
UpdateBusinessFile(customerSettlement);
// 返回 // 返回
return customerSettlement.getId(); 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 @Override
public void updateCustomerSettlement(CustomerSettlementSaveReqVO updateReqVO) { public void updateCustomerSettlement(CustomerSettlementSaveReqVO updateReqVO) {
// 校验存在 // 校验存在