From 2c456094bdf1cc7e1bab5e0dbee00bb1f2743488 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 17 七月 2023 13:50:12 +0800 Subject: [PATCH] 1、审批顺序:审批时,从一级到五级逐级审批,回退时,由审批人员指定回退级别,如从五级审批退回到经办人(需要重新修改材料的人员处),每一级可以看到回退的信息;修改完成后,直接从经办人处到达五级审批或退回的审批人。被退回的信息修改完成后,直接从经办人到达五级审批或退回的审批人处,那么其他层级的审批人虽然不需要审批,但要能够看到重新修改后的信息。 说明: (1)差旅费报销主表:service_reimbursement 标识字段:FlowLevel(当前审核级别 处于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等; 4:四级审核等; 5:五级审核等);RecordStatus(记录状态 详见字典sys_travelexpensestatus) (2)费用报销主表:service_fund 标识字段:FlowLevel(当前审核级别 处于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等; 4:四级审核等; 5:五级审核等);RecordStatus(记录状态 详见字典sys_travelexpensestatus) (3)审批流程设置表:service_fundflowrule (4)审批流程记录表:service_fundflow --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 40 insertions(+), 6 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java index af24cf9..534ed5e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java @@ -2,6 +2,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.config.RuoYiConfig; @@ -15,6 +17,7 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.HttpClientKit; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.dto.ServiceReimbursementDto; @@ -29,6 +32,7 @@ import freemarker.template.TemplateException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.apache.ibatis.annotations.Options; import org.springframework.beans.factory.annotation.Autowired; @@ -57,10 +61,10 @@ private IServiceReimbursementService serviceReimbursementService; @Autowired - private IServiceReimbursementpayeeService reimbursementpayeeService; + private IServiceReimbursementSharedService serviceReimbursementSharedService; @Autowired - private IServiceReimbursementSharedService serviceReimbursementServiceShare; + private IServiceReimbursementpayeeService reimbursementpayeeService; @Autowired private IServiceReimbursementdetailService serviceReimbursementdetailService; @@ -70,6 +74,9 @@ @Autowired private IServiceFundflowService serviceFundflowService; + + @Autowired + private IServiceFundService serviceFundService; @Autowired private ISysPostService postService; @@ -437,6 +444,7 @@ // return 0; // } + /** * 宸梾璐逛笂鎶� */ @@ -445,6 +453,20 @@ @PostMapping("/travelexpensereport") public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) { ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); + //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜� + if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) { + + //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉� + ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class); + serviceReimbursementShared.setId(null); + serviceReimbursementShared.setDelFlag(0L); + serviceReimbursementSharedService.save(serviceReimbursementShared); + + //灏嗛��鍥為樁娈佃缃垚100 + serviceReimbursement.setBackflowlevel(100L); + serviceReimbursementService.updateById(serviceReimbursement); + return success(); + } if (serviceReimbursement != null) { Integer TotalLevel = 0; LoginUser loginUser = getLoginUser(); @@ -453,10 +475,12 @@ if (!postids.contains(2)) { serviceReimbursement.setFlowlevel(1L); + serviceReimbursement.setBackflowlevel(1L); serviceReimbursement.setRecordstatus(2); } else { serviceReimbursement.setFlowlevel(0L); serviceReimbursement.setRecordstatus(0); + serviceReimbursement.setBackflowlevel(0L); } if (!postids.contains(2)) { @@ -489,6 +513,7 @@ @PostMapping("/checkfund") public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) { ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid()); + if (serviceReimbursement != null) { Integer totalLevel = 0; LoginUser loginUser = getLoginUser(); @@ -514,6 +539,9 @@ Integer CheckFlag = 0; Integer RecordStatus = serviceReimbursement.getRecordstatus(); Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString()); + if (Objects.isNull(serviceReimbursement.getBackflowlevel()) && !Objects.isNull(serviceReimbursement.getFlowlevel())) { + serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel.toString())); + } Integer OriginalFlowLevel = FlowLevel; if (checkFundVO.getFlowconclusion() == 1) { CheckFlag = 1; @@ -530,16 +558,22 @@ FlowLevel = FlowLevel + 1; } else { CheckFlag = 2; - RecordStatus = (FlowLevel + 1) * 2 - 1; - FlowLevel = (FlowLevel - 1); - if (FlowLevel < 0) { + + if (CheckFlag == 2) { + //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯�� FlowLevel = 0; + } else { + //涓嬮潰鏄師鏉ョ殑鍐欐硶锛屼竴绾т竴绾х殑寰�涓嬮��锛屽尰闄㈢幇鍦ㄤ笉瑕佽繖鏍锋悶浜嗭紝涓嬮潰杩欐浠g爜鍏堜繚鐣欙紝绛夊尰闄㈠洖蹇冭浆鎰忥紝鍐嶇粰鏀惧紑 + RecordStatus = (FlowLevel + 1) * 2 - 1; + FlowLevel = (FlowLevel - 1); + if (FlowLevel < 0) { + FlowLevel = 0; + } } } serviceReimbursement.setRecordstatus(RecordStatus); serviceReimbursement.setFlowlevel(Long.valueOf(FlowLevel.toString())); - ServiceFundflow serviceFundflow = new ServiceFundflow(); SysUser user = loginUser.getUser(); serviceFundflow.setFundid(serviceReimbursement.getId()); -- Gitblit v1.9.3