..
This commit is contained in:
@@ -84,7 +84,7 @@ public class SysDataUserUpdateController {
|
|||||||
cnd.and(Cnd.likeEX("u.loginname", pageForm.getLoginName()));
|
cnd.and(Cnd.likeEX("u.loginname", pageForm.getLoginName()));
|
||||||
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
||||||
cnd.andEX("u.userState", "=", pageForm.getUserState());
|
cnd.andEX("u.userState", "=", pageForm.getUserState());
|
||||||
cnd.andEX("u.;preparedBy", "=", pageForm.getPreparedBy());
|
cnd.andEX("u.preparedBy", "=", pageForm.getPreparedBy());
|
||||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class Sys_union_group extends BaseModel {
|
|||||||
|
|
||||||
@Column
|
@Column
|
||||||
@Comment("小组长")
|
@Comment("小组长")
|
||||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
@ColDefine(type = ColType.VARCHAR)
|
||||||
private List<String> leaders;
|
private List<String> leaders;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ package com.budwk.app.sys.services.impl;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.ListUtil;
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.IdcardUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HtmlUtil;
|
import cn.hutool.http.HtmlUtil;
|
||||||
@@ -34,6 +36,7 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -114,7 +117,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
|||||||
*/
|
*/
|
||||||
private boolean checkMembershipEligibility(String userState, String preparedBy, Date postDoctoralJoinDate, Sys_user user) {
|
private boolean checkMembershipEligibility(String userState, String preparedBy, Date postDoctoralJoinDate, Sys_user user) {
|
||||||
// 博士后单独判断:只要进站时间在两年内就是会员
|
// 博士后单独判断:只要进站时间在两年内就是会员
|
||||||
if ("博士后".equals(preparedBy)) {
|
/*if ("博士后".equals(preparedBy)) {
|
||||||
Date twoYearsAgo = DateUtil.offset(DateUtil.date(), DateField.YEAR, -2).toJdkDate();
|
Date twoYearsAgo = DateUtil.offset(DateUtil.date(), DateField.YEAR, -2).toJdkDate();
|
||||||
if (postDoctoralJoinDate != null) {
|
if (postDoctoralJoinDate != null) {
|
||||||
return postDoctoralJoinDate.after(twoYearsAgo);
|
return postDoctoralJoinDate.after(twoYearsAgo);
|
||||||
@@ -123,6 +126,27 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
|||||||
return user.getPostDoctoralJoinDate().after(twoYearsAgo);
|
return user.getPostDoctoralJoinDate().after(twoYearsAgo);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// 2026-01-10 JyuHsin 修改博士后逻辑
|
||||||
|
// 如果是新进博士后,那么直接就不是会员,如果在库里已经是会员的,判断进站时间,如果超过2年就不是会员
|
||||||
|
if ("博士后".equals(preparedBy)) {
|
||||||
|
// 如果是新入职的,user参数传的是null,那么直接就不是会员
|
||||||
|
if(Lang.isEmpty(user)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
boolean currentIsMember = user.getMember() != null && user.getMember();
|
||||||
|
if(!currentIsMember) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 如果已经是会员的,判断进站时间
|
||||||
|
if (user.getPostDoctoralJoinDate() != null) {
|
||||||
|
DateTime afterTwoYear = DateUtil.offset(user.getPostDoctoralJoinDate(), DateField.YEAR, 2);
|
||||||
|
DateTime today = DateUtil.date();
|
||||||
|
// 当前日期在进站时间推2年之后,意思就是进站时间超过了2年
|
||||||
|
return !today.isAfter(afterTwoYear);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他人员需要判断在岗状态和聘用方式
|
// 其他人员需要判断在岗状态和聘用方式
|
||||||
@@ -165,7 +189,8 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
|||||||
List<String> specialStaffUserLoginNames = dao.query(Sys_user.class, Cnd.where(Sys_user::getId, "in", specialStaffUserIds)).stream().map(Sys_user::getLoginname).toList();
|
List<String> specialStaffUserLoginNames = dao.query(Sys_user.class, Cnd.where(Sys_user::getId, "in", specialStaffUserIds)).stream().map(Sys_user::getLoginname).toList();
|
||||||
|
|
||||||
// 找特殊人员在源数据中退休的
|
// 找特殊人员在源数据中退休的
|
||||||
List<Sys_user_source> retireList = dao.query(Sys_user_source.class, Cnd.where(Sys_user_source::getPullTime, "=", updateParam.getPullTime()).and("userState", "=", "退休").and(Sys_user_source::getLoginname, "in", specialStaffUserLoginNames));
|
List<String> usList = List.of("辞职", "退休", "调出", "无", "退站", "其他", "出站", "死亡", "不保留编制", "退休死亡", "离休", "离职", "辞退", "合同到期", "解聘", "离休死亡", "开除公职", "合同终止", "解除合同", "开除", "除名", "内退");
|
||||||
|
List<Sys_user_source> retireList = dao.query(Sys_user_source.class, Cnd.where(Sys_user_source::getPullTime, "=", updateParam.getPullTime()).and("userState", "in", usList).and(Sys_user_source::getLoginname, "in", specialStaffUserLoginNames));
|
||||||
List<String> retireLoginNames = retireList.stream().map(Sys_user_source::getLoginname).distinct().toList();
|
List<String> retireLoginNames = retireList.stream().map(Sys_user_source::getLoginname).distinct().toList();
|
||||||
|
|
||||||
List<String> list = specialStaffUserLoginNames.stream().filter(o -> !retireLoginNames.contains(o)).toList();
|
List<String> list = specialStaffUserLoginNames.stream().filter(o -> !retireLoginNames.contains(o)).toList();
|
||||||
@@ -241,6 +266,12 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
|||||||
if (StrUtil.isNotBlank(user.getIdCard())) {
|
if (StrUtil.isNotBlank(user.getIdCard())) {
|
||||||
u.setIdCard(null);
|
u.setIdCard(null);
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isNotBlank(user.getIdCard()) && user.getIdCard().length() == 18) {
|
||||||
|
DateTime birthDate = IdcardUtil.getBirthDate(user.getIdCard());
|
||||||
|
if (birthDate != null) {
|
||||||
|
u.setBirthday(birthDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 检查会员资格
|
// 检查会员资格
|
||||||
boolean shouldBeMember = checkMembershipEligibility(
|
boolean shouldBeMember = checkMembershipEligibility(
|
||||||
|
|||||||
+6
-4
@@ -130,7 +130,7 @@ public class MemberChangeManageController {
|
|||||||
|
|
||||||
// 启动流程
|
// 启动流程
|
||||||
HashMap<String, Object> processVariables = new HashMap<>();
|
HashMap<String, Object> processVariables = new HashMap<>();
|
||||||
processVariables.put("processType", branchGroupRoleBool ? "unionGroup" : "branchUnion");
|
processVariables.put("processType", Lang.isNotEmpty(group) ? "unionGroup" : "branchUnion");
|
||||||
|
|
||||||
bpmService.startSubmitProcessInstance(
|
bpmService.startSubmitProcessInstance(
|
||||||
BpmProcessConstant.MEMBER_CHANGE.name(),
|
BpmProcessConstant.MEMBER_CHANGE.name(),
|
||||||
@@ -159,14 +159,14 @@ public class MemberChangeManageController {
|
|||||||
} else {
|
} else {
|
||||||
vars.put("groupAuditNext", "school");
|
vars.put("groupAuditNext", "school");
|
||||||
}
|
}
|
||||||
completeLatestTask(instance, "工会小组审核通过", null, vars);
|
completeLatestTask(instance, "工会小组审核通过", BpmTaskApprovalTypeEnum.DYNAMIC, null, vars);
|
||||||
// processVariables.put("")
|
// processVariables.put("")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 2. 分工会审核通过(如果是分工会角色)
|
// 2. 分工会审核通过(如果是分工会角色)
|
||||||
if (branchRoleBool || schoolRoleBool) {
|
if (branchRoleBool || schoolRoleBool) {
|
||||||
completeLatestTask(instance, "分工会审核通过", null, null);
|
completeLatestTask(instance, "分工会审核通过", BpmTaskApprovalTypeEnum.PASS, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 校工会审核通过(如果是校工会或超管)
|
// 3. 校工会审核通过(如果是校工会或超管)
|
||||||
@@ -174,6 +174,7 @@ public class MemberChangeManageController {
|
|||||||
// completeLatestTask 后 taskId 可能变化,所以重新查一次
|
// completeLatestTask 后 taskId 可能变化,所以重新查一次
|
||||||
BpmProcessInstance committeeInstance = getProcessInstanceByBusinessId(record.getId());
|
BpmProcessInstance committeeInstance = getProcessInstanceByBusinessId(record.getId());
|
||||||
completeLatestTask(committeeInstance, "校工会审核通过",
|
completeLatestTask(committeeInstance, "校工会审核通过",
|
||||||
|
BpmTaskApprovalTypeEnum.PASS,
|
||||||
vars -> memberCommonService.compareChangeInfoAndUpdateMember(record.getId()),
|
vars -> memberCommonService.compareChangeInfoAndUpdateMember(record.getId()),
|
||||||
null);
|
null);
|
||||||
}
|
}
|
||||||
@@ -215,6 +216,7 @@ public class MemberChangeManageController {
|
|||||||
* @param postAction 成功后执行的动作(如更新会员数据)
|
* @param postAction 成功后执行的动作(如更新会员数据)
|
||||||
*/
|
*/
|
||||||
private void completeLatestTask(BpmProcessInstance instance, String opinion,
|
private void completeLatestTask(BpmProcessInstance instance, String opinion,
|
||||||
|
BpmTaskApprovalTypeEnum typeEnum,
|
||||||
Consumer<Map<String, Object>> postAction,
|
Consumer<Map<String, Object>> postAction,
|
||||||
Map<String, Object> var) {
|
Map<String, Object> var) {
|
||||||
BpmProcessTask task = getLatestTaskByInstanceId(instance.getId());
|
BpmProcessTask task = getLatestTaskByInstanceId(instance.getId());
|
||||||
@@ -235,7 +237,7 @@ public class MemberChangeManageController {
|
|||||||
variables.putAll(var);
|
variables.putAll(var);
|
||||||
}
|
}
|
||||||
// 执行完成任务
|
// 执行完成任务
|
||||||
bpmService.completeTask(task.getId(), BpmTaskApprovalTypeEnum.PASS, variables, List.of(SecurityUtil.getUserLoginname()));
|
bpmService.completeTask(task.getId(), typeEnum, variables, List.of(SecurityUtil.getUserLoginname()));
|
||||||
|
|
||||||
// 回调后置操作
|
// 回调后置操作
|
||||||
if (postAction != null) {
|
if (postAction != null) {
|
||||||
|
|||||||
@@ -198,6 +198,10 @@ public class MemberChangeRecord extends BaseModel {
|
|||||||
@Comment("博士后进站时间")
|
@Comment("博士后进站时间")
|
||||||
@ColDefine(type = ColType.DATE)
|
@ColDefine(type = ColType.DATE)
|
||||||
private Date postDoctoralJoinDate;
|
private Date postDoctoralJoinDate;
|
||||||
|
@Column
|
||||||
|
@Comment("出生年月")
|
||||||
|
@ColDefine(type = ColType.DATE)
|
||||||
|
private Date birthday;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@Comment("个人简况")
|
@Comment("个人简况")
|
||||||
|
|||||||
+1
@@ -83,6 +83,7 @@ public class MemberCommonServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
u.idCardType,
|
u.idCardType,
|
||||||
u.idCard,
|
u.idCard,
|
||||||
u.mobile,
|
u.mobile,
|
||||||
|
u.welfareMember,
|
||||||
u.welfareMobile,
|
u.welfareMobile,
|
||||||
u.education,
|
u.education,
|
||||||
u.academicDegree,
|
u.academicDegree,
|
||||||
|
|||||||
+2
@@ -237,6 +237,8 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
|||||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
||||||
|
exportEntities.add(new ExcelExportEntity("出生年月", "birthday", 30));
|
||||||
|
exportEntities.add(new ExcelExportEntity("进站时间", "postDoctoralJoinDate", 30));
|
||||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||||
|
|||||||
+1
-1
@@ -136,7 +136,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
|||||||
u.loginname,
|
u.loginname,
|
||||||
u.username,
|
u.username,
|
||||||
u.sex,
|
u.sex,
|
||||||
u.birthday,
|
DATE_FORMAT(u.birthday, '%Y-%m-%d') as birthday,
|
||||||
u.political,
|
u.political,
|
||||||
u.joinPartyDate,
|
u.joinPartyDate,
|
||||||
u.nation,
|
u.nation,
|
||||||
|
|||||||
@@ -86,8 +86,9 @@ public class WelfareListController {
|
|||||||
@SaCheckPermission("welfare.list.mange")
|
@SaCheckPermission("welfare.list.mange")
|
||||||
@SLog(tag = "福利名单管理", msg = "管理员删除某个福利会员")
|
@SLog(tag = "福利名单管理", msg = "管理员删除某个福利会员")
|
||||||
public Result delete(String projectId, String userId, String id) {
|
public Result delete(String projectId, String userId, String id) {
|
||||||
|
WelfareList oldWelfare = welfareListService.fetch(id);
|
||||||
welfareListService.delete(id);
|
welfareListService.delete(id);
|
||||||
welfareListService.dao().clear(WelfareUserSelection.class, Cnd.where("welfareId", "=", projectId).and("selectUserId", "=", userId));
|
welfareListService.dao().clear(WelfareUserSelection.class, Cnd.where("welfareId", "=", oldWelfare.getProjectId()).and("selectUserId", "=", oldWelfare.getUserId()));
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
@@ -4,15 +4,19 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
|
|||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.sys.models.Sys_user;
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
||||||
|
import com.budwk.app.zhgh.welfare.model.WelfareProject;
|
||||||
import com.budwk.app.zhgh.welfare.model.WelfareUserSelection;
|
import com.budwk.app.zhgh.welfare.model.WelfareUserSelection;
|
||||||
import com.budwk.app.zhgh.welfare.param.WelfareSelectionSituationPageForm;
|
import com.budwk.app.zhgh.welfare.param.WelfareSelectionSituationPageForm;
|
||||||
import com.budwk.app.zhgh.welfare.service.WelfareListService;
|
import com.budwk.app.zhgh.welfare.service.WelfareListService;
|
||||||
import com.budwk.app.zhgh.welfare.service.WelfareSelectionSituationService;
|
import com.budwk.app.zhgh.welfare.service.WelfareSelectionSituationService;
|
||||||
import com.budwk.app.zhgh.welfare.service.WelfareStatisticsService;
|
import com.budwk.app.zhgh.welfare.service.WelfareStatisticsService;
|
||||||
|
import com.jogamp.common.util.SecurityUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -81,6 +85,12 @@ public class WelfareSelectionSituationController {
|
|||||||
@SLog(type = "welfare", tag = "选择福利", msg = "代选福利")
|
@SLog(type = "welfare", tag = "选择福利", msg = "代选福利")
|
||||||
@SaCheckPermission("welfare.selection.situation")
|
@SaCheckPermission("welfare.selection.situation")
|
||||||
public Result confirmSelect(@Param("selections") WelfareUserSelection[] selections, String projectId, String userId) {
|
public Result confirmSelect(@Param("selections") WelfareUserSelection[] selections, String projectId, String userId) {
|
||||||
|
WelfareProject project = dao.fetch(WelfareProject.class, projectId);
|
||||||
|
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
|
if(project.getChoiceTimeEnd().getTime()<new Date().getTime()){
|
||||||
|
return Result.error("选择时间已结束暂时不能修改!");
|
||||||
|
}
|
||||||
|
}
|
||||||
int count = dao.count(WelfareList.class, Cnd.where(WelfareList::getProjectId, "=", projectId).and(WelfareList::getUserId, "=", userId));
|
int count = dao.count(WelfareList.class, Cnd.where(WelfareList::getProjectId, "=", projectId).and(WelfareList::getUserId, "=", userId));
|
||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
return Result.error("此用户没有选择的权限");
|
return Result.error("此用户没有选择的权限");
|
||||||
|
|||||||
+5
-2
@@ -53,7 +53,8 @@ public class WelfareSelectionSituationServiceImpl extends BaseServiceImpl<Welfar
|
|||||||
t4.username AS userName,
|
t4.username AS userName,
|
||||||
t4.loginname AS loginName,
|
t4.loginname AS loginName,
|
||||||
t4.sex,
|
t4.sex,
|
||||||
t4.birthday
|
t4.birthday,
|
||||||
|
t4.welfareMobile
|
||||||
FROM
|
FROM
|
||||||
welfare_list t1
|
welfare_list t1
|
||||||
LEFT JOIN welfare_project_user_selection t2 ON t2.welfareId = t1.projectId AND t2.selectUserId = t1.userId
|
LEFT JOIN welfare_project_user_selection t2 ON t2.welfareId = t1.projectId AND t2.selectUserId = t1.userId
|
||||||
@@ -111,7 +112,8 @@ public class WelfareSelectionSituationServiceImpl extends BaseServiceImpl<Welfar
|
|||||||
GROUP_CONCAT(DISTINCT t2.receiveAddress) AS receiveAddress,
|
GROUP_CONCAT(DISTINCT t2.receiveAddress) AS receiveAddress,
|
||||||
t4.username AS userName,
|
t4.username AS userName,
|
||||||
t4.loginname AS loginName,
|
t4.loginname AS loginName,
|
||||||
t4.sex
|
t4.sex,
|
||||||
|
t4.welfareMobile
|
||||||
FROM
|
FROM
|
||||||
welfare_list t1
|
welfare_list t1
|
||||||
LEFT JOIN welfare_project_user_selection t2 ON t2.welfareId = t1.projectId AND t2.selectUserId = t1.userId
|
LEFT JOIN welfare_project_user_selection t2 ON t2.welfareId = t1.projectId AND t2.selectUserId = t1.userId
|
||||||
@@ -168,6 +170,7 @@ public class WelfareSelectionSituationServiceImpl extends BaseServiceImpl<Welfar
|
|||||||
entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20));
|
entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20));
|
||||||
entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20));
|
entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20));
|
||||||
entities.add(new ExcelExportEntity("所选福利", "selectedOptions", 20));
|
entities.add(new ExcelExportEntity("所选福利", "selectedOptions", 20));
|
||||||
|
entities.add(new ExcelExportEntity("福利号码", "welfareMobile", 20));
|
||||||
entities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
entities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||||
|
|
||||||
if(project.getProvideMode() == 3){
|
if(project.getProvideMode() == 3){
|
||||||
|
|||||||
+5
-4
@@ -96,6 +96,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
List<NutMap> userSelections = listMap(sql2);
|
List<NutMap> userSelections = listMap(sql2);
|
||||||
|
|
||||||
for (NutMap union : mapUnions) {
|
for (NutMap union : mapUnions) {
|
||||||
|
System.out.println(union.getString("name"));
|
||||||
// 福利人数
|
// 福利人数
|
||||||
long teacherSum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId", "").equals(union.getString("id"))).count();
|
long teacherSum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId", "").equals(union.getString("id"))).count();
|
||||||
union.put("teacherSum", teacherSum);
|
union.put("teacherSum", teacherSum);
|
||||||
@@ -109,7 +110,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
|
|
||||||
// 各选项的选择人数
|
// 各选项的选择人数
|
||||||
for (WelfareProjectSubjectOption option : welfareOptions) {
|
for (WelfareProjectSubjectOption option : welfareOptions) {
|
||||||
long count = userSelections.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id")) && StrUtil.isNotBlank(v.getString("selectOptionId")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
|
long count = userSelections.stream().filter(v -> v.getString("welfareUnionId", "").equals(union.getString("id")) && StrUtil.isNotBlank(v.getString("selectOptionId")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
|
||||||
union.put(option.getId(), count);
|
union.put(option.getId(), count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -462,11 +463,11 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
|
|
||||||
for (NutMap union : mapUnions) {
|
for (NutMap union : mapUnions) {
|
||||||
// 福利人数
|
// 福利人数
|
||||||
long teacherSum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id"))).count();
|
long teacherSum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId","").equals(union.getString("id"))).count();
|
||||||
union.put("teacherSum", teacherSum);
|
union.put("teacherSum", teacherSum);
|
||||||
|
|
||||||
// 已选人数
|
// 已选人数
|
||||||
long selectedNum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id")) && v.getBoolean("has_selected")).count();
|
long selectedNum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId","").equals(union.getString("id")) && v.getBoolean("has_selected")).count();
|
||||||
union.put("selectedNum", selectedNum);
|
union.put("selectedNum", selectedNum);
|
||||||
|
|
||||||
// 未选人数
|
// 未选人数
|
||||||
@@ -474,7 +475,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
|
|
||||||
// 各选项的选择人数
|
// 各选项的选择人数
|
||||||
for (WelfareProjectSubjectOption option : welfareOptions) {
|
for (WelfareProjectSubjectOption option : welfareOptions) {
|
||||||
long count = userSelections.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
|
long count = userSelections.stream().filter(v -> v.getString("welfareUnionId","").equals(union.getString("id")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
|
||||||
union.put(option.getId(), count);
|
union.put(option.getId(), count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+39
-29
@@ -107,6 +107,16 @@ const MEMBER_CHANGE = {
|
|||||||
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
|
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="出生年月" >
|
||||||
|
<el-form-item prop="birthday">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="formData.birthday"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择出生年月">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="进站时间" >
|
<el-descriptions-item label="进站时间" >
|
||||||
<el-form-item prop="postDoctoralJoinDate">
|
<el-form-item prop="postDoctoralJoinDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@@ -246,35 +256,35 @@ const MEMBER_CHANGE = {
|
|||||||
trigger: ["change", "blur"]
|
trigger: ["change", "blur"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
idCard: [
|
// idCard: [
|
||||||
{
|
// {
|
||||||
validator: (rule, value, callback) => {
|
// validator: (rule, value, callback) => {
|
||||||
if (!value) {
|
// if (!value) {
|
||||||
// 如果值为空,直接通过校验
|
// // 如果值为空,直接通过校验
|
||||||
callback();
|
// callback();
|
||||||
} else if (/^[1-9]\d{5}(18|19|20)?\d{2}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}(\d|[Xx])$/.test(value)) {
|
// } else if (/^[1-9]\d{5}(18|19|20)?\d{2}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}(\d|[Xx])$/.test(value)) {
|
||||||
// 18位身份证号码格式正确
|
// // 18位身份证号码格式正确
|
||||||
callback();
|
// callback();
|
||||||
} else if (/^[1-9]\d{7}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}$/.test(value)) {
|
// } else if (/^[1-9]\d{7}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}$/.test(value)) {
|
||||||
// 15位身份证号码格式正确
|
// // 15位身份证号码格式正确
|
||||||
callback();
|
// callback();
|
||||||
} else if (/^[1-9]\d{5}(18|19|20)?\d{2}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}$/.test(value)) {
|
// } else if (/^[1-9]\d{5}(18|19|20)?\d{2}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}$/.test(value)) {
|
||||||
// 外国人身份证号码格式正确(18位)
|
// // 外国人身份证号码格式正确(18位)
|
||||||
callback();
|
// callback();
|
||||||
} else if (/^[1-9]\d{7}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}$/.test(value)) {
|
// } else if (/^[1-9]\d{7}((0[1-9])|(10|11|12))(([0|1|2][0-9])|10|20|30|31)\d{3}$/.test(value)) {
|
||||||
// 外国人身份证号码格式正确(15位)
|
// // 外国人身份证号码格式正确(15位)
|
||||||
callback();
|
// callback();
|
||||||
} else if (/^[A-Z]\d{6,9}$/.test(value)) {
|
// } else if (/^[A-Z]\d{6,9}$/.test(value)) {
|
||||||
// 香港身份证号码格式正确(8位)
|
// // 香港身份证号码格式正确(8位)
|
||||||
callback();
|
// callback();
|
||||||
} else {
|
// } else {
|
||||||
// 格式错误,返回错误信息
|
// // 格式错误,返回错误信息
|
||||||
callback(new Error("身份证号码格式错误"));
|
// callback(new Error("身份证号码格式错误"));
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
trigger: ["change", "blur"]
|
// trigger: ["change", "blur"]
|
||||||
}
|
// }
|
||||||
],
|
// ],
|
||||||
mobile: [
|
mobile: [
|
||||||
{
|
{
|
||||||
validator: (rule, value, callback) => {
|
validator: (rule, value, callback) => {
|
||||||
|
|||||||
+2
-2
@@ -111,8 +111,8 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<span>姓  别:</span>
|
<span>性  别:</span>
|
||||||
<el-select placeholder="姓别" v-model="pageForm.sexTypes"
|
<el-select placeholder="性别" v-model="pageForm.sexTypes"
|
||||||
clearable multiple style="margin-left: 33px;width: 80%"
|
clearable multiple style="margin-left: 33px;width: 80%"
|
||||||
@change="doSearch()"
|
@change="doSearch()"
|
||||||
@clear="doSearch()"
|
@clear="doSearch()"
|
||||||
|
|||||||
@@ -483,7 +483,7 @@ const optionSelect = {
|
|||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
this.isSubmitting = false
|
this.isSubmitting = false
|
||||||
this.$message.error("网络错误,请重试")
|
// this.$message.error("网络错误,请重试")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "welfareUnionName", label: "所属工会", sortable: true },
|
{ prop: "welfareUnionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "welfareUnitName", label: "所属单位", sortable: true },
|
{ prop: "welfareUnitName", label: "所属单位", sortable: true },
|
||||||
{ prop: "selectedOptions", label: "所选福利", sortable: true },
|
{ prop: "selectedOptions", label: "所选福利", sortable: true },
|
||||||
{ prop: "mobile", label: "联系电话", sortable: true }
|
{ prop: "welfareMobile", label: "福利号码", sortable: true }
|
||||||
],
|
],
|
||||||
optionSelectVisible: false
|
optionSelectVisible: false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,8 +277,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
|
|
||||||
.welfare-tag {
|
.welfare-tag {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 8px;
|
right: 41px;
|
||||||
top: 8px;
|
top: -3px;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,6 +531,17 @@ layout("/layouts/platform_h5.html"){
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.welfare-info-card .van-collapse-item__content {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.welfare-info-card .welfare-cell-group .van-cell__title {
|
||||||
|
max-width: 70px;
|
||||||
|
}
|
||||||
|
.welfare-info-card .welfare-cell-group .van-cell {
|
||||||
|
padding: 8px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
@@ -582,7 +593,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</div>
|
</div>
|
||||||
<div class="welfare-cell-group">
|
<div class="welfare-cell-group">
|
||||||
<van-cell title="选择时间" :value="formatTimeRange(projectInfo.choiceTimeStart, projectInfo.choiceTimeEnd)"></van-cell>
|
<van-cell title="选择时间" :value="formatTimeRange(projectInfo.choiceTimeStart, projectInfo.choiceTimeEnd)"></van-cell>
|
||||||
<van-cell title="发放时间" :value="formatTimeRange(projectInfo.provideTimeStart, projectInfo.provideTimeEnd)"></van-cell>
|
<!--<van-cell title="发放时间" :value="formatTimeRange(projectInfo.provideTimeStart, projectInfo.provideTimeEnd)"></van-cell>-->
|
||||||
<van-cell title="发放地点" :value="projectInfo.provideAddress"></van-cell>
|
<van-cell title="发放地点" :value="projectInfo.provideAddress"></van-cell>
|
||||||
<!-- <van-cell title="发放方式" :value="getProvideModeName(projectInfo.provideMode)"></van-cell>-->
|
<!-- <van-cell title="发放方式" :value="getProvideModeName(projectInfo.provideMode)"></van-cell>-->
|
||||||
<!-- <van-cell title="签字方式" :value="getSignModeName(projectInfo.signMode)"></van-cell>-->
|
<!-- <van-cell title="签字方式" :value="getSignModeName(projectInfo.signMode)"></van-cell>-->
|
||||||
|
|||||||
Reference in New Issue
Block a user