commit
This commit is contained in:
+9
-1
@@ -1,12 +1,12 @@
|
||||
package com.budwk.app.zhgh.dayofficework.evaluation.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNode;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
@@ -150,4 +150,12 @@ public class EvaluateActivityController {
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckLogin
|
||||
@ApiOperation("根据年查询荣誉申请事项")
|
||||
public Result listEvaluateActivityByYear(Integer year) {
|
||||
List<EvaluateActivity> list = dao.query(EvaluateActivity.class, Cnd.NEW().andEX(EvaluateActivity::getYear,"=",year));
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+38
-17
@@ -1,16 +1,18 @@
|
||||
package com.budwk.app.zhgh.dayofficework.evaluation.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
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.bpm.service.BpmService;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.flow.constant.FlowConst;
|
||||
import com.budwk.app.flow.engine.FlowEngine;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateActivityService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
@@ -45,9 +47,9 @@ public class EvaluateApplyController {
|
||||
@Inject
|
||||
private EvaluateService evaluateService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
private FlowEngine flowEngine;
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
private FlowCommonService flowCommonService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/dayofficework/evaluation/apply/index.html")
|
||||
@@ -96,12 +98,25 @@ public class EvaluateApplyController {
|
||||
@At
|
||||
@SaCheckPermission("evaluation.apply")
|
||||
@ApiOperation("保存")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "评优评先申请", msg = "保存申请")
|
||||
public Result save(@Param("evaluateApply") EvaluateApply evaluateApply) {
|
||||
public Result save(@Param("data") EvaluateApply evaluateApply) {
|
||||
evaluateApply.setApplyDateTime(new Date());
|
||||
evaluateService.insertOrUpdate(evaluateApply);
|
||||
bpmService.startSaveProcessInstance(BpmProcessConstant.PERSON_EVALUATE.name(), evaluateApply.getUserName() + "的申请", evaluateApply.getId(), null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("evaluation.apply")
|
||||
@ApiOperation("重新提交申请")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog( tag = "评优评先申请", msg = "重新提交申请")
|
||||
public Result submitAgain(@Param("data") EvaluateApply evaluateApply, @Param("taskId") Long taskId) {
|
||||
evaluateService.insertOrUpdate(evaluateApply);
|
||||
|
||||
Dict dict = Dict.create();
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||
flowCommonService.executeTask(dict);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@@ -110,15 +125,21 @@ public class EvaluateApplyController {
|
||||
@ApiOperation("提交")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "评优评先申请", msg = "提交申请")
|
||||
public Result submit(@Param("evaluateApply") EvaluateApply evaluateApply) {
|
||||
public Result submit(@Param("data") EvaluateApply evaluateApply) {
|
||||
evaluateApply.setApplyDateTime(new Date());
|
||||
evaluateService.insertOrUpdate(evaluateApply);
|
||||
//查询分工会审批人工号
|
||||
String branchUnionApprovalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.BRANCH_UNION_CHAIRMAN, Cnd.where(Sys_user_role::getUnionId, "=", evaluateApply.getUnionId()));
|
||||
if (StrUtil.isBlank(branchUnionApprovalLoginName)) {
|
||||
return Result.error("分工会未配置审批人,请联系校工会!");
|
||||
|
||||
// 开启流程实例
|
||||
Dict args = Dict.create();
|
||||
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
|
||||
args.set(FlowConst.FORM_DATA, evaluateApply);
|
||||
ProcessInstance instance = flowEngine.startProcessInstanceByKey("PYPX", evaluateApply.getId(), SecurityUtil.getUserId(), args);
|
||||
|
||||
// 自动完成第一个申请任务
|
||||
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
|
||||
for (ProcessTask task : doingTaskList) {
|
||||
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
|
||||
}
|
||||
bpmService.startSubmitProcessInstance(BpmProcessConstant.PERSON_EVALUATE.name(), evaluateApply.getUserName() + "的申请", evaluateApply.getId(), List.of(branchUnionApprovalLoginName), null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
+37
-76
@@ -1,44 +1,29 @@
|
||||
package com.budwk.app.zhgh.dayofficework.evaluation.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@IocBean
|
||||
@At("/platform/evaluate/branchUnionApproval")
|
||||
@@ -65,87 +50,63 @@ public class EvaluateBranchUnionApprovalController {
|
||||
@SaCheckPermission("evaluation.branchUnionApproval")
|
||||
@ApiOperation("数据列表")
|
||||
@Ok("json")
|
||||
public Result pageData(@Valid EvaluatePageForm pageForm, boolean approval){
|
||||
public Result pageData(@Valid EvaluatePageForm pageForm, Boolean approval){
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
ea.name AS evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete
|
||||
ins.id AS instanceId,
|
||||
ins.businessNo,
|
||||
ins.state instanceState,
|
||||
ins.variable instanceVariable,
|
||||
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
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN evaluate_apply info ON info.id = inst.processInstanceBusinessId
|
||||
wf_process_task t
|
||||
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
|
||||
LEFT JOIN evaluate_apply info ON info.id = ins.businessNo
|
||||
LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
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();
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||
cnd.and("t.taskName", "=", "3bdaa29d-e5eb-4e3e-b7f1-14d03bedd078");
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
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());
|
||||
}
|
||||
|
||||
cnd.and("nd.nodeCode","=",20);
|
||||
if(approval){
|
||||
cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
}else{
|
||||
cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE);
|
||||
if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
|
||||
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
|
||||
}
|
||||
|
||||
cnd.andEX("eva.year", "=", pageForm.getYear());
|
||||
cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName()));
|
||||
cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName()));
|
||||
cnd.andEX("info.unionId","=",pageForm.getUnionId());
|
||||
cnd.andEX("info.unitId","=",pageForm.getUnitId());
|
||||
|
||||
cnd.andEX("YEAR(info.applyDateTime)", "=", pageForm.getYear());
|
||||
cnd.groupBy("t.id");
|
||||
if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){
|
||||
cnd.desc("info.applyDateTime");
|
||||
cnd.desc("t.createdAt").desc("info.applyDateTime");
|
||||
}else{
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
}
|
||||
|
||||
sql.setCondition(cnd);
|
||||
Pagination<EvaluateApplyPageVO> pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class);
|
||||
return Result.success(pageVO);
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("evaluation.branchUnionApproval")
|
||||
@ApiOperation("审核")
|
||||
@SLog(tag = "评优评先分工会审核", msg = "分工会审核")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam){
|
||||
approvalParam.getBpmTaskApprovalTypeEnum();
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
EvaluateApply evaluateApply = evaluateService.fetch(approvalParam.getProcessInstanceBusinessId());
|
||||
List<String> assignments = new ArrayList<>();
|
||||
if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){
|
||||
String schoolUnionApprovalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_ADMIN, Cnd.where(Sys_user_role::getUnionId, "=", evaluateApply.getUnionId()));
|
||||
assignments.add(schoolUnionApprovalLoginName);
|
||||
}
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("evaluation.branchUnionApproval")
|
||||
@ApiOperation("撤回")
|
||||
@SLog(tag = "评优评先分工会审核", msg = "撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result revoke(@Valid String taskId){
|
||||
bpmService.revokeTask(taskId);
|
||||
return Result.success();
|
||||
Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-4
@@ -7,7 +7,6 @@ import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
@@ -33,8 +32,6 @@ public class EvaluateCommonController {
|
||||
@SaCheckPermission("evaluation")
|
||||
public Result info(@Valid String id){
|
||||
EvaluateApply evaluateApply = evaluateService.fetch(id);
|
||||
EvaluateApplyVO vo = BeanUtil.copyProperties(evaluateApply, EvaluateApplyVO.class);
|
||||
vo.setNodeTasks(bpmService.getNodeTasks(BpmProcessConstant.PERSON_EVALUATE, id));
|
||||
return Result.success(vo);
|
||||
return Result.success(evaluateApply);
|
||||
}
|
||||
}
|
||||
|
||||
+33
-48
@@ -2,23 +2,18 @@ package com.budwk.app.zhgh.dayofficework.evaluation.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
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.bpm.service.BpmService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
@@ -48,66 +43,56 @@ public class EvaluateMineController {
|
||||
@At
|
||||
@SaCheckPermission("evaluation.mine")
|
||||
public Result pageData(@Valid PageForm pageForm, Integer year) {
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
ea.name AS evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeCode,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
nd.nodeType AS processInstanceTaskNodeType,
|
||||
(
|
||||
SELECT
|
||||
count( 1 ) > 0
|
||||
FROM
|
||||
bpm_process_task
|
||||
WHERE
|
||||
prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 )
|
||||
AND taskStatus = 'COMPELTE'
|
||||
) AS nextTaskIsComplete
|
||||
info.*,
|
||||
ea.name AS evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName,
|
||||
ins.id AS instanceId,
|
||||
ins.businessNo,
|
||||
ins.state instanceState,
|
||||
ins.variable instanceVariable,
|
||||
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,
|
||||
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
|
||||
(SELECT MAX(id) FROM wf_process_task WHERE processInstanceId = ins.id AND taskName = 'startTask' AND taskState IN (10, 20)) AS startTaskId
|
||||
FROM
|
||||
evaluate_apply info
|
||||
LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
LEFT JOIN bpm_process_instance inst ON inst.processInstanceBusinessId = info.id
|
||||
LEFT JOIN bpm_process_node_define nd ON nd.id = inst.processInstanceNodeId
|
||||
evaluate_apply info
|
||||
LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
|
||||
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id
|
||||
AND t.taskState = 10
|
||||
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) {
|
||||
cnd.and("info.loginName", "=", SecurityUtil.getUserLoginname());
|
||||
}
|
||||
cnd.andEX("ea.year", "=", year);
|
||||
cnd.groupBy("info.id");
|
||||
cnd.andEX("YEAR(info.year)", "=", year);
|
||||
cnd.and("info.loginName", "=", SecurityUtil.getUserLoginname());
|
||||
sql.setCondition(cnd);
|
||||
Pagination<EvaluateApplyPageVO> pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class);
|
||||
return Result.success(pageVO);
|
||||
Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("evaluation.mine")
|
||||
@ApiOperation("删除")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "评优评先申请", msg = "删除申请")
|
||||
public Result delete(@Valid String id) {
|
||||
evaluateService.delete(id);
|
||||
bpmService.deleteInstance(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("evaluation.mine")
|
||||
@ApiOperation("撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "评优评先申请", msg = "撤回申请")
|
||||
public Result revokeApply(@Valid String id) {
|
||||
bpmService.revokeApply(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+39
-36
@@ -8,17 +8,15 @@ import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -27,7 +25,6 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
@@ -65,59 +62,65 @@ public class EvaluateSchoolUnionApprovalController {
|
||||
@SaCheckPermission("evaluation.schoolUnionApproval")
|
||||
@ApiOperation("数据列表")
|
||||
@Ok("json")
|
||||
public Result pageData(@Valid EvaluatePageForm pageForm, boolean approval){
|
||||
public Result pageData(@Valid EvaluatePageForm pageForm, Boolean approval){
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
ea.name AS evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete
|
||||
ins.id AS instanceId,
|
||||
ins.businessNo,
|
||||
ins.state instanceState,
|
||||
ins.variable instanceVariable,
|
||||
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
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN evaluate_apply info ON info.id = inst.processInstanceBusinessId
|
||||
wf_process_task t
|
||||
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
|
||||
LEFT JOIN evaluate_apply info ON info.id = ins.businessNo
|
||||
LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
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();
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||
}
|
||||
|
||||
cnd.and("nd.nodeCode","=",50);
|
||||
if(approval){
|
||||
cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
}else{
|
||||
cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE);
|
||||
}
|
||||
|
||||
cnd.andEX("eva.year", "=", pageForm.getYear());
|
||||
cnd.and(Cnd.likeEX("info.userName", pageForm.getUserName()));
|
||||
cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName()));
|
||||
cnd.and("t.taskName", "=", "3c158aca-89ef-4188-bbc3-e8db201f02a1");
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
cnd.andEX("info.unionId","=",pageForm.getUnionId());
|
||||
cnd.andEX("info.unitId","=",pageForm.getUnitId());
|
||||
|
||||
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.applyDateTime)", "=", pageForm.getYear());
|
||||
cnd.groupBy("t.id");
|
||||
if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){
|
||||
cnd.desc("info.applyDateTime");
|
||||
cnd.desc("t.createdAt").desc("info.applyDateTime");
|
||||
}else{
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
}
|
||||
|
||||
sql.setCondition(cnd);
|
||||
Pagination<EvaluateApplyPageVO> pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class);
|
||||
return Result.success(pageVO);
|
||||
Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
|
||||
+11
-66
@@ -5,23 +5,19 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.flow.engine.FlowEngine;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateActivity;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluateApplyPageVO;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
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;
|
||||
@@ -47,7 +43,7 @@ public class EvaluateSummaryController {
|
||||
@Inject
|
||||
private EvaluateService evaluateService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
private FlowEngine flowEngine;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/dayofficework/evaluation/summary/index.html")
|
||||
@@ -60,69 +56,18 @@ public class EvaluateSummaryController {
|
||||
@SaCheckPermission("evaluation.summary")
|
||||
@ApiOperation("获取评优评先活动列表")
|
||||
public Result pageData(@Valid EvaluatePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
eva.name as evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName,
|
||||
ins.processInstanceNodeName
|
||||
FROM
|
||||
evaluate_apply info
|
||||
LEFT JOIN evaluate_activity eva ON eva.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
LEFT JOIN bpm_process_instance ins ON ins.processInstanceBusinessId = info.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("eva.year", "=", pageForm.getYear());
|
||||
cnd.and(Cnd.likeEX("eva.id", pageForm.getEvaluateId()));
|
||||
cnd.and(Cnd.likeEX("ea.userName", pageForm.getUserName()));
|
||||
cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName()));
|
||||
cnd.andEX("info.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("info.unionId", "=", pageForm.getUnionId());
|
||||
|
||||
if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){
|
||||
cnd.desc("info.applyDateTime");
|
||||
}else{
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
}
|
||||
|
||||
sql.setCondition(cnd);
|
||||
Pagination<EvaluateApplyPageVO> pageVO = evaluateService.listPageVO(pageForm, sql, EvaluateApplyPageVO.class);
|
||||
return Result.success(pageVO);
|
||||
Sql sql = evaluateService.getSummarySql(pageForm);
|
||||
Pagination pagination = evaluateService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("evaluation.summary")
|
||||
@ApiOperation("导出评优评先活动列表")
|
||||
public void exportExcel(@Valid EvaluatePageForm pageForm,HttpServletResponse response) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.userName,
|
||||
info.loginName,
|
||||
info.sex,
|
||||
info.unitName,
|
||||
eva.`name` as evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName
|
||||
FROM
|
||||
evaluate_apply info
|
||||
LEFT JOIN evaluate_activity eva ON eva.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("eva.year", "=", pageForm.getYear());
|
||||
cnd.and(Cnd.likeEX("eva.id", pageForm.getEvaluateId()));
|
||||
cnd.and(Cnd.likeEX("ea.userName", pageForm.getUserName()));
|
||||
cnd.and(Cnd.likeEX("info.loginName", pageForm.getLoginName()));
|
||||
cnd.andEX("info.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("info.unionId", "=", pageForm.getUnionId());
|
||||
sql.setCondition(cnd);
|
||||
public void exportExcel(@Valid EvaluatePageForm pageForm, HttpServletResponse response) {
|
||||
EvaluateActivity activity = evaluateService.dao().fetch(EvaluateActivity.class, pageForm.getEvaluateId());
|
||||
Sql sql = evaluateService.getSummarySql(pageForm);
|
||||
List<NutMap> list = baseService.listMap(sql);
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
list.get(i).put("序号", (i + 1));
|
||||
@@ -143,7 +88,7 @@ public class EvaluateSummaryController {
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
CommonDownloadUtil.download("评优评先人员列表.xlsx", workbook, response);
|
||||
CommonDownloadUtil.download(activity.getName() + "人员列表.xlsx", workbook, response);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
@@ -154,7 +99,7 @@ public class EvaluateSummaryController {
|
||||
@SLog(tag = "评优评先活查询统计", msg = "删除")
|
||||
public Result delete(@Valid String id) {
|
||||
evaluateService.delete(id);
|
||||
bpmService.deleteInstance(id);
|
||||
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,12 @@ package com.budwk.app.zhgh.dayofficework.evaluation.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
|
||||
public interface EvaluateService extends BaseService<EvaluateApply> {
|
||||
|
||||
|
||||
|
||||
Sql getSummarySql(EvaluatePageForm pageForm);
|
||||
}
|
||||
|
||||
+61
@@ -1,9 +1,16 @@
|
||||
package com.budwk.app.zhgh.dayofficework.evaluation.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.service.EvaluateService;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.vo.EvaluatePageForm;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
@@ -11,4 +18,58 @@ public class EvaluateServiceImpl extends BaseServiceImpl<EvaluateApply> implemen
|
||||
public EvaluateServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSummarySql(EvaluatePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
ea.name AS evaluateName,
|
||||
hb.name AS honorName,
|
||||
bs.name as honorTypeName,
|
||||
ins.id AS instanceId,
|
||||
ins.businessNo,
|
||||
ins.state instanceState,
|
||||
ins.variable instanceVariable,
|
||||
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,
|
||||
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
|
||||
(SELECT MAX(id) FROM wf_process_task WHERE processInstanceId = ins.id AND taskName = 'startTask' AND taskState IN (10, 20)) AS startTaskId
|
||||
FROM
|
||||
evaluate_apply info
|
||||
LEFT JOIN evaluate_activity ea ON ea.id = info.evaluateId
|
||||
LEFT JOIN honor_basic_settings hb ON hb.id = info.honorId
|
||||
LEFT JOIN honor_basic_settings bs ON bs.id = info.honorTypeId
|
||||
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
|
||||
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id
|
||||
AND t.taskState = 10
|
||||
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("YEAR(info.year)", "=", pageForm.getYear());
|
||||
cnd.andEX("info.evaluateId", "=", pageForm.getEvaluateId());
|
||||
cnd.and("ins.state", "=", ProcessTaskStateEnum.FINISHED.getCode());
|
||||
cnd.andEX("info.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("info.unionId", "=", pageForm.getUnionId());
|
||||
if (StrUtil.isAllNotEmpty(pageForm.getSearchName(), pageForm.getSearchKeyword())) {
|
||||
cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword());
|
||||
}
|
||||
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||
cnd.desc("t.createdAt").desc("info.applyDateTime");
|
||||
} else {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
}
|
||||
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
package com.budwk.app.zhgh.dayofficework.evaluation.vo;
|
||||
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalVo;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class EvaluateApplyPageVO extends BpmTaskApprovalVo {
|
||||
|
||||
private String id;
|
||||
|
||||
private String evaluateId;
|
||||
|
||||
private String honorId;
|
||||
|
||||
private String honorTypeId;
|
||||
|
||||
private String loginName;
|
||||
|
||||
private String userName;
|
||||
|
||||
private Integer age;
|
||||
|
||||
private String sex;
|
||||
|
||||
private String nation;
|
||||
|
||||
private String political;
|
||||
|
||||
private String education;
|
||||
|
||||
private String technicalTitle;
|
||||
|
||||
private String governmentPosition;
|
||||
|
||||
private String historyHonor;
|
||||
|
||||
private String briefDeeds;
|
||||
|
||||
private String unitName;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String unionName;
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String clubName;
|
||||
|
||||
private String clubId;
|
||||
|
||||
private Date applyDateTime;
|
||||
|
||||
private Boolean isClub;
|
||||
|
||||
private String evaluateName;
|
||||
|
||||
private String honorName;
|
||||
|
||||
private String honorTypeName;
|
||||
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.budwk.app.zhgh.dayofficework.evaluation.vo;
|
||||
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.zhgh.dayofficework.evaluation.models.EvaluateApply;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class EvaluateApplyVO extends EvaluateApply {
|
||||
|
||||
@ApiModelProperty("节点审批记录")
|
||||
private List<BpmTaskApprovalRecordVo> nodeTasks;
|
||||
|
||||
}
|
||||
+5
-3
@@ -28,6 +28,7 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -226,9 +227,10 @@ public class ExecutiveCommitteeDelegationOnePushController {
|
||||
|
||||
@At
|
||||
@SaCheckPermission("executiveCommittee.delegationOnePush")
|
||||
@SLog( tag = "执委会推选-团长推选委员", msg = "删除推选的人")
|
||||
public Result doDelete(String id) {
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, Cnd.NEW());
|
||||
@SLog(tag = "执委会推选-团长推选委员", msg = "删除推选的人")
|
||||
public Result doDelete(@Valid String id, @Valid String teacherMeetId) {
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||
if (ObjectUtil.isEmpty(config)) {
|
||||
return Result.error("请先配置基础信息");
|
||||
}
|
||||
|
||||
+7
-6
@@ -16,7 +16,6 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Strings;
|
||||
@@ -25,6 +24,7 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -146,7 +146,7 @@ public class ExecutiveCommitteeDelegationTwoPushController {
|
||||
@At
|
||||
@SaCheckPermission("executiveCommittee.delegationTwoPush")
|
||||
@ApiOperation("推选委员")
|
||||
@SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-团长二次推选", msg = "推选委员")
|
||||
@SLog(tag = "执委会推选-团长二次推选", msg = "推选委员")
|
||||
public Result addOnePush(@Param("userValue") String[] userValue,
|
||||
String teacherMeetId) {
|
||||
try {
|
||||
@@ -177,7 +177,7 @@ public class ExecutiveCommitteeDelegationTwoPushController {
|
||||
|
||||
List<Teacher_congress_delegate> dbList = dao.query(Teacher_congress_delegate.class,
|
||||
Cnd.where(Teacher_congress_delegate::getSessionId, "=", teacherMeetId)
|
||||
.andEX(Teacher_congress_delegate::getUserId, "in", userValue));
|
||||
.andEX(Teacher_congress_delegate::getUserId, "in", userValue));
|
||||
List<ExecutiveCommitteeTwoPush> list = new ArrayList<>();
|
||||
for (String id : userValue) {
|
||||
Teacher_congress_delegate jdhDb = dbList.stream().filter(v -> v.getUserId().equals(id)).findFirst().orElse(null);
|
||||
@@ -205,9 +205,10 @@ public class ExecutiveCommitteeDelegationTwoPushController {
|
||||
@At
|
||||
@ApiOperation("删除推选人员")
|
||||
@SaCheckPermission("executiveCommittee.delegationTwoPush")
|
||||
@SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-团长二次推选", msg = "删除推选人员")
|
||||
public Result doDelete( String id) {
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, Cnd.NEW());
|
||||
@SLog(tag = "执委会推选-团长二次推选", msg = "删除推选人员")
|
||||
public Result doDelete(@Valid String id, @Valid String teacherMeetId) {
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||
if (ObjectUtil.isEmpty(config)) {
|
||||
return Result.error("请先配置基础信息");
|
||||
}
|
||||
|
||||
+11
-10
@@ -27,6 +27,7 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -125,7 +126,7 @@ public class ExecutiveCommitteePushController {
|
||||
|
||||
@At
|
||||
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
||||
@SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-筹备组推选", msg = "推选委员")
|
||||
@SLog(tag = "执委会推选-筹备组推选", msg = "推选委员")
|
||||
public Result addOnePush(@Param("userValue") String[] userValue,
|
||||
String teacherMeetId) {
|
||||
try {
|
||||
@@ -150,11 +151,11 @@ public class ExecutiveCommitteePushController {
|
||||
}
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
t1.*
|
||||
FROM
|
||||
teacher_congress_delegate t1
|
||||
$condition
|
||||
SELECT
|
||||
t1.*
|
||||
FROM
|
||||
teacher_congress_delegate t1
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("t1.sessionId", "=", teacherMeetId);
|
||||
@@ -191,9 +192,10 @@ public class ExecutiveCommitteePushController {
|
||||
|
||||
@At
|
||||
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
||||
@SLog(type = "executiveCommitteePreparatoryGroupPush", tag = "执委会推选-筹备组推选", msg = "删除推选的人")
|
||||
public Result doDelete(String id) {
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class, Cnd.NEW());
|
||||
@SLog(tag = "执委会推选-筹备组推选", msg = "删除推选的人")
|
||||
public Result doDelete(@Valid String id, @Valid String teacherMeetId) {
|
||||
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||
if (ObjectUtil.isEmpty(config)) {
|
||||
return Result.error("请先配置基础信息");
|
||||
}
|
||||
@@ -217,5 +219,4 @@ public class ExecutiveCommitteePushController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+23
-21
@@ -13,17 +13,17 @@ import com.budwk.app.flow.engine.FlowEngine;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.enrollmentRegistration.model.EnrollmentRegistration;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
@@ -51,6 +51,9 @@ public class EnrollmentRegistrationApplyController {
|
||||
|
||||
@Inject
|
||||
private FlowEngine flowEngine;
|
||||
@Inject
|
||||
private FlowCommonService flowCommonService;
|
||||
|
||||
|
||||
@At("/index")
|
||||
@Ok("beetl:/platform/zhgh/enrollmentRegistration/apply/index.html")
|
||||
@@ -81,35 +84,34 @@ public class EnrollmentRegistrationApplyController {
|
||||
@At
|
||||
@SaCheckPermission("enrollmentRegistration.apply")
|
||||
@ApiOperation("保存申请")
|
||||
@SLog(type = "enrollmentRegistrationApply", tag = "子女入学管理-子女入学登记", msg = "保存子女入学登记")
|
||||
@SLog( tag = "子女入学管理-子女入学登记", msg = "保存子女入学登记")
|
||||
public Result save(@Param("data") EnrollmentRegistration enrollmentRegistration) {
|
||||
View_user user = baseService.dao().fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()));
|
||||
enrollmentRegistration.setUserId(SecurityUtil.getUserId());
|
||||
enrollmentRegistration.setLoginName(SecurityUtil.getUserLoginname());
|
||||
enrollmentRegistration.setUserName(SecurityUtil.getUserUsername());
|
||||
enrollmentRegistration.setUnitId(SecurityUtil.getUnitId());
|
||||
enrollmentRegistration.setUnitName(user.getUnitName());
|
||||
enrollmentRegistration.setUnionId(SecurityUtil.getUnionId());
|
||||
enrollmentRegistration.setUnionName(user.getUnionName());
|
||||
enrollmentRegistration.setApplyTime(DateUtil.now());
|
||||
baseService.insertOrUpdate(enrollmentRegistration);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("enrollmentRegistration.apply")
|
||||
@ApiOperation("重新提交申请")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog( tag = "子女入学管理-子女入学登记", msg = "重新提交申请")
|
||||
public Result submitAgain(@Param("data") EnrollmentRegistration enrollmentRegistration, @Param("taskId") Long taskId) {
|
||||
baseService.insertOrUpdate(enrollmentRegistration);
|
||||
|
||||
Dict dict = Dict.create();
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||
flowCommonService.executeTask(dict);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("enrollmentRegistration.apply")
|
||||
@ApiOperation("提交申请")
|
||||
@SLog(type = "enrollmentRegistrationApply", tag = "子女入学管理-子女入学登记", msg = "提交子女入学登记")
|
||||
@SLog( tag = "子女入学管理-子女入学登记", msg = "提交子女入学登记")
|
||||
public Result submit(@Param("data") EnrollmentRegistration enrollmentRegistration) {
|
||||
if (StrUtil.isBlank(enrollmentRegistration.getId())) {
|
||||
View_user user = baseService.dao().fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()));
|
||||
enrollmentRegistration.setUserId(SecurityUtil.getUserId());
|
||||
enrollmentRegistration.setLoginName(SecurityUtil.getUserLoginname());
|
||||
enrollmentRegistration.setUserName(SecurityUtil.getUserUsername());
|
||||
enrollmentRegistration.setUnitId(SecurityUtil.getUnitId());
|
||||
enrollmentRegistration.setUnitName(user.getUnitName());
|
||||
enrollmentRegistration.setUnionId(SecurityUtil.getUnionId());
|
||||
enrollmentRegistration.setUnionName(user.getUnionName());
|
||||
enrollmentRegistration.setApplyTime(DateUtil.now());
|
||||
}
|
||||
baseService.insertOrUpdate(enrollmentRegistration);
|
||||
|
||||
+13
-2
@@ -1,17 +1,21 @@
|
||||
package com.budwk.app.zhgh.enrollmentRegistration.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
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.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.enrollmentRegistration.model.EnrollmentRegistration;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
@@ -33,7 +37,6 @@ public class EnrollmentRegistrationApplyListController {
|
||||
private BaseService baseService;
|
||||
|
||||
|
||||
|
||||
@At("/index")
|
||||
@Ok("beetl:/platform/zhgh/enrollmentRegistration/applyList/index.html")
|
||||
@SaCheckPermission("enrollmentRegistration.applyList")
|
||||
@@ -81,6 +84,14 @@ public class EnrollmentRegistrationApplyListController {
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("删除子女入学信息")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("enrollmentRegistration.applyList")
|
||||
@SLog(tag = "子女入学-我的填报", msg = "删除id: ${args[0]}")
|
||||
public Result doDelete(String id) {
|
||||
baseService.dao().delete(EnrollmentRegistration.class, id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ public class EnrollmentRegistrationPlanController {
|
||||
@ApiOperation("提交登记计划")
|
||||
@SaCheckPermission("enrollmentRegistration.plan")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(type = "outlayReimburseApply", tag = "子女入学管理-登记计划", msg = "提交登记计划")
|
||||
@SLog( tag = "子女入学管理-登记计划", msg = "提交登记计划")
|
||||
public Result onSubmit(@Param("data") EnrollmentRegistrationPlan enrollmentRegistrationPlan) {
|
||||
baseService.insertOrUpdate(enrollmentRegistrationPlan);
|
||||
|
||||
|
||||
+10
@@ -34,6 +34,11 @@ public class EnrollmentRegistration extends BaseModel implements Serializable {
|
||||
@Comment("登记类型(字典)")
|
||||
private String registrationType;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR,width = 32)
|
||||
@Comment("登记类型计划Id")
|
||||
private String registrationTypeId;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR,width = 30)
|
||||
@Comment("监护人(教工)姓名")
|
||||
@@ -84,6 +89,11 @@ public class EnrollmentRegistration extends BaseModel implements Serializable {
|
||||
@Comment("子女姓名")
|
||||
private String childrenName;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR,width = 30)
|
||||
@Comment("出身年月")
|
||||
private String childrenBirthday;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR,width = 30)
|
||||
@Comment("性别")
|
||||
|
||||
+24
-7
@@ -3,11 +3,15 @@ package com.budwk.app.zhgh.outlay.activityBudget.conteoller;
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.flow.constant.FlowConst;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
@@ -15,15 +19,12 @@ import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.club.model.SysClub;
|
||||
import com.budwk.app.zhgh.club.service.SysClubService;
|
||||
import com.budwk.app.zhgh.democratic.suggestionBox.models.SuggestionBox;
|
||||
import com.budwk.app.zhgh.integral.controller.IntegralManageController;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.service.ActivityBudgetService;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.template.ActivityBudgetTemp;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
@@ -38,8 +39,6 @@ import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -64,6 +63,9 @@ public class ActivityBudgetApplyController {
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
@Inject
|
||||
private FlowCommonService flowCommonService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/outlay/activityBudget/apply/index.html")
|
||||
@@ -77,17 +79,32 @@ public class ActivityBudgetApplyController {
|
||||
@ApiOperation("提交年度预算申报")
|
||||
@SaCheckPermission("activity.budget.apply")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(type = "activityBudgetApply", tag = "年度预算申报-预算申报", msg = "提交年度预算申报")
|
||||
@SLog( tag = "年度预算申报-预算申报", msg = "提交年度预算申报")
|
||||
public Result submit(@Param("data") ActivityBudget activityBudget) {
|
||||
activityBudget.setApplyDate(DateUtil.now());
|
||||
return activityBudgetService.submit(activityBudget);
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("activity.budget.apply")
|
||||
@ApiOperation("重新提交申请")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog( tag = "年度预算申报-预算申报", msg = "重新提交申请")
|
||||
public Result submitAgain(@Param("data") ActivityBudget activityBudget, @Param("taskId") Long taskId) {
|
||||
activityBudgetService.insertOrUpdate(activityBudget);
|
||||
|
||||
Dict dict = Dict.create();
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||
flowCommonService.executeTask(dict);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("activity.budget.apply")
|
||||
@ApiOperation("保存申请")
|
||||
@SLog(type = "activityBudgetApply", tag = "年度预算申报-预算申报", msg = "保存年度预算申报")
|
||||
@SLog( tag = "年度预算申报-预算申报", msg = "保存年度预算申报")
|
||||
public Result save(@Param("data") ActivityBudget activityBudget) {
|
||||
activityBudget.setUserId(SecurityUtil.getUserId());
|
||||
activityBudget.setLoginName(SecurityUtil.getUserLoginname());
|
||||
|
||||
+3
-24
@@ -8,20 +8,15 @@ import com.budwk.app.base.annotation.SLog;
|
||||
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.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudgetDetails;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.service.ActivityBudgetService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.checkerframework.checker.units.qual.C;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
@@ -58,11 +53,6 @@ public class ActivityBudgetApplyListController {
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At("/view")
|
||||
@Ok("beetl:/platform/zhgh/outlay/activityBudget/view/index.html")
|
||||
@SaCheckPermission("activity.budget.applyList")
|
||||
public void view() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@@ -78,17 +68,11 @@ public class ActivityBudgetApplyListController {
|
||||
@ApiOperation("批量删除申报数据")
|
||||
@SaCheckPermission("activity.budget.applyList")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(type = "activityBudgetApplyList", tag = "年度预算申报-我的申报", msg = "删除了${ids.length}条数据,${ids}")
|
||||
@SLog( tag = "年度预算申报-我的申报", msg = "删除了${ids.length}条数据,${ids}")
|
||||
public Result batchDelete(@Param("ids[]") @Valid String[] ids) {
|
||||
if (ObjectUtil.isNotEmpty(ids)) {
|
||||
activityBudgetService.clear(Cnd.where("id", "in", ids));
|
||||
activityBudgetService.dao().clear(ActivityBudgetDetails.class, Cnd.where("budgetId", "in", ids));
|
||||
List<ProcessInstance> instanceList = activityBudgetService.dao().query(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "in", ids));
|
||||
if (ObjectUtil.isNotEmpty(instanceList)) {
|
||||
List<Long> instanceIds = instanceList.stream().map(ProcessInstance::getId).toList();
|
||||
activityBudgetService.dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "in", instanceIds));
|
||||
activityBudgetService.dao().clear(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "in", ids));
|
||||
}
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
@@ -97,22 +81,17 @@ public class ActivityBudgetApplyListController {
|
||||
@ApiOperation("删除一条申报数据")
|
||||
@SaCheckPermission("activity.budget.applyList")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(type = "activityBudgetApplyList", tag = "年度预算申报-我的申报", msg = "删除了一条条数据,${id}")
|
||||
@SLog( tag = "年度预算申报-我的申报", msg = "删除了一条条数据,${id}")
|
||||
public Result doDelete(String id) {
|
||||
activityBudgetService.dao().delete(ActivityBudget.class, id);
|
||||
activityBudgetService.dao().clear(ActivityBudgetDetails.class, Cnd.where("budgetId", "=", id));
|
||||
ProcessInstance instance = activityBudgetService.dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id));
|
||||
if (ObjectUtil.isNotEmpty(instance)) {
|
||||
activityBudgetService.dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", instance.getId()));
|
||||
activityBudgetService.dao().delete(ProcessInstance.class, instance.getId());
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("提交申报数据")
|
||||
@SaCheckPermission("activity.budget.applyList")
|
||||
@SLog(type = "activityBudgetApplyList", tag = "年度预算申报-我的申报", msg = "提交了${ids.length}条数据,${ids}")
|
||||
@SLog( tag = "年度预算申报-我的申报", msg = "提交了${ids.length}条数据,${ids}")
|
||||
public Result batchSubmit(@Valid @Param("ids[]") String[] ids) {
|
||||
List<ActivityBudget> budgetList = activityBudgetService.query(Cnd.where("id", "in", ids));
|
||||
List<ActivityBudget> budgets = budgetList.stream().filter(a ->
|
||||
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
package com.budwk.app.zhgh.outlay.outlayManage.club.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
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.flow.enums.ProcessInstanceStateEnum;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.club.model.SysClub;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.club.model.OutlayManageClub;
|
||||
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.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/28 11:36
|
||||
* @description
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/outlay/outlayManage/clubManage")
|
||||
@Ok("json:full")
|
||||
@Slf4j
|
||||
@Api(tags = "分工会经费预算管理")
|
||||
public class OutlayManageClubController {
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/outlay/outlayManage/club/manage/index.html")
|
||||
@SaCheckPermission("outlay.outlayManage.club.manage")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("outlay.outlayManage.club.manage")
|
||||
public Result pageData(PageForm pageForm, Integer year) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT * FROM `outlay_manage_club` $condition
|
||||
""");
|
||||
cnd.andEX("year", "=", year);
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
Sys_role sysRole = sysRoleService.getByCode(RoleConstant.CLUB_PRESIDENT);
|
||||
List<Sys_user_role> userRoles = baseService.dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("roleId", "=", sysRole.getId()));
|
||||
List<String> myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList();
|
||||
cnd.andEX("clubId", "in", myClubId);
|
||||
}
|
||||
cnd.asc("clubCode");
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("修改预算")
|
||||
@SaCheckPermission("outlay.outlayManage.club.manage")
|
||||
@SLog(tag = "分工会预算分配", msg = "修改了预算分配的金额:${args[0]},id:${args[1]}")
|
||||
public Result doSubmit(String totalQuota, String id) {
|
||||
OutlayManageClub outlayManageClub = baseService.dao().fetch(OutlayManageClub.class, id);
|
||||
outlayManageClub.setTotalQuota(new BigDecimal(totalQuota));
|
||||
baseService.updateIgnoreNull(outlayManageClub);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("查看是否分配")
|
||||
@SaCheckPermission("outlay.outlayManage.club.manage")
|
||||
public Result getIsAllocationOutlay(Integer year) {
|
||||
int count = baseService.dao().count(OutlayManageClub.class, Cnd.where("year", "=", year));
|
||||
return Result.success(count);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("重置预算")
|
||||
@SaCheckPermission("outlay.outlayManage.club.manage")
|
||||
@SLog(tag = "协会预算分配", msg = "重置了预算分配的金额:${args[0]}")
|
||||
public Result resetOutlay(Integer year) {
|
||||
int count = baseService.dao().clear(OutlayManageClub.class, Cnd.where("year", "=", year));
|
||||
return Result.success(count);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("下发预算")
|
||||
@SaCheckPermission("outlay.outlayManage.club.manage")
|
||||
@SLog(tag = "协会预算分配", msg = "根据申报的金额修改本年的预算预算")
|
||||
public Result issuedOutlay() {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
ab.clubId,
|
||||
ab.totalBudgetMoney
|
||||
FROM
|
||||
activity_budget ab
|
||||
LEFT JOIN wf_process_instance wpi ON wpi.businessNo = ab.id
|
||||
WHERE
|
||||
YEAR(ab.applyDate) = @year
|
||||
AND ab.outlayManageSource = 'ACTIVITY_BUDGET_TYPE_THREE'
|
||||
AND ab.isSchoolBudget =0
|
||||
AND wpi.state = 20
|
||||
""").setParam("year", DateUtil.thisYear());
|
||||
List<NutMap> budgetList = baseService.listMap(sql);
|
||||
|
||||
Sql sqlClub = Sqls.create("""
|
||||
SELECT
|
||||
c.*
|
||||
FROM
|
||||
`sys_club` c
|
||||
LEFT JOIN wf_process_instance inst ON inst.businessNo = c.id
|
||||
WHERE
|
||||
inst.state = @state
|
||||
""").setParam("state", ProcessInstanceStateEnum.FINISHED.getCode());
|
||||
List<SysClub> clubList = baseService.listVO(sqlClub, SysClub.class);
|
||||
|
||||
|
||||
List<OutlayManageClub> insertUnionList = new ArrayList<>();
|
||||
clubList.forEach(v -> {
|
||||
BigDecimal totalBudgetMoney = budgetList.stream()
|
||||
.filter(budget -> budget.getString("clubId").equals(v.getId()))
|
||||
.map(budget -> new BigDecimal(budget.getString("totalBudgetMoney"))) // 提取 money 属性
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
OutlayManageClub outlayManageClub = new OutlayManageClub();
|
||||
outlayManageClub.setYear(DateUtil.thisYear());
|
||||
outlayManageClub.setClubName(v.getClubName());
|
||||
outlayManageClub.setClubCode(v.getClubCode());
|
||||
outlayManageClub.setClubId(v.getId());
|
||||
outlayManageClub.setTotalQuota(totalBudgetMoney);
|
||||
insertUnionList.add(outlayManageClub);
|
||||
});
|
||||
baseService.insert(insertUnionList);
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
package com.budwk.app.zhgh.outlay.outlayManage.club.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
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.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.model.OutlayUseDetail;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.service.OutlayUseDetailService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/28 13:56
|
||||
* @description
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/outlay/outlayManage/clubUseDetail")
|
||||
@Ok("json:full")
|
||||
@Slf4j
|
||||
@Api(tags = "协会预算使用明细")
|
||||
public class OutlayManageClubUseDetailController {
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
@Inject
|
||||
private OutlayUseDetailService outlayUseDetailService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/outlay/outlayManage/club/useDetail/index.html")
|
||||
@SaCheckPermission("outlay.outlayManage.club.useDetail")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("outlay.outlayManage.club.useDetail")
|
||||
public Result pageData(PageForm pageForm,
|
||||
Integer year,
|
||||
String clubId) {
|
||||
Sql sql = Sqls.create("""
|
||||
select * from outlay_manage_club $condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("totalQuota", "IS NOT", null);
|
||||
cnd.and("year", "=", year);
|
||||
|
||||
if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.andEX("clubId", "=", clubId);
|
||||
} else {
|
||||
Sys_role sysRole = sysRoleService.getByCode(RoleConstant.CLUB_PRESIDENT);
|
||||
List<Sys_user_role> userRoles = baseService.dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("roleId", "=", sysRole.getId()));
|
||||
List<String> myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList();
|
||||
cnd.andEX("clubId", "in", myClubId);
|
||||
}
|
||||
|
||||
if (Strings.isNotBlank(pageForm.getPageOrderBy()) && Strings.isNotBlank(pageForm.getPageOrderName())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
} else {
|
||||
cnd.asc("clubCode");
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("某个协会预算使用详情")
|
||||
@SaCheckPermission("outlay.outlayManage.club.useDetail")
|
||||
public Result detailInfo(PageForm pageForm, String outlayManageId) {
|
||||
Sql sql = Sqls.create("""
|
||||
select * from outlay_use_detail where outlayManageId=@outlayManageId
|
||||
""").setParam("outlayManageId", outlayManageId);
|
||||
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("删除协会预算详情")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("outlay.outlayManage.club.useDetail")
|
||||
@SLog(tag = "协会预算使用详情", msg = "删除了协会预算使用详情:${args[0]}")
|
||||
public Result doDeleteDetail(String id) {
|
||||
outlayUseDetailService.doDeleteDetail(id,"club");
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("编辑协会预算详情")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("outlay.outlayManage.club.useDetail")
|
||||
@SLog(tag = "协会预算使用详情", msg = "编辑了协会预算使用详情:${args[0]}")
|
||||
public Result doEditDetail(OutlayUseDetail outlayUseDetail) {
|
||||
outlayUseDetailService.doEditDetail(outlayUseDetail,"club");
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.budwk.app.zhgh.outlay.outlayManage.club.model;
|
||||
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2025/8/28 11:34
|
||||
* @description
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("outlay_manage_club")
|
||||
@TableMeta("{'mysql-charset':'utf8mb4'}")
|
||||
@Comment("协会经费管理")
|
||||
public class OutlayManageClub extends BaseModel implements Serializable {
|
||||
|
||||
@Column
|
||||
@Name
|
||||
@Comment("id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Prev(els = {@EL("uuid()")})
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("年份")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer year;
|
||||
|
||||
@Column
|
||||
@Comment("总额度")
|
||||
@Default("0")
|
||||
@ColDefine(customType = "decimal(10,2)")
|
||||
private BigDecimal totalQuota;
|
||||
|
||||
@Column
|
||||
@Comment("已使用额度")
|
||||
@Default("0")
|
||||
@ColDefine(customType = "decimal(10,2)")
|
||||
private BigDecimal usedQuota;
|
||||
|
||||
@Column
|
||||
@Comment("协会ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String clubId;
|
||||
|
||||
@Column
|
||||
@Comment("协会名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String clubName;
|
||||
|
||||
@Column
|
||||
@Comment("协会code")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String clubCode;
|
||||
|
||||
}
|
||||
+22
-24
@@ -12,15 +12,13 @@ import com.budwk.app.flow.engine.FlowEngine;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget;
|
||||
import com.budwk.app.zhgh.outlay.outlayReimburse.model.OutlayReimburse;
|
||||
import com.budwk.app.zhgh.outlay.outlayReimburse.service.OutlayReimburseApplyService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
@@ -29,7 +27,6 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -53,6 +50,9 @@ public class OutlayReimburseApplyController {
|
||||
@Inject
|
||||
private FlowEngine flowEngine;
|
||||
|
||||
@Inject
|
||||
private FlowCommonService flowCommonService;
|
||||
|
||||
@At("/index")
|
||||
@Ok("beetl:/platform/zhgh/outlay/outlayReimburse/apply/index.html")
|
||||
@SaCheckPermission("outlay.reimburse.apply")
|
||||
@@ -85,20 +85,11 @@ public class OutlayReimburseApplyController {
|
||||
|
||||
@At
|
||||
@ApiOperation("提交报销申请")
|
||||
@SaCheckPermission("activity.budget.apply")
|
||||
@SaCheckPermission("activity.reimburse.apply")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(type = "outlayReimburseApply", tag = "费用报销管理-报销申请", msg = "提交年度预算申报")
|
||||
@SLog( tag = "费用报销管理-报销申请", msg = "提交年度预算申报")
|
||||
public Result submit(@Param("data") OutlayReimburse outlayReimburse) {
|
||||
//添加预算详情表
|
||||
if (StrUtil.isBlank(outlayReimburse.getId())){
|
||||
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()));
|
||||
outlayReimburse.setUserId(SecurityUtil.getUserId());
|
||||
outlayReimburse.setUserName(SecurityUtil.getUserUsername());
|
||||
outlayReimburse.setLoginName(SecurityUtil.getUserLoginname());
|
||||
outlayReimburse.setUnitId(SecurityUtil.getUnitId());
|
||||
outlayReimburse.setUnitName(user.getUnitName());
|
||||
outlayReimburse.setUnionId(SecurityUtil.getUnionId());
|
||||
outlayReimburse.setUnionName(user.getUnionName());
|
||||
outlayReimburse.setApplyTime(DateUtil.now());
|
||||
}
|
||||
outlayReimburseApplyService.insertOrUpdate(outlayReimburse);
|
||||
@@ -117,20 +108,27 @@ public class OutlayReimburseApplyController {
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("activity.reimburse.apply")
|
||||
@ApiOperation("重新提交申请")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog( tag = "费用报销管理-报销申请", msg = "重新提交申请")
|
||||
public Result submitAgain(@Param("data") OutlayReimburse outlayReimburse, @Param("taskId") Long taskId) {
|
||||
outlayReimburseApplyService.insertOrUpdate(outlayReimburse);
|
||||
|
||||
Dict dict = Dict.create();
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||
flowCommonService.executeTask(dict);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("outlay.reimburse.apply")
|
||||
@ApiOperation("保存申请")
|
||||
@SLog(type = "outlayReimburseApply", tag = "费用报销管理-报销申请", msg = "保存年度预算申报")
|
||||
@SLog( tag = "费用报销管理-报销申请", msg = "保存年度预算申报")
|
||||
public Result save(@Param("data") OutlayReimburse outlayReimburse) {
|
||||
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()));
|
||||
outlayReimburse.setUserId(SecurityUtil.getUserId());
|
||||
outlayReimburse.setUserName(SecurityUtil.getUserUsername());
|
||||
outlayReimburse.setLoginName(SecurityUtil.getUserLoginname());
|
||||
outlayReimburse.setUnitId(SecurityUtil.getUnitId());
|
||||
outlayReimburse.setUnitName(user.getUnitName());
|
||||
outlayReimburse.setUnionId(SecurityUtil.getUnionId());
|
||||
outlayReimburse.setUnionName(user.getUnionName());
|
||||
outlayReimburse.setApplyTime(DateUtil.now());
|
||||
outlayReimburseApplyService.insertOrUpdate(outlayReimburse);
|
||||
return Result.success();
|
||||
|
||||
+118
@@ -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/clubAudit")
|
||||
public class OutlayReimburseClubAuditController {
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
@Inject
|
||||
private SysDictService sysDictService;
|
||||
|
||||
@At("/index")
|
||||
@Ok("beetl:/platform/zhgh/outlay/outlayReimburse/clubAudit/index.html")
|
||||
@SaCheckPermission("outlay.reimburse.clubAudit")
|
||||
public void index() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分页查询")
|
||||
@SaCheckPermission("outlay.reimburse.clubAudit")
|
||||
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", "=", "68a9af7f-f532-4866-aa09-24f0f802389f");
|
||||
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<NutMap> pageVO = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pageVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
-1
@@ -54,7 +54,6 @@ public class OutlayReimburseUnionAuditController {
|
||||
@SaCheckPermission("outlay.reimburse.unionAudit")
|
||||
public Result pageData(PageForm pageForm,
|
||||
Integer year,
|
||||
String clubId,
|
||||
Boolean approval,
|
||||
String outlayManageSource) {
|
||||
Sql sql = Sqls.create("""
|
||||
|
||||
+18
@@ -10,6 +10,7 @@ import com.budwk.app.flow.engine.core.Execution;
|
||||
import com.budwk.app.flow.engine.core.ServiceContext;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.club.model.OutlayManageClub;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.model.OutlayUseDetail;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.school.model.OutlayManageSchool;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.union.model.OutlayManageUnion;
|
||||
@@ -88,6 +89,23 @@ public class OutlayReimburseSchoolZxAuditPostInterceptor implements FlowIntercep
|
||||
detail.setOutlayManageId(manageUnion.getId());
|
||||
dao.insert(detail);
|
||||
}
|
||||
}else if (outlayReimburse.getOutlayManageSource().equals("ACTIVITY_BUDGET_TYPE_THREE")){
|
||||
// 更新分工会活动经费表
|
||||
OutlayManageClub manageClub = dao.fetch(OutlayManageClub.class,
|
||||
Cnd.where("year", "=", DateUtil.thisYear())
|
||||
.and("clubId", "=", outlayReimburse.getClubId()));
|
||||
if (ObjectUtil.isEmpty(manageClub)) {
|
||||
throw new BaseException("该年份没有设置金额!");
|
||||
}
|
||||
if (manageClub.getTotalQuota().subtract(manageClub.getUsedQuota()).compareTo(outlayReimburse.getMoney()) < 0) {
|
||||
throw new BaseException("剩余配额不足!剩余:" + manageClub.getTotalQuota().subtract(manageClub.getUsedQuota()));
|
||||
}
|
||||
manageClub.setUsedQuota(manageClub.getUsedQuota().add(outlayReimburse.getMoney()));
|
||||
dao.updateIgnoreNull(manageClub);
|
||||
|
||||
//添加使用记录到经费管理表
|
||||
detail.setOutlayManageId(manageClub.getId());
|
||||
dao.insert(detail);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -74,6 +74,11 @@ public class OutlayReimburse extends BaseModel implements Serializable {
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String clubId;
|
||||
|
||||
@Column
|
||||
@Comment("社团名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String clubName;
|
||||
|
||||
@Column
|
||||
@Comment("报销经费来源")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
|
||||
+35
-11
@@ -3,10 +3,15 @@ package com.budwk.app.zhgh.outlay.outlayReimburse.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.outlay.activityBudget.models.ActivityBudget;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.club.model.OutlayManageClub;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.school.model.OutlayManageSchool;
|
||||
import com.budwk.app.zhgh.outlay.outlayManage.union.model.OutlayManageUnion;
|
||||
import com.budwk.app.zhgh.outlay.outlayReimburse.model.OutlayReimburse;
|
||||
@@ -15,6 +20,7 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
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;
|
||||
|
||||
@@ -33,6 +39,9 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
@Override
|
||||
public NutMap getBudgetMoneyOrActivity(String outlayManageSource, String clubId, String unionId, String id) {
|
||||
|
||||
@@ -114,14 +123,20 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
.and("unionId", "=", StrUtil.isNotBlank(unionId) ? unionId : SecurityUtil.getUnionId()));
|
||||
map.put("budgetMoney", ObjectUtil.isNotEmpty(union) ? union.getTotalQuota().subtract(union.getUsedQuota()) : 0);
|
||||
} else if (outlayManageSource.equals("ACTIVITY_BUDGET_TYPE_THREE")) {
|
||||
Sys_role sysRole = sysRoleService.getByCode(RoleConstant.CLUB_PRESIDENT);
|
||||
List<Sys_user_role> userRoles = dao().query(Sys_user_role.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("roleId", "=", sysRole.getId()));
|
||||
List<String> myClubId = userRoles.stream().map(Sys_user_role::getClubId).toList();
|
||||
|
||||
OutlayManageClub club = dao().fetch(OutlayManageClub.class, Cnd.where("year", "=", DateUtil.thisYear())
|
||||
.and("clubId", "in", StrUtil.isNotBlank(clubId) ? List.of(clubId) : myClubId));
|
||||
map.put("budgetMoney", ObjectUtil.isNotEmpty(club) ? club.getTotalQuota().subtract(club.getUsedQuota()) : 0);
|
||||
}
|
||||
map.put("activityList", canBudgetList);
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getBxMoneyByActivityId(String budgetId,Boolean isSchoolBudget) {
|
||||
public BigDecimal getBxMoneyByActivityId(String budgetId, Boolean isSchoolBudget) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
rei.money
|
||||
@@ -133,9 +148,9 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
AND ins.state = 20
|
||||
""").setParam("budgetId", budgetId);
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (isSchoolBudget!=null){
|
||||
cnd.and("isSchoolBudget", "=", isSchoolBudget);
|
||||
}
|
||||
if (isSchoolBudget != null) {
|
||||
cnd.and("isSchoolBudget", "=", isSchoolBudget);
|
||||
}
|
||||
|
||||
List<NutMap> reiList = listMap(sql);
|
||||
|
||||
@@ -159,7 +174,7 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
if (budget.getIsRepeatReimburse()) {
|
||||
//1.查询已经报销了的总金额
|
||||
if (budget.getIsSchoolBudget()) {
|
||||
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId,budget.getIsSchoolBudget());
|
||||
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId, budget.getIsSchoolBudget());
|
||||
//如果是分工会进来并且报销的活动是校会预算
|
||||
// 1. 计算本次加上之前的报销总金额
|
||||
BigDecimal totalReimbursement = bXMoney.add(moneyBig);
|
||||
@@ -170,7 +185,7 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
return Result.success();
|
||||
}
|
||||
} else {
|
||||
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId,budget.getIsSchoolBudget());
|
||||
BigDecimal bXMoney = getBxMoneyByActivityId(budgetId, budget.getIsSchoolBudget());
|
||||
//如果是自己的项目就能超20%
|
||||
//1.算出现在还能报销多少钱
|
||||
BigDecimal twentyPercent = budget.getTotalBudgetMoney().multiply(new BigDecimal("20")).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
|
||||
@@ -203,7 +218,7 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
//如果报销的项目是可以重复报销的
|
||||
if (budget.getIsRepeatReimburse()) {
|
||||
//这个预算已经报销了多少钱
|
||||
BigDecimal totalMoney = getBxMoneyByActivityId(budgetId,null);
|
||||
BigDecimal totalMoney = getBxMoneyByActivityId(budgetId, null);
|
||||
//查出这个活动有没有跟其他预算关联,如果跟其他预算关联了,代表当前这条预算是分工会也能报校工会也能报,
|
||||
// schoolBudgetId字段不为空就代表这条预算是使用的校工会的金额
|
||||
List<ActivityBudget> budgetList = dao().query(ActivityBudget.class,
|
||||
@@ -257,18 +272,27 @@ public class OutlayReimburseApplyServiceImpl extends BaseServiceImpl<OutlayReimb
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}else if ("ACTIVITY_BUDGET_TYPE_THREE".equals(outlayManageSource)) {
|
||||
//如果进来的是协会
|
||||
OutlayManageClub outlayManageClub = dao().fetch(OutlayManageClub.class, Cnd.where("year", "=", DateUtil.thisYear())
|
||||
.and("clubId", "=", clubId));
|
||||
if (ObjectUtil.isEmpty(outlayManageClub)) {
|
||||
return Result.error("该年份没有设置金额!");
|
||||
}
|
||||
if (outlayManageClub.getTotalQuota().subtract(outlayManageClub.getUsedQuota()).compareTo(moneyBig) < 0) {
|
||||
return Result.error("剩余配额不足!剩余:" + outlayManageClub.getTotalQuota().subtract(outlayManageClub.getUsedQuota()));
|
||||
} else {
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
return Result.error("经费查询错误!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public NutMap findOne(String id) {
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user