fix(bpm): 修复财务支付详情查询和子表附件信息处理
修复了查询财务支付详情时的错误,调整了财务支付子表的附件信息处理方式。现在,通过FinancialPaymentController获取财务支付详情时,将正确转换FinancialPaymentItemDO的附件信息字段,并避免在查询时出现SQL错误。此外,优化了FinancialPaymentMapper的查询方式,增加了直接查询FinancialPaymentDO的方法,提高了查询效率。
This commit is contained in:
parent
4823c60146
commit
6e0a98eea7
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.controller.admin.financialpayment;
|
package cn.iocoder.yudao.module.bpm.controller.admin.financialpayment;
|
||||||
|
|
||||||
|
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.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
@ -8,6 +9,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.Financia
|
|||||||
import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.FinancialPaymentSaveReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.FinancialPaymentSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.FinancialPaymentSaveVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.FinancialPaymentSaveVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.financialpaymentitem.vo.FinancialPaymentItemRespVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.financialpaymentitem.vo.FinancialPaymentItemRespVO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
||||||
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.financialpaymentitem.FinancialPaymentItemDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpaymentitem.FinancialPaymentItemDO;
|
||||||
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
|
import cn.iocoder.yudao.module.bpm.service.financialpayment.FinancialPaymentService;
|
||||||
@ -21,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
@ -75,7 +78,19 @@ public class FinancialPaymentController {
|
|||||||
FinancialPaymentDO financialPayment = financialPaymentService.getFinancialPayment(id);
|
FinancialPaymentDO financialPayment = financialPaymentService.getFinancialPayment(id);
|
||||||
FinancialPaymentRespVO vo = BeanUtils.toBean(financialPayment, FinancialPaymentRespVO.class);
|
FinancialPaymentRespVO vo = BeanUtils.toBean(financialPayment, FinancialPaymentRespVO.class);
|
||||||
List<FinancialPaymentItemDO> list = financialPaymentItemService.getByFinancialPaymentId(id);
|
List<FinancialPaymentItemDO> list = financialPaymentItemService.getByFinancialPaymentId(id);
|
||||||
List<FinancialPaymentItemRespVO> items = BeanUtils.toBean(list, FinancialPaymentItemRespVO.class);
|
List<FinancialPaymentItemRespVO> items = new ArrayList<>();
|
||||||
|
for (FinancialPaymentItemDO financialPaymentItemDO : list) {
|
||||||
|
FinancialPaymentItemRespVO item = new FinancialPaymentItemRespVO();
|
||||||
|
item.setId(financialPaymentItemDO.getId());
|
||||||
|
item.setNotes(financialPaymentItemDO.getNotes());
|
||||||
|
item.setAmount(financialPaymentItemDO.getAmount());
|
||||||
|
item.setFinancialPaymentId(financialPaymentItemDO.getFinancialPaymentId());
|
||||||
|
item.setCreateTime(financialPaymentItemDO.getCreateTime());
|
||||||
|
if (CollectionUtil.isNotEmpty(financialPaymentItemDO.getFileItems())) {
|
||||||
|
item.setFileItems(new ArrayList<UploadUserFile>());
|
||||||
|
}
|
||||||
|
items.add(item);
|
||||||
|
}
|
||||||
vo.setItems(items);
|
vo.setItems(items);
|
||||||
return success(vo);
|
return success(vo);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.controller.admin.financialpaymentitem.vo;
|
package cn.iocoder.yudao.module.bpm.controller.admin.financialpaymentitem.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 财务支付子表 Response VO")
|
@Schema(description = "管理后台 - 财务支付子表 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@ -22,8 +24,8 @@ public class FinancialPaymentItemRespVO {
|
|||||||
@Schema(description = "备注说明")
|
@Schema(description = "备注说明")
|
||||||
private String notes;
|
private String notes;
|
||||||
|
|
||||||
@Schema(description = "附件信息")
|
@Schema(description = "附件信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private String fileItems;
|
private List<UploadUserFile> fileItems;
|
||||||
|
|
||||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.controller.admin.financialpaymentitem.vo;
|
package cn.iocoder.yudao.module.bpm.controller.admin.financialpaymentitem.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.bpm.controller.admin.upload.UploadUserFile;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
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.*;
|
||||||
@ -23,7 +26,7 @@ public class FinancialPaymentItemSaveReqVO {
|
|||||||
@Schema(description = "备注说明")
|
@Schema(description = "备注说明")
|
||||||
private String notes;
|
private String notes;
|
||||||
|
|
||||||
@Schema(description = "附件信息")
|
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||||
private String fileItems;
|
private List<UploadUserFile> fileItems ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.dal.dataobject.financialpaymentitem;
|
package cn.iocoder.yudao.module.bpm.dal.dataobject.financialpaymentitem;
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
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.bpm.controller.admin.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
|
||||||
@ -43,6 +47,7 @@ public class FinancialPaymentItemDO extends BaseDO {
|
|||||||
/**
|
/**
|
||||||
* 附件信息
|
* 附件信息
|
||||||
*/
|
*/
|
||||||
private String fileItems;
|
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||||
|
private List<UploadUserFile> fileItems;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.bpm.dal.mysql.financialpayment;
|
package cn.iocoder.yudao.module.bpm.dal.mysql.financialpayment;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.FinancialPaymentPageReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.financialpayment.vo.FinancialPaymentPageReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -26,4 +24,12 @@ public interface FinancialPaymentMapper extends BaseMapperX<FinancialPaymentDO>
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IPage<FinancialPaymentDO> getFinancialPaymentPage(@Param("vo") FinancialPaymentPageReqVO vo, @Param("page") Page page);
|
IPage<FinancialPaymentDO> getFinancialPaymentPage(@Param("vo") FinancialPaymentPageReqVO vo, @Param("page") Page page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取详情
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
FinancialPaymentDO getFinancialPayment(@Param("id") Long id);
|
||||||
}
|
}
|
||||||
|
@ -16,20 +16,21 @@ import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOACashDO;
|
|||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAImprestDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAImprestDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcurePayDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAProcurePayDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAReimbursementDO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.financialpayment.FinancialPaymentMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.financialpayment.FinancialPaymentMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.financialpaymentitem.FinancialPaymentItemMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.financialpaymentitem.FinancialPaymentItemMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOACashMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAImprestMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAImprestMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAProcurePayMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAProcurePayMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAReimbursementMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAReimbursementMapper;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
||||||
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
|
||||||
import cn.iocoder.yudao.module.system.api.subscribe.SubscribeMessageSendApi;
|
import cn.iocoder.yudao.module.system.api.subscribe.SubscribeMessageSendApi;
|
||||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.flowable.engine.RuntimeService;
|
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
@ -62,9 +63,9 @@ public class FinancialPaymentServiceImpl implements FinancialPaymentService {
|
|||||||
@Resource
|
@Resource
|
||||||
private SubscribeMessageSendApi subscribeMessageSendApi;
|
private SubscribeMessageSendApi subscribeMessageSendApi;
|
||||||
@Resource
|
@Resource
|
||||||
private RuntimeService runtimeService;
|
|
||||||
@Resource
|
|
||||||
private AdminUserApi userApi;
|
private AdminUserApi userApi;
|
||||||
|
@Resource
|
||||||
|
private BpmProcessInstanceExtMapper processInstanceExtMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createFinancialPayment(FinancialPaymentSaveVO vo) {
|
public Long createFinancialPayment(FinancialPaymentSaveVO vo) {
|
||||||
@ -96,17 +97,30 @@ public class FinancialPaymentServiceImpl implements FinancialPaymentService {
|
|||||||
} else if (financialPayment.getType() == 4) {
|
} else if (financialPayment.getType() == 4) {
|
||||||
reimbursementMapper.updateById(new BpmOAReimbursementDO().setId(financialPayment.getObjectId()).setResult(BpmProcessInstanceResultEnum.BACK.getResult()));
|
reimbursementMapper.updateById(new BpmOAReimbursementDO().setId(financialPayment.getObjectId()).setResult(BpmProcessInstanceResultEnum.BACK.getResult()));
|
||||||
}
|
}
|
||||||
|
BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO().setProcessInstanceId(financialPayment.getProcessInstanceId())
|
||||||
|
.setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus())
|
||||||
|
.setResult(BpmProcessInstanceResultEnum.BACK.getResult());
|
||||||
|
processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO);
|
||||||
}
|
}
|
||||||
this.updateById(financialPayment);
|
this.updateById(financialPayment);
|
||||||
|
String processDefinitionName = "";
|
||||||
|
if (financialPayment.getType() == 1) {
|
||||||
|
processDefinitionName = "现金支出";
|
||||||
|
} else if (financialPayment.getType() == 2) {
|
||||||
|
processDefinitionName = "备用金";
|
||||||
|
}else if (financialPayment.getType() == 3) {
|
||||||
|
processDefinitionName = "采购付款";
|
||||||
|
}else if (financialPayment.getType() == 4) {
|
||||||
|
processDefinitionName = "报销";
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(financialPayment.getProcessInstanceId()).singleResult();
|
|
||||||
AdminUserRespDTO adminUserRespDTO = userApi.getUser(financialPayment.getUserId()).getData();
|
AdminUserRespDTO adminUserRespDTO = userApi.getUser(financialPayment.getUserId()).getData();
|
||||||
if (StrUtil.isNotEmpty(adminUserRespDTO.getOpenId())) {
|
if (StrUtil.isNotEmpty(adminUserRespDTO.getOpenId())) {
|
||||||
// --- 发消息通知发起人
|
// --- 发消息通知发起人
|
||||||
String time = financialPaymentItem.getCreateTime().format(Constants.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
String time = financialPaymentItem.getCreateTime().format(Constants.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
||||||
subscribeMessageSendApi.sendApprovalResultNotification(
|
subscribeMessageSendApi.sendApprovalResultNotification(
|
||||||
BpmMessageConvert.INSTANCE.convertApprovalResultNotification(
|
BpmMessageConvert.INSTANCE.convertApprovalResultNotification(
|
||||||
adminUserRespDTO.getOpenId(), processInstance.getProcessDefinitionName(), time, vo.getStatus() == 1 ? "通过" : "拒绝", financialPaymentItem.getNotes(),
|
adminUserRespDTO.getOpenId(), processDefinitionName, time, vo.getStatus() == 1 ? "通过" : "拒绝", financialPaymentItem.getNotes(),
|
||||||
financialPayment.getProcessInstanceId(),
|
financialPayment.getProcessInstanceId(),
|
||||||
/**
|
/**
|
||||||
* 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
* 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
||||||
@ -135,7 +149,7 @@ public class FinancialPaymentServiceImpl implements FinancialPaymentService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FinancialPaymentDO getFinancialPayment(Long id) {
|
public FinancialPaymentDO getFinancialPayment(Long id) {
|
||||||
return financialPaymentMapper.selectById(id);
|
return financialPaymentMapper.getFinancialPayment(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -62,4 +62,19 @@
|
|||||||
</where>
|
</where>
|
||||||
order by a.create_time desc
|
order by a.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getFinancialPayment"
|
||||||
|
resultType="cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO">
|
||||||
|
select
|
||||||
|
a.*,
|
||||||
|
b.nickname as nickname,
|
||||||
|
c.name as deptName,
|
||||||
|
d.nickname as receiveUserNickName
|
||||||
|
from bpm_financial_payment as a
|
||||||
|
left join system_users as b on a.user_id = b.id
|
||||||
|
left join system_dept as c on b.dept_id = c.id
|
||||||
|
left join system_users as d on a.receive_user_id = d.id
|
||||||
|
<where>
|
||||||
|
a.id = #{id}
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user