Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
40e6795bd2
  1. 29
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 10
      src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java
  3. 18
      src/main/java/com/qs/serve/modules/seeyon/entity/dto/TodoVoQuery.java
  4. 3
      src/main/java/com/qs/serve/modules/seeyon/entity/vo/TodoVO.java
  5. 24
      src/main/java/com/qs/serve/modules/seeyon/enums/CheckTypeEnum.java
  6. 29
      src/main/java/com/qs/serve/modules/seeyon/mapper/CommonCheckMapper.java
  7. 4
      src/main/java/com/qs/serve/modules/seeyon/service/CommonCheckService.java
  8. 27
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  9. 138
      src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java
  10. 77
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetChangeController.java
  11. 35
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java
  12. 4
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java
  13. 14
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java
  14. 24
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java
  15. 3
      src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java
  16. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeConditionService.java
  17. 3
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeScheduleItemService.java
  18. 2
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeService.java
  19. 2
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java
  20. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java
  21. 10
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeConditionServiceImpl.java
  22. 81
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java
  23. 9
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeScheduleItemServiceImpl.java
  24. 18
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java
  25. 5
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java
  26. 5
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  27. 4
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyOperationServiceImpl.java
  28. 5
      src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java
  29. 3
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java
  30. 8
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  31. 5
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java
  32. 14
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  33. 87
      src/main/resources/mapper/seeyon/CommonCheckMapper.xml

29
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -74,6 +74,35 @@ public class AsyncFactory {
};
}
/**
* 异步保存费用申请状态
* @param budgetId
* @return
*/
public static TimerTask submitBudgetChange(String budgetId) {
return new TimerTask() {
@Override
public void run() {
try {
AuthContextUtils.setTenant("001");
log.debug("--------------------------SubmitBudgetApply CallbackTimer Sleep Start------------------------------");
Thread.sleep(7*1000);
TbsBudgetApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsBudgetApplyOperationServiceImpl.class);
String summeryResult = applyOperationService.checkAffairSummery(budgetId);
if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
TbsAffairCommitBo finishedParam = new TbsAffairCommitBo();
finishedParam.setTargetId(budgetId);
applyOperationService.doFinished(finishedParam);
}
log.debug("--------------------------SubmitBudgetApply CallbackTimer summeryResult:{} ------------------------------",summeryResult);
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
/**
* 异步保存费用申请状态
* @param budgetId

10
src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java

@ -11,6 +11,7 @@ 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.dto.TodoVoQuery;
import com.qs.serve.modules.seeyon.entity.vo.SeeYonApproveDataVo;
import com.qs.serve.modules.seeyon.entity.vo.TodoVO;
import com.qs.serve.modules.seeyon.service.CommonCheckService;
@ -78,6 +79,15 @@ public class SeeYonController {
return R.ok(commonCheckService.listCallbackList());
}
/**
* 我的审批退回列表
* @return
*/
@GetMapping("pageMyCallback")
public R<PageVo<TodoVO>> pageCallbackList(){
return R.ok(commonCheckService.pageCallback(new TodoVoQuery()));
}
/**
* 重定向到审批页面
* @param targetDTO

18
src/main/java/com/qs/serve/modules/seeyon/entity/dto/TodoVoQuery.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.seeyon.entity.dto;
import lombok.Data;
/**
* @author YenHex
* @since 2023/8/10
*/
@Data
public class TodoVoQuery {
private String userId;
private Integer startRow;
private Integer pageSize;
}

3
src/main/java/com/qs/serve/modules/seeyon/entity/vo/TodoVO.java

@ -24,4 +24,7 @@ public class TodoVO {
/** 时间 */
private LocalDateTime time;
/** 信息 */
private Object targetInfo;
}

24
src/main/java/com/qs/serve/modules/seeyon/enums/CheckTypeEnum.java

@ -0,0 +1,24 @@
package com.qs.serve.modules.seeyon.enums;
/**
* @author YenHex
* @since 2023/8/10
*/
public enum CheckTypeEnum {
/** 费用申请 */
CostBill,
/** 政策 */
ReleasePolicy,
/** 核销 */
CheckCost,
/** 预算申请 */
budgetAdjust,
/** 预算修改 */
budgetAdjust2
}

29
src/main/java/com/qs/serve/modules/seeyon/mapper/CommonCheckMapper.java

@ -0,0 +1,29 @@
package com.qs.serve.modules.seeyon.mapper;
import com.qs.serve.modules.seeyon.entity.dto.TodoVoQuery;
import com.qs.serve.modules.seeyon.entity.vo.TodoVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author YenHex
* @since 2023/8/10
*/
public interface CommonCheckMapper {
/**
* 查询回退的审批列表
* @param query
* @return
*/
List<TodoVO> pageCallbackList(@Param("query") TodoVoQuery query);
/**
* 合计回退的审批列表
* @param query
* @return
*/
Long countCallback(@Param("query") TodoVoQuery query);
}

4
src/main/java/com/qs/serve/modules/seeyon/service/CommonCheckService.java

@ -1,5 +1,7 @@
package com.qs.serve.modules.seeyon.service;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.modules.seeyon.entity.dto.TodoVoQuery;
import com.qs.serve.modules.seeyon.entity.vo.TodoVO;
import java.util.List;
@ -10,6 +12,8 @@ import java.util.List;
*/
public interface CommonCheckService {
PageVo<TodoVO> pageCallback(TodoVoQuery query);
/**
* 退回列表
* @return

27
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -44,7 +44,9 @@ public interface SeeYonOperationService extends SeeYonBaseService{
* @param affairCommit
* @return
*/
String getTargetId(TbsAffairCommitBo affairCommit);
default String getTargetId(TbsAffairCommitBo affairCommit){
return affairCommit.getTargetId();
}
/**
* 检查提交审批是否允许,并返回syFormId
@ -316,9 +318,7 @@ public interface SeeYonOperationService extends SeeYonBaseService{
}
}else if ("next".equals(flag)){
this.doNext(affairCommit);
//请求校验是否成功
AsyncManager.me().execute(AsyncFactory.submitBudgetApply(affairCommit.getTargetId()));
doCommitBacked(getTargetId(affairCommit));
return R.ok();
}
}else if (result.getStatus()==500){
@ -327,6 +327,13 @@ public interface SeeYonOperationService extends SeeYonBaseService{
return R.ok();
}
/**
* 用于回调OA的状态
* @param targetId
*/
void doCommitBacked(String targetId);
/**
* 补偿:审批中
@ -342,21 +349,27 @@ public interface SeeYonOperationService extends SeeYonBaseService{
* @param targetId
* @return
*/
Object compensateBacked(String targetId);
default Object compensateBacked(String targetId){
return null;
}
/**
* 补偿:审批完成
* @param targetId
* @return
*/
Object compensateFinished(String targetId);
default Object compensateFinished(String targetId){
return null;
}
/**
* 补偿:审批拒绝
* @param targetId
* @return
*/
Object compensateRefuse(String targetId);
default Object compensateRefuse(String targetId){
return null;
}
/**
* 执行的主要方法

138
src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java

@ -1,22 +1,36 @@
package com.qs.serve.modules.seeyon.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.seeyon.entity.dto.TodoVoQuery;
import com.qs.serve.modules.seeyon.entity.vo.TodoVO;
import com.qs.serve.modules.seeyon.enums.CheckTypeEnum;
import com.qs.serve.modules.seeyon.mapper.CommonCheckMapper;
import com.qs.serve.modules.seeyon.service.CommonCheckService;
import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper;
import com.qs.serve.modules.tzc.common.TzcPolicyStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicy;
import com.qs.serve.modules.tzc.mapper.TzcPolicyMapper;
import com.qs.serve.modules.tzc.service.TzcPolicyService;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -31,6 +45,112 @@ public class CommonCheckServiceImpl implements CommonCheckService {
private final SysUserService sysUserService;
private final TbsCostApplyMapper costApplyMapper;
private final TzcPolicyService tzcPolicyService;
private final TzcPolicyMapper tzcPolicyMapper;
private final VtbVerificationMapper verificationMapper;
private final TbsBudgetMapper tbsBudgetMapper;
private final TbsBudgetChangeMapper tbsBudgetChangeMapper;
private final CommonCheckMapper commonCheckMapper;
@Override
public PageVo<TodoVO> pageCallback(TodoVoQuery query) {
int pageSize = PageUtil.getPageSize();
int startRow = PageUtil.getStartRow();
query.setUserId(AuthContextUtils.getSysUserId());
query.setPageSize(pageSize);
query.setStartRow(startRow);
PageVo<TodoVO> pageVo = new PageVo<>();
Long count = commonCheckMapper.countCallback(query);
List<TodoVO> todoVOList;
if(count>0){
todoVOList = commonCheckMapper.pageCallbackList(query);
this.initTodoTargetInfo(todoVOList);
}else {
todoVOList = new ArrayList<>();
}
pageVo.initPageByTotal(count);
pageVo.setList(todoVOList);
return pageVo;
}
/**
* 初始化TargetInfo
* @param todoVOList
*/
private void initTodoTargetInfo(List<TodoVO> todoVOList) {
Map<String,List<TodoVO>> todoMap = todoVOList.stream().collect(Collectors.groupingBy(TodoVO::getTargetType));
List<TodoVO> costToDo = todoMap.get(CheckTypeEnum.CostBill.name());
List<TodoVO> policyToDo = todoMap.get(CheckTypeEnum.ReleasePolicy.name());
List<TodoVO> verificationToDo = todoMap.get(CheckTypeEnum.CheckCost.name());
List<TodoVO> budgetToDo = todoMap.get(CheckTypeEnum.budgetAdjust.name());
List<TodoVO> budgetChangeToDo = todoMap.get(CheckTypeEnum.budgetAdjust2.name());
if(CollUtil.isNotEmpty(costToDo)){
List<String> ids = getTodoIds(costToDo);
List<TbsCostApply> dataList = costApplyMapper.selectBatchIds(ids);
for (TodoVO todoVO : costToDo) {
for (TbsCostApply item : dataList) {
if(item.getId().toString().equals(todoVO.getTargetId())){
todoVO.setTargetInfo(item);
break;
}
}
}
}
if(CollUtil.isNotEmpty(policyToDo)){
List<String> ids = getTodoIds(policyToDo);
List<TzcPolicy> dataList = tzcPolicyMapper.selectBatchIds(ids);
for (TodoVO todoVO : policyToDo) {
for (TzcPolicy item : dataList) {
if(item.getId().toString().equals(todoVO.getTargetId())){
todoVO.setTargetInfo(item);
break;
}
}
}
}
if(CollUtil.isNotEmpty(verificationToDo)){
List<String> ids = getTodoIds(verificationToDo);
List<VtbVerification> dataList = verificationMapper.selectBatchIds(ids);
for (TodoVO todoVO : verificationToDo) {
for (VtbVerification item : dataList) {
if(item.getId().toString().equals(todoVO.getTargetId())){
todoVO.setTargetInfo(item);
break;
}
}
}
}
if(CollUtil.isNotEmpty(budgetToDo)){
List<String> ids = getTodoIds(budgetToDo);
List<TbsBudget> dataList = tbsBudgetMapper.selectBatchIds(ids);
for (TodoVO todoVO : budgetToDo) {
for (TbsBudget item : dataList) {
if(item.getId().toString().equals(todoVO.getTargetId())){
todoVO.setTargetInfo(item);
break;
}
}
}
}
if(CollUtil.isNotEmpty(budgetChangeToDo)){
List<String> ids = getTodoIds(budgetChangeToDo);
List<TbsBudgetChange> dataList = tbsBudgetChangeMapper.selectBatchIds(ids);
for (TodoVO todoVO : budgetChangeToDo) {
for (TbsBudgetChange item : dataList) {
if(item.getId().toString().equals(todoVO.getTargetId())){
todoVO.setTargetInfo(item);
break;
}
}
}
}
}
@Override
public List<TodoVO> listCallbackList() {
@ -46,7 +166,8 @@ public class CommonCheckServiceImpl implements CommonCheckService {
todo.setTargetId(obj.getId()+"");
todo.setTargetCode(obj.getCode());
todo.setTitle(obj.getChargeTheme());
todo.setTime(obj.getCreateTime());
todo.setTime(obj.getSubmitTime());
todo.setTargetInfo(obj);
return todo;
}).collect(Collectors.toList());
//政策
@ -60,7 +181,8 @@ public class CommonCheckServiceImpl implements CommonCheckService {
todo.setTargetId(obj.getId()+"");
todo.setTargetCode(obj.getPolicyCode());
todo.setTitle(obj.getTitle());
todo.setTime(obj.getCreateTime());
todo.setTime(obj.getSubmitTime());
todo.setTargetInfo(obj);
return todo;
}).collect(Collectors.toList());
@ -70,4 +192,16 @@ public class CommonCheckServiceImpl implements CommonCheckService {
return result;
}
/**
* 提取todo列表的targetId
* @param todoList
* @return
*/
private List<String> getTodoIds(List<TodoVO> todoList){
if(todoList!=null&&todoList.size()>0){
return todoList.stream().map(TodoVO::getTargetId).collect(Collectors.toList());
}
return null;
}
}

77
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetChangeController.java

@ -0,0 +1,77 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
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.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.tbs.entity.TbsBudgetChangeCondition;
import com.qs.serve.modules.tbs.entity.TbsBudgetChangeScheduleItem;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeConditionService;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeScheduleItemService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeService;
import javax.validation.Valid;
import java.util.List;
/**
* 预算 预算更变记录
* @author YenHex
* @since 2023-08-09
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/budgetChange")
public class TbsBudgetChangeController {
private TbsBudgetChangeService tbsBudgetChangeService;
private TbsBudgetChangeScheduleItemService tbsBudgetChangeScheduleItemService;
private TbsBudgetChangeConditionService tbsBudgetChangeConditionService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<TbsBudgetChange>> getList(TbsBudgetChange param){
if(param.getBudgetId()==null){
return R.error("BudgetId不能为空");
}
LambdaQueryWrapper<TbsBudgetChange> lqw = new LambdaQueryWrapper<>(param);
List<TbsBudgetChange> list = tbsBudgetChangeService.list(lqw);
for (TbsBudgetChange budgetChange : list) {
List<TbsBudgetChangeScheduleItem> changeScheduleItemList = tbsBudgetChangeScheduleItemService.listByChangeId(budgetChange.getId());
List<TbsBudgetChangeCondition> changeConditionList = tbsBudgetChangeConditionService.listByChangeId(budgetChange.getId());
budgetChange.setChangeScheduleItemList(changeScheduleItemList);
budgetChange.setChangeConditionList(changeConditionList);
}
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
//@GetMapping("/page")
public R<PageVo<TbsBudgetChange>> getPage(TbsBudgetChange param){
LambdaQueryWrapper<TbsBudgetChange> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<TbsBudgetChange> list = tbsBudgetChangeService.list(lqw);
return R.byPageHelperList(list);
}
}

35
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetCheckController.java

@ -4,12 +4,17 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetUpdateAfterStartBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeService;
import com.qs.serve.modules.tbs.service.TbsBudgetService;
import com.qs.serve.modules.tbs.service.impl.TbsBudgetApplyOperationServiceImpl;
import com.qs.serve.modules.tbs.service.impl.TbsBudgetChangeOperationServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 预算 预算审批
* @author YenHex
@ -23,6 +28,8 @@ public class TbsBudgetCheckController {
private final TbsBudgetService tbsBudgetService;
private final TbsBudgetChangeService tbsBudgetChangeService;
private final TbsBudgetApplyOperationServiceImpl tbsBudgetApplyOperationService;
private final TbsBudgetChangeOperationServiceImpl tbsBudgetChangeOperationService;
/**
* 提交申请
@ -40,9 +47,31 @@ public class TbsBudgetCheckController {
* @return
*/
@PostMapping("commitChangeApply")
public R<?> commitApply(@RequestBody TbsBudgetUpdateAfterStartBo param){
tbsBudgetChangeService.commitApply(param);
return R.ok();
public R<TbsBudgetChange> commitApply(@RequestBody TbsBudgetUpdateAfterStartBo param){
TbsBudgetChange budgetChange = tbsBudgetChangeService.commitApply(param);
return R.ok(budgetChange);
}
/**
* 审批列表-预算申请
* @param budgetId
* @return
*/
@GetMapping("/ListAffairs")
public R<List<CtpAffairVo>> ListBudgetAffairs(String budgetId){
return tbsBudgetApplyOperationService.pageAffair(budgetId);
}
/**
* 审批列表-预算修改
* @param changeId
* @return
*/
@GetMapping("/ListChangeAffairs")
public R<List<CtpAffairVo>> pageAffair(String changeId){
return tbsBudgetChangeOperationService.pageAffair(changeId);
}
}

4
src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java

@ -48,6 +48,7 @@ public class TbsBudgetController {
private final TbsBudgetCostItemService tbsBudgetCostItemService;
private final TbsBudgetLogService tbsBudgetLogService;
private final TbsScheduleItemBudgetService tbsScheduleItemBudgetService;
private final TbsBudgetChangeService tbsBudgetChangeService;
private final SysUserService sysUserService;
/**
@ -111,12 +112,13 @@ public class TbsBudgetController {
/**
* ID查询
* @param id
* @param changeId
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:budget:query')")
public R<TbsBudgetVo> getById(@PathVariable("id") String id){
public R<TbsBudgetVo> getById(@PathVariable("id") String id,String changeId){
TbsBudget budget = tbsBudgetService.getById(id);
TbsBudgetVo vo = tbsBudgetService.toVoEntity(budget);
// TbsBudgetVo vo2 = tbsBudgetService.getEntityForExcel(budget);

14
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java

@ -101,6 +101,20 @@ public class TbsBudget implements Serializable {
/** 生成底表标识:默认0;同步成功为1 */
private Integer birFlag;
/** 申请人 */
@NotBlank(message = "申请人不能为空")
@Length(max = 32,message = "申请人长度不能超过32字")
private String userId;
/** 用户编码 */
@Length(max = 32,message = "长度不能超过32字")
private String userCode;
/** 用户名称 */
@Length(max = 32,message = "长度不能超过32字")
@TableField(condition = SqlCondition.LIKE)
private String userName;
/** 致远表单id */
private String syFormId;

24
src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java

@ -4,6 +4,7 @@ import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -31,6 +32,9 @@ public class TbsBudgetChange implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
/** 预算id */
private Long budgetId;
/** 更变记录编码 */
@Length(max = 30,message = "更变记录编码长度不能超过30字")
private String changeCode;
@ -106,6 +110,20 @@ public class TbsBudgetChange implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime submitTime;
/** 申请人 */
@NotBlank(message = "申请人不能为空")
@Length(max = 32,message = "申请人长度不能超过32字")
private String userId;
/** 用户编码 */
@Length(max = 32,message = "长度不能超过32字")
private String userCode;
/** 用户名称 */
@Length(max = 32,message = "长度不能超过32字")
@TableField(condition = SqlCondition.LIKE)
private String userName;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
@ -140,10 +158,16 @@ public class TbsBudgetChange implements Serializable {
@JsonProperty
private String delFlag;
@TableField(exist = false)
private List<?> changeScheduleItemList;
@TableField(exist = false)
private List<?> changeConditionList;
public static TbsBudgetChange toNewObject(TbsBudget source){
TbsBudgetChange budgetChange = new TbsBudgetChange();
budgetChange.setId(source.getId());
budgetChange.setBudgetId(source.getId());
//budgetChange.setChangeCode(source.getChangeCode());
//budgetChange.setBudgetTitle(source.getBudgetTitle());
budgetChange.setBudgetNumber(source.getBudgetNumber());

3
src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java

@ -77,5 +77,8 @@ public class TbsBudgetVo implements Serializable {
private List<TbsScheduleItemBudget> scheduleItemBudgets;
private List<?> attachList;
/** 变更列表 */
private List<?> changeList;
}

3
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeConditionService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsBudgetChangeCondition;
import java.util.List;
/**
* 预算更变记录条件 服务接口
@ -10,5 +11,7 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetChangeCondition;
*/
public interface TbsBudgetChangeConditionService extends IService<TbsBudgetChangeCondition> {
List<TbsBudgetChangeCondition> listByChangeId(Long id);
}

3
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeScheduleItemService.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsBudgetChangeScheduleItem;
import java.util.List;
/**
* 考核期更变记录 服务接口
@ -10,5 +11,7 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetChangeScheduleItem;
*/
public interface TbsBudgetChangeScheduleItemService extends IService<TbsBudgetChangeScheduleItem> {
List<TbsBudgetChangeScheduleItem> listByChangeId(Long id);
}

2
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetChangeService.java

@ -16,7 +16,7 @@ public interface TbsBudgetChangeService extends IService<TbsBudgetChange> {
* 提交修改
* @param param
*/
void commitApply(TbsBudgetUpdateAfterStartBo param);
TbsBudgetChange commitApply(TbsBudgetUpdateAfterStartBo param);
}

2
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java

@ -70,7 +70,7 @@ public class TbsBudgetMatchApplication {
if(usableAmt==null){
usableAmt = itemBudget.getUnUsedBudgetAmount();
}
if(usableAmt.compareTo(centerGoods.getCenterGoodsAmount())>=0){
if(usableAmt!=null&&usableAmt.compareTo(centerGoods.getCenterGoodsAmount())>=0){
usableAmt = usableAmt.subtract(centerGoods.getCenterGoodsAmount());
//扣减后存放map
usableAmountMap.put(scheduleItemBudgetId,usableAmt);

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetApplyOperationServiceImpl.java

@ -1,5 +1,7 @@
package com.qs.serve.modules.tbs.service.impl;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.tbs.common.TbsBudgetCheckState;
@ -23,6 +25,11 @@ public class TbsBudgetApplyOperationServiceImpl implements SeeYonOperationServic
private TbsBudgetMapper budgetMapper;
@Override
public void doCommitBacked(String targetId) {
AsyncManager.me().execute(AsyncFactory.submitBudgetApply(targetId));
}
@Override
public String getTargetId(TbsAffairCommitBo affairCommit) {
return affairCommit.getTargetId();
@ -69,21 +76,6 @@ public class TbsBudgetApplyOperationServiceImpl implements SeeYonOperationServic
return null;
}
@Override
public Object compensateBacked(String targetId) {
return null;
}
@Override
public Object compensateFinished(String targetId) {
return null;
}
@Override
public Object compensateRefuse(String targetId) {
return null;
}
@Override
public String getTemplateCode() {
return TbsSeeYonConst.BudgetApplyConf.Code();

10
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeConditionServiceImpl.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.tbs.entity.TbsBudgetChangeScheduleItem;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -8,6 +10,8 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetChangeCondition;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeConditionService;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeConditionMapper;
import java.util.List;
/**
* 预算更变记录条件 服务实现类
* @author YenHex
@ -18,5 +22,11 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeConditionMapper;
@AllArgsConstructor
public class TbsBudgetChangeConditionServiceImpl extends ServiceImpl<TbsBudgetChangeConditionMapper,TbsBudgetChangeCondition> implements TbsBudgetChangeConditionService {
@Override
public List<TbsBudgetChangeCondition> listByChangeId(Long id) {
LambdaQueryWrapper<TbsBudgetChangeCondition> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsBudgetChangeCondition::getChangeId,id);
return this.list(lqw);
}
}

81
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeOperationServiceImpl.java

@ -0,0 +1,81 @@
package com.qs.serve.modules.tbs.service.impl;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.tbs.common.TbsBudgetCheckState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsBudgetChange;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 预算改动的申请
* @author YenHex
* @since 2023/8/8
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsBudgetChangeOperationServiceImpl implements SeeYonOperationService {
private TbsBudgetChangeMapper budgetChangeMapper;
@Override
public void doCommitBacked(String targetId) {
AsyncManager.me().execute(AsyncFactory.submitBudgetChange(targetId));
}
@Override
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) {
TbsBudgetChange budgetChange = budgetChangeMapper.selectById(affairCommit.getTargetId());
if(!budgetChange.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){
Assert.throwEx("操作失败,预算处于非审批状态");
}
return budgetChange.getSyFormId();
}
@Override
public Object doBacked(TbsAffairCommitBo param) {
TbsBudgetChange budgetChange = budgetChangeMapper.selectById(param.getTargetId());
if(budgetChange.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){
budgetChange.setBudgetCheckState(TbsBudgetCheckState.State_3_setback);
budgetChangeMapper.updateById(budgetChange);
}
return null;
}
@Override
public Object doFinished(TbsAffairCommitBo param) {
TbsBudgetChange budgetChange = budgetChangeMapper.selectById(param.getTargetId());
if(budgetChange.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){
budgetChange.setBudgetCheckState(TbsBudgetCheckState.State_2_finished);
budgetChangeMapper.updateById(budgetChange);
}
//TODO 更新到主表
return null;
}
@Override
public Object doRefuse(TbsAffairCommitBo param) {
TbsBudgetChange budgetChange = budgetChangeMapper.selectById(param.getTargetId());
if(budgetChange.getBudgetCheckState().equals(TbsBudgetCheckState.State_1_apply)){
budgetChange.setBudgetCheckState(TbsBudgetCheckState.State_4_stop);
budgetChangeMapper.updateById(budgetChange);
}
return null;
}
@Override
public String getTemplateCode() {
return TbsSeeYonConst.BudgetApplyConf.Code();
}
}

9
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeScheduleItemServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -8,6 +9,8 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetChangeScheduleItem;
import com.qs.serve.modules.tbs.service.TbsBudgetChangeScheduleItemService;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeScheduleItemMapper;
import java.util.List;
/**
* 考核期更变记录 服务实现类
* @author YenHex
@ -18,5 +21,11 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeScheduleItemMapper;
@AllArgsConstructor
public class TbsBudgetChangeScheduleItemServiceImpl extends ServiceImpl<TbsBudgetChangeScheduleItemMapper,TbsBudgetChangeScheduleItem> implements TbsBudgetChangeScheduleItemService {
@Override
public List<TbsBudgetChangeScheduleItem> listByChangeId(Long id) {
LambdaQueryWrapper<TbsBudgetChangeScheduleItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsBudgetChangeScheduleItem::getChangeId,id);
return this.list(lqw);
}
}

18
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java

@ -51,19 +51,21 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl<TbsBudgetChangeMappe
private final ProjectProperties projectProperties;
@Override
public void commitApply(TbsBudgetUpdateAfterStartBo param) {
public TbsBudgetChange commitApply(TbsBudgetUpdateAfterStartBo param) {
seeYonService.testConnection();
TbsBudget budget = tbsBudgetMapper.selectById(param.getId());
TbsBudgetChange budgetChange = buildBudgetChange(param, budget);
String templateCode = TbsSeeYonConst.BudgetChangeConf.Code();
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
TbsBudgetChange budgetChange = buildBudgetChange(param, budget,sysUser);
String templateCode = TbsSeeYonConst.BudgetChangeConf.Code();
Map<String,Object> data = new HashMap<>();
data.put("exsp5", budgetChange.getChangeCode());
data.put("orgId", budgetChange.getId().toString());
data.put("applyUserCode", sysUser.getCode());
data.put("applyUserName", sysUser.getName());
data.put("empId", sysUser.getSyUserId());
data.put("targetId", budgetChange.getId()+"");
data.put("targetCode", budgetChange.getChangeCode());
data.put("budgetCode", budgetChange.getBudgetNumber());
data.put("exsp1", templateCode);
//添加跳转地址业务
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),templateCode,budgetChange.getId()+"");
@ -95,7 +97,9 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl<TbsBudgetChangeMappe
seeYonService.createCallbackStatus(callbackBo);
//请求校验是否成功
AsyncManager.me().execute(AsyncFactory.submitBudgetApply(budgetChange.getId()+""));
AsyncManager.me().execute(AsyncFactory.submitBudgetChange(budgetChange.getId()+""));
return budgetChange;
}
@ -103,11 +107,15 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl<TbsBudgetChangeMappe
* 创建更变记录
* @param param
* @param budget
* @param sysUser
* @return
*/
private TbsBudgetChange buildBudgetChange(TbsBudgetUpdateAfterStartBo param, TbsBudget budget) {
private TbsBudgetChange buildBudgetChange(TbsBudgetUpdateAfterStartBo param, TbsBudget budget,SysUser sysUser) {
TbsBudgetChange budgetChange = TbsBudgetChange.toNewObject(budget);
budgetChange.setChangeCode(CodeGenUtil.generate(CodeGenUtil.SourceKey.BudgetChange));
budgetChange.setUserId(sysUser.getId());
budgetChange.setUserCode(sysUser.getCode());
budgetChange.setUserName(sysUser.getName());
boolean notChangeTitle = param.getBudgetCode()!=null&& param.getBudgetCode().equals(budget.getBudgetCode());
if(!notChangeTitle){
budgetChange.setNewBudgetTitle(param.getBudgetCode());

5
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -101,8 +101,10 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
data.put("orgId", tbsBudget.getId().toString());
data.put("applyUserCode", sysUser.getCode());
data.put("applyUserName", sysUser.getName());
data.put("empId", sysUser.getSyUserId());
data.put("targetId", tbsBudget.getId()+"");
data.put("targetCode", tbsBudget.getBudgetNumber());
data.put("budgetCode", tbsBudget.getBudgetNumber());
data.put("exsp1",templateCode);
//添加跳转地址业务
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),templateCode,id+"");
@ -127,6 +129,9 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
tbsBudget.setSubmitTime(LocalDateTime.now());
tbsBudget.setBudgetCheckState(TbsBudgetCheckState.State_1_apply);
tbsBudget.setSyFormId(formId);
tbsBudget.setUserId(sysUser.getId());
tbsBudget.setUserCode(sysUser.getCode());
tbsBudget.setUserName(sysUser.getName());
this.updateById(tbsBudget);
//创建流程后回调

5
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -72,6 +72,11 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
private final DataAffairCommitMapper dataAffairCommitMapper;
@Override
public void doCommitBacked(String targetId) {
}
@Override
public SysUserService getSysUserService() {
return sysUserService;

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

@ -145,6 +145,10 @@ public class TzcPolicyOperationServiceImpl implements SeeYonOperationService {
return TbsSeeYonConst.PolicyConf.Code();
}
@Override
public void doCommitBacked(String targetId) {
}
@Override
public Object compensateBacked(String targetId) {

5
src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java

@ -11,12 +11,13 @@ import lombok.Getter;
@AllArgsConstructor
public enum VtbVerificationState {
//状态:0=审批中;1=完成;2-中止;3-回滚;4-作废
//状态:0=审批中;1=完成;2-中止;3-回滚;4-作废;5-关闭
Commiting(0),
Finished(1),
Stop(2),
Rollback(3),
Cancel(4);
Cancel(4),
Close(5);
private Integer code;

3
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java

@ -54,5 +54,8 @@ public class VtbVerificationBo implements Serializable {
/** 支付方式 */
private Long payWayId;
/** 原来的审批id */
private Long orgVerificationId;
}

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

@ -1,6 +1,8 @@
package com.qs.serve.modules.vtb.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil;
@ -177,11 +179,11 @@ public class VtbVerificationApplication {
}
yardService.save(yard);
//非终止或者驳回,保存审批线金额明细
BigDecimal totalAmount = BigDecimal.ZERO;
if(!isStop){
List<VtbVerificationSubject> verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verification.getId());
List<VtbVerificationYardItem> yardItemList = new ArrayList<>();
List<VtbVerificationSubject> verSubject4Update = new ArrayList<>();
BigDecimal totalAmount = BigDecimal.ZERO;
for (VtbVerificationSubject currVs : verificationSubjects) {
BigDecimal changeAmount = null;
Integer countSession = null;
@ -280,6 +282,10 @@ public class VtbVerificationApplication {
if( isRelease &&(isFinish||isStop)){
this.vtbVerificationService.release(verification.getActivityId());
}
if(isNext){
//判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount));
}
return R.ok();
}

5
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationOperationServiceImpl.java

@ -73,6 +73,11 @@ public class VtbVerificationOperationServiceImpl implements SeeYonOperationServi
return null;
}
@Override
public void doCommitBacked(String targetId) {
}
@Override
public Object compensateBacked(String targetId) {
VtbVerification verification = vtbVerificationMapper.selectById(targetId);

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

@ -546,7 +546,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("当前费用状态不支持");
}
VtbVerification orgData = null;
if(verificationBo.getOrgVerificationId()!=null){
orgData = this.getById(verificationBo.getOrgVerificationId());
if(!orgData.getVerificationState().equals(VtbVerificationState.Rollback.getCode())){
Assert.throwEx("原来的核销数据非回退状态");
}
}
String saleRegionId = supplier.handleSaleRegionId();
BmsRegion saleRegion = regionMapper.selectById(saleRegionId);
String saleBizNames = saleRegion!=null?saleRegion.getPathNames():"null_申请时未录入";
@ -680,6 +686,12 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
activityParam.setActivityState(TbsActivityState.STATE_1_Checking);
activityService.updateById(activityParam);
//更新原来的核销为关闭
if(orgData!=null){
orgData.setVerificationState(VtbVerificationState.Close.getCode());
this.updateById(orgData);
}
//判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount));

87
src/main/resources/mapper/seeyon/CommonCheckMapper.xml

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.seeyon.mapper.CommonCheckMapper">
<select id="pageCallbackList" resultType="com.qs.serve.modules.seeyon.entity.vo.TodoVO">
select
'CostBill' as target_type,
cost.id as target_id,
cost.`code` as target_code,
cost.charge_theme as title,
cost.submit_time
from tbs_cost_apply cost where cost.charge_state = 4 and cost.user_id = #{query.userId} and cost.del_flag = 0
UNION
select
'ReleasePolicy' as target_type,
policy.id as target_id,
policy.policy_code as target_code,
policy.title,
policy.submit_time
from tzc_policy policy where policy.policy_status = 4 and policy.user_id = #{query.userId} and policy.del_flag = 0
UNION
select
'CheckCost' as target_type,
vtb.id as target_id,
vtb.`verification_code` as target_code,
act.act_title as title,
vtb.create_time as submit_time
from vtb_verification vtb
left join tbs_activity act on vtb.activity_id = act.id
where vtb.verification_state = 3 and vtb.user_id = #{query.userId} and act.del_flag = 0 and vtb.del_flag = 0
UNION
select
'budgetAdjust' as target_type,
budget.id as target_id,
budget.budget_number as target_code,
budget.budget_code as title,
budget.submit_time
from tbs_budget budget
where budget.budget_check_state = 3 and budget.user_id = #{query.userId} and budget.del_flag = 0
UNION
select
'budgetAdjust2' as target_type,
budget_change.id as target_id,
budget_change.change_code as target_code,
budget_change.budget_title as title,
budget_change.submit_time
from tbs_budget_change budget_change
where budget_change.budget_check_state = 3 and budget_change.user_id = #{query.userId} and budget_change.del_flag = 0
limit #{query.startRow},#{query.pageSize}
</select>
<select id="countCallback" resultType="java.lang.Long">
select count(0) from (
select
'CostBill' as target_type,
cost.id as target_id
from tbs_cost_apply cost where cost.charge_state = 4 and cost.user_id = #{query.userId} and cost.del_flag = 0
UNION
select
'ReleasePolicy' as target_type,
policy.id as target_id
from tzc_policy policy where policy.policy_status = 4 and policy.user_id = #{query.userId} and policy.del_flag = 0
UNION
select
'CheckCost' as target_type,
vtb.id as target_id
from vtb_verification vtb
left join tbs_activity act on vtb.activity_id = act.id
where vtb.verification_state = 3 and vtb.user_id = #{query.userId} and vtb.del_flag = 0
UNION
select
'budgetAdjust' as target_type,
budget.id as target_id
from tbs_budget budget
where budget.budget_check_state = 3 and budget.user_id = #{query.userId} and budget.del_flag = 0
UNION
select
'budgetAdjust2' as target_type,
budget_change.id as target_id
from tbs_budget_change budget_change
where budget_change.budget_check_state = 3 and budget_change.user_id = #{query.userId} and budget_change.del_flag = 0
) tmp_tb
</select>
</mapper>
Loading…
Cancel
Save