From cc80b1e28d12c97ad27b6ed115c8b8a397b615c9 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Mon, 22 Dec 2025 17:56:05 +0800 Subject: [PATCH 1/2] commit --- .../ActivityReimbursementBoardController.java | 48 +- ...mbursementDeputySchoolUnionController.java | 2 +- .../ActivityReimbursementServiceImpl.java | 8 +- .../caredata/StaffCareDataCon.java | 207 +++++++ .../caredata/UnionCareDataCon.java | 182 +++++++ src/main/resources/static/none.png | Bin 0 -> 17010 bytes .../reimbursement/board/index.html | 18 +- .../dayofficework/careData/staff/index.html | 509 ++++++++++++++++++ .../careData/unionCare/index.html | 462 ++++++++++++++++ 9 files changed, 1398 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/budwk/app/zhgh/dayofficework/caredata/StaffCareDataCon.java create mode 100644 src/main/java/com/budwk/app/zhgh/dayofficework/caredata/UnionCareDataCon.java create mode 100644 src/main/resources/static/none.png create mode 100644 src/main/resources/views/platform/zhgh/dayofficework/careData/staff/index.html create mode 100644 src/main/resources/views/platform/zhgh/dayofficework/careData/unionCare/index.html diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementBoardController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementBoardController.java index 5ea50cb..678edb7 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementBoardController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementBoardController.java @@ -51,13 +51,13 @@ public class ActivityReimbursementBoardController { @ApiOperation("获取参与人数和活动报销经费数据") @SaCheckPermission("activityReimbursement.board") public Result getNumData(Integer startYear, Integer endYear){ - Sql schoolSignNum = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, false).setParam("type", ActivityDeclareReimbursement.SCHOOL_UNION.name()); - Sql unionSignNum = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, false).setParam("type", ActivityDeclareReimbursement.BRANCH_UNION.name()); - Sql clubSignNum = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, false).setParam("type", ActivityDeclareReimbursement.CLUB.name()); + Sql schoolSignNum = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, false).setParam("type", "ACTIVITY_BUDGET_TYPE_ONE"); + Sql unionSignNum = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, false).setParam("type", "ACTIVITY_BUDGET_TYPE_TWO"); + Sql clubSignNum = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, false).setParam("type", "ACTIVITY_BUDGET_TYPE_THREE"); - Sql schoolActivityMoney = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", ActivityDeclareReimbursement.SCHOOL_UNION.name()); - Sql unionActivityMoney = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", ActivityDeclareReimbursement.BRANCH_UNION.name()); - Sql clubActivityMoney = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", ActivityDeclareReimbursement.CLUB.name()); + Sql schoolActivityMoney = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", "ACTIVITY_BUDGET_TYPE_ONE"); + Sql unionActivityMoney = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", "ACTIVITY_BUDGET_TYPE_TWO"); + Sql clubActivityMoney = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", "ACTIVITY_BUDGET_TYPE_THREE"); HashMap result = new HashMap() {{ put("schoolSignNum", activityReimbursementService.listMap(schoolSignNum).stream().mapToInt(v->v.getInt("activityNum")).sum()); put("unionSignNum", activityReimbursementService.listMap(unionSignNum).stream().mapToInt(v->v.getInt("activityNum")).sum()); @@ -82,8 +82,8 @@ public class ActivityReimbursementBoardController { activity_reimbursement_info info LEFT JOIN wf_process_instance ins ON info.id = ins.businessNo WHERE - ins.state = 30 - AND info.activityType = @type + ins.state = 20 + AND info.outlayManageSource = @type AND info.`year` = @year """); @@ -99,19 +99,19 @@ public class ActivityReimbursementBoardController { list.add(new NutMap() {{ put("year", year); put("type", "校工会活动"); - put("num", activityReimbursementService.count(sql.setParam("type", ActivityDeclareReimbursement.SCHOOL_UNION.name()).setParam("year", year))); + put("num", activityReimbursementService.count(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_ONE").setParam("year", year))); }}); list.add(new NutMap() {{ put("year", year); put("type", "分工会活动"); - put("num", activityReimbursementService.count(sql.setParam("type", ActivityDeclareReimbursement.BRANCH_UNION.name()).setParam("year", year))); + put("num", activityReimbursementService.count(sql.setParam("type","ACTIVITY_BUDGET_TYPE_TWO").setParam("year", year))); }}); list.add(new NutMap() {{ put("year", year); put("type", "社团活动"); - put("num", activityReimbursementService.count(sql.setParam("type", ActivityDeclareReimbursement.CLUB.name()).setParam("year", year))); + put("num", activityReimbursementService.count(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_THREE").setParam("year", year))); }}); } return Result.success().addData(list); @@ -129,8 +129,8 @@ public class ActivityReimbursementBoardController { activity_reimbursement_info info LEFT JOIN wf_process_instance ins ON info.id = ins.businessNo WHERE - ins.state = 30 - AND activityType = @type + ins.state = 20 + AND outlayManageSource = @type AND `year` <= @startYear AND `year` >= @endYear """).setParam("startYear", startYear).setParam("endYear", endYear); @@ -138,15 +138,15 @@ public class ActivityReimbursementBoardController { List list = new ArrayList<>(); list.add(new NutMap() {{ put("type", "校工会活动"); - put("num", activityReimbursementService.count(sql.setParam("type", ActivityDeclareReimbursement.SCHOOL_UNION.name()))); + put("num", activityReimbursementService.count(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_ONE"))); }}); list.add(new NutMap() {{ put("type", "分工会活动"); - put("num", activityReimbursementService.count(sql.setParam("type", ActivityDeclareReimbursement.BRANCH_UNION.name()))); + put("num", activityReimbursementService.count(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_TWO"))); }}); list.add(new NutMap() {{ put("type", "社团活动"); - put("num", activityReimbursementService.count(sql.setParam("type", ActivityDeclareReimbursement.CLUB.name()))); + put("num", activityReimbursementService.count(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_THREE"))); }}); return Result.success(list); } @@ -163,8 +163,8 @@ public class ActivityReimbursementBoardController { activity_reimbursement_info info LEFT JOIN wf_process_instance ins ON info.id = ins.businessNo WHERE - ins.state = 30 - AND info.activityType = @type + ins.state = 20 + AND info.outlayManageSource = @type AND info.`year` = @year """); @@ -180,19 +180,19 @@ public class ActivityReimbursementBoardController { list.add(new NutMap() {{ put("year", year); put("type", "校工会费用"); - put("num", activityReimbursementService.list(sql.setParam("type", ActivityDeclareReimbursement.SCHOOL_UNION.name()).setParam("year", year)).get(0).getDouble("money")); + put("num", activityReimbursementService.list(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_ONE").setParam("year", year)).get(0).getDouble("money")); }}); list.add(new NutMap() {{ put("year", year); put("type", "分工会费用"); - put("num", activityReimbursementService.list(sql.setParam("type", ActivityDeclareReimbursement.BRANCH_UNION.name()).setParam("year", year)).get(0).getDouble("money")); + put("num", activityReimbursementService.list(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_TWO").setParam("year", year)).get(0).getDouble("money")); }}); list.add(new NutMap() {{ put("year", year); put("type", "社团费用"); - put("num", activityReimbursementService.list(sql.setParam("type", ActivityDeclareReimbursement.CLUB.name()).setParam("year", year)).get(0).getDouble("money")); + put("num", activityReimbursementService.list(sql.setParam("type", "ACTIVITY_BUDGET_TYPE_THREE").setParam("year", year)).get(0).getDouble("money")); }}); } @@ -204,9 +204,9 @@ public class ActivityReimbursementBoardController { @ApiOperation("获取活动的经费饼图") @SaCheckPermission("activityReimbursement.board") public Result getActivityMoneyPieNum(Integer startYear, Integer endYear){ - Sql schoolSql = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", ActivityDeclareReimbursement.SCHOOL_UNION.name()); - Sql unionSql = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", ActivityDeclareReimbursement.BRANCH_UNION.name()); - Sql clubSql = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", ActivityDeclareReimbursement.CLUB.name()); + Sql schoolSql = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", "ACTIVITY_BUDGET_TYPE_ONE"); + Sql unionSql = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", "ACTIVITY_BUDGET_TYPE_TWO"); + Sql clubSql = activityReimbursementService.getActivityUserNumAndMoneySql(startYear, endYear, true).setParam("type", "ACTIVITY_BUDGET_TYPE_THREE"); List list = new ArrayList<>(); list.add(new NutMap() {{ diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java index 03ae5b7..7f7c3bd 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementDeputySchoolUnionController.java @@ -108,7 +108,7 @@ public class ActivityReimbursementDeputySchoolUnionController { pageParam.buildSearch(cnd, "info."); cnd.and("t.taskName", "=", "f9b8379f-f348-4985-ba58-b6ba28deb9af"); -// cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.andEX("outlay.budgetReimburseType", "=", pageParam.getBudgetReimburseType()); cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource()); cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode()); diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementServiceImpl.java index b1a7e35..a7ac654 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/service/impl/ActivityReimbursementServiceImpl.java @@ -45,8 +45,8 @@ public class ActivityReimbursementServiceImpl extends BaseServiceImpl= @startYear AND info.`year` <= @endYear """) @@ -59,8 +59,8 @@ public class ActivityReimbursementServiceImpl extends BaseServiceImpl= @startYear AND info.`year` <= @endYear """).setParam("startYear", startYear).setParam("endYear", endYear); diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/caredata/StaffCareDataCon.java b/src/main/java/com/budwk/app/zhgh/dayofficework/caredata/StaffCareDataCon.java new file mode 100644 index 0000000..275d764 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/caredata/StaffCareDataCon.java @@ -0,0 +1,207 @@ +package com.budwk.app.zhgh.dayofficework.careData; + + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.service.BaseService; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.sys.services.SysUserService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.entity.Record; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.sql.SqlCallback; +import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; +import org.nutz.log.Log; +import org.nutz.log.Logs; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: 1V + * @DateTime: 2020/10/15 10:37 + * @Description: 职工关爱大数据 + */ +@At("/platform/careData/staff") +@IocBean +@Ok("json") +public class StaffCareDataCon { + private static final Log log = Logs.get(); + + @At("") + @Ok("beetl:/platform/zhgh/dayofficework/careData/staff/index.html") + @SaCheckPermission("careData.staff") + public void index() { + + } + + @Inject + private SysUserService sysUserService; + + @Inject + private BaseService baseService; + + + @At + @SaCheckPermission("careData.staff") + public Object getNumByYear(Integer yearnum, String userid, Integer startYear, Integer endYear) { + try { + Sys_user user = sysUserService.fetch(userid); + + ArrayList result = new ArrayList<>(); + + if (startYear == null && endYear == null) { + int year = Calendar.getInstance().get(Calendar.YEAR); + yearnum = yearnum == null ? 10 : yearnum; + startYear = year - yearnum + 1; + endYear = year; + } + + for (int i = startYear; i <= endYear; i++) { + final int y = i; + List list = baseService.list(Sqls.create("SELECT '职工慰问' type,count( 1 ) value, YEAR ( con.createTime ) `year` FROM condolence con WHERE YEAR ( con.createTime ) = @year and con.applyUserId = @user GROUP BY YEAR ( con.createTime )").setParam("year", i).setParam("user", userid)); + result.addAll(list.size() > 0 ? list : new ArrayList() {{ + add(new HashMap() {{ + put("type", "职工慰问"); + put("value", 0); + put("year", y); + }}); + }}); + List list1 = baseService.list(Sqls.create("SELECT '困难帮扶' type,count(1) value,year(bf.applyTime) `year` from difficult_help_info bf WHERE YEAR ( bf.applyTime ) = @year and bf.proxyUserId = @user GROUP BY YEAR(bf.applyTime) ").setParam("year", i).setParam("user", userid)); + result.addAll(list1.size() > 0 ? list1 : new ArrayList() {{ + add(new HashMap() {{ + put("type", "困难帮扶"); + put("value", 0); + put("year", y); + }}); + }}); + + result.add(new HashMap() {{ + put("type", "撰写提案"); + put("value", baseService.count(Sqls.create("SELECT count(1) from proposal_info info where info.createUserId = @user and YEAR(info.createTime) = @year").setParam("year", y).setParam("user", userid))); + put("year", y); + }}); + + result.add(new HashMap() {{ + put("type", "经费报销"); + put("value", baseService.count(Sqls.create("SELECT count(1) from activity_reimbursement_info bx WHERE bx.userId = @user and year(bx.applyTime) = @year").setParam("year", y).setParam("user", userid))); + put("year", y); + }}); + } + + return Result.success().addData(result); + } catch (Exception e) { + return Result.error(); + } + } + + @At + @SaCheckPermission("careData.staff") + public Result getYearNumAndAllNum(String userid) { + HashMap map = new HashMap<>(); + int year = Calendar.getInstance().get(Calendar.YEAR); + Sys_user user = sysUserService.fetch(userid); + + map.put("now_year", new HashMap() {{ + put("zgww", baseService.count(Sqls.create("SELECT count(1) FROM condolence con WHERE YEAR ( con.createTime ) = @year and con.applyUserId = @user").setParam("year", year).setParam("user", userid))); + put("knbf", baseService.count(Sqls.create("SELECT count(1) FROM difficult_help_info bf WHERE YEAR ( bf.applyTime ) = @year and bf.userId = @user").setParam("year", year).setParam("user", userid))); + put("ta", baseService.count(Sqls.create("SELECT count(1) from proposal_info info where info.createUserId = @user and YEAR(info.createTime) = @year").setParam("year", year).setParam("user", userid))); + put("jfbx", baseService.count(Sqls.create("SELECT count(1) from activity_reimbursement_info bx WHERE bx.userId = @user and year(bx.applyTime) = @year").setParam("year", year).setParam("user", userid))); + }}); + + map.put("all", new HashMap() {{ + put("zgww", baseService.count(Sqls.create("SELECT count(1) FROM condolence con WHERE YEAR ( con.createTime ) = @year and con.applyUserId = @user").setParam("year", year).setParam("user", userid))); + put("knbf", baseService.count(Sqls.create("SELECT count(1) FROM difficult_help_info bf WHERE YEAR ( bf.applyTime ) = @year and bf.userId = @user").setParam("year", year).setParam("user", userid))); + put("ta", baseService.count(Sqls.create("SELECT count(1) from proposal_info info where info.createUserId = @user and YEAR(info.createTime) = @year").setParam("year", year).setParam("user", userid))); + put("jfbx", baseService.count(Sqls.create("SELECT count(1) from activity_reimbursement_info bx WHERE bx.userId = @user").setParam("user", userid))); + }}); + return Result.success(map); + } + + + @At + @SaCheckPermission("careData.staff") + public Object queryUser(String key) { + try { + Sql sql = Sqls.create("select id,username,loginname,sex,birthday,unitName,unionName FROM vw_user $condition"); + Cnd cnd = Cnd.NEW(); + SqlExpressionGroup group = new SqlExpressionGroup(); + group.orLike("username", key); + group.orLike("loginname", key); + cnd.and(group); + + sql.setCondition(cnd); + return Result.success().addData(baseService.listPage(1, 50, sql)); + } catch (Exception e) { + log.error(e); + return Result.error(); + } + } + + + @At + @SaCheckPermission("careData.staff") + public Object timeLine(String userid, String type, Boolean desc, String startTime, String endTime) { + try { + Sys_user user = sysUserService.fetch(userid); + Sql sql = Sqls.create("SELECT * from (\n" + + "SELECT con.id id,con.createTime time,'zgww' type FROM condolence con WHERE con.applyUserId= @user\n" + + "union all \n" + + "SELECT bf.id id ,bf.applyTime time,'knbf' type FROM difficult_help_info bf WHERE bf.userId = @user\n" + + "union all\n" + + "SELECT info.id id, info.createTime time , 'ta' type from proposal_info info where info.createUserId = @user\n" + + "union all\n" + + "SELECT school.id, school.startTime time , 'xhd' type from activity_school_apply apply left join activity_school school on apply.activityId = school.id WHERE apply.userId = @user\n" + + "union all\n" + + "SELECT bx.id id , bx.applyTime time ,'yybx' type from activity_reimbursement_info bx WHERE bx.userId = @user\n" + + ") tab WHERE 1=1 $type $year\n" + + "ORDER BY tab.time $order"); + if (Strings.isNotBlank(type) && !type.equals("all")) { + sql.setVar("type", "AND tab.type = '" + type + "'"); + } + if (Strings.isNotBlank(startTime) && Strings.isNotBlank(endTime)) { + sql.setVar("year", "AND tab.time >= '" + startTime + "' AND tab.time <= '" + endTime + "'"); + } + + if (desc == null || desc) { + sql.setVar("order", "desc"); + } else { + sql.setVar("order", "asc"); + } + + sql.setParam("user", userid); + sql.setParam("loginname", user.getLoginname()); + + List list = sysUserService.list(sql); + + return Result.success().addData(list); + } catch (Exception e) { + log.error(e); + return Result.error(); + } + } + + @At + @SaCheckPermission("careData.staff") + public Result initUser() { + Sql sql = Sqls.create(""" + select id,username,loginname,sex,birthday,unitName,unionName FROM vw_user WHERE id=@id + """).setParam("id", SecurityUtil.getUserId()); + sql.setCallback(Sqls.callback.map()); + sysUserService.execute(sql); + return Result.success().addData(sql.getResult()); + + } + + +} diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/caredata/UnionCareDataCon.java b/src/main/java/com/budwk/app/zhgh/dayofficework/caredata/UnionCareDataCon.java new file mode 100644 index 0000000..951378d --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/caredata/UnionCareDataCon.java @@ -0,0 +1,182 @@ +package com.budwk.app.zhgh.dayofficework.caredata; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.service.BaseService; +import com.budwk.app.sys.services.SysUserService; +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.dayofficework.outlay.activityBudget.service.ActivityBudgetApplyStatisticsService; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.entity.Record; +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.log.Log; +import org.nutz.log.Logs; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.*; + +/** + * @Author: 1V + * @DateTime: 2020/10/15 11:39 + * @Description: 工会大数据 + */ +@At("/platform/careData/union") +@IocBean +@Ok("json") +public class UnionCareDataCon { + private static final Log log = Logs.get(); + + @At("") + @Ok("beetl:/platform/zhgh/dayofficework/careData/unionCare/index.html") + @SaCheckPermission("careData.union") + public void index() { + + } + + @Inject + private BaseService baseService; + + @Inject + private SysUserService sysUserService; + + @Inject + private SysClubService sysClubService; + + @Inject + private ActivityBudgetApplyStatisticsService activityBudgetService; + + @At + @SaCheckPermission("careData.union") + public Result getNumData() { + Sql sql1 = Sqls.create("SELECT count(1) FROM sys_user u WHERE u.member=1"); + Sql sql2 = Sqls.create("SELECT count(1) from sys_union"); + List myManageClub = sysClubService.getMyManageClub(); + + Map result = new HashMap() {{ + put("hy_num", baseService.count(sql1)); + put("fgh_num", baseService.count(sql2)); + put("st_num", myManageClub.size()); + }}; + return Result.success(result); + + } + + + @At + @SaCheckPermission("careData.union") + public Result getHyNumBySex() { + Sql sql1 = Sqls.create("SELECT IFNULL(count(1),0) FROM vw_user u WHERE u.member=1 and u.sex='男' and u.unionId!='' $fgh"); + Sql sql2 = Sqls.create("SELECT IFNULL(count(1),0) FROM vw_user u WHERE u.member=1 and u.sex='女' and u.unionId!='' $fgh"); + + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name()) + && AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { + sql1.setVar("fgh", "AND u.unionId = %s".formatted(SecurityUtil.getUnionId())); + sql2.setVar("fgh", "AND u.unionId = %s".formatted(SecurityUtil.getUnionId())); + } + + return Result.success().addData(new ArrayList() {{ + add(new HashMap() {{ + put("name", "男"); + put("value", baseService.count(sql1)); + }}); + add(new HashMap() {{ + put("name", "女"); + put("value", baseService.count(sql2)); + }}); + }}); + } + + + + @At + @SaCheckPermission("careData.union") + public Result getActivityBudget(){ + int nowYear = Calendar.getInstance().get(Calendar.YEAR); + Integer startYear = nowYear - 9; + Integer endYear = nowYear; + List list = new ArrayList<>(); + for (int i = startYear; i <= endYear; i++) { + final int year = i; + + Sql sql = activityBudgetService.getsql(year, null, null, "ACTIVITY_BUDGET_TYPE_ONE", null, null); + List mapList = activityBudgetService.listMap(sql); + mapList = mapList.stream().filter(v -> !v.getBoolean("isSchoolBudget")).toList(); + double totalBudgetMoney = mapList.stream().mapToDouble(map -> map.getDouble("totalBudgetMoney")).sum(); + list.add(new HashMap() {{ + put("year", year); + put("type", "校工会经费"); + put("value", totalBudgetMoney); + }}); + + Sql sql2 = activityBudgetService.getsql(year, null, null, "ACTIVITY_BUDGET_TYPE_TWO", null, null); + List mapList2 = activityBudgetService.listMap(sql2); + mapList2 = mapList2.stream().filter(v -> !v.getBoolean("isSchoolBudget")).toList(); + double totalBudgetMoney2 = mapList2.stream().mapToDouble(map -> map.getDouble("totalBudgetMoney")).sum(); + list.add(new HashMap() {{ + put("year", year); + put("type", "分工会经费"); + put("value", totalBudgetMoney2); + }}); + + Sql sql3 = activityBudgetService.getsql(year, null, null, "ACTIVITY_BUDGET_TYPE_THREE", null, null); + List mapList3 = activityBudgetService.listMap(sql3); + mapList3 = mapList3.stream().filter(v -> !v.getBoolean("isSchoolBudget")).toList(); + double totalBudgetMoney3 = mapList3.stream().mapToDouble(map -> map.getDouble("totalBudgetMoney")).sum(); + list.add(new HashMap() {{ + put("year", year); + put("type", "协会经费"); + put("value", totalBudgetMoney3); + }}); + + } + return Result.success(list); + } + + + @At + @SaCheckPermission("careData.union") + public Result getDifficultHelpNum(){ + int nowYear = Calendar.getInstance().get(Calendar.YEAR); + Integer startYear = nowYear - 9; + Integer endYear = nowYear; + List list = new ArrayList<>(); + + + String sqls= """ + SELECT + COUNT(info.id) + FROM + difficult_help_info info + 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 + """; + for (int i = startYear; i <= endYear; i++) { + final int year = i; + + Sql sql = Sqls.create(sqls); + Cnd cnd = Cnd.NEW(); + cnd.andEX("YEAR(info.applyTime)", "=", year); + sql.setCondition(cnd); + int count = baseService.count(sql); + list.add(new HashMap() {{ + put("value", count); + put("year", year); + }}); + + } + return Result.success(list); + } + +} diff --git a/src/main/resources/static/none.png b/src/main/resources/static/none.png new file mode 100644 index 0000000000000000000000000000000000000000..633131bb731e420ad49a9c40c7ae9ef1afe13340 GIT binary patch literal 17010 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 - + +
校工会活动报销费用(元)
{{numData.schoolActivityMoney?numData.schoolActivityMoney:'0'}}
- +
分工会活动报销费用(元)
{{numData.unionActivityMoney?numData.unionActivityMoney:'0'}}
- +
社团活动报销费用(元)
{{numData.clubActivityMoney?numData.clubActivityMoney:'0'}}
@@ -106,7 +106,7 @@ layout("/layouts/platform.html"){ - +
@@ -558,8 +558,8 @@ layout("/layouts/platform.html"){ }, async mounted() { await this.getActivityJfChart() - await this.getActivityTypeChart() - await this.getActivityTypePieNum() + // await this.getActivityTypeChart() + // await this.getActivityTypePieNum() await this.getActivityJfPieNum() await this.allUnionActivityAndJf() await this.allClubActivityAndJf() diff --git a/src/main/resources/views/platform/zhgh/dayofficework/careData/staff/index.html b/src/main/resources/views/platform/zhgh/dayofficework/careData/staff/index.html new file mode 100644 index 0000000..bb713f8 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/dayofficework/careData/staff/index.html @@ -0,0 +1,509 @@ + + + +
+
+ + + +
+
+ {{user.sex?user.sex:''}}{{user.unitName?' / '+user.unitName:''}} {{user.unionName?' / '+user.unionName:''}} +
+
+
+
+ + + 职工慰问申请数 + + + 困难帮扶申请数 + + + 子女入学登记数 + + + 撰写提案数 + + + 参与活动数 + + + 经费报销次数 + + + + + + + 今年 + + + {{numData.now_year.zgww?numData.now_year.zgww:0}} + + + {{numData.now_year.knbf?numData.now_year.knbf:0}} + + + {{numData.now_year.znrx?numData.now_year.znrx:0}} + + + {{numData.now_year.ta?numData.now_year.ta:0}} + + + {{numData.now_year.hd?numData.now_year.hd:0}} + + + {{numData.now_year.jfbx?numData.now_year.jfbx:0}} + + + + + + 全部 + + + {{numData.all.zgww?numData.all.zgww:0}} + + + {{numData.all.knbf?numData.all.knbf:0}} + + + {{numData.all.znrx?numData.all.znrx:0}} + + + {{numData.all.ta?numData.all.ta:0}} + + + {{numData.all.hd?numData.all.hd:0}} + + + {{numData.all.jfbx?numData.all.jfbx:0}} + + +
+ + +
+ + + - + + +
+
职工动态曲线
+
+
+ + + +
+ 职工动态时间线 + + + +
+ + +
+
+
+ + + + + + + + + + + + + + 暂无数据 + +
+
+
+
+
+ + + diff --git a/src/main/resources/views/platform/zhgh/dayofficework/careData/unionCare/index.html b/src/main/resources/views/platform/zhgh/dayofficework/careData/unionCare/index.html new file mode 100644 index 0000000..070d487 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/dayofficework/careData/unionCare/index.html @@ -0,0 +1,462 @@ + + + +
+
+ +
+ + +
会员数
+
{{numData.hy_num?numData.hy_num:'0'}}
+
+
+ +
分工会数
+
{{numData.fgh_num?numData.fgh_num:'0'}}
+
+
+ +
社团数
+
{{numData.st_num?numData.st_num:'0'}}
+
+
+
+
+ + + +
会员性别占比
+
+
+ +
年度经费
+
+
+
+ + + +
困难帮扶申请趋势
+
+
+
+ + +
+ + +
+ +
{{allUnionYear}}年工会报销费用及活动情况 + + + +
+
+
+
+ + +
+ + +
+ +
{{allClubYear}}年社团报销费用及活动情况 + + + +
+
+
+
+ + +
+
+
+ + + From 8c02b77d2336f3d52c9e7a0c09c1968440259362 Mon Sep 17 00:00:00 2001 From: Paidax Date: Mon, 22 Dec 2025 18:00:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?pref=5F#jshvc=E6=8F=90=E6=A1=88=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...salCommitteeFilingRevokeEventListener.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java new file mode 100644 index 0000000..e659426 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/listenter/ProposalCommitteeFilingRevokeEventListener.java @@ -0,0 +1,49 @@ +package com.budwk.app.zhgh.democratic.proposal.listenter; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.budwk.app.flow.engine.event.ProcessEvent; +import com.budwk.app.flow.engine.event.ProcessEventListener; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessEventTypeEnum; +import com.budwk.app.flow.service.ProcessInstanceService; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.lang.Lang; + +/** + * @version 1.0 + * @Author FKY + * @name:ProposalCommitteeFilingRevokeEventListener + * @Date 2025/12/22 17:43 + * @注释 提案立案审核撤回监听器 + */ +public class ProposalCommitteeFilingRevokeEventListener implements ProcessEventListener { + + @Inject + private Dao dao; + @Inject + private ProcessInstanceService processInstanceService; + + @Override + public void onEvent(ProcessEvent event) { + if (event.getEventType() == ProcessEventTypeEnum.PROCESS_TASK_REVOKE) { + Long taskId = event.getSourceId(); + ProcessTask task = dao.fetch(ProcessTask.class, taskId); + ProcessInstance processInstance = processInstanceService.getById(task.getProcessInstanceId()); + + // 处理并案信息撤回 + if ("committee".equals(task.getTaskName())) { + // 如果有并案,删掉并案数据(傻逼提的需求) + ProposalMerge proposalMerge = dao.fetch(ProposalMerge.class, Cnd.where("proposalId", "=", processInstance.getBusinessNo())); + + if (Lang.isNotEmpty(proposalMerge)) { + dao.clear(ProposalMerge.class, Cnd.where(ProposalMerge::getGroupId, "=", proposalMerge.getGroupId())); + } + } + } + } +}