diff --git a/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubZxAuditController.java b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubZxAuditController.java new file mode 100644 index 00000000..01d5d7f3 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/outlay/outlayReimburse/controller/OutlayReimburseClubZxAuditController.java @@ -0,0 +1,118 @@ +package com.budwk.app.zhgh.outlay.outlayReimburse.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.service.BaseService; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.sys.services.SysDictService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.List; + +/** + * @author zhf + * @date 2025/8/19 16:50 + * @description 分工会主席审核 + */ +@IocBean +@Ok("json:full") +@Slf4j +@Api(tags = "费用报销管理-协会主席审核") +@At("/platform/outlay/reimburse/clubZxAudit") +public class OutlayReimburseClubZxAuditController { + + @Inject + private BaseService baseService; + @Inject + private SysDictService sysDictService; + + @At("/index") + @Ok("beetl:/platform/zhgh/outlay/outlayReimburse/clubZxAudit/index.html") + @SaCheckPermission("outlay.reimburse.clubZxAudit") + public void index() { + + } + + + @At + @ApiOperation("分页查询") + @SaCheckPermission("outlay.reimburse.clubZxAudit") + public Result pageData(PageForm pageForm, + Integer year, + Boolean approval, + String outlayManageSource) { + Sql sql = Sqls.create(""" + SELECT + info.*, + YEAR(info.applyTime) year, + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariale, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke + FROM + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN outlay_reimburse info ON info.id = ins.businessNo + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("t.taskName", "=", "728aea8e-bd4e-438e-bb48-8dfbd2a5c11e"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.andEX("info.outlayManageSource", "=", outlayManageSource); + + if (approval) { + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.WITHDRAW.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); + } else { + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); + } + if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) { + cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword()); + } + cnd.andEX("YEAR(info.applyTime)", "=", year); + cnd.groupBy("t.id"); + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("t.createdAt").desc("info.applyTime"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + sql.setCondition(cnd); + Pagination pageVO = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pageVO); + } + + + + + +}