|
|
@ -6,12 +6,21 @@ import com.qs.serve.common.model.dto.PageVo; |
|
|
|
import com.qs.serve.common.model.dto.R; |
|
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
|
import com.qs.serve.common.util.PageUtil; |
|
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
|
import com.qs.serve.common.util.*; |
|
|
|
import com.qs.serve.modules.seeyon.entity.CtpAffair; |
|
|
|
import com.qs.serve.modules.seeyon.entity.CtpAffairCommit; |
|
|
|
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; |
|
|
|
import com.qs.serve.modules.seeyon.service.SeeYonService; |
|
|
|
import com.qs.serve.modules.sys.entity.SysAttach; |
|
|
|
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.TbsCostApplyState; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
|
import com.qs.serve.modules.tbs.common.VtbVerificationState; |
|
|
|
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.vtb.entity.VtbVerificationChannel; |
|
|
|
import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint; |
|
|
|
import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; |
|
|
@ -30,8 +39,10 @@ import com.qs.serve.modules.vtb.entity.VtbVerification; |
|
|
|
import com.qs.serve.modules.vtb.service.VtbVerificationService; |
|
|
|
|
|
|
|
import javax.validation.Valid; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.List; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* 核销 核销 |
|
|
@ -49,14 +60,10 @@ public class VtbVerificationController { |
|
|
|
private VtbVerificationChannelPointService vtbVerificationChannelPointService; |
|
|
|
private VtbVerificationSubjectService vtbVerificationSubjectService; |
|
|
|
private SysAttachService attachService; |
|
|
|
private SysUserService sysUserService; |
|
|
|
private SeeYonService seeYonService; |
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/oktest") |
|
|
|
public R<?> test(Long id){ |
|
|
|
vtbVerificationService.successCommit(id); |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 翻页 |
|
|
|
* @param param |
|
|
@ -102,8 +109,6 @@ public class VtbVerificationController { |
|
|
|
return R.ok(vtbVerification); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 提交核销 |
|
|
|
* @param param |
|
|
@ -117,6 +122,111 @@ public class VtbVerificationController { |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 审批列表(用于详情页) |
|
|
|
* @param verificationId |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/ListAffairs") |
|
|
|
public R<List<CtpAffairVo>> pageMemberAffair(Long verificationId){ |
|
|
|
VtbVerification verification = vtbVerificationService.getById(verificationId); |
|
|
|
String syFormId = verification.getSyFormId(); |
|
|
|
if(syFormId==null){ |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
String tmpCode = TbsSeeYonConst.VERIFICATION_FORM; |
|
|
|
return seeYonService.commonListAffairs(syFormId, tmpCode); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 审批列表(翻页) |
|
|
|
* @param state 状态:0-未完成与已完成(默认);1-未完成;2已完成;3-我发起的;其它-被拦截 |
|
|
|
* @param pageNum |
|
|
|
* @param pageSize |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@GetMapping("/pageMemberAffair") |
|
|
|
public R<PageVo<CtpAffairVo>> pageMemberAffair(Integer state, Integer pageNum, Integer pageSize){ |
|
|
|
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); |
|
|
|
if(!StringUtils.hasText(sysUser.getSyUserId())||!StringUtils.hasText(sysUser.getSyAccount())){ |
|
|
|
return R.error("当前账号未绑定致远用户信息"); |
|
|
|
} |
|
|
|
CtpAffairQo param = new CtpAffairQo(); |
|
|
|
param.setMemberId(sysUser.getSyUserId()); |
|
|
|
param.setState(state); |
|
|
|
param.setPageNum(pageNum); |
|
|
|
param.setPageSize(pageSize); |
|
|
|
param.setTemplateCodes(Arrays.asList(TbsSeeYonConst.VERIFICATION_FORM)); |
|
|
|
R<PageVo<CtpAffair>> syResult = seeYonService.pageMemberAffair(param); |
|
|
|
PageVo<CtpAffair> pageVo = syResult.getData(); |
|
|
|
List<CtpAffair> ctpAffairs = pageVo.getList(); |
|
|
|
if(ctpAffairs.size()>0){ |
|
|
|
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 = vtbVerificationService.listByIds(verificationIds); |
|
|
|
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); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
for (SysUser user : userList) { |
|
|
|
if(ctpAffair.getMemberId().equals(user.getSyUserId())){ |
|
|
|
ctpAffairVo.setUserInfo(user.toSysUserVo()); |
|
|
|
} |
|
|
|
} |
|
|
|
ctpAffairVo.setAffairInfo(ctpAffair); |
|
|
|
result.add(ctpAffairVo); |
|
|
|
} |
|
|
|
PageVo<CtpAffairVo> costApplyPageVo = PageVo.initNewList(pageVo,result); |
|
|
|
return R.ok(costApplyPageVo); |
|
|
|
} |
|
|
|
return R.byEmptyList(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 提交审批节点 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@PostMapping("/commitAffair") |
|
|
|
@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.State_1_apply.getCode())){ |
|
|
|
return R.error("费用申请处于未非审批状态!"); |
|
|
|
} |
|
|
|
R<String> result = seeYonService.commonCommit(affairCommit,TbsSeeYonConst.VERIFICATION_FORM); |
|
|
|
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.State_2_actioning.getCode()); |
|
|
|
vtbVerificationService.updateById(vtbVer); |
|
|
|
}else if ("stop".equals(flag)){ |
|
|
|
VtbVerification vtbVer = new VtbVerification(); |
|
|
|
vtbVer.setId(verification.getId()); |
|
|
|
vtbVer.setVerificationState(VtbVerificationState.State_5_stop.getCode()); |
|
|
|
vtbVerificationService.updateById(vtbVer); |
|
|
|
return R.ok(); |
|
|
|
}else if ("next".equals(flag)){ |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
}else if (result.getStatus()==500){ |
|
|
|
return result; |
|
|
|
} |
|
|
|
return R.error("远程调用失败"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|