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;
|
||||
|
||||
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;
|
||||
@ -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.FinancialPaymentSaveVO;
|
||||
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.financialpaymentitem.FinancialPaymentItemDO;
|
||||
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.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
@ -75,7 +78,19 @@ public class FinancialPaymentController {
|
||||
FinancialPaymentDO financialPayment = financialPaymentService.getFinancialPayment(id);
|
||||
FinancialPaymentRespVO vo = BeanUtils.toBean(financialPayment, FinancialPaymentRespVO.class);
|
||||
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);
|
||||
return success(vo);
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
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 lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 财务支付子表 Response VO")
|
||||
@Data
|
||||
@ -22,8 +24,8 @@ public class FinancialPaymentItemRespVO {
|
||||
@Schema(description = "备注说明")
|
||||
private String notes;
|
||||
|
||||
@Schema(description = "附件信息")
|
||||
private String fileItems;
|
||||
@Schema(description = "附件信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<UploadUserFile> fileItems;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
@ -1,5 +1,8 @@
|
||||
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 lombok.*;
|
||||
import java.util.*;
|
||||
@ -23,7 +26,7 @@ public class FinancialPaymentItemSaveReqVO {
|
||||
@Schema(description = "备注说明")
|
||||
private String notes;
|
||||
|
||||
@Schema(description = "附件信息")
|
||||
private String fileItems;
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<UploadUserFile> fileItems ;
|
||||
|
||||
}
|
@ -1,12 +1,16 @@
|
||||
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.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
|
||||
@ -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;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
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.dal.dataobject.financialpayment.FinancialPaymentDO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -26,4 +24,12 @@ public interface FinancialPaymentMapper extends BaseMapperX<FinancialPaymentDO>
|
||||
* @return
|
||||
*/
|
||||
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.BpmOAProcurePayDO;
|
||||
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.financialpaymentitem.FinancialPaymentItemMapper;
|
||||
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.BpmOAProcurePayMapper;
|
||||
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.BpmProcessInstanceStatusEnum;
|
||||
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.dto.AdminUserRespDTO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@ -62,9 +63,9 @@ public class FinancialPaymentServiceImpl implements FinancialPaymentService {
|
||||
@Resource
|
||||
private SubscribeMessageSendApi subscribeMessageSendApi;
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
@Resource
|
||||
private AdminUserApi userApi;
|
||||
@Resource
|
||||
private BpmProcessInstanceExtMapper processInstanceExtMapper;
|
||||
|
||||
@Override
|
||||
public Long createFinancialPayment(FinancialPaymentSaveVO vo) {
|
||||
@ -96,17 +97,30 @@ public class FinancialPaymentServiceImpl implements FinancialPaymentService {
|
||||
} else if (financialPayment.getType() == 4) {
|
||||
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);
|
||||
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 {
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(financialPayment.getProcessInstanceId()).singleResult();
|
||||
AdminUserRespDTO adminUserRespDTO = userApi.getUser(financialPayment.getUserId()).getData();
|
||||
if (StrUtil.isNotEmpty(adminUserRespDTO.getOpenId())) {
|
||||
// --- 发消息通知发起人
|
||||
String time = financialPaymentItem.getCreateTime().format(Constants.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
||||
subscribeMessageSendApi.sendApprovalResultNotification(
|
||||
BpmMessageConvert.INSTANCE.convertApprovalResultNotification(
|
||||
adminUserRespDTO.getOpenId(), processInstance.getProcessDefinitionName(), time, vo.getStatus() == 1 ? "通过" : "拒绝", financialPaymentItem.getNotes(),
|
||||
adminUserRespDTO.getOpenId(), processDefinitionName, time, vo.getStatus() == 1 ? "通过" : "拒绝", financialPaymentItem.getNotes(),
|
||||
financialPayment.getProcessInstanceId(),
|
||||
/**
|
||||
* 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
||||
@ -135,7 +149,7 @@ public class FinancialPaymentServiceImpl implements FinancialPaymentService {
|
||||
|
||||
@Override
|
||||
public FinancialPaymentDO getFinancialPayment(Long id) {
|
||||
return financialPaymentMapper.selectById(id);
|
||||
return financialPaymentMapper.getFinancialPayment(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -62,4 +62,19 @@
|
||||
</where>
|
||||
order by a.create_time desc
|
||||
</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>
|
||||
|
Loading…
Reference in New Issue
Block a user