Browse Source

调整审批流程,支持修改核销金额

contract
Yen 2 years ago
parent
commit
b56435a895
  1. 12
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  2. 110
      src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  3. 96
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYard.java
  4. 145
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYardItem.java
  5. 14
      src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationYardItemMapper.java
  6. 14
      src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationYardMapper.java
  7. 196
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  8. 14
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationYardItemService.java
  9. 14
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationYardService.java
  10. 22
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationYardItemServiceImpl.java
  11. 22
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationYardServiceImpl.java

12
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java

@ -3,6 +3,8 @@ package com.qs.serve.modules.tbs.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* @author YenHex
@ -31,5 +33,15 @@ public class TbsAffairCommitBo {
@NotNull
private String comment;
/**
* 修改金额列表
*/
private List<AffairSubjectLine> affairSubjectLines;
@Data
public static class AffairSubjectLine{
private Long verificationSubjectId;
private BigDecimal amount;
}
}

110
src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -29,9 +29,7 @@ import com.qs.serve.modules.vtb.entity.VtbVerificationChannel;
import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
import com.qs.serve.modules.vtb.entity.so.VtbVerificationSubjectSo;
import com.qs.serve.modules.vtb.service.VtbVerificationChannelPointService;
import com.qs.serve.modules.vtb.service.VtbVerificationChannelService;
import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService;
import com.qs.serve.modules.vtb.service.*;
import com.tencentcloudapi.as.v20180419.models.Activity;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -42,7 +40,6 @@ import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.vtb.entity.so.VtbVerificationSo;
import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
import javax.validation.Valid;
import java.time.LocalDateTime;
@ -66,11 +63,10 @@ public class VtbVerificationController {
private VtbVerificationChannelService vtbVerificationChannelService;
private VtbVerificationChannelPointService vtbVerificationChannelPointService;
private VtbVerificationSubjectService vtbVerificationSubjectService;
private TbsActivityService tbsActivityService;
private TbsCostApplyService tbsCostApplyService;
private SysAttachService attachService;
private SysUserService sysUserService;
private SeeYonService seeYonService;
private VtbVerificationApplication verificationApplication;
/**
@ -152,7 +148,7 @@ public class VtbVerificationController {
String templateId = TbsSeeYonConst.VERIFICATION_TMP_ID;
String templateCode = TbsSeeYonConst.VERIFICATION_CODE;
R<List<CtpAffair>> result = seeYonService.commonListAffairs(verificationId+"",null, templateId,templateCode);
List<CtpAffairVo> result2 = this.buildCtpAffairVoList(result.getData());
List<CtpAffairVo> result2 = verificationApplication.buildCtpAffairVoList(result.getData());
return R.ok(result2);
}
@ -180,64 +176,14 @@ public class VtbVerificationController {
PageVo<CtpAffair> pageVo = syResult.getData();
List<CtpAffair> ctpAffairs = pageVo.getList();
if(ctpAffairs.size()>0){
List<CtpAffairVo> result = this.buildCtpAffairVoList(ctpAffairs);
List<CtpAffairVo> result = verificationApplication.buildCtpAffairVoList(ctpAffairs);
PageVo<CtpAffairVo> costApplyPageVo = PageVo.initNewList(pageVo,result);
return R.ok(costApplyPageVo);
}
return R.byEmptyList();
}
@NotNull
private List<CtpAffairVo> buildCtpAffairVoList(List<CtpAffair> ctpAffairs) {
if(CollectionUtil.isEmpty(ctpAffairs)){
return new ArrayList<>();
}
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList());
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds);
List<String> verificationIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList());
List<VtbVerification> vtbVerificationList = new ArrayList<>();
List<TbsActivity> activityList = new ArrayList<>();
List<TbsCostApply> costApplyList = new ArrayList<>();
if(verificationIds.size()>0){
vtbVerificationList = vtbVerificationService.listByIds(verificationIds);
List<Long> actIds = vtbVerificationList.stream().map(VtbVerification::getActivityId).collect(Collectors.toList());
if(actIds.size()>0){
activityList = tbsActivityService.listByIds(actIds);
List<Long> costIds = activityList.stream().map(TbsActivity::getCostApplyId).distinct().collect(Collectors.toList());
costApplyList = tbsCostApplyService.listByIds(costIds);
}
}
List<CtpAffairVo> result = new ArrayList<>();
for (CtpAffair ctpAffair : ctpAffairs) {
CtpAffairVo ctpAffairVo = new CtpAffairVo();
for (VtbVerification verification : vtbVerificationList) {
if(verification.getId().toString().equals(ctpAffair.getCostApplyId())){
ctpAffairVo.setVerification(verification);
for (TbsActivity activity : activityList) {
if(verification.getActivityId().equals(activity.getId())){
ctpAffairVo.setActivityInfo(activity);
for (TbsCostApply costApply : costApplyList) {
if(activity.getCostApplyId().equals(costApply.getId())){
ctpAffairVo.setCostApply(costApply);
break;
}
}
break;
}
}
break;
}
}
for (SysUser user : userList) {
if(ctpAffair.getMemberId().equals(user.getSyUserId())){
ctpAffairVo.setUserInfo(user.toSysUserVo());
}
}
ctpAffairVo.setAffairInfo(ctpAffair);
result.add(ctpAffairVo);
}
return result;
}
/**
* 提交审批节点
@ -247,51 +193,7 @@ public class VtbVerificationController {
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:costApply:commit')")
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId());
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
return R.error("费用申请处于未非审批状态!");
}
boolean isBackCommit = affairCommit.getState()==2;
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.VERIFICATION_CODE);
if(result.getStatus()==200){
// 判断是否含有下个节点
String flag = result.getData();
//审批中(next)、完成(finish)、拒绝(refused)
if("finish".equals(flag)){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Finished.getCode());
vtbVer.setFinishedTime(LocalDateTime.now());
vtbVerificationService.updateById(vtbVer);
vtbVerificationService.successCommit(verification.getId());
return R.ok();
}else if ("stop".equals(flag)){
if(isBackCommit){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Rollback.getCode());
vtbVer.setSyFormId("");
vtbVer.setSyFlowId("");
vtbVerificationService.updateById(vtbVer);
}else {
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(vtbVer);
}
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());
activity.setActivityState(TbsActivityState.STATE_0_Todo);
tbsActivityService.updateById(activity);
return R.ok();
}else if ("next".equals(flag)){
return R.ok();
}
}else if (result.getStatus()==500){
return result;
}
return R.error("远程调用失败");
return verificationApplication.commitAffair(affairCommit);
}

96
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYard.java

@ -0,0 +1,96 @@
package com.qs.serve.modules.vtb.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 核销审批线 实体类
* @author YenHex
* @since 2023-02-14
*/
@Data
@TableName("vtb_verification_yard")
public class VtbVerificationYard implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 核算id */
@NotNull(message = "核算id不能为空")
private Long verificationId;
/** 科目核销编码 */
@NotBlank(message = "科目核销编码不能为空")
@Length(max = 32,message = "科目核销编码长度不能超过32字")
private String verificationSubCode;
/** 状态:0-否定,1-同意,2-退回 */
@NotNull(message = "状态:0-否定,1-同意,2-退回不能为空")
private Integer state;
/** OA节点id */
@NotBlank(message = "OA节点id不能为空")
@Length(max = 40,message = "OA节点id长度不能超过40字")
private String affairId;
/** 评论 */
@NotBlank(message = "评论不能为空")
@Length(max = 255,message = "评论长度不能超过255字")
private String comment;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 是否无效 */
@NotNull(message = "是否无效不能为空")
private Integer effectiveFlag;
}

145
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYardItem.java

@ -0,0 +1,145 @@
package com.qs.serve.modules.vtb.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 核销审批线明细 实体类
* @author YenHex
* @since 2023-02-14
*/
@Data
@TableName("vtb_verification_yard_item")
public class VtbVerificationYardItem implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 核销线id */
@NotNull(message = "核销线id不能为空")
private Long yardId;
/** 核算id */
@NotNull(message = "核算id不能为空")
private Long verificationId;
/** 科目核销编码 */
@NotBlank(message = "科目核销编码不能为空")
@Length(max = 32,message = "科目核销编码长度不能超过32字")
private String verificationSubCode;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 活动id */
@NotNull(message = "活动id不能为空")
private Long activityId;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目编码 */
@NotBlank(message = "科目编码不能为空")
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;
/** 科目名称 */
@NotBlank(message = "科目名称不能为空")
@Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName;
/** 客户id */
@NotNull(message = "客户id不能为空")
private Long supplierId;
/** 客户编码 */
@NotBlank(message = "客户编码不能为空")
@Length(max = 30,message = "客户编码长度不能超过30字")
private String supplierCode;
/** 客户名称 */
@NotBlank(message = "客户名称不能为空")
@Length(max = 30,message = "客户名称长度不能超过30字")
private String supplierName;
/** 上次审批金额 */
@NotNull(message = "上次审批金额不能为空")
private BigDecimal lastAmount;
/** 本次审批金额 */
@NotNull(message = "本次审批金额不能为空")
private BigDecimal currAmount;
/** 场次 */
@NotNull(message = "场次不能为空")
private Integer countSession;
/** 人数 */
@NotNull(message = "人数不能为空")
private Integer countPerson;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 是否无效 */
@NotNull(message = "是否无效不能为空")
private Integer effectiveFlag;
public void initSetNull(){
this.setCreateBy(null);
this.setCreateTime(null);
this.setUpdateBy(null);
this.setUpdateTime(null);
}
}

14
src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationYardItemMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem;
/**
* 核销审批线明细 Mapper
* @author YenHex
* @date 2023-02-14
*/
public interface VtbVerificationYardItemMapper extends BaseMapper<VtbVerificationYardItem> {
}

14
src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationYardMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.vtb.entity.VtbVerificationYard;
/**
* 核销审批线 Mapper
* @author YenHex
* @date 2023-02-14
*/
public interface VtbVerificationYardMapper extends BaseMapper<VtbVerificationYard> {
}

196
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -0,0 +1,196 @@
package com.qs.serve.modules.vtb.service;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.seeyon.entity.CtpAffair;
import com.qs.serve.modules.seeyon.service.SeeYonService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject;
import com.qs.serve.modules.vtb.entity.VtbVerificationYard;
import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem;
import lombok.AllArgsConstructor;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author YenHex
* @since 2023/2/14
*/
@Service
@AllArgsConstructor
public class VtbVerificationApplication {
private VtbVerificationService vtbVerificationService;
private VtbVerificationSubjectService vtbVerificationSubjectService;
private VtbVerificationYardService yardService;
private VtbVerificationYardItemService yardItemService;
private TbsActivityService tbsActivityService;
private TbsCostApplyService tbsCostApplyService;
private SysUserService sysUserService;
private SeeYonService seeYonService;
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId());
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
return R.error("费用申请处于未非审批状态!");
}
VtbVerificationYard yard = new VtbVerificationYard();
yard.setVerificationId(verification.getId());
yard.setVerificationSubCode(verification.getVerificationCode());
yard.setState(affairCommit.getState());
yard.setAffairId(affairCommit.getAffairId());
yard.setComment(affairCommit.getComment());
boolean isBackCommit = affairCommit.getState()==2;
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.VERIFICATION_CODE);
if(result.getStatus()==200){
// 判断是否含有下个节点
String flag = result.getData();
//审批中(next)、完成(finish)、拒绝(refused)
if("finish".equals(flag)){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Finished.getCode());
vtbVer.setFinishedTime(LocalDateTime.now());
vtbVerificationService.updateById(vtbVer);
vtbVerificationService.successCommit(verification.getId());
}else if ("stop".equals(flag)){
if(isBackCommit){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Rollback.getCode());
vtbVer.setSyFormId("");
vtbVer.setSyFlowId("");
vtbVerificationService.updateById(vtbVer);
}else {
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
vtbVer.setVerificationState(VtbVerificationState.Stop.getCode());
vtbVerificationService.updateById(vtbVer);
}
//还原活动为待核销状态
TbsActivity activity = new TbsActivity();
activity.setId(verification.getActivityId());
activity.setActivityState(TbsActivityState.STATE_0_Todo);
tbsActivityService.updateById(activity);
}else if (!"next".equals(flag)){
return R.error("远程调用返回,非指定状态");
}
yardService.save(yard);
//非终止或者驳回,保存审批线金额明细
if(!"stop".equals(flag)){
List<VtbVerificationSubject> verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verification.getId());
List<VtbVerificationYardItem> yardItemList = new ArrayList<>();
for (VtbVerificationSubject currVs : verificationSubjects) {
BigDecimal changeAmount = null;
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){
for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) {
if(currVs.getId().equals(affairSubjectLine.getVerificationSubjectId())){
changeAmount = affairSubjectLine.getAmount();
break;
}
}
}
//保存明细判断是否更变金额
VtbVerificationYardItem yardItem = CopierUtil.copy(currVs,new VtbVerificationYardItem());
yardItem.initSetNull();
BigDecimal lastAmount = currVs.getUsedAmount();
yardItem.setLastAmount(lastAmount);
//金额有更变
if(changeAmount!=null&&changeAmount.compareTo(lastAmount)!=0){
yardItem.setCurrAmount(changeAmount);
BigDecimal diff = changeAmount.subtract(lastAmount);
if(diff.compareTo(BigDecimal.ZERO)>0){
yardItem.setRemark(currVs.getSubjectName()+"["+currVs.getSubjectCode()+"]增加费用:"+diff);
}else {
yardItem.setRemark(currVs.getSubjectName()+"["+currVs.getSubjectCode()+"]减少费用:"+diff.negate());
}
}else {
yardItem.setCurrAmount(lastAmount);
}
yardItemList.add(yardItem);
}
yardItemService.saveBatch(yardItemList);
}
return R.ok();
}else if (result.getStatus()==500){
return result;
}
return R.error("远程调用失败");
}
@NotNull
public List<CtpAffairVo> buildCtpAffairVoList(List<CtpAffair> ctpAffairs) {
if(CollectionUtil.isEmpty(ctpAffairs)){
return new ArrayList<>();
}
List<String> oaUserIds = ctpAffairs.stream().map(CtpAffair::getMemberId).collect(Collectors.toList());
List<SysUser> userList = sysUserService.listByOaMemberIds(oaUserIds);
List<String> verificationIds = ctpAffairs.stream().map(CtpAffair::getCostApplyId).collect(Collectors.toList());
List<VtbVerification> vtbVerificationList = new ArrayList<>();
List<TbsActivity> activityList = new ArrayList<>();
List<TbsCostApply> costApplyList = new ArrayList<>();
if(verificationIds.size()>0){
vtbVerificationList = vtbVerificationService.listByIds(verificationIds);
List<Long> actIds = vtbVerificationList.stream().map(VtbVerification::getActivityId).collect(Collectors.toList());
if(actIds.size()>0){
activityList = tbsActivityService.listByIds(actIds);
List<Long> costIds = activityList.stream().map(TbsActivity::getCostApplyId).distinct().collect(Collectors.toList());
costApplyList = tbsCostApplyService.listByIds(costIds);
}
}
List<CtpAffairVo> result = new ArrayList<>();
for (CtpAffair ctpAffair : ctpAffairs) {
CtpAffairVo ctpAffairVo = new CtpAffairVo();
for (VtbVerification verification : vtbVerificationList) {
if(verification.getId().toString().equals(ctpAffair.getCostApplyId())){
ctpAffairVo.setVerification(verification);
for (TbsActivity activity : activityList) {
if(verification.getActivityId().equals(activity.getId())){
ctpAffairVo.setActivityInfo(activity);
for (TbsCostApply costApply : costApplyList) {
if(activity.getCostApplyId().equals(costApply.getId())){
ctpAffairVo.setCostApply(costApply);
break;
}
}
break;
}
}
break;
}
}
for (SysUser user : userList) {
if(ctpAffair.getMemberId().equals(user.getSyUserId())){
ctpAffairVo.setUserInfo(user.toSysUserVo());
}
}
ctpAffairVo.setAffairInfo(ctpAffair);
result.add(ctpAffairVo);
}
return result;
}
}

14
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationYardItemService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem;
/**
* 核销审批线明细 服务接口
* @author YenHex
* @date 2023-02-14
*/
public interface VtbVerificationYardItemService extends IService<VtbVerificationYardItem> {
}

14
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationYardService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.vtb.entity.VtbVerificationYard;
/**
* 核销审批线 服务接口
* @author YenHex
* @date 2023-02-14
*/
public interface VtbVerificationYardService extends IService<VtbVerificationYard> {
}

22
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationYardItemServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.vtb.entity.VtbVerificationYardItem;
import com.qs.serve.modules.vtb.service.VtbVerificationYardItemService;
import com.qs.serve.modules.vtb.mapper.VtbVerificationYardItemMapper;
/**
* 核销审批线明细 服务实现类
* @author YenHex
* @since 2023-02-14
*/
@Slf4j
@Service
@AllArgsConstructor
public class VtbVerificationYardItemServiceImpl extends ServiceImpl<VtbVerificationYardItemMapper,VtbVerificationYardItem> implements VtbVerificationYardItemService {
}

22
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationYardServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.vtb.entity.VtbVerificationYard;
import com.qs.serve.modules.vtb.service.VtbVerificationYardService;
import com.qs.serve.modules.vtb.mapper.VtbVerificationYardMapper;
/**
* 核销审批线 服务实现类
* @author YenHex
* @since 2023-02-14
*/
@Slf4j
@Service
@AllArgsConstructor
public class VtbVerificationYardServiceImpl extends ServiceImpl<VtbVerificationYardMapper,VtbVerificationYard> implements VtbVerificationYardService {
}
Loading…
Cancel
Save