福利、签字
This commit is contained in:
+17
@@ -16,6 +16,8 @@ import io.v.nutz.base.utils.ViTool;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
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;
|
||||
@@ -75,6 +77,7 @@ public class UserPartUpdateController {
|
||||
@At
|
||||
@ViReturn
|
||||
@POST
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object userPartData(PageForm pageForm,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "unitId", required = false) String unitId,
|
||||
@@ -125,6 +128,7 @@ public class UserPartUpdateController {
|
||||
@At
|
||||
@ViReturn
|
||||
@POST
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object pageData(PageForm pageForm,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "unitId", required = false) String unitId,
|
||||
@@ -252,6 +256,7 @@ public class UserPartUpdateController {
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object cleanPart(@Param(value = "id", required = false) String id,
|
||||
@Param(value = "groupId", required = false) Integer groupId,
|
||||
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
||||
@@ -302,6 +307,7 @@ public class UserPartUpdateController {
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object getPartCount() {
|
||||
return dao.count(UserPartUp.class);
|
||||
}
|
||||
@@ -319,6 +325,7 @@ public class UserPartUpdateController {
|
||||
@At
|
||||
@ViReturn
|
||||
@POST
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object doSetUpUser(PageForm pageForm,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "unitId", required = false) String unitId,
|
||||
@@ -393,6 +400,7 @@ public class UserPartUpdateController {
|
||||
*/
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object getUserPart() {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
@@ -418,6 +426,7 @@ public class UserPartUpdateController {
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("data.user.update")
|
||||
public void doExportUser(PageForm pageForm,
|
||||
@Param(value = "props", required = false) String props,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@@ -478,4 +487,12 @@ public class UserPartUpdateController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("data.user.update")
|
||||
public Object deleteNotInSourceUser() {
|
||||
userPartUpService.deleteNotInSourceUser(false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -14,5 +14,5 @@ public interface UserPatUpService extends ViService<UserPartUp> {
|
||||
|
||||
void renewUserState();
|
||||
|
||||
void deleteNotInSourceUser();
|
||||
void deleteNotInSourceUser(Boolean isAuto);
|
||||
}
|
||||
|
||||
+28
-9
@@ -118,14 +118,14 @@ public class UserPartUpServiceImpl extends ViServiceImpl<UserPartUp> implements
|
||||
|
||||
//人员类型
|
||||
Sql personTypeSql = Sqls.create("select personType from `user` where personType is not null and personType !='' group by personType");
|
||||
List<String> personTypes = sysDictService.listMap(personTypeSql).stream().map(v->v.getString("personType")).collect(Collectors.toList());
|
||||
List<String> personTypes = sysDictService.listMap(personTypeSql).stream().map(v -> v.getString("personType")).collect(Collectors.toList());
|
||||
List<Sys_dict> personTypeList = sysDictService.getSubListByCode("UserType");
|
||||
|
||||
//dict中的personType,在user表中没有,这一部分删除
|
||||
List<Sys_dict> deletePersonType = personTypeList.stream().filter(v -> !personTypes.contains(v.getName())).collect(Collectors.toList());
|
||||
List<String> deletePersonTypes = deletePersonType.stream().map(Sys_dict::getId).collect(Collectors.toList());
|
||||
|
||||
if (Lang.isNotEmpty(deletePersonTypes)){
|
||||
if (Lang.isNotEmpty(deletePersonTypes)) {
|
||||
sysDictService.delete(deletePersonTypes);
|
||||
}
|
||||
|
||||
@@ -152,9 +152,18 @@ public class UserPartUpServiceImpl extends ViServiceImpl<UserPartUp> implements
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除不在人事库的人员状态
|
||||
*
|
||||
* @param isAuto 是否自动更新,true为自动更新,false为手动更新
|
||||
*/
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void deleteNotInSourceUser() {
|
||||
public void deleteNotInSourceUser(Boolean isAuto) {
|
||||
dao().update(Sys_user.class, Chain.make("preparedBy", "会员"), Cnd.where("member", "=", true));
|
||||
dao().update(Sys_user.class, Chain.make("preparedBy", "教职工"), Cnd.where("member", "=", false));
|
||||
|
||||
|
||||
Sql maxPullTimeSql = Sqls.create("select pullTime from user_source GROUP BY pullTime ORDER BY pullTime desc LIMIT 1");
|
||||
maxPullTimeSql.setCallback(Sqls.callback.map());
|
||||
dao().execute(maxPullTimeSql);
|
||||
@@ -174,12 +183,22 @@ public class UserPartUpServiceImpl extends ViServiceImpl<UserPartUp> implements
|
||||
List<String> userIdList = list.stream().map(v -> v.getString("id")).toList();
|
||||
List<String> userLoginNameList = list.stream().map(v -> v.getString("loginname")).toList();
|
||||
|
||||
// 修改不在人事库人员的状态
|
||||
dao().update(Sys_user.class, Chain.make("userState", "非人事库人员").add("personType", "非人事库人员")
|
||||
.add("member", 0).add("welfareMember", 0),
|
||||
Cnd.where("loginname", "in", userLoginNameList));
|
||||
if (isAuto == null) {
|
||||
return;
|
||||
}
|
||||
if (isAuto) {
|
||||
// 修改不在人事库人员的状态
|
||||
dao().update(Sys_user.class, Chain.make("userState", "非人事库人员").add("personType", "非人事库人员")
|
||||
.add("member", 0).add("welfareMember", 0),
|
||||
Cnd.where("loginname", "in", userLoginNameList));
|
||||
|
||||
// 去除不在人事库的人员角色,只保留公共角色
|
||||
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", userIdList).and("roleId", "!=", Roles.PUBLIC));
|
||||
} else {
|
||||
// 删除不在人事库的人员,并清除角色
|
||||
dao().clear(Sys_user.class, Cnd.where("loginname", "in", userLoginNameList));
|
||||
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", userIdList));
|
||||
}
|
||||
|
||||
// 去除不在人事库的人员角色,只保留公共角色
|
||||
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", userIdList).and("roleId", "!=", Roles.PUBLIC));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
package io.v.nutz.zhgh.data.constant;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.v.nutz.base.expression.Exp4;
|
||||
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;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -46,10 +40,21 @@ public interface SourceData {
|
||||
}
|
||||
|
||||
/**
|
||||
* 不进系统人员
|
||||
* 不进系统人员类型
|
||||
*/
|
||||
List<String> NOT_ENTERING_USER = List.of("退休人员", "兼职教师", "非全日用工(项目临聘)", "服务外包和其他人员",
|
||||
List<String> NOT_ENTERING_PERSON_TYPE = List.of("退休人员", "兼职教师", "非全日用工(项目临聘)", "服务外包和其他人员",
|
||||
"教学编制2", "教学教师(附属医院)", "教学编制", "离休人员", "临时人员", "非全日制工", "博士后(在职)");
|
||||
/**
|
||||
* 不进系统在职状态
|
||||
* 01 退休
|
||||
* 05 调出
|
||||
* 06 辞职
|
||||
* 07 离职
|
||||
* @see io.v.nutz.zhgh.data.constant.HMCFieldCode#USER_STATE_CODE
|
||||
*/
|
||||
List<String> NOT_ENTERING_USER_STATE = List.of("01", "05", "06", "07");
|
||||
|
||||
List<String> NOT_ENTERING_USER_LOGIN_NAME = List.of("2020000410", "2008000010");
|
||||
|
||||
/**
|
||||
* 接口中的数据跟SourceUser的对应关系
|
||||
@@ -114,7 +119,9 @@ public interface SourceData {
|
||||
// checkSuccess(map);
|
||||
List<NutMap> data = map.getAsList("data", NutMap.class);
|
||||
for (NutMap row : data) {
|
||||
if (NOT_ENTERING_USER.contains(row.getString("RYFLMC"))) {
|
||||
if (NOT_ENTERING_PERSON_TYPE.contains(row.getString("RYFLMC"))
|
||||
|| NOT_ENTERING_USER_LOGIN_NAME.contains(row.getString("GH"))
|
||||
|| NOT_ENTERING_USER_STATE.contains(row.getString("DQZTM"))) {
|
||||
continue;
|
||||
}
|
||||
Map entity = new HashMap(500);
|
||||
|
||||
@@ -148,33 +148,30 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
|
||||
source.setWelfareMember(null);
|
||||
Sys_user user = userMap.get(source.getLoginname().toLowerCase());
|
||||
|
||||
if (StrUtil.isNotBlank(source.getPersonType())
|
||||
&& MEMBER_PERSON_TYPE.contains(source.getPersonType())
|
||||
&& "在职".equals(source.getUserState())) {
|
||||
source.setMember(1);
|
||||
source.setWelfareMember(1);
|
||||
// 符合条件的这类人员 人员性质设为会员
|
||||
source.setPreparedBy("会员");
|
||||
if (user != null && user.getMember() != 1) {
|
||||
addMemberUserIds.add(user.getId());
|
||||
}
|
||||
if (user == null) {
|
||||
addMemberUserIds.add(source.getId());
|
||||
}
|
||||
} else {
|
||||
source.setMember(0);
|
||||
source.setWelfareMember(0);
|
||||
// 不符合条件的这类人员 人员性质设为教职工
|
||||
source.setPreparedBy("教职工");
|
||||
if (user != null && user.getMember() == 1) {
|
||||
deleteMemberUserIds.add(user.getId());
|
||||
}
|
||||
}
|
||||
|
||||
Sys_user u = new Sys_user();
|
||||
BeanUtils.copyProperties(source, u);
|
||||
switch (sourceType) {
|
||||
case "all" -> {
|
||||
if (StrUtil.isNotBlank(source.getPersonType())
|
||||
&& MEMBER_PERSON_TYPE.contains(source.getPersonType())
|
||||
&& "在职".equals(source.getUserState())) {
|
||||
source.setMember(1);
|
||||
source.setWelfareMember(1);
|
||||
// 符合条件的这类人员 人员性质设为会员
|
||||
if (user != null && user.getMember() != 1) {
|
||||
addMemberUserIds.add(user.getId());
|
||||
}
|
||||
if (user == null) {
|
||||
addMemberUserIds.add(source.getId());
|
||||
}
|
||||
} else {
|
||||
source.setMember(0);
|
||||
source.setWelfareMember(0);
|
||||
// 不符合条件的这类人员 人员性质设为教职工
|
||||
if (user != null && user.getMember() == 1) {
|
||||
deleteMemberUserIds.add(user.getId());
|
||||
}
|
||||
}
|
||||
// 复制属性到一个新的user对象
|
||||
u.setId(user == null ? source.getId() : user.getId());
|
||||
if (user != null) {
|
||||
@@ -224,20 +221,22 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
|
||||
sysUserRoleService.insert(userRoles);
|
||||
}
|
||||
|
||||
// 添加会员角色
|
||||
if (Lang.isNotEmpty(addMemberUserIds)) {
|
||||
String memberRoleId = Roles.MEMBER;
|
||||
List<Sys_user_role> list = addMemberUserIds.stream().map(v -> {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setUserId(v);
|
||||
userRole.setRoleId(memberRoleId);
|
||||
return userRole;
|
||||
}).toList();
|
||||
manyAddOrRenewUtil.asyncExecuteInsert(list, 200);
|
||||
}
|
||||
// 不是定义的personType的人员,去除会员角色
|
||||
if (Lang.isNotEmpty(deleteMemberUserIds)) {
|
||||
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", deleteMemberUserIds).and("roleId", "=", Roles.MEMBER));
|
||||
if ("all".equals(sourceType)) {
|
||||
// 添加会员角色
|
||||
if (Lang.isNotEmpty(addMemberUserIds)) {
|
||||
String memberRoleId = Roles.MEMBER;
|
||||
List<Sys_user_role> list = addMemberUserIds.stream().map(v -> {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setUserId(v);
|
||||
userRole.setRoleId(memberRoleId);
|
||||
return userRole;
|
||||
}).toList();
|
||||
manyAddOrRenewUtil.asyncExecuteInsert(list, 200);
|
||||
}
|
||||
// 不是定义的personType的人员,去除会员角色
|
||||
if (Lang.isNotEmpty(deleteMemberUserIds)) {
|
||||
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", deleteMemberUserIds).and("roleId", "=", Roles.MEMBER));
|
||||
}
|
||||
}
|
||||
|
||||
// Collection<String[]> updateColumns = SourceData.USER_FIELD_RELATION.values();
|
||||
@@ -253,7 +252,7 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
|
||||
// 人员状态及在职状态更新
|
||||
userPatUpService.renewUserState();
|
||||
// 修改不在人事库的人员,删除角色
|
||||
userPatUpService.deleteNotInSourceUser();
|
||||
userPatUpService.deleteNotInSourceUser(true);
|
||||
//清除缓存
|
||||
// sysUserService.clearCache();
|
||||
// sysRoleService.clearCache();
|
||||
|
||||
@@ -105,6 +105,7 @@ public enum MemberChangeHandle {
|
||||
UserMode.addMemberRole(record.getUserId());
|
||||
updateMemberStatus(MemberStatus.RESTORE, record.getUserId());
|
||||
updateMemberAndWelfareMember(record);
|
||||
sysUserService.update(Chain.make("preparedBy", "会员"), Cnd.where("id", "=", record.getUserId()));
|
||||
}
|
||||
},
|
||||
WITHDRAWAL(UserChangeType.WITHDRAWAL.getCode()) {
|
||||
@@ -115,6 +116,7 @@ public enum MemberChangeHandle {
|
||||
updateMemberAndWelfareMember(record);
|
||||
updateMemberStatus(MemberStatus.WITHDRAWAL, record.getUserId());
|
||||
updateUserStateAndPersonType(record);
|
||||
sysUserService.update(Chain.make("preparedBy", "教职工"), Cnd.where("id", "=", record.getUserId()));
|
||||
}
|
||||
},
|
||||
CARD_CHANGE(UserChangeType.CARD_CHANGE.getCode()){
|
||||
|
||||
Reference in New Issue
Block a user