福利、签字

This commit is contained in:
Paidax
2024-12-26 08:30:06 +08:00
parent 0f6787c0cd
commit d6c4f48afc
56 changed files with 266 additions and 158 deletions
@@ -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()){