Browse Source

重定向

contract
Yen 2 years ago
parent
commit
d325b80e42
  1. 75
      src/main/java/com/qs/serve/controller/AdminPortalController.java
  2. 71
      src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java
  3. 8
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  4. 2
      src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairQo.java
  5. 23
      src/main/java/com/qs/serve/modules/seeyon/entity/SyAffairStateResult.java
  6. 6
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonCompensateService.java
  7. 11
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java
  8. 32
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java
  9. 2
      src/main/java/com/qs/serve/modules/sys/service/impl/SysUserLoginServiceImpl.java
  10. 4
      src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java
  11. 2
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java
  12. 1
      src/main/resources/application.yml

75
src/main/java/com/qs/serve/controller/AdminPortalController.java

@ -10,7 +10,12 @@ import com.qs.serve.common.model.consts.RedisCacheKeys;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.controller.dto.SyLoginParam;
import com.qs.serve.controller.util.SyKeyLoginUtil;
import com.qs.serve.modules.seeyon.entity.SyAffairStateResult;
import com.qs.serve.modules.seeyon.enums.SyAffairState;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysTenant;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.dto.SysLoginByPhoneParam;
@ -20,7 +25,15 @@ import com.qs.serve.modules.sys.mapper.SysNoticeUserMapper;
import com.qs.serve.modules.sys.service.SysTenantService;
import com.qs.serve.modules.sys.service.SysUserLoginService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyCompensateServiceImpl;
import com.qs.serve.modules.third.ThirdTokenUtil;
import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@ -50,6 +63,13 @@ public class AdminPortalController {
private SysUserService sysUserService;
private ProjectProperties projectProperties;
private SeeYonRequestService seeYonRequestService;
private TbsCostApplyService costApplyService;
private VtbVerificationService verificationService;
private TzcPolicyService policyService;
/**
* 获取所有租户
* @return
@ -69,18 +89,65 @@ public class AdminPortalController {
@GetMapping("/syKeyLogin")
public void getList(SyLoginParam param, HttpServletResponse response) throws IOException {
String templateCode = param.getTemplateCode();
String key = param.getKey();
String syId = param.getSyId();
// dev remove
if(!StringUtils.hasText(syId)){
response.sendRedirect(projectProperties.getWebUrl()+"/#/login?");
}
String key = param.getKey();
SyAffairStateResult affairStateResult = seeYonRequestService.checkAffairState(key,syId,templateCode);
// dev add
//syId = affairStateResult.getMemberId();
if(affairStateResult.getState()==SyAffairState.error){
response.sendRedirect(projectProperties.getWebUrl()+"/#/login?");
}
//通过类型和key获取审批id
String targetId = "";
String targetId = affairStateResult.getTargetId();
String affairId = affairStateResult.getAffairId();
String memberId = affairStateResult.getMemberId();
//通过syId生成token
String token = sysUserLoginService.loginBySyUserId(syId);
if(token==null){
response.sendRedirect(projectProperties.getWebUrl()+"/#/login?");
}else {
//todo 获取跳转地址
String jumpUrl = "/#/expense-application-detail?id="+targetId;
String jumpUrl = "404";
SyAffairState affairState = affairStateResult.getState();
if(affairState!=SyAffairState.none&&affairState!=SyAffairState.error){
//判断是否当前人员
if(syId.equals(memberId)){
//待审列表
if (affairState==SyAffairState.next){
jumpUrl = SyKeyLoginUtil.getPreCheckUrl(templateCode,targetId,affairId);
}else {
jumpUrl = SyKeyLoginUtil.getCheckedDetailUrl(templateCode,targetId);
}
}else{
//判断是否创建人,创建人则跳转到详情
SysUser sysUser = sysUserService.getBySyId(syId);
String creator = null;
//非当前表单用户跳转到404页面
if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code())){
TbsCostApply object = costApplyService.getById(targetId);
creator = object.getCreateBy();
}else if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){
VtbVerification object = verificationService.getById(targetId);
creator = object.getCreateBy();
}else if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){
TzcPolicy object = policyService.getById(targetId);
creator = object.getCreateBy();
}
if(creator.equals(sysUser.getId())){
jumpUrl = SyKeyLoginUtil.getMyDetailUrl(templateCode,targetId);
}
}
}
String fontUrl = projectProperties.getWebUrl() + "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl;
log.warn("fontUrl:{}",fontUrl);
response.sendRedirect(fontUrl);
}
}

71
src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java

@ -0,0 +1,71 @@
package com.qs.serve.controller.util;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import lombok.experimental.UtilityClass;
/**
* @author YenHex
* @since 2023/6/12
*/
@UtilityClass
public class SyKeyLoginUtil {
/**
* 获取待审批详情
* @param templateCode
* @param targetId
* @param affairId
* @return
*/
public static String getPreCheckUrl(String templateCode,String targetId,String affairId){
if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId="+affairId;
}
if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
return "404";
}
/**
* 获取已审批详情
* @param templateCode
* @param targetId
* @return
*/
public static String getCheckedDetailUrl(String templateCode,String targetId){
if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code())){
return "my-expense-application-approval-approved-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
return "404";
}
/**
* 获取个人申请详情
* @param templateCode
* @param targetId
* @return
*/
public static String getMyDetailUrl(String templateCode,String targetId){
if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code())){
return "my-expense-application-detail?id="+targetId;
}
if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){
return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId=0";
}
return "404";
}
}

8
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -107,8 +107,12 @@ public class BmsSupplierController {
@PreAuthorize("hasRole('bms:supplier:query')")
public R<PageVo<BmsSupplier>> getPage(@RequestBody BmsSupplier param){
//兼容 前端接错参数
param.setName(param.getSupplierName());
param.setCode(param.getSupplierCode());
if(param.getSupplierName()!=null){
param.setName(param.getSupplierName());
}
if(param.getSupplierCode()!=null){
param.setCode(param.getSupplierCode());
}
if(param.getLoadByCurrent()!=null&&param.getLoadByCurrent().equals(1)){
PageUtil.setPageSize(param.getPageSize()+"");

2
src/main/java/com/qs/serve/modules/seeyon/entity/CtpAffairQo.java

@ -47,4 +47,6 @@ public class CtpAffairQo {
* 申请人名称
*/
String userName;
String dataKey;
}

23
src/main/java/com/qs/serve/modules/seeyon/entity/SyAffairStateResult.java

@ -0,0 +1,23 @@
package com.qs.serve.modules.seeyon.entity;
import com.qs.serve.modules.seeyon.enums.SyAffairState;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author YenHex
* @since 2023/6/12
*/
@Data
@AllArgsConstructor
public class SyAffairStateResult {
String affairId;
String memberId;
String targetId;
SyAffairState state;
}

6
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonCompensateService.java

@ -1,6 +1,7 @@
package com.qs.serve.modules.seeyon.service;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.seeyon.entity.SyAffairStateResult;
import com.qs.serve.modules.seeyon.enums.SyAffairState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
@ -46,7 +47,8 @@ public interface SeeYonCompensateService extends SeeYonBaseService{
default R<?> runCompensate(String targetId){
testConnection();
String templateCode = getTemplateCode();
SyAffairState affairState = checkAffairState(targetId,templateCode);
SyAffairStateResult stateResult =checkAffairState(targetId,templateCode);
SyAffairState affairState = stateResult.getState();
if(affairState.equals(SyAffairState.next)){
return R.ok(compensateNext(targetId));
}else if(affairState.equals(SyAffairState.backed)){
@ -68,7 +70,7 @@ public interface SeeYonCompensateService extends SeeYonBaseService{
* @param templateCode
* @return
*/
default SyAffairState checkAffairState(String targetId,String templateCode){
default SyAffairStateResult checkAffairState(String targetId, String templateCode){
return getRequestService().checkAffairState(targetId,templateCode);
};

11
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java

@ -79,7 +79,16 @@ public interface SeeYonRequestService {
* @param templateCode
* @return
*/
SyAffairState checkAffairState(String targetId,String templateCode);
SyAffairStateResult checkAffairState(String targetId,String templateCode);
/**
* 校验OA节点状态用于调整校验
* @param key
* @param memberId
* @param templateCode
* @return
*/
SyAffairStateResult checkAffairState(String key,String memberId,String templateCode);
/**
* 列表表单审批节点

32
src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.seeyon.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*;
@ -13,6 +14,7 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.stereotype.Service;
@ -129,22 +131,42 @@ public class SeeYonRequestServiceImpl implements SeeYonRequestService {
}
@Override
public SyAffairState checkAffairState(String targetId,String templateCode) {
public SyAffairStateResult checkAffairState(String targetId,String templateCode) {
String title = "【校验OA节点状态】";
CtpAffairQo param = new CtpAffairQo();
param.setTargetId(targetId);
param.setTemplateCode(templateCode);
return getSyAffairStateResult(title, param);
}
@Override
public SyAffairStateResult checkAffairState(String key, String memberId, String templateCode) {
String title = "【校验OA节点状态】";
CtpAffairQo param = new CtpAffairQo();
param.setTemplateCode(templateCode);
param.setMemberId(memberId);
param.setDataKey(key);
return getSyAffairStateResult(title, param);
}
@NotNull
private SyAffairStateResult getSyAffairStateResult(String title, CtpAffairQo param) {
R<String> result = seeYonRequestBaseService.postBase(TbsSeeYonConst.API_CHECK_AFFAIR,param,title);
if(result.getStatus()==200){
String resultString = result.getData();
JSONObject jsonObject = JSONObject.parseObject(resultString);
String resultName = jsonObject.getString("result");
String resultMemberId = jsonObject.getString("memberId");
String resultTargetId = jsonObject.getString("targetId");
String resultAffairId = jsonObject.getString("affairId");
for (SyAffairState value : SyAffairState.values()) {
if (value.name().equals(resultString)){
return value;
if (value.name().equals(resultName)){
return new SyAffairStateResult(resultAffairId,resultMemberId,resultTargetId,value);
}
}
}
log.error(title+" param==>{} \n ==> {}",JsonUtil.objectToJson(param),JsonUtil.objectToJson(result));
return SyAffairState.error;
log.error(title+" param==>{} \n ==> {}", JsonUtil.objectToJson(param),JsonUtil.objectToJson(result));
return new SyAffairStateResult(null,null,null,SyAffairState.error);
}
@Override

2
src/main/java/com/qs/serve/modules/sys/service/impl/SysUserLoginServiceImpl.java

@ -72,7 +72,7 @@ public class SysUserLoginServiceImpl implements SysUserLoginService {
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysUser::getSyUserId,syUserId);
List<SysUser> userList = sysUserMapper.selectList(wrapper);
if(userList.size()==1){
if(userList.size()>0){
UserDetails userDetails = userDetailsService.buildLoginUser(userList.get(0));
return buildResultMap(userDetails, "sy", "").get("token").toString();
}

4
src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java

@ -9,8 +9,8 @@ public interface TzcPolicyStatus {
int Status_0_UnCommit = 0;
int Status_1_Checking = 1;
int Status_2_PassSuccess = 2;
int Status_3_Refuse = 3;
int Status_3_Success = 3;
int Status_4_RollBack = 4;
int Status_5_Finished = 5;
int Status_5_Refuse = 5;
}

2
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java

@ -103,7 +103,7 @@ public class TzcPolicyOperationServiceImpl implements SeeYonOperationService {
Long policyId = param.getPolicyId();
TzcPolicy policy = new TzcPolicy();
policy.setId(policyId);
policy.setPolicyStatus(TzcPolicyStatus.Status_3_Refuse);
policy.setPolicyStatus(TzcPolicyStatus.Status_5_Refuse);
tzcPolicyService.updateById(policy);
tzcPolicyService.releaseCost(policy.getId(), 1);
//移除日志

1
src/main/resources/application.yml

@ -37,6 +37,7 @@ mybatis-plus:
type-aliases-package: com.qs.serve.modules.*.entity.*
configuration:
map-underscore-to-camel-case: true
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
banner: false
db-config:

Loading…
Cancel
Save