From 7d8b34065f2469d3f9c0433bda9b8ca5cb6067bd Mon Sep 17 00:00:00 2001 From: server Date: Mon, 5 Jan 2026 14:37:51 +0800 Subject: [PATCH] .. --- .../controller/SysDataUserPullController.java | 3 +++ .../impl/SysDataUserAllUpdateServiceImpl.java | 24 +++++++++++++---- .../app/task/job/SysUserAllRenewJob.java | 9 ++++++- .../sports/models/ActivitySchoolApply.java | 5 ++++ .../impl/ActivitySportsServiceImpl.java | 7 +++-- .../change/MemberChangeManageController.java | 15 ++++++----- .../service/impl/MemberCommonServiceImpl.java | 2 +- src/main/resources/logback.xml | 4 +-- .../activity/sports/applyUser/deleteUser.js | 11 +++++--- .../zhgh/activity/sports/reading/index.html | 2 ++ .../member/change/common/memberChange.js | 27 ++++++++++++++++--- .../member/change/manage/index.html | 3 +++ .../member/change/record/index.html | 2 +- .../views/platform/zhghh5/scan/index.html | 15 ++++++----- .../platform/zhghh5/welfare/address/list.html | 6 +++++ src/test/java/com/budwk/app/JugTest.java | 2 +- 16 files changed, 105 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/controller/SysDataUserPullController.java b/src/main/java/com/budwk/app/sys/controller/SysDataUserPullController.java index 0a16c1a..d2e8f76 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysDataUserPullController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysDataUserPullController.java @@ -11,7 +11,9 @@ import com.budwk.app.sys.services.SysDataUserPullService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; +import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.mvc.annotation.At; @@ -60,6 +62,7 @@ public class SysDataUserPullController { @At @SaCheckPermission("sys.data.user.pull") @ApiOperation("拉取用户数据") + @Aop(TransAop.READ_COMMITTED) public Result pullData() { sysUserPullService.pull(); return Result.success(); diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java index 0192d7b..46f33ab 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java @@ -164,15 +164,27 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService List specialStaffUserIds = specialStaffs.stream().map(SpecialStaff::getUserId).toList(); List specialStaffUserLoginNames = dao.query(Sys_user.class, Cnd.where(Sys_user::getId, "in", specialStaffUserIds)).stream().map(Sys_user::getLoginname).toList(); - // 排除掉其他人员不更新 - cnd.andEX(Sys_user_source::getLoginname, "not in", specialStaffUserLoginNames); + // 找特殊人员在源数据中退休的 + List 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 retireLoginNames = retireList.stream().map(Sys_user_source::getLoginname).distinct().toList(); + List list = specialStaffUserLoginNames.stream().filter(o -> !retireLoginNames.contains(o)).toList(); + + // 排除掉其他人员不更新 + cnd.andEX(Sys_user_source::getLoginname, "not in", list); + + log.info(cnd.toString()); List sources = dao.query(Sys_user_source.class, cnd.groupBy("loginname")); log.info("符合条件的数据源记录数: {}", sources.size()); // 查询系统用户 List sysUsers = dao.query(Sys_user.class, Cnd.NEW().groupBy("loginname")); + + // 不知道SpecialStaff表中的userId等不等于Sys_user_source表中的id + List retireUserIds = sysUsers.stream().filter(o -> retireLoginNames.contains(o.getLoginname())).distinct().map(Sys_user::getId).toList(); + dao.clear(SpecialStaff.class, Cnd.where(SpecialStaff::getUserId, "in", retireUserIds)); + Map userMap = sysUsers.stream().collect(Collectors.toMap(Sys_user::getLoginname, sysUser -> sysUser)); // 准备数据集合 @@ -185,9 +197,9 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService // 处理每条数据 for (Sys_user_source source : sources) { - if (!"在岗".equals(source.getUserState())) { - continue; - } +// if (!"在岗".equals(source.getUserState())) { +// continue; +// } Sys_user user = userMap.get(source.getLoginname()); @@ -415,6 +427,8 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService long endTime = System.currentTimeMillis(); log.info("全量更新用户数据完成,耗时: {} 毫秒", (endTime - startTime)); + // 6.清空7天之前的拉取数据 + dao.clear(Sys_user_source.class, Cnd.where(Sys_user_source::getPullTime, "<", DateUtil.offsetDay(DateUtil.date(), -7))); return "更新完成: 新增用户 " + needInitUserList.size() + " 个, 更新用户 " + needDoUpdateList.size() + " 个, 待添加会员 " + addMemberUserIds.size() + " 个, 待移除会员 " + removeMemberUserIds.size() + " 个"; diff --git a/src/main/java/com/budwk/app/task/job/SysUserAllRenewJob.java b/src/main/java/com/budwk/app/task/job/SysUserAllRenewJob.java index bcb02f4..2727361 100644 --- a/src/main/java/com/budwk/app/task/job/SysUserAllRenewJob.java +++ b/src/main/java/com/budwk/app/task/job/SysUserAllRenewJob.java @@ -16,6 +16,7 @@ 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.Mvcs; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; @@ -53,11 +54,17 @@ public class SysUserAllRenewJob implements Job { log.error("SysUserAllRenewJob定时任务执行失败,原因:{}", e.getMessage()); } + Cnd cnd = Cnd.NEW(); + cnd.desc(Sys_user_source::getPullTime); + cnd.groupBy("pullTime"); + Sys_user_source source = dao.fetch(Sys_user_source.class, cnd); + SysDataUserUpdateParam param = new SysDataUserUpdateParam(); - param.setPullTime(DateUtil.formatDateTime(pullTime)); + param.setPullTime(DateUtil.formatDateTime(source.getPullTime())); param.setUpdateMode(SysDataUpdateMode.ALL.name()); param.setConditionGroup(conditionGroup); + log.info("执行全量更新数据前,传入的时间{}", DateUtil.formatDateTime(pullTime)); sysDataUserUpdateService.update(param); } } diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolApply.java b/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolApply.java index 11d1621..42dc801 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolApply.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolApply.java @@ -135,6 +135,9 @@ public class ActivitySchoolApply extends BaseModel implements Serializable { + @Excel(name = "序号", width = 10) + private int index; + @Excel(name = "分工会", width = 30) private String unionname; @@ -189,4 +192,6 @@ public class ActivitySchoolApply extends BaseModel implements Serializable { private String unitname; + + } diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java index 2ba9036..db5e422 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsServiceImpl.java @@ -233,12 +233,15 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl i List excels = new ArrayList<>(); - list.forEach(z -> { + for (int i = 0; i < list.size(); i++) { + Record z = list.get(i); ActivitySchoolApply schoolApply = z.toPojo(ActivitySchoolApply.class); + schoolApply.setIndex(i+1); String s = schoolApply.getIdentity().stream().map(personType::getName).toList().toString(); schoolApply.setSf(s.replace("[", "").replace("]", "")); excels.add(schoolApply); - }); + } + ExportParams exportParams = new ExportParams(); exportParams.setType(ExcelType.XSSF); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java index b3b17e7..e6baf74 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java @@ -216,7 +216,7 @@ public class MemberChangeManageController { */ private void completeLatestTask(BpmProcessInstance instance, String opinion, Consumer> postAction, - Map var) { + Map var) { BpmProcessTask task = getLatestTaskByInstanceId(instance.getId()); if (task == null) { throw new BaseException("无法获取待处理任务"); @@ -231,8 +231,9 @@ public class MemberChangeManageController { param.setApprovalOpinion(opinion); Map variables = BeanUtil.beanToMap(param); - variables.putAll(var); - + if (var != null) { + variables.putAll(var); + } // 执行完成任务 bpmService.completeTask(task.getId(), BpmTaskApprovalTypeEnum.PASS, variables, List.of(SecurityUtil.getUserLoginname())); @@ -246,8 +247,8 @@ public class MemberChangeManageController { @At @SLog(tag = "分工会管理-会员管理", type = "MemberBranchManageList", msg = "修改会员福利手机号") @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) - public Result changeWelfareMobile(String id,String welfareMobile){ - memberCommonService.dao().update(Sys_user.class, Chain.make("welfareMobile", welfareMobile),Cnd.where("id", "=", id)); + public Result changeWelfareMobile(String id, String welfareMobile) { + memberCommonService.dao().update(Sys_user.class, Chain.make("welfareMobile", welfareMobile), Cnd.where("id", "=", id)); return Result.success(); } @@ -255,7 +256,7 @@ public class MemberChangeManageController { @At @Ok("void") @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) - public void doExport(MemberManagePageForm pageForm, HttpServletResponse response){ + public void doExport(MemberManagePageForm pageForm, HttpServletResponse response) { Sql sql = memberCommonService.getSql(pageForm); List list = memberCommonService.listMap(sql); @@ -300,7 +301,7 @@ public class MemberChangeManageController { @At @Ok("void") @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) - public void doExportNotEqPhone(MemberManagePageForm pageForm, HttpServletResponse response){ + public void doExportNotEqPhone(MemberManagePageForm pageForm, HttpServletResponse response) { Sql sql = Sqls.create(""" SELECT u.id, diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java index 19426e3..2a78cbc 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java @@ -339,7 +339,7 @@ public class MemberCommonServiceImpl extends BaseServiceImpl implement dao().insert(userRole); } // 杭医特有,其他学校请删除 - record.setPreparedBy("会员"); +// record.setPreparedBy("会员"); } else { // if (record.getIsExitActivityMemberScope() != null && record.getIsExitActivityMemberScope()) { // dao().clear(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 4a00be9..df0fd7f 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -24,7 +24,7 @@ ${LOG_HOME}/info-%d{yyyy-MM-dd}.log - 30 + 180 @@ -41,7 +41,7 @@ ${LOG_HOME}/error-%d{yyyy-MM-dd}.log - 30 + 180 diff --git a/src/main/resources/views/platform/zhgh/activity/sports/applyUser/deleteUser.js b/src/main/resources/views/platform/zhgh/activity/sports/applyUser/deleteUser.js index 809aa54..964aeb2 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/applyUser/deleteUser.js +++ b/src/main/resources/views/platform/zhgh/activity/sports/applyUser/deleteUser.js @@ -11,7 +11,7 @@ var ACTIVITY_SPORTS_DELETE_USER = { @sort-change="pageOrder"ref="multipleTable" class="vi-table" row-key="id" style="width: 100%;" v-loading="tableLoading"> moment(this.rowData.applyEndTime).valueOf()) { + this.notifyWarning("此活动不在报名时间内") + return + } if (!id && !this.selection.length) { this.$notify({ title: "警告", diff --git a/src/main/resources/views/platform/zhgh/activity/sports/reading/index.html b/src/main/resources/views/platform/zhgh/activity/sports/reading/index.html index f4ae409..5a76171 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/reading/index.html +++ b/src/main/resources/views/platform/zhgh/activity/sports/reading/index.html @@ -282,6 +282,8 @@ layout("/layouts/platform.html"){ + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js index 1ed6e74..8cddcc9 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js @@ -13,8 +13,8 @@ const MEMBER_CHANGE = { - - + + @@ -101,7 +101,22 @@ const MEMBER_CHANGE = { :disabled="allowFields('personType')" style="width: 100%"> - + + + + + + + + + + + @@ -249,6 +264,9 @@ const MEMBER_CHANGE = { } 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位) callback(); + } else if (/^[A-Z]\d{6,9}$/.test(value)) { + // 香港身份证号码格式正确(8位) + callback(); } else { // 格式错误,返回错误信息 callback(new Error("身份证号码格式错误")); @@ -371,6 +389,7 @@ const MEMBER_CHANGE = { campus, userState, personType, + postDoctoralJoinDate, preparedBy, idCard, mobile, @@ -395,7 +414,9 @@ const MEMBER_CHANGE = { this.$set(this.formData, "academicDegree", academicDegree) this.$set(this.formData, "campus", campus) this.$set(this.formData, "userState", userState) + this.$set(this.formData, "userState", userState) this.$set(this.formData, "personType", personType) + this.$set(this.formData, "postDoctoralJoinDate", postDoctoralJoinDate) this.$set(this.formData, "preparedBy", preparedBy) this.$set(this.formData, "unitName", unit ? unit.name : null) this.$set(this.formData, "unitId", unit ? unit.id : null) diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html index 8c89d20..26337e9 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html @@ -402,6 +402,9 @@ layout("/layouts/platform.html"){ } }, getChangeTypes(changeTypes){ + if (!changeTypes || changeTypes === 'undefined' || changeTypes === 'null') { + return null; + } const changeTypesList = JSON.parse(changeTypes) if (changeTypesList) { if (!changeTypesList || changeTypesList.length === 0 || !this.changeTypeData || this.changeTypeData.length === 0) return null diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html index 5c7dbc6..db471a5 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html @@ -58,7 +58,7 @@ layout("/layouts/platform.html"){ label="操作" width="100px" fixed="right"> diff --git a/src/main/resources/views/platform/zhghh5/scan/index.html b/src/main/resources/views/platform/zhghh5/scan/index.html index 96e3ee5..45beba1 100644 --- a/src/main/resources/views/platform/zhghh5/scan/index.html +++ b/src/main/resources/views/platform/zhghh5/scan/index.html @@ -243,23 +243,26 @@ layout("/layouts/platform_h5.html"){ bizType: bizType, params: JSON.stringify({ userId: userId, handle: false }), }) - } catch (e) { this.result = { code: 99, msg: '请使用智慧工会系统身份二维码' } + } finally { this.resultVisible = true } }, - resultConfirm() { + async resultConfirm() { try { - const { bizType, userId } = JSON.parse(this.decodedText) - this.$axios.post('/platform/scan/handle', { + const {bizType, userId} = JSON.parse(this.decodedText) + const res = await this.$axios.post('/platform/scan/handle', { bizType: bizType, - params: JSON.stringify({ userId: userId, handle: true }), + params: JSON.stringify({userId: userId, handle: true}), }) + if(res.code === 0) { + this.$toast.success(res.msg) + } } catch (e) { } finally { @@ -270,7 +273,7 @@ layout("/layouts/platform_h5.html"){ }, async created() { - + await this.initCamera() }, beforeDestroy() { diff --git a/src/main/resources/views/platform/zhghh5/welfare/address/list.html b/src/main/resources/views/platform/zhghh5/welfare/address/list.html index 04832e9..49827f2 100644 --- a/src/main/resources/views/platform/zhghh5/welfare/address/list.html +++ b/src/main/resources/views/platform/zhghh5/welfare/address/list.html @@ -6,6 +6,12 @@ layout("/layouts/platform_h5.html"){ + users = dao.query(Sys_user.class, Cnd.NEW()); - String pwd = "1"; + String pwd = "@dd3s#3618!"; for (Sys_user user : users) { user.setSalt(R.UU32()); user.setPassword(PwdUtil.getPassword(pwd, user.getSalt()));