diff --git a/src/main/java/com/qs/serve/common/util/JumpToUtil.java b/src/main/java/com/qs/serve/common/util/JumpToUtil.java index 7229297b..3792f0b4 100644 --- a/src/main/java/com/qs/serve/common/util/JumpToUtil.java +++ b/src/main/java/com/qs/serve/common/util/JumpToUtil.java @@ -9,11 +9,10 @@ import lombok.experimental.UtilityClass; @UtilityClass public class JumpToUtil { - public static String getUrl(String host, String templateCode, String key) { - return host+ "/portal/syKeyLogin?" + - "templateCode="+templateCode+ - "&key="+key+ - "&syId="; + public static String getJumpUrl(String host, String templateCode, String targetId) { + return host + "/#/jump?jumpType=apiApproval" + + "&targetCode="+templateCode + +"&targetId="+targetId; } } diff --git a/src/main/java/com/qs/serve/common/util/ServletUtils.java b/src/main/java/com/qs/serve/common/util/ServletUtils.java index 31cf4ca2..d1f4abb0 100644 --- a/src/main/java/com/qs/serve/common/util/ServletUtils.java +++ b/src/main/java/com/qs/serve/common/util/ServletUtils.java @@ -1,5 +1,6 @@ package com.qs.serve.common.util; +import com.qs.serve.common.model.consts.GySysConst; import lombok.experimental.UtilityClass; import org.springframework.http.MediaType; import org.springframework.web.context.request.RequestAttributes; @@ -29,6 +30,11 @@ public class ServletUtils { return getRequest().getParameter(name); } + public static String getAuthToken(){ + HttpServletRequest request = getRequest(); + return request.getHeader(GySysConst.AUTHORIZATION_PROP); + } + /** * 获取String参数 */ diff --git a/src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java b/src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java index c0ff012f..2b399354 100644 --- a/src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java +++ b/src/main/java/com/qs/serve/controller/util/SyKeyLoginUtil.java @@ -18,16 +18,17 @@ public class SyKeyLoginUtil { * @return */ public static String getPreCheckUrl(String templateCode,String targetId,String affairId){ - if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code())){ + if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code()) + ||templateCode.equals(TbsSeeYonConst.CostApplyContractConf.Code())){ return "my-expense-application-approval-pending-detail?expenseApplicationId="+targetId+"&approvalId="+affairId; } - if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ - return "my-expense-application-activity-write-off-approval-pending-detail?" + - "expenseApplicationId=382658" + //费用id - "&writeOffId=1936474" + //核销id - "&activityId=2277848" + //活动id - "&approvalId="+affairId; - } +// if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ +// return "my-expense-application-activity-write-off-approval-pending-detail?" + +// "expenseApplicationId=382658" + //费用id +// "&writeOffId=1936474" + //核销id +// "&activityId=2277848" + //活动id +// "&approvalId="+affairId; +// } if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){ return "my-policy-application-approval-pending-detail?policyApplicationId=" + targetId + "&approvalId="+affairId; @@ -100,9 +101,6 @@ public class SyKeyLoginUtil { if(templateCode.equals(TbsSeeYonConst.CostApplyConf.Code())){ return "my-expense-application-detail?id="+targetId; } - if(templateCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ - return "my-expense-application-activity-write-off-management"; - } if(templateCode.equals(TbsSeeYonConst.PolicyConf.Code())){ return "my-policy-application-detail?id="+targetId; } diff --git a/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java b/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java index 07d2bcf4..c8d0cd69 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java +++ b/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java @@ -1,17 +1,24 @@ package com.qs.serve.modules.seeyon; +import com.qs.serve.common.config.properties.ProjectProperties; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.JsonUtil; +import com.qs.serve.common.util.ServletUtils; +import com.qs.serve.controller.util.SyKeyLoginUtil; import com.qs.serve.modules.seeyon.entity.CtpAffair; +import com.qs.serve.modules.seeyon.entity.bo.CheckTargetDTO; import com.qs.serve.modules.seeyon.entity.bo.SeeYonApproveQuery; import com.qs.serve.modules.seeyon.entity.vo.SeeYonApproveDataVo; +import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; import com.qs.serve.modules.tzc.entity.TzcPolicy; import com.qs.serve.modules.tzc.service.TzcPolicyService; @@ -19,10 +26,10 @@ 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.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.ArrayList; import java.util.List; /** @@ -37,10 +44,13 @@ import java.util.List; public class SeeYonController { private SeeYonRequestBaseService seeYonRequestBaseService; + private SeeYonRequestService seeYonRequestService; private SysUserService sysUserService; private TbsCostApplyService costApplyService; private VtbVerificationService verificationService; private TzcPolicyService policyService; + private ProjectProperties projectProperties; + private TbsActivityService activityService; /** * 我的审批列表 @@ -56,6 +66,86 @@ public class SeeYonController { return listAllCha(query); } + + /** + * 重定向到审批页面 + * @param targetDTO + * @param response + * @return + */ + @PostMapping("/redirectToCheckPage") + public R redirectToCheckPage(@RequestBody CheckTargetDTO targetDTO, HttpServletResponse response){ + String targetCode = targetDTO.getTargetCode(); + String targetId = targetDTO.getTargetId(); + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); + sysUser.checkSyAccount(); + R> result = seeYonRequestService.commonListAffairs(targetId,null,targetCode); + String jumpUrl = "404"; + for (CtpAffair affair : result.getData()) { + //判断是否当前用户 + if(!affair.getMemberId().equals(sysUser.getSyUserId())){ + continue; + } + //流程未完成 + if(affair.getFinishedflag().equals(0)){ + if(affair.getState().equals(3)){ + //待审 + if(targetCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ + VtbVerification object = verificationService.getById(targetId); + jumpUrl = SyKeyLoginUtil.getPreCheckUrl4Verification(object.getCostApplyId(),object.getActivityId(),object.getId(),affair.getAffairId()); + }else { + jumpUrl = SyKeyLoginUtil.getPreCheckUrl(targetCode,targetId,affair.getAffairId()); + } + }else if (affair.getState().equals(4)){ + //已阅或已提交 + if(targetCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ + jumpUrl = SyKeyLoginUtil.getCheckedDetailUrl(targetCode,targetId); + }else { + VtbVerification object = verificationService.getById(targetId); + jumpUrl = SyKeyLoginUtil.getCheckedDetailUrl4Verification(object.getCostApplyId(),object.getActivityId(),object.getId()); + } + }else if (affair.getState().equals(2)){ + //发起 + if(targetCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ + VtbVerification object = verificationService.getById(targetId); + jumpUrl = SyKeyLoginUtil.getMyDetailUrl(TbsSeeYonConst.CostApplyConf.Code(),object.getCostApplyId()+""); + }else { + jumpUrl = SyKeyLoginUtil.getMyDetailUrl(targetCode,targetId); + } + } + }else { + if (affair.getState().equals(2)){ + //发起 + if(targetCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ + VtbVerification object = verificationService.getById(targetId); + jumpUrl = SyKeyLoginUtil.getMyDetailUrl(TbsSeeYonConst.CostApplyConf.Code(),object.getCostApplyId()+""); + }else { + jumpUrl = SyKeyLoginUtil.getMyDetailUrl(targetCode,targetId); + } + }else { + //已阅或已提交 + if(targetCode.equals(TbsSeeYonConst.CostCheckConf.Code())){ + jumpUrl = SyKeyLoginUtil.getCheckedDetailUrl(targetCode,targetId); + }else { + VtbVerification object = verificationService.getById(targetId); + jumpUrl = SyKeyLoginUtil.getCheckedDetailUrl4Verification(object.getCostApplyId(),object.getActivityId(),object.getId()); + } + } + } + break; + } + String token = ServletUtils.getAuthToken(); + String fontUrl = "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl; + //String fontUrl = projectProperties.getWebUrl() + "/#/jump?code=001&token="+token+"&jumpTo="+jumpUrl; + log.warn("fontUrl:{}",fontUrl); + /*try { + response.sendRedirect(fontUrl); + } catch (IOException e) { + e.printStackTrace(); + }*/ + return R.ok(fontUrl,"ok"); + } + /** * 统计未完成 * @param query diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/bo/CheckTargetDTO.java b/src/main/java/com/qs/serve/modules/seeyon/entity/bo/CheckTargetDTO.java new file mode 100644 index 00000000..e1ad6d07 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/bo/CheckTargetDTO.java @@ -0,0 +1,16 @@ +package com.qs.serve.modules.seeyon.entity.bo; + +import lombok.Data; + +/** + * @author YenHex + * @since 2023/8/7 + */ +@Data +public class CheckTargetDTO { + + private String targetId; + + private String targetCode; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index c82de451..1a04c5aa 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -535,8 +535,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl