commit
This commit is contained in:
@@ -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<Sys_home_activity> list = Daos.ext(dao,fieldFilter) .query(Sys_home_activity.class, Cnd.where("enable", "=", 1).desc("top"));
|
||||
String userId = ShiroUtil.getUserId();
|
||||
List<Sys_home_activity> 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<HashMap> news = Json.fromJsonAsList(HashMap.class, gonghuiNews);
|
||||
// return Result.success(news);
|
||||
// }
|
||||
String gonghuiNews = redisService.get("gonghui_news");
|
||||
if(Strings.isNotBlank(gonghuiNews)){
|
||||
List<HashMap> 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<Map<String, Object>> news1 = homeElements1.stream().map(homeElement -> {
|
||||
// 通知公告
|
||||
List<Map<String, Object>> 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<NutMap> 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<Map<String, Object>> 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<NutMap> 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<Map<String, Object>> news2 = homeElements2.stream().map(homeElement -> {
|
||||
|
||||
// 服务之窗
|
||||
List<Map<String, Object>> 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<NutMap> 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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* 前端菜单
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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<Sys_home_activity> {
|
||||
}
|
||||
@@ -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<Sys_home_activity> implements SysHomeActivityService {
|
||||
|
||||
public SysHomeActivityServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
}
|
||||
@@ -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<String, String> USER_STATE_CODE = new HashMap<>() {{
|
||||
put("100", "在职状态");
|
||||
put("200", "不在职状态");
|
||||
}};*/
|
||||
/**
|
||||
* 性别码
|
||||
*/
|
||||
Map<String, String> SEX_CODE = new HashMap<>() {{
|
||||
put("0", "未知的性别");
|
||||
put("1", "男");
|
||||
put("2", "女");
|
||||
put("9", "未说明的性别");
|
||||
}};
|
||||
/**
|
||||
* 学历码
|
||||
*/
|
||||
Map<String, String> EDUCATION_CODE = new HashMap<>() {{
|
||||
put("1", "本科");
|
||||
put("2", "博士研究生");
|
||||
put("3", "初中");
|
||||
put("4", "大专");
|
||||
put("5", "高中");
|
||||
put("6", "硕士研究生");
|
||||
put("7", "小学");
|
||||
put("8", "中专");
|
||||
put("9", "无");
|
||||
}};
|
||||
/**
|
||||
* 人员状态码
|
||||
*/
|
||||
Map<String, String> 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<String, String> CAMPUS_CODE = new HashMap<>() {{
|
||||
put("01", "临安校区");
|
||||
put("02", "黄龙校区");
|
||||
put("03", "滨江校区");
|
||||
put("04", "青山湖科创中心");
|
||||
put("05", "不固定校区");
|
||||
}};
|
||||
|
||||
/**
|
||||
* 接口中的数据跟SourceUser的对应关系
|
||||
* <p>
|
||||
@@ -65,23 +117,31 @@ public interface SourceData {
|
||||
* 例:{'name':['username'],'code':['loginname']}
|
||||
*/
|
||||
Map<String, String[]> 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<String, Exp4> USER_FIELD_PLUGIN = new HashMap<String, Exp4>() {{
|
||||
// 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<UserSource> users() {
|
||||
List<UserSource> 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<NutMap> data = result.getAsList("data", NutMap.class);
|
||||
List<NutMap> 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<String, String[]> 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<Sys_unit> units() {
|
||||
String token = getToken();
|
||||
List<Sys_unit> 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<NutMap> data = result.getAsList("data", NutMap.class);
|
||||
List<NutMap> 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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ package io.v.nutz.zhgh.member.constant;
|
||||
*/
|
||||
public interface MemberApplyState {
|
||||
/**
|
||||
* 待院级工会审核
|
||||
* 待分工会审核
|
||||
*/
|
||||
int UNION = 10;
|
||||
|
||||
/**
|
||||
* 院级工会审核不通过
|
||||
* 分工会审核不通过
|
||||
*/
|
||||
int UNION_FAIL = 15;
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ package io.v.nutz.zhgh.member.constant;
|
||||
*/
|
||||
public interface MemberChangeApplyState {
|
||||
/**
|
||||
* 待院级工会审核
|
||||
* 待分工会审核
|
||||
*/
|
||||
int UNION = 50;
|
||||
|
||||
/**
|
||||
* 院级工会审核不通过
|
||||
* 分工会审核不通过
|
||||
*/
|
||||
int UNION_FAIL = 55;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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, "除名");
|
||||
|
||||
/**
|
||||
* 编码
|
||||
|
||||
@@ -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<NutMap> 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");
|
||||
|
||||
|
||||
// 入会申请
|
||||
|
||||
@@ -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<Sys_user> 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<String, String> 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<NutMap> userTableColumnInfos = sysUserService.listMap(userColumnSql);
|
||||
|
||||
List<String> columns = List.of("unitid", "nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position", "leaveSchoolDate", "retireDate");
|
||||
List<String> columns = List.of("unitid", "nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position");
|
||||
|
||||
|
||||
for (String column : columns) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
+5
-5
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+20
-87
@@ -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<MemberChangeRecord> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+4
-7
@@ -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;
|
||||
|
||||
+268
-152
@@ -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<MemberChangeRecord> 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<Sys_user> 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<Sys_user> 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<ExcelExportEntity> 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<MemberTemp> memberImportList = ExcelImportUtil.importExcel(file.getFile(), MemberTemp.class, new ImportParams());
|
||||
//获取系统用户
|
||||
List<Sys_user> dataUserList = dao.query(Sys_user.class, Cnd.NEW());
|
||||
Map<String, Sys_user> userMap = dataUserList.stream().collect(Collectors.toMap(Sys_user::getLoginname, v -> v));
|
||||
|
||||
List<Sys_unit> unitList = sysUnitService.query(Cnd.where("unitlevel","=",2));
|
||||
|
||||
//判断单位
|
||||
Map<String, String> unitMap = unitList.stream().collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId));
|
||||
|
||||
//系统中有此用户,修改
|
||||
List<String> needUpdateUserIds = new ArrayList<>();
|
||||
|
||||
//系统中没有,新增
|
||||
List<Sys_user> needInsertUser = new ArrayList<>();
|
||||
|
||||
//赋予角色
|
||||
List<Sys_user_role> userRoles = new ArrayList<>();
|
||||
|
||||
//返回错误记录
|
||||
List<MemberTemp> errorInfos = new ArrayList<>();
|
||||
|
||||
List<Sys_user> 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<String> 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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+21
-58
@@ -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<NutMap> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+1
-3
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
+18
-18
@@ -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() + ",您无需变更!");
|
||||
|
||||
+19
-19
@@ -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);
|
||||
}
|
||||
|
||||
+12
-12
@@ -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<MemberChangeRecord> 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<MemberChangeRecord> 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());
|
||||
|
||||
+10
-11
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
+8
-10
@@ -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");
|
||||
|
||||
+2
-10
@@ -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<Sys_dict> memberApplyPersonTypeDicts = sysDictService.getSubListByCode("memberApplyPersonType");
|
||||
List<String> 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;
|
||||
}
|
||||
|
||||
|
||||
+6
-152
@@ -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<UserHistory> 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<NutMap> memberHisList = memberHistoryService.listMap(sql);
|
||||
List<Sys_union> 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<NutMap> 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<NutMap> 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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+97
-39
@@ -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<Integer> 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<ExcelExportEntity> entityList = new ArrayList<>();
|
||||
entityList.add(new ExcelExportEntity("序号", "no", 20));
|
||||
|
||||
Map<String, String> 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<ExportEntityUser> exportList = sys_userViService.listEntity(sql, ExportEntityUser.class);
|
||||
|
||||
List<Record> 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"));
|
||||
|
||||
+8
-8
@@ -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);
|
||||
|
||||
+3
-3
@@ -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("按分工会统计")) {
|
||||
|
||||
@@ -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<NutMap> 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<NutMap> 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<NutMap> 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<MemberApplyRecord> 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);
|
||||
|
||||
|
||||
@@ -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<String> 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<String> 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);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 变更类型
|
||||
*/
|
||||
|
||||
@@ -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<NutMap> list = (List<NutMap>) Daos.query(dao,sql.toString(),Sqls.callback.maps());
|
||||
List<String> 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<String> 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<NutMap> list = (List<NutMap>) Daos.query(dao,sql.toString(),Sqls.callback.maps());
|
||||
List<String> 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<NutMap> list = (List<NutMap>) Daos.query(dao, sql.toString(), Sqls.callback.maps());
|
||||
// List<String> 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);
|
||||
|
||||
@@ -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("加入方式")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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("模式")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.v.nutz.zhgh.member.service;
|
||||
|
||||
|
||||
import io.v.nutz.base.service.ViService;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<MemberHistory> {
|
||||
*/
|
||||
void archive();
|
||||
|
||||
/**
|
||||
*
|
||||
* @param memberHisList
|
||||
* @param outputStream
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
Workbook doExport(List<NutMap> memberHisList, OutputStream outputStream) throws Exception;
|
||||
|
||||
}
|
||||
|
||||
@@ -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<Sys_user> {
|
||||
*/
|
||||
Pagination memberChangeRecords(PageForm pageForm, CndPlus cnd);
|
||||
|
||||
/**
|
||||
* 会员历史变更记录
|
||||
* @param pageForm
|
||||
* @param cnd
|
||||
* @return
|
||||
*/
|
||||
Pagination memberHistoryRecords(PageForm pageForm, Cnd cnd);
|
||||
|
||||
|
||||
/**
|
||||
* 某会员历史变更记录
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> memberHistoryRecordsByUserId(String userId);
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
@@ -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<MemberHistory> imple
|
||||
sysRoleService.clearCache();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Workbook doExport(List<NutMap> memberHisList, OutputStream outputStream) throws Exception {
|
||||
List<ExcelExportEntity> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Sys_user> 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<NutMap> memberHistoryRecordsByUserId(String userId) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
+3
-3
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user