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 31f12753..ce0f7f8f 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java +++ b/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> pageCallbackList(){ + return R.ok(commonCheckService.pageCallback(new TodoVoQuery())); + } + /** * 重定向到审批页面 * @param targetDTO diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/dto/TodoVoQuery.java b/src/main/java/com/qs/serve/modules/seeyon/entity/dto/TodoVoQuery.java new file mode 100644 index 00000000..28d85ef3 --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/enums/CheckTypeEnum.java b/src/main/java/com/qs/serve/modules/seeyon/enums/CheckTypeEnum.java new file mode 100644 index 00000000..011f2366 --- /dev/null +++ b/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 + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/mapper/CommonCheckMapper.java b/src/main/java/com/qs/serve/modules/seeyon/mapper/CommonCheckMapper.java new file mode 100644 index 00000000..8ac073bb --- /dev/null +++ b/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 pageCallbackList(@Param("query") TodoVoQuery query); + + /** + * 合计回退的审批列表 + * @param query + * @return + */ + Long countCallback(@Param("query") TodoVoQuery query); + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/CommonCheckService.java b/src/main/java/com/qs/serve/modules/seeyon/service/CommonCheckService.java index ad645481..11b439d8 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/CommonCheckService.java +++ b/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 pageCallback(TodoVoQuery query); + /** * 退回列表 * @return diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java b/src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java index 1e67dccf..f1166fcc 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/impl/CommonCheckServiceImpl.java +++ b/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 pageCallback(TodoVoQuery query) { + int pageSize = PageUtil.getPageSize(); + int startRow = PageUtil.getStartRow(); + query.setUserId(AuthContextUtils.getSysUserId()); + query.setPageSize(pageSize); + query.setStartRow(startRow); + PageVo pageVo = new PageVo<>(); + Long count = commonCheckMapper.countCallback(query); + List 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 todoVOList) { + Map> todoMap = todoVOList.stream().collect(Collectors.groupingBy(TodoVO::getTargetType)); + + List costToDo = todoMap.get(CheckTypeEnum.CostBill.name()); + List policyToDo = todoMap.get(CheckTypeEnum.ReleasePolicy.name()); + List verificationToDo = todoMap.get(CheckTypeEnum.CheckCost.name()); + List budgetToDo = todoMap.get(CheckTypeEnum.budgetAdjust.name()); + List budgetChangeToDo = todoMap.get(CheckTypeEnum.budgetAdjust2.name()); + + if(CollUtil.isNotEmpty(costToDo)){ + List ids = getTodoIds(costToDo); + List 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 ids = getTodoIds(policyToDo); + List dataList = tzcPolicyMapper.selectBatchIds(ids); + for (TodoVO todoVO : costToDo) { + for (TzcPolicy item : dataList) { + if(item.getId().toString().equals(todoVO.getTargetId())){ + todoVO.setTargetInfo(item); + break; + } + } + } + } + + if(CollUtil.isNotEmpty(verificationToDo)){ + List ids = getTodoIds(verificationToDo); + List dataList = verificationMapper.selectBatchIds(ids); + for (TodoVO todoVO : costToDo) { + for (VtbVerification item : dataList) { + if(item.getId().toString().equals(todoVO.getTargetId())){ + todoVO.setTargetInfo(item); + break; + } + } + } + } + + if(CollUtil.isNotEmpty(budgetToDo)){ + List ids = getTodoIds(budgetToDo); + List dataList = tbsBudgetMapper.selectBatchIds(ids); + for (TodoVO todoVO : costToDo) { + for (TbsBudget item : dataList) { + if(item.getId().toString().equals(todoVO.getTargetId())){ + todoVO.setTargetInfo(item); + break; + } + } + } + } + + if(CollUtil.isNotEmpty(budgetChangeToDo)){ + List ids = getTodoIds(budgetChangeToDo); + List dataList = tbsBudgetChangeMapper.selectBatchIds(ids); + for (TodoVO todoVO : costToDo) { + for (TbsBudgetChange item : dataList) { + if(item.getId().toString().equals(todoVO.getTargetId())){ + todoVO.setTargetInfo(item); + break; + } + } + } + } + } @Override public List listCallbackList() { @@ -72,4 +192,16 @@ public class CommonCheckServiceImpl implements CommonCheckService { return result; } + /** + * 提取todo列表的targetId + * @param todoList + * @return + */ + private List getTodoIds(List todoList){ + if(todoList!=null&&todoList.size()>0){ + return todoList.stream().map(TodoVO::getTargetId).collect(Collectors.toList()); + } + return null; + } + } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java index 3d598fdc..e0d7696f 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java index 6fc67144..1b925cdb 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetChange.java @@ -110,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; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java index 64795e04..5b1c5524 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java @@ -54,9 +54,9 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl data = new HashMap<>(); data.put("exsp5", budgetChange.getChangeCode()); data.put("orgId", budgetChange.getId().toString()); @@ -107,11 +107,15 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl 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); //创建流程后回调 diff --git a/src/main/resources/mapper/seeyon/CommonCheckMapper.xml b/src/main/resources/mapper/seeyon/CommonCheckMapper.xml new file mode 100644 index 00000000..d31f9bfc --- /dev/null +++ b/src/main/resources/mapper/seeyon/CommonCheckMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + +