Merge remote-tracking branch 'origin/main'

This commit is contained in:
Paidax
2025-10-17 14:38:03 +08:00
9 changed files with 1123 additions and 5 deletions
@@ -0,0 +1,136 @@
package com.budwk.app.zhgh.dayofficework.fund.dashboard;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.date.DateUtil;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.zhgh.dayofficework.fund.member.service.FundMemberService;
import com.budwk.app.zhgh.dayofficework.fund.subsidy.models.FundSubsidy;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import java.util.HashMap;
import java.util.List;
@IocBean
@At("/platform/fund/dashBoard")
@Ok("json:full")
@Slf4j
public class FundDashBoardController {
@Inject
private Dao dao;
@Inject
private FundMemberService fundMemberService;
@At("")
@Ok("beetl:/platform/zhgh/dayofficework/fund/dashboard/index.html")
@SaCheckPermission("fund.dashBoard")
public void index() {
}
@At
@SaCheckPermission("fund.dashBoard")
@ApiOperation("统计数量")
public Result statCount() {
// 基金会员总数
int count = dao.count(Sys_user.class, Cnd.where(Sys_user::getAidFundMember, "=", 1));
// 本年新增基金会员数
Sql sql = Sqls.create("""
SELECT
count(1)
FROM
fund_member_change_record r
LEFT JOIN sys_user u ON u.loginname = r.loginName
WHERE
r.isJoin = 1
AND YEAR(r.changeTime) = @year
AND u.aidFundMember = 1
""");
sql.params().set("year", DateUtil.thisYear());
sql.setCallback(Sqls.callback.integer());
dao.execute(sql);
int newCount = sql.getInt();
// 医疗补助数
int subsidyCount = dao.count(FundSubsidy.class, Cnd.NEW());
// 总补助金额
int totalSubsidyCost = dao.func(FundSubsidy.class, "sum", "subsidyCost");
HashMap<String, Object> map = new HashMap<>();
map.put("count", count);
map.put("newCount", newCount);
map.put("subsidyCount", subsidyCount);
map.put("totalSubsidyCost", totalSubsidyCost);
return Result.success(map);
}
@At
@SaCheckPermission("fund.dashBoard")
@ApiOperation("各分工会基金会员数")
public Result statUnionCount() {
Sql sql = Sqls.create("""
SELECT
gh.id,
gh.`name`,
COUNT(vu.id) AS count
FROM
sys_union gh
LEFT JOIN
vw_user vu ON vu.unionId = gh.id AND vu.aidFundMember = 1
GROUP BY
gh.id, gh.`name`
ORDER BY
gh.unionCode ASC;
""");
sql.setCallback(Sqls.callback.maps());
dao.execute(sql);
return Result.success(sql.getList(HashMap.class));
}
@At
@SaCheckPermission("fund.dashBoard")
@ApiOperation("各在职状态基金会员数")
public Result userStateCount(){
Sql sql = Sqls.create("""
SELECT
COUNT(CASE WHEN userState != '退休' THEN 1 END) AS onDutyCount,
COUNT(CASE WHEN userState = '退休' THEN 1 END) AS retireCount
FROM
sys_user
WHERE
aidFundMember = 1;
""");
return Result.success(fundMemberService.listMap(sql));
}
@At
@SaCheckPermission("fund.dashBoard")
@ApiOperation("各人员类型基金会员数")
public Result personTypeCount(){
Sql sql = Sqls.create("""
SELECT
personType,
COUNT(*) AS userCount
FROM
sys_user
WHERE
aidFundMember = 1
GROUP BY
personType;
""");
return Result.success(fundMemberService.listMap(sql));
}
}
@@ -1,7 +1,9 @@
package com.budwk.app.zhgh.dayofficework.fund.subsidy.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
@@ -19,4 +21,12 @@ public class FundSubsidyAnalysisController {
}
@At
@SaCheckPermission("fundSubsidy.analysis")
@ApiOperation("年度补助人数")
public Result yearSubsidyCount() {
return Result.success();
}
}
@@ -52,7 +52,7 @@ public class TeacherCongressSessionController {
public Result pageData(PageForm pageForm, String j, String c, Integer year) {
Sql sql = Sqls.create("select * from teacher_congress_session $condition");
Cnd cnd = Cnd.NEW();
cnd.andEX("YEAR(startDate)", "=", year);
cnd.andEX("year", "=", year);
cnd.andEX("j", "=", j);
cnd.andEX("c", "=", c);
cnd.desc("startDate");