diff --git a/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java b/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java index de6c981c..a340c671 100644 --- a/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java +++ b/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java @@ -5,15 +5,11 @@ import cn.hutool.core.lang.Dict; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.expression.ExpressionUtil; import com.budwk.app.flow.constant.FlowConst; -import com.budwk.app.flow.engine.FlowEngine; import com.budwk.app.flow.engine.core.Execution; import com.budwk.app.flow.engine.handlers.IHandler; import com.budwk.app.flow.engine.model.TaskModel; -import com.budwk.app.flow.entity.ProcessTask; import com.budwk.app.flow.enums.CountersignTypeEnum; -import org.nutz.lang.Lang; -import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -85,6 +81,13 @@ public class CountersignHandler implements IHandler { if (!isMerged && CountersignTypeEnum.PARALLEL.toString().equalsIgnoreCase(countersignType)) { // 是否所有会签任务已完成 boolean finished = execution.getEngine().processTaskService().getDoingTaskList(execution.getProcessInstanceId(), new String[]{taskModel.getName()}).size() == 0; + + if(StrUtil.isNotBlank(countersignCompletionCondition) && finished) { + execution.getEngine().processTaskService().rejectTask(execution.getProcessModel(), execution.getProcessTask()); + } else { + isMerged = finished; + } + if (!isMerged) { // 未通过,更新已完成实例数量 Dict addVariable = Dict.create(); @@ -92,9 +95,6 @@ public class CountersignHandler implements IHandler { addVariable.put(prefix + FlowConst.NR_OF_COMPLETED_AGREE_INSTANCES, execution.getArgs().get(prefix + FlowConst.NR_OF_COMPLETED_AGREE_INSTANCES)); execution.getEngine().processInstanceService().addVariable(execution.getProcessInstanceId(), addVariable); } - if(finished) { - execution.getEngine().processTaskService().rejectTask(execution.getProcessModel(), execution.getProcessTask()); - } } if (isMerged) { // 获取所有会签参数键值 diff --git a/src/main/java/com/budwk/app/sys/utils/DateUtil.java b/src/main/java/com/budwk/app/sys/utils/DateUtil.java new file mode 100644 index 00000000..d2c7d4fe --- /dev/null +++ b/src/main/java/com/budwk/app/sys/utils/DateUtil.java @@ -0,0 +1,159 @@ +package com.budwk.app.sys.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Times; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Locale; + +/** + * Created by wizzer on 2016/6/24. + */ +@IocBean +public class DateUtil { + private static final Locale DEFAULT_LOCALE = Locale.CHINA; + private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + public static Integer getYear() { + return Calendar.getInstance().get(Calendar.YEAR); + } + + /** + * 获取当前时间(HH:mm:ss) + * + * @return + */ + public static String getDate() { + return DateFormatUtils.format(new Date(), "yyyy-MM-dd", DEFAULT_LOCALE); + } + + + /** + * 获取当前时间(HH:mm:ss) + * + * @return + */ + public static String getTime() { + return DateFormatUtils.format(new Date(), "HH:mm:ss", DEFAULT_LOCALE); + } + + /** + * 获取当前时间(yyyy-MM-dd HH:mm:ss) + * + * @return + */ + public static String getDateTime() { + return DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss", DEFAULT_LOCALE); + } + + /** + * 获取当前时间(yyyy-MM-dd HH:mm) + * + * @return + */ + public static String getDateTime2() { + return DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm", DEFAULT_LOCALE); + } + + /** + * 转换日期格式(yyyy-MM-dd HH:mm:ss) + * + * @param date + * @return + */ + public static String formatDateTime(Date date) { + if (date == null) return ""; + return DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss", DEFAULT_LOCALE); + } + + /** + * 转换日期格式(yyyy-MM-dd) + * + * @param date + * @return + */ + public static String formatDate(Date date) { + if (date == null) return ""; + return DateFormatUtils.format(date, "yyyy-MM-dd", DEFAULT_LOCALE); + } + + /** + * 转换日期格式(yyyy-MM-dd HH:mm:ss) + * + * @param date + * @param f + * @return + */ + public static String format(Date date, String f) { + if (date == null) return ""; + return DateFormatUtils.format(date, f, DEFAULT_LOCALE); + } + + /** + * 时间戳日期 + * + * @param time + * @return + */ + public static String getDate(long time) { + return DateFormatUtils.format(new Date(time * 1000), "yyyy-MM-dd HH:mm:ss", DEFAULT_LOCALE); + } + + /** + * 时间戳日期 + * + * @param time + * @param f + * @return + */ + public static String getDate(long time, String f) { + return DateFormatUtils.format(new Date(time * 1000), f, DEFAULT_LOCALE); + } + + /** + * 通过字符串时间获取时间戳 nutzwk5.0改为long + * + * @param date + * @return + */ + public static long getTime(String date) { + try { + return Times.parse(sdf, date).getTime() / 1000; + } catch (ParseException e) { + return 0; + } + } + + /** + * 通过字符串时间获取时间戳 nutzwk5.0改为long + * + * @param date + * @return + */ + public static long getTime(SimpleDateFormat sdf, String date) { + try { + return Times.parse(sdf, date).getTime() / 1000; + } catch (ParseException e) { + return 0; + } + } + + /** + * 通过字符串时间转时间戳 + * + * @param data + * @return + */ + public static long formatDate(String data) { + try { + return new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(data).getTime(); + } catch (ParseException e) { + e.printStackTrace(); + return 0; + } + } +} diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivityPrizeListController.java b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivityPrizeListController.java new file mode 100644 index 00000000..feaa887f --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivityPrizeListController.java @@ -0,0 +1,305 @@ +package com.budwk.app.zhgh.activity.sports.controller; + +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_union; +import com.budwk.app.sys.services.SysUnionService; +import io.swagger.annotations.ApiOperation; +import lombok.Data; +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.Lang; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.*; +import java.util.stream.Collectors; + +import static java.util.stream.Collectors.toList; + +/** + * @author zhf + * @date 2021/5/27 15:57 + * @description 奖品名单 + */ + +@IocBean +@Ok("json:full") +@At("/platform/activity/prize/list") +public class ActivityPrizeListController { + + + @At("") + @Ok("beetl:platform/zhgh/activity/sports/ActivityPrize/index.html") + @SaCheckPermission("activity.prize.list") + public void index() { + } + + + @Inject + private SysUnionService sysUnionService; + + @Inject + private BaseService baseService; + + /** + * 各个分工会奖品 + * + * @param activityId + * @param unionId + * @return + */ + + @At + @ApiOperation("获取各个分工会每个项目前八名") + @SaCheckPermission("activity.prize.list") + public Result getPrizes(Integer year, String activityId, String unionId) { + Sql sql = Sqls.create(""" + SELECT + acr.activityId, + ace.allName, + acr.userId, + acr.ranking, + acr.numberOfPeople, + ace.isMenWomen, + acs.`name` as activityName, + u.username, + RIGHT(ace.allName,4) xmlx, + LEFT(ace.allName,2) xblx + FROM activity_school_event acse + left join activity_school acs on acs.id = acse.activityId + left join activity_event ace on ace.id = acse.eventId + left join activity_results acr on acr.eventId = acse.eventId + left join sys_user u on u.id = acr.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("acr.activityId", "=", activityId); + cnd.and("YEAR(acs.applyStartTime)", "=", year); +// cnd.and("ace.isInterest", "=", 0); + cnd.and("acr.unionId", "=", unionId); + cnd.asc("ace.allName").asc("acr.ranking"); + sql.setCondition(cnd); + List allList = baseService.listMap(sql); + if (Lang.isEmpty(allList)) { + return Result.success(Map.of("团体项目", Map.of(), "男子项目", Map.of(), "女子项目", Map.of(), "其他", Map.of())); + } + + Map maleMap = NutMap.NEW(); + Map femaleMap = NutMap.NEW(); + Map teamMap = NutMap.NEW(); + Map otherMap = NutMap.NEW(); + + Map> xmlxList = allList.stream().collect(Collectors.groupingBy(v -> v.getString("xmlx"))); + + if (Lang.isNotEmpty(xmlxList.get("(团体)"))) { + teamMap = xmlxList.get("(团体)").stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + + + } + + if (Lang.isNotEmpty(xmlxList.get("(单项)")) && xmlxList.get("(单项)").stream().anyMatch(v -> v.getString("xblx").equals("男子"))) { + maleMap = xmlxList.get("(单项)").stream().filter(v -> v.getString("xblx").equals("男子")).collect(Collectors.groupingBy(h -> h.getString("allName"))); + } + + if (Lang.isNotEmpty(xmlxList.get("(单项)")) && xmlxList.get("(单项)").stream().anyMatch(v -> v.getString("xblx").equals("女子"))) { + femaleMap = xmlxList.get("(单项)").stream().filter(v -> v.getString("xblx").equals("女子")).collect(Collectors.groupingBy(h -> h.getString("allName"))); + } + return Result.success(Map.of("团体项目", teamMap, "男子项目", maleMap, "女子项目", femaleMap, "其他", otherMap)); + } + + @At + @ApiOperation("获取每一年每个项目前八都是谁") + @SaCheckPermission("activity.prize.list") + public Result getSummaryYearPrizes(Integer year, String sex) { + Sql sql = Sqls.create(""" + SELECT + ace.projectCode, + acs.id activityId, + ace.allName, + acr.userId, + acr.ranking, + acr.numberOfPeople, + acr.integral, + ace.isMenWomen, + acs.`name` AS activityName, + CONCAT(u.username,'/',u.unionname) username, + un.name unionname, + ace.isInterest, + bszb.`code` bszbCode, + bszb.`name` bszbName, + RIGHT ( ace.allName, 4 ) xmlx, + LEFT ( ace.allName, 2 ) xblx + FROM + activity_school_event acse + LEFT JOIN activity_school acs ON acs.id = acse.activityId + LEFT JOIN activity_event ace ON ace.id = acse.eventId + LEFT JOIN activity_basic_settings bszb ON bszb.id=ace.competitionCategory + LEFT JOIN activity_results acr ON acr.eventId = acse.eventId + AND acr.activityId = acs.id + LEFT JOIN sys_union un ON un.id=acr.unionId + LEFT JOIN `vw_user` u ON u.id = acr.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("YEAR(acs.startTime)", "=", year); + if ("男".equals(sex)) { + cnd.and(Cnd.exps("ace.isMenWomen", "=", "1").or("ace.isMenWomen", "is", null)); + } else { + cnd.and(Cnd.exps("ace.isMenWomen", "=", "2").or("ace.isMenWomen", "is", null)); + } + cnd.asc("ace.projectCode").asc("acr.ranking"); + sql.setCondition(cnd); + List allList =baseService.listMap( sql); + if (Lang.isEmpty(allList)) { + return Result.success(Map.of("甲组", Map.of(), "乙组", Map.of(), "丙组", Map.of(), "丁组", Map.of(), "集体项目", Map.of())); + } + allList.forEach(a -> { + a.setv("allName", a.getString("allName").replaceAll("男子|女子|\\(单项\\)|\\(团体\\)|甲组|乙组|丙组|丁组|团体", "")); + }); + + Map oneMap = NutMap.NEW(); + Map twoMap = NutMap.NEW(); + Map threeMap = NutMap.NEW(); + Map fourMap = NutMap.NEW(); + Map fiveMap = NutMap.NEW(); + + //甲组 + List oneList = allList.stream().filter(a -> a.getString("bszbName").equals("甲组")).collect(toList()); + if (Lang.isNotEmpty(oneList)) { + oneMap = oneList.stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + } + + //乙组 + List twoList = allList.stream().filter(a -> a.getString("bszbName").equals("乙组")).collect(toList()); + if (Lang.isNotEmpty(twoList)) { + twoMap = twoList.stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + } + + + //丙组 + List threeList = allList.stream().filter(a -> a.getString("bszbName").equals("丙组")).collect(toList()); + if (Lang.isNotEmpty(threeList)) { + threeMap = threeList.stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + } + + + //丁组 + List fourList = allList.stream().filter(a -> a.getString("bszbName").equals("丁组")).collect(toList()); + if (Lang.isNotEmpty(fourList)) { + fourMap = fourList.stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + } + + //团体 + List fiveList = allList.stream().filter(a -> a.getString("bszbName").equals("团体")).collect(toList()); + if (Lang.isNotEmpty(fiveList)) { + fiveMap = fiveList.stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + } + NutMap map = new NutMap(); + map.put("甲组", oneMap); + map.put("乙组", twoMap); + map.put("丙组", threeMap); + map.put("丁组", fourMap); + map.put("集体项目", fiveMap); + return Result.success(map); + } + + + @At + @ApiOperation("获取各个分工会年度前八名的个数") + @SaCheckPermission("activity.prize.list") + public Result summary(String activityId) { + + NutMap map = new NutMap(); + List result = new ArrayList<>(); + + //查询所有的工会 + List query = sysUnionService.query(); + for (Sys_union sys_union : query) { + NutMap nutMap = new NutMap(); + + //记录总人数 + int totalPeople = 0; + nutMap.setv("unionname", sys_union.getName()); + for (int i = 1; i <= 8; i++) { + Sql sql = Sqls.create(""" + SELECT + IFNULL(( + SELECT + COUNT( 1 ) + FROM + activity_results ar1 + WHERE + ar1.activityId = ar2.activityId + AND ar1.ranking = ar2.ranking + AND ar1.isTeamPersonal = 1 + AND ar1.unionId = ar2.unionId + ), + 0 + ) num, + IFNULL( SUM( numberOfPeople ), 0 ) numberOfPeople + FROM + activity_results ar2 $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("ar2.activityId", "=", activityId); + cnd.and("ar2.ranking", "=", i); + cnd.and("ar2.unionId", "=", sys_union.getId()); + cnd.and("ar2.isTeamPersonal", "in", "1,2"); + sql.setCondition(cnd); + int number = 0; + List list = baseService.listMap(sql); + if (!list.isEmpty()) { + number = list.get(0).getInt("num") + list.get(0).getInt("numberOfPeople"); + } + totalPeople += number; + if (i == 1) { + nutMap.setv("one", number); + } else if (i == 2) { + nutMap.setv("two", number); + } else if (i == 3) { + nutMap.setv("three", number); + } else if (i == 4) { + nutMap.setv("four", number); + } else if (i == 5) { + nutMap.setv("fives", number); + } else if (i == 6) { + nutMap.setv("six", number); + } else if (i == 7) { + nutMap.setv("seven", number); + } else if (i == 8) { + nutMap.setv("eight", number); + } + + } + nutMap.setv("totalPeople", totalPeople); + result.add(nutMap); + + + } + map.put("score", result); + return Result.success(map); + } + + @Data + private class Ranking { + + private int one; + private int two; + private int three; + private int four; + private int fives; + private int six; + private int seven; + private int eight; + + + } + + +} diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java index 1f840c0c..91d193a4 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsResultsController.java @@ -222,16 +222,15 @@ public class ActivitySportsResultsController { SELECT un.id, - un.unionname + un.name unionname FROM activity_school_apply asa LEFT JOIN sys_union un ON un.id = asa.unionId WHERE asa.activityId = @activityId AND asa.eventId = @eventId - GROUP BY - un.unionname + un.name """).setParam("activityId", activityId).setParam("eventId", eventId); return Result.success(activitySchoolApplyViService.list(sql)); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsScoreStatisticsController.java b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsScoreStatisticsController.java index 74b6d647..bfc31df3 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsScoreStatisticsController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsScoreStatisticsController.java @@ -13,6 +13,7 @@ import com.budwk.app.sys.models.Sys_union; import com.budwk.app.sys.services.SysUnionService; import com.budwk.app.zhgh.activity.sports.models.ActivitySchool; import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent; +import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -64,7 +65,8 @@ public class ActivitySportsScoreStatisticsController { } @At - @SaCheckLogin + @SaCheckPermission("activity.score.statistics") + @ApiOperation("男子项目分工会积分/女子项目分工会积分") public Result isMaleFemale(String activityId, String sex, Integer awardsMode) { NutMap map = new NutMap(); @@ -91,13 +93,13 @@ public class ActivitySportsScoreStatisticsController { if (awardsMode < 3) { cndX.and("eve.projectType", "=", awardsMode); cndX.and("eve.isInterest", "=", false); - cndX.and("eve.isMenWomen", "=", sex.equals("男性") ? 1 : 2); + cndX.and("eve.isMenWomen", "=", sex.equals("男") ? 1 : 2); } if (awardsMode == 3) { cndX.and("eve.isInterest", "=", true); } if (awardsMode == 4) { - cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("eve.isMenWomen", "is", null)); + cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("eve.isMenWomen", "is", null)); } cndX.and(new Static("1=1 order by case ba.`name` when '甲组' then 1 when '乙组' then 2 when '丙组' then 3 when '丁组' then 4 when '团体' then 5 end")); sqlX.setCondition(cndX); @@ -122,11 +124,11 @@ public class ActivitySportsScoreStatisticsController { Cnd cndC = Cnd.NEW(); if ((awardsMode == 1 && event.getString("awardsMode").equals("1")) || (awardsMode == 2 && event.getString("awardsMode").equals("2"))) { cndC.and("ev.isInterest", "=", false); - cndC.and("ev.isMenWomen", "=", sex.equals("男性") ? 1 : 2); + cndC.and("ev.isMenWomen", "=", sex.equals("男") ? 1 : 2); } else if (awardsMode == 3) { cndC.and("ev.isInterest", "=", true); } else if (awardsMode == 4) { - cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("ev.isMenWomen", "is", null)); + cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("ev.isMenWomen", "is", null)); } cndC.and("ar.eventId", "=", event.getString("eventid")); cndC.and("ar.unionid", "=", sys_union.getId()); @@ -165,7 +167,8 @@ public class ActivitySportsScoreStatisticsController { @At - @SaCheckLogin + @SaCheckPermission("activity.score.statistics") + @ApiOperation("单子单项前八/女子单项前八/团体项目前八") public Result isTopEight(String activityId, String sex, Integer awardsMode) { NutMap map = new NutMap(); Cnd cndX = Cnd.NEW(); @@ -184,7 +187,7 @@ public class ActivitySportsScoreStatisticsController { """); cndX.and("ev.activityId", "=", activityId); if (awardsMode == 1) { - cndX.and("eve.isMenWomen", "!=", sex.equals("男性") ? 2 : 1); + cndX.and("eve.isMenWomen", "!=", sex.equals("男") ? 2 : 1); cndX.and("eve.projectType", "=", 1); } else { @@ -249,7 +252,8 @@ public class ActivitySportsScoreStatisticsController { @At - @SaCheckLogin + @SaCheckPermission("activity.score.statistics") + @ApiOperation("男子总分前八/女子总分前八") public Result isScoreTopEight(String activityId, String sex) { NutMap map = new NutMap(); @@ -269,7 +273,7 @@ public class ActivitySportsScoreStatisticsController { LEFT JOIN activity_basic_settings ba ON eve.competitionCategory = ba.id $condition """); cndX.and("ev.activityId", "=", activityId); - cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("eve.isMenWomen", "is", null)); + cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("eve.isMenWomen", "is", null)); cndX.and(new Static("1=1 order by case ba.`name` when '甲组' then 1 when '乙组' then 2 when '丙组' then 3 when '丁组' then 4 when '团体' then 5 end")); sqlX.setCondition(cndX); List eventList = baseService.list(sqlX); @@ -293,7 +297,7 @@ public class ActivitySportsScoreStatisticsController { LEFT JOIN activity_event ev ON ar.eventId = ev.id $condition """); Cnd cndC = Cnd.NEW(); - cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("ev.isMenWomen", "is", null)); + cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("ev.isMenWomen", "is", null)); cndC.and("ar.unionid", "=", sys_union.getId()); cndC.and("ar.eventId", "=", event.getString("eventid")); cndC.and("ar.activityId", "=", activityId); @@ -318,7 +322,8 @@ public class ActivitySportsScoreStatisticsController { @At - @SaCheckLogin + @SaCheckPermission("activity.score.statistics") + @ApiOperation("年度团体总分") public Result getAnnualResults(Integer year) { ArrayList resultMap = new ArrayList<>(); @@ -349,7 +354,7 @@ public class ActivitySportsScoreStatisticsController { unionMap.put(x.getName(), score); }); unionMap.put("总分", scoreSum.get()); - unionMap.put("分工会", unionMap.getString("unionname")); + unionMap.put("分工会", unionMap.getString("name")); resultMap.add(unionMap); }); labelList.add("总分"); @@ -359,11 +364,12 @@ public class ActivitySportsScoreStatisticsController { } @At - @SaCheckLogin + @ApiOperation("年度男子团体总分/年度女子团体总分") + @SaCheckPermission("activity.score.statistics") public Result getYear8(Integer isMenWomen, Integer year) { ArrayList resultMap = new ArrayList<>(); - // int isMenWomen = sex.equals("男性") ? 1 : 2; + // int isMenWomen = sex.equals("男") ? 1 : 2; Dao dao = sysUnionService.dao(); List unionList = sysUnionService.query(); @@ -408,7 +414,7 @@ public class ActivitySportsScoreStatisticsController { unionMap.put(a.getName(), sexScore + (qwScore * 0.5)); }); unionMap.put("总分", scoreSum.get()); - unionMap.put("分工会", unionMap.getString("unionname")); + unionMap.put("分工会", unionMap.getString("name")); resultMap.add(unionMap); }); @@ -416,139 +422,21 @@ public class ActivitySportsScoreStatisticsController { return Result.success(Map.of("label", activityNameList, "score", resultMap)); } - - - @At - @SaCheckLogin - @Ok("void") - public void doGetYear8(HttpServletResponse response, Integer isMenWomen, Integer year) throws Exception { - List result = new ArrayList<>(); - - List unionList = sysUnionService.query(); - - unionList.forEach(u -> { - NutMap nutMap = new NutMap(); - nutMap.setv("unionname", u.getName()); - double score = 0; - for (int i = 1; i <= 2; i++) { - Sql sql = Sqls.create(""" - SELECT - SUM( ar.integral ) score - FROM - activity_results ar - LEFT JOIN activity_event eve ON ar.eventId = eve.id - LEFT JOIN activity_school `as` ON `as`.id = ar.activityId - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.and("YEAR ( `as`.applyStartTime )", "=", year); - cnd.and("ar.unionId", "=", u.getId()); - if (i == 1) { - cnd.and("eve.isMenWomen", "=", isMenWomen); - sql.setCondition(cnd); - List list = baseService.listMap(sql); - score += list.get(0).getDouble("score"); - } else { - cnd.and("eve.isInterest", "=", 1); - sql.setCondition(cnd); - List list = baseService.listMap(sql); - score += list.get(0).getDouble("score") * 0.5; - } - } - nutMap.setv("score", score); - result.add(nutMap); - }); - List scoreList = result.stream().sorted(Comparator.comparing(ActivitySportsScoreStatisticsController::getDouble).reversed()).collect(Collectors.toList()).subList(0, 8); - - for (int i = 0; i < scoreList.size(); i++) { - scoreList.get(i).put("ranking", i + 1); - } - - - /* HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); - Configure config = Configure.newBuilder().bind("scoreList", policy).build(); - HashMap map = new HashMap<>(); - map.put("year", year); - map.put("sex", isMenWomen == 1 ? '男性' : '女'); - map.put("scoreList", scoreList); - String fileName = "%s年运动会%s子积分表".formatted(year, isMenWomen == 1 ? '男性' : '女'); - - response.addHeader("Content-Type", "application/octet-stream"); - response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx"); - XWPFTemplate.compile(officeTemplateUtil.getPath("activity_getYear8"), config).render(map).writeAndClose(response.getOutputStream());*/ - } - public static Double getDouble(NutMap o) { return o.getDouble("score"); } - @At - @Ok("void") - @SaCheckLogin - public void doExport8ByActivity(HttpServletResponse response, String activityId, Integer isMenWomen) throws Exception { - List result = new ArrayList<>(); - - List unionList = sysUnionService.query(); - unionList.forEach(u -> { - NutMap nutMap = new NutMap(); - nutMap.setv("unionname", u.getName()); - double score = 0; - for (int i = 1; i <= 2; i++) { - Sql sql = Sqls.create(""" - SELECT - SUM( ar.integral ) score - FROM - activity_results ar - LEFT JOIN activity_event eve ON ar.eventId = eve.id - LEFT JOIN activity_school `as` ON `as`.id = ar.activityId - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.and("activityId", "=", activityId); - cnd.and("ar.unionId", "=", u.getId()); - if (i == 1) { - cnd.and("eve.isMenWomen", "=", isMenWomen); - sql.setCondition(cnd); - List list = baseService.listMap(sql); - score += list.get(0).getDouble("score"); - } else { - cnd.and("eve.isInterest", "=", 1); - sql.setCondition(cnd); - List list = baseService.listMap(sql); - score += list.get(0).getDouble("score") * 0.5; - } - } - nutMap.setv("score", score); - result.add(nutMap); - }); - List scoreList = result.stream().sorted(Comparator.comparing(ActivitySportsScoreStatisticsController::getDouble).reversed()).collect(Collectors.toList()).subList(0, 8); - - for (int i = 0; i < scoreList.size(); i++) { - scoreList.get(i).put("ranking", i + 1); - } - - /*HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); - Configure config = Configure.newBuilder().bind("scoreList", policy).build(); - HashMap map = new HashMap<>(); - map.put("sex", isMenWomen == 1 ? '男性' : '女'); - map.put("scoreList", scoreList); - String fileName = "%s子积分表".formatted(isMenWomen == 1 ? '男性' : '女'); - - response.addHeader("Content-Type", "application/octet-stream"); - response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx"); - XWPFTemplate.compile(officeTemplateUtil.getPath("activity_getYear8"), config).render(map, response.getOutputStream());*/ - } @At @Ok("void") - @SaCheckLogin + @SaCheckPermission("activity.score.statistics") public void doExcelCj(String activityId, String unionId, HttpServletResponse response) throws IOException { Sql sql = Sqls.create(""" SELECT un.unioncode, - un.unionname, + un.name unionname, us.loginname, us.username, us.sex, diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsStatisticsTypeExportController.java b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsStatisticsTypeExportController.java index b987baa9..9651f920 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsStatisticsTypeExportController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/controller/ActivitySportsStatisticsTypeExportController.java @@ -6,12 +6,14 @@ 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.SaCheckLogin; +import cn.dev33.satoken.annotation.SaCheckPermission; import com.budwk.app.base.service.BaseService; import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.sys.models.Sys_union; import com.budwk.app.sys.services.SysUnionService; import com.budwk.app.zhgh.activity.sports.models.ActivitySchool; import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent; +import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -48,7 +50,8 @@ public class ActivitySportsStatisticsTypeExportController { @Ok("void") @At - @SaCheckLogin + @ApiOperation("年度男子团体总分/年度女子团体总分") + @SaCheckPermission("activity.score.statistics") public void getYear8(Integer isMenWomen, Integer year, HttpServletResponse response) { ArrayList resultMap = new ArrayList<>(); List unionList = sysUnionService.query(); @@ -90,7 +93,7 @@ public class ActivitySportsStatisticsTypeExportController { unionMap.put(a.getName(), sexScore + (qwScore * 0.5)); }); unionMap.put("总分", scoreSum.get()); - unionMap.put("分工会", unionMap.getString("unionname")); + unionMap.put("分工会", unionMap.getString("name")); resultMap.add(unionMap); }); @@ -120,7 +123,8 @@ public class ActivitySportsStatisticsTypeExportController { @Ok("void") @At - @SaCheckLogin + @ApiOperation("年度团体总分") + @SaCheckPermission("activity.score.statistics") public void getAnnualResults(Integer year, HttpServletResponse response) { ArrayList resultMap = new ArrayList<>(); @@ -150,7 +154,7 @@ public class ActivitySportsStatisticsTypeExportController { unionMap.put(x.getName(), score); }); unionMap.put("总分", scoreSum.get()); - unionMap.put("分工会", unionMap.getString("unionname")); + unionMap.put("分工会", unionMap.getString("name")); resultMap.add(unionMap); }); labelList.add("总分"); @@ -180,6 +184,8 @@ public class ActivitySportsStatisticsTypeExportController { @At @Ok("void") + @SaCheckPermission("activity.score.statistics") + @ApiOperation("男子项目分工会积分/女子项目分工会积分") public void isMaleFemale(String activityId, String sex, Integer awardsMode, HttpServletResponse response) { NutMap map = new NutMap(); List result = new ArrayList<>(); @@ -205,13 +211,13 @@ public class ActivitySportsStatisticsTypeExportController { if (awardsMode < 3) { cndX.and("eve.projectType", "=", awardsMode); cndX.and("eve.isInterest", "=", false); - cndX.and("eve.isMenWomen", "=", sex.equals("男性") ? 1 : 2); + cndX.and("eve.isMenWomen", "=", sex.equals("男") ? 1 : 2); } if (awardsMode == 3) { cndX.and("eve.isInterest", "=", true); } if (awardsMode == 4) { - cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("eve.isMenWomen", "is", null)); + cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("eve.isMenWomen", "is", null)); } cndX.and(new Static("1=1 order by case ba.`name` when '甲组' then 1 when '乙组' then 2 when '丙组' then 3 when '丁组' then 4 when '团体' then 5 end")); sqlX.setCondition(cndX); @@ -236,11 +242,11 @@ public class ActivitySportsStatisticsTypeExportController { Cnd cndC = Cnd.NEW(); if ((awardsMode == 1 && event.getString("awardsMode").equals("1")) || (awardsMode == 2 && event.getString("awardsMode").equals("2"))) { cndC.and("ev.isInterest", "=", false); - cndC.and("ev.isMenWomen", "=", sex.equals("男性") ? 1 : 2); + cndC.and("ev.isMenWomen", "=", sex.equals("男") ? 1 : 2); } else if (awardsMode == 3) { cndC.and("ev.isInterest", "=", true); } else if (awardsMode == 4) { - cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("ev.isMenWomen", "is", null)); + cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("ev.isMenWomen", "is", null)); } cndC.and("ar.eventId", "=", event.getString("eventid")); cndC.and("ar.unionid", "=", sys_union.getId()); @@ -296,9 +302,9 @@ public class ActivitySportsStatisticsTypeExportController { @At @Ok("void") + @SaCheckPermission("activity.score.statistics") + @ApiOperation("单子单项前八/女子单项前八/团体项目前八") public void isTopEight(String activityId, String sex, Integer awardsMode, HttpServletResponse response) { - NutMap map = new NutMap(); - List result = new ArrayList<>(); Cnd cndX = Cnd.NEW(); //查询所有的项目 Sql sqlX = Sqls.create(""" @@ -315,7 +321,7 @@ public class ActivitySportsStatisticsTypeExportController { """); cndX.and("ev.activityId", "=", activityId); if (awardsMode == 1) { - cndX.and("eve.isMenWomen", "!=", sex.equals("男性") ? 2 : 1); + cndX.and("eve.isMenWomen", "!=", sex.equals("男") ? 2 : 1); cndX.and("eve.projectType", "=", 1); } else { @@ -330,7 +336,7 @@ public class ActivitySportsStatisticsTypeExportController { for (int i = 0; i < 8; i++) { NutMap nutMap = new NutMap(); - Sql sqlC = Sqls.create(""); + Sql sqlC; Cnd cnd = Cnd.NEW(); if (awardsMode == 1) { sqlC = Sqls.create(""" @@ -386,12 +392,12 @@ public class ActivitySportsStatisticsTypeExportController { eventList.forEach(v -> { entityList.add(new ExcelExportEntity(v.getString("label"), v.getString("label"), 40)); }); - String sex2 = awardsMode == 2 ? "团体" : sex.equals("男性") ? "男子" : "女子"; + String sex2 = awardsMode == 2 ? "团体" : sex.equals("男") ? "男子" : "女子"; try { ExportParams exportParams = new ExportParams(); exportParams.setType(ExcelType.XSSF); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entityList, nutMaps); - CommonDownloadUtil.download("项目前八.xlsx", workbook, response); + CommonDownloadUtil.download(sex2 + "项目前八.xlsx", workbook, response); } catch (Exception e) { e.printStackTrace(); } @@ -402,9 +408,10 @@ public class ActivitySportsStatisticsTypeExportController { @At @Ok("void") + @SaCheckPermission("activity.score.statistics") + @ApiOperation("男子总分前八/女子总分前八") public void isScoreTopEight(String activityId, String sex, HttpServletResponse response) { - NutMap map = new NutMap(); List result = new ArrayList<>(); Cnd cndX = Cnd.NEW(); //查询所有的项目 @@ -421,7 +428,7 @@ public class ActivitySportsStatisticsTypeExportController { LEFT JOIN activity_basic_settings ba ON eve.competitionCategory = ba.id $condition """); cndX.and("ev.activityId", "=", activityId); - cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("eve.isMenWomen", "is", null)); + cndX.and(Cnd.exps("eve.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("eve.isMenWomen", "is", null)); cndX.and(new Static("1=1 order by case ba.`name` when '甲组' then 1 when '乙组' then 2 when '丙组' then 3 when '丁组' then 4 when '团体' then 5 end")); sqlX.setCondition(cndX); List eventList = baseService.list(sqlX); @@ -445,7 +452,7 @@ public class ActivitySportsStatisticsTypeExportController { LEFT JOIN activity_event ev ON ar.eventId = ev.id $condition """); Cnd cndC = Cnd.NEW(); - cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男性") ? 1 : 2).or("ev.isMenWomen", "is", null)); + cndC.and(Cnd.exps("ev.isMenWomen", "=", sex.equals("男") ? 1 : 2).or("ev.isMenWomen", "is", null)); cndC.and("ar.unionid", "=", sys_union.getId()); cndC.and("ar.eventId", "=", event.getString("eventid")); cndC.and("ar.activityId", "=", activityId); diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpApplyController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpApplyController.java index 26636ef6..9172c36e 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpApplyController.java @@ -13,6 +13,8 @@ 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.sys.models.Sys_config; +import com.budwk.app.sys.utils.DateUtil; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.staffbenefit.difficulthelp.models.DifficultHelpInfo; @@ -34,6 +36,7 @@ import org.nutz.mvc.annotation.Param; import java.util.Date; import java.util.List; +import java.util.Map; /** * @version 1.0 @@ -75,6 +78,32 @@ public class DifficultHelpApplyController { public void h5() { } + @At + @ApiOperation("获取申请次数和时间") + @SaCheckPermission("member.apply.submit") + public Result getIsCanPlay() { + //获取申请次数,不想再写一个接口, are you ok? .and("zt", "=", 600) + int applyCount = dao.count(DifficultHelpInfo.class, Cnd.where("proxyUserId", "=", SecurityUtil.getUserId())); + Sys_config startConfig = dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "DifficultyApplyStartTime")); + Sys_config endConfig = dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "DifficultyApplyEndTime")); + if(startConfig != null && endConfig != null) { + // 获取今天的日期 + String today = cn.hutool.core.date.DateUtil.today(); + // 开始 + String start = DateUtil.getYear() + "-" + startConfig.getConfigValue(); + // 结束 + String end = DateUtil.getYear() + "-" + endConfig.getConfigValue(); + // 比较 + int startResult = cn.hutool.core.date.DateUtil.compare(cn.hutool.core.date.DateUtil.parse(today), cn.hutool.core.date.DateUtil.parse(start)); + int endResult = cn.hutool.core.date.DateUtil.compare(cn.hutool.core.date.DateUtil.parse(today), cn.hutool.core.date.DateUtil.parse(end)); + + String time = startConfig.getConfigValue().replace("-", "月") + "日-" + endConfig.getConfigValue().replace("-", "月") + "日"; + return Result.success(Map.of("applyCount", applyCount,"time", time, "result", startResult >=0 && endResult <= 0)); + } else { + return Result.success(Map.of("applyCount", applyCount,"time", "", "result", false)); + } + } + @At @ApiOperation("保存申请") @SaCheckPermission("member.apply.submit") diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionApprovalController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionApprovalController.java index 4f95cc7d..f07fbc79 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionApprovalController.java @@ -73,7 +73,9 @@ public class DifficultHelpBranchUnionApprovalController { info.unitName, info.unionName, info.subsidyStandards, - info.applyTime, + LEFT(info.applyTime, 10) AS applyTime, + info.applyCount, + info.mobile, ins.id AS instanceId, ins.businessNo, ins.state instanceState, diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionLeaderApprovalController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionLeaderApprovalController.java new file mode 100644 index 00000000..6d8f320e --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpBranchUnionLeaderApprovalController.java @@ -0,0 +1,128 @@ +package com.budwk.app.zhgh.staffbenefit.difficulthelp.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.result.Result; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.staffbenefit.difficulthelp.service.DifficultHelpCommonService; +import com.budwk.app.zhgh.staffbenefit.difficulthelp.vo.DifficultHelpPageParam; +import io.swagger.annotations.ApiOperation; +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.List; + +/** + * @version 1.0 + * @Author zzr + * @name:DifficultHelpBranchUnionApprovalController + * @Date 2025/7/31 11:47 + * @注释 + */ +@IocBean +@Ok("json") +@ApiOperation("困难补助二级党组织审核") +@At("/platform/difficultHelp/unionLeaderApproval") +public class DifficultHelpBranchUnionLeaderApprovalController { + + @Inject + private Dao dao; + @Inject + private DifficultHelpCommonService difficultHelpCommonService; + + @At("") + @SaCheckPermission("difficultHelp.unionLeaderApproval") + @Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/unionLeaderApproval/index.html") + public void index() { + } + + @At + @SaCheckPermission("difficultHelp.unionLeaderApproval") + @Ok("beetl:/platform/zhgh/staffbenefit/difficulthelp/unionLeaderApproval/form.html") + public void form() { + } + + @At + @SaCheckPermission("h5.difficultHelp.unionLeaderApproval") + @Ok("beetl:/platform/zhghh5/staffbenefit/difficulthelp/unionLeaderApproval/index.html") + public void h5() { + } + + + @At + @ApiOperation("困难补助分工会审核列表") + @SaCheckPermission("difficultHelp.unionLeaderApproval") + public Result pageData(DifficultHelpPageParam pageParam) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.proxyUserName, + info.proxyLoginName, + info.userName, + info.loginName, + info.unitName, + info.unionName, + info.subsidyStandards, + LEFT(info.applyTime, 10) AS applyTime, + info.applyCount, + info.mobile, + 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 + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN difficult_help_info 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(); + pageParam.buildSearch(cnd, "info."); + + cnd.and("t.taskName", "=", "36ebafda-44c2-4bd3-bd7f-10839a575a0d"); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + + if (pageParam.getAudit()) { + 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.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { + cnd.desc("t.createdAt"); + cnd.desc("info.applyTime"); + } else { + cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); + } + cnd.groupBy("t.id"); + sql.setCondition(cnd); + + Pagination pagination = difficultHelpCommonService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); + return Result.success().addData(pagination); + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpMineController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpMineController.java index c5120d0d..46471a69 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpMineController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpMineController.java @@ -75,7 +75,9 @@ public class DifficultHelpMineController { info.unitName, info.unionName, info.subsidyStandards, - info.applyTime, + LEFT(info.applyTime, 10) AS applyTime, + info.applyCount, + info.mobile, ins.id AS instanceId, ins.businessNo, ins.state instanceState, diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpReadingController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpReadingController.java index 8efb5355..d964ce78 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpReadingController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpReadingController.java @@ -1,13 +1,46 @@ package com.budwk.app.zhgh.staffbenefit.difficulthelp.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +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.CommonDownloadUtil; +import com.budwk.app.base.utils.MoneyUtil; +import com.budwk.app.base.utils.OfficePlusUtil; +import com.budwk.app.base.utils.SysOfficeTemplateUtil; import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.sys.models.Sys_union; +import com.budwk.app.sys.models.Sys_user; +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.web.commons.base.Globals; +import com.budwk.app.zhgh.activity.declarereimbursement.vo.ActivityBudgetVO; +import com.budwk.app.zhgh.dayofficework.unionReimburse.model.UnionReimburse; +import com.budwk.app.zhgh.staffbenefit.difficulthelp.models.DifficultHelpInfo; import com.budwk.app.zhgh.staffbenefit.difficulthelp.service.DifficultHelpCommonService; import com.budwk.app.zhgh.staffbenefit.difficulthelp.vo.DifficultHelpPageParam; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.data.PictureRenderData; +import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy; +import com.google.zxing.BarcodeFormat; +import com.google.zxing.client.j2se.MatrixToImageWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.QRCodeWriter; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.ddr.poi.html.HtmlRenderPolicy; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -16,11 +49,26 @@ 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.Lang; +import org.nutz.lang.random.R; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.*; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + /** * @version 1.0 * @Author zzr @@ -32,6 +80,7 @@ import org.nutz.mvc.annotation.Param; @Ok("json") @ApiOperation("困难补助汇总阅览") @At("/platform/difficultHelp/reading") +@Slf4j public class DifficultHelpReadingController { @Inject @@ -40,6 +89,10 @@ public class DifficultHelpReadingController { private FlowEngine flowEngine; @Inject private DifficultHelpCommonService difficultHelpCommonService; + @Inject + private SysUserService sysUserService; + @Inject + private SysOfficeTemplateUtil sysOfficeTemplateUtil; @At("") @SaCheckPermission("difficultHelp.reading") @@ -62,7 +115,9 @@ public class DifficultHelpReadingController { info.unitName, info.unionName, info.subsidyStandards, - info.applyTime, + LEFT(info.applyTime, 10) AS applyTime, + info.applyCount, + info.mobile, ins.id AS instanceId, ins.businessNo, ins.state instanceState, @@ -104,4 +159,265 @@ public class DifficultHelpReadingController { flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); return Result.success(); } + + @At + @Ok("void") + public void doExportAllApply(DifficultHelpPageParam pageParam, HttpServletResponse response) throws Exception { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.proxyUserName, + info.proxyLoginName, + info.userName, + info.loginName, + info.unitName, + info.unionName, + info.subsidyStandards, + LEFT(info.applyTime, 10) AS applyTime, + info.applyCount, + info.mobile, + info.sex, + info.homeIncome, + info.homeNumber, + info.position, + info.officialCapacity, + info.homeAddress, + info.bankOfDeposit, + info.bankCardNum, + info.reason, + info.applyTime as fullApplyTime, + info.familyList + FROM + difficult_help_info info + $condition + """); + Cnd cnd = Cnd.NEW(); + pageParam.buildSearch(cnd, "info."); + cnd.groupBy("info.id"); + sql.setCondition(cnd); + List list = difficultHelpCommonService.listMap(sql); + + response.setContentType("application/octet-stream"); + response.setHeader("content-disposition", "attachment;filename=" + + URLEncoder.encode("申请表汇总.zip", "UTF-8")); + + try (ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream())) { + for (int i = 0; i < list.size(); i++) { + NutMap record = list.get(i); + + HashMap docData = new HashMap<>(); + docData.put("unionName", record.getString("unitName")); + docData.put("proxyUserName", record.getString("proxyUserName")); + docData.put("sex", record.getString("sex")); + docData.put("loginName", record.getString("loginName")); + docData.put("unitName", record.getString("unitName")); + docData.put("homeIncome", record.getDouble("homeIncome")); + docData.put("homeNumber", record.getInt("homeNumber")); + docData.put("position", record.getString("position")); + docData.put("officialCapacity", record.getString("officialCapacity")); + docData.put("mobile", record.getString("mobile")); + docData.put("userName", record.getString("userName")); + docData.put("homeAddress", record.getString("homeAddress")); + docData.put("bankOfDeposit", record.getString("bankOfDeposit")); + docData.put("bankCardNum", record.getString("bankCardNum")); + docData.put("reason", record.getString("reason")); + docData.put("applyTime", DateUtil.format(DateUtil.parse(record.getString("applyTime")), "yyyy年MM月dd日")); + docData.put("schoolname", "中国地质大学(武汉)"); + docData.put("year", DateUtil.format(DateUtil.parse(record.getString("applyTime")), "yyyy")); + + String familyListStr = record.getString("familyList"); + if (StrUtil.isNotBlank(familyListStr)) { + docData.put("familyList", JSONUtil.toList(familyListStr, Object.class)); + } else { + docData.put("familyList", new ArrayList<>()); + } + + String fileName = (i + 1) + record.getString("userName") + "申请表.docx"; + zipOutputStream.putNextEntry(new ZipEntry(fileName)); + + LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); + Configure config = Configure.builder().bind("familyList", policy).build(); + + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("difficulty_apply"), config) + .render(docData) + .write(zipOutputStream); + zipOutputStream.closeEntry(); + } + zipOutputStream.flush(); + } + } + + + @At + @Ok("void") + public void doExportApply(String id, HttpServletResponse response, Boolean print) throws Exception { + DifficultHelpInfo difficultHelp = difficultHelpCommonService.fetch(id); + if (difficultHelp == null) { + throw new RuntimeException("该条记录不存在"); + } + HashMap docData = new HashMap<>(); + + docData.put("unionName", difficultHelp.getUnitName()); + docData.put("proxyUserName", difficultHelp.getProxyUserName()); + docData.put("sex", difficultHelp.getSex()); + docData.put("loginName", difficultHelp.getLoginName()); + docData.put("unitName", difficultHelp.getUnitName()); + docData.put("homeIncome", difficultHelp.getHomeIncome()); + docData.put("homeNumber", difficultHelp.getHomeNumber()); + docData.put("position", difficultHelp.getPosition()); + docData.put("officialCapacity", difficultHelp.getOfficialCapacity()); + docData.put("mobile", difficultHelp.getMobile()); + docData.put("userName", difficultHelp.getUserName()); + docData.put("homeAddress", difficultHelp.getHomeAddress()); + docData.put("bankOfDeposit", difficultHelp.getBankOfDeposit()); + docData.put("bankCardNum", difficultHelp.getBankCardNum()); + docData.put("reason", difficultHelp.getReason()); + docData.put("applyTime", DateUtil.format(difficultHelp.getApplyTime(), "yyyy-MM-dd")); + docData.put("schoolname","中国地质大学(武汉)"); + docData.put("year",DateUtil.format(difficultHelp.getApplyTime(), "yyyy")); + + docData.put("familyList", difficultHelp.getFamilyList() != null ? difficultHelp.getFamilyList() : new ArrayList<>()); + + LoopRowTableRenderPolicy familyPolicy = new LoopRowTableRenderPolicy(); + Configure config = Configure.builder() + .bind("familyList", familyPolicy) + .build(); + + String templateName= "difficulty_apply"; + if (print) { + exportAsPDF(templateName, docData, config, difficultHelp, response); + } else { + exportAsWord(templateName, docData, config, difficultHelp,response); + } + } + + @At + private void exportAsPDF(String templateName, HashMap docData,Configure config, + DifficultHelpInfo difficultHelp, HttpServletResponse response) throws Exception { + String fileName = "中国地质大学(武汉)困难慰问申请表_" + difficultHelp.getUserName() + "_" + + DateUtil.format(difficultHelp.getApplyTime(), "yyyyMMdd") + ".pdf"; + + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate(templateName),config) + .render(docData) + .writeAndClose(byteArrayOutputStream); + byte[] bytes = byteArrayOutputStream.toByteArray(); + File sourceFile = File.createTempFile("file_convert_origin", ".docx"); + Files.write(sourceFile.toPath(), bytes, StandardOpenOption.WRITE); + + File pdfFile = File.createTempFile("file_convert", ".pdf"); + OfficePlusUtil.convert(sourceFile.getPath(), pdfFile.getPath()); + CommonDownloadUtil.download(fileName, IoUtil.readBytes(FileUtil.getInputStream(pdfFile)), response); + // 删除临时文件 + FileUtil.del(sourceFile); + FileUtil.del(pdfFile.toPath()); + } catch (IOException e) { + log.error("困难慰问申请表导出PDF失败,id:{},错误信息:{}", difficultHelp.getId(), e.getMessage()); + } + } + + @At + private void exportAsWord(String templateName, HashMap docData,Configure config, + DifficultHelpInfo difficultHelp, HttpServletResponse response) throws Exception { + String fileName = "中国地质大学(武汉)困难慰问申请表_" + difficultHelp.getUserName() + "_" + + DateUtil.format(difficultHelp.getApplyTime(), "yyyyMMdd") + ".docx"; + + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate(templateName),config) + .render(docData) + .writeAndClose(byteArrayOutputStream); + CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response); + } catch (IOException e) { + log.error("困难慰问申请表导出Word失败,id:{},错误信息:{}", difficultHelp.getId(), e.getMessage()); + } + } + + @At + @Ok("void") + public void exportSummary(DifficultHelpPageParam pageParam,String flag, + HttpServletResponse response) throws Exception { + NutMap result = new NutMap(); + Sql sql = Sqls.create(""" + SELECT + info.userName, + info.loginName, + info.sex, + info.idCard, + us.age, + info.position, + info.officialCapacity, + concat(info.position, '/', info.officialCapacity) as zwzc, + info.unitName, + info.mobile, + info.reason, + info.level, + concat(info.homeIncome, '万元') as homeIncome, + info.homeNumber, + info.subsidyStandards, + info.bankOfDeposit, + info.bankCardNum, + info.applyCount + FROM + difficult_help_info info + LEFT JOIN `vw_user` us ON info.userId = us.id + $condition + """); + Cnd cnd = Cnd.NEW(); + pageParam.buildSearch(cnd, "info."); + cnd.groupBy("info.id"); + sql.setCondition(cnd); + List list = difficultHelpCommonService.listMap(sql); + Sys_user user = sysUserService.fetch(SecurityUtil.getUserId()); + + for (int i = 0; i < list.size(); i++) { + list.get(i).put("index", (i + 1)); + } + + result.put("schoolName", "中国地址大学(武汉)"); + result.put("year", DateUtil.format(new Date(), "yyyy")); + result.put("applyTime", DateUtil.format(new Date(), "yyyy年MM月dd日")); + result.put("proxyUserName",SecurityUtil.getUserUsername() ); + result.put("mobile", user.getMobile()); + result.put("da", list); + + String resource; + if ("xlsx".equals(flag)) { + resource = "difficulty_summary_xlsx"; + if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + resource = "difficulty_summary_school_xlsx"; + } + } else { + resource = "difficulty_summary"; + if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + resource = "difficulty_summary_school"; + } + } + + String fileName = "困难慰问汇总表_" + DateUtil.format(new Date(), "yyyyMMdd"); + + if ("xlsx".equals(flag)) { + try { + InputStream is = sysOfficeTemplateUtil.getTemplate(resource); + TemplateExportParams exportParams = new TemplateExportParams(is, null); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, result); + CommonDownloadUtil.download(fileName + ".xlsx", workbook, response); + } catch (Exception e) { + log.error("导出Excel汇总表失败", e); + throw new RuntimeException("导出Excel汇总表失败:" + e.getMessage()); + } + } else if ("docx".equals(flag)) { + try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { + Configure config = Configure.builder() + .bind("da", new LoopRowTableRenderPolicy()) + .build(); + + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate(resource), config) + .render(result) + .writeAndClose(out); + CommonDownloadUtil.download(fileName + ".docx", out.toByteArray(), response); + } + } + } + + } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpSchoolUnionApprovalController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpSchoolUnionApprovalController.java index 886b8b3b..a778b68e 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpSchoolUnionApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/controller/DifficultHelpSchoolUnionApprovalController.java @@ -1,12 +1,15 @@ package com.budwk.app.zhgh.staffbenefit.difficulthelp.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.ObjectUtil; 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.utils.PageUtil; import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.staffbenefit.difficulthelp.models.DifficultHelpInfo; import com.budwk.app.zhgh.staffbenefit.difficulthelp.service.DifficultHelpCommonService; import com.budwk.app.zhgh.staffbenefit.difficulthelp.vo.DifficultHelpPageParam; import io.swagger.annotations.ApiOperation; @@ -19,7 +22,9 @@ 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 org.nutz.mvc.annotation.Param; +import java.util.Date; import java.util.List; /** @@ -72,7 +77,9 @@ public class DifficultHelpSchoolUnionApprovalController { info.unitName, info.unionName, info.subsidyStandards, - info.applyTime, + LEFT(info.applyTime, 10) AS applyTime, + info.applyCount, + info.mobile, ins.id AS instanceId, ins.businessNo, ins.state instanceState, @@ -122,4 +129,13 @@ public class DifficultHelpSchoolUnionApprovalController { return Result.success().addData(pagination); } + @At + @ApiOperation("保存补助金额、级别") + @SaCheckPermission("difficultHelp.schoolUnionApproval") + @SLog(tag = "困难补助申请", msg = "保存申请,填写人: ${args[0].proxyUserName}") + public Result save(@Param("data") DifficultHelpInfo difficultHelpInfo) { + dao.updateIgnoreNull(difficultHelpInfo); + return Result.success(); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/models/DifficultHelpInfo.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/models/DifficultHelpInfo.java index 795ea8aa..7f16c9e5 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/models/DifficultHelpInfo.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/difficulthelp/models/DifficultHelpInfo.java @@ -114,7 +114,12 @@ public class DifficultHelpInfo extends BaseModel { private String idCard; @Column - @Comment("职务职称") + @Comment("职务") + @ColDefine(type = ColType.VARCHAR, width = 100) + private String position; + + @Column + @Comment("职称") @ColDefine(type = ColType.VARCHAR, width = 100) private String officialCapacity; @@ -140,7 +145,22 @@ public class DifficultHelpInfo extends BaseModel { private String homeAddress; @Column - @Comment("补助标准") + @Comment("家庭年总收入") + @ColDefine(type = ColType.VARCHAR, width = 200) + private Double homeIncome; + + @Column + @Comment("家庭人数") + @ColDefine(type = ColType.VARCHAR, width = 200) + private Integer homeNumber; + + @Column + @Comment("补助类型") + @ColDefine(type = ColType.VARCHAR, width = 500) + private String subsidy; + + @Column + @Comment("困难类型") @ColDefine(type = ColType.VARCHAR, width = 500) private String subsidyStandards; @@ -150,7 +170,7 @@ public class DifficultHelpInfo extends BaseModel { private List familyList; @Column - @Comment("申请理由") + @Comment("生活致困原因") @ColDefine(type = ColType.VARCHAR, width = 500) private String reason; @@ -168,4 +188,19 @@ public class DifficultHelpInfo extends BaseModel { @Comment("申请人签字") @ColDefine(type = ColType.VARCHAR, width = 500) private String sign; + + @Column + @Comment("申请次数") + @ColDefine(type = ColType.INT) + private Integer applyCount; + + @Column + @Comment("补助金额") + @ColDefine(type = ColType.VARCHAR, width = 200) + private Double money; + + @Column + @Comment("补助级别") + @ColDefine(type = ColType.VARCHAR, width = 200) + private String level; } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyController.java index fe25e882..308241b0 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyController.java @@ -73,10 +73,16 @@ public class AidFundApplyController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/apply/index.html") + @SaCheckPermission("h5.medicalMutualAid.aidFund.apply") + public void h5() { + } + @At @ApiOperation("查询申请状态") - @SaCheckPermission("medicalMutualAid.aidFund.apply") + @SaCheckPermission(value = {"medicalMutualAid.aidFund.apply", "h5.medicalMutualAid.aidFund.apply"}, mode = SaMode.OR) public Result canApply() { String aidFundMemberApplyEndTime = Globals.MyConfig.getString("AidFundMemberApplyEndTime"); if (StrUtil.isBlank(aidFundMemberApplyEndTime)) { diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyMineController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyMineController.java index d4057b4d..5b6c73e2 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyMineController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundApplyMineController.java @@ -63,6 +63,12 @@ public class AidFundApplyMineController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/applyMine/index.html") + @SaCheckPermission("h5.medicalMutualAid.aidFund.applyMine") + public void h5() { + } + @At @ApiOperation("分页查询") @SaCheckPermission(value = {"medicalMutualAid.aidFund.applyMine", "h5.medicalMutualAid.aidFund.applyMine"}, mode = SaMode.OR) diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundFoundationAuditController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundFoundationAuditController.java index 838600a9..e0f9599f 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundFoundationAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundFoundationAuditController.java @@ -9,6 +9,7 @@ import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.utils.PageUtil; import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.service.AidFundMemberChangeRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -51,6 +52,12 @@ public class AidFundFoundationAuditController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/foundationAudit/index.html") + @SaCheckPermission("h5.medicalMutualAid.aidFund.foundationAudit") + public void h5() { + } + @At @ApiOperation("分页查询") @SaCheckPermission(value = {"medicalMutualAid.aidFund.foundationAudit", "h5.medicalMutualAid.aidFund.foundationAudit"}, mode = SaMode.OR) @@ -112,7 +119,7 @@ public class AidFundFoundationAuditController { cnd.andEX("info.changeType", "=", changeType); cnd.and("t.taskName", "=", "85c7d148-44f5-4333-b854-ab225357fd3e"); -// cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); if (approval) { cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundManageController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundManageController.java index 3e739a67..44a6bfbc 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundManageController.java @@ -77,7 +77,7 @@ public class AidFundManageController { @At @ApiOperation("分页查询") - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) public Result pageData(AidFundPageForm pageForm) { Sql sql = Sqls.create(""" SELECT @@ -130,7 +130,7 @@ public class AidFundManageController { @At - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) @Ok("void") @ApiOperation("导出本年新进会员") public void exportNewMember(HttpServletResponse response) { @@ -166,7 +166,7 @@ public class AidFundManageController { @At - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) @ApiOperation("生成缴费名单") @Aop(TransAop.READ_COMMITTED) @SLog(tag = "基金会员-基金会员台账", msg = "生成缴费名单") @@ -177,7 +177,7 @@ public class AidFundManageController { } @At - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) @SLog(tag = "基金会员-基金会员台账", msg = "备份基金会员") @ApiOperation("备份基金会员") @Aop(TransAop.READ_COMMITTED) @@ -189,7 +189,7 @@ public class AidFundManageController { @At - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) @SLog(tag = "基金会员-基金会员台账", msg = "批量设置退会") @ApiOperation("批量设置退会") @Aop(TransAop.READ_COMMITTED) @@ -213,7 +213,7 @@ public class AidFundManageController { @At - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) @SLog(tag = "基金会员-基金会员台账", msg = "修改基金会员类型") @ApiOperation("修改基金会员类型") public Result doEditAidFundMemberUserType(String userId, String aidFundMemberUserType) { @@ -222,7 +222,7 @@ public class AidFundManageController { } @At - @SaCheckPermission(value = {"medicalMutualAid.aidFund.retirementAudit", "h5.medicalMutualAid.aidFund.retirementAudit"}, mode = SaMode.OR) + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) @SLog(tag = "基金会员-基金会员台账", msg = "更改基金会员状态") @ApiOperation("更改基金会员状态") @Aop(TransAop.READ_COMMITTED) @@ -239,4 +239,38 @@ public class AidFundManageController { } + @At + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) + public Result findOne(String userId){ + Sql sql = Sqls.create(""" + SELECT + us.username, + us.loginname, + us.mobile, + us.aidFundMemberUserType, + us.aidFundDeductTime, + us.arrivalAtSchoolDate, + us.sex, + us.unitName, + us.unionName + FROM + vw_user us + WHERE + us.id = '%s' + """.formatted(userId)); + View_user user = userService.fetchVO(sql, View_user.class); + return Result.success(user); + } + + + + @At + @SaCheckPermission(value = {"medicalMutualAid.aidFund.manage", "h5.medicalMutualAid.aidFund.manage"}, mode = SaMode.OR) + public Result findChangeRecordList(String userId){ + + List changeRecordList = aidFundMemberService.findChangeRecordList(userId); + return Result.success(changeRecordList); + } + + } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundRetirementAuditController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundRetirementAuditController.java index 49656bbd..8f445701 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundRetirementAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundRetirementAuditController.java @@ -46,6 +46,11 @@ public class AidFundRetirementAuditController { @SaCheckPermission("medicalMutualAid.aidFund.retirementAudit") public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/retirementAudit/index.html") + @SaCheckPermission("h5.medicalMutualAid.aidFund.retirementAudit") + public void h5() { + } @At diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundUnionAuditController.java index 204b4147..d051b2ff 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundUnionAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/controller/AidFundUnionAuditController.java @@ -48,6 +48,12 @@ public class AidFundUnionAuditController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/staffbenefit/medicalMutualAid/aidFund/unionAudit/index.html") + @SaCheckPermission("h5.medicalMutualAid.aidFund.unionAudit") + public void h5() { + } + @At @ApiOperation("分页查询") diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/AidFundMemberService.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/AidFundMemberService.java index 21aac065..106c9699 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/AidFundMemberService.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/AidFundMemberService.java @@ -2,6 +2,9 @@ package com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.service; import com.budwk.app.base.service.BaseService; import com.budwk.app.sys.models.Sys_user; +import org.nutz.lang.util.NutMap; + +import java.util.List; public interface AidFundMemberService extends BaseService { @@ -26,4 +29,7 @@ public interface AidFundMemberService extends BaseService { * @return */ Double getPayMoney(Sys_user user, Integer year); + + + List findChangeRecordList(String userId); } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/impl/AidFundMemberServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/impl/AidFundMemberServiceImpl.java index d27db4f7..618afc44 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/impl/AidFundMemberServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/medicalMutualAid/aidFund/service/impl/AidFundMemberServiceImpl.java @@ -11,8 +11,12 @@ import com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.model.AidFundMem import com.budwk.app.zhgh.staffbenefit.medicalMutualAid.aidFund.service.AidFundMemberService; 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.SqlExpressionGroup; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Strings; +import org.nutz.lang.util.NutMap; import java.util.ArrayList; import java.util.Calendar; @@ -117,5 +121,52 @@ public class AidFundMemberServiceImpl extends BaseServiceImpl implements AidFund return (year + 1 - beforeYear) * money + (year - beforeYear) * money * 0.1; } + @Override + public List findChangeRecordList(String userId) { + Sql sql = Sqls.create(""" + SELECT + info.*, + us.sex, + us.username, + us.loginname, + us.arrivalAtSchoolDate, + us.mobile, + us.unitName, + us.unionName, + us.aidFundMemberUserType, + 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 + `aid_fund_member_change_record` info + LEFT JOIN vw_user us ON us.id = info.userId + 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(); + SqlExpressionGroup group = new SqlExpressionGroup(); + group.or("ins.state", "=", 20); + group.or("ins.state", "is", null); + cnd.and(group); + cnd.and("info.userId", "=", userId); + sql.setCondition(cnd); + return listMap(sql); + } + } diff --git a/src/main/resources/static/components/module/activity/score/isMaleFemale.vue b/src/main/resources/static/components/module/activity/score/isMaleFemale.vue index 103b41a3..b2733fbf 100644 --- a/src/main/resources/static/components/module/activity/score/isMaleFemale.vue +++ b/src/main/resources/static/components/module/activity/score/isMaleFemale.vue @@ -99,30 +99,31 @@ module.exports = { }, methods: { async isMaleFemale() { - + this.tableLoading = true this.tableColumns = [] this.tableColumns2 = [] this.tableColumns3 = [] this.tableColumns4 = [] this.tableColumns5 = [] this.tableData = [] - const {data} = await this.$axios.post("/platform/activity/score/statistics/isMaleFemale", this.Form) - data.eventList.forEach(v => { - if (v.baname == "甲组" || v.baname == "乙组" || v.baname == "丙组" || v.baname == "丁组") { - this.tableColumns.push({label: v.isMenWomen ? v.label.substr(4) : v.label.substr(2), prop: v.label}) - } else { - - this.tableColumns5.push({label: v.label, prop: v.label}) - + try { + const {data} = await this.$axios.post("/platform/activity/score/statistics/isMaleFemale", this.Form) + data.eventList.forEach(v => { + if (v.baname == "甲组" || v.baname == "乙组" || v.baname == "丙组" || v.baname == "丁组") { + this.tableColumns.push({label: v.isMenWomen ? v.label.substr(4) : v.label.substr(2), prop: v.label}) + } else { + this.tableColumns5.push({label: v.label, prop: v.label}) + } + }) + this.tableData = data.score.sort(this.compare("totalScore")) + if (this.Form.unionname) { + this.tableData = this.tableData.filter(v => v.unionname == this.Form.unionname) } - }) - - this.tableData = data.score.sort(this.compare("totalScore")) - if (this.Form.unionname) { - this.tableData = this.tableData.filter(v => v.unionname == this.Form.unionname) + }catch ( e){ + this.$message.error(e.msg) + }finally { + this.tableLoading = false } - - }, compare(prop) { diff --git a/src/main/resources/static/components/module/activity/score/scoreTopEight.vue b/src/main/resources/static/components/module/activity/score/scoreTopEight.vue index 044ac321..aff0847a 100644 --- a/src/main/resources/static/components/module/activity/score/scoreTopEight.vue +++ b/src/main/resources/static/components/module/activity/score/scoreTopEight.vue @@ -2,8 +2,8 @@ - + v-loading="tableLoading" size="mini" fixed> + + width="80px"> @@ -41,12 +41,18 @@ module.exports = { methods: { async isScoreTopEight() { - this.tableColumns = [] - this.tableData = [] - const {data} = await this.$axios.post(loc() + "/isScoreTopEight", this.Form) - const table = data.score.sort(this.compare("totalScore")) - this.tableData = table.slice(0, 8) - + try { + this.tableLoading = true + this.tableColumns = [] + this.tableData = [] + const {data} = await this.$axios.post(loc() + "/isScoreTopEight", this.Form) + const table = data.score.sort(this.compare("totalScore")) + this.tableData = table.slice(0, 8) + } catch (e) { + this.$message.error(e.msg) + } finally { + this.tableLoading = false + } }, diff --git a/src/main/resources/static/components/module/activity/score/topEight.vue b/src/main/resources/static/components/module/activity/score/topEight.vue index 9a4c7c9c..02378b5a 100644 --- a/src/main/resources/static/components/module/activity/score/topEight.vue +++ b/src/main/resources/static/components/module/activity/score/topEight.vue @@ -1,5 +1,5 @@