From 02150326e0e5be14ac1da411a9c9e9a252add53a Mon Sep 17 00:00:00 2001 From: Paidax Date: Wed, 4 Dec 2024 08:51:01 +0800 Subject: [PATCH] commit --- .../sys/SysHomeActivityController.java | 134 ++ .../platform/sys/SysHomeController.java | 90 +- .../java/io/v/nutz/sys/models/Sys_user.java | 6 +- .../sys/param/SysHomeActivityPageForm.java | 13 + .../sys/services/SysHomeActivityService.java | 8 + .../impl/SysHomeActivityServiceImpl.java | 15 + .../v/nutz/zhgh/data/constant/SourceData.java | 144 +- .../zhgh/data/constant/UserChangeType.java | 6 +- .../java/io/v/nutz/zhgh/member/UserMode.java | 9 +- .../member/constant/MemberApplyState.java | 4 +- .../constant/MemberChangeApplyState.java | 4 +- .../member/constant/MemberChangeOrigin.java | 6 +- .../zhgh/member/constant/MemberStatus.java | 9 +- .../controller/MemberAgendaController.java | 10 +- .../controller/MemberCommonController.java | 72 +- .../controller/MemberSelfAgentController.java | 2 +- .../apply/MemberApplyAuditController.java | 10 +- .../apply/MemberApplyController.java | 118 +- .../MemberChangeApplyAuditController.java | 107 +- .../change/MemberChangeApplyController.java | 11 +- .../change/MemberChangeManageController.java | 420 +++-- .../change/MemberChangeRecordsController.java | 79 +- .../check/MemberCheckPersonalController.java | 6 +- .../check/MemberCheckSchoolController.java | 4 +- .../check/MemberCheckTaskController.java | 5 +- .../check/MemberCheckUnionController.java | 36 +- .../info/MemberBatchMakeController.java | 38 +- .../info/MemberDataManageController.java | 24 +- .../info/MemberGroupInfoController.java | 21 +- .../controller/info/MemberMakeController.java | 20 +- .../info/MemberPersonInfoController.java | 1 - .../inquire/MemberAnalysisController.java | 18 +- .../inquire/MemberDataBoardController.java | 12 +- .../inquire/MemberHistoyController.java | 158 +- .../MemberInquireIntegrateController.java | 136 +- .../inquire/MemberStatisticsController.java | 16 +- .../inquire/MemberUserTypeController.java | 6 +- .../member/handle/MemberApplyAuditHandle.java | 102 +- .../member/handle/MemberApplyToDoHandler.java | 92 +- .../handle/MemberChangeAuditHandle.java | 53 +- .../member/handle/MemberChangeHandle.java | 228 ++- .../handle/MemberChangeToDoHandler.java | 200 ++- .../zhgh/member/model/MemberApplyRecord.java | 3 +- .../zhgh/member/model/MemberChangeRecord.java | 41 +- .../zhgh/member/model/MemberCheckTask.java | 5 +- .../member/model/MemberCheckUnionTask.java | 2 +- .../service/MemberCheckPersonalService.java | 1 + .../member/service/MemberHistoryService.java | 16 +- .../zhgh/member/service/MemberService.java | 11 - .../impl/MemberCheckPersonalServiceImpl.java | 2 +- .../impl/MemberHistoryServiceImpl.java | 33 +- .../service/impl/MemberServiceImpl.java | 36 +- .../nutz/zhgh/member/template/MemberTemp.java | 37 + .../v/nutz/zhgh/member/utils/MemberUtils.java | 26 +- .../WelfareMemberCheckUnionController.java | 6 +- .../components/member/MemChangeApply.vue | 182 +- .../components/member/MemChangeRecords.vue | 2 +- .../static/components/member/MemberInfo.vue | 1584 +++++++---------- .../resources/views/layouts/platform.html | 4 +- src/main/resources/views/mobile/home.html | 2 +- .../views/platform/sys/home/activity.js | 2 +- .../resources/views/platform/sys/home/todo.js | 34 +- .../platform/sys/homeActivity/index.html | 123 ++ 63 files changed, 2362 insertions(+), 2243 deletions(-) create mode 100644 src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java create mode 100644 src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java create mode 100644 src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java create mode 100644 src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java create mode 100644 src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java create mode 100644 src/main/resources/views/platform/sys/homeActivity/index.html diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java new file mode 100644 index 0000000..584c2a6 --- /dev/null +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeActivityController.java @@ -0,0 +1,134 @@ +package io.v.nutz.sys.controllers.platform.sys; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.sys.models.Sys_home_activity; +import io.v.nutz.sys.param.SysHomeActivityPageForm; +import io.v.nutz.sys.services.SysHomeActivityService; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.activity.models.ActivityUserScope; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.*; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.Daos; +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 javax.validation.Valid; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@IocBean +@At("/platform/sys/homeActivity") +@Ok("json:full") +public class SysHomeActivityController { + + @Inject + private Dao dao; + @Inject + private SysHomeActivityService sysHomeActivityService; + + @At("") + @Ok("beetl:/platform/sys/homeActivity/index.html") + @RequiresPermissions("sys.homeActivity") + public void index() { + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object pageData(SysHomeActivityPageForm pageForm) { + Cnd cnd = Cnd.NEW(); + cnd.and(Cnd.likeEX("`name`",pageForm.getName())); + cnd.desc("sortNo"); + Pagination pagination = sysHomeActivityService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); + return Result.success(pagination); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object enable(@Valid String id) { + sysHomeActivityService.update(Chain.make("enable", 1), Cnd.where("id", "=", id)); + return Result.success(); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object disable(@Valid String id) { + sysHomeActivityService.update(Chain.make("enable", 0), Cnd.where("id", "=", id)); + return Result.success(); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object topUp(@Valid String id){ + Sys_home_activity sysHomeActivity = new Sys_home_activity(); + sysHomeActivity.setId(id); + sysHomeActivity.setTop(true); + sysHomeActivityService.updateIgnoreNull(sysHomeActivity); + return Result.success(); + } + + @At + @RequiresPermissions("sys.homeActivity") + public Object cancelTopUp(@Valid String id){ + Sys_home_activity sysHomeActivity = new Sys_home_activity(); + sysHomeActivity.setId(id); + sysHomeActivity.setTop(false); + sysHomeActivityService.updateIgnoreNull(sysHomeActivity); + return Result.success(); + } + + + @At + @RequiresAuthentication + public Result listHomeActivity() { + FieldFilter fieldFilter = FieldFilter.locked(Sys_home_activity.class, "classPath"); + List list = Daos.ext(dao,fieldFilter) .query(Sys_home_activity.class, Cnd.where("enable", "=", 1).desc("top")); + String userId = ShiroUtil.getUserId(); + List allowActivityList = new ArrayList<>(); + // 今天的时间 + Date today = DateUtil.date(); + for (Sys_home_activity activity : list) { + // 该活动的时间范围 + Date startDate = activity.getStartDate(); + Date endDate = activity.getEndDate(); + // 判断当前时间是否在活动范围内,不在就过滤掉 + if (!DateUtil.isIn(today, startDate, endDate)) { + continue; + } + Integer allowUserGroupId = activity.getAllowUserGroupId(); + String allowUserSql = activity.getAllowUserSql(); + activity.setAllowUserSql(null); + if (allowUserGroupId == null && StrUtil.isBlank(allowUserSql)) { + allowActivityList.add(activity); + continue; + } + + if (allowUserGroupId != null) { + int count = dao.count(ActivityUserScope.class, Cnd.where("groupId", "=", allowUserGroupId).and("userId", "=", userId)); + if (count > 0) { + allowActivityList.add(activity); + continue; + } + } + + if (StrUtil.isNotBlank(allowUserSql)){ + Sql sql = Sqls.create(allowUserSql).setParam("userId", userId); + NutMap nutMap = (NutMap) Daos.query(dao, sql.toString(), Sqls.callback.map()); + if (Lang.isNotEmpty(nutMap) && StrUtil.isNotBlank(nutMap.getString("userId"))) { + allowActivityList.add(activity); + } + } + } + return Result.success(allowActivityList); + } + +} diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeController.java index 470dd20..84c0b7d 100644 --- a/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeController.java +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/SysHomeController.java @@ -39,6 +39,7 @@ import java.io.IOException; import java.security.SecureRandom; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -303,29 +304,56 @@ public class SysHomeController { @Ok("json") public Result getNews() { try { -// String gonghuiNews = redisService.get("gonghui_news"); -// if(Strings.isNotBlank(gonghuiNews)){ -// List news = Json.fromJsonAsList(HashMap.class, gonghuiNews); -// return Result.success(news); -// } + String gonghuiNews = redisService.get("gonghui_news"); + if(Strings.isNotBlank(gonghuiNews)){ + List news = Json.fromJsonAsList(HashMap.class, gonghuiNews); + return Result.success(news); + } SSLContextTrustAnyHostname.trustAllHosts(); - String url = "https://gh.zufe.edu.cn/"; + String url = "https://gh.hmc.edu.cn/"; Document document = null; document = Jsoup.connect(url).get(); - Elements homeElements1 = document.select(".index .section1 .w12>div"); - Elements homeElements2 = document.select(".index .section2 .w12>div"); + // 通知公告 + Elements notice = document.select("div.center_left"); + // 新闻快讯 + Elements newsFlash = document.select("td[valign=top][style=padding-left:10px; padding-right:10px;]"); + // 服务之窗 + Elements windowServer = document.select("div.center_center"); - - List> news1 = homeElements1.stream().map(homeElement -> { + // 通知公告 + List> noticeList = notice.stream().map(homeElement -> { //获取板块名称 - String name = homeElement.selectFirst("div.tit>h2").text(); - if (name.equals("新闻速递")) { - Elements liElements = homeElement.select(".s1-r ul li"); + String name = homeElement.selectFirst("td.lanmuname").text(); + if (name.equals("通知公告")) { + Elements liElements = homeElement.select("table[width=100%][border=0][cellspacing=0][cellpadding=0][style=margin-bottom:10px;]"); List notices = liElements.stream().map(liElement -> { NutMap row = NutMap.NEW(); - String href = liElement.selectFirst("a").attr("href"); - String time = liElement.selectFirst("a span").text(); - String title = liElement.selectFirst("a p").text(); + String href = liElement.selectFirst("a.list").attr("href"); + String time1 = liElement.selectFirst("div.riqinian").text(); + String time2 = liElement.selectFirst("div.riqiri").text(); + String title = liElement.selectFirst("a.list").text(); + row.put("href", href); + row.put("time", time1 + "-" + time2); + row.put("text", title); + return row; + }).collect(Collectors.toList()); + return Map.of("label", name, "value", notices); + } + return null; + }).collect(Collectors.toList()); + + // 新闻快讯 + List> newsFlashList = newsFlash.stream().map(homeElement -> { + //获取板块名称 + String name = homeElement.selectFirst("td.lanmuname").text(); + if (name.equals("新闻快讯")) { + Elements liElements = homeElement.select("td[valign=top][style=padding:10px;15px;10px;0px;]") + .select("table[width=100%][border=0][cellspacing=0][cellpadding=0]"); + List notices = liElements.stream().map(liElement -> { + NutMap row = NutMap.NEW(); + String href = liElement.selectFirst("a.list").attr("href"); + String time = liElement.selectFirst("td.list").text(); + String title = liElement.selectFirst("a.list").text(); row.put("href", href); row.put("time", time); row.put("text", title); @@ -335,19 +363,20 @@ public class SysHomeController { } return null; }).collect(Collectors.toList()); - List> news2 = homeElements2.stream().map(homeElement -> { + + // 服务之窗 + List> windowServerList = windowServer.stream().map(homeElement -> { //获取板块名称 - String name = homeElement.selectFirst("div.tit>h2").text(); - if (name.equals("通知公告")) { - Elements liElements = homeElement.select(".s2-l ul li"); + String name = homeElement.selectFirst("td.lanmuname").text(); + if (name.equals("服务之窗")) { + Elements liElements = homeElement.select("table[width=100%][border=0][cellspacing=0][cellpadding=0][style=margin-bottom:8px;]"); List notices = liElements.stream().map(liElement -> { NutMap row = NutMap.NEW(); - String href = liElement.selectFirst("a").attr("href"); - String time1 = liElement.selectFirst("a .date b").text(); - String time2 = liElement.selectFirst("a .date span").text(); - String title = liElement.selectFirst("a .info h3").text(); + String href = liElement.selectFirst("a.list").attr("href"); + String time = liElement.selectFirst("td[height=15][width=40]").text().replaceAll("\\.", "-"); + String title = liElement.selectFirst("a.list").text(); row.put("href", href); - row.put("time", time2 + "-" + time1); + row.put("time", time); row.put("text", title); return row; }).collect(Collectors.toList()); @@ -355,11 +384,14 @@ public class SysHomeController { } return null; }).collect(Collectors.toList()); - if (Lang.isNotEmpty(news2)) { - news1.addAll(news2); + if (Lang.isNotEmpty(newsFlashList)) { + noticeList.addAll(newsFlashList); } - redisService.setex("gonghui_news", 60 * 60 * 24, Json.toJson(news1)); - return Result.success(news1); + if (Lang.isNotEmpty(windowServerList)) { + noticeList.addAll(windowServerList); + } + redisService.setex("gonghui_news", 60 * 60 * 24, Json.toJson(noticeList)); + return Result.success(noticeList); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/main/java/io/v/nutz/sys/models/Sys_user.java b/src/main/java/io/v/nutz/sys/models/Sys_user.java index ce03c34..834a84b 100644 --- a/src/main/java/io/v/nutz/sys/models/Sys_user.java +++ b/src/main/java/io/v/nutz/sys/models/Sys_user.java @@ -637,12 +637,16 @@ public class Sys_user extends BaseModel implements Serializable { @ColDefine(type = ColType.BOOLEAN) private boolean isThirtyTeach; - @Column @Comment("荣誉证办理年月") @ColDefine(type = ColType.VARCHAR, width = 20) private String thirtyCertificateProcessingTime; + @Column + @Comment("校区") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String campus; + /** * 前端菜单 */ diff --git a/src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java b/src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java new file mode 100644 index 0000000..0729028 --- /dev/null +++ b/src/main/java/io/v/nutz/sys/param/SysHomeActivityPageForm.java @@ -0,0 +1,13 @@ +package io.v.nutz.sys.param; + +import io.v.nutz.base.query.PageForm; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SysHomeActivityPageForm extends PageForm { + + private String name; + +} diff --git a/src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java b/src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java new file mode 100644 index 0000000..3fe0d41 --- /dev/null +++ b/src/main/java/io/v/nutz/sys/services/SysHomeActivityService.java @@ -0,0 +1,8 @@ +package io.v.nutz.sys.services; + + +import cn.wizzer.framework.base.service.BaseService; +import io.v.nutz.sys.models.Sys_home_activity; + +public interface SysHomeActivityService extends BaseService { +} diff --git a/src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java b/src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java new file mode 100644 index 0000000..f53bc3a --- /dev/null +++ b/src/main/java/io/v/nutz/sys/services/impl/SysHomeActivityServiceImpl.java @@ -0,0 +1,15 @@ +package io.v.nutz.sys.services.impl; + +import cn.wizzer.framework.base.service.BaseServiceImpl; +import io.v.nutz.sys.models.Sys_home_activity; +import io.v.nutz.sys.services.SysHomeActivityService; +import org.nutz.dao.Dao; +import org.nutz.ioc.loader.annotation.IocBean; + +@IocBean(args = {"refer:dao"}) +public class SysHomeActivityServiceImpl extends BaseServiceImpl implements SysHomeActivityService { + + public SysHomeActivityServiceImpl(Dao dao) { + super(dao); + } +} diff --git a/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java b/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java index c49d21b..4fe1db0 100644 --- a/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java +++ b/src/main/java/io/v/nutz/zhgh/data/constant/SourceData.java @@ -12,6 +12,7 @@ import io.v.nutz.sys.models.Sys_unit; import io.v.nutz.zhgh.data.model.UserSource; import org.nutz.json.Json; import org.nutz.lang.Lang; +import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.springframework.util.Assert; @@ -30,22 +31,10 @@ import java.util.Map; */ public interface SourceData { - String APP_KEY = "20240919701618366869971844546564530"; - - String APP_SECRET = "9307335b784fd46be9f67d67ed0240747190ed28"; - - - String APP_TOKEN_URL = "https://dct.zufe.edu.cn/open_api/authentication/get_access_token"; - - /** - * 获取用户数据的地址 - */ - String USER_URL_TOTAL = "https://dct.zufe.edu.cn/open_api/customization/vgxjgqxjzgjbxx/full"; - /** * 获取单位的地址 */ - String UNIT_URL = "https://dct.zufe.edu.cn/open_api/customization/tgxxxyxsdwxx/full"; + String DATA_URL = "https://zt.hmc.edu.cn/datacenter/dataServiceQuery"; /** * 断言是否成功 @@ -53,9 +42,72 @@ public interface SourceData { * @param jsonResult 接口返回数据 */ private static void checkSuccess(NutMap jsonResult) { - Assert.isTrue(jsonResult.getInt("code") == 10000, jsonResult.getString("message")); + Assert.isTrue(jsonResult.getBoolean("success"), jsonResult.getString("data")); } +/* *//** + * 在职状态码 + *//* + Map USER_STATE_CODE = new HashMap<>() {{ + put("100", "在职状态"); + put("200", "不在职状态"); + }};*/ + /** + * 性别码 + */ + Map SEX_CODE = new HashMap<>() {{ + put("0", "未知的性别"); + put("1", "男"); + put("2", "女"); + put("9", "未说明的性别"); + }}; + /** + * 学历码 + */ + Map EDUCATION_CODE = new HashMap<>() {{ + put("1", "本科"); + put("2", "博士研究生"); + put("3", "初中"); + put("4", "大专"); + put("5", "高中"); + put("6", "硕士研究生"); + put("7", "小学"); + put("8", "中专"); + put("9", "无"); + }}; + /** + * 人员状态码 + */ + Map USER_STATE_CODE = new HashMap<>() {{ + put("01", "退休"); + put("02", "离休"); + put("03", "死亡"); + put("04", "返聘"); + put("05", "调出"); + put("06", "辞职"); + put("07", "离职"); + put("08", "开除"); + put("09", "下落不明"); + put("11", "在职"); + put("12", "延聘"); + put("13", "待退休"); + put("14", "长病假"); + put("15", "因公出国"); + put("16", "停薪留职"); + put("17", "待岗"); + put("99", "其他"); + }}; + /** + * 校区码 + */ + Map CAMPUS_CODE = new HashMap<>() {{ + put("01", "临安校区"); + put("02", "黄龙校区"); + put("03", "滨江校区"); + put("04", "青山湖科创中心"); + put("05", "不固定校区"); + }}; + /** * 接口中的数据跟SourceUser的对应关系 *

@@ -65,23 +117,31 @@ public interface SourceData { * 例:{'name':['username'],'code':['loginname']} */ Map USER_FIELD_RELATION = new HashMap() {{ - put("ZGH", new String[]{"loginname"}); + put("GH", new String[]{"loginname"}); put("XM", new String[]{"username"}); - put("XB", new String[]{"sex"}); + put("XBM", new String[]{"sex"}); + put("MZMC", new String[]{"nation"}); + put("SJ", new String[]{"mobile"}); + put("ZZMMM", new String[]{"political"}); +// put("ZZZTMC", new String[]{"userState"}); + put("DQZTM", new String[]{"userState"}); + put("RYFLMC", new String[]{"personType"}); + put("ZGXWM", new String[]{"education"}); + put("DWH", new String[]{"unitid"}); put("CSRQ", new String[]{"birthday"}); - put("SZDWDM", new String[]{"unitid"}); - put("LXRQ", new String[]{"schoolTime"}); - put("BZLBMC", new String[]{"personType"}); - put("DQZTMC", new String[]{"userState"}); - put("XZZW", new String[]{"position"}); - put("LTRQ", new String[]{"retireDate"}); - + put("DZZWMC", new String[]{"position"}); + put("XQMC", new String[]{"campus"}); }}; /** * 字段插件 */ Map USER_FIELD_PLUGIN = new HashMap() {{ +// put("ZZZTMC", v -> Strings.sBlank(USER_STATE_CODE.get(v), "")); + put("XBM", v -> Strings.sBlank(SEX_CODE.get(v), "")); + put("DQZTM", v -> Strings.sBlank(USER_STATE_CODE.get(v), "")); + put("ZGXWM", v -> Strings.sBlank(EDUCATION_CODE.get(v), "")); + put("XQMC", v -> Strings.sBlank(CAMPUS_CODE.get(v), "")); }}; /** @@ -91,17 +151,17 @@ public interface SourceData { */ static List users() { List users = new ArrayList<>(); - String token = getToken(); int page = 1; boolean hasRecords = true; int maxPage; while (hasRecords) { - String body = HttpUtil.get(USER_URL_TOTAL, new NutMap().addv("access_token", token).addv("page", page).addv("per_page", 1000)); + String body = HttpUtil.createPost(DATA_URL).body(JSON.toJSONString(new NutMap().addv("address", "jzgjbxx").addv("params", new NutMap()) + .addv("token", "3318a5a9-c2f2-4c8b-a8ea-e99dd68c165c").addv("pageIndex", page).addv("pageSize", 1000))).execute().body(); +// String body = HttpUtil.get(DATA_URL, new NutMap().addv("address", "jzgjbxx").addv("params", new NutMap()) +// .addv("token", "3318a5a9-c2f2-4c8b-a8ea-e99dd68c165c").addv("pageIndex", page).addv("pageSize", 1000)); NutMap map = Json.fromJson(NutMap.class, body); checkSuccess(map); - NutMap result = map.getAs("result", NutMap.class); - maxPage = result.getInt("max_page"); - List data = result.getAsList("data", NutMap.class); + List data = map.getAsList("data", NutMap.class); for (NutMap row : data) { Map entity = new HashMap(1000); @@ -118,6 +178,8 @@ public interface SourceData { }); users.add(BeanUtil.mapToBean(entity, UserSource.class, true)); } + int totalCount = map.getInt("totalCount"); + maxPage = (int) Math.ceil((double) totalCount / page); page++; if (page > maxPage) { hasRecords = false; @@ -130,9 +192,9 @@ public interface SourceData { * 单位对应接口字段 */ Map UNIT_FIELD_RELATION = new HashMap() {{ - put("DWDM", new String[]{"id", "unitcode"}); + put("DWH", new String[]{"id", "unitcode"}); put("DWMC", new String[]{"name"}); - put("LSDWH", new String[]{"parentId"}); + put("SJDWH", new String[]{"parentId"}); }}; /** @@ -147,14 +209,15 @@ public interface SourceData { * @return units */ static List units() { - String token = getToken(); List units = new ArrayList<>(); int page = 1; - String body = HttpUtil.get(UNIT_URL, new NutMap().addv("DWYXBS", "1").addv("page", page).addv("per_page", 100).addv("access_token", token)); + String body = HttpUtil.createPost(DATA_URL).body(JSON.toJSONString(new NutMap().addv("address", "rsxt_dwjbsj").addv("params", new NutMap()) + .addv("token", "3318a5a9-c2f2-4c8b-a8ea-e99dd68c165c").addv("pageIndex", page).addv("pageSize", 1000))).execute().body(); +// String body = HttpUtil.get(DATA_URL, new NutMap().addv("address", "rsxt_dwjbsj").addv("params", new NutMap()) +// .addv("token", "3318a5a9-c2f2-4c8b-a8ea-e99dd68c165c").addv("pageIndex", page).addv("pageSize", 1000)); NutMap map = Json.fromJson(NutMap.class, body); checkSuccess(map); - NutMap result = map.getAs("result", NutMap.class); - List data = result.getAsList("data", NutMap.class); + List data = map.getAsList("data", NutMap.class); for (NutMap row : data) { Map entity = new HashMap(5); @@ -174,17 +237,4 @@ public interface SourceData { return units; } - - static String getToken() { - String body = HttpUtil.get(APP_TOKEN_URL, new NutMap().addv("key", APP_KEY).addv("secret", APP_SECRET)); - NutMap map = Json.fromJson(NutMap.class, body); - if (map.getInt("code") == 10000) { - NutMap result = map.getAs("result", NutMap.class); - String accessToken = result.getString("access_token"); - return accessToken; - } - return null; - - } - } diff --git a/src/main/java/io/v/nutz/zhgh/data/constant/UserChangeType.java b/src/main/java/io/v/nutz/zhgh/data/constant/UserChangeType.java index bdc459c..d673bae 100644 --- a/src/main/java/io/v/nutz/zhgh/data/constant/UserChangeType.java +++ b/src/main/java/io/v/nutz/zhgh/data/constant/UserChangeType.java @@ -20,7 +20,7 @@ public enum UserChangeType { UNIT_CHANGE(1, "单位异动"), NEW(2, "新入职"), RESIGN(3, "离校"), - // DIE(4, "去世"), + DIE(4, "去世"), RETIREMENT(5, "离退休"), // EXPELLED(6, "开除"), RESTORE(7, "入会"), @@ -28,8 +28,8 @@ public enum UserChangeType { // NONE(9, "不变"), BASIC_CHANGE(10, "基本信息异动"), WORK(11, "在职"), - NOT_WELFARE_LIST(12, "不在本次发放福利内"), - NEW_WELFARE_LIST(13, "添加会员到本次名单"); + CARD_CHANGE(12, "身份证号异动"), + MOBILE_CHANGE(13, "手机号码异动"); private int code; diff --git a/src/main/java/io/v/nutz/zhgh/member/UserMode.java b/src/main/java/io/v/nutz/zhgh/member/UserMode.java index 0b8d779..918c977 100644 --- a/src/main/java/io/v/nutz/zhgh/member/UserMode.java +++ b/src/main/java/io/v/nutz/zhgh/member/UserMode.java @@ -1,12 +1,12 @@ package io.v.nutz.zhgh.member; import io.v.nutz.base.utils.Roles; -import io.v.nutz.zhgh.member.constant.MemberOrigin; -import io.v.nutz.zhgh.member.constant.MemberStatus; +import io.v.nutz.base.utils.ViResource; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.base.utils.ViResource; +import io.v.nutz.zhgh.member.constant.MemberOrigin; +import io.v.nutz.zhgh.member.constant.MemberStatus; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.util.ByteSource; import org.nutz.dao.Chain; @@ -173,8 +173,11 @@ public interface UserMode { */ static void addMemberRole(String userid) { SysUserService sysUserService = ioc.getByType(SysUserService.class); + sysUserService.update(Chain.make("member", MemberMode.NORMAL.getCode()).add("memberJoinTime", new Date()).add("memberStatus", MemberStatus.NORMAL.getCode()), Cnd.where("id", "=", userid)); + addRoleAndFlush(userid, Roles.MEMBER); + sysUserService.deleteCache(userid); } diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java index b03ffc1..e7778f5 100644 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java +++ b/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java @@ -9,12 +9,12 @@ package io.v.nutz.zhgh.member.constant; */ public interface MemberApplyState { /** - * 待院级工会审核 + * 待分工会审核 */ int UNION = 10; /** - * 院级工会审核不通过 + * 分工会审核不通过 */ int UNION_FAIL = 15; diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java index fd2e4c7..181b0d6 100644 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java +++ b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java @@ -9,12 +9,12 @@ package io.v.nutz.zhgh.member.constant; */ public interface MemberChangeApplyState { /** - * 待院级工会审核 + * 待分工会审核 */ int UNION = 50; /** - * 院级工会审核不通过 + * 分工会审核不通过 */ int UNION_FAIL = 55; diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java index 368e404..22eb82a 100644 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java +++ b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java @@ -19,10 +19,10 @@ public enum MemberChangeOrigin { UNION(2, "分工会"), UNION_GROUP(3, "工会小组"), SCHOOL(4, "校工会"), - SYSTEM(5, "系统数据更新"), - OTHER(6, "其他"); + OTHER(5, "其他"), + RETIREMENT_CHANGE(6, "退休(系统变更)"), + SYSTEM(7, "系统数据更新"); private int code; private String description; - } diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java index 88f9aaf..b34c6ee 100644 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java +++ b/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java @@ -3,7 +3,6 @@ package io.v.nutz.zhgh.member.constant; import io.v.nutz.base.annontation.SelectEnum; import lombok.AllArgsConstructor; import lombok.Getter; -import lombok.Setter; /** * @author Aaron @@ -15,7 +14,13 @@ import lombok.Setter; public enum MemberStatus { //会员状态 - NORMAL(1, "入会"), TURN_IN(2, "转入"), TURN_OUT(3, "转出"), KEEP(4, "保留"), WITHDRAWAL(5, "退会"), RESTORE(6, "恢复"), EXPELLED(7, "除名"); + NORMAL(1, "入会"), + TURN_IN(2, "转入"), + TURN_OUT(3, "转出"), + KEEP(4, "保留"), + WITHDRAWAL(5, "退会"), + RESTORE(6, "恢复"), + EXPELLED(7, "除名"); /** * 编码 diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java b/src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java index 5d83f9e..341b1fe 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java @@ -2,13 +2,13 @@ package io.v.nutz.zhgh.member.controller; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.Sys_menu; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.constant.MemberApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.sys.models.Sys_menu; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -49,10 +49,10 @@ public class MemberAgendaController { final String title = "【会员系统】"; List list = new ArrayList<>(); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin,H04")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H04,H03")) { return list; } - boolean anyRoles = ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin,H04"); + boolean anyRoles = ShiroUtil.hasAnyRoles("sysadmin,A06,H03"); // 入会申请 diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java b/src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java index e513cc2..779270e 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java @@ -3,20 +3,17 @@ package io.v.nutz.zhgh.member.controller; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.sys.models.Sys_unit; -import io.v.nutz.zhgh.data.model.UserHistory; -import io.v.nutz.zhgh.member.UserMode; -import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; -import io.v.nutz.zhgh.member.model.MemberApplyRecord; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.base.service.ViService; +import io.v.nutz.sys.models.Sys_unit; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.data.model.UserHistory; +import io.v.nutz.zhgh.member.UserMode; +import io.v.nutz.zhgh.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.member.service.MemberService; import org.apache.shiro.authz.annotation.RequiresAuthentication; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -24,6 +21,7 @@ import org.nutz.dao.sql.Sql; import org.nutz.dao.util.Daos; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; @@ -41,15 +39,15 @@ import java.util.stream.Collectors; @IocBean public class MemberCommonController { - @Inject - private Dao dao; - @Inject private MemberService memberService; @Inject private SysUserService sysUserService; + @Inject + private Dao dao; + @Inject("Sys_user") private ViService sysUserViService; @@ -67,18 +65,22 @@ public class MemberCommonController { */ @At @ViReturn - @Ok("json:{locked:'password|salt|loginSessionId',ignoreNull:false}") + @Ok("json:{locked:'password|salt',ignoreNull:false}") public Object userInfo(String userId, @Param(value = "source", required = false) String source) { - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin,H04,gh12") && !userId.equals(ShiroUtil.getPrincipalProperty("id"))) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H04,ghxzzz") && !userId.equals(ShiroUtil.getPrincipalProperty("id"))) { return Result.error("您没有权限!"); } Sql sql = Sqls.create(""" SELECT - u.*,unit.`name` unitname,un.unionname,unit.unionid + u.*,unit.`name` unitname,un.unionname,unit.unionid, + su.registeredResidence, + su.homeAddress, + su.specialSkill FROM $source u LEFT JOIN sys_unit unit ON u.unitid = unit.id left join sys_union un on unit.unionid = un.id + left join sys_user su on su.id = u.id WHERE u.id = @id """).setVar("source", StringUtils.isEmpty(source) ? "user" : source).setParam("id", userId); NutMap user = sysUserViService.fetch(sql); @@ -109,7 +111,7 @@ public class MemberCommonController { sysUserViService.updateIgnoreNull(sys_user); } - sysUserService.deleteCacheAndUpdate(sys_user.getId()); + sysUserService.deleteCache(sys_user.getId()); return userInfo(sys_user.getId(), null); } @@ -158,6 +160,34 @@ public class MemberCommonController { return memberService.memberChangeRecords(userId); } + + /** + * 获取会员变更状态 + * @return + */ + @At + @ViReturn + public Object getUserChangType(){ + Sql sql = Sqls.create(""" + SELECT + * + FROM + `sys_dict` + WHERE + parentId = ( + SELECT + id + FROM + sys_dict + WHERE + `code` = 'MemberChangeType') + and `code` not in (@code) + ORDER BY FIELD(`code`,1,2,3,4,5,6,7,8,9,10,11,12) + """).setParam("code", Lang.list(9)); + return memberService.listMap(sql); + } + + /** * 根据某条历史记录ID查询变更信息 * @param hisId @@ -174,7 +204,7 @@ public class MemberCommonController { UserHistory userHistory = dao.fetch(UserHistory.class, hisId); Map unitMap = dao.query(Sys_unit.class, null).stream().collect(Collectors.toMap(v -> v.getId(), v -> v.getName())); NutMap sysUserMap = (NutMap) Daos.query(dao, Sqls.create("select * from sys_user where loginname=@loginname").setParam("loginname", userHistory.getLoginname()).toString(), Sqls.callback.map()); - NutMap userHisMap = org.nutz.lang.Lang.obj2nutmap(userHistory); + NutMap userHisMap = Lang.obj2nutmap(userHistory); if (StrUtil.isNotBlank(userHistory.getMemberChangeRecordId())) { //从变更来的 特殊 需要审核 @@ -190,8 +220,8 @@ public class MemberCommonController { ); } - String userState = StrUtil.blankToDefault(changeRecord.getUserState(), ""); - if (!userState.equals(sysUserMap.getString("userState", ""))&&StrUtil.isNotBlank(userState)) { + String userState = StrUtil.blankToDefault(changeRecord.getChangeUserState(), ""); + if (!userState.equals(sysUserMap.getString("userState", ""))) { compareData.add(NutMap.NEW() .addv("columnName", "在职状态") .addv("newValue", userState) @@ -236,11 +266,11 @@ public class MemberCommonController { COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_user' - AND TABLE_SCHEMA = 'zhgh_jiangnan' + AND TABLE_SCHEMA = 'union_cpu' """); List userTableColumnInfos = sysUserService.listMap(userColumnSql); - List columns = List.of("unitid", "nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position", "leaveSchoolDate", "retireDate"); + List columns = List.of("unitid", "nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position"); for (String column : columns) { diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java b/src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java index 965d23a..a0da3b4 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java @@ -3,10 +3,10 @@ package io.v.nutz.zhgh.member.controller; import cn.hutool.core.date.DateUtil; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.service.BaseService; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.model.MemberCheckSelfTask; import io.v.nutz.zhgh.member.model.MemberCheckTask; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Cnd; import org.nutz.ioc.loader.annotation.Inject; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java b/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java index 6ba7af0..40158c5 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java @@ -1,16 +1,16 @@ package io.v.nutz.zhgh.member.controller.apply; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.lang.Enum; -import io.v.nutz.zhgh.member.constant.MemberApplyState; -import io.v.nutz.zhgh.member.handle.MemberApplyAuditHandle; -import io.v.nutz.zhgh.member.model.MemberApplyRecord; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.member.constant.MemberApplyState; +import io.v.nutz.zhgh.member.handle.MemberApplyAuditHandle; +import io.v.nutz.zhgh.member.model.MemberApplyRecord; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Sqls; @@ -86,7 +86,7 @@ public class MemberApplyAuditController { CndPlus cnd = CndPlus.create(); pageForm.defaultSortAsc("mar.stateId"); cnd.and(pageForm); - cnd.andEx("u.memberStatus", "=", memberStatus); + cnd.andEX("u.memberStatus", "=", memberStatus); /* if (audit == 1 && !ShiroUtil.hasAnyRoles("sysadmin")) { cnd.and("mar.unionId", "=", vi.getUnionId()); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java b/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java index 4f0bbc9..a87da70 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java @@ -1,25 +1,35 @@ package io.v.nutz.zhgh.member.controller.apply; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.OfficeTemplateUtil; import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.ViTool; +import io.v.nutz.sys.models.Sys_signature; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.services.SysSignatureService; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.web.commons.base.Globals; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.constant.MemberApplyState; import io.v.nutz.zhgh.member.handle.MemberApplyAuditHandle; -import io.v.nutz.zhgh.member.handle.MemberApplyToDoHandler; import io.v.nutz.zhgh.member.model.MemberApplyRecord; import io.v.nutz.zhgh.member.model.MemberCheckSelfTask; -import io.v.nutz.base.service.ViService; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.ddr.poi.html.HtmlRenderPolicy; import org.nutz.dao.Chain; 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.json.Json; +import org.nutz.lang.Lang; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; @@ -27,6 +37,10 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import org.nutz.trans.Trans; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.util.Calendar; +import java.util.Date; import java.util.List; @At("/platform/member/apply/submit") @@ -49,6 +63,12 @@ public class MemberApplyController { @Inject private SysUserService sysUserService; + @Inject + private SysSignatureService sysSignatureService; + + @Inject + private OfficeTemplateUtil officeTemplateUtil; + /** * 获取信息 * @@ -64,6 +84,9 @@ public class MemberApplyController { u.username, u.loginname, u.member, + u.unitid, + u.nation, + u.marriage, un.id unionid, un.unioncode, un.unionname, @@ -80,10 +103,7 @@ public class MemberApplyController { sex, specialSkill, vita, - mobile, - personType, - unitid, - nation + mobile FROM sys_user u LEFT JOIN sys_unit unit ON u.unitid = unit.id @@ -169,4 +189,84 @@ public class MemberApplyController { }); return null; } + + + @At + @Ok("void") + @RequiresPermissions("member.apply.submit") + public void exportApply(@Param(value = "userId", required = false) String userId, HttpServletResponse response) { + try (ServletOutputStream os = response.getOutputStream()) { + Sql sql = Sqls.create(""" + SELECT + u.username, + u.sex, + u.nation, + u.education, + concat(u.username, '、', u.jobTitle) as workUnit, + u.marriage, + u.academicDegree, + u.political, + u.idcard, + u.mobile, + u.registeredResidence, + u.homeAddress, + u.vita, + u.specialSkill, + u.family, + mar.signId, + mar.applyTime + FROM + sys_user u + left join member_apply_record mar on mar.userId = u.id + WHERE u.id = @id + """).setParam("id", Strings.isNotBlank(userId) ? userId : ShiroUtil.getUserId()); + NutMap userMap = memberApplyRecordViService.fetch(sql); + + MemberApplyRecord applyRecord = memberApplyRecordViService.fetch(Cnd.where("userId", "=", Strings.isNotBlank(userId) ? userId : ShiroUtil.getUserId()).desc("applyTime")); + //and("stateId", "=", 30) + memberApplyRecordViService.fetchLinks(applyRecord, null); + + if (Strings.isNotBlank(userMap.getString("signId"))) { + Sys_signature signature = sysSignatureService.fetch(userMap.getString("signId")); + userMap.setv("userSign", signature != null ? Vi.getImg(signature.getData()) : null); + } + + if (Lang.isNotEmpty(applyRecord) && applyRecord.getUnionAudit() != null) { + userMap.put("unionOpinion", applyRecord.getUnionAudit().getAuditOpinion()); + userMap.put("unionUserName", applyRecord.getUnionAudit().getUsername()); + if (StrUtil.isNotBlank(applyRecord.getUnionAudit().getAuditSign())) { +// userMap.put("unionUserSign", ViTool.poiBase64Image7030(applyRecord.getUnionAudit().getAuditSign())); + userMap.put("unionUserSign", Vi.getImg(applyRecord.getUnionAudit().getAuditSign())); + } + userMap.put("unionDate", DateUtil.format(applyRecord.getUnionAudit().getAuditTime(), "yyyy年MM月dd日")); + } + + if (Lang.isNotEmpty(applyRecord) && applyRecord.getSchoolAudit() != null) { + userMap.put("schoolOpinion", applyRecord.getSchoolAudit().getAuditOpinion()); + if (StrUtil.isNotBlank(applyRecord.getSchoolAudit().getAuditSign())) { +// userMap.put("schoolSign", ViTool.poiBase64Image7030(applyRecord.getSchoolAudit().getAuditSign())); + userMap.put("schoolSign", Vi.getImg(applyRecord.getSchoolAudit().getAuditSign())); + } + userMap.put("schoolDate", DateUtil.format(applyRecord.getSchoolAudit().getAuditTime(), "yyyy年MM月dd日")); + } + + Date applyTime = applyRecord.getApplyTime(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(applyTime); + + userMap.put("year", DateUtil.year(userMap.getTime("applyTime"))); + userMap.put("month", DateUtil.month(userMap.getTime("applyTime")) + 1); + userMap.put("day", DateUtil.dayOfMonth(userMap.getTime("applyTime"))); + userMap.put("schoolName", Globals.MyConfig.getString("GxName")); + + ViTool.excelResponse(response, userMap.getString("username") + "-工会入会申请表.docx"); + HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy(); + Configure configure = Configure.builder().bind("vita", htmlRenderPolicy).build(); + + XWPFTemplate.compile(officeTemplateUtil.getPath("memberApply"), configure).render(userMap).writeAndClose(os); + System.out.println(Json.toJson(userMap)); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java index a733d27..95d375b 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java @@ -2,35 +2,27 @@ package io.v.nutz.zhgh.member.controller.change; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.PageUtil; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.lang.Enum; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.handle.MemberChangeAuditHandle; import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.base.service.ViService; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.cri.SqlExpressionGroup; -import org.nutz.dao.util.cri.Static; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.Lang; -import org.nutz.lang.Strings; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import java.util.List; - @At("/platform/member/change/audit") @Ok("json:full") @IocBean @@ -71,12 +63,7 @@ public class MemberChangeApplyAuditController { @Param(value = "date", required = false) String[] date, @Param(value = "type", required = false) Integer type, @Param(value = "memberStatus", required = false) Integer memberStatus, - @Param(value = "audit", required = false) Integer audit, - @Param(value = "userStates", required = false) String[] userStates, - @Param(value = "personTypes", required = false) String[] personTypes, - @Param(value = "changeTypes", required = false) Integer[] changeTypes, - @Param(value = "changeOrigin", required = false) Integer[] changeOrigins - ) { + @Param(value = "audit", required = false) Integer audit) { Sql sql = Sqls.create(""" SELECT mcr.*, @@ -85,7 +72,7 @@ public class MemberChangeApplyAuditController { u.loginname, u.unitname, u.unionname, - u.mobile, + u.mobile AS MMobile, u.unitcode, u.unioncode, u.unionGroupName, @@ -100,11 +87,7 @@ public class MemberChangeApplyAuditController { currentUnit.`name` currentUnitName, currentUnion.unioncode currentUnionCode, currentUnion.unionname currentUnionName, - IF(mcr.stateId = @auditState,TRUE,FALSE) audit, - his.id hisId, - his.changeType, - his.changeTypes, - his.changeTime + IF(mcr.stateId = @auditState,TRUE,FALSE) audit FROM member_change_record mcr LEFT JOIN `user` u ON mcr.userId = u.id @@ -113,65 +96,32 @@ public class MemberChangeApplyAuditController { LEFT JOIN sys_union originUnion ON mcr.originUnionId = originUnion.id LEFT JOIN sys_unit currentUnit ON mcr.currentUnitId = currentUnit.id LEFT JOIN sys_union currentUnion ON mcr.currentUnionId = currentUnion.id - LEFT JOIN user_history his on his.memberChangeRecordId = mcr.id $condition """); - Cnd cnd = Cnd.NEW(); + CndPlus cnd = CndPlus.create(); + pageForm.defaultSortAsc("mcr.stateId"); + cnd.and(pageForm); - if (Lang.isNotEmpty(changeTypes)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer c : changeTypes) { - seg.or(new Static("JSON_CONTAINS(his.changeTypes, CAST(%d AS JSON), '$')".formatted(c))); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(userStates)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String state : userStates) { - seg.orEquals("his.userState", state); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(personTypes)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String personType : personTypes) { - seg.orEquals("his.personType", personType); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(changeOrigins)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer c : changeOrigins) { - seg.orEquals("his.changeOrigin", c); - } - cnd.and(seg); - } - - if (Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) { - cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); - }else{ - cnd.asc("mcr.stateId"); - } - - if (Strings.isNotBlank(pageForm.getSearchName()) && Strings.isNotBlank(pageForm.getSearchKeyword())) { - cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword())); - } - -// cnd.and("mcr.recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); + cnd.and("mcr.recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); if (date != null && date.length == 2) { cnd.and("date(mcr.applyTime)", ">=", date[0]); cnd.and("date(mcr.applyTime)", "<=", date[1]); } + /*if (audit == 1) { + cnd.and("mcr.userId", "=", ShiroUtil.getUserId()); + } else if (audit == 2) { + cnd.and("mcr.stateId", "=", source == 1 ? MemberChangeApplyState.UNION : MemberChangeApplyState.SCHOOL_UNION); + }*/ cnd.andEX("u.unionid", "=", unionId); cnd.andEX("u.unitid", "=", unitId); cnd.andEX("u.threeUnitId", "=", threeUnitId); cnd.andEX("u.unionGroupId", "=", unionGroupId); + cnd.andEX("mcr.type", "=", type); + cnd.andEX("u.memberStatus", "=", memberStatus); + if (!ShiroUtil.hasAnyRoles("sysadmin") && source == 1) { cnd.and("mcr.originUnionId", "=", Vi.getUnionId()); } @@ -190,7 +140,6 @@ public class MemberChangeApplyAuditController { cnd.and("mcr.stateId", ">=", MemberChangeApplyState.SCHOOL_UNION); } } - cnd.desc("mcr.applyTime"); sql.setCondition(cnd); return recordViService.list(pageForm, sql); @@ -218,20 +167,4 @@ public class MemberChangeApplyAuditController { return null; } - @At - @ViReturn - @RequiresPermissions(value = {"member.change.audit.union", "member.change.audit.school"}, logical = Logical.OR) - public Object batchDoAudit(String[] recordIds, - Audit audit) { - if (Lang.isNotEmpty(recordIds)) { - List records = recordViService.query(Cnd.where("id", "in", recordIds)); - recordViService.update(records); - records.forEach(v -> { - MemberChangeAuditHandle applyHandle = Enum.instance(MemberChangeAuditHandle.class, v.getStateId()); - applyHandle.next(v, audit); - }); - } - return null; - } - } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java index b603155..3861424 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java @@ -1,22 +1,19 @@ package io.v.nutz.zhgh.member.controller.change; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Roles; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.handle.MemberChangeAuditHandle; -import io.v.nutz.zhgh.member.handle.MemberChangeToDoHandler; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.base.service.ViService; -import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.base.utils.Roles; -import io.v.nutz.base.utils.Vi; import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; -import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Strings; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java index 448aa01..a4b33a5 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java @@ -1,25 +1,30 @@ package io.v.nutz.zhgh.member.controller.change; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import com.google.common.base.Joiner; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.base.lang.Lang; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.AuditService; import io.v.nutz.base.service.ViService; import io.v.nutz.base.utils.PageUtil; -import io.v.nutz.base.utils.RCSCloudAPI; import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.ViTool; import io.v.nutz.sys.models.*; import io.v.nutz.sys.services.SysUnitService; import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.web.commons.slog.annotation.SLog; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.UserChangeType; -import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.member.MemberMode; import io.v.nutz.zhgh.member.UserMode; import io.v.nutz.zhgh.member.WelfareMemberMode; @@ -27,31 +32,43 @@ import io.v.nutz.zhgh.member.constant.*; import io.v.nutz.zhgh.member.handle.MemberChangeAuditHandle; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.member.template.MemberTemp; import io.v.nutz.zhgh.member.utils.MemberUtils; -import org.apache.shiro.authz.annotation.Logical; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.*; +import org.nutz.dao.Chain; +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.Daos; import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.dao.util.cri.Static; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; +import org.nutz.lang.Lang; import org.nutz.lang.Strings; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.AdaptBy; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import org.nutz.mvc.upload.TempFile; +import org.nutz.mvc.upload.UploadAdaptor; import org.nutz.trans.Trans; -import java.nio.charset.StandardCharsets; +import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; @At("/platform/member/change/mange") @Ok("json:full") @IocBean +@Slf4j public class MemberChangeManageController { @At("") @@ -78,41 +95,28 @@ public class MemberChangeManageController { @Inject private SysUnitService sysUnitService; - @Inject - private SysUserService userService; - @At @ViReturn @RequiresPermissions("member.change.mange") - public Object pageData(PageForm pageForm, - @Param(value = "unionId", required = false) String unionId, + public Object pageData(@Param(value = "unionId", required = false) String unionId, @Param(value = "unitId", required = false) String unitId, @Param(value = "threeUnitId", required = false) String threeUnitId, @Param(value = "unionGroupId", required = false) String unionGroupId, @Param(value = "changeDateBefore", required = false) String changeDateBefore, @Param(value = "changeDateEnd", required = false) String changeDateEnd, + PageForm pageForm, @Param(value = "campus", required = false) String campus, @Param(value = "sex", required = false) String sex, + @Param(value = "personType", required = false) String personType, + @Param(value = "userState", required = false) String userState, @Param(value = "changeDate", required = false) String changeDate, - @Param(value = "changed", required = false) Integer changed, - @Param(value = "isMember", required = false) Integer isMember, - @Param(value = "userStates", required = false) String[] userStates, - @Param(value = "personTypes", required = false) String[] personTypes, + @Param(value = "changeType", required = false) String changeType, @Param(value = "changeTypes", required = false) Integer[] changeTypes, - @Param(value = "changeOrigin", required = false) Integer[] changeOrigins - ) { + @Param(value = "changed", required = false) Integer changed, + @Param(value = "isMember", required = false) Integer isMember) { Sql sql = Sqls.create(""" SELECT - u.id, - u.loginname, - u.username, - u.sex, - u.birthday, - u.personType, - u.userState, - u.unionname, - u.unitname, - u.member, + u.*, his.id hisId, his.changeType, his.changeTypes, @@ -136,23 +140,21 @@ public class MemberChangeManageController { .setParam("success", MemberChangeApplyState.SUCCESS) .setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); - Cnd cnd = Cnd.NEW(); + CndPlus cnd = CndPlus.create(); + + SqlExpressionGroup group = new SqlExpressionGroup(); + /* group.or("his.changeType", "=", 2).or("u.member", "=", MemberMode.NORMAL.getCode()); + cnd.and(group);*/ cnd.andEX("u.member", "=", isMember); - if (Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) { - cnd.orderBy((List.of("changeTime", "changeType", "changeTypes").contains(pageForm.getPageOrderName()) ? "his." : "u.") + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); - } - if (Strings.isNotBlank(pageForm.getSearchName()) && Strings.isNotBlank(pageForm.getSearchKeyword())) { - cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword())); - } + cnd.and(pageForm); - - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("u.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("u.unionGroupId", "is", null); cnd.and(seg); cnd.and("u.unionid", "=", Vi.getUnionId()); @@ -165,49 +167,36 @@ public class MemberChangeManageController { cnd.andEX("u.unionGroupId", "=", unionGroupId); cnd.andEX("u.campusId", "=", campus); cnd.andEX("u.sex", "=", sex); + cnd.andEX("u.personType", "=", personType); + cnd.andEX("u.userState", "=", userState); - if (org.nutz.lang.Lang.isNotEmpty(changeTypes)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer type : changeTypes) { - seg.or(new Static("JSON_CONTAINS(his.changeTypes, CAST(%d AS JSON), '$')".formatted(type))); - } - cnd.and(seg); - } - - if (org.nutz.lang.Lang.isNotEmpty(userStates)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String state : userStates) { - seg.orEquals("his.userState", state); - } - cnd.and(seg); - } - - if (org.nutz.lang.Lang.isNotEmpty(personTypes)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String personType : personTypes) { - seg.orEquals("his.personType", personType); - } - cnd.and(seg); - } - - if (org.nutz.lang.Lang.isNotEmpty(changeOrigins)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer c : changeOrigins) { - seg.orEquals("his.changeOrigin", c); - } - cnd.and(seg); - } - - - if (Lang.notNull(changeDateBefore, changeDateEnd)) { + if (StrUtil.isNotBlank(changeDateBefore) && StrUtil.isNotBlank(changeDateEnd)) { cnd.and(new Static(String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", changeDateBefore, changeDateEnd))); } + if (Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) { + cnd.orderBy((List.of("changeTime", "changeType", "changeTypes").contains(pageForm.getPageOrderName()) ? "his." : "u.") + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + + if (Lang.isNotEmpty(changeTypes)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + for (Integer type : changeTypes) { + seg.or(new Static("JSON_CONTAINS(his.changeTypes, CAST(%d AS JSON), '$')".formatted(type))); + } + cnd.and(seg); + } + +// cnd.andEX("Date(his.changeTime)", "=", changeDate); +// cnd.andEX("his.changeType", "=", changeType); + if (changed != null) { if (changed == 1) { - cnd.and(new Static("his.changeTypes is not null")); + cnd.and(new Static("his.changeType is not null")); + } else if (changed == 2){ + cnd.desc("his.changeType"); } else { - cnd.and(new Static("his.changeTypes is null")); + cnd.and(new Static("his.changeType is null")); } } sql.setCondition(cnd); @@ -254,13 +243,13 @@ public class MemberChangeManageController { cnd.andEX("u.member", "=", isMember); cnd.and(pageForm); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("u.unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("u.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("u.unionGroupId", "is", null); cnd.and(seg); } @@ -274,7 +263,7 @@ public class MemberChangeManageController { cnd.andEX("u.sex", "=", sex); cnd.andEX("u.personType", "=", personType); cnd.andEX("u.userState", "=", userState); - if (Lang.notNull(changeDateBefore, changeDateEnd)) { + if (StrUtil.isNotBlank(changeDateBefore) && StrUtil.isNotBlank(changeDateEnd)) { cnd.and(new Static(String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", changeDateBefore, changeDateEnd))); } cnd.andEX("his.changeType", "=", changeType); @@ -286,11 +275,11 @@ public class MemberChangeManageController { @At @RequiresPermissions("member.change.mange") public Object change(MemberChangeRecord memberChangeRecord) { - if (Objects.equals(memberChangeRecord.getType(), UserChangeType.NEW.getCode())) { - return Result.error("您已经入职,可以选择恢复功能入会!"); - } +// if (Objects.equals(memberChangeRecord.getType(), UserChangeType.NEW.getCode())) { +// return Result.error("您已经入职,可以选择恢复功能入会!"); +// } if (Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { - boolean unionGroupEnable = Optional.ofNullable(dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "isThreeUnit"))).map(v -> v.getConfigValue()).orElse("false").equals("true"); + boolean unionGroupEnable = Optional.ofNullable(dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "isThreeUnit"))).map(Sys_config::getConfigValue).orElse("false").equals("true"); if (unionGroupEnable && memberChangeRecord.getCurrentThreeUnitId().equals(memberChangeRecord.getOriginThreeUnitId())) { return Result.error("请选择不同的单位!"); @@ -303,32 +292,11 @@ public class MemberChangeManageController { memberChangeRecord.setCurrentUnionId(null); } - Sql userSql = Sqls.fetchString("select userState from sys_user where id = @userId"); - userSql.setParam("userId", memberChangeRecord.getUserId()); - dao.execute(userSql); - String userState = StrUtil.blankToDefault(userSql.getString(), ""); - - if (memberChangeRecord.getType() == UserChangeType.WORK.getCode()) { - if (userState.equals(UserChangeType.WORK.getDescription())) { - return Result.error("该用户当前的状态已经是" + UserChangeType.WORK.getDescription() + ",您无需变更!"); - } - } - if (memberChangeRecord.getType() == UserChangeType.RESIGN.getCode()) { - if (userState.equals(UserChangeType.RESIGN.getDescription())) { - return Result.error("该用户当前的状态已经是" + UserChangeType.RESIGN.getDescription() + ",您无需变更!"); - } - } - if (memberChangeRecord.getType() == UserChangeType.RETIREMENT.getCode()) { - if (userState.equals(UserChangeType.RETIREMENT.getDescription())) { - return Result.error("该用户当前的状态已经是" + UserChangeType.RETIREMENT.getDescription() + ",您无需变更!"); - } - } - Audit audit = new Audit(); audit.setAuditPass(true); memberChangeRecord.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (ShiroUtil.hasRole("sysadmin")) { memberChangeRecord.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); MemberChangeAuditHandle.SCHOOL.next(memberChangeRecord, audit); @@ -338,16 +306,31 @@ public class MemberChangeManageController { MemberChangeAuditHandle.UNION.next(memberChangeRecord, audit); } return Result.success(); + +// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// if (ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { +// record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); +// record = MemberChangeAuditHandle.CREATE.next(record, null); +// MemberChangeAuditHandle.SCHOOL.next(record, new Audit().setAuditPass(true)); +// } else { +// record.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); +// record = MemberChangeAuditHandle.CREATE.next(record, null); +// MemberChangeAuditHandle.UNION.next(record, new Audit().setAuditPass(true)); +// } +// return null; } + @Inject + private SysUserService userService; + @At @ViReturn @RequiresPermissions("member.change.mange") public Object sendSms(String userid) { Sys_user user = userService.fetch(userid); - if (Strings.isNotBlank(user.getMobile())) { + /*if (Strings.isNotBlank(user.getMobile())) { RCSCloudAPI.sendTplSms("9159ed9ef1654c0ea2d7475520049a6f", user.getMobile(), "@1@=" + user.getUsername(), ""); - } + }*/ return null; } @@ -403,7 +386,7 @@ public class MemberChangeManageController { status.add(MemberStatus.TURN_IN.getCode()); status.add(MemberStatus.RESTORE.getCode()); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { cnd.and("unionid", "=", Vi.getUnionId()); } if (StrUtil.isBlank(pageForm.getPageOrderName()) && StrUtil.isBlank(pageForm.getPageOrderBy())) { @@ -415,14 +398,9 @@ public class MemberChangeManageController { Trans.exec(() -> { if (!isAppendWelfareMember) { - memberService.update(Chain.make("welfareMember", WelfareMemberMode.NONE.getCode()), - Cnd.where("welfareMember", "=", WelfareMemberMode.NORMAL.getCode())); + memberService.update(Chain.make("welfareMember", WelfareMemberMode.NONE.getCode()), Cnd.where("welfareMember", "=", WelfareMemberMode.NORMAL.getCode())); } - memberService.dao().clear(Sys_user_role.class, Cnd.where("id", "in", ids) - .and("roleId", "=", Roles.WELFARE_MEMBER)); - - memberService.update(Chain.make("welfareMember", WelfareMemberMode.NORMAL.getCode()), - Cnd.where("member", "=", MemberMode.NORMAL.getCode()).and("id", "in", ids)); + memberService.update(Chain.make("welfareMember", WelfareMemberMode.NORMAL.getCode()), Cnd.where("member", "=", MemberMode.NORMAL.getCode()).and("id", "in", ids)); }); return null; } @@ -477,23 +455,10 @@ public class MemberChangeManageController { @Param(value = "unitId", required = false) String unitId, @Param(value = "unionId", required = false) String unionId, @Param(value = "member", required = false) Boolean member, - @Param(value = "sqlCnd", required = false) String sqlCnd) { + @Param(value = "sqlCnd", required = false) String[] sqlCnd) { Sql sql = Sqls.create(""" SELECT - u.id, - u.loginname, - u.username, - u.sex, - u.birthday, - u.personType, - u.userState, - u.unionname, - u.unitname, - u.threeUnitName, - u.unionGroupName, - u.mobile, - u.idcard, - u.member + u.* FROM `user` u LEFT JOIN member_change_record c ON u.id = c.userId @@ -503,23 +468,16 @@ public class MemberChangeManageController { pageForm.defaultSortAsc("u.unitid"); cnd.and(pageForm); - cnd.andEx("u.unitid", "=", unionId); - cnd.andEx("u.unionid", "=", unionId); + cnd.andEX("u.unitid", "=", unionId); + cnd.andEX("u.unionid", "=", unionId); // cnd.and("u.member", "=", member); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,flwyh01")) { cnd.and("u.unionid", "=", Vi.getUnionId()); } // for (String s : sqlCnd) { // cnd.and(new Static(s)); // } - - if (StrUtil.isNotBlank(sqlCnd)) { - String originalString = new String(Base64.getDecoder().decode(sqlCnd), StandardCharsets.UTF_8); - Condition wrap = Cnd.wrap(originalString); - cnd.and(new Static(wrap.toString())); - } - cnd.groupBy("u.loginname"); cnd.asc("u.loginname"); sql.setCondition(cnd); @@ -527,14 +485,7 @@ public class MemberChangeManageController { return memberService.list(pageForm, sql); } - /** - * 添加会员 - * @param userIds - * @param taskId - * @param threeUnitId - * @param unitId - * @return - */ + @At @ViReturn @Aop(TransAop.READ_COMMITTED) @@ -542,24 +493,24 @@ public class MemberChangeManageController { public Object joinWelfareMember(String[] userIds, String taskId, @Param(value = "threeUnitId", required = false) String threeUnitId, @Param(value = "unitId", required = false) String unitId) { - if (io.v.nutz.web.commons.utils.ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (ShiroUtil.hasAnyRoles("sysadmin,A06,flwyh01")) { UserMode.addMemberRole(userIds); return null; } List maps = new ArrayList<>(); Audit audit = new Audit(); - audit.setAuditor(io.v.nutz.web.commons.utils.ShiroUtil.getUserId()); + audit.setAuditor(ShiroUtil.getUserId()); audit.setAuditPass(true); audit.setAuditTime(new Date()); audit.setAuditOpinion("新增会员"); - audit.setUsername(io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("username").toString()); - audit.setLoginname(io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("loginname").toString()); + audit.setUsername(ShiroUtil.getPrincipalProperty("username").toString()); + audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString()); memberService.insert(audit); for (String userId : userIds) { User user = memberService.dao().fetch(User.class, Cnd.where("id", "=", userId)); MemberChangeRecord changeRecord = new MemberChangeRecord(); changeRecord.setType(UserChangeType.NEW.getCode()); - changeRecord.setApplyOrigin(io.v.nutz.web.commons.utils.ShiroUtil.hasRole("H04") ? MemberChangeOrigin.UNION.getCode() : MemberChangeOrigin.UNION_GROUP.getCode()); + changeRecord.setApplyOrigin(ShiroUtil.hasRole("H04") ? MemberChangeOrigin.UNION.getCode() : MemberChangeOrigin.UNION_GROUP.getCode()); changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); changeRecord.setUpdateWelfareMember(true); changeRecord.setUserId(userId); @@ -581,11 +532,176 @@ public class MemberChangeManageController { @At @ViReturn - @RequiresPermissions(value = {"member.change.mange", "member.change.apply"}, logical = Logical.OR) + @RequiresPermissions("member.change.mange") public Object units() { Cnd cnd = Cnd.NEW(); cnd.and("unitlevel", "=", 2); return sysUnitService.dao().query("unit_union", cnd); } + @At + @ViReturn + @RequiresPermissions("member.change.mange") + public Object batchUpdatePersonType(@Param("users") String data) { + List users = Json.fromJsonAsList(Sys_user.class, data); + for (Sys_user user : users) { + userService.update(Chain.make("personType", user.getPersonType()), Cnd.where("id", "=", user.getId())); + } + return null; + } + + @At + @ViReturn + @RequiresPermissions("member.change.mange") + public Object batchUpdateUserState(@Param("users") String data) { + List users = Json.fromJsonAsList(Sys_user.class, data); + for (Sys_user user : users) { + userService.update(Chain.make("userState", user.getUserState()), Cnd.where("id", "=", user.getId())); + } + return null; + } + + + @At + @Ok("void") + public void downloadImport(HttpServletResponse response) { + try { + ViTool.excelResponse(response, "会员导入模版.xlsx"); + List entityList = new ArrayList<>(); + entityList.add(new ExcelExportEntity("工号", "loginname", 20)); + entityList.add(new ExcelExportEntity("姓名", "username", 20)); + entityList.add(new ExcelExportEntity("性别", "sex", 10)); + entityList.add(new ExcelExportEntity("单位名称", "unitName", 20)); + entityList.add(new ExcelExportEntity("联系方式", "mobile", 20)); + if (ShiroUtil.hasAnyRoles("sysadmin,A06")) { + entityList.add(new ExcelExportEntity("身份证号", "idcard", 30)); + } + entityList.add(new ExcelExportEntity("在职状态", "userState", 20)); + entityList.add(new ExcelExportEntity("人员类型", "personType", 20)); + entityList.add(new ExcelExportEntity("入会时间", "memberJoinTime", 20)); + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entityList, new ArrayList<>()); + workbook.write(response.getOutputStream()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + private final ReentrantLock lock = new ReentrantLock(true); + + @At + @AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"}) + @Aop(TransAop.READ_COMMITTED) + @SLog(type = "会员管理系统", tag = "信息维护-会员高级管理", msg = "导入会员", param = true, result = true) + public Object doImport(TempFile file) { + try { + lock.lock(); + List memberImportList = ExcelImportUtil.importExcel(file.getFile(), MemberTemp.class, new ImportParams()); + //获取系统用户 + List dataUserList = dao.query(Sys_user.class, Cnd.NEW()); + Map userMap = dataUserList.stream().collect(Collectors.toMap(Sys_user::getLoginname, v -> v)); + + List unitList = sysUnitService.query(Cnd.where("unitlevel","=",2)); + + //判断单位 + Map unitMap = unitList.stream().collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId)); + + //系统中有此用户,修改 + List needUpdateUserIds = new ArrayList<>(); + + //系统中没有,新增 + List needInsertUser = new ArrayList<>(); + + //赋予角色 + List userRoles = new ArrayList<>(); + + //返回错误记录 + List errorInfos = new ArrayList<>(); + + List needUpdateUser = new ArrayList<>(); + + memberImportList.forEach(v -> { + + //判断是否填写单位、单位是否存在 + String unitId = unitMap.get(v.getUnitName()); + if (Strings.isNotBlank(v.getUnitName()) && Strings.isBlank(unitId)) { + v.setErrorInfo("获取不到该用户的单位信息!"); + errorInfos.add(v); + return; + } + + //判断是否在系统中 + Sys_user user = userMap.get(v.getLoginname()); + Sys_user_role userRole = new Sys_user_role(); + if (Lang.isNotEmpty(user)) { + user.setUnitid(unitId); + user.setSex(v.getSex()); + user.setMobile(v.getMobile()); + user.setMember(1); + user.setUserState(v.getUserState()); + user.setPersonType(v.getPersonType()); + if (StrUtil.isNotBlank(v.getIdcard())) { + user.setIdcard(v.getIdcard()); + } + userRole.setUserId(user.getId()); + needUpdateUser.add(user); + needUpdateUserIds.add(user.getId()); + } else { + //不在就初始化新用户,工号用导入表中的 + Sys_user initUser = UserMode.initUser(new Sys_user()); + initUser.setUnitid(unitId); + initUser.setUsername(v.getUsername()); + initUser.setLoginname(v.getLoginname()); + initUser.setMember(1); + initUser.setSex(v.getSex()); + initUser.setMobile(v.getMobile()); + initUser.setUserState(v.getUserState()); + initUser.setPersonType(v.getPersonType()); + if (StrUtil.isNotBlank(v.getIdcard())) { + initUser.setIdcard(v.getIdcard()); + } + userRole.setUserId(initUser.getId()); + needInsertUser.add(initUser); + } + userRole.setRoleId(Roles.MEMBER); + userRoles.add(userRole); + }); + + //需要删除角色的用户ID + List doCleanRoleUsers = needInsertUser.stream().map(Sys_user::getId).collect(Collectors.toList()); + doCleanRoleUsers.addAll(needUpdateUserIds); + sysUnitService.dao().clear(Sys_user_role.class, Cnd.where("userId", "in", doCleanRoleUsers).and("roleId", "=", Roles.MEMBER)); + //新增会员角色 + sysUnitService.dao().insert(userRoles); + //系统中存在就修改 + sysUnitService.dao().update(Sys_user.class, Chain.make("member", 1), Cnd.where("id", "in", needUpdateUserIds)); + //系统中不存在就新增 + sysUnitService.dao().insert(needInsertUser); + + sysUnitService.dao().updateIgnoreNull(needUpdateUser); + + //如果有错误数据就返回给前端 + if (Lang.isNotEmpty(errorInfos)) { + NutMap nutMap = NutMap.NEW(); + nutMap.setv("totalCount", memberImportList.size()); + nutMap.setv("successCount", doCleanRoleUsers.size()); + nutMap.setv("errorCount", errorInfos.size()); + nutMap.setv("errorList", errorInfos.stream().map(v -> { + return NutMap.NEW().addv("工号", v.getLoginname()).addv("姓名", v.getUsername()).addv("错误原因", v.getErrorInfo()); + }).collect(Collectors.toList())); + return io.v.nutz.base.result.Result.success(nutMap); + } + + sysUnitService.dao().clear(Sys_user.class,Cnd.where("loginname","is",null)); + lock.unlock(); + return Result.success(); + } catch (Exception e) { + log.error(e.getMessage()); + return Result.error(); + } + } + + } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java index ae82c51..6d263cf 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java @@ -1,23 +1,20 @@ package io.v.nutz.zhgh.member.controller.change; -import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.member.service.MemberService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; 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.Lang; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -62,75 +59,41 @@ public class MemberChangeRecordsController { @Param(value = "unionGroupId", required = false) String unionGroupId, @Param(value = "threeUnitId", required = false) String threeUnitId, @Param(value = "userType", required = false) String userType, - @Param(value = "userStates", required = false) String[] userStates, - @Param(value = "personTypes", required = false) String[] personTypes, @Param(value = "changeType", required = false) Integer changeType, - @Param(value = "changeTypes", required = false) Integer[] changeTypes, - @Param(value = "changeOrigin", required = false) Integer[] changeOrigins) { - - Cnd cnd = Cnd.NEW(); - + @Param(value = "applyOrigin", required = false) Integer applyOrigin) { + CndPlus cnd = CndPlus.create(); + pageForm.defaultSortDesc("mcr.applyTime"); + cnd.and(pageForm); + //查询是否记录模式来自对会员还是福利会员 + //cnd.and("mcr.recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); cnd.andEX("u.unionid", "=", unionId); cnd.andEX("u.unitId", "=", unitId); cnd.andEX("u.threeUnitId", "=", threeUnitId); cnd.andEX("u.unionGroupId", "=", unionGroupId); cnd.andEX("u.personType", "=", userType); cnd.andEX("mcr.type", "=", changeType); -// cnd.andEX("mcr.applyOrigin", "=", applyOrigin); + cnd.andEX("mcr.applyOrigin", "=", applyOrigin); - if (Lang.isNotEmpty(changeTypes)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer type : changeTypes) { - seg.or(new Static("JSON_CONTAINS(his.changeTypes, CAST(%d AS JSON), '$')".formatted(type))); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(userStates)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String state : userStates) { - seg.orEquals("his.userState", state); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(personTypes)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String personType : personTypes) { - seg.orEquals("his.personType", personType); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(changeOrigins)) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer c : changeOrigins) { - seg.orEquals("his.changeOrigin", c); - } - cnd.and(seg); - } - - if (StrUtil.isAllNotBlank(pageForm.getSearchName(), pageForm.getSearchKeyword())) { - cnd.where().andLike(pageForm.getSearchName(), pageForm.getSearchKeyword()); - } - if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { - cnd.orderBy(pageForm.getPageOrderName(), CndPlus.getOrder(pageForm.getPageOrderBy())); - } else { - cnd.desc("his.changeTime"); - } - - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("u.unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("u.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("u.unionGroupId", "is", null); cnd.and(seg); } } - return memberService.memberHistoryRecords(pageForm, cnd); + + Pagination pagination = memberService.memberChangeRecords(pageForm, cnd); + List list = pagination.getList(); + list.forEach(v -> { + v.setv("unionAudit", auditViService.fetch(Cnd.where("id", "=", v.getString("unionAuditId")))); + v.setv("schoolAudit", auditViService.fetch(Cnd.where("id", "=", v.getString("schoolAuditId")))); + }); + + return pagination; } } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java index 4f96a3a..156bad3 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java @@ -4,11 +4,11 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.member.service.MemberCheckPersonalService; import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.base.utils.Vi; import io.v.nutz.base.utils.ViTool; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.member.service.MemberCheckPersonalService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java index 5eb92f9..f65da09 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java @@ -1,13 +1,12 @@ package io.v.nutz.zhgh.member.controller.check; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.SimpleService; import io.v.nutz.base.utils.Roles; import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.base.query.PageForm; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -15,7 +14,6 @@ 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.json.Json; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java index c209fa9..b207204 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java @@ -2,16 +2,15 @@ package io.v.nutz.zhgh.member.controller.check; import cn.hutool.core.lang.Assert; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.SimpleService; import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.sys.models.Sys_user; import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.model.MemberCheckSelfTask; import io.v.nutz.zhgh.member.model.MemberCheckTask; import io.v.nutz.zhgh.member.model.MemberCheckUnionTask; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.sys.models.SysUnionGroup; -import io.v.nutz.sys.models.Sys_user; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java index 394e8ab..9b4311f 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java @@ -4,9 +4,12 @@ import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import com.google.common.base.Joiner; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.SimpleService; import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_config; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; @@ -14,9 +17,6 @@ import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.handle.MemberChangeAuditHandle; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.model.MemberCheckUnionTask; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; @@ -113,7 +113,7 @@ public class MemberCheckUnionController { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("u.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("u.unionGroupId", "is", null); cnd.and(seg); cnd.and("u.unionid", "=", Vi.getUnionId()); @@ -141,7 +141,7 @@ public class MemberCheckUnionController { cnd.desc("changeTime"); } - if (org.nutz.lang.Lang.isNotEmpty(changeTypes)) { + if (Lang.isNotEmpty(changeTypes)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (Integer type : changeTypes) { seg.or(new Static("JSON_CONTAINS(his.changeTypes, CAST(%d AS JSON), '$')".formatted(type))); @@ -149,7 +149,7 @@ public class MemberCheckUnionController { cnd.and(seg); } - if (org.nutz.lang.Lang.isNotEmpty(userStates)) { + if (Lang.isNotEmpty(userStates)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (String state : userStates) { seg.orEquals("u.userState", state); @@ -157,7 +157,7 @@ public class MemberCheckUnionController { cnd.and(seg); } - if (org.nutz.lang.Lang.isNotEmpty(personTypes)) { + if (Lang.isNotEmpty(personTypes)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (String personType : personTypes) { seg.orEquals("u.personType", personType); @@ -165,7 +165,7 @@ public class MemberCheckUnionController { cnd.and(seg); } - if (org.nutz.lang.Lang.isNotEmpty(changeOrigins)) { + if (Lang.isNotEmpty(changeOrigins)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (Integer c : changeOrigins) { seg.orEquals("u.changeOrigin", c); @@ -216,7 +216,7 @@ public class MemberCheckUnionController { } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("u.unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("u.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("u.unionGroupId", "is", null); cnd.and(seg); } @@ -228,7 +228,7 @@ public class MemberCheckUnionController { cnd.andEX("u.unitid", "=", unitId); cnd.andEX("u.member", "=", isMember); - if (org.nutz.lang.Lang.isNotEmpty(changeTypes)) { + if (Lang.isNotEmpty(changeTypes)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (Integer type : changeTypes) { seg.or(new Static("JSON_CONTAINS(his.changeTypes, CAST(%d AS JSON), '$')".formatted(type))); @@ -236,7 +236,7 @@ public class MemberCheckUnionController { cnd.and(seg); } - if (org.nutz.lang.Lang.isNotEmpty(userStates)) { + if (Lang.isNotEmpty(userStates)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (String state : userStates) { seg.orEquals("u.userState", state); @@ -244,7 +244,7 @@ public class MemberCheckUnionController { cnd.and(seg); } - if (org.nutz.lang.Lang.isNotEmpty(personTypes)) { + if (Lang.isNotEmpty(personTypes)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (String personType : personTypes) { seg.orEquals("u.personType", personType); @@ -252,7 +252,7 @@ public class MemberCheckUnionController { cnd.and(seg); } - if (org.nutz.lang.Lang.isNotEmpty(changeOrigins)) { + if (Lang.isNotEmpty(changeOrigins)) { SqlExpressionGroup seg = new SqlExpressionGroup(); for (Integer c : changeOrigins) { seg.orEquals("u.changeOrigin", c); @@ -307,11 +307,11 @@ public class MemberCheckUnionController { dao.execute(userSql); String userState = StrUtil.blankToDefault(userSql.getString(), ""); - if (memberChangeRecord.getType() == UserChangeType.WORK.getCode()) { - if (userState.equals(UserChangeType.WORK.getDescription())) { - return Result.error("该用户当前的状态已经是" + UserChangeType.WORK.getDescription() + ",您无需变更!"); - } - } +// if (memberChangeRecord.getType() == UserChangeType.ON_DUTY.getCode()) { +// if (userState.equals(UserChangeType.ON_DUTY.getDescription())) { +// return Result.error("该用户当前的状态已经是" + UserChangeType.ON_DUTY.getDescription() + ",您无需变更!"); +// } +// } if (memberChangeRecord.getType() == UserChangeType.RESIGN.getCode()) { if (userState.equals(UserChangeType.RESIGN.getDescription())) { return Result.error("该用户当前的状态已经是" + UserChangeType.RESIGN.getDescription() + ",您无需变更!"); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java index 84fa2d9..a1ba028 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java @@ -4,8 +4,15 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.service.AsyncService; +import io.v.nutz.base.service.AuditService; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.ViTool; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.member.MemberMode; import io.v.nutz.zhgh.member.UserMode; @@ -15,13 +22,6 @@ import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.constant.MemberOrigin; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.base.service.AuditService; -import io.v.nutz.base.service.AsyncService; -import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.base.utils.ViTool; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -112,18 +112,18 @@ public class MemberBatchMakeController { cnd.andEX("unitId", "=", unitId); cnd.andEX("threeUnitId", "=", threeUnitId); cnd.andEX("unionGroupId", "=", unionGroupId); - cnd.andEx("personType", "=", personType); - cnd.andEx("userState", "=", userState); - cnd.andEx("campusName", "=", campus); - cnd.andEx("memberStatus", "=", memberStatus); + cnd.andEX("personType", "=", personType); + cnd.andEX("userState", "=", userState); + cnd.andEX("campusName", "=", campus); + cnd.andEX("memberStatus", "=", memberStatus); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("unionGroupId", "is", null); cnd.and(seg); } @@ -150,7 +150,7 @@ public class MemberBatchMakeController { for (String v : userIds) { MemberChangeRecord record = new MemberChangeRecord(); record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); -// record.setType(UserChangeType.RESTORE.getCode()); + record.setType(UserChangeType.RESTORE.getCode()); record.setUserId(v); record.setApplyTime(new Date()); record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); @@ -209,15 +209,15 @@ public class MemberBatchMakeController { cnd.andEX("unitId", "=", unitId); cnd.andEX("threeUnitId", "=", threeUnitId); cnd.andEX("unionGroupId", "=", unionGroupId); - cnd.andEx("personType", "=", personType); - cnd.andEx("userState", "=", userState); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + cnd.andEX("personType", "=", personType); + cnd.andEX("userState", "=", userState); + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("unionGroupId", "is", null); cnd.and(seg); } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java index 09fe97f..49a1f4c 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java @@ -2,8 +2,12 @@ package io.v.nutz.zhgh.member.controller.info; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.member.MemberMode; import io.v.nutz.zhgh.member.UserMode; @@ -14,10 +18,6 @@ import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.constant.MemberOrigin; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; @@ -142,11 +142,11 @@ public class MemberDataManageController { cnd.and(seg); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionid", "=", Vi.getUnionId()); } else { - cnd.and("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + cnd.and("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); } } @@ -245,11 +245,11 @@ public class MemberDataManageController { cnd.and(seg); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionid", "=", Vi.getUnionId()); } else { - cnd.and("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + cnd.and("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); } } @@ -268,7 +268,7 @@ public class MemberDataManageController { List insertMemberChangeRecords = Arrays.stream(userIds).map(v -> { MemberChangeRecord record = new MemberChangeRecord(); record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); -// record.setType(UserChangeType.RESTORE.getCode()); + record.setType(UserChangeType.RESTORE.getCode()); record.setUserId(v); record.setApplyTime(new Date()); record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); @@ -362,11 +362,11 @@ public class MemberDataManageController { cnd.and(seg); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionid", "=", Vi.getUnionId()); } else { - cnd.and("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + cnd.and("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); } } @@ -389,7 +389,7 @@ public class MemberDataManageController { List insertMemberChangeRecords = Arrays.stream(userIds).map(v -> { MemberChangeRecord record = new MemberChangeRecord(); record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); -// record.setType(UserChangeType.RESTORE.getCode()); + record.setType(UserChangeType.RESTORE.getCode()); record.setUserId(v); record.setApplyTime(new Date()); record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java index 33cab43..427a041 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java @@ -5,20 +5,20 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.result.Result; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; +import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.result.Result; +import io.v.nutz.base.service.AsyncService; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.ViTool; +import io.v.nutz.sys.services.SysRoleService; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.MemberMode; import io.v.nutz.zhgh.member.UserMode; import io.v.nutz.zhgh.member.model.MemberHistory; import io.v.nutz.zhgh.member.service.MemberHistoryService; import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.base.service.AsyncService; -import io.v.nutz.sys.services.SysRoleService; -import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.base.utils.ViTool; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -117,7 +117,6 @@ public class MemberGroupInfoController { marriage, education, hometown, - political, nation from user @@ -154,13 +153,13 @@ public class MemberGroupInfoController { cnd.where().andLike("jobTitle", jobTitle); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("unionGroupId", "is", null); cnd.and(seg); } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java index e380c69..bba61f8 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java @@ -1,8 +1,12 @@ package io.v.nutz.zhgh.member.controller.info; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; +import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.data.service.HistoryUserService; @@ -10,10 +14,6 @@ import io.v.nutz.zhgh.member.UserMode; import io.v.nutz.zhgh.member.constant.*; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; @@ -116,7 +116,7 @@ public class MemberMakeController { status.add(MemberStatus.RESTORE.getCode()); if (memberStatus == null || status.contains(memberStatus)) { - cnd.andEx("member", "=", 1); + cnd.andEX("member", "=", 1); } if (memberStatus == null) { @@ -125,14 +125,14 @@ public class MemberMakeController { group.or("memberStatus", "IS", null); cnd.and(group); } else { - cnd.andEx("memberStatus", "=", memberStatus); + cnd.andEX("memberStatus", "=", memberStatus); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { if (ShiroUtil.hasRole("H04")) { cnd.and("unionid", "=", Vi.getUnionId()); } else { - cnd.and("unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + cnd.and("unionGroupId", "in", ShiroUtil.getUnionGroupIds()); } } @@ -168,7 +168,7 @@ public class MemberMakeController { record.setCurrentUnitId(sys_user.getUnitid()); record.setCurrentUnionId(sys_user.getUnionid()); record.setApplyTime(new Date()); - if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); } else if (ShiroUtil.hasAnyRoles("H04")) { record.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java index 728344e..8aa0522 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java @@ -1,6 +1,5 @@ package io.v.nutz.zhgh.member.controller.info; -import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java index f56a09f..beae080 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java @@ -5,9 +5,9 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.base.utils.ViTool; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.member.service.MemberService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -82,7 +82,7 @@ public class MemberAnalysisController { $condition """); Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cnd.and("gh.id", "=", Vi.getUnionId()); } cnd.asc("gh.unioncode"); @@ -109,8 +109,8 @@ public class MemberAnalysisController { }); -// return list.stream().filter(v -> v.getInt("currentYearMemberNum") != 0).collect(Collectors.toList()); - return list; + return list.stream().filter(v -> v.getInt("currentYearMemberNum") != 0).collect(Collectors.toList()); + } @At @@ -150,7 +150,6 @@ public class MemberAnalysisController { (select count(1) from `user` where member = 1 and unitid = dw.id) as currentYearMemberNum FROM sys_unit dw - where dw.unitlevel = 2 $condition """); // WHERE 1=1 AND dw.parentId = 0 AND id NOT IN ('0','000') ORDER BY dw.unitcode ASC @@ -158,7 +157,7 @@ public class MemberAnalysisController { // cnd.and("dw.parentId", "=", 0).and("id", "not in", Lang.array("0", "000")); // cnd.and("dw.parentId", "=", 0); cnd.asc("dw.unitcode"); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cnd.and("dw.unionid", "=", Vi.getUnionId()); } sql.setCondition(cnd); @@ -183,8 +182,7 @@ public class MemberAnalysisController { v.put("reduceOtherNum", v.getInt("离职、去世、退休、开除、退会人数")); }); -// return list.stream().filter(v -> v.getInt("currentYearMemberNum") != 0).collect(Collectors.toList()); - return list; + return list.stream().filter(v -> v.getInt("currentYearMemberNum") != 0).collect(Collectors.toList()); } @@ -277,7 +275,7 @@ public class MemberAnalysisController { if (Strings.isNotBlank(unitId)) { cnd.and("dw.id", "=", unitId); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cnd.and("dw.unionid", "=", Vi.getUnionId()); } // cnd.and("dw.parentId", "=", 0).and("dw.id", "not in ", Lang.array("0", "000")); @@ -287,7 +285,7 @@ public class MemberAnalysisController { if (Strings.isNotBlank(unionId)) { cnd.and("gh.id", "=", unionId); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cnd.and("gh.id", "=", Vi.getUnionId()); } cnd.asc("gh.unioncode"); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java index 8712eef..4709752 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java @@ -1,10 +1,8 @@ package io.v.nutz.zhgh.member.controller.inquire; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.sys.models.Sys_dict; -import io.v.nutz.sys.services.SysDictService; -import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.base.utils.DateUtil; +import io.v.nutz.zhgh.member.service.MemberService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Sqls; import org.nutz.dao.entity.Record; @@ -17,7 +15,6 @@ import org.nutz.mvc.annotation.Ok; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 会员数据看板 @@ -40,9 +37,6 @@ public class MemberDataBoardController { @Inject private MemberService memberService; - @Inject - private SysDictService sysDictService; - /** * @return 今年和去年的会员数 @@ -80,10 +74,8 @@ public class MemberDataBoardController { @ViReturn @RequiresPermissions("member.inquire.board") public Object memberPercentage() { - List memberApplyPersonTypeDicts = sysDictService.getSubListByCode("memberApplyPersonType"); - List personTypes = memberApplyPersonTypeDicts.stream().map(v -> v.getCode()).collect(Collectors.toList()); int member = memberService.count(Sqls.create("select count(1) from member")); - int user = memberService.count(Sqls.create("select count(1) from sys_user where personType in (@personTypes)").setParam("personTypes", personTypes)); + int user = memberService.count(Sqls.create("select count(1) from sys_user")); return (float) member / (float) user; } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java index 359f7b4..3d1d47f 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java @@ -2,38 +2,22 @@ package io.v.nutz.zhgh.member.controller.inquire; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.base.utils.ViTool; -import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.zhgh.member.service.MemberHistoryService; -import io.v.nutz.sys.models.Sys_union; -import org.apache.poi.ss.usermodel.Workbook; +import io.v.nutz.zhgh.data.model.UserHistory; import org.apache.shiro.authz.annotation.RequiresPermissions; -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.Inject; import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.Strings; -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.io.BufferedOutputStream; -import java.net.URLEncoder; -import java.util.List; -import java.util.stream.Collectors; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - /** * @author zhf * @date 2021/8/21 9:07 @@ -47,12 +31,6 @@ public class MemberHistoyController { @Inject("UserHistory") private ViService userHistoryViService; - @Inject - private MemberHistoryService memberHistoryService; - - @Inject - private Dao dao; - @At("") @Ok("beetl:/platform/member/inquire/History.html") @RequiresPermissions("member.inquire.History") @@ -76,34 +54,22 @@ public class MemberHistoyController { @Param(value = "memberSearchKeyWord", required = false) String memberSearchKeyWord) { Sql sql = Sqls.create(""" SELECT - u.id, - u.loginname, - u.username, - u.sex, - u.birthday, - u.personType, - u.userState, - u.unionname, - u.unitname, - u.threeUnitName, - u.unionGroupName, - u.member, - su.id as selfUserId + u.*, + (select id from sys_user where loginname = u.loginname) as userId FROM `member_his` u - left join sys_user su on su.loginname = u.loginname LEFT JOIN sys_unit unit ON unit.id = u.unitid LEFT JOIN sys_union unin ON unin.id = unit.unionid $condition """); CndPlus cnd = CndPlus.create(); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("u.unionId", "=", Vi.getUnionId()); } else if (ShiroUtil.hasRole("ghxzzz")) { cnd.and("u.unionId", "=", Vi.getUnionId()); SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); + seg.or("u.unionGroupId", "in", ShiroUtil.getUnionGroupIds()); seg.or("u.unionGroupId", "is", null); cnd.and(seg); } @@ -135,116 +101,4 @@ public class MemberHistoyController { } - @At - @ViReturn - @Ok("void") - public void doExportByUnion(String year, HttpServletResponse response) { - Sql sql = Sqls.create(""" - SELECT - u.*, - su.id as selfUserId, - unin.id as unionId - FROM - `member_his` u - left join sys_user su on su.loginname = u.loginname - LEFT JOIN sys_unit unit ON unit.id = u.unitid - LEFT JOIN sys_union unin ON unin.id = unit.unionid - $condition - """); - CndPlus cnd = CndPlus.create(); - cnd.and("u.`year`", "=", year); - sql.setCondition(cnd); - List memberHisList = memberHistoryService.listMap(sql); - List unionList = dao.query(Sys_union.class, Cnd.NEW()); - try { - response.setContentType("application/octet-stream"); - response.setHeader("content-disposition", "attachment;filename=" - + URLEncoder.encode(year + "年度会员.zip", "UTF-8")); - ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream())); - for (Sys_union union : unionList) { - String fileName = union.getUnioncode() + union.getUnionname().replaceAll("/", "、") + "会员表.xlsx"; - zipOutputStream.putNextEntry(new ZipEntry(fileName)); - List usersByUnion = memberHisList.stream().filter(v -> Strings.isNotBlank(v.getString("unionId")) && v.getString("unionId").equals(union.getId())).collect(Collectors.toList()); - Workbook workbook = memberHistoryService.doExport(usersByUnion, zipOutputStream); - workbook.write(zipOutputStream); - zipOutputStream.closeEntry(); - response.flushBuffer(); - } - zipOutputStream.flush(); - zipOutputStream.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - @At - @ViReturn - @Ok("void") - public void doExport(@Param(value = "year", required = false) Integer year, - @Param(value = "unionId", required = false) String unionId, - @Param(value = "unitId", required = false) String unitId, - @Param(value = "threeUnitId", required = false) String threeUnitId, - @Param(value = "unionGroupId", required = false) String unionGroupId, - @Param(value = "personType", required = false) String personType, - @Param(value = "userState", required = false) String userState, - @Param(value = "memberStatus", required = false) Integer memberStatus, - @Param(value = "memberSearchName", required = false) String memberSearchName, - @Param(value = "memberSearchKeyWord", required = false) String memberSearchKeyWord, - @Param(value = "searchName", required = false) String searchName, - @Param(value = "searchKeyword", required = false) String searchKeyword, - HttpServletResponse response) { - Sql sql = Sqls.create(""" - SELECT - u.*, - su.id as selfUserId - FROM - `member_his` u - left join sys_user su on su.loginname = u.loginname - LEFT JOIN sys_unit unit ON unit.id = u.unitid - LEFT JOIN sys_union unin ON unin.id = unit.unionid $condition - """); - CndPlus cnd = CndPlus.create(); - - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { - if (ShiroUtil.hasRole("H04")) { - cnd.and("u.unionId", "=", Vi.getUnionId()); - } else if (ShiroUtil.hasRole("ghxzzz")) { - cnd.and("u.unionId", "=", Vi.getUnionId()); - SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("u.unionGroupId", "in", io.v.nutz.web.commons.utils.ShiroUtil.getUnionGroupIds()); - seg.or("u.unionGroupId", "is", null); - cnd.and(seg); - } - } - - cnd.andEX("u.unionid", "=", unionId); - cnd.andEX("u.unitId", "=", unitId); - cnd.andEX("u.threeUnitId", "=", threeUnitId); - cnd.andEX("u.unionGroupId", "=", unionGroupId); - - cnd.andEX("u.year", "=", year); - cnd.andEX("u.personType", "=", personType); - cnd.andEX("u.userState", "=", userState); - cnd.andEX("u.memberStatus", "=", memberStatus); - - if (StrUtil.isNotBlank(memberSearchName)) { - cnd.and(new SqlExpressionGroup().andLike(memberSearchName, memberSearchKeyWord)); - } - - if (Strings.isNotBlank(searchName) && Strings.isNotBlank(searchKeyword)){ - cnd.and(Cnd.likeEX(searchName,searchKeyword)); - } - cnd.desc("unit.name"); - sql.setCondition(cnd); - List memberHisList = memberHistoryService.listMap(sql); - try { - ViTool.excelResponse(response, year + "年度会员表.xlsx"); - Workbook workbook = memberHistoryService.doExport(memberHisList, response.getOutputStream()); - workbook.write(response.getOutputStream()); - }catch (Exception e){ - e.printStackTrace(); - } - - } } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java index af644c6..49a5c5a 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java @@ -6,16 +6,16 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.zhgh.member.constant.MemberStatus; -import io.v.nutz.zhgh.member.service.MemberService; -import io.v.nutz.zhgh.member.utils.MemberUtils; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.ViService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.member.constant.MemberStatus; +import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.member.utils.MemberUtils; import lombok.Data; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -82,6 +82,7 @@ public class MemberInquireIntegrateController { @Param(value = "userStates", required = false) String[] userStates, @Param(value = "memberStatus", required = false) String[] memberStatus, @Param(value = "campus", required = false) String campus, + @Param(value = "memberType", required = false) String memberType, @Param(value = "memberTypes", required = false) String[] memberTypes, @Param(value = "sexTypes", required = false) String[] sexTypes, @Param(value = "roleIds", required = false) String[] roleIds, @@ -94,22 +95,7 @@ public class MemberInquireIntegrateController { Cnd cnd = MemberUtils.getCnd(pageForm, startDate, endDate, unionId, unitId, personTypes, userStates, memberTypes, sexTypes, age, null, roleIds, null, null, memberStatus, threeUnitId, unionGroupId, reverseSelection, null, null, campus); Sql sql = Sqls.create(""" - SELECT - u.id, - u.loginname, - u.username, - u.sex, - u.birthday, - u.personType, - u.userState, - u.unionname, - u.unitname, - u.threeUnitName, - u.unionGroupName, - u.mobile, - u.idcard, - u.member - from $table + SELECT u.* from $table LEFT JOIN sys_user_role sur ON sur.userid = u.id $condition """); @@ -141,18 +127,23 @@ public class MemberInquireIntegrateController { status.add(MemberStatus.RESTORE.getCode()); // if (memberStatus != null && memberStatus.length > 0) { -// cnd.andEx("memberStatus", "in", memberStatus); +// cnd.andEX("memberStatus", "in", memberStatus); // } else { -// cnd.andEx("member", "=", 1); +// cnd.andEX("member", "=", 1); // /* SqlExpressionGroup group = new SqlExpressionGroup(); // group.and("memberStatus", "in", status); // group.or("memberStatus", "IS", null); // cnd.and(group);*/ // } + if ("2".equals(memberType)) { + cnd.and("u.member","=",1); + } else if ("3".equals(memberType)) { + cnd.and(Cnd.exps("u.member","=",0).or("u.member","is",null).or("u.member","=","")); + } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { - cnd.and("u.unionid", "=", Vi.getUnionId()); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { + cnd.and("unionid", "=", Vi.getUnionId()); } if (StrUtil.isBlank(pageForm.getPageOrderName()) && StrUtil.isBlank(pageForm.getPageOrderBy())) { @@ -402,20 +393,20 @@ public class MemberInquireIntegrateController { sql.setVar("table", "user"); } else { sql.setVar("table", "member_his"); - cnd.andEx("year", "=", year); + cnd.andEX("year", "=", year); } cnd.and("member", "=", 1); - cnd.andEx("unionid", "=", unionId); - cnd.andEx("unitid", "=", unitId); + cnd.andEX("unionid", "=", unionId); + cnd.andEX("unitid", "=", unitId); if (Json.fromJsonAsArray(Integer.class, memberStatus).length > 0) { - cnd.andEx("memberStatus", "in", Json.fromJsonAsArray(Integer.class, memberStatus)); + cnd.andEX("memberStatus", "in", Json.fromJsonAsArray(Integer.class, memberStatus)); } if (Json.fromJsonAsArray(String.class, personTypes).length > 0) { - cnd.andEx("personType", "in", Json.fromJsonAsArray(String.class, personTypes)); + cnd.andEX("personType", "in", Json.fromJsonAsArray(String.class, personTypes)); } if (Json.fromJsonAsArray(String.class, userStates).length > 0) { - cnd.andEx("userState", "in", Json.fromJsonAsArray(String.class, userStates)); + cnd.andEX("userState", "in", Json.fromJsonAsArray(String.class, userStates)); } @@ -454,6 +445,7 @@ public class MemberInquireIntegrateController { @Param(value = "userStates", required = false) String[] userStates, @Param(value = "memberStatus", required = false) String[] memberStatus, @Param(value = "campus", required = false) String campus, + @Param(value = "memberType", required = false) String memberType, @Param(value = "memberTypes", required = false) String[] memberTypes, @Param(value = "sexTypes", required = false) String[] sexTypes, @Param(value = "roleIds", required = false) String[] roleIds, @@ -463,6 +455,59 @@ public class MemberInquireIntegrateController { @Param(value = "memberSearchKeyWord", required = false) String memberSearchKeyWord, String props) { try { +// int yyyy = Calendar.getInstance().get(Calendar.YEAR); +// CndPlus cnd = CndPlus.create(); +// Sql sql = Sqls.create(""" +// SELECT +// *, +// unitname, +// unionname, +// unitcode, +// unioncode +// FROM +// $table +// $condition +// """); +// +// if (year == yyyy) { +// sql.setVar("table", "user"); +// } else { +// sql.setVar("table", "member_his"); +// cnd.andEX("year", "=", year); +// } +// +// cnd.and("member", "=", 1); +// if (ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { +// cnd.andEX("unionid", "=", unionId); +// } else { +// cnd.andEX("unionid", "=", Vi.getUnionId()); +// } +// cnd.andEX("unitid", "=", unitId); +// if (memberStatus != null) { +// if (Json.fromJsonAsArray(Integer.class, memberStatus).length > 0) { +// cnd.andEX("memberStatus", "in", Json.fromJsonAsArray(Integer.class, memberStatus)); +// } else { +// List status = new ArrayList<>(); +// status.add(MemberStatus.NORMAL.getCode()); +// status.add(MemberStatus.TURN_IN.getCode()); +// status.add(MemberStatus.RESTORE.getCode()); +// SqlExpressionGroup group = new SqlExpressionGroup(); +// group.and("memberStatus", "in", status); +// group.or("memberStatus", "IS", null); +// cnd.and(group); +// } +// } +// +// if (personTypes != null && Json.fromJsonAsArray(String.class, personTypes).length > 0) { +// cnd.andEX("personType", "in", Json.fromJsonAsArray(String.class, personTypes)); +// } +// if (userStates != null && Json.fromJsonAsArray(String.class, userStates).length > 0) { +// cnd.andEX("userState", "in", Json.fromJsonAsArray(String.class, userStates)); +// } +// cnd.asc("unitcode"); +// cnd.asc("unioncode"); +// cnd.asc("memberJoinTime"); +// sql.setCondition(cnd); int yyyy = Calendar.getInstance().get(Calendar.YEAR); Cnd cnd = MemberUtils.getCnd(null, startDate, endDate, unionId, unitId, personTypes, userStates, memberTypes, sexTypes, age, null, roleIds, null, null, memberStatus, threeUnitId, unionGroupId, reverseSelection, null, null, campus); @@ -488,7 +533,13 @@ public class MemberInquireIntegrateController { cnd.and(new SqlExpressionGroup().andLike(memberSearchName, memberSearchKeyWord)); } - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if ("2".equals(memberType)) { + cnd.and("u.member","=",1); + } else if ("3".equals(memberType)) { + cnd.and(Cnd.exps("u.member","=",0).or("u.member","is",null).or("u.member","=","")); + } + + if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { cnd.and("unionid", "=", Vi.getUnionId()); } cnd.asc("unitcode"); @@ -498,21 +549,28 @@ public class MemberInquireIntegrateController { sql.setCondition(cnd); List entityList = new ArrayList<>(); - entityList.add(new ExcelExportEntity("序号", "no", 20)); - Map propMap = Json.fromJson(Map.class, props); + propMap.put("unioncode", "所属工会代码"); + propMap.put("unitcode", "所属单位代码"); propMap.forEach((k, v) -> { - entityList.add(new ExcelExportEntity(v, k, 20)); + if (k.equals("unioncode")) { + entityList.add(7, new ExcelExportEntity(v, k, 20)); + } else if (k.equals("unitcode")) { + entityList.add(9, new ExcelExportEntity(v, k, 20)); + } else { + entityList.add(new ExcelExportEntity(v, k, 20)); + } }); +// List exportList = sys_userViService.listEntity(sql, ExportEntityUser.class); + List memberList = memberService.list(sql); - for (int i = 0; i < memberList.size(); i++) { - memberList.get(i).set("no", i + 1); - if (StrUtil.isNotEmpty(memberList.get(i).getString("memberJoinTime"))) { - memberList.get(i).set("memberJoinTime", memberList.get(i).getString("memberJoinTime").substring(0, 10)); + memberList.forEach(v -> { + if (StrUtil.isNotEmpty(v.getString("memberJoinTime"))) { + v.set("memberJoinTime", v.getString("memberJoinTime").substring(0, 10)); } - } + }); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(("会员信息.xls").getBytes("utf-8"), "ISO8859-1")); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java index 245d065..26a17a0 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java @@ -4,8 +4,8 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.util.StrUtil; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; +import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.commons.lang.StringUtils; @@ -89,7 +89,7 @@ public class MemberStatisticsController { int currentYear = Calendar.getInstance().get(Calendar.YEAR); CndPlus cnd = CndPlus.create(); Sql sql = Sqls.create(unionSql); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cnd.and("un.id", "=", Vi.getUnionId()); } if(StrUtil.isNotBlank(unionId)) { @@ -113,7 +113,7 @@ public class MemberStatisticsController { int currentYear = Calendar.getInstance().get(Calendar.YEAR); CndPlus cnd = CndPlus.create(); Sql sql = Sqls.create(unitSql); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cnd.and("un.unionid", "=", Vi.getUnionId()); } cnd.and("unitlevel", "=", 2).and("unitcode", "!=", "000"); @@ -153,10 +153,10 @@ public class MemberStatisticsController { sys_union un $condition """); - if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "SchoolUnionMemberAdmin"))) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cndPlus.and("un.id", "=", Vi.getUnionId()); } else { - cndPlus.andEx("un.id", "=", unionId); + cndPlus.andEX("un.id", "=", unionId); } if (personTypes != null && personTypes.length > 0) { String join = StringUtils.join(personTypes, "','"); @@ -178,7 +178,7 @@ public class MemberStatisticsController { Sql sql = Sqls.create(union ? unionSql : unitSql); if (union) { - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cndPlus.and("un.id", "=", Vi.getUnionId()); } if (Strings.isNotBlank(unionId)) { @@ -186,7 +186,7 @@ public class MemberStatisticsController { } } else { cndPlus.and("unitlevel", "=", 2).and("unitcode", "!=", "000"); - if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (!ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { cndPlus.and("un.unionid", "=", Vi.getUnionId()); } if (Strings.isNotBlank(unitId)) { @@ -243,7 +243,7 @@ public class MemberStatisticsController { try { response.setContentType("application/octet-stream"); - response.setHeader("Content-Disposition", "attachment;filename=" + new String(("会员性别统计.xls").getBytes("utf-8"), "ISO8859-1")); + response.setHeader("Content-Disposition", "attachment;filename=" + new String(("会员统计名单.xls").getBytes("utf-8"), "ISO8859-1")); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), entityList, memberList); ServletOutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java index 8659a83..92fb71c 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java +++ b/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java @@ -5,10 +5,10 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.sys.models.Sys_dict; import io.v.nutz.sys.services.SysDictService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.member.service.MemberService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Sqls; @@ -53,7 +53,7 @@ public class MemberUserTypeController { Sql sql = null; - if (ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin")) { + if (ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03"))) { if (searchType.equals("按分工会统计")) { sql = Sqls.create(""" SELECT @@ -134,7 +134,7 @@ public class MemberUserTypeController { personTypes = userType.stream().map(v -> v.getName()).collect(Collectors.toList()); Sql sql = null; - boolean hasAdminRoles = ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin,SchoolUnionWelfareAdmin"); + boolean hasAdminRoles = ShiroUtil.hasAnyRoles(Lang.array("sysadmin", "A06", "H03")); if (hasAdminRoles) { if (searchType.equals("按分工会统计")) { diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java index c5ad3ff..aa7f350 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java +++ b/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java @@ -1,10 +1,17 @@ package io.v.nutz.zhgh.member.handle; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.service.AuditService; +import io.v.nutz.base.service.ViService; +import io.v.nutz.base.service.impl.ViServiceImpl; +import io.v.nutz.base.utils.MsgApi; import io.v.nutz.base.utils.Roles; - import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.ViResource; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.member.UserMode; @@ -12,14 +19,6 @@ import io.v.nutz.zhgh.member.constant.MemberApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; import io.v.nutz.zhgh.member.constant.MemberOrigin; import io.v.nutz.zhgh.member.model.MemberApplyRecord; -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.service.AuditService; -import io.v.nutz.base.service.ViService; -import io.v.nutz.base.service.impl.ViServiceImpl; -import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.base.utils.ViResource; import lombok.Getter; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; @@ -29,12 +28,10 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.lang.random.R; import org.nutz.lang.util.NutMap; -import org.nutz.trans.Trans; import org.springframework.beans.BeanUtils; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; /** * 会员申请审核 @@ -73,9 +70,8 @@ public enum MemberApplyAuditHandle { """).setParam("roleId", Roles.UNION_MANGER).setParam("unionId", record.getUnionId()); List mapList = sysUserService.listMap(sql); - - NutMap map = new NutMap(); - map.setv("unionLeader", mapList); + MemberApplyToDoHandler.START_PROCESS.exec(record,null); + MemberApplyToDoHandler.CREATE_UNION_TASK.exec(record,NutMap.NEW().addv("unionLeader",mapList)); UserHistory history = new UserHistory(); BeanUtils.copyProperties(user, history); @@ -87,59 +83,53 @@ public enum MemberApplyAuditHandle { history.setChangeReason("个人申请"); history.setMemberChangeRecordId(record.getId()); - MemberApplyToDoHandler.START_PROCESS.exec(insert, null); - MemberApplyToDoHandler.CREATE_UNION_TASK.exec(insert, map); - - - mapList.forEach(v -> { +/* mapList.forEach(v -> { String content = user.getUsername() + "提交了会员申请待您审核,请前往智慧工会进行审核!"; // sendMsg.pushWeChatMsg("会员系统", content, v.getString("loginname")); - }); + });*/ return insert; - - } }, /** - * 院级工会审核 + * 分工会审核 */ AUDIT_UNION(MemberApplyState.UNION) { @Override - @Aop(TransAop.READ_COMMITTED) public MemberApplyRecord next(MemberApplyRecord record, Audit audit) { + record.setStateId(audit.getAuditPass() ? MemberApplyState.SCHOOL_UNION : MemberApplyState.UNION_FAIL); record.setUnionAuditId(auditService.insert(audit).getId()); memberApplyRecordViService.update(record); Sys_user user = sysUserService.fetch(record.getUserId()); - Sql sql = Sqls.create(""" - SELECT - su.loginname - FROM - sys_user_role sur - LEFT JOIN sys_user su ON su.id = sur.userId - WHERE - sur.roleId = @roleId - """).setParam("roleId", Roles.SchoolUnionMemberAdmin); - List mapList = sysUserService.listMap(sql); + MemberApplyToDoHandler.COMPLETE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "基层工会通过" : "基层工会拒绝")); - if (audit.getAuditPass()) { - mapList.forEach(v -> { -// sendMsg.pushWeChatMsg("会员系统", user.getUsername() + "提交了会员申请待您审核,请前往智慧工会进行审核!", v.getString("loginname")); - }); - } else { -// sendMsg.pushWeChatMsg("会员系统", "院级工会拒绝了您的会员申请", user.getLoginname()); - } +// if (audit.getAuditPass()) { +// +// Sql sql = Sqls.create(""" +// SELECT +// su.loginname +// FROM +// sys_user_role sur +// LEFT JOIN sys_user su ON su.id = sur.userId +// WHERE +// sur.roleId = @roleId +// """).setParam("roleId", Roles.H03); +// +// List mapList = sysUserService.listMap(sql); +// +// MemberApplyToDoHandler.CREATE_SCHOOL_TASK.exec(record,NutMap.NEW().addv("schoolLeader",mapList)); +// +///* mapList.forEach(v -> { +//// sendMsg.pushWeChatMsg("会员系统", user.getUsername() + "提交了会员申请待您审核,请前往智慧工会进行审核!", v.getString("loginname")); +// });*/ +// } else { +//// sendMsg.pushWeChatMsg("会员系统", "院级工会拒绝了您的会员申请", user.getLoginname()); +// MemberApplyToDoHandler.REFUSE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName","基层工会拒绝")); +// } - NutMap map = new NutMap(); - map.setv("option", audit.getAuditOpinion()); - map.setv("schoolLeader", mapList); - MemberApplyToDoHandler.COMPLETE_UNION_TASK.exec(record, map); - if (audit.getAuditPass()) { - MemberApplyToDoHandler.CREATE_SCHOOL_TASK.exec(record, map); - } return record; } @@ -149,7 +139,6 @@ public enum MemberApplyAuditHandle { */ AUDIT_SCHOOL(MemberApplyState.SCHOOL_UNION) { @Override - @Aop(TransAop.READ_COMMITTED) public MemberApplyRecord next(MemberApplyRecord record, Audit audit) { memberApplyRecordViService.transactional(() -> { @@ -157,21 +146,21 @@ public enum MemberApplyAuditHandle { record.setSchoolAuditId(auditService.insert(audit).getId()); memberApplyRecordViService.update(record); Sys_user user = sysUserService.fetch(record.getUserId()); + + MemberApplyToDoHandler.COMPLETE_SCHOOL_TASK.exec(record,NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "审核通过" : "校工会拒绝")); if (audit.getAuditPass()) { sysUserService.update(Chain.make("memberOrigin", MemberOrigin.APPLY.getCode()).add("memberStatus", record.getMemberStates()), Cnd.where("id", "=", record.getUserId())); UserMode.addMemberRole(record.getUserId()); + MemberApplyToDoHandler.COMPLETE_PROCESS.exec(record,null); +// sendMsg.pushWeChatMsg("会员系统", "校工会同意了您的会员申请", user.getLoginname()); } else { + MemberApplyToDoHandler.REFUSE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName","校工会拒绝")); +// sendMsg.pushWeChatMsg("会员系统", "校工会拒绝了您的会员申请", user.getLoginname()); } }); sysUserService.deleteCache(record.getUserId()); - NutMap map = new NutMap(); - map.setv("option", audit.getAuditOpinion()); - MemberApplyToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, map); - if (audit.getAuditPass()) { - MemberApplyToDoHandler.COMPLETE_PROCESS.exec(record, null); - } return record; } }; @@ -185,6 +174,7 @@ public enum MemberApplyAuditHandle { public ViService memberApplyRecordViService = ViResource.ioc.get(ViServiceImpl.class, "MemberApplyRecord"); public AuditService auditService = ViResource.ioc.getByType(AuditService.class); public SysUserService sysUserService = ViResource.ioc.getByType(SysUserService.class); + public MsgApi sendMsg = ViResource.ioc.getByType(MsgApi.class); public abstract MemberApplyRecord next(MemberApplyRecord record, Audit audit); diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java index 33964db..a27ee68 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java +++ b/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java @@ -1,20 +1,18 @@ package io.v.nutz.zhgh.member.handle; -import io.v.nutz.base.utils.Roles; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.utils.ViResource; +import io.v.nutz.sys.models.User; import io.v.nutz.sys.services.SysLocalProcessService; import io.v.nutz.sys.services.impl.SysLocalProcessServiceImpl; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.model.MemberApplyRecord; import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.zhgh.member.service.impl.MemberServiceImpl; -import io.v.nutz.zhgh.zgfw.model.difficult.Zgfw_knbf; import lombok.Getter; +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.Daos; import org.nutz.lang.util.NutMap; import java.util.List; @@ -29,12 +27,12 @@ public enum MemberApplyToDoHandler { START_PROCESS() { @Override public void exec(MemberApplyRecord record, NutMap extra) { - Sql sql = Sqls.fetchString(Sqls.create("select username from sys_user where id = @id").setParam("id", record.getUserId()).toString()); - dao.execute(sql); - String username = sql.getString(); - + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); +// Sql sql = Sqls.fetchString(Sqls.create("select username from sys_user where id = @id").setParam("id", record.getUserId()).toString()); +// dao.execute(sql); +// String username = sql.getString(); localProcessService.startProcess( - "【会员申请入会】" + username, + user.getUnionname() + "(" + user.getUsername() + ")【会员入会】申请", "member_apply_record@" + record.getId(), "", record.getUserId(), @@ -44,6 +42,60 @@ public enum MemberApplyToDoHandler { } }, + /** + * 审核拒绝 + */ + REFUSE_UNION_TASK(){ + @Override + public void exec(MemberApplyRecord record, NutMap extra) { + localProcessService.refuseProcess("member_apply_record@" + record.getId(),extra.getString("nodeName")); + } + }, + + /** + * 审核退回,重新修改申请 + */ + CREATE_APPLY_RE_MODIFY_TASK() { + @Override + public void exec(MemberApplyRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); + Sql sql = Sqls.fetchString(Sqls.create("select loginname from sys_user where id = @id").setParam("id", record.getUserId()).toString()); + dao.execute(sql); + String loginname = sql.getString(); + + localProcessService.createTask( + "member_apply_record@" + record.getId(), + "member_apply_record_back", + nodeName, + ShiroUtil.getUserId(), + List.of(loginname), + "/platform/member/apply/submit", + "/platform/member/apply/submit", + "/platform/member/apply/submit", + "/platform/member/apply/submit" + ); + + localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); + } + }, + + /** + * 退回修改完成后提交 + */ + COMPLETE_APPLY_RE_MODIFY_TASK() { + @Override + public void exec(MemberApplyRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); + localProcessService.completeTask( + "member_apply_record_back", + "member_apply_record@" + record.getId(), + ShiroUtil.getUserId(), + nodeName + ); + + localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); + } + }, /** * 创建分工会任务 @@ -55,8 +107,8 @@ public enum MemberApplyToDoHandler { List unionLeader = mapList.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); localProcessService.createTask( "member_apply_record@" + record.getId(), - "unionAuditId", - "分工会审核", + "member_apply_union_audit", + "基层工会审核", ShiroUtil.getUserId(), unionLeader, "/platform/member/apply/audit/union", @@ -64,7 +116,7 @@ public enum MemberApplyToDoHandler { "/platform/member/apply/audit/union", "/platform/member/apply/audit/union" ); - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), "分工会审核"); + localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), "基层工会审核"); } }, @@ -74,13 +126,14 @@ public enum MemberApplyToDoHandler { COMPLETE_UNION_TASK() { @Override public void exec(MemberApplyRecord record, NutMap extra) { - String option = extra.getString("option"); + String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "unionAuditId", + "member_apply_union_audit", "member_apply_record@" + record.getId(), ShiroUtil.getUserId(), - option + nodeName ); + localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); } }, @@ -94,7 +147,7 @@ public enum MemberApplyToDoHandler { List schoolLeader = mapList.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); localProcessService.createTask( "member_apply_record@" + record.getId(), - "schoolAuditId", + "member_apply_school_audit", "校工会审核", ShiroUtil.getUserId(), schoolLeader, @@ -114,13 +167,14 @@ public enum MemberApplyToDoHandler { COMPLETE_SCHOOL_TASK() { @Override public void exec(MemberApplyRecord record, NutMap extra) { - String option = extra.getString("option"); + String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "schoolAuditId", + "member_apply_school_audit", "member_apply_record@" + record.getId(), ShiroUtil.getUserId(), - option + nodeName ); + localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); } }, diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java index ccdc5b2..2896a5f 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java +++ b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java @@ -16,13 +16,9 @@ import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.model.MemberCheckTask; -import io.v.nutz.zhgh.welfare.model.WelfareMemberCheckUser; import lombok.Getter; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Chain; import org.nutz.dao.Cnd; -import org.nutz.ioc.aop.Aop; +import org.nutz.lang.util.NutMap; import org.springframework.beans.BeanUtils; import java.util.Date; @@ -42,9 +38,9 @@ public enum MemberChangeAuditHandle { */ CREATE(null) { @Override - @Aop(TransAop.READ_COMMITTED) public MemberChangeRecord next(MemberChangeRecord record, Audit audit) { record.setApplyTime(new Date()); + if (record.getApplyOrigin() == MemberChangeOrigin.PERSONAL.getCode()) { record.setUserId(ShiroUtil.getPrincipalProperty("id").toString()); record.setOriginUnitId(ShiroUtil.getPrincipalProperty("unitid").toString()); @@ -55,7 +51,7 @@ public enum MemberChangeAuditHandle { } else if (record.getApplyOrigin() == MemberChangeOrigin.SCHOOL.getCode()) { record.setStateId(MemberChangeApplyState.SUCCESS); } - recordViService.insert(record); + MemberChangeRecord changeRecord = recordViService.insert(record); UserHistory history = new UserHistory(); Sys_user user = recordViService.dao().fetch(Sys_user.class, record.getUserId()); @@ -69,25 +65,25 @@ public enum MemberChangeAuditHandle { history.setMemberChangeRecordId(record.getId()); recordViService.insert(history); - MemberChangeToDoHandler.START_PROCESS.exec(record); - MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record); - - return record; -// return recordViService.insert(record); + MemberChangeToDoHandler.START_PROCESS.exec(changeRecord,null); + MemberChangeToDoHandler.CREATE_UNION_TASK.exec(changeRecord, NutMap.NEW().addv("nodeName","基层工会审核")); + return changeRecord; } }, /** - * 院级工会审核 + * 分工会审核 */ UNION(MemberChangeApplyState.UNION) { @Override - @Aop(TransAop.READ_COMMITTED) public MemberChangeRecord next(MemberChangeRecord record, Audit audit) { + record.setStateId(audit.getAuditPass() ? MemberChangeApplyState.SCHOOL_UNION : MemberChangeApplyState.UNION_FAIL); record.setUnionAuditId(auditService.insert(audit).getId()); recordViService.update(record); - if (audit.getAuditPass()) { + MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "基层工会通过" : "基层工会拒绝")); + if (audit.getAuditPass()){ + if (auditService.dao().count(UserHistory.class, Cnd.where("memberChangeRecordId", "=", record.getId())) == 0) { UserHistory history = new UserHistory(); Sys_user user = recordViService.dao().fetch(Sys_user.class, record.getUserId()); @@ -102,10 +98,9 @@ public enum MemberChangeAuditHandle { recordViService.insert(history); } - MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record); - MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record); + MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record,null); } else { -// auditService.dao().clear(UserHistory.class, Cnd.where("memberChangeRecordId", "=", record.getId())); + MemberChangeToDoHandler.REFUSE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName","分工会拒绝")); } return record; } @@ -115,9 +110,9 @@ public enum MemberChangeAuditHandle { */ SCHOOL(MemberChangeApplyState.SCHOOL_UNION) { @Override - @Aop(TransAop.READ_COMMITTED) public MemberChangeRecord next(MemberChangeRecord record, Audit audit) { recordViService.transactional(() -> { + record.setStateId(audit.getAuditPass() ? MemberChangeApplyState.SUCCESS : MemberChangeApplyState.SCHOOL_UNION_FAIL); record.setSchoolAuditId(auditService.insert(audit).getId()); @@ -145,24 +140,16 @@ public enum MemberChangeAuditHandle { unitChangeHandle.change(record); } - } else { -// auditService.dao().clear(UserHistory.class, Cnd.where("memberChangeRecordId", "=", record.getId())); - MemberCheckTask task = recordViService.dao().fetch(MemberCheckTask.class, record.getTaskId()); - //如果是补发生日 - if (task.getWelfareCheckFilterMode() == 2) { - recordViService.dao().update(WelfareMemberCheckUser.class, - Chain.make("isDelete", "true"), - Cnd.where("userId", "=", record.getUserId()) - .and("taskId", "=", record.getTaskId())); - } } recordViService.update(record); - - }); - MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record); + + MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record,NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "审核通过" : "校工会拒绝")); + if (audit.getAuditPass()) { - MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record); + MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record,null); + } else { + MemberChangeToDoHandler.REFUSE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName","校工会拒绝")); } return record; diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java index 578db39..3199738 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java +++ b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java @@ -1,27 +1,25 @@ package io.v.nutz.zhgh.member.handle; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; import io.v.nutz.base.service.ViService; import io.v.nutz.base.service.impl.ViServiceImpl; -import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.ViResource; -import io.v.nutz.sys.models.Sys_user_role; +import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysRoleService; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.zhgh.data.constant.UserChangeType; -import io.v.nutz.zhgh.member.MemberMode; +import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.member.UserMode; import io.v.nutz.zhgh.member.WelfareMemberMode; -import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.zhgh.member.constant.MemberStatus; import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.model.MemberCheckTask; -import io.v.nutz.zhgh.welfare.model.WelfareMemberCheckUser; import lombok.Getter; -import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; -import org.nutz.ioc.aop.Aop; +import org.nutz.lang.Strings; + +import java.util.List; /** * 会员变更Handle @@ -33,11 +31,13 @@ import org.nutz.ioc.aop.Aop; */ @Getter public enum MemberChangeHandle { + + //会员变更Handle UNIT_CHANGE(UserChangeType.UNIT_CHANGE.getCode()) { @Override - @Aop(TransAop.READ_COMMITTED) public void change(MemberChangeRecord record) { + archive(record.getUserId(), UserChangeType.UNIT_CHANGE); sysUserService.update(Chain.make("unitid", record.getCurrentUnitId()) .add("unionid", record.getCurrentUnionId()) .add("threeUnitId", record.getCurrentThreeUnitId()), Cnd.where("id", "=", record.getUserId())); @@ -48,103 +48,106 @@ public enum MemberChangeHandle { NEW(UserChangeType.NEW.getCode()) { @Override public void change(MemberChangeRecord record) { - UserMode.addMemberRole(record.getUserId()); - if (record.getUpdateWelfare()) { - sysUserService.update(Chain.make("welfareMember", WelfareMemberMode.NORMAL.getCode()), Cnd.where("id", "=", record.getUserId())); - updateWelfareMember(record); + archive(record.getUserId(), UserChangeType.NEW); + if (null != record.getInsertMember() && record.getInsertMember()){ + UserMode.addMemberRole(record.getUserId()); + sysUserService.update(Chain.make("schoolTime", DateUtil.today()),Cnd.where("id","=",record.getUserId())); } + if (null != record.getUpdateWelfareMember() && record.getUpdateWelfareMember()) { + sysUserService.update(Chain.make("welfareMember", WelfareMemberMode.NORMAL.getCode()).add("schoolTime", DateUtil.today()), Cnd.where("id", "=", record.getUserId())); + } + sysUserService.clearCache(); + sysRoleService.clearCache(); } }, RESIGN(UserChangeType.RESIGN.getCode()) { @Override - @Aop(TransAop.READ_COMMITTED) public void change(MemberChangeRecord record) { - updateMember(record); + archive(record.getUserId(), UserChangeType.RESIGN); + UserMode.removeMemberRole(record.getUserId()); updateWelfareMember(record); - updateUserState(record); + updateMemberStatus(MemberStatus.TURN_OUT, record.getUserId()); + updateUserStateAndPersonType(record); } }, + /*DIE(UserChangeType.DIE.getCode()) { + @Override + public void change(MemberChangeRecord record) { + archive(record.getUserId(), UserChangeType.DIE); + UserMode.removeMemberRole(record.getUserId()); + updateWelfareMember(record); + updateMemberStatus(MemberStatus.WITHDRAWAL, record.getUserId()); + updateUserStateAndPersonType(record); + } + },*/ RETIREMENT(UserChangeType.RETIREMENT.getCode()) { @Override - @Aop(TransAop.READ_COMMITTED) public void change(MemberChangeRecord record) { - updateMember(record); + archive(record.getUserId(), UserChangeType.RETIREMENT); + UserMode.removeMemberRole(record.getUserId()); updateWelfareMember(record); - updateUserState(record); + updateMemberStatus(MemberStatus.KEEP, record.getUserId()); + updateUserStateAndPersonType(record); } }, - BASIC_CHANGE(UserChangeType.BASIC_CHANGE.getCode()) { + /*EXPELLED(UserChangeType.EXPELLED.getCode()) { @Override - @Aop(TransAop.READ_COMMITTED) public void change(MemberChangeRecord record) { - updateUserState(record); -// updateWelfareMember(record); - } - }, - WORK(UserChangeType.WORK.getCode()) { - @Override - @Aop(TransAop.READ_COMMITTED) - public void change(MemberChangeRecord record) { - updateMember(record); + archive(record.getUserId(), UserChangeType.EXPELLED); + UserMode.removeMemberRole(record.getUserId()); updateWelfareMember(record); - updateUserState(record); + updateMemberStatus(MemberStatus.EXPELLED, record.getUserId()); + updateUserStateAndPersonType(record); } - }, - NOT_WELFARE_LIST(UserChangeType.NOT_WELFARE_LIST.getCode()) { - @Override - @Aop(TransAop.READ_COMMITTED) - public void change(MemberChangeRecord record) { - //如果有核对任务和核对模式为福利,且异动类型为不在福利名单内 - if (StrUtil.isNotBlank(record.getTaskId()) && - record.getRecordMode() == 2) { - MemberCheckTask task = recordViService.dao().fetch(MemberCheckTask.class, record.getTaskId()); - //如果是补发生日 - if (task.getWelfareCheckFilterMode() == 2) { - recordViService.dao().clear(WelfareMemberCheckUser.class, Cnd.where("userId", "=", record.getUserId()) - .and("taskId", "=", record.getTaskId())); - } - } - } - }, - NEW_WELFARE_LIST(UserChangeType.NEW_WELFARE_LIST.getCode()) { - @Override - @Aop(TransAop.READ_COMMITTED) - public void change(MemberChangeRecord record) { - - - } - }, - + },*/ RESTORE(UserChangeType.RESTORE.getCode()) { @Override - @Aop(TransAop.READ_COMMITTED) public void change(MemberChangeRecord record) { - if (record.getRecordMode() == MemberChangeRecordMode.MEMBER.getCode()) { - UserMode.addRoleAndFlush(record.getUserId(), Roles.MEMBER); - UserMode.addRoleAndFlush(record.getUserId(), Roles.WELFARE_MEMBER); - sysUserService.update(Chain.make("member", MemberMode.NORMAL.getCode()).add("welfareMember", MemberMode.NORMAL.getCode()), Cnd.where("id", "=", record.getUserId())); - } else { - UserMode.addRoleAndFlush(record.getUserId(), Roles.WELFARE_MEMBER); - sysUserService.update(Chain.make("welfareMember", MemberMode.NORMAL.getCode()), Cnd.where("id", "=", record.getUserId())); + archive(record.getUserId(), UserChangeType.RESTORE); + UserMode.addMemberRole(record.getUserId()); + updateMemberStatus(MemberStatus.RESTORE, record.getUserId()); + if (record.getUpdateWelfareMember()) { + sysUserService.update(Chain.make("welfareMember", WelfareMemberMode.NORMAL.getCode()), Cnd.where("id", "=", record.getUserId())); } } }, - WITHDRAWAL(UserChangeType.WITHDRAWAL.getCode()) { @Override - @Aop(TransAop.READ_COMMITTED) public void change(MemberChangeRecord record) { - if (record.getRecordMode() == MemberChangeRecordMode.MEMBER.getCode()) { - UserMode.removeRole(record.getUserId(), Roles.MEMBER); - UserMode.removeRole(record.getUserId(), Roles.WELFARE_MEMBER); - sysUserService.update(Chain.make("member", MemberMode.NONE.getCode()) - .add("welfareMember", MemberMode.NONE.getCode()), Cnd.where("id", "=", record.getUserId())); - } else { - UserMode.removeRole(record.getUserId(), Roles.WELFARE_MEMBER); - sysUserService.update(Chain.make("welfareMember", MemberMode.NONE.getCode()), Cnd.where("id", "=", record.getUserId())); + archive(record.getUserId(), UserChangeType.WITHDRAWAL); + UserMode.removeMemberRole(record.getUserId()); + updateWelfareMember(record); + updateMemberStatus(MemberStatus.WITHDRAWAL, record.getUserId()); + updateUserStateAndPersonType(record); + } + }, + CARD_CHANGE(UserChangeType.CARD_CHANGE.getCode()){ + @Override + public void change(MemberChangeRecord record) { + archive(record.getUserId(), UserChangeType.CARD_CHANGE); + if (Strings.isNotBlank(record.getChangeIdCard())) { + sysUserService.update(Chain.make("idcard", record.getChangeIdCard()), Cnd.where("id", "=", record.getUserId())); + } + } + }, + MOBILE_CHANGE(UserChangeType.MOBILE_CHANGE.getCode()){ + @Override + public void change(MemberChangeRecord record) { + archive(record.getUserId(), UserChangeType.MOBILE_CHANGE); + if (Strings.isNotBlank(record.getChangeMobile())) { + sysUserService.update(Chain.make("mobile", record.getChangeMobile()), Cnd.where("id", "=", record.getUserId())); } } }; + /*EDUCATION_CHANGE(UserChangeType.EDUCATION_CHANGE.getCode()){ + @Override + public void change(MemberChangeRecord record) { + archive(record.getUserId(), UserChangeType.EDUCATION_CHANGE); + if (Strings.isNotBlank(record.getEducation())) { + sysUserService.update(Chain.make("education", record.getEducation()), Cnd.where("id", "=", record.getUserId())); + } + } + };*/ /** * 存档 @@ -153,31 +156,15 @@ public enum MemberChangeHandle { * @param changeType */ private static void archive(String userId, UserChangeType changeType) { -// Sys_user user = sysUserService.fetch(userId); -// UserHistory history = new UserHistory(); -// BeanUtils.copyProperties(user, history); -// history.setChangeTime(new Date()); -// history.setChangeTypes(List.of(changeType.getCode())); -// sysUserService.insert(history); + Sys_user user = sysUserService.fetch(userId); + UserHistory history = new UserHistory(); + BeanUtil.copyProperties(user,history); + history.setChangeTime(DateUtil.date()); + history.setChangeType(changeType.getCode()); + history.setChangeTypes(List.of(changeType.getCode())); + sysUserService.insert(history); } - /** - * 更新福利会员 - * - * @param record 变更记录 - */ - public static void updateMember(MemberChangeRecord record) { - if (record.getUpdateMember() != null) { - sysUserService.update(Chain.make("member", !record.getUpdateMember()), Cnd.where("id", "=", record.getUserId())); - sysRoleService.dao().clear(Sys_user_role.class, Cnd.where("userId", "=", record.getUserId()).and("roleId", "=", Roles.MEMBER)); - if (!record.getUpdateMember()) { - Sys_user_role sys_user_role = new Sys_user_role(); - sys_user_role.setUserId(record.getUserId()); - sys_user_role.setRoleId(Roles.MEMBER); - sysRoleService.insert(sys_user_role); - } - } - } /** * 更新福利会员 @@ -185,26 +172,13 @@ public enum MemberChangeHandle { * @param record 变更记录 */ public static void updateWelfareMember(MemberChangeRecord record) { - if (null != record.getUpdateWelfare()) { - sysUserService.update(Chain.make("welfareMember", !record.getUpdateWelfare()), Cnd.where("id", "=", record.getUserId())); - sysRoleService.dao().clear(Sys_user_role.class, Cnd.where("userId", "=", record.getUserId()).and("roleId", "=", Roles.WELFARE_MEMBER)); - if (!record.getUpdateWelfare()) { - Sys_user_role sys_user_role = new Sys_user_role(); - sys_user_role.setUserId(record.getUserId()); - sys_user_role.setRoleId(Roles.WELFARE_MEMBER); - sysRoleService.insert(sys_user_role); - } + //record.getUpdateWelfareMember() (true:增加福利会员 false:取消福利会员);针对入会(恢复) + if (null != record.getUpdateWelfareMember() && record.getUpdateWelfareMember()) { + sysUserService.update(Chain.make("welfareMember", WelfareMemberMode.NORMAL.getCode()), Cnd.where("id", "=", record.getUserId())); } - } - - /** - * 更新在职状态 - * - * @param record 变更记录 - */ - public static void updateUserState(MemberChangeRecord record) { - if (StrUtil.isNotBlank(record.getUserState())) { - sysUserService.update(Chain.make("userState", record.getUserState()), Cnd.where("id", "=", record.getUserId())); + //record.getUpdateWelfare() (true:取消 false:不取消);针对(退休、离职、退会、去世) + if (null != record.getUpdateWelfare() && record.getUpdateWelfare()){ + sysUserService.update(Chain.make("welfareMember", WelfareMemberMode.NONE.getCode()), Cnd.where("id", "=", record.getUserId())); } } @@ -218,6 +192,24 @@ public enum MemberChangeHandle { sysUserService.update(Chain.make("memberStatus", status.getCode()), Cnd.where("id", "=", userId)); } + + /** + * 在职状态和人员类别变更 + * zzr 2024-03-10 新增在职状态及人员类别的变更 + * @param record 变更记录 + */ + public static void updateUserStateAndPersonType(MemberChangeRecord record){ + Chain chain = null; + if (Strings.isNotBlank(record.getChangeUserState()) && Strings.isNotBlank(record.getChangePersonType())){ + chain = Chain.make("userState",record.getChangeUserState()).add("personType",record.getChangePersonType()); + } else if (Strings.isNotBlank(record.getChangeUserState()) && Strings.isBlank(record.getChangePersonType())){ + chain = Chain.make("userState",record.getChangeUserState()); + } else if (Strings.isBlank(record.getChangeUserState()) && Strings.isNotBlank(record.getChangePersonType())){ + chain = Chain.make("personType",record.getChangePersonType()); + } + sysUserService.update(chain,Cnd.where("id","=",record.getUserId())); + } + /** * 变更类型 */ diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java index 23d5c4b..c6c9e17 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java +++ b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java @@ -1,15 +1,17 @@ package io.v.nutz.zhgh.member.handle; import io.v.nutz.base.utils.Roles; +import io.v.nutz.base.utils.Vi; import io.v.nutz.base.utils.ViResource; +import io.v.nutz.sys.models.User; import io.v.nutz.sys.services.SysLocalProcessService; import io.v.nutz.sys.services.impl.SysLocalProcessServiceImpl; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.member.model.MemberChangeRecord; import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.zhgh.member.service.impl.MemberServiceImpl; -import io.v.nutz.zhgh.zgfw.model.condolence.Condolence; import lombok.Getter; +import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; @@ -25,15 +27,15 @@ public enum MemberChangeToDoHandler { /** * 流程开始 */ - START_PROCESS(){ + START_PROCESS() { @Override - public void exec(MemberChangeRecord record) { - Sql sql = Sqls.fetchString(Sqls.create("select username from sys_user where id = @id").setParam("id", record.getUserId()).toString()); - dao.execute(sql); - String username = sql.getString(); - + public void exec(MemberChangeRecord record, NutMap extra) { + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); +// Sql sql = Sqls.fetchString(Sqls.create("select username from sys_user where id = @id").setParam("id", record.getUserId()).toString()); +// dao.execute(sql); +// String username = sql.getString(); localProcessService.startProcess( - "【会员变更】" + username, + user.getUnionname() + "(" + user.getUsername() + ")【会员变更】申请", "member_change_record@" + record.getId(), "", record.getUserId(), @@ -43,81 +45,82 @@ public enum MemberChangeToDoHandler { } }, - /** * 审核拒绝 */ - COMPLETE_APPLY_RE_MODIFY_TASK(){ + REFUSE_UNION_TASK(){ @Override - public void exec(MemberChangeRecord record) { - localProcessService.completeTask( - "back", - "member_change_record@" + record.getId(), - ShiroUtil.getUserId(), - "" - ); + public void exec(MemberChangeRecord record, NutMap extra) { + localProcessService.refuseProcess("member_change_record@" + record.getId(),extra.getString("nodeName")); } }, - /** - * 审核拒绝,重新修改申请 + * 审核退回,重新修改申请 */ - CREATE_APPLY_RE_MODIFY_TASK(){ + CREATE_APPLY_RE_MODIFY_TASK() { @Override - public void exec(MemberChangeRecord record) { + public void exec(MemberChangeRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); Sql sql = Sqls.fetchString(Sqls.create("select loginname from sys_user where id = @id").setParam("id", record.getUserId()).toString()); dao.execute(sql); String loginname = sql.getString(); localProcessService.createTask( "member_change_record@" + record.getId(), - "back", - "退回重新修改", + "member_change_record_back", + nodeName, ShiroUtil.getUserId(), List.of(loginname), - "/platform/member/apply/submit", - "/platform/member/apply/submit", - "/platform/member/apply/submit", - "/platform/member/apply/submit" + "/platform/member/change/apply", + "/platform/member/change/apply", + "/platform/member/change/apply", + "/platform/member/change/apply" ); + + localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); } }, + /** + * 退回修改完成后提交 + */ + COMPLETE_APPLY_RE_MODIFY_TASK() { + @Override + public void exec(MemberChangeRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); + localProcessService.completeTask( + "member_change_record_back", + "member_change_record@" + record.getId(), + ShiroUtil.getUserId(), + nodeName + ); + localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); + } + }, /** * 创建分工会任务 */ - CREATE_UNION_TASK(){ + CREATE_UNION_TASK() { @Override - public void exec(MemberChangeRecord record) { - Sql sql = Sqls.create(""" - SELECT - u.loginname - FROM - sys_user_role sur - LEFT JOIN `user` u ON u.id = sur.userid - WHERE - sur.roleId = @roleId and u.unionid = (select unionid from `user` where id = @userId) - GROUP BY - sur.userId - """).setParam("roleId", Roles.UNION_MANGER).setParam("userId",record.getUserId()); - List list = (List) Daos.query(dao,sql.toString(),Sqls.callback.maps()); - List unionLeader = list.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); - localProcessService.createTask( - "member_change_record@" + record.getId(), - "unionAuditId", - "分工会审核", - ShiroUtil.getUserId(), - unionLeader, - "/platform/member/change/audit/union", - "/platform/member/change/audit/union", - "/platform/member/change/audit/union", - "/platform/member/change/audit/union" - ); + public void exec(MemberChangeRecord record, NutMap extra) { +// List unionLeader = Vi.getUnionLeader(record.getUserId()); - localProcessService.updateProcessNodeName("member_change_record@" + record.getId(),"分工会审核"); +// localProcessService.createTask( +// "member_change_record@" + record.getId(), +// "member_change_record_union_audit", +// "基层工会审核", +// ShiroUtil.getUserId(), +// unionLeader, +// "/platform/member/change/audit/union", +// "/platform/member/change/audit/union", +// "/platform/member/change/audit/union", +// "/platform/member/change/audit/union" +// ); + + localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), "基层工会审核"); } }, @@ -125,90 +128,97 @@ public enum MemberChangeToDoHandler { /** * 分工会完成 */ - COMPLETE_UNION_TASK(){ + COMPLETE_UNION_TASK() { @Override - public void exec(MemberChangeRecord record) { + public void exec(MemberChangeRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "unionAuditId", + "member_change_record_union_audit", "member_change_record@" + record.getId(), ShiroUtil.getUserId(), - "" + nodeName ); + + localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); } }, /** * 创建校工会任务 */ - CREATE_SCHOOL_TASK(){ + CREATE_SCHOOL_TASK() { @Override - public void exec(MemberChangeRecord record) { - Sql sql = Sqls.create(""" - SELECT - u.loginname - FROM - sys_user_role sur - LEFT JOIN sys_user u ON u.id = sur.userid - WHERE - sur.roleId = '2fb23e5a6ffb4d4cb5111746d1188957' - GROUP BY - sur.userId - """); - List list = (List) Daos.query(dao,sql.toString(),Sqls.callback.maps()); - List schoolLeader = list.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); - localProcessService.createTask( - "member_change_record@" + record.getId(), - "schoolAuditId", - "校工会审核", - ShiroUtil.getUserId(), - schoolLeader, - "/platform/member/change/audit/school", - "/platform/member/change/audit/school", - "/platform/member/change/audit/school", - "/platform/member/change/audit/school" - ); - - localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), "校工会审核"); + public void exec(MemberChangeRecord record, NutMap extra) { +// Sql sql = Sqls.create(""" +// SELECT +// u.loginname +// FROM +// sys_user_role sur +// LEFT JOIN sys_user u ON u.id = sur.userid +// WHERE +// sur.roleId = @roleId +// GROUP BY +// sur.userId +// """).setParam("roleId", Roles.H03); +// List list = (List) Daos.query(dao, sql.toString(), Sqls.callback.maps()); +// List schoolLeader = list.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); +// localProcessService.createTask( +// "member_change_record@" + record.getId(), +// "member_change_record_school_audit", +// "校工会审核", +// ShiroUtil.getUserId(), +// schoolLeader, +// "/platform/member/change/audit/school", +// "/platform/member/change/audit/school", +// "/platform/member/change/audit/school", +// "/platform/member/change/audit/school" +// ); +// +// localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), "校工会审核"); } }, /** * 校工会完成 */ - COMPLETE_SCHOOL_TASK(){ + COMPLETE_SCHOOL_TASK() { @Override - public void exec(MemberChangeRecord record) { + public void exec(MemberChangeRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "schoolAuditId", + "member_change_record_school_audit", "member_change_record@" + record.getId(), ShiroUtil.getUserId(), - "" + nodeName ); + localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); } }, /** * 流程结束 */ - COMPLETE_PROCESS(){ + COMPLETE_PROCESS() { @Override - public void exec(MemberChangeRecord record) { + public void exec(MemberChangeRecord record, NutMap extra) { localProcessService.completeProcess("member_change_record@" + record.getId()); } }, + /** * 删除流程及任务 */ - DELETE_PROCESS_AND_TASK(){ + DELETE_PROCESS_AND_TASK() { @Override - public void exec(MemberChangeRecord record) { + public void exec(MemberChangeRecord record, NutMap extra) { localProcessService.deleteProcessInstance("member_change_record@" + record.getId()); } }; - public abstract void exec(MemberChangeRecord record); + public abstract void exec(MemberChangeRecord record, NutMap extra); + public Dao dao = ViResource.dao; public MemberService memberService = ViResource.ioc.get(MemberServiceImpl.class); public SysLocalProcessService localProcessService = ViResource.ioc.get(SysLocalProcessServiceImpl.class); diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java b/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java index a253c44..06f22b3 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java +++ b/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java @@ -2,7 +2,6 @@ package io.v.nutz.zhgh.member.model; import io.v.nutz.base.model.Audit; import io.v.nutz.base.model.AuditState; -import io.v.nutz.zhgh.member.constant.MemberStatus; import lombok.Data; import lombok.experimental.Accessors; import org.nutz.dao.entity.annotation.*; @@ -48,7 +47,7 @@ public class MemberApplyRecord { private Date applyTime; /** - * @see MemberStatus + * @see io.v.nutz.zhgh.member.constant.MemberStatus */ @Column @Comment("加入方式") diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java b/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java index 4cea4ac..3bb9b06 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java +++ b/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java @@ -2,11 +2,10 @@ package io.v.nutz.zhgh.member.model; import io.v.nutz.base.model.Audit; import io.v.nutz.base.model.AuditState; -import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; -import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; -import io.v.nutz.zhgh.member.handle.MemberChangeHandle; import io.v.nutz.sys.models.Sys_union; import io.v.nutz.sys.models.Sys_unit; +import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import lombok.Data; import lombok.experimental.Accessors; import org.nutz.dao.entity.annotation.*; @@ -33,7 +32,7 @@ public class MemberChangeRecord { private String id; /** - * @see MemberChangeHandle + * @see io.v.nutz.zhgh.member.handle.MemberChangeHandle */ @Column @Comment("变更类型") @@ -116,7 +115,7 @@ public class MemberChangeRecord { private String schoolAuditId; @Column - @Comment("是否更新福利会员") + @Comment("福利会员(true:增加福利会员 false:取消福利会员);针对新入职") @ColDefine(type = ColType.BOOLEAN) private Boolean updateWelfareMember; @@ -126,15 +125,39 @@ public class MemberChangeRecord { private Boolean updateMember; @Column - @Comment("是否更新福利会员") + @Comment("福利会员身份(true:取消 false:不取消);针对(退休、离职、退会、去世)") @ColDefine(type = ColType.BOOLEAN) private Boolean updateWelfare; @Column - @Comment("在职状态") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String userState; + @Comment("是否增加会员身份(true:增加 false:不增加)") + @ColDefine(type = ColType.BOOLEAN) + private Boolean insertMember; + @Column + @Comment("身份证号异动") + @ColDefine(type = ColType.VARCHAR, width = 30) + private String changeIdCard; + + @Column + @Comment("手机号异动") + @ColDefine(type = ColType.VARCHAR, width = 30) + private String changeMobile; + + @Column + @Comment("学历异动") + @ColDefine(type = ColType.VARCHAR, width = 30) + private String changeEducation; + + @Column + @Comment("在职状态") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String changeUserState; + + @Column + @Comment("人员类别") + @ColDefine(type = ColType.VARCHAR, width = 10) + private String changePersonType; @Column @Comment("任务id") diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java b/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java index 1c76cfa..6678b61 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java +++ b/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java @@ -1,7 +1,6 @@ package io.v.nutz.zhgh.member.model; import cn.wizzer.framework.base.model.BaseModel; -import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -11,7 +10,7 @@ import org.nutz.dao.interceptor.annotation.PrevInsert; import java.util.Date; /** - * @FileName io.v.nutz.member.model.MemberCheckTask + * @FileName io.v.nutz.zhgh.member.model.MemberCheckTask * @Description: TODO * @Author zxc * @Date 2022/10/21:10:34 @@ -57,7 +56,7 @@ public class MemberCheckTask extends BaseModel { private Date endTime; /** - * @see MemberChangeRecordMode + * @see io.v.nutz.zhgh.member.constant.MemberChangeRecordMode */ @Column @Comment("模式") diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java b/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java index 3a58b5f..337082d 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java +++ b/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java @@ -8,7 +8,7 @@ import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; /** - * @FileName io.v.nutz.member.model.MemberCheckUnionTask + * @FileName io.v.nutz.zhgh.member.model.MemberCheckUnionTask * @Description: TODO * @Author zxc * @Date 2022/10/21:10:34 diff --git a/src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java b/src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java index d0c76d5..c56144a 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java +++ b/src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java @@ -1,5 +1,6 @@ package io.v.nutz.zhgh.member.service; + import io.v.nutz.base.service.ViService; /** diff --git a/src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java b/src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java index e522c5c..a46e202 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java +++ b/src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java @@ -1,12 +1,7 @@ package io.v.nutz.zhgh.member.service; -import io.v.nutz.zhgh.member.model.MemberHistory; import io.v.nutz.base.service.ViService; -import org.apache.poi.ss.usermodel.Workbook; -import org.nutz.lang.util.NutMap; - -import java.io.OutputStream; -import java.util.List; +import io.v.nutz.zhgh.member.model.MemberHistory; /** * Todo @@ -22,13 +17,4 @@ public interface MemberHistoryService extends ViService { */ void archive(); - /** - * - * @param memberHisList - * @param outputStream - * @return - * @throws Exception - */ - Workbook doExport(List memberHisList, OutputStream outputStream) throws Exception; - } diff --git a/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java b/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java index 8a4d827..32968d6 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java +++ b/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java @@ -5,7 +5,6 @@ import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.ViService; import io.v.nutz.sys.models.Sys_user; -import org.nutz.dao.Cnd; import org.nutz.lang.util.NutMap; import java.util.List; @@ -36,20 +35,10 @@ public interface MemberService extends ViService { */ Pagination memberChangeRecords(PageForm pageForm, CndPlus cnd); - /** - * 会员历史变更记录 - * @param pageForm - * @param cnd - * @return - */ - Pagination memberHistoryRecords(PageForm pageForm, Cnd cnd); - - /** * 某会员历史变更记录 * @param userId * @return */ List memberHistoryRecordsByUserId(String userId); - } diff --git a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java index 209efae..4e8db7b 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java @@ -1,7 +1,7 @@ package io.v.nutz.zhgh.member.service.impl; -import io.v.nutz.zhgh.member.service.MemberCheckPersonalService; import io.v.nutz.base.service.impl.ViServiceImpl; +import io.v.nutz.zhgh.member.service.MemberCheckPersonalService; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java index 52aaf01..94efeb1 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java @@ -1,16 +1,11 @@ package io.v.nutz.zhgh.member.service.impl; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; -import io.v.nutz.zhgh.member.model.MemberHistory; -import io.v.nutz.zhgh.member.service.MemberHistoryService; import io.v.nutz.base.service.AsyncService; import io.v.nutz.base.service.impl.ViServiceImpl; import io.v.nutz.sys.services.SysRoleService; import io.v.nutz.sys.services.SysUserService; -import org.apache.poi.ss.usermodel.Workbook; +import io.v.nutz.zhgh.member.model.MemberHistory; +import io.v.nutz.zhgh.member.service.MemberHistoryService; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -18,11 +13,8 @@ import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.random.R; -import org.nutz.lang.util.NutMap; import org.nutz.plugins.wkcache.annotation.CacheDefaults; -import java.io.OutputStream; -import java.util.ArrayList; import java.util.Calendar; import java.util.List; @@ -71,25 +63,4 @@ public class MemberHistoryServiceImpl extends ViServiceImpl imple sysRoleService.clearCache(); } - - @Override - public Workbook doExport(List memberHisList, OutputStream outputStream) throws Exception { - List exportEntities = new ArrayList<>(); - exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); - exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); - exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); - exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); - exportEntities.add(new ExcelExportEntity("身份证号", "idcard", 30)); - exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); - exportEntities.add(new ExcelExportEntity("所属工会", "unionname", 20)); - exportEntities.add(new ExcelExportEntity("所属单位", "unitname", 30)); - exportEntities.add(new ExcelExportEntity("所在科室", "threeUnitName", 20)); - exportEntities.add(new ExcelExportEntity("工会小组", "unionGroupName", 30)); - - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - exportParams.setHeight((short) 10); - return ExcelExportUtil.exportExcel(exportParams, exportEntities, memberHisList); - } } diff --git a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java index f6f0349..b2f3f08 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java @@ -2,10 +2,10 @@ package io.v.nutz.zhgh.member.service.impl; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.zhgh.member.service.MemberService; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.impl.ViServiceImpl; import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.zhgh.member.service.MemberService; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -77,40 +77,6 @@ public class MemberServiceImpl extends ViServiceImpl implements Member return list(pageForm, sql); } - @Override - public Pagination memberHistoryRecords(PageForm pageForm, Cnd cnd) { - Sql sql = Sqls.create(""" - SELECT - his.id, - his.changeTime, - his.loginname, - his.username, - his.mobile, - his.birthday, - his.userState, - his.personType, - his.sex, - his.changeTypes, - his.changeOrigin, - his.changeOperator, - his.memberChangeRecordId, - his.changeReason, - his.lastHistoryId, - u.unitname, - u.unionname, - mcr.stateId, - state.stateName, - state.stateColor - FROM - `user_history` his - LEFT JOIN member_change_record mcr ON mcr.id = his.memberChangeRecordId - LEFT JOIN audit_state state ON mcr.stateId = state.stateId - LEFT JOIN `user` u ON u.loginname = his.loginname - $condition - """); - sql.setCondition(cnd); - return list(pageForm, sql); - } @Override public List memberHistoryRecordsByUserId(String userId) { diff --git a/src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java b/src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java new file mode 100644 index 0000000..1180ade --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java @@ -0,0 +1,37 @@ +package io.v.nutz.zhgh.member.template; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +@Data +public class MemberTemp { + + @Excel(name = "工号") + private String loginname; + + @Excel(name = "姓名") + private String username; + + @Excel(name = "性别") + private String sex; + + @Excel(name = "单位名称") + private String unitName; + + @Excel(name = "联系方式") + private String mobile; + + @Excel(name = "身份证号") + private String idcard; + + @Excel(name = "在职状态") + private String userState; + + @Excel(name = "人员类型") + private String personType; + + @Excel(name = "入会时间") + private String memberJoinTime; + + private String errorInfo; +} diff --git a/src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java b/src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java index d58b551..03b4958 100644 --- a/src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java +++ b/src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java @@ -1,12 +1,12 @@ package io.v.nutz.zhgh.member.utils; import cn.hutool.core.util.StrUtil; +import io.v.nutz.base.query.PageForm; +import io.v.nutz.sys.models.Sys_user; import io.v.nutz.zhgh.activity.models.ActivityUserCnd; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.member.MemberMode; import io.v.nutz.zhgh.member.constant.MemberStatus; -import io.v.nutz.base.query.PageForm; -import io.v.nutz.sys.models.Sys_user; import org.apache.commons.lang.ArrayUtils; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -39,10 +39,6 @@ public class MemberUtils { member = MemberMode.NONE.getCode(); memberStatus = MemberStatus.TURN_OUT.getCode(); } -// if (type == UserChangeType.DIE.getCode()) { -// member = MemberMode.NONE.getCode(); -// memberStatus = MemberStatus.WITHDRAWAL.getCode(); -// } if (type == UserChangeType.RETIREMENT.getCode()) { member = MemberMode.NONE.getCode(); memberStatus = MemberStatus.KEEP.getCode(); @@ -51,14 +47,14 @@ public class MemberUtils { // member = MemberMode.NONE.getCode(); // memberStatus = MemberStatus.EXPELLED.getCode(); // } -// if (type == UserChangeType.RESTORE.getCode()) { -// member = MemberMode.NORMAL.getCode(); -// memberStatus = MemberStatus.RESTORE.getCode(); -// } -// if (type == UserChangeType.WITHDRAWAL.getCode()) { -// member = MemberMode.NONE.getCode(); -// memberStatus = MemberStatus.WITHDRAWAL.getCode(); -// } + if (type == UserChangeType.RESTORE.getCode()) { + member = MemberMode.NORMAL.getCode(); + memberStatus = MemberStatus.RESTORE.getCode(); + } + if (type == UserChangeType.WITHDRAWAL.getCode()) { + member = MemberMode.NONE.getCode(); + memberStatus = MemberStatus.WITHDRAWAL.getCode(); + } user.setMember(member).setMemberStatus(memberStatus); } @@ -154,7 +150,7 @@ public class MemberUtils { if (memberStatus != null && memberStatus.length > 0) { cnd.andEX("u.memberStatus", IN_OR_NIN_OP, memberStatus); } else { - cnd.andEX("u.member","=", 1); +// cnd.andEX("u.member","=", 1); /* SqlExpressionGroup group = new SqlExpressionGroup(); group.and("memberStatus", "in", status); group.or("memberStatus", "IS", null); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java index 510c44a..e0c4a5f 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java @@ -336,7 +336,7 @@ public class WelfareMemberCheckUnionController { audit.setAuditor(ShiroUtil.getUserId()); audit.setAuditPass(true); audit.setAuditTime(new Date()); - audit.setAuditOpinion(UserChangeType.NEW_WELFARE_LIST.getDescription()); +// audit.setAuditOpinion(UserChangeType.NEW_WELFARE_LIST.getDescription()); audit.setUsername(ShiroUtil.getPrincipalProperty("username").toString()); audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString()); dao.insert(audit); @@ -346,8 +346,8 @@ public class WelfareMemberCheckUnionController { User user = userList.stream().filter(u -> u.getId().equals(userId)).findFirst().orElse(null); MemberChangeRecord changeRecord = new MemberChangeRecord(); - changeRecord.setType(UserChangeType.NEW_WELFARE_LIST.getCode()); - changeRecord.setRemark(UserChangeType.NEW_WELFARE_LIST.getDescription()); +// changeRecord.setType(UserChangeType.NEW_WELFARE_LIST.getCode()); +// changeRecord.setRemark(UserChangeType.NEW_WELFARE_LIST.getDescription()); changeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); changeRecord.setUpdateWelfareMember(true); diff --git a/src/main/resources/static/components/member/MemChangeApply.vue b/src/main/resources/static/components/member/MemChangeApply.vue index b794f4f..befbf89 100644 --- a/src/main/resources/static/components/member/MemChangeApply.vue +++ b/src/main/resources/static/components/member/MemChangeApply.vue @@ -37,17 +37,14 @@ - - - + + + + - +

-
- -
-
- - - - -
- - - - +
+ + + 享受福利 + 不享受福利 + + + + + 成为会员 + 不成为会员 +
+
+ + + 享受福利 + 不享受福利 + + +
+ +
+ + + 保留享受福利 + 取消享受福利 + + + + + + + 取消会员资格 + 保留会员资格 + + + + + + + + + + +
+ + +
+ + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + +
+ + + @@ -127,11 +196,12 @@ diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index 211089f..4f29b60 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -236,13 +236,13 @@