From bce946e6519d651d57c5aa7345c211c328d2fdfe Mon Sep 17 00:00:00 2001 From: Paidax Date: Thu, 20 Feb 2025 13:56:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/v/nutz/base/utils/MsgApi.java | 92 +- .../java/io/v/nutz/sys/models/Sys_dict.java | 4 + .../java/io/v/nutz/sys/models/Sys_user.java | 24 +- .../service/impl/UserPartUpServiceImpl.java | 67 +- .../data/handle/DataImportPluginHandle.java | 2 +- .../v/nutz/zhgh/data/model/UserHistory.java | 30 +- .../service/impl/SourceUserServiceImpl.java | 543 +++++++--- .../nutz/zhgh/data/vo/SourceUserCommonVo.java | 39 + .../jdh/controller/db/JdhDbGlController.java | 3 - .../member/constant/MemberApplyState.java | 35 - .../constant/MemberChangeApplyState.java | 35 - .../member/constant/MemberChangeOrigin.java | 28 - .../constant/MemberChangeRecordMode.java | 22 - .../zhgh/member/constant/MemberOrigin.java | 22 - .../zhgh/member/constant/MemberStatus.java | 55 -- .../apply/MemberApplyAuditController.java | 173 ---- .../apply/MemberApplyController.java | 272 ----- .../MemberChangeApplyAuditController.java | 170 ---- .../change/MemberChangeApplyController.java | 123 --- .../member/handle/MemberApplyAuditHandle.java | 181 ---- .../handle/MemberChangeAuditHandle.java | 170 ---- .../member/handle/MemberChangeHandle.java | 227 ----- .../zhgh/member/model/MemberApplyRecord.java | 76 -- .../zhgh/member/model/MemberChangeRecord.java | 184 ---- .../zhgh/member/service/MemberService.java | 44 - .../service/impl/MemberServiceImpl.java | 118 --- .../member/MemberAuditUnionController.java | 112 --- .../member/MemberChangeAuditController.java | 31 - .../mobile/member/MemberMobileController.java | 4 +- .../controller/MApplyUserAuditController.java | 2 +- ...heJiangMutualInsuranceQueryController.java | 9 - ...heJiangMutualInsuranceUserServiceImpl.java | 2 +- .../{ => staffmanage}/member/MemberMode.java | 2 +- .../{ => staffmanage}/member/UserMode.java | 8 +- .../member/WelfareMemberMode.java | 2 +- .../member/constant/MemberChangeOrigin.java | 33 + .../member/constant/MemberChangeType.java | 36 + .../controller/MemberAgendaController.java | 48 +- .../controller/MemberCommonController.java | 139 +-- .../controller/MemberSelfAgentController.java | 12 +- ...MemberApplyBranchUnionAuditController.java | 166 ++++ .../apply/MemberApplyController.java | 121 +++ .../apply/MemberApplyMineController.java | 143 +++ ...MemberApplySchoolUnionAuditController.java | 161 +++ .../change/MemberChangeApplyController.java | 150 +++ ...emberChangeBranchUnionAuditController.java | 135 +++ .../change/MemberChangeManageController.java | 287 +++--- .../change/MemberChangeMineController.java | 149 +++ .../change/MemberChangeRecordsController.java | 34 +- ...emberChangeSchoolUnionAuditController.java | 137 +++ .../check/MemberCheckPersonalController.java | 4 +- .../check/MemberCheckSchoolController.java | 27 +- .../check/MemberCheckTaskController.java | 22 +- .../check/MemberCheckUnionController.java | 71 +- .../info/MemberBatchMakeController.java | 52 +- .../info/MemberDataManageController.java | 60 +- .../info/MemberGroupInfoController.java | 14 +- .../controller/info/MemberMakeController.java | 47 +- .../info/MemberPersonInfoController.java | 2 +- .../inquire/MemberAnalysisController.java | 6 +- .../inquire/MemberDataBoardController.java | 6 +- .../inquire/MemberHistoyController.java | 2 +- .../MemberInquireIntegrateController.java | 16 +- .../inquire/MemberStatisticsController.java | 2 +- .../inquire/MemberUserTypeController.java | 6 +- .../member/handle/MemberApplyToDoHandler.java | 166 ++-- .../handle/MemberChangeToDoHandler.java | 117 +-- .../member/job/MemberArchiveJob.java | 4 +- .../member/model/MemberApplyRecord.java | 220 +++++ .../member/model/MemberChangeRecord.java | 238 +++++ .../member/model/MemberCheckSelfTask.java | 2 +- .../member/model/MemberCheckTask.java | 2 +- .../member/model/MemberCheckUnionTask.java | 2 +- .../member/model/MemberHistory.java | 2 +- .../param/pageForm/MemberApplyPageForm.java | 54 + .../param/pageForm/MemberChangePageForm.java | 54 + .../service/MemberCheckPersonalService.java | 2 +- .../member/service/MemberCommonService.java | 99 ++ .../member/service/MemberHistoryService.java | 4 +- .../impl/MemberCheckPersonalServiceImpl.java | 4 +- .../service/impl/MemberCommonServiceImpl.java | 442 +++++++++ .../impl/MemberHistoryServiceImpl.java | 6 +- .../member/template/MemberTemp.java | 2 +- .../member/utils/MemberUtils.java | 43 +- .../controller/SingleUserController.java | 7 +- .../SingleUserStatisticsController.java | 4 +- .../single/service/SingleUserService.java | 2 +- .../service/impl/SingleUserServiceImpl.java | 4 +- .../SourceChangeConfigController.java | 83 ++ .../SourceChangeManageController.java | 153 +++ .../model/SourceChangeConfig.java | 79 ++ .../model/SourceChangeMiddleTable.java | 92 ++ .../param/pageform/SourceChangePageForm.java | 49 + .../service/SourceChangeManageService.java | 20 + .../impl/SourceChangeManageServiceImpl.java | 195 ++++ .../SpecialStaffManageController.java | 10 +- .../specialstaff/model/SpecialStaff.java | 2 +- .../param/SpecialStaffPageForm.java | 2 +- .../service/SpecialStaffManageService.java | 6 +- .../impl/SpecialStaffManageServiceImpl.java | 8 +- .../specialstaff/vo/SpecialStaffVo.java | 2 +- .../controller/ThirtyTeachController.java | 5 +- .../thirtyteach/template/ThirtyTeachTemp.java | 2 +- .../controller/WelfareAgendaController.java | 8 +- .../controller/WelfareCommonController.java | 6 +- .../WelfareMemberAdjustmentController.java | 61 +- ...lfareMemberChangeApplyAuditController.java | 17 +- .../WelfareMemberMangeController.java | 6 +- .../WelfareSelfAgentController.java | 9 +- .../check/WelfareCheckPersonalController.java | 2 +- .../WelfareMemberCheckSchoolController.java | 26 +- .../WelfareMemberCheckTaskController.java | 19 +- .../WelfareMemberCheckUnionController.java | 151 ++- .../handle/WelfareMemberApplyAuditHandle.java | 3 +- .../controller/rxdj/RxdjPlanController.java | 2 +- .../static/assets/platform/css/common.css | 81 +- .../assets/platform/js/util/commonUtil.js | 68 ++ .../components/member/MemChangeApply.vue | 6 +- .../static/components/member/MemberInfo.vue | 10 +- .../components/plugins/UserDataScope.vue | 4 +- .../static/components/plugins/UserScope.vue | 4 +- .../resources/static/components/sign/sign.vue | 4 +- .../userpartupdate/UserDataPartUpSet.vue | 4 +- .../userpartupdate/UserPartUpdateSet.vue | 4 +- .../resources/views/layouts/platform.html | 3 +- .../mobile/member/apply/sbumit/index.html | 15 + .../activity/basic/ActivityScope.html | 4 +- .../platform/activity/basic/ActivityUser.html | 4 +- .../views/platform/blessing/blessingUser.html | 4 +- .../views/platform/data/user/SourceUser.html | 4 +- .../views/platform/data/user/UpdateUser.html | 4 +- .../platform/healthCheckup/projectMange.html | 6 +- .../views/platform/jdh/db/audit.html | 2 +- .../resources/views/platform/jdh/db/push.html | 2 +- .../member/apply/branchUnionAudit/index.html | 205 ++++ .../member/apply/common/commonQuery.js | 90 ++ .../apply/common/memberApplyAuditInfo.js | 109 ++ .../views/platform/member/apply/index.html | 546 ---------- .../platform/member/apply/mine/index.html | 126 +++ .../member/apply/schoolUnionAudit/index.html | 237 +++++ .../platform/member/apply/submit/index.html | 325 ++++++ .../views/platform/member/change/Manage.html | 10 +- .../views/platform/member/change/Records.html | 4 +- .../platform/member/change/audit/Layout.html | 4 +- .../member/change/branchUnionAudit/index.html | 235 +++++ .../member/change/common/commonQuery.js | 90 ++ .../change/common/memberAllChangeInfo.js | 103 ++ .../member/change/common/memberChange.js | 492 +++++++++ .../change/common/memberChangeAuditInfo.js | 117 +++ .../platform/member/change/manage/index.html | 933 ++++++++++++++++++ .../platform/member/change/mine/index.html | 148 +++ .../platform/member/change/record/index.html | 352 +++++++ .../member/change/schoolUnionAudit/index.html | 235 +++++ .../platform/member/change/submit/index.html | 60 ++ .../views/platform/member/check/union.html | 4 +- .../platform/member/common/memberInfo.js | 72 ++ .../views/platform/member/info/BatchMake.html | 4 +- .../views/platform/member/info/GroupInfo.html | 4 +- .../views/platform/member/info/Make.html | 4 +- .../platform/member/info/dataManage.html | 10 +- .../platform/member/inquire/History.html | 4 +- .../platform/member/inquire/Integrate.html | 23 +- .../platform/member/inquire/Statistics.html | 4 +- .../platform/member/inquire/usertype.html | 4 +- .../resources/views/platform/single/list.html | 8 +- .../views/platform/single/statistics.html | 2 +- .../sourcechange/config/componentFrame.js | 77 ++ .../platform/sourcechange/config/index.html | 247 +++++ .../sourcechange/manage/commonQuery.js | 148 +++ .../platform/sourcechange/manage/index.html | 231 +++++ .../sourcechange/manage/userChangeInfo.js | 440 +++++++++ .../platform/specialstaff/manage/index.html | 4 +- .../platform/sys/club/applyIn/schoolsh.html | 4 +- .../views/platform/sys/club/applyIn/shrt.html | 4 +- .../platform/sys/club/applyIn/yearAudit.html | 4 +- .../platform/sys/club/clubUserCount.html | 2 +- .../sys/club/manage/clubInfoManage.html | 4 +- .../views/platform/sys/dict/index.html | 10 + .../views/platform/sys/user/index.html | 10 +- .../views/platform/thirtyteach/manage.html | 4 +- .../platform/welfare/list/ListMange.html | 4 +- .../platform/welfare/list/ListSummary.html | 6 +- .../platform/welfare/member/Adjustment.html | 4 +- .../platform/welfare/member/AuditSchool.html | 6 +- .../platform/welfare/member/MemberMange.html | 4 +- .../platform/welfare/member/check/union.html | 4 +- .../welfare/project/ProjectMange.html | 4 +- .../platform/welfare/statistics/single.html | 2 +- src/test/java/io/v/nutz/JugTest.java | 252 +---- 189 files changed, 9732 insertions(+), 4037 deletions(-) create mode 100644 src/main/java/io/v/nutz/zhgh/data/vo/SourceUserCommonVo.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeRecordMode.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/constant/MemberOrigin.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/service/MemberService.java delete mode 100644 src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java delete mode 100644 src/main/java/io/v/nutz/zhgh/mobile/member/MemberAuditUnionController.java delete mode 100644 src/main/java/io/v/nutz/zhgh/mobile/member/MemberChangeAuditController.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/MemberMode.java (89%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/UserMode.java (92%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/WelfareMemberMode.java (88%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeOrigin.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeType.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/MemberAgendaController.java (61%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/MemberCommonController.java (68%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/MemberSelfAgentController.java (82%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/change/MemberChangeManageController.java (75%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/change/MemberChangeRecordsController.java (76%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/check/MemberCheckPersonalController.java (98%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/check/MemberCheckSchoolController.java (81%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/check/MemberCheckTaskController.java (87%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/check/MemberCheckUnionController.java (77%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/info/MemberBatchMakeController.java (84%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/info/MemberDataManageController.java (88%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/info/MemberGroupInfoController.java (96%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/info/MemberMakeController.java (77%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/info/MemberPersonInfoController.java (89%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/inquire/MemberAnalysisController.java (98%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/inquire/MemberDataBoardController.java (96%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/inquire/MemberHistoyController.java (98%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/inquire/MemberInquireIntegrateController.java (97%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/inquire/MemberStatisticsController.java (99%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/controller/inquire/MemberUserTypeController.java (98%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/handle/MemberApplyToDoHandler.java (56%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/handle/MemberChangeToDoHandler.java (50%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/job/MemberArchiveJob.java (88%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberApplyRecord.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/model/MemberCheckSelfTask.java (95%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/model/MemberCheckTask.java (97%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/model/MemberCheckUnionTask.java (95%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/model/MemberHistory.java (93%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberApplyPageForm.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberChangePageForm.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/service/MemberCheckPersonalService.java (79%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCommonService.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/service/MemberHistoryService.java (67%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/service/impl/MemberCheckPersonalServiceImpl.java (76%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/service/impl/MemberHistoryServiceImpl.java (91%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/template/MemberTemp.java (93%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/member/utils/MemberUtils.java (76%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/single/controller/SingleUserController.java (97%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/single/controller/SingleUserStatisticsController.java (97%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/single/service/SingleUserService.java (95%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/single/service/impl/SingleUserServiceImpl.java (99%) create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeConfigController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeConfig.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeMiddleTable.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/param/pageform/SourceChangePageForm.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/SourceChangeManageService.java create mode 100644 src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/specialstaff/controller/SpecialStaffManageController.java (94%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/specialstaff/model/SpecialStaff.java (98%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/specialstaff/param/SpecialStaffPageForm.java (90%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/specialstaff/service/SpecialStaffManageService.java (78%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/specialstaff/service/impl/SpecialStaffManageServiceImpl.java (94%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/specialstaff/vo/SpecialStaffVo.java (95%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/thirtyteach/controller/ThirtyTeachController.java (99%) rename src/main/java/io/v/nutz/zhgh/{ => staffmanage}/thirtyteach/template/ThirtyTeachTemp.java (93%) create mode 100644 src/main/resources/static/assets/platform/js/util/commonUtil.js create mode 100644 src/main/resources/views/mobile/member/apply/sbumit/index.html create mode 100644 src/main/resources/views/platform/member/apply/branchUnionAudit/index.html create mode 100644 src/main/resources/views/platform/member/apply/common/commonQuery.js create mode 100644 src/main/resources/views/platform/member/apply/common/memberApplyAuditInfo.js delete mode 100644 src/main/resources/views/platform/member/apply/index.html create mode 100644 src/main/resources/views/platform/member/apply/mine/index.html create mode 100644 src/main/resources/views/platform/member/apply/schoolUnionAudit/index.html create mode 100644 src/main/resources/views/platform/member/apply/submit/index.html create mode 100644 src/main/resources/views/platform/member/change/branchUnionAudit/index.html create mode 100644 src/main/resources/views/platform/member/change/common/commonQuery.js create mode 100644 src/main/resources/views/platform/member/change/common/memberAllChangeInfo.js create mode 100644 src/main/resources/views/platform/member/change/common/memberChange.js create mode 100644 src/main/resources/views/platform/member/change/common/memberChangeAuditInfo.js create mode 100644 src/main/resources/views/platform/member/change/manage/index.html create mode 100644 src/main/resources/views/platform/member/change/mine/index.html create mode 100644 src/main/resources/views/platform/member/change/record/index.html create mode 100644 src/main/resources/views/platform/member/change/schoolUnionAudit/index.html create mode 100644 src/main/resources/views/platform/member/change/submit/index.html create mode 100644 src/main/resources/views/platform/member/common/memberInfo.js create mode 100644 src/main/resources/views/platform/sourcechange/config/componentFrame.js create mode 100644 src/main/resources/views/platform/sourcechange/config/index.html create mode 100644 src/main/resources/views/platform/sourcechange/manage/commonQuery.js create mode 100644 src/main/resources/views/platform/sourcechange/manage/index.html create mode 100644 src/main/resources/views/platform/sourcechange/manage/userChangeInfo.js diff --git a/src/main/java/io/v/nutz/base/utils/MsgApi.java b/src/main/java/io/v/nutz/base/utils/MsgApi.java index c2cb513..1334043 100644 --- a/src/main/java/io/v/nutz/base/utils/MsgApi.java +++ b/src/main/java/io/v/nutz/base/utils/MsgApi.java @@ -47,57 +47,57 @@ public class MsgApi { /** - * @param channels 推送渠道 (INNER:站内消息; SMS:短信; Mail:邮件; WeChat:微信; DingTalk:钉钉;同时推送多个渠道用英文逗号分隔 ) - * @param loginNameStr 字符串,多个工号用英文逗号分隔 "," - * @param mtype 消息类型; 0: 图文 1: 文字 2: 外链 - * @param title 标题 - * @param content 内容 - * @param imageUrl 图片URL + * @param channels 推送渠道 (INNER:站内消息; SMS:短信; Mail:邮件; WeChat:微信; DingTalk:钉钉;同时推送多个渠道用英文逗号分隔 ) + * @param loginNameStr 字符串,多个工号用英文逗号分隔 "," + * @param mtype 消息类型; 0: 图文 1: 文字 2: 外链 + * @param title 标题 + * @param content 内容 + * @param imageUrl 图片URL * @author zhf * @description */ public void sendMsg(List channels, String loginNameStr, Integer mtype, String title, String content, String imageUrl,String link) { try { - if (!Globals.MyConfig.getBoolean("SendMsg")) { - log.info("发送失败,消息暂未开启!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - return; - } - - if (Globals.isEnv(Env.dev)) { - log.info("开发模式不允许发送短信!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - return; - } - - if (StrUtil.isBlank(title)||StrUtil.isBlank(content) ||Lang.isEmpty(channels) || Lang.isEmpty(loginNameStr)) { - log.info("发送失败,缺少需要参数请检查!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); - return; - } - - String msgToken = getMsgToken(); - NutMap map = new NutMap(); - map.put("channel", String.join(",", channels)); - //推送范围(1:普通模式;2:全体教师;3:全体学生;4:全体人员) - map.put("objScope", 1); - map.put("objIds", loginNameStr); - map.put("mtype", mtype); - map.put("sendStatus", 1); - map.put("title", title); - map.put("content", content); - map.put("imageUrl", imageUrl); - map.put("link", link); - - HttpRequest request = HttpUtil.createPost(MSG_API) - .header("token", msgToken) - .body(Json.toJson(map)); - JSONObject jsonObject = JSON.parseObject(request.execute().body()); - int status = jsonObject.getInteger("code"); - - if (status == 200) { - log.info("发送成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); - } else { - log.info("发送失败>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); - throw new RuntimeException("Message sending failed with status code: " + status + ", Message: " + jsonObject.getString("message")); - } +// if (!Globals.MyConfig.getBoolean("SendMsg")) { +// log.info("发送失败,消息暂未开启!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); +// return; +// } +// +// if (Globals.isEnv(Env.dev)) { +// log.info("开发模式不允许发送短信!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); +// return; +// } +// +// if (StrUtil.isBlank(title)||StrUtil.isBlank(content) ||Lang.isEmpty(channels) || Lang.isEmpty(loginNameStr)) { +// log.info("发送失败,缺少需要参数请检查!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); +// return; +// } +// +// String msgToken = getMsgToken(); +// NutMap map = new NutMap(); +// map.put("channel", String.join(",", channels)); +// //推送范围(1:普通模式;2:全体教师;3:全体学生;4:全体人员) +// map.put("objScope", 1); +// map.put("objIds", loginNameStr); +// map.put("mtype", mtype); +// map.put("sendStatus", 1); +// map.put("title", title); +// map.put("content", content); +// map.put("imageUrl", imageUrl); +// map.put("link", link); +// +// HttpRequest request = HttpUtil.createPost(MSG_API) +// .header("token", msgToken) +// .body(Json.toJson(map)); +// JSONObject jsonObject = JSON.parseObject(request.execute().body()); +// int status = jsonObject.getInteger("code"); +// +// if (status == 200) { +// log.info("发送成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); +// } else { +// log.info("发送失败>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); +// throw new RuntimeException("Message sending failed with status code: " + status + ", Message: " + jsonObject.getString("message")); +// } } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/io/v/nutz/sys/models/Sys_dict.java b/src/main/java/io/v/nutz/sys/models/Sys_dict.java index ea1c0ee..26a4080 100644 --- a/src/main/java/io/v/nutz/sys/models/Sys_dict.java +++ b/src/main/java/io/v/nutz/sys/models/Sys_dict.java @@ -63,4 +63,8 @@ public class Sys_dict extends BaseModel implements Serializable { @Comment("有子节点") private boolean hasChildren; + @Column + @Comment("特殊备注") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String remark; } diff --git a/src/main/java/io/v/nutz/sys/models/Sys_user.java b/src/main/java/io/v/nutz/sys/models/Sys_user.java index a1c68bf..3970300 100644 --- a/src/main/java/io/v/nutz/sys/models/Sys_user.java +++ b/src/main/java/io/v/nutz/sys/models/Sys_user.java @@ -1,11 +1,10 @@ package io.v.nutz.sys.models; import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.hutool.json.JSONObject; import io.v.nutz.base.model.BaseModel; -import io.v.nutz.zhgh.member.MemberMode; -import io.v.nutz.zhgh.member.WelfareMemberMode; -import io.v.nutz.zhgh.member.constant.MemberOrigin; -import io.v.nutz.zhgh.member.constant.MemberStatus; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.WelfareMemberMode; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -282,7 +281,7 @@ public class Sys_user extends BaseModel implements Serializable { private Date welfareMemberJoinTime; /** - * @see MemberOrigin + * @see */ @Column @Comment("会员来源(1 个人申请 2 补录 3 批量设置 4 其他)") @@ -290,7 +289,7 @@ public class Sys_user extends BaseModel implements Serializable { private Integer memberOrigin; /** - * @see MemberStatus + * @see */ @Column @Comment("会员状态") @@ -378,22 +377,13 @@ public class Sys_user extends BaseModel implements Serializable { private String vita; /** - * 成员 + * 家庭成员 * - * @see Family */ @Column @Comment("家庭成员") @ColDefine(type = ColType.MYSQL_JSON) - private List family; - - @Data - public static class Family implements Serializable { - private String relation; - private String name; - private String unit; - private String remark; - } + private List families; /** * end diff --git a/src/main/java/io/v/nutz/web/commons/controller/userpartupdate/service/impl/UserPartUpServiceImpl.java b/src/main/java/io/v/nutz/web/commons/controller/userpartupdate/service/impl/UserPartUpServiceImpl.java index 3d34c14..f930396 100644 --- a/src/main/java/io/v/nutz/web/commons/controller/userpartupdate/service/impl/UserPartUpServiceImpl.java +++ b/src/main/java/io/v/nutz/web/commons/controller/userpartupdate/service/impl/UserPartUpServiceImpl.java @@ -85,41 +85,44 @@ public class UserPartUpServiceImpl extends ViServiceImpl implements @Aop(TransAop.READ_COMMITTED) public void renewUserState() { //在职状态 - Sql userStateSql = Sqls.create("select userState from `user` where userState is not null and userState !='' group by userState"); - List userStates = sysDictService.listMap(userStateSql).stream().map(v -> v.getString("userState")).collect(Collectors.toList()); - List userStateList = sysDictService.getSubListByCode("UserState"); - - //dict中的在职状态,在user表中没有,这一部分删除 - List deleteUserState = userStateList.stream().filter(v -> !userStates.contains(v.getName())).collect(Collectors.toList()); - List deleteUserStateIds = deleteUserState.stream().map(Sys_dict::getId).collect(Collectors.toList()); - - if (Lang.isNotEmpty(deleteUserStateIds)) { - sysDictService.delete(deleteUserStateIds); - } - - //获取删除dict后的在职状态 - List deleteRenewUserStateList = sysDictService.getSubListByCode("UserState"); - Sys_dict userState = deleteRenewUserStateList.stream().findFirst().orElse(null); - assert userState != null; - //获取在职状态名 - List dictNameList = deleteRenewUserStateList.stream().map(Sys_dict::getName).collect(Collectors.toList()); - //如果user表中有在职状态, 删除userState后的dict表中没有,就需要新增 - List insertUserStateList = userStates.stream().filter(v -> !dictNameList.contains(v)).collect(Collectors.toList()); - - insertUserStateList = insertUserStateList.stream().distinct().collect(Collectors.toList()); - if (Lang.isNotEmpty(insertUserStateList)) { - for (String item : insertUserStateList) { - Sys_dict dict = new Sys_dict(); - dict.setCode(item); - dict.setName(item); - sysDictService.save(dict, userState.getParentId()); - } - } +// Sql userStateSql = Sqls.create("select userState from `user` where userState is not null and userState !='' group by userState"); +// List userStates = sysDictService.listMap(userStateSql).stream().map(v -> v.getString("userState")).collect(Collectors.toList()); +// List userStateList = sysDictService.getSubListByCode("UserState"); +// +// //dict中的在职状态,在user表中没有,这一部分删除 +// List deleteUserState = userStateList.stream().filter(v -> !userStates.contains(v.getName())).collect(Collectors.toList()); +// List deleteUserStateIds = deleteUserState.stream().map(Sys_dict::getId).collect(Collectors.toList()); +// +// if (Lang.isNotEmpty(deleteUserStateIds)) { +// sysDictService.delete(deleteUserStateIds); +// } +// +// //获取删除dict后的在职状态 +// List deleteRenewUserStateList = sysDictService.getSubListByCode("UserState"); +// Sys_dict userState = deleteRenewUserStateList.stream().findFirst().orElse(null); +// assert userState != null; +// //获取在职状态名 +// List dictNameList = deleteRenewUserStateList.stream().map(Sys_dict::getName).collect(Collectors.toList()); +// //如果user表中有在职状态, 删除userState后的dict表中没有,就需要新增 +// List insertUserStateList = userStates.stream().filter(v -> !dictNameList.contains(v)).collect(Collectors.toList()); +// +// insertUserStateList = insertUserStateList.stream().distinct().collect(Collectors.toList()); +// if (Lang.isNotEmpty(insertUserStateList)) { +// for (String item : insertUserStateList) { +// Sys_dict dict = new Sys_dict(); +// dict.setCode(item); +// dict.setName(item); +// sysDictService.save(dict, userState.getParentId()); +// } +// } //人员类型 Sql personTypeSql = Sqls.create("select personType from `user` where personType is not null and personType !='' group by personType"); List personTypes = sysDictService.listMap(personTypeSql).stream().map(v -> v.getString("personType")).collect(Collectors.toList()); - List personTypeList = sysDictService.getSubListByCode("UserType"); + List personTypeList = sysDictService.getSubListByCode("PERSON_TYPE"); + if (Lang.isEmpty(personTypeList)) { + return; + } //dict中的personType,在user表中没有,这一部分删除 List deletePersonType = personTypeList.stream().filter(v -> !personTypes.contains(v.getName())).collect(Collectors.toList()); @@ -130,7 +133,7 @@ public class UserPartUpServiceImpl extends ViServiceImpl implements } //获取删除dict后的personType - List deleteRenewPersonTypeList = sysDictService.getSubListByCode("UserType"); + List deleteRenewPersonTypeList = sysDictService.getSubListByCode("PERSON_TYPE"); Sys_dict personType = deleteRenewPersonTypeList.stream().findFirst().orElse(null); assert personType != null; //获取personType diff --git a/src/main/java/io/v/nutz/zhgh/data/handle/DataImportPluginHandle.java b/src/main/java/io/v/nutz/zhgh/data/handle/DataImportPluginHandle.java index e9e7f2b..001b2ff 100644 --- a/src/main/java/io/v/nutz/zhgh/data/handle/DataImportPluginHandle.java +++ b/src/main/java/io/v/nutz/zhgh/data/handle/DataImportPluginHandle.java @@ -1,7 +1,7 @@ package io.v.nutz.zhgh.data.handle; import io.v.nutz.base.annontation.SelectEnum; -import io.v.nutz.zhgh.member.UserMode; +import io.v.nutz.zhgh.staffmanage.member.UserMode; import lombok.Getter; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.util.ByteSource; diff --git a/src/main/java/io/v/nutz/zhgh/data/model/UserHistory.java b/src/main/java/io/v/nutz/zhgh/data/model/UserHistory.java index 2f88fc4..9dcc46c 100644 --- a/src/main/java/io/v/nutz/zhgh/data/model/UserHistory.java +++ b/src/main/java/io/v/nutz/zhgh/data/model/UserHistory.java @@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; +import org.nutz.lang.util.NutMap; import java.util.Date; import java.util.List; @@ -37,26 +38,21 @@ public class UserHistory extends Sys_user { @Column @Comment("更新时间") + @ColDefine(type = ColType.DATETIME) private Date changeTime; /** * @see UserChangeType */ - @Column - @Comment("变更类型") - private int changeType; - @Column @Comment("变更类型(多种)") - private List changeTypes; + @ColDefine(type = ColType.MYSQL_JSON) + private List changeTypes; @Column @Comment("变更来源") - private Integer changeOrigin; - - @Column - @Comment("变更人") - private String changeOperator; + @ColDefine(type = ColType.VARCHAR, width = 50) + private String changeOrigin; @Column @ColDefine(type = ColType.VARCHAR, width = 100) @@ -65,10 +61,16 @@ public class UserHistory extends Sys_user { @Column @Comment("会员变更表记录id") - private String memberChangeRecordId; + @ColDefine(type = ColType.VARCHAR, width = 32) + private String recordId; @Column - @ColDefine(type = ColType.VARCHAR, width = 32) - @Comment("上一次历史记录id") - private String lastHistoryId; + @Comment("详细变更记录,用于查询、列表展示") + @ColDefine(type = ColType.MYSQL_JSON) + private List changeInfos; + + @Column + @Comment("详细变更记录,文本类型,可用于导出") + @ColDefine(type = ColType.TEXT) + private String changeInfosStr; } diff --git a/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java b/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java index 67fbbe0..9135273 100644 --- a/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java @@ -1,20 +1,27 @@ package io.v.nutz.zhgh.data.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HtmlUtil; import io.v.nutz.base.utils.ManyAddOrRenewUtil; import io.v.nutz.base.utils.Roles; +import io.v.nutz.sys.models.Sys_dict; import io.v.nutz.sys.models.Sys_user_role; +import io.v.nutz.sys.services.SysDictService; import io.v.nutz.sys.services.SysUserRoleService; import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.activity.models.ActivityUserScope; import io.v.nutz.zhgh.data.constant.SourceData; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.data.model.UserSource; import io.v.nutz.zhgh.data.service.HistoryUserService; import io.v.nutz.zhgh.data.service.SourceUserService; -import io.v.nutz.zhgh.member.UserMode; +import io.v.nutz.zhgh.data.vo.SourceUserCommonVo; +import io.v.nutz.zhgh.staffmanage.member.UserMode; import io.v.nutz.base.service.AsyncService; import io.v.nutz.base.service.impl.ViServiceImpl; import io.v.nutz.sys.models.Sys_user; @@ -22,7 +29,11 @@ import io.v.nutz.sys.services.SysRoleService; import io.v.nutz.sys.services.SysUserService; import io.v.nutz.web.commons.controller.userpartupdate.models.UserPartUp; import io.v.nutz.web.commons.controller.userpartupdate.service.UserPatUpService; -import io.v.nutz.zhgh.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeConfig; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeMiddleTable; import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; @@ -47,6 +58,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -60,8 +72,6 @@ public class SourceUserServiceImpl extends ViServiceImpl implements super(dao); } - // 是会员的人员类型 - private final List MEMBER_PERSON_TYPE = List.of("事业编制(员额)", "事业编制", "校聘编外", "同工同酬", "学校编制", "博士后(统招)"); @Inject private AsyncService asyncService; @@ -74,8 +84,12 @@ public class SourceUserServiceImpl extends ViServiceImpl implements @Inject private SysRoleService sysRoleService; @Inject + private SysDictService sysDictService; + @Inject private SysUserRoleService sysUserRoleService; @Inject + private MemberCommonService memberCommonService; + @Inject private ManyAddOrRenewUtil manyAddOrRenewUtil; @Override @@ -94,13 +108,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements @Aop(TransAop.READ_COMMITTED) public void updateSysUser(String pullTime, String sourceType, String[] columnNames, String isUpSet, String partGroupId, boolean isInvert) { try { - List users = sysUserService.query(Cnd.where("loginname", "is not", null)); - Map userMap = users.stream().collect(Collectors.toMap(sys_user -> sys_user.getLoginname().toLowerCase(), sys_user -> sys_user)); - List sources = new ArrayList<>(); - - List histories = new CopyOnWriteArrayList<>(); - Map userPartMap = new HashMap<>(); if (Strings.isNotBlank(partGroupId)) { //如果为true,更新组别之外人员 @@ -117,6 +125,10 @@ public class SourceUserServiceImpl extends ViServiceImpl implements sources = query(Cnd.where("pullTime", "=", pullTime).groupBy("loginname")); } + // 查询所有用户,判断是否需要更新 + List users = sysUserService.query(Cnd.where("loginname", "is not", null)); + Map userMap = users.stream().collect(Collectors.toMap(Sys_user::getLoginname, user -> user)); + AtomicReference filterColumnDao = new AtomicReference<>(dao()); // 全部更新时,要修改的用户表 @@ -125,10 +137,35 @@ public class SourceUserServiceImpl extends ViServiceImpl implements List needInitUserList = new CopyOnWriteArrayList<>(); // 添加角色的用户 List userRoles = new CopyOnWriteArrayList<>(); + + // 人员更新配置的对象 + SourceChangeConfig changeConfig = dao().fetch(SourceChangeConfig.class, Cnd.NEW()); + + boolean isAuto = "automatic".equals(changeConfig.getSourceChangeType()); + + // 存储人员变更记录的表 + List histories = new CopyOnWriteArrayList<>(); + // 如果是手动更新暂时存储到SourceChangeMiddleTable表 + List middleTables = new CopyOnWriteArrayList<>(); + + // 获取人员变更字段,用于存储记录 + List dictList = sysDictService.getSubListByCode("ALLOW_CHANGE_FIELDS"); + Set allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet()); + allowChangeFieldNames.add("member"); + allowChangeFieldNames.add("welfareMember"); + Map dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); + dictMap.put("member", "会员状态"); + dictMap.put("welfareMember", "福利会员状态"); + // 添加会员角色 List addMemberUserIds = new CopyOnWriteArrayList<>(); // 移除会员角色 List deleteMemberUserIds = new CopyOnWriteArrayList<>(); + // 添加福利会员角色的用户id + List addWelfareMemberUserIds = new CopyOnWriteArrayList<>(); + // 移除福利会员角色的用户id + List deleteWelfareMemberUserIds = new CopyOnWriteArrayList<>(); + // 创建一个固定大小的线程池 可以根据服务器性能调整线程池大小 int numberOfThreads = Runtime.getRuntime().availableProcessors() * 2; @@ -148,30 +185,20 @@ public class SourceUserServiceImpl extends ViServiceImpl implements source.setWelfareMember(null); Sys_user user = userMap.get(source.getLoginname().toLowerCase()); + if (isAuto) { + checkMemberOrWelfareMember(changeConfig, source, user, addMemberUserIds, deleteMemberUserIds, + addWelfareMemberUserIds, deleteWelfareMemberUserIds); + } else { + if (user != null) { + source.setMember(user.getMember()); + source.setWelfareMember(user.getWelfareMember()); + } + } + 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) { @@ -194,17 +221,24 @@ public class SourceUserServiceImpl extends ViServiceImpl implements } } - List changeTypes = getChangeTypes(source, user, sourceType); - if (changeTypes.contains(UserChangeType.NEW)) { - user = UserMode.initUser(u); - needInitUserList.add(user); - Sys_user_role userRole = new Sys_user_role(); - userRole.setUserId(user.getId()); - userRole.setRoleId(Roles.PUBLIC); - userRoles.add(userRole); - histories.add(createUserHistory(user, changeTypes)); - } else if (changeTypes.size() > 0) { - histories.add(createUserHistory(user, changeTypes)); + if (isAuto) { + UserHistory history = createHistory(source, user, dictMap, allowChangeFieldNames); + if (Lang.isEmpty(history)) { + continue; + } + histories.add(history); + if (history.getChangeTypes().contains(MemberChangeType.NEW.getType())) { + needInitUserList.add(u); + } + } else { + SourceChangeMiddleTable table = createSourceChangeMiddleTable(source, user, dictMap, allowChangeFieldNames); + if (Lang.isEmpty(table)) { + continue; + } + middleTables.add(table); + if (table.getChangeTypes().contains(MemberChangeType.NEW.getType())) { + needInitUserList.add(u); + } } } }, Executors.newFixedThreadPool(numberOfThreads)); @@ -221,41 +255,37 @@ public class SourceUserServiceImpl extends ViServiceImpl implements sysUserRoleService.insert(userRoles); } - if ("all".equals(sourceType)) { - // 添加会员角色 - if (Lang.isNotEmpty(addMemberUserIds)) { - String memberRoleId = Roles.MEMBER; - List 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)); - } - } + // 添加会员 + addMemberUser(addMemberUserIds, changeConfig.getIsJoinMemberActivityScope()); + // 删除会员 + deleteMemberUser(deleteMemberUserIds, changeConfig.getIsDeleteMemberActivityScope()); -// Collection updateColumns = SourceData.USER_FIELD_RELATION.values(); + // 加入进行中的福利项目,暂时没写 - if ("part".equals(sourceType)) { - massUpdatesAsync(needDoUpdateList, true, filterColumnDao); - } else { - massUpdatesAsync(needDoUpdateList, false, null); - } // 历史记录表插入数据 - historyUserService.dao().fastInsert(histories); - // 人员状态及在职状态更新 - userPatUpService.renewUserState(); - // 修改不在人事库的人员,删除角色 + if ("automatic".equals(changeConfig.getSourceChangeType())) { + // 自动更新,修改数据表,存储历史记录 + if ("part".equals(sourceType)) { + massUpdatesAsync(needDoUpdateList, true, filterColumnDao); + } else { + massUpdatesAsync(needDoUpdateList, false, null); + } + + manyAddOrRenewUtil.asyncExecuteFastInsert(histories, 200); + // 人员状态及在职状态更新 + // 在职状态关乎变更类型,建议自己手动更新,不要使用自动更新功能,硬要使用,请点进 renewUserState 打开注释 + userPatUpService.renewUserState(); + + // 修改不在人事库的人员,删除角色 // userPatUpService.deleteNotInSourceUser(true); - //清除缓存 -// sysUserService.clearCache(); -// sysRoleService.clearCache(); + //清除缓存 + sysUserService.clearCache(); + sysRoleService.clearCache(); + + } else { + manyAddOrRenewUtil.asyncExecuteFastInsert(middleTables, 200); + } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); @@ -263,6 +293,315 @@ public class SourceUserServiceImpl extends ViServiceImpl implements } + /** + * 判断自动更新的会员和福利会员 + * @param config 人员更新的配置 + * @param source + * @param user + * @param addMemberUserIds + * @param deleteMemberUserIds + * @param addWelfareMemberUserIds + * @param deleteWelfareMemberUserIds + */ + private void checkMemberOrWelfareMember(SourceChangeConfig config, UserSource source, Sys_user user, + List addMemberUserIds, List deleteMemberUserIds, + List addWelfareMemberUserIds, List deleteWelfareMemberUserIds){ + if (config == null || config.getMemberSiftList() == null) { + return; + } + + config.getMemberSiftList().forEach(memberSift -> { + String siftName = memberSift.getSiftName(); + Object siftValue = memberSift.getSiftValue(); + boolean shouldAdd = false; + boolean shouldRemove = false; + + switch (siftName) { + case "userState": + if (siftValue instanceof List && source != null && source.getUserState() != null) { + List userStateList = (List) siftValue; + shouldAdd = userStateList.contains(source.getUserState()); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "personType": + if (siftValue instanceof List && source != null && source.getPersonType() != null) { + List personTypeList = (List) siftValue; + shouldAdd = personTypeList.contains(source.getPersonType()); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "loginNameStart": + if (siftValue instanceof String && source != null && source.getLoginname() != null) { + String loginNameStart = (String) siftValue; + shouldAdd = source.getLoginname().startsWith(loginNameStart); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "loginNameEnd": + if (siftValue instanceof String && source != null && source.getLoginname() != null) { + String loginNameEnd = (String) siftValue; + shouldAdd = source.getLoginname().endsWith(loginNameEnd); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "userQuery": + if (siftValue instanceof List && user != null) { + List userIds = (List) siftValue; + shouldAdd = userIds.contains(user.getId()) && user.getMember() != 1; + } + break; + } + if (shouldAdd) { + if (user == null) { + addMemberUserIds.add(source.getId()); + } else if (user.getMember() != 1) { + addMemberUserIds.add(user.getId()); + } + source.setMember(1); + } else if (shouldRemove) { + deleteMemberUserIds.add(user.getId()); + source.setMember(0); + } + }); + + + config.getWelfareMemberSiftList().forEach(welfareMember -> { + String siftName = welfareMember.getSiftName(); + Object siftValue = welfareMember.getSiftValue(); + boolean shouldAdd = false; + boolean shouldRemove = false; + + switch (siftName) { + case "member": + if ((user != null && addMemberUserIds.contains(user.getId())) || addMemberUserIds.contains(source.getId())) { + shouldAdd = true; + } else { + shouldRemove = true; + } + break; + case "userState": + if (siftValue instanceof List && source != null && source.getUserState() != null) { + List userStateList = (List) siftValue; + shouldAdd = userStateList.contains(source.getUserState()); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "personType": + if (siftValue instanceof List && source != null && source.getPersonType() != null) { + List personTypeList = (List) siftValue; + shouldAdd = personTypeList.contains(source.getPersonType()); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "loginNameStart": + if (siftValue instanceof String && source != null && source.getLoginname() != null) { + String loginNameStart = (String) siftValue; + shouldAdd = source.getLoginname().startsWith(loginNameStart); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "loginNameEnd": + if (siftValue instanceof String && source != null && source.getLoginname() != null) { + String loginNameEnd = (String) siftValue; + shouldAdd = source.getLoginname().endsWith(loginNameEnd); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; + } + break; + case "userQuery": + if (siftValue instanceof List && user != null) { + List userIds = (List) siftValue; + shouldAdd = userIds.contains(user.getId()) && user.getMember() != 1; + } + break; + } + if (shouldAdd) { + if (user == null) { + addWelfareMemberUserIds.add(source.getId()); + } else if (user.getMember() != 1) { + addWelfareMemberUserIds.add(user.getId()); + } + source.setWelfareMember(1); + } else if (shouldRemove) { + deleteWelfareMemberUserIds.add(user.getId()); + source.setWelfareMember(0); + } + }); + + } + + + /** + * 用于人工操作,不自动更新,不改变数据库数据 + * 待人工手动调整后,变更数据库 + * @param source + * @param user + * @param dictMap + * @param allowChangeFieldNames + * @return 人工操作记录表 + */ + private SourceChangeMiddleTable createSourceChangeMiddleTable(UserSource source, Sys_user user, Map dictMap, Set allowChangeFieldNames) { + List changeTypes = new ArrayList<>(); + // 手动变更,记录新的数据,并记录变更内容 + SourceChangeMiddleTable table = new SourceChangeMiddleTable(); + BeanUtil.copyProperties(source, table); + table.setId(R.UU32()); + table.setChangeTime(DateUtil.date()); + table.setChangeOrigin(MemberChangeOrigin.SYSTEM.name()); + // 新入职教职工 + if (user == null) { + changeTypes.add(MemberChangeType.NEW.getType()); + table.setChangeTypes(changeTypes); + return table; + } + + // 获取变更记录 + // 新数据 + NutMap newMap = Lang.obj2nutmap(source); + // 原数据 + NutMap sourceMap = Lang.obj2nutmap(user); + // 变更记录 + List changeList = new ArrayList<>(); + for (String fieldName : allowChangeFieldNames) { + memberCommonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList); + } + if (Lang.isEmpty(changeList)) { + return null; + } + String changeInfos = changeList.stream().map(v -> { + return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; + }).collect(Collectors.joining(";")); + + // 比较变更数据 + commonCompareChange(source, user, changeTypes); + + table.setChangeTypes(changeTypes); + table.setChangeInfos(changeList); + table.setChangeInfosStr(changeInfos); + table.setIsOperate(false); + return table; + } + + + /** + * 自动更新,创建历史记录 + * 会直接改变数据库 + * @param source + * @param user + * @param dictMap + * @param allowChangeFieldNames + * @return 历史记录表 + */ + private UserHistory createHistory(UserSource source, Sys_user user, Map dictMap, Set allowChangeFieldNames) { + List changeTypes = new ArrayList<>(); + UserHistory history = new UserHistory(); + BeanUtil.copyProperties(user, history); + history.setId(R.UU32()); + history.setChangeTime(DateUtil.date()); + history.setChangeOrigin(MemberChangeOrigin.SYSTEM.name()); + if (user == null) { + changeTypes.add(MemberChangeType.NEW.getType()); + history.setChangeTypes(changeTypes); + return history; + } + // 获取变更记录 + NutMap newMap = Lang.obj2nutmap(source); + NutMap sourceMap = Lang.obj2nutmap(user); + List changeList = new ArrayList<>(); + for (String fieldName : allowChangeFieldNames) { + memberCommonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList); + } + if (Lang.isEmpty(changeList)) { + return null; + } + String changeInfos = changeList.stream().map(v -> { + return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; + }).collect(Collectors.joining(";")); + // 比较变更数据 + commonCompareChange(source, user, changeTypes); + + history.setChangeTypes(changeTypes); + history.setChangeInfos(changeList); + history.setChangeInfosStr(changeInfos); + return history; + } + + + /** + * 比较变更类型公共方法 + * @param source + * @param user + * @param changeTypes + */ + private void commonCompareChange(UserSource source, Sys_user user, List changeTypes){ + changeTypes.add(MemberChangeType.BASIC_CHANGE.getType()); + + if (!ObjectUtil.equals(user.getUserState(), source.getUserState())) { + List list = Arrays.stream(MemberChangeType.values()) + .filter(v -> v.getChangeTypeName().equals(source.getUserState())).toList(); + if (Lang.isNotEmpty(list)) { + changeTypes.add(list.get(0).getType()); + } + } + + if (!ObjectUtil.equals(user.getMember(), source.getMember())){ + if (source.getMember() == 1) { + changeTypes.add(MemberChangeType.RESTORE.getType()); + } else { + changeTypes.add(MemberChangeType.WITHDRAWAL.getType()); + } + } + + if (!ObjectUtil.equals(user.getUnitid(), source.getUnitid())) { + changeTypes.add(MemberChangeType.UNIT_CHANGE.getType()); + } + } + + + /** + * 添加会员 + * @param addMemberUserIds + * @param isJoinMemberActivityScope + */ + private void addMemberUser(List addMemberUserIds, Boolean isJoinMemberActivityScope) { + if (Lang.isNotEmpty(addMemberUserIds)) { + List roleList = addMemberUserIds.stream().distinct().map(v -> { + Sys_user_role role = new Sys_user_role(); + role.setUserId(v); + role.setRoleId(Roles.MEMBER); + return role; + }).toList(); + manyAddOrRenewUtil.asyncExecuteInsert(roleList, 200); + + if (isJoinMemberActivityScope) { + List scopeList = addMemberUserIds.stream().distinct().map(v -> { + ActivityUserScope scope = new ActivityUserScope(); + scope.setGroupId(1); + scope.setGroupName("工会会员"); + scope.setUserId(v); + return scope; + }).toList(); + manyAddOrRenewUtil.asyncExecuteInsert(scopeList, 200); + } + } + } + + + /** + * 删除会员 + * @param deleteMemberUserIds + * @param isDeleteMemberActivityScope + */ + private void deleteMemberUser(List deleteMemberUserIds, Boolean isDeleteMemberActivityScope){ + if (Lang.isNotEmpty(deleteMemberUserIds)) { + dao().clear(Sys_user_role.class, Cnd.where("userId", "in", deleteMemberUserIds).and("roleId", "=", Roles.MEMBER)); + if (isDeleteMemberActivityScope) { + dao().clear(ActivityUserScope.class, Cnd.where("userId", "in", deleteMemberUserIds).and("groupId", "=", 1)); + } + } + } + + @Override @Aop(TransAop.READ_COMMITTED) public void dailyScheduledUpdates() { @@ -276,68 +615,6 @@ public class SourceUserServiceImpl extends ViServiceImpl implements dao().clear(UserSource.class, Cnd.where("DATE(pullTime)", "<", formatAgoWeekDate)); } - private List getChangeTypes(Sys_user source, Sys_user user, String sourceType) { - List userChangeTypes = new ArrayList<>(); - if (user == null) { - userChangeTypes.add(UserChangeType.NEW); - return userChangeTypes; - } else { - if ("add".equals(sourceType)) { - return userChangeTypes; - } - if (!StringUtils.isEmpty(source.getUnitid()) && !source.getUnitid().equals(user.getUnitid())) { - userChangeTypes.add(UserChangeType.UNIT_CHANGE); - } - if (!StringUtils.isEmpty(user.getUserState()) && StrUtil.isNotEmpty(source.getUserState()) && !source.getUserState().equals(user.getUserState())) { - for (UserChangeType value : UserChangeType.values()) { - if (value.getDescription().equals(source.getUserState())) { - userChangeTypes.add(value); - } - } - } - - List columns = List.of("nation", "birthday", "personType", "political", "schoolTime", "jobTitle", "education", "academicDegree", "position", "leaveSchoolDate", "retireDate"); - for (String column : columns) { - NutMap userSourceMap = Lang.obj2nutmap(source); - NutMap userMap = Lang.obj2nutmap(user); - String sourceValue = userSourceMap.getString(column, ""); - String value = userMap.getString(column, ""); - if (!sourceValue.equals(value) && StrUtil.isNotBlank(sourceValue)) { - userChangeTypes.add(UserChangeType.BASIC_CHANGE); - break; - } - } - } - return userChangeTypes; - } - - /** - * 生成一条用户历史记录 - * - * @param user - * @param changeTypes - * @return - */ - private UserHistory createUserHistory(Sys_user user, List changeTypes) { - //除仅更新新增人员外的方式都需要往历史记录表插数据 - UserHistory history = new UserHistory(); - history.setId(R.UU32()); - BeanUtils.copyProperties(user, history); - history.setChangeTime(new Date()); - history.setChangeTypes(changeTypes.stream().map(UserChangeType::getCode).collect(Collectors.toList())); - history.setChangeOperator(StrUtil.blankToDefault((String) ShiroUtil.getPrincipalProperty("username"), "系统")); - history.setChangeOrigin(MemberChangeOrigin.SYSTEM.getCode()); - history.setChangeReason("数据自动更新"); - - //找出上一次更新的记录 - Sql lastHistorySql = Sqls.fetchString("select id from user_history where loginname = @loginname order by changeTime"); - lastHistorySql.setParam("loginname",user.getLoginname()); - dao().execute(lastHistorySql); - String lastHistoryId = lastHistorySql.getString(); - history.setLastHistoryId(lastHistoryId); - return history; - } - /** * 数据大批量更新 diff --git a/src/main/java/io/v/nutz/zhgh/data/vo/SourceUserCommonVo.java b/src/main/java/io/v/nutz/zhgh/data/vo/SourceUserCommonVo.java new file mode 100644 index 0000000..bd7415c --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/data/vo/SourceUserCommonVo.java @@ -0,0 +1,39 @@ +package io.v.nutz.zhgh.data.vo; + +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeConfig; +import lombok.Data; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceUserCommonVo + * @Date 2025/2/18 16:50 + * @注释 + */ +@Data +public class SourceUserCommonVo { + + // 添加会员角色 + private List addMemberUserIds = new CopyOnWriteArrayList<>(); + + // 移除会员角色 + private List deleteMemberUserIds = new CopyOnWriteArrayList<>(); + + // 添加会员分组的用户id + private List addMemberGroupUserIds = new CopyOnWriteArrayList<>(); + + // 移除会员分组的用户id + private List deleteMemberGroupUserIds = new CopyOnWriteArrayList<>(); + + // 添加福利会员角色的用户id + private List addWelfareMemberUserIds = new CopyOnWriteArrayList<>(); + + // 移除福利会员角色的用户id + private List deleteWelfareMemberUserIds = new CopyOnWriteArrayList<>(); + + private SourceChangeConfig config; +} diff --git a/src/main/java/io/v/nutz/zhgh/jdh/controller/db/JdhDbGlController.java b/src/main/java/io/v/nutz/zhgh/jdh/controller/db/JdhDbGlController.java index b1c32d1..71b87bb 100644 --- a/src/main/java/io/v/nutz/zhgh/jdh/controller/db/JdhDbGlController.java +++ b/src/main/java/io/v/nutz/zhgh/jdh/controller/db/JdhDbGlController.java @@ -17,7 +17,6 @@ import io.v.nutz.base.utils.OfficeTemplateUtil; import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.ViTool; -import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.zhgh.jdh.model.db.Jdh_db; import io.v.nutz.zhgh.jdh.model.db.TeacherMeetDelegate; @@ -28,7 +27,6 @@ import io.v.nutz.sys.services.SysUserService; import io.v.nutz.zhgh.jdh.model.zzjg.Jdh_dbt; import io.v.nutz.zhgh.jdh.model.zzjg.Jdh_dbt_zcdw; import io.v.nutz.zhgh.jdh.vo.TeacherDelegateExcelImportVo; -import io.v.nutz.zhgh.thirtyteach.template.ThirtyTeachTemp; import io.v.nutz.zhgh.workersCongress.model.workersCongressSession; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; @@ -59,7 +57,6 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; -import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java deleted file mode 100644 index e7778f5..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberApplyState.java +++ /dev/null @@ -1,35 +0,0 @@ -package io.v.nutz.zhgh.member.constant; - -/** - * 会员申请状态 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -public interface MemberApplyState { - /** - * 待分工会审核 - */ - int UNION = 10; - - /** - * 分工会审核不通过 - */ - int UNION_FAIL = 15; - - /** - * 待校工会审核 - */ - int SCHOOL_UNION = 20; - - /** - * 校工会审核不通过 - */ - int SCHOOL_UNION_FAIL = 25; - - /** - * 正式会员 - */ - int NORMAL_MEMBER = 30; -} diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java deleted file mode 100644 index 181b0d6..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeApplyState.java +++ /dev/null @@ -1,35 +0,0 @@ -package io.v.nutz.zhgh.member.constant; - -/** - * 会员变更申请状态 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -public interface MemberChangeApplyState { - /** - * 待分工会审核 - */ - int UNION = 50; - - /** - * 分工会审核不通过 - */ - int UNION_FAIL = 55; - - /** - * 待校工会审核 - */ - int SCHOOL_UNION = 60; - - /** - * 校工会审核不通过 - */ - int SCHOOL_UNION_FAIL = 65; - - /** - * 变更成功 - */ - int SUCCESS = 70; -} diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java deleted file mode 100644 index 22eb82a..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeOrigin.java +++ /dev/null @@ -1,28 +0,0 @@ -package io.v.nutz.zhgh.member.constant; - -import io.v.nutz.base.annontation.SelectEnum; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 会员变更来源 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -@Getter -@SelectEnum -@AllArgsConstructor -public enum MemberChangeOrigin { - PERSONAL(1, "个人"), - UNION(2, "分工会"), - UNION_GROUP(3, "工会小组"), - SCHOOL(4, "校工会"), - OTHER(5, "其他"), - RETIREMENT_CHANGE(6, "退休(系统变更)"), - SYSTEM(7, "系统数据更新"); - - private int code; - private String description; -} diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeRecordMode.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeRecordMode.java deleted file mode 100644 index 0dd01ef..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberChangeRecordMode.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.v.nutz.zhgh.member.constant; - -import io.v.nutz.base.annontation.SelectEnum; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 会员变更记录模式 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -@Getter -@SelectEnum -@AllArgsConstructor -public enum MemberChangeRecordMode { - MEMBER(1, "会员"), WELFARE_MEMBER(2, "福利会员"); - - private int code; - private String description; -} diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberOrigin.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberOrigin.java deleted file mode 100644 index eadcdfe..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberOrigin.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.v.nutz.zhgh.member.constant; - -import io.v.nutz.base.annontation.SelectEnum; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 会员来源 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -@Getter -@SelectEnum -@AllArgsConstructor -public enum MemberOrigin { - APPLY(1, "个人申请"), MAKE(2, "补录"), BATCH(3, "批量设置"), OTHER(4, "其他"); - - private int code; - private String description; -} diff --git a/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java b/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java deleted file mode 100644 index b34c6ee..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/constant/MemberStatus.java +++ /dev/null @@ -1,55 +0,0 @@ -package io.v.nutz.zhgh.member.constant; - -import io.v.nutz.base.annontation.SelectEnum; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * @author Aaron - */ - -@Getter -@SelectEnum -@AllArgsConstructor -public enum MemberStatus { - - //会员状态 - NORMAL(1, "入会"), - TURN_IN(2, "转入"), - TURN_OUT(3, "转出"), - KEEP(4, "保留"), - WITHDRAWAL(5, "退会"), - RESTORE(6, "恢复"), - EXPELLED(7, "除名"); - - /** - * 编码 - */ - private final int code; - - /** - * 描述 - */ - private final String description; - - public String getDescByCode(int code) { - switch (code) { - case 1: - return NORMAL.getDescription(); - case 2: - return TURN_IN.getDescription(); - case 3: - return TURN_OUT.getDescription(); - case 4: - return KEEP.getDescription(); - case 5: - return WITHDRAWAL.getDescription(); - case 6: - return RESTORE.getDescription(); - case 7: - return EXPELLED.getDescription(); - default: - return ""; - } - } -} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java b/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java deleted file mode 100644 index 40158c5..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyAuditController.java +++ /dev/null @@ -1,173 +0,0 @@ -package io.v.nutz.zhgh.member.controller.apply; - -import io.v.nutz.base.annontation.ViReturn; -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.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; -import org.nutz.dao.sql.Sql; -import org.nutz.ioc.loader.annotation.Inject; -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; -import org.nutz.mvc.annotation.Param; - -@At("/platform/member/apply/audit") -@Ok("json:full") -@IocBean -public class MemberApplyAuditController { - - @At("/union") - @Ok("beetl:/platform/member/apply/audit/Union.html") - @RequiresPermissions("member.apply.audit.union") - public void union() { - } - - @At("/school") - @Ok("beetl:/platform/member/apply/audit/School.html") - @RequiresPermissions("member.apply.audit.school") - public void school() { - } - - @Inject("MemberApplyRecord") - private ViService memberApplyRecordViService; - - @Inject - private Vi vi; - - /** - * @param pageForm 分页查询对象 - * @param source 来源 1 分工会 2 校工会 - * @return - */ - @At - @ViReturn - @RequiresPermissions(value = {"member.apply.audit.union", "member.apply.audit.school"}, logical = Logical.OR) - public Object pageData(PageForm pageForm, - @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 = "source", required = false) Integer source, - @Param(value = "date", required = false) String[] date, - @Param(value = "memberStatus", required = false) Integer memberStatus, - @Param(value = "audit", required = false) Integer audit) { - Sql sql = Sqls.create(""" - SELECT - mar.*, - LEFT ( mar.applyTime, 10 ) applyDate, - u.username, - u.loginname, - u.unitname, - u.unionname, - u.sex, - u.mobile, - u.unitcode, - u.unioncode, - u.unionGroupName, - u.threeUnitName, - state.stateName, - state.stateColor, - IF(mar.stateId = @auditState,TRUE,FALSE) audit - FROM - member_apply_record mar - LEFT JOIN audit_state state ON mar.stateId = state.stateId - LEFT JOIN `user` u ON mar.userId = u.id $condition - """); - CndPlus cnd = CndPlus.create(); - pageForm.defaultSortAsc("mar.stateId"); - cnd.and(pageForm); - cnd.andEX("u.memberStatus", "=", memberStatus); - - /* if (audit == 1 && !ShiroUtil.hasAnyRoles("sysadmin")) { - cnd.and("mar.unionId", "=", vi.getUnionId()); - *//*cnd.and("mar.userId", "=", ShiroUtil.getUserId());*//* - } else if (audit == 2) { - cnd.and("mar.stateId", "=", source == 1 ? MemberApplyState.UNION : MemberApplyState.SCHOOL_UNION); - }*/ - - - if (date != null && date.length == 2) { - cnd.and("date(mar.applyTime)", ">=", date[0]); - cnd.and("date(mar.applyTime)", "<=", date[1]); - } - - cnd.andEX("u.unionid", "=", unionId); - cnd.andEX("u.unitid", "=", unitId); - cnd.andEX("u.threeUnitId", "=", threeUnitId); - cnd.andEX("u.unionGroupId", "=", unionGroupId); - - if (!ShiroUtil.hasAnyRoles("sysadmin") && source == 1) { - cnd.and("mar.unionId", "=", vi.getUnionId()); - } - - - if (audit == 0) { - if (source == 1) { - - } else if (source == 2) { - cnd.and("mar.stateId", "!=", MemberApplyState.UNION); - cnd.and("mar.stateId", "!=", MemberApplyState.UNION_FAIL); - } - } else if (audit == 1) { - if (source == 1) { - cnd.and("mar.stateId", ">", MemberApplyState.UNION); - } else if (source == 2) { - cnd.and("mar.stateId", ">", MemberApplyState.SCHOOL_UNION); - } - } else if (audit == 2) { - if (source == 1) { - cnd.and("mar.stateId", "=", MemberApplyState.UNION); - } else if (source == 2) { - cnd.and("mar.stateId", "=", MemberApplyState.SCHOOL_UNION); - } - } - - if (source == 1) { - sql.setParam("auditState", MemberApplyState.UNION); - } else { - sql.setParam("auditState", MemberApplyState.SCHOOL_UNION); - } - - /* if (audit != 0) { - if (source == 1) { - - cnd.and("mar.stateId", audit == 1 ? ">" : "=", MemberApplyState.UNION); - sql.setParam("auditState", MemberApplyState.UNION); - } else if (source == 2) { - cnd.and("mar.stateId", audit == 1 ? ">" : "=", MemberApplyState.SCHOOL_UNION); - sql.setParam("auditState", MemberApplyState.SCHOOL_UNION); - } - } else { - if (source == 1) { - cnd.and("mar.stateId", "<", MemberApplyState.SCHOOL_UNION); - } else if (source == 2) { - cnd.and("mar.stateId", ">=", MemberApplyState.SCHOOL_UNION); - } - }*/ - sql.setCondition(cnd); - - return memberApplyRecordViService.list(pageForm, sql); - } - - - @At - @ViReturn - @RequiresPermissions(value = {"member.apply.audit.union", "member.apply.audit.school"}, logical = Logical.OR) - public Object doAudit(String recordId, Audit audit) { - MemberApplyRecord record = memberApplyRecordViService.fetch(recordId); - MemberApplyAuditHandle applyHandle = Enum.instance(MemberApplyAuditHandle.class, record.getStateId()); - applyHandle.next(record, audit); - return null; - } - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java b/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java deleted file mode 100644 index a87da70..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/controller/apply/MemberApplyController.java +++ /dev/null @@ -1,272 +0,0 @@ -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.model.MemberApplyRecord; -import io.v.nutz.zhgh.member.model.MemberCheckSelfTask; -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; -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") -@Ok("json:full") -@IocBean -public class MemberApplyController { - - @At("") - @Ok("beetl:/platform/member/apply/index.html") - @RequiresPermissions("member.apply.submit") - public void index() { - } - - @Inject("MemberApplyRecord") - private ViService memberApplyRecordViService; - - @Inject - private Vi vi; - - @Inject - private SysUserService sysUserService; - - @Inject - private SysSignatureService sysSignatureService; - - @Inject - private OfficeTemplateUtil officeTemplateUtil; - - /** - * 获取信息 - * - * @return - */ - @At - @ViReturn - @RequiresPermissions("member.apply.submit") - public Object unionInfo() { - Sql userSql = Sqls.create(""" - SELECT - u.id, - u.username, - u.loginname, - u.member, - u.unitid, - u.nation, - u.marriage, - un.id unionid, - un.unioncode, - un.unionname, - un.telephone, - idType, - idcard, - family, - education, - academicDegree, - political, - position, - homeAddress, - registeredResidence, - sex, - specialSkill, - vita, - mobile - FROM - sys_user u - LEFT JOIN sys_unit unit ON u.unitid = unit.id - LEFT JOIN sys_union un ON unit.unionid = un.id - WHERE - u.id = @id - """).setParam("id", ShiroUtil.getPrincipalProperty("id")); - NutMap user = memberApplyRecordViService.fetch(userSql); - - if (Strings.isNotBlank(user.getString("unionid"))) { - Sql managerSql = Sqls.create(""" - SELECT - GROUP_CONCAT(DISTINCT u.username ) manager - FROM - sys_user u - LEFT JOIN sys_user_role sur ON u.id = sur.userId - WHERE sur.roleId = @roleId and sur.unionid = @unionId - """).setParam("roleId", Roles.UNION_MANGER).setParam("unionId", user.getString("unionid")); - user.setv("manager", memberApplyRecordViService.fetch(managerSql).getString("manager")); - - - Sql marSql = Sqls.create(""" - SELECT - mar.*, - u.username, - u.loginname, - un.unionname, - state.stateName, - state.stateColor - FROM - member_apply_record mar - LEFT JOIN audit_state state ON mar.stateId = state.stateId - LEFT JOIN sys_union un ON mar.unionId = un.id - LEFT JOIN sys_user u ON mar.userId = u.id - WHERE - mar.userId = @userId - ORDER BY - mar.applyTime desc - """).setParam("userId", ShiroUtil.getPrincipalProperty("id")); - List records = memberApplyRecordViService.listMap(marSql); - if (records.size() > 0) { - NutMap record = records.get(0); - user.setv("record", record); - - if (record.getInt("stateId") == MemberApplyState.UNION_FAIL || record.getInt("stateId") == MemberApplyState.SCHOOL_UNION_FAIL) { - user.setv("reApply", true); - } else if (record.getInt("stateId") == MemberApplyState.NORMAL_MEMBER && !user.getBoolean("member")) { - user.setv("apply", true); - } - } else if (!user.getBoolean("member")) { - user.setv("apply", true); - } - user.setv("records", records); - } - - return user; - } - - /** - * 提交申请 - * - * @return - */ - @At - @ViReturn - @RequiresPermissions("member.apply.submit") - public Object doApply(Integer memberStates) { - return MemberApplyAuditHandle.CREATE.next(new MemberApplyRecord().setMemberStates(memberStates), null); - } - - @At - @ViReturn - @RequiresPermissions("member.apply.submit") - public Object doEdit(Sys_user sys_user, @Param(value = "taskId", required = false) String taskId) { - Trans.exec(() -> { - if (StrUtil.isNotBlank(taskId)) { - sysUserService.dao().update(MemberCheckSelfTask.class, - Chain.make("isFinish", true), - Cnd.where("taskId", "=", taskId).and("userId", "=", ShiroUtil.getUserId())); - } - sysUserService.updateIgnoreNull(sys_user); - sysUserService.deleteCache(sys_user.getId()); - }); - 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(); - } - } -} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java deleted file mode 100644 index 95d375b..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyAuditController.java +++ /dev/null @@ -1,170 +0,0 @@ -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.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 org.apache.shiro.authz.annotation.Logical; -import org.apache.shiro.authz.annotation.RequiresPermissions; -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.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; -import org.nutz.mvc.annotation.Param; - -@At("/platform/member/change/audit") -@Ok("json:full") -@IocBean -public class MemberChangeApplyAuditController { - - @At("/union") - @Ok("beetl:/platform/member/change/audit/Union.html") - @RequiresPermissions("member.change.audit.union") - public void union() { - } - - @At("/school") - @Ok("beetl:/platform/member/change/audit/School.html") - @RequiresPermissions("member.change.audit.school") - public void school() { - } - - @Inject("MemberChangeRecord") - private ViService recordViService; - - @Inject - private Vi vi; - - /** - * @param pageForm 分页查询对象 - * @param source 来源 1 分工会 2 校工会 - * @return - */ - @At - @ViReturn - @RequiresPermissions(value = {"member.change.audit.union", "member.change.audit.school"}, logical = Logical.OR) - public Object pageData(PageForm pageForm, - @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 = "source", required = false) Integer source, - @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) { - Sql sql = Sqls.create(""" - SELECT - mcr.*, - LEFT ( mcr.applyTime, 10 ) applyDate, - u.username, - u.loginname, - u.unitname, - u.unionname, - u.mobile AS MMobile, - u.unitcode, - u.unioncode, - u.unionGroupName, - u.threeUnitName, - state.stateName, - state.stateColor, - originUnit.unitcode originUnitCode, - originUnit.`name` originUnitName, - originUnion.unioncode originUnionCode, - originUnion.unionname originUnionName, - currentUnit.unitcode currentUnitCode, - currentUnit.`name` currentUnitName, - currentUnion.unioncode currentUnionCode, - currentUnion.unionname currentUnionName, - IF(mcr.stateId = @auditState,TRUE,FALSE) audit - FROM - member_change_record mcr - LEFT JOIN `user` u ON mcr.userId = u.id - LEFT JOIN audit_state state ON mcr.stateId = state.stateId - LEFT JOIN sys_unit originUnit ON mcr.originUnitId = originUnit.id - 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 - $condition - """); - CndPlus cnd = CndPlus.create(); - pageForm.defaultSortAsc("mcr.stateId"); - cnd.and(pageForm); - - 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()); - } - - if (audit != 0) { - if (source == 1) { - cnd.and("mcr.stateId", audit == 1 ? ">" : "=", MemberChangeApplyState.UNION); - sql.setParam("auditState", MemberChangeApplyState.UNION); - } else if (source == 2) { - cnd.and("mcr.stateId", audit == 1 ? ">" : "=", MemberChangeApplyState.SCHOOL_UNION); - sql.setParam("auditState", MemberChangeApplyState.SCHOOL_UNION); - } - } else { - if (source == 1) { - } else if (source == 2) { - cnd.and("mcr.stateId", ">=", MemberChangeApplyState.SCHOOL_UNION); - } - } - sql.setCondition(cnd); - - return recordViService.list(pageForm, sql); - } - - - @At - @ViReturn - @RequiresPermissions(value = {"member.change.audit.union", "member.change.audit.school"}, logical = Logical.OR) - public Object doAudit(String recordId, - Audit audit, - @Param(value = "currentUnitId", required = false) String currentUnitId, - @Param(value = "currentUnionId", required = false) String currentUnionId, - @Param(value = "currentThreeUnitId", required = false) String currentThreeUnitId) { - MemberChangeRecord record = recordViService.fetch(recordId); - if (StrUtil.isAllNotBlank(currentUnitId, currentUnionId)) { - record.setCurrentUnitId(currentUnitId); - record.setCurrentUnionId(currentUnionId); - record.setCurrentThreeUnitId(currentThreeUnitId); - recordViService.update(record); - } - - MemberChangeAuditHandle applyHandle = Enum.instance(MemberChangeAuditHandle.class, record.getStateId()); - applyHandle.next(record, audit); - return null; - } - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java b/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java deleted file mode 100644 index 3861424..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeApplyController.java +++ /dev/null @@ -1,123 +0,0 @@ -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.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.service.MemberService; -import org.apache.shiro.authz.annotation.RequiresPermissions; -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.lang.Strings; -import org.nutz.lang.util.NutMap; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; - -import java.util.List; - -@At("/platform/member/change/apply") -@Ok("json:full") -@IocBean -public class MemberChangeApplyController { - - @At("") - @Ok("beetl:/platform/member/change/Apply.html") - @RequiresPermissions("member.change.apply") - public void index() { - } - - @Inject("MemberChangeRecord") - private ViService changeRecordViService; - - @Inject - private Vi vi; - - @Inject - private MemberService memberService; - - /** - * 获取信息 - * - * @return - */ - @At - @ViReturn - @RequiresPermissions("member.change.apply") - public Object unionInfo() { - - Sql userSql = Sqls.create(""" - SELECT - u.id, - u.username, - u.loginname, - u.member, - un.id unionid, - un.unioncode, - un.unionname, - un.telephone - FROM - sys_user u - LEFT JOIN sys_unit unit ON u.unitid = unit.id - LEFT JOIN sys_union un ON unit.unionid = un.id - WHERE - u.id = @id - """).setParam("id", ShiroUtil.getPrincipalProperty("id")); - NutMap user = changeRecordViService.fetch(userSql); - - if (Strings.isNotBlank(user.getString("unionid"))) { - Sql managerSql = Sqls.create(""" - SELECT - GROUP_CONCAT(DISTINCT u.username ) manager - FROM - sys_user u - LEFT JOIN sys_user_role sur ON u.id = sur.userId - WHERE sur.roleId = @roleId and sur.unionid = @unionId - """).setParam("roleId", Roles.UNION_MANGER).setParam("unionId", user.getString("unionid")); - user.setv("manager", changeRecordViService.fetch(managerSql).getString("manager")); - - List records = memberService.memberChangeRecords(ShiroUtil.getPrincipalProperty("id").toString()); - if (records.size() > 0) { - NutMap record = records.get(0); - user.setv("record", record); - - if (record.getInt("stateId") == MemberChangeApplyState.UNION_FAIL || record.getInt("stateId") == MemberChangeApplyState.SCHOOL_UNION_FAIL) { - user.setv("reApply", true); - } else if (record.getInt("stateId") == MemberChangeApplyState.SUCCESS && user.getBoolean("member")) { - user.setv("apply", true); - } - } else { - if (user.getBoolean("member")) { - user.setv("apply", true); - } - } - - - user.setv("records", records); - } - - return user; - } - - /** - * 提交申请 - * - * @return - */ - @At - @ViReturn - @RequiresPermissions("member.change.apply") - public Object doApply(MemberChangeRecord record) { - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setApplyOrigin(MemberChangeOrigin.PERSONAL.getCode()); - return MemberChangeAuditHandle.CREATE.next(record, null); - } - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java deleted file mode 100644 index aa7f350..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyAuditHandle.java +++ /dev/null @@ -1,181 +0,0 @@ -package io.v.nutz.zhgh.member.handle; - -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; -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 lombok.Getter; -import org.nutz.aop.interceptor.ioc.TransAop; -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.aop.Aop; -import org.nutz.lang.random.R; -import org.nutz.lang.util.NutMap; -import org.springframework.beans.BeanUtils; - -import java.util.Date; -import java.util.List; - -/** - * 会员申请审核 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -@Getter -public enum MemberApplyAuditHandle { - - - /** - * 创建 - */ - CREATE(null) { - @Override - @Aop(TransAop.READ_COMMITTED) - public MemberApplyRecord next(MemberApplyRecord record, Audit audit) { - record.setUserId(ShiroUtil.getPrincipalProperty("id").toString()); - record.setStateId(MemberApplyState.UNION); - record.setUnionId(Vi.getUnionId()); - record.setApplyTime(new Date()); - MemberApplyRecord insert = memberApplyRecordViService.insert(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 - AND sur.unionid = @unionId - """).setParam("roleId", Roles.UNION_MANGER).setParam("unionId", record.getUnionId()); - - List mapList = sysUserService.listMap(sql); - 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); - history.setId(R.UU32()); - history.setChangeTime(new Date()); - history.setChangeTypes(List.of(UserChangeType.RESTORE.getCode())); - history.setChangeOperator(StrUtil.blankToDefault((String) ShiroUtil.getPrincipalProperty("username"), "系统")); - history.setChangeOrigin(MemberChangeOrigin.PERSONAL.getCode()); - history.setChangeReason("个人申请"); - history.setMemberChangeRecordId(record.getId()); - -/* mapList.forEach(v -> { - String content = user.getUsername() + "提交了会员申请待您审核,请前往智慧工会进行审核!"; -// sendMsg.pushWeChatMsg("会员系统", content, v.getString("loginname")); - - });*/ - return insert; - } - }, - /** - * 分工会审核 - */ - AUDIT_UNION(MemberApplyState.UNION) { - @Override - 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()); - - - MemberApplyToDoHandler.COMPLETE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "基层工会通过" : "基层工会拒绝")); - -// 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 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","基层工会拒绝")); -// } - - - return record; - } - }, - /** - * 校工会审核 - */ - AUDIT_SCHOOL(MemberApplyState.SCHOOL_UNION) { - @Override - public MemberApplyRecord next(MemberApplyRecord record, Audit audit) { - - memberApplyRecordViService.transactional(() -> { - record.setStateId(audit.getAuditPass() ? MemberApplyState.NORMAL_MEMBER : MemberApplyState.SCHOOL_UNION_FAIL); - 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()); - - return record; - } - }; - - private Integer state; - - MemberApplyAuditHandle(Integer state) { - this.state = state; - } - - public ViService 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); - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java deleted file mode 100644 index 2896a5f..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeAuditHandle.java +++ /dev/null @@ -1,170 +0,0 @@ -package io.v.nutz.zhgh.member.handle; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.StrUtil; -import io.v.nutz.base.lang.Enum; -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.Vi; -import io.v.nutz.base.utils.ViResource; -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.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 lombok.Getter; -import org.nutz.dao.Cnd; -import org.nutz.lang.util.NutMap; -import org.springframework.beans.BeanUtils; - -import java.util.Date; -import java.util.List; - -/** - * 会员变更审核Handle - * - * @author: 1V - * @date: 2021/1/27 - * @since 1.0 - */ -@Getter -public enum MemberChangeAuditHandle { - /** - * 创建 - */ - CREATE(null) { - @Override - 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()); - record.setOriginUnionId(Vi.getUnionId()); - record.setStateId(MemberChangeApplyState.UNION); - } else if (record.getApplyOrigin() == MemberChangeOrigin.UNION.getCode()) { - record.setStateId(MemberChangeApplyState.SCHOOL_UNION); - } else if (record.getApplyOrigin() == MemberChangeOrigin.SCHOOL.getCode()) { - record.setStateId(MemberChangeApplyState.SUCCESS); - } - MemberChangeRecord changeRecord = recordViService.insert(record); - - UserHistory history = new UserHistory(); - Sys_user user = recordViService.dao().fetch(Sys_user.class, record.getUserId()); - BeanUtils.copyProperties(user, history); - history.setChangeTime(DateUtil.date()); - history.setChangeType(record.getType()); - history.setChangeTypes(List.of(record.getType())); - history.setChangeOrigin(record.getApplyOrigin()); - history.setChangeOperator((String) ShiroUtil.getPrincipalProperty("username")); - history.setChangeReason(record.getRemark()); - history.setMemberChangeRecordId(record.getId()); - recordViService.insert(history); - - MemberChangeToDoHandler.START_PROCESS.exec(changeRecord,null); - MemberChangeToDoHandler.CREATE_UNION_TASK.exec(changeRecord, NutMap.NEW().addv("nodeName","基层工会审核")); - return changeRecord; - } - }, - /** - * 分工会审核 - */ - UNION(MemberChangeApplyState.UNION) { - @Override - 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); - - 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()); - BeanUtils.copyProperties(user, history); - history.setChangeTime(DateUtil.date()); - history.setChangeType(record.getType()); - history.setChangeTypes(List.of(record.getType())); - history.setChangeOrigin(record.getApplyOrigin()); - history.setChangeOperator((String) ShiroUtil.getPrincipalProperty("username")); - history.setChangeReason(record.getRemark()); - history.setMemberChangeRecordId(record.getId()); - recordViService.insert(history); - } - - MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record,null); - } else { - MemberChangeToDoHandler.REFUSE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName","分工会拒绝")); - } - return record; - } - }, - /** - * 校工会审核 - */ - SCHOOL(MemberChangeApplyState.SCHOOL_UNION) { - @Override - 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()); - - if (record.getStateId() == MemberChangeApplyState.SUCCESS) { - - 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()); - BeanUtils.copyProperties(user, history); - history.setChangeTime(DateUtil.date()); - history.setChangeType(record.getType()); - history.setChangeTypes(List.of(record.getType())); - history.setChangeOrigin(record.getApplyOrigin()); - history.setChangeOperator((String) ShiroUtil.getPrincipalProperty("username")); - history.setChangeReason(record.getRemark()); - history.setMemberChangeRecordId(record.getId()); - recordViService.insert(history); - } - - MemberChangeHandle handle = Enum.instance(MemberChangeHandle.class, record.getType()); - handle.change(record); - - if (StrUtil.isNotBlank(record.getCurrentThreeUnitId()) && !record.getCurrentThreeUnitId().equals(record.getOriginThreeUnitId())) { - MemberChangeHandle unitChangeHandle = Enum.instance(MemberChangeHandle.class, UserChangeType.UNIT_CHANGE.getCode()); - unitChangeHandle.change(record); - } - - } - recordViService.update(record); - }); - - MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record,NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "审核通过" : "校工会拒绝")); - - if (audit.getAuditPass()) { - MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record,null); - } else { - MemberChangeToDoHandler.REFUSE_UNION_TASK.exec(record,NutMap.NEW().addv("nodeName","校工会拒绝")); - } - - return record; - } - }; - - private Integer state; - - MemberChangeAuditHandle(Integer state) { - this.state = state; - } - - public AuditService auditService = ViResource.ioc.getByType(AuditService.class); - public ViService recordViService = ViResource.ioc.getByType(ViServiceImpl.class); - - public abstract MemberChangeRecord next(MemberChangeRecord record, Audit audit); - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java b/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java deleted file mode 100644 index efbb0a6..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeHandle.java +++ /dev/null @@ -1,227 +0,0 @@ -package io.v.nutz.zhgh.member.handle; - -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.ViResource; -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.data.model.UserHistory; -import io.v.nutz.zhgh.member.MemberMode; -import io.v.nutz.zhgh.member.UserMode; -import io.v.nutz.zhgh.member.WelfareMemberMode; -import io.v.nutz.zhgh.member.constant.MemberStatus; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import lombok.Getter; -import org.nutz.dao.Chain; -import org.nutz.dao.Cnd; -import org.nutz.lang.Strings; - -import java.util.List; - -/** - * 会员变更Handle - * - * @author: 1V - * @date: 2021/1/27 - * @see UserChangeType - * @since 1.0 - */ -@Getter -public enum MemberChangeHandle { - - - //会员变更Handle - UNIT_CHANGE(UserChangeType.UNIT_CHANGE.getCode()) { - @Override - 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())); - sysUserService.clearCache(); - sysRoleService.clearCache(); - } - }, - NEW(UserChangeType.NEW.getCode()) { - @Override - public void change(MemberChangeRecord record) { - archive(record.getUserId(), UserChangeType.NEW); - if (null != record.getUpdateMember() && record.getUpdateMember()){ - sysUserService.update(Chain.make("schoolTime", DateUtil.today()),Cnd.where("id","=",record.getUserId())); - } - updateMemberAndWelfareMember(record); - sysUserService.clearCache(); - sysRoleService.clearCache(); - } - }, - RESIGN(UserChangeType.RESIGN.getCode()) { - @Override - public void change(MemberChangeRecord record) { - archive(record.getUserId(), UserChangeType.RESIGN); - UserMode.removeMemberRole(record.getUserId()); - updateMemberAndWelfareMember(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 - public void change(MemberChangeRecord record) { - archive(record.getUserId(), UserChangeType.RETIREMENT); - UserMode.removeMemberRole(record.getUserId()); - updateMemberAndWelfareMember(record); -// updateMemberStatus(MemberStatus.KEEP, record.getUserId()); - updateUserStateAndPersonType(record); - } - }, - /*EXPELLED(UserChangeType.EXPELLED.getCode()) { - @Override - public void change(MemberChangeRecord record) { - archive(record.getUserId(), UserChangeType.EXPELLED); - UserMode.removeMemberRole(record.getUserId()); - updateWelfareMember(record); - updateMemberStatus(MemberStatus.EXPELLED, record.getUserId()); - updateUserStateAndPersonType(record); - } - },*/ - RESTORE(UserChangeType.RESTORE.getCode()) { - @Override - public void change(MemberChangeRecord record) { - archive(record.getUserId(), UserChangeType.RESTORE); - 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()) { - @Override - public void change(MemberChangeRecord record) { - archive(record.getUserId(), UserChangeType.WITHDRAWAL); - UserMode.removeMemberRole(record.getUserId()); - 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()){ - @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())); - } - } - };*/ - - /** - * 存档 - * - * @param userId - * @param changeType - */ - private static void archive(String userId, UserChangeType changeType) { - 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 updateMemberAndWelfareMember(MemberChangeRecord record) { - if (null != record.getUpdateWelfareMember()) { - sysUserService.update(Chain.make("welfareMember", record.getUpdateWelfareMember() ? WelfareMemberMode.NORMAL.getCode() : WelfareMemberMode.NONE.getCode()), Cnd.where("id", "=", record.getUserId())); - } - if (null != record.getUpdateMember()){ - sysUserService.update(Chain.make("member", record.getUpdateMember() ? MemberMode.NORMAL.getCode() : MemberMode.NONE.getCode()), Cnd.where("id", "=", record.getUserId())); - } - if (null != record.getUpdateMember() && record.getUpdateMember()) { - UserMode.addMemberRole(record.getUserId()); - } else { - UserMode.removeMemberRole(record.getUserId()); - } - } - - /** - * 更新会员状态 - * - * @param status 会员状态 - * @param userId 用户id - */ - public static void updateMemberStatus(MemberStatus status, String userId) { - 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 = Chain.make("eCard",null); - if (Strings.isNotBlank(record.getChangeUserState())) { - chain.add("userState", record.getChangeUserState()); - } else if (Strings.isNotBlank(record.getChangePersonType())) { - chain.add("personType", record.getChangePersonType()); - } - sysUserService.update(chain,Cnd.where("id","=",record.getUserId())); - } - - /** - * 变更类型 - */ - private int changeType; - - public static SysUserService sysUserService = ViResource.ioc.getByType(SysUserService.class); - public static SysRoleService sysRoleService = ViResource.ioc.getByType(SysRoleService.class); - public static ViService recordViService = ViResource.ioc.getByType(ViServiceImpl.class); - - MemberChangeHandle(int changeType) { - this.changeType = changeType; - } - - public abstract void change(MemberChangeRecord record); - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java b/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java deleted file mode 100644 index 06f22b3..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberApplyRecord.java +++ /dev/null @@ -1,76 +0,0 @@ -package io.v.nutz.zhgh.member.model; - -import io.v.nutz.base.model.Audit; -import io.v.nutz.base.model.AuditState; -import lombok.Data; -import lombok.experimental.Accessors; -import org.nutz.dao.entity.annotation.*; -import org.nutz.dao.interceptor.annotation.PrevInsert; - -import java.util.Date; - -/** - * 会员申请记录 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -@Table("member_apply_record") -public class MemberApplyRecord { - @Column - @Name - @Comment("ID") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) - private String id; - - @Column - @Comment("工会id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String unionId; - - @Column - @Comment("用户id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String userId; - - @Column - @Comment("状态id") - @ColDefine(type = ColType.INT, width = 8) - private Integer stateId; - - @Column - @Comment("申请时间") - private Date applyTime; - - /** - * @see io.v.nutz.zhgh.member.constant.MemberStatus - */ - @Column - @Comment("加入方式") - @ColDefine(type = ColType.INT, width = 2) - private Integer memberStates; - - @Column - @Comment("分工会审核记录id") - @ColDefine(type = ColType.VARCHAR, width = 32) - public String unionAuditId; - - @Column - @Comment("校工会审核记录id") - @ColDefine(type = ColType.VARCHAR, width = 32) - public String schoolAuditId; - - @One(field = "unionAuditId") - public Audit unionAudit; - - @One(field = "schoolAuditId") - public Audit schoolAudit; - - @One(field = "stateId") - private AuditState auditState; - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java b/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java deleted file mode 100644 index 1b64495..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberChangeRecord.java +++ /dev/null @@ -1,184 +0,0 @@ -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.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.*; -import org.nutz.dao.interceptor.annotation.PrevInsert; - -import java.util.Date; - -/** - * 会员变更记录 - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -@Table("member_change_record") -public class MemberChangeRecord { - @Column - @Name - @Comment("ID") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) - private String id; - - /** - * @see io.v.nutz.zhgh.member.handle.MemberChangeHandle - */ - @Column - @Comment("变更类型") - @ColDefine(type = ColType.VARCHAR, width = 32) - private int type; - - @Column - @Comment("用户id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String userId; - - @Column - @Comment("原单位id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String originUnitId; - - @Column - @Comment("原工会id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String originUnionId; - - @Column - @Comment("原三级单位id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String originThreeUnitId; - - @Column - @Comment("现单位id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String currentUnitId; - - @Column - @Comment("现三级单位id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String currentThreeUnitId; - - @Column - @Comment("现工会id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String currentUnionId; - - @Column - @Comment("备注") - @ColDefine(type = ColType.VARCHAR, width = 500) - private String remark; - - @Column - @Comment("申请时间") - private Date applyTime; - - /** - * @see MemberChangeOrigin - */ - @Column - @Comment("申请来源") - @ColDefine(type = ColType.INT, width = 8) - private Integer applyOrigin; - - /** - * @see MemberChangeRecordMode - */ - @Column - @Comment("记录模式") - @ColDefine(type = ColType.INT, width = 8) - private Integer recordMode; - - @Column - @Comment("状态id") - @ColDefine(type = ColType.INT, width = 8) - private Integer stateId; - - @Column - @Comment("分工会审核记录id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String unionAuditId; - - @Column - @Comment("校工会审核记录id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String schoolAuditId; - - @Column - @Comment("福利会员(true:增加福利会员 false:取消福利会员);针对新入职") - @ColDefine(type = ColType.BOOLEAN) - private Boolean updateWelfareMember; - - @Column - @Comment("是否更新会员") - @ColDefine(type = ColType.BOOLEAN) - private Boolean updateMember; - - @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") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String taskId; - - @One(field = "unionAuditId") - private Audit unionAudit; - - @One(field = "schoolAuditId") - private Audit schoolAudit; - - @One(field = "stateId") - private AuditState auditState; - - @One(field = "originUnitId") - private Sys_unit originUnit; - - @One(field = "originThreeUnitId") - private Sys_unit originThreeUnit; - - @One(field = "originUnionId") - private Sys_union originUnion; - - @One(field = "currentUnitId") - private Sys_unit currentUnit; - - @One(field = "currentThreeUnitId") - private Sys_unit currentThreeUnit; - - @One(field = "currentUnionId") - private Sys_union currentUnion; - -} diff --git a/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java b/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java deleted file mode 100644 index 32968d6..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/service/MemberService.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.v.nutz.zhgh.member.service; - -import cn.wizzer.framework.page.Pagination; -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.lang.util.NutMap; - -import java.util.List; - -/** - * Todo - * - * @author: 1V - * @date: 2021/1/25 - * @since 1.0 - */ -public interface MemberService extends ViService { - - /** - * 会员变更记录 - * - * @param userId - * @return - */ - List memberChangeRecords(String userId); - - - /** - * 会员变更记录 - * - * @param cnd - * @return - */ - Pagination memberChangeRecords(PageForm pageForm, CndPlus cnd); - - /** - * 某会员历史变更记录 - * @param userId - * @return - */ - List memberHistoryRecordsByUserId(String userId); -} diff --git a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java b/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java deleted file mode 100644 index b2f3f08..0000000 --- a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberServiceImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -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.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; -import org.nutz.dao.sql.Sql; -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.util.NutMap; -import org.nutz.plugins.wkcache.annotation.CacheDefaults; - -import java.util.List; - - -/** - * @author 1V - */ -@IocBean(args = {"refer:dao"}) -@CacheDefaults(cacheName = "member") -public class MemberServiceImpl extends ViServiceImpl implements MemberService { - public MemberServiceImpl(Dao dao) { - super(dao); - } - - private final String MEMBER_CHANGE_RECORDS = """ - SELECT - mcr.*, - LEFT ( mcr.applyTime, 10 ) applyDate, - u.username, - u.loginname, - u.unitname, - u.unitcode, - u.unionname, - u.unioncode, - u.threeUnitName, - u.unionGroupName, - state.stateName, - state.stateColor, - originUnit.unitcode originUnitCode, - originUnit.`name` originUnitName, - originUnion.unioncode originUnionCode, - originUnion.unionname originUnionName, - currentUnit.unitcode currentUnitCode, - currentUnit.`name` currentUnitName, - currentUnion.unioncode currentUnionCode, - currentUnion.unionname currentUnionName, - originThreeUnit.`name` originThreeUnitName, - currentThreeUnit.`name` currentThreeUnitName - FROM - member_change_record mcr - LEFT JOIN `user` u ON mcr.userId = u.id - LEFT JOIN audit_state state ON mcr.stateId = state.stateId - LEFT JOIN sys_unit originUnit ON mcr.originUnitId = originUnit.id - 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 sys_unit originThreeUnit ON mcr.originThreeUnitId = originThreeUnit.id - LEFT JOIN sys_unit currentThreeUnit ON mcr.currentThreeUnitId = currentThreeUnit.id - $condition - """; - - @Override - public List memberChangeRecords(String userId) { - Sql sql = Sqls.create(MEMBER_CHANGE_RECORDS); - sql.setCondition(Cnd.where("mcr.userId", "=", userId).desc("mcr.applyTime")); - return listMap(sql); - } - - @Override - public Pagination memberChangeRecords(PageForm pageForm, CndPlus cnd) { - Sql sql = Sqls.create(MEMBER_CHANGE_RECORDS).setCondition(cnd); - return list(pageForm, sql); - } - - - @Override - public List memberHistoryRecordsByUserId(String userId) { - 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 - """); - Cnd cnd = Cnd.NEW(); - cnd.and("u.id", "=", userId); - cnd.desc("his.changeTime"); - sql.setCondition(cnd); - return listMap(sql); - } -} diff --git a/src/main/java/io/v/nutz/zhgh/mobile/member/MemberAuditUnionController.java b/src/main/java/io/v/nutz/zhgh/mobile/member/MemberAuditUnionController.java deleted file mode 100644 index c18a6af..0000000 --- a/src/main/java/io/v/nutz/zhgh/mobile/member/MemberAuditUnionController.java +++ /dev/null @@ -1,112 +0,0 @@ -package io.v.nutz.zhgh.mobile.member; - -import cn.wizzer.framework.base.service.BaseService; -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.MemberApplyState; -import io.v.nutz.web.commons.utils.ShiroUtil; -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.Lang; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; - -/** - * @author zhf - * @date 2021/9/26 9:24 - * @description - */ -@IocBean -@At("/mobile/member/audit") -@Ok("json:full") -public class MemberAuditUnionController { - - @At("") - @Ok("beetl:/mobile/member/audit_list.html") - public void indext() { - } - - @Inject - private BaseService baseService; - - - @At - @ViReturn - public Object pageData(int pageNumber, int pageSize, boolean isAudit, Integer year) { - Sql sql = Sqls.create(""" - SELECT - mar.*, - st.stateName, - st.stateColor, - u.unionname, - u.username, - u.loginname, - u.personType - FROM - `member_apply_record` mar - LEFT JOIN audit_state st ON st.stateId = mar.stateId - LEFT JOIN `user` u ON u.id = mar.userId - $condition - """); - - CndPlus cnd = CndPlus.create(); - cnd.and("mar.memberStates", "=", 1); - - if (ShiroUtil.hasAnyRoles("sysadmin")) { - cnd.and("mar.stateId", "in", isAudit ? Lang.array(MemberApplyState.UNION_FAIL, MemberApplyState.SCHOOL_UNION_FAIL, MemberApplyState.NORMAL_MEMBER) : Lang.array(MemberApplyState.UNION, MemberApplyState.SCHOOL_UNION)); - } else { - if (ShiroUtil.hasAnyRoles("A06,wyh02") && ShiroUtil.hasAnyRoles("H04")) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("mar.stateId", isAudit ? ">" : "=", MemberApplyState.SCHOOL_UNION); - seg.or(CndPlus.exps("mar.unionId", "=", Vi.getUnionId()).and("mar.stateId", isAudit ? ">" : "=", MemberApplyState.UNION)); - cnd.and(seg); - } else if (ShiroUtil.hasAnyRoles("A06,wyh02")) { - cnd.and("mar.stateId", isAudit ? ">" : "=", MemberApplyState.SCHOOL_UNION); - } else if (ShiroUtil.hasAnyRoles("H04")) { - cnd.and("mar.unionId", "=", Vi.getUnionId()); - cnd.and("mar.stateId", isAudit ? ">" : "=", MemberApplyState.UNION); - } - - - /*if (ShiroUtil.hasAnyRoles("A06,wyh02")) { - cnd.and("mar.stateId", isAudit ? ">" : "=", MemberApplyState.SCHOOL_UNION); - } else if (ShiroUtil.hasAnyRoles("H04")) { - cnd.and("mar.unionId", "=", Vi.getUnionId()); - cnd.and("mar.stateId", isAudit ? ">" : "=", MemberApplyState.UNION); - }*/ - } - - /* if (!ShiroUtil.hasAnyRoles("sysadmin")) { - if (ShiroUtil.hasAnyRoles("A06,wyh02")) { - cnd.and("mar.stateId", isAudit ? ">" : "=", MemberApplyState.SCHOOL_UNION); - } - }*/ - - cnd.andEx("YEAR(mar.applyTime)", "=", year); - - cnd.asc("mar.stateId"); - cnd.desc("mar.applyTime"); - sql.setCondition(cnd); - return baseService.listPageMap(pageNumber, pageSize, sql); - } - - - @At("/findOne") - @Ok("re") - public String findOne(Integer stateId) { - if (stateId == MemberApplyState.UNION && ShiroUtil.hasAnyRoles("H04,A06,sysadmin")) { - return "beetl:/mobile/member/union_Audit.html"; - } else if (stateId == MemberApplyState.SCHOOL_UNION && ShiroUtil.hasAnyRoles("A06,sysadmin")) { - return "beetl:/mobile/member/school_Audit.html"; - } /*else if (stateId == MemberApplyState.NORMAL_MEMBER || stateId == MemberApplyState.UNION_FAIL || stateId == MemberApplyState.SCHOOL_UNION_FAIL) { - return "beetl:/mobile/member/detail.html"; - }*/ - return "beetl:/mobile/member/detail.html"; - } - - -} diff --git a/src/main/java/io/v/nutz/zhgh/mobile/member/MemberChangeAuditController.java b/src/main/java/io/v/nutz/zhgh/mobile/member/MemberChangeAuditController.java deleted file mode 100644 index 059853a..0000000 --- a/src/main/java/io/v/nutz/zhgh/mobile/member/MemberChangeAuditController.java +++ /dev/null @@ -1,31 +0,0 @@ -package io.v.nutz.zhgh.mobile.member; - -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; - -import java.util.List; - -/** - * @ClassName MemberChangeAuditController - * @Description TODO - * @Author zhf - * @Date 2023/8/1 9:21 - */ -@IocBean -@At("/mobile/member/change/audit") -@Ok("json:full") -public class MemberChangeAuditController { - - @At("/union") - @Ok("beetl:/mobile/member/union_audit_change_list.html") - public void index() { - } - - @At("/school") - @Ok("beetl:/mobile/member/school_audit_change_list.html") - public void index2() { - } - - -} diff --git a/src/main/java/io/v/nutz/zhgh/mobile/member/MemberMobileController.java b/src/main/java/io/v/nutz/zhgh/mobile/member/MemberMobileController.java index 896c91e..f5ab59a 100644 --- a/src/main/java/io/v/nutz/zhgh/mobile/member/MemberMobileController.java +++ b/src/main/java/io/v/nutz/zhgh/mobile/member/MemberMobileController.java @@ -3,7 +3,7 @@ package io.v.nutz.zhgh.mobile.member; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.service.BaseService; -import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import io.v.nutz.base.query.PageForm; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.web.commons.utils.ShiroUtil; @@ -27,7 +27,7 @@ import java.util.List; public class MemberMobileController { @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private BaseService baseService; diff --git a/src/main/java/io/v/nutz/zhgh/mobile/selfApplyUser/controller/MApplyUserAuditController.java b/src/main/java/io/v/nutz/zhgh/mobile/selfApplyUser/controller/MApplyUserAuditController.java index cf37fa0..c552b4f 100644 --- a/src/main/java/io/v/nutz/zhgh/mobile/selfApplyUser/controller/MApplyUserAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/mobile/selfApplyUser/controller/MApplyUserAuditController.java @@ -8,7 +8,7 @@ import io.v.nutz.base.utils.MsgApi; import io.v.nutz.base.utils.Roles; import io.v.nutz.base.query.PageForm; import io.v.nutz.web.commons.base.Globals; -import io.v.nutz.zhgh.member.UserMode; +import io.v.nutz.zhgh.staffmanage.member.UserMode; import io.v.nutz.zhgh.mobile.selfApplyUser.models.SelfApplyUser; import io.v.nutz.zhgh.shopping.models.ShoppingType; import io.v.nutz.sys.models.Sys_user; diff --git a/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/controller/ZheJiangMutualInsuranceQueryController.java b/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/controller/ZheJiangMutualInsuranceQueryController.java index 378621f..c67211d 100644 --- a/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/controller/ZheJiangMutualInsuranceQueryController.java +++ b/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/controller/ZheJiangMutualInsuranceQueryController.java @@ -3,24 +3,15 @@ package io.v.nutz.zhgh.mutualInsurance.zhejiang.controller; 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 cn.hutool.json.JSONUtil; import io.v.nutz.base.page.Pagination; import io.v.nutz.base.result.Result; -import io.v.nutz.base.utils.PageUtil; -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.MemberMode; import io.v.nutz.zhgh.mutualInsurance.zhejiang.param.ZheJiangMutualInsuranceUserPageForm; import io.v.nutz.zhgh.mutualInsurance.zhejiang.service.ZheJiangMutualInsuranceUserService; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; 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.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; diff --git a/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/service/impl/ZheJiangMutualInsuranceUserServiceImpl.java b/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/service/impl/ZheJiangMutualInsuranceUserServiceImpl.java index aabdb89..99bc211 100644 --- a/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/service/impl/ZheJiangMutualInsuranceUserServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/mutualInsurance/zhejiang/service/impl/ZheJiangMutualInsuranceUserServiceImpl.java @@ -6,7 +6,7 @@ import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.User; import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.zhgh.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; import io.v.nutz.zhgh.mutualInsurance.zhejiang.model.ZheJiangMutualInsuranceUserInfo; import io.v.nutz.zhgh.mutualInsurance.zhejiang.param.ZheJiangMutualInsuranceUserPageForm; import io.v.nutz.zhgh.mutualInsurance.zhejiang.service.ZheJiangMutualInsuranceUserService; diff --git a/src/main/java/io/v/nutz/zhgh/member/MemberMode.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/MemberMode.java similarity index 89% rename from src/main/java/io/v/nutz/zhgh/member/MemberMode.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/MemberMode.java index b095b30..c9a3405 100644 --- a/src/main/java/io/v/nutz/zhgh/member/MemberMode.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/MemberMode.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member; +package io.v.nutz.zhgh.staffmanage.member; import lombok.Getter; diff --git a/src/main/java/io/v/nutz/zhgh/member/UserMode.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/UserMode.java similarity index 92% rename from src/main/java/io/v/nutz/zhgh/member/UserMode.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/UserMode.java index 918c977..226fd9e 100644 --- a/src/main/java/io/v/nutz/zhgh/member/UserMode.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/UserMode.java @@ -1,12 +1,10 @@ -package io.v.nutz.zhgh.member; +package io.v.nutz.zhgh.staffmanage.member; import io.v.nutz.base.utils.Roles; 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.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; @@ -174,7 +172,7 @@ 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)); + sysUserService.update(Chain.make("member", MemberMode.NORMAL.getCode()).add("memberJoinTime", new Date()), Cnd.where("id", "=", userid)); addRoleAndFlush(userid, Roles.MEMBER); @@ -189,7 +187,7 @@ public interface UserMode { static void addMemberRole(String[] userids) { SysUserService sysUserService = ioc.getByType(SysUserService.class); - sysUserService.update(Chain.make("member", MemberMode.NORMAL.getCode()).add("memberJoinTime", new Date()).add("memberStatus", MemberStatus.NORMAL.getCode()).add("memberOrigin", MemberOrigin.BATCH.getCode()), Cnd.where("id", "in", userids)); + sysUserService.update(Chain.make("member", MemberMode.NORMAL.getCode()).add("memberJoinTime", new Date()), Cnd.where("id", "in", userids)); addRoleAndFlush(userids, Roles.MEMBER); diff --git a/src/main/java/io/v/nutz/zhgh/member/WelfareMemberMode.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/WelfareMemberMode.java similarity index 88% rename from src/main/java/io/v/nutz/zhgh/member/WelfareMemberMode.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/WelfareMemberMode.java index 09f6f0d..69c033a 100644 --- a/src/main/java/io/v/nutz/zhgh/member/WelfareMemberMode.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/WelfareMemberMode.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member; +package io.v.nutz.zhgh.staffmanage.member; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeOrigin.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeOrigin.java new file mode 100644 index 0000000..8d350f1 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeOrigin.java @@ -0,0 +1,33 @@ +package io.v.nutz.zhgh.staffmanage.member.constant; + +import io.v.nutz.base.annontation.SelectEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 会员变更来源 + * + * @author: 1V + * @date: 2021/1/25 + * @since 1.0 + */ +@Getter +@SelectEnum +@AllArgsConstructor +public enum MemberChangeOrigin { + + PERSONAL("个人申请变更"), + BRANCH_UNION("分工会变更"), + BRANCH_UNION_VERIFICATION("分工会名单事项核对"), + UNION_GROUP("工会小组变更"), + SCHOOL_UNION("校工会变更"), + SCHOOL_UNION_VERIFICATION("校工会名单事项核对"), + SYSTEM("系统数据更新"), + HAND_MOVEMENT("手动数据更新"), + OTHER("其他方式变更"); + + /** + * 避免和枚举类的name冲突 + */ + public final String changeOriginName; +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeType.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeType.java new file mode 100644 index 0000000..9e2980e --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/constant/MemberChangeType.java @@ -0,0 +1,36 @@ +package io.v.nutz.zhgh.staffmanage.member.constant; + +import io.v.nutz.base.annontation.SelectEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeType + * @Date 2025/1/20 18:57 + * @注释 + */ +@Getter +@SelectEnum +@AllArgsConstructor +public enum MemberChangeType { + + //变更类型 + NEW("NEW","新入职"), + RESTORE("RESTORE","入会"), + WITHDRAWAL("WITHDRAWAL","退会"), + WORK("WORK","在职"), + LEAVE_SCHOOL("LEAVE_SCHOOL","离校"), + RETIRE("RETIRE","退休"), + RESIGN("RESIGN","辞职"), + OUT("OUT","调出"), + LEAVE_OFFICE("LEAVE_OFFICE","离职"), + OTHER("OTHER","其他"), + UNIT_CHANGE("UNIT_CHANGE","单位异动"), + UNION_CHANGE("UNION_CHANGE","工会关系异动"), + BASIC_CHANGE("BASIC_CHANGE","基本信息异动"); + + private final String type; + private final String changeTypeName; +} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberAgendaController.java similarity index 61% rename from src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberAgendaController.java index 341b1fe..65ddca8 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/MemberAgendaController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberAgendaController.java @@ -1,14 +1,14 @@ -package io.v.nutz.zhgh.member.controller; +package io.v.nutz.zhgh.staffmanage.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.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.staffmanage.member.service.MemberCommonService; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -38,7 +38,7 @@ import java.util.stream.Collectors; @RequiresAuthentication public class MemberAgendaController { @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private Vi vi; @@ -66,17 +66,17 @@ public class MemberAgendaController { """); int marUnionNum = 0; - Cnd marUnionCnd = Cnd.where("mar.stateId", "=", MemberApplyState.UNION); +// Cnd marUnionCnd = Cnd.where("mar.stateId", "=", MemberApplyState.UNION); if (!anyRoles) { - marUnionCnd.and("u.unionid", "=", Vi.getUnionId()); +// marUnionCnd.and("u.unionid", "=", Vi.getUnionId()); } - marSql.setCondition(marUnionCnd); +// marSql.setCondition(marUnionCnd); marUnionNum = memberService.count(marSql); list.add(new NutMap().addv("title", title).addv("iconClass", vi.getIconByPath("/platform/member/apply/audit/union")).addv("label", "待院级工会入会审核").addv("number", marUnionNum).addv("url", "/platform/member/apply/audit/union")); int marSchoolNum = 0; - Cnd marSchoolCnd = Cnd.where("mar.stateId", "=", MemberApplyState.SCHOOL_UNION); - marSql.setCondition(marSchoolCnd); +// Cnd marSchoolCnd = Cnd.where("mar.stateId", "=", MemberApplyState.SCHOOL_UNION); +// marSql.setCondition(marSchoolCnd); marSchoolNum = memberService.count(marSql); list.add(new NutMap().addv("title", title).addv("iconClass", vi.getIconByPath("/platform/member/apply/audit/school")).addv("label", "待校工会入会审核").addv("number", marSchoolNum).addv("url", "/platform/member/apply/audit/school")); @@ -92,19 +92,19 @@ public class MemberAgendaController { """); int mcrUnionNum = 0; - Cnd mcrUnionCnd = Cnd.where("mcr.stateId", "=", MemberChangeApplyState.UNION).and("recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); - if (!anyRoles) { - mcrUnionCnd.and("u.unionid", "=", Vi.getUnionId()); - } - mcrSql.setCondition(mcrUnionCnd); - mcrUnionNum = memberService.count(mcrSql); - list.add(new NutMap().addv("title", title).addv("iconClass", vi.getIconByPath("/platform/member/apply/audit/union")).addv("label", "待院级工会变更审核").addv("number", mcrUnionNum).addv("url", "/platform/member/change/audit/union")); - - int mcrSchoolNum = 0; - Cnd mcrSchoolCnd = Cnd.where("mcr.stateId", "=", MemberChangeApplyState.SCHOOL_UNION).and("recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); - mcrSql.setCondition(mcrSchoolCnd); - mcrSchoolNum = memberService.count(mcrSql); - list.add(new NutMap().addv("title", title).addv("iconClass", vi.getIconByPath("/platform/member/apply/audit/school")).addv("label", "待校工会变更审核").addv("number", mcrSchoolNum).addv("url", "/platform/member/change/audit/school")); +// Cnd mcrUnionCnd = Cnd.where("mcr.stateId", "=", MemberChangeApplyState.UNION).and("recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); +// if (!anyRoles) { +// mcrUnionCnd.and("u.unionid", "=", Vi.getUnionId()); +// } +// mcrSql.setCondition(mcrUnionCnd); +// mcrUnionNum = memberService.count(mcrSql); +// list.add(new NutMap().addv("title", title).addv("iconClass", vi.getIconByPath("/platform/member/apply/audit/union")).addv("label", "待院级工会变更审核").addv("number", mcrUnionNum).addv("url", "/platform/member/change/audit/union")); +// +// int mcrSchoolNum = 0; +// Cnd mcrSchoolCnd = Cnd.where("mcr.stateId", "=", MemberChangeApplyState.SCHOOL_UNION).and("recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); +// mcrSql.setCondition(mcrSchoolCnd); +// mcrSchoolNum = memberService.count(mcrSql); +// list.add(new NutMap().addv("title", title).addv("iconClass", vi.getIconByPath("/platform/member/apply/audit/school")).addv("label", "待校工会变更审核").addv("number", mcrSchoolNum).addv("url", "/platform/member/change/audit/school")); Sys_user user = (Sys_user) ShiroUtil.getPrincipal(); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberCommonController.java similarity index 68% rename from src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberCommonController.java index 4b30bc1..d3dbb23 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/MemberCommonController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberCommonController.java @@ -1,18 +1,20 @@ -package io.v.nutz.zhgh.member.controller; +package io.v.nutz.zhgh.staffmanage.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.service.ViService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_unit; import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.models.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 io.v.nutz.zhgh.staffmanage.member.UserMode; +import io.v.nutz.zhgh.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -40,7 +42,7 @@ import java.util.stream.Collectors; public class MemberCommonController { @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private SysUserService sysUserService; @@ -57,6 +59,31 @@ public class MemberCommonController { @Inject("MemberChangeRecord") private ViService changeRecordViService; + + @At + @RequiresAuthentication + public Object fetchMemberUserById(String userId){ + if (StrUtil.isBlank(userId)) { + return Result.error("未获取到参数,无法查询"); + } + // 根据权限判断是否可以查询用户信息 + User user = dao.fetch(User.class, Cnd.where("id", "=", userId)); + if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionAdmin, SchoolUnionMemberAdmin")) { + if (ShiroUtil.hasAnyRoles("H04, branchUnionMemberAdmin")) { + if (!Vi.getUnionId().equals(user.getUnionid())) { + return Result.error("您没有权限!"); + } + } else { + if (user.getId().equals(ShiroUtil.getUserId())){ + return Result.error("您没有权限!"); + } + } + } + return Result.success().addData(user); + } + + + /** * 用户信息 * @@ -206,59 +233,59 @@ public class MemberCommonController { 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 = Lang.obj2nutmap(userHistory); - if (StrUtil.isNotBlank(userHistory.getMemberChangeRecordId())) { + if (StrUtil.isNotBlank(userHistory.getRecordId())) { //从变更来的 特殊 需要审核 - MemberChangeRecord changeRecord = dao.fetch(MemberChangeRecord.class, userHistory.getMemberChangeRecordId()); - String originUnitId = StrUtil.blankToDefault(changeRecord.getOriginUnitId(), ""); - String currentUnitId = StrUtil.blankToDefault(changeRecord.getCurrentUnitId(), ""); - - if (!originUnitId.equals(currentUnitId) && StrUtil.isNotBlank(currentUnitId)) { - compareData.add(NutMap.NEW() - .addv("columnName", "单位") - .addv("newValue", unitMap.get(currentUnitId)) - .addv("oldValue", unitMap.get(originUnitId)) - ); - } - - String userState = StrUtil.blankToDefault(changeRecord.getChangeUserState(), ""); - if (StrUtil.isNotBlank(userState) && !userState.equals(sysUserMap.getString("userState", ""))) { - compareData.add(NutMap.NEW() - .addv("columnName", "在职状态") - .addv("newValue", userState) - .addv("oldValue", sysUserMap.getString("userState")) - ); - } - - String personType = StrUtil.blankToDefault(changeRecord.getChangePersonType(), ""); - if (StrUtil.isNotBlank(personType) && !personType.equals(sysUserMap.getString("personType", ""))) { - compareData.add(NutMap.NEW() - .addv("columnName", "人员类型") - .addv("newValue", personType) - .addv("oldValue", sysUserMap.getString("personType")) - ); - } - - //在职,退休,离职可能会发生会员和福利会员的变化 - if(changeRecord.getUpdateMember()!=null && changeRecord.getUpdateMember()){ - //说明要改变会员状态 - compareData.add(NutMap.NEW() - .addv("columnName", "会员资格") - .addv("newValue", "否") - .addv("oldValue", "是") - ); - } - - if(changeRecord.getUpdateWelfareMember()!=null && changeRecord.getUpdateWelfareMember()){ - //说明要改变福利会员状态 - compareData.add(NutMap.NEW() - .addv("columnName", "福利会员资格") - .addv("newValue", "否") - .addv("oldValue", "是") - ); - } +// MemberChangeRecord changeRecord = dao.fetch(MemberChangeRecord.class, userHistory.getRecordId()); +// String originUnitId = StrUtil.blankToDefault(changeRecord.getOriginUnitId(), ""); +// String currentUnitId = StrUtil.blankToDefault(changeRecord.getCurrentUnitId(), ""); +// +// if (!originUnitId.equals(currentUnitId) && StrUtil.isNotBlank(currentUnitId)) { +// compareData.add(NutMap.NEW() +// .addv("columnName", "单位") +// .addv("newValue", unitMap.get(currentUnitId)) +// .addv("oldValue", unitMap.get(originUnitId)) +// ); +// } +// +// String userState = StrUtil.blankToDefault(changeRecord.getChangeUserState(), ""); +// if (StrUtil.isNotBlank(userState) && !userState.equals(sysUserMap.getString("userState", ""))) { +// compareData.add(NutMap.NEW() +// .addv("columnName", "在职状态") +// .addv("newValue", userState) +// .addv("oldValue", sysUserMap.getString("userState")) +// ); +// } +// +// String personType = StrUtil.blankToDefault(changeRecord.getChangePersonType(), ""); +// if (StrUtil.isNotBlank(personType) && !personType.equals(sysUserMap.getString("personType", ""))) { +// compareData.add(NutMap.NEW() +// .addv("columnName", "人员类型") +// .addv("newValue", personType) +// .addv("oldValue", sysUserMap.getString("personType")) +// ); +// } +// +// //在职,退休,离职可能会发生会员和福利会员的变化 +// if(changeRecord.getUpdateMember()!=null && changeRecord.getUpdateMember()){ +// //说明要改变会员状态 +// compareData.add(NutMap.NEW() +// .addv("columnName", "会员资格") +// .addv("newValue", "否") +// .addv("oldValue", "是") +// ); +// } +// +// if(changeRecord.getUpdateWelfareMember()!=null && changeRecord.getUpdateWelfareMember()){ +// //说明要改变福利会员状态 +// compareData.add(NutMap.NEW() +// .addv("columnName", "福利会员资格") +// .addv("newValue", "否") +// .addv("oldValue", "是") +// ); +// } //需要包含分工会、校工会审核信息 - String memberChangeRecordId = userHistory.getMemberChangeRecordId(); + String memberChangeRecordId = userHistory.getRecordId(); MemberChangeRecord memberChangeRecord = dao.fetch(MemberChangeRecord.class, memberChangeRecordId); dao.fetchLinks(memberChangeRecord,"auditState|unionAudit|schoolAudit"); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberSelfAgentController.java similarity index 82% rename from src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberSelfAgentController.java index a0da3b4..13a6bc7 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/MemberSelfAgentController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/MemberSelfAgentController.java @@ -1,12 +1,12 @@ -package io.v.nutz.zhgh.member.controller; +package io.v.nutz.zhgh.staffmanage.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.zhgh.member.constant.MemberChangeRecordMode; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckSelfTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Cnd; import org.nutz.ioc.loader.annotation.Inject; @@ -41,8 +41,8 @@ public class MemberSelfAgentController { List checkTasks = baseService.dao().query(MemberCheckTask.class, Cnd.where("startTime", "<", DateUtil.date()) .and("endTime", ">", DateUtil.date()) .and("createTaskMode", "=", 2) - .and("year", "=", DateUtil.thisYear()) - .and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode())); + .and("year", "=", DateUtil.thisYear())); +// .and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode())); final String title = "【会员系统】"; List list = new ArrayList<>(); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java new file mode 100644 index 0000000..5f94302 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java @@ -0,0 +1,166 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.apply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.models.User; +import io.v.nutz.sys.services.SysLocalProcessService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberApplyToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.param.pageForm.MemberApplyPageForm; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.specialstaff.model.SpecialStaff; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +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.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplyBranchUnionAuditController + * @Date 2025/2/12 8:38 + * @注释 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/apply/branchUnion/audit") +public class MemberApplyBranchUnionAuditController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService memberCommonService; + @Inject + private SysLocalProcessService localProcessService; + + @At("/") + @Ok("beetl:/platform/member/apply/branchUnionAudit/index.html") + @RequiresPermissions("member.apply.branchUnion.audit") + public void index() {} + + + @At + @RequiresPermissions("member.apply.branchUnion.audit") + public Object pageData(MemberApplyPageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + record.*, + state.stateName, + su.unionname AS allocationUnionName + FROM + member_apply_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + LEFT JOIN sys_union su ON su.id = record.allocationUnionId + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "record."); + if (!ShiroUtil.hasAnyRoles("sysadmin, A06, SchoolUnionMemberAdmin")) { + cnd.and("record.allocationUnionId", "=", Vi.getUnionId()); + } + if (pageForm.getAudit()) { + cnd.and("record.applyStateId", ">", 50); + } else { + cnd.and("record.applyStateId", "=", 50); + } + cnd.desc("record.applyDateTime"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.branchUnion.audit") + @SLog(type = "memberApply", tag = "会员入会申请", msg = "分工会审核") + public Object approval(@Param("audit") Audit audit, String id){ + audit.setAuditor(ShiroUtil.getUserId()); + audit.setLoginname(ShiroUtil.getPlatformLoginname()); + audit.setUsername(ShiroUtil.getPlatformUsername()); + audit.setAuditTime(DateUtil.date()); + audit = dao.insert(audit); + + MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id); + if (audit.getAuditType() == 2) { + // 退回修改 + record.setApplyStateId(60); + } else if (audit.getAuditType() == 1) { + // 通过 + record.setApplyStateId(80); + } else { + // 拒绝 + record.setApplyStateId(70); + } + + record.setBranchUnionAuditId(audit.getId()); + dao.updateIgnoreNull(record); + + if (audit.getAuditType() == 2) { + MemberApplyToDoHandler.CREATE_APPLY_RE_MODIFY_TASK.exec(record, null); + } else if (audit.getAuditType() == 1) { + MemberApplyToDoHandler.COMPLETE_PROCESS.exec(record, null); + // 判断是否改变了工会关系 + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); + if (!ObjectUtil.equals(user.getUnionid(), record.getAllocationUnionId())) { + Sys_union union = dao.fetch(Sys_union.class, Cnd.where("id", "=", record.getAllocationUnionId())); + SpecialStaff staff = new SpecialStaff(); + staff.setUserId(record.getUserId()); + staff.setPersonnelRelationUnitId(user.getUnitid()); + staff.setPersonnelRelationUnitName(user.getUnitname()); + staff.setUnionRelationUnionId(union.getId()); + staff.setUnionRelationUnionName(union.getUnionname()); + staff.setIsManyUnit(false); + staff.setSpecialStaffType("HMC_RELATION"); + dao.insert(staff); + } + + Sys_user sysUser = new Sys_user(); + BeanUtil.copyProperties(record, sysUser); + sysUser.setId(user.getId()); + dao.updateIgnoreNull(sysUser); + } else { + MemberApplyToDoHandler.REFUSE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核拒绝")); + } + MemberApplyToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.branchUnion.audit") + @SLog(type = "memberApply", tag = "会员入会申请", msg = "分工会撤回") + public Object doRevoke(String id){ + MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id); + dao.update(MemberApplyRecord.class, Chain.make("applyStateId", 20) + .add("branchUnionAuditId", null), Cnd.where("id", "=", id)); + dao.clear(Audit.class, Cnd.where("id", "=", record.getBranchUnionAuditId())); + // 待办撤回 + localProcessService.revokeTask("MEMBER_APPLY@" + id, "分工会审核"); + return null; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java new file mode 100644 index 0000000..b79cc10 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java @@ -0,0 +1,121 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.apply; + +import cn.wizzer.framework.base.Result; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.utils.MsgApi; +import io.v.nutz.sys.models.User; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberApplyToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +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; +import org.nutz.mvc.annotation.Ok; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplyController + * @Date 2025/1/20 19:01 + * @注释 会员申请 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/apply/submit") +public class MemberApplyController { + + @Inject + private Dao dao; + @Inject + private MsgApi msgApi; + @Inject + private MemberCommonService commonService; + + @At("/") + @Ok("beetl:/platform/member/apply/submit/index.html") + @RequiresPermissions("member.apply.submit") + public void index() { + } + + @At("/h5") + @Ok("beetl:/platform/member/apply/submit/index.html") + @RequiresPermissions("member.apply.submit") + public void h5() { + } + + @At + @ViReturn + @RequiresPermissions("member.apply.submit") + public Object findOne(String id, Boolean isEdit){ + if (isEdit) { + return dao.fetch(MemberApplyRecord.class, id); + } + return dao.fetch(User.class, Cnd.where("id", "=", id)); + } + + + @At + @RequiresPermissions("member.apply.submit") + public Object findApplyById(String id){ + return Result.success().addData(dao.fetch(MemberApplyRecord.class, id)); + } + + + @At + @ViReturn + @RequiresPermissions("member.apply.submit") + @SLog(tag = "会员入会申请", msg = "保存申请") + public Object doSave(MemberApplyRecord record){ + record.setMember(true); + record.setUserId(ShiroUtil.getUserId()); + // 变更来源 个人 + record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); + // 变更类型 入会 + record.setChangeType(MemberChangeType.RESTORE.name()); + record.setChangeTypes(List.of(MemberChangeType.RESTORE.name())); + // 待提交 + record.setApplyStateId(10); + dao.insertOrUpdate(record); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.submit") + @SLog(tag = "会员入会申请", msg = "提交申请") + public Object doSubmit(MemberApplyRecord record){ + record.setMember(true); + record.setUserId(ShiroUtil.getUserId()); + record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); + record.setChangeType(MemberChangeType.RESTORE.name()); + record.setChangeTypes(List.of(MemberChangeType.RESTORE.name())); + // 待校工会审核 + record.setApplyStateId(20); + dao.insertOrUpdate(record); + + // 审核流程开始 + MemberApplyToDoHandler.START_PROCESS.exec(record, null); + MemberApplyToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); + + List schoolLoginNameList = commonService.getSchoolOrBranchUnionMemberAdminLoginNames("school", null); + String schoolLoginNameListStr = schoolLoginNameList.stream().distinct().collect(Collectors.joining(",")); + + String content = "%s老师正申请加入工会,请您点击此条消息或前往智慧工会进行审核"; + msgApi.sendMsg(List.of("DingTalk"), schoolLoginNameListStr, 2, "协会入会邀请", content, "", ""); + return null; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java new file mode 100644 index 0000000..af8814d --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java @@ -0,0 +1,143 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.apply; + +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.services.SysLocalProcessService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.param.pageForm.MemberApplyPageForm; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.zgfw.model.difficult.Zgfw_knbf; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +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.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplyMineController + * @Date 2025/2/12 8:39 + * @注释 会员入会 我的申请 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/apply/mine") +public class MemberApplyMineController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService memberCommonService; + @Inject + private SysLocalProcessService sysLocalProcessService; + + @At("/") + @Ok("beetl:/platform/member/apply/mine/index.html") + @RequiresPermissions("member.apply.mine") + public void index() { + } + + + @At + @RequiresPermissions("member.apply.mine") + public Object pageData(MemberApplyPageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + record.*, + state.stateName + FROM + member_apply_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "record."); + if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin")) { + if (ShiroUtil.hasAnyRoles("H04,branchUnionMemberAdmin")) { + cnd.and("record.unionId", "=", Vi.getUnionId()); + } else { + cnd.and("record.userId", "=", ShiroUtil.getUserId()); + } + } + cnd.desc("record.applyDateTime"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.mine") + @SLog(tag = "会员入会申请", msg = "撤回申请") + public Object doRevoke(String id){ + dao.update(MemberApplyRecord.class, Chain.make("applyStateId", 10), Cnd.where("id", "=", id)); + sysLocalProcessService.revokeTask("MEMBER_APPLY@" + id,"待提交申请"); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.mine") + @SLog(tag = "会员入会申请", msg = "删除申请") + public Object doDelete(String id){ + dao.clear(MemberApplyRecord.class, Cnd.where("id", "=", id)); + sysLocalProcessService.deleteProcessInstance("MEMBER_APPLY@" + id); + return null; + } + + + @At + @ViReturn + @RequiresPermissions(value = {"member.apply.mine", "member.apply.branchUnion.audit", "member.apply.schoolUnion.audit"}, logical = Logical.OR) + public Object findMemberApplyRecord(String id){ + Sql sql = Sqls.create(""" + SELECT + record.*, + u.unionname AS userUnionName, + u.unitname AS userUnitName, + state.stateName, + su.unionname AS allocationUnionName + FROM + member_apply_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + LEFT JOIN `user` u ON u.id = record.userId + LEFT JOIN sys_union su ON su.id = record.allocationUnionId + WHERE + record.id = @id + """).setParam("id", id); + sql.setCallback(Sqls.callback.map()); + dao.execute(sql); + NutMap nutMap = (NutMap) sql.getResult(); + + if (StrUtil.isNotBlank(nutMap.getString("schoolUnionAuditId"))) { + Audit audit = dao.fetch(Audit.class, Cnd.where("id", "=", nutMap.getString("schoolUnionAuditId"))); + nutMap.addv("schoolAudit", audit); + } + + if (StrUtil.isNotBlank(nutMap.getString("branchUnionAuditId"))) { + Audit audit = dao.fetch(Audit.class, Cnd.where("id", "=", nutMap.getString("branchUnionAuditId"))); + nutMap.addv("branchAudit", audit); + } + return nutMap; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java new file mode 100644 index 0000000..c15dc90 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java @@ -0,0 +1,161 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.apply; + +import cn.hutool.core.date.DateUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.sys.services.SysLocalProcessService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberApplyToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.param.pageForm.MemberApplyPageForm; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +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.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +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 java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplySchoolUnionAuditController + * @Date 2025/2/12 8:38 + * @注释 会员入会申请,校工会审核 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/apply/schoolUnion/audit") +public class MemberApplySchoolUnionAuditController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService memberCommonService; + @Inject + private SysLocalProcessService localProcessService; + + @At("/") + @Ok("beetl:/platform/member/apply/schoolUnionAudit/index.html") + @RequiresPermissions("member.apply.schoolUnion.audit") + public void index() {} + + + @At + @RequiresPermissions("member.apply.schoolUnion.audit") + public Object pageData(MemberApplyPageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + record.*, + state.stateName, + su.unionname AS allocationUnionName + FROM + member_apply_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + LEFT JOIN sys_union su ON su.id = record.allocationUnionId + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "record."); + if (pageForm.getAudit()) { + cnd.and("record.applyStateId", ">", 20); + } else { + cnd.and("record.applyStateId", "=", 20); + } + cnd.desc("record.applyDateTime"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.schoolUnion.audit") + @SLog(type = "memberApply", tag = "会员入会申请", msg = "校工会审核") + public Object approval(@Param("audit") Audit audit, String id, String unionId){ + audit.setAuditor(ShiroUtil.getUserId()); + audit.setLoginname(ShiroUtil.getPlatformLoginname()); + audit.setUsername(ShiroUtil.getPlatformUsername()); + audit.setAuditTime(DateUtil.date()); + audit = dao.insert(audit); + + MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id); + if (audit.getAuditType() == 2) { + // 退回修改 + record.setApplyStateId(30); + } else if (audit.getAuditType() == 1) { + // 通过 + record.setApplyStateId(50); + } else { + // 拒绝 + record.setApplyStateId(40); + } + + record.setAllocationUnionId(unionId); + record.setSchoolUnionAuditId(audit.getId()); + dao.updateIgnoreNull(record); + + if (audit.getAuditType() == 2) { + MemberApplyToDoHandler.CREATE_APPLY_RE_MODIFY_TASK.exec(record, null); + String content = "%s老师您好,您的入会申请被校工会退回,您可根据退回原因修改后再次提交,如有疑问请及时联系校工会".formatted(record.getUsername()); + } else if (audit.getAuditType() == 1) { + Sql sql = Sqls.create(""" + SELECT + u.loginname, + u.username + FROM + `sys_user_role` userRole + LEFT JOIN sys_role role ON role.id = userRole.roleId + LEFT JOIN `user` u ON u.id = userRole.userId + WHERE + role.`code` = 'BranchUnionMemberAdmin' and u.unionid = @unionId + group by u.loginname + """).setParam("unionId", unionId); + List list = memberCommonService.listMap(sql); + + List unionLeaderLoginNames = list.stream().map(v -> v.getString("loginname")).toList(); + MemberApplyToDoHandler.CREATE_UNION_TASK.exec(record, NutMap.NEW().addv("unionLeaderLoginNames", unionLeaderLoginNames)); + + for (NutMap map : list) { + String content = "%s老师您好,%s老师的入会申请校工会已通过,现将工会关系划入本工会,请您点击此消息或前往智慧工会进行接收" + .formatted(map.getString("username"), record.getUsername()); + } + } else { + MemberApplyToDoHandler.REFUSE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核拒绝")); + String content = "%s老师您好,您的入会申请被校工会拒绝,如有疑问请及时联系校工会".formatted(record.getUsername()); + } + MemberApplyToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核完成")); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.apply.schoolUnion.audit") + @SLog(type = "memberApply", tag = "会员入会申请", msg = "校工会撤回") + public Object doRevoke(String id){ + MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id); + dao.update(MemberApplyRecord.class, Chain.make("applyStateId", 20) + .add("schoolUnionAuditId", null), Cnd.where("id", "=", id)); + dao.clear(Audit.class, Cnd.where("id", "=", record.getSchoolUnionAuditId())); + // 待办撤回 + localProcessService.revokeTask("MEMBER_APPLY@" + id, "校工会审核"); + return null; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java new file mode 100644 index 0000000..cb15524 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java @@ -0,0 +1,150 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.change; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.utils.Roles; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.sys.models.Sys_unit; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.models.User; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.Logical; +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.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; +import org.nutz.mvc.annotation.Ok; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@IocBean +@Slf4j +@Ok("json:full") +@At("/platform/member/change/apply") +public class MemberChangeApplyController { + + @Inject + private Dao dao; + + @At("") + @Ok("beetl:/platform/member/change/submit/index.html") + @RequiresPermissions("member.change.apply") + public void index() { + } + + @Inject + private MemberCommonService memberService; + + @At + @ViReturn + @RequiresPermissions("member.change.apply") + public Object findChangeById(String id){ + return dao.fetch(MemberChangeRecord.class, id); + } + + + @At + @RequiresPermissions("member.change.apply") + @SLog(tag = "会员变更申请", msg = "保存我的申请") + public Object doSave(MemberChangeRecord record){ + // 检验是否有变更 + if (Lang.isEmpty(record)) { + return Result.error("未获取到异动数据"); + } + List changeInfos = memberService.getChangeInfos(record); + if (Lang.isEmpty(changeInfos)) { + return Result.error("未校验到变更数据,请确认数据是否存在变更"); + } + + try { + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); + // 比较有哪些变更类型 + List changeTypes = memberService.compareChangeType(record, user); + + record.setChangeTypes(changeTypes); + record.setUserId(ShiroUtil.getUserId()); + // 变更来源 个人 + record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); + // 待提交 + record.setApplyStateId(10010); + dao.insertOrUpdate(record); + return Result.success(); + } catch (Exception e) { + return Result.error("保存失败"); + } + } + + + @At + @RequiresPermissions("member.change.apply") + @SLog(tag = "会员变更申请", msg = "提交我的申请") + public Object doSubmit(MemberChangeRecord record){ + // 检验是否有变更 + if (Lang.isEmpty(record)) { + return Result.error("未获取到异动数据"); + } + List changeInfos = memberService.getChangeInfos(record); + if (Lang.isEmpty(changeInfos)) { + return Result.error("未校验到变更数据,请确认数据是否存在变更"); + } + + try { + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); + // 比较有哪些变更类型 + List changeTypes = memberService.compareChangeType(record, user); + record.setChangeTypes(changeTypes); + record.setUserId(ShiroUtil.getUserId()); + // 变更来源 个人 + record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); + // 待分工会审核 + record.setApplyStateId(10020); + dao.insertOrUpdate(record); + + MemberChangeToDoHandler.START_PROCESS.exec(record, null); + MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); + + return Result.success(); + } catch (Exception e) { + log.error("提交失败", e); + return Result.error("提交失败"); + } + } + + + + @At + @ViReturn + @RequiresPermissions(value = {"member.change.branchUnion.audit","member.change.schoolUnion.audit"}, logical = Logical.OR) + public Object getUserByIdForMemberChange(String userId){ + User user = dao.fetch(User.class, Cnd.where("id", "=", userId)); + NutMap nutMap = Lang.obj2nutmap(user); + if (StrUtil.isNotBlank(user.getUnionid())) { + Sys_union union = dao.fetch(Sys_union.class, Cnd.where("id", "=", user.getUnionid())); + nutMap.put("union", union); + } + if (StrUtil.isNotBlank(user.getUnitid())) { + Sys_unit unit = dao.fetch(Sys_unit.class, Cnd.where("id", "=", user.getUnitid())); + nutMap.put("unit", unit); + } + return nutMap; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java new file mode 100644 index 0000000..2e3b19f --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java @@ -0,0 +1,135 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.change; + +import cn.hutool.core.date.DateUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.sys.services.SysLocalProcessService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.param.pageForm.MemberChangePageForm; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +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.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeBranchUnionAuditController + * @Date 2025/2/14 14:13 + * @注释 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/change/branchUnion/audit") +public class MemberChangeBranchUnionAuditController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService memberCommonService; + @Inject + private SysLocalProcessService localProcessService; + + @At("") + @Ok("beetl:/platform/member/change/branchUnionAudit/index.html") + @RequiresPermissions("member.change.branchUnion.audit") + public void index() { + } + + + @At + @RequiresPermissions("member.change.branchUnion.audit") + public Object pageData(MemberChangePageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + record.*, + state.stateName + FROM + member_change_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "record."); + if (pageForm.getAudit()) { + cnd.and("record.applyStateId", ">", 10020); + } else { + cnd.and("record.applyStateId", "=", 10020); + } + cnd.desc("record.applyDateTime"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.branchUnion.audit") + @SLog(type = "memberChange", tag = "会员变更", msg = "分工会审核") + public Object approval(@Param("audit") Audit audit, String id){ + audit.setAuditor(ShiroUtil.getUserId()); + audit.setLoginname(ShiroUtil.getPlatformLoginname()); + audit.setUsername(ShiroUtil.getPlatformUsername()); + audit.setAuditTime(DateUtil.date()); + audit = dao.insert(audit); + + MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id); + if (audit.getAuditType() == 2) { + // 退回修改 + record.setApplyStateId(10030); + } else if (audit.getAuditType() == 1) { + // 通过 + record.setApplyStateId(10050); + } else { + // 拒绝 + record.setApplyStateId(10040); + } + + record.setBranchUnionAuditId(audit.getId()); + dao.updateIgnoreNull(record); + + MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); + if (audit.getAuditType() == 2) { + MemberChangeToDoHandler.CREATE_APPLY_RE_MODIFY_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会退回")); + } else if (audit.getAuditType() == 1) { + MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); + } else { + MemberChangeToDoHandler.REFUSE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核拒绝")); + } + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.branchUnion.audit") + @SLog(type = "memberChange", tag = "会员变更", msg = "分工会撤回") + public Object doRevoke(String id){ + MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id); + dao.update(MemberChangeRecord.class, Chain.make("applyStateId", 10020) + .add("branchUnionAuditId", null), Cnd.where("id", "=", id)); + dao.clear(Audit.class, Cnd.where("id", "=", record.getBranchUnionAuditId())); + // 待办撤回 + localProcessService.revokeTask("MEMBER_CHANGE@" + id, "分工会审核"); + return null; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java similarity index 75% rename from src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java index af8ed3b..3869365 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.change; +package io.v.nutz.zhgh.staffmanage.member.controller.change; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; @@ -6,6 +6,7 @@ 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.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import com.google.common.base.Joiner; @@ -25,15 +26,15 @@ 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.member.MemberMode; -import io.v.nutz.zhgh.member.UserMode; -import io.v.nutz.zhgh.member.WelfareMemberMode; -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 io.v.nutz.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.UserMode; +import io.v.nutz.zhgh.staffmanage.member.WelfareMemberMode; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.member.template.MemberTemp; +import io.v.nutz.zhgh.staffmanage.member.utils.MemberUtils; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -72,13 +73,13 @@ import java.util.stream.Collectors; public class MemberChangeManageController { @At("") - @Ok("beetl:/platform/member/change/Manage.html") + @Ok("beetl:/platform/member/change/manage/index.html") @RequiresPermissions("member.change.mange") public void index() { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private AuditService auditService; @@ -111,8 +112,7 @@ public class MemberChangeManageController { @Param(value = "userState", required = false) String userState, @Param(value = "preparedBy", required = false) String preparedBy, @Param(value = "changeDate", required = false) String changeDate, - @Param(value = "changeType", required = false) String changeType, - @Param(value = "changeTypes", required = false) Integer[] changeTypes, + @Param(value = "changeTypes", required = false) String[] changeTypes, @Param(value = "changed", required = false) Integer changed, @Param(value = "myUnionGroupUser", required = false) Integer myUnionGroupUser, @Param(value = "isMember", required = false) Integer isMember) { @@ -126,31 +126,17 @@ public class MemberChangeManageController { IF( his.id IS NULL, FALSE, TRUE ) hasHis, state.stateId, state.stateName, - state.stateColor, - IF( mcr.userId IS NULL OR mcr.stateId = @success, TRUE, FALSE ) apply, - IF( mcr.stateId IN ( $failStates ), TRUE, FALSE ) reApply + state.stateColor FROM `user` u - LEFT JOIN user_history_latest his ON his.loginname = u.loginname - LEFT JOIN member_change_record_latest mcr on mcr.userId = u.id - LEFT JOIN audit_state state ON mcr.stateId = state.stateId + LEFT JOIN user_history his ON his.loginname = u.loginname + LEFT JOIN member_change_record mcr on mcr.userId = u.id + LEFT JOIN audit_state state ON mcr.applyStateId = state.stateId $condition - """) - .setParam("recordMode", MemberChangeRecordMode.MEMBER.getCode()) - .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) - .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL) - .setParam("success", MemberChangeApplyState.SUCCESS) - .setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); + """); - CndPlus cnd = CndPlus.create(); - - SqlExpressionGroup group = new SqlExpressionGroup(); - /* group.or("his.changeType", "=", 2).or("u.member", "=", MemberMode.NORMAL.getCode()); - cnd.and(group);*/ + Cnd cnd = Cnd.NEW(); cnd.andEX("u.member", "=", isMember); - - cnd.and(pageForm); - if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("u.unionId", "=", Vi.getUnionId()); @@ -180,35 +166,41 @@ public class MemberChangeManageController { cnd.andEX("u.userState", "=", userState); cnd.andEX("u.preparedBy", "=", preparedBy); + if (StrUtil.isAllNotBlank(pageForm.getSearchName(), pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.or(pageForm.getSearchName(), "like", "%" + pageForm.getSearchKeyword() + "%"); + seg.or(pageForm.getSearchName(), "like", "%" + pageForm.getSearchKeyword() + "%"); + cnd.and(seg); + } + 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())); + } else { + cnd.desc("his.changeTime"); } - 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))); + for (String type : changeTypes) { + seg.or(new Static("JSON_CONTAINS(his.changeTypes, JSON_QUOTE('%s'), '$')".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.changeType is not null")); + cnd.and(new Static("his.changeTypes is not null")); } else if (changed == 2){ - cnd.desc("his.changeType"); + cnd.desc("his.changeTime"); } else { - cnd.and(new Static("his.changeType is null")); + cnd.and(new Static("his.changeTypes is null")); } } + cnd.groupBy("u.id"); sql.setCondition(cnd); return memberService.list(pageForm, sql); } @@ -243,12 +235,12 @@ public class MemberChangeManageController { LEFT JOIN member_change_record_latest mcr on mcr.userId = u.id LEFT JOIN audit_state state ON mcr.stateId = state.stateId $condition - """) - .setParam("recordMode", MemberChangeRecordMode.MEMBER.getCode()) - .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) - .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL) - .setParam("success", MemberChangeApplyState.SUCCESS) - .setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); + """); +// .setParam("recordMode", MemberChangeRecordMode.MEMBER.getCode()) +// .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) +// .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL) +// .setParam("success", MemberChangeApplyState.SUCCESS) +// .setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); CndPlus cnd = CndPlus.create(); cnd.andEX("u.member", "=", isMember); cnd.and(pageForm); @@ -283,57 +275,71 @@ public class MemberChangeManageController { } @At + @Aop(TransAop.READ_COMMITTED) @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.UNIT_CHANGE.getCode())) { - boolean unionGroupEnable = Optional.ofNullable(dao.fetch(Sys_config.class, Cnd.where("configKey", "=", "isThreeUnit"))).map(Sys_config::getConfigValue).orElse("false").equals("true"); + @SLog(tag = "会员高级管理-会员变更", msg = "分工会/校工会会员管理员提交变更") + public Object doSubmitChange(MemberChangeRecord record) { + // 检验是否有变更 + if (Lang.isEmpty(record)) { + return Result.error("未获取到异动数据"); + } + List changeInfos = memberService.getChangeInfos(record); + if (Lang.isEmpty(changeInfos)) { + return Result.error("未校验到变更数据,请确认数据是否存在变更"); + } - if (unionGroupEnable && memberChangeRecord.getCurrentThreeUnitId().equals(memberChangeRecord.getOriginThreeUnitId())) { - return Result.error("请选择不同的单位!"); - } else if (!unionGroupEnable && memberChangeRecord.getCurrentUnitId().equals(memberChangeRecord.getOriginUnitId())) { - return Result.error("请选择不同的单位!"); + try { + // 变更就表明,当前审核人审核通过 + Audit audit = new Audit(); + audit.setAuditor(ShiroUtil.getUserId()); + audit.setLoginname(ShiroUtil.getPlatformLoginname()); + audit.setUsername(ShiroUtil.getPlatformUsername()); + audit.setAuditOpinion("通过"); + audit.setAuditTime(DateUtil.date()); + dao.insert(audit); + + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); + // 比较有哪些变更类型 + List changeTypes = memberService.compareChangeType(record, user); + record.setChangeTypes(changeTypes); + if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionMemberAdmin")) { + // 分工会变更,分工会审核通过,转为校工会审核 + record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name()); + record.setApplyStateId(10050); + record.setBranchUnionAuditId(audit.getId()); + dao.insert(record); + + // 创建流程任务 + MemberChangeToDoHandler.START_PROCESS.exec(record, null); + MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); + MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); + MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); + } else { + // 校工会变更,变更直接完成 + record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION.name()); + record.setApplyStateId(10080); + record.setBranchUnionAuditId(audit.getId()); + record.setSchoolUnionAuditId(audit.getId()); + dao.insert(record); + + // 创建流程任务 + MemberChangeToDoHandler.START_PROCESS.exec(record, null); + MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); + MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); + MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); + MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核完成")); + MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record, null); + memberService.compareChangeInfoAndUpdateMember(record.getId()); } + return Result.success("操作成功"); + } catch (Exception e) { + log.error("分工会/校工会会员管理员提交变更:", e); + return Result.error("操作失败"); } - if (!Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { - memberChangeRecord.setCurrentUnitId(null); - memberChangeRecord.setCurrentUnionId(null); - } - - Audit audit = new Audit(); - audit.setAuditPass(true); - - memberChangeRecord.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - if (ShiroUtil.hasRole("sysadmin")) { - memberChangeRecord.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); - memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); - MemberChangeAuditHandle.SCHOOL.next(memberChangeRecord, audit); - } else { - if (ShiroUtil.hasAnyRoles("gh01, H04")) { - memberChangeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); - } else if (ShiroUtil.hasRole("ghxzzz")){ - memberChangeRecord.setApplyOrigin(MemberChangeOrigin.UNION_GROUP.getCode()); - } - memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); - 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; @@ -396,9 +402,9 @@ public class MemberChangeManageController { cnd.and(new SqlExpressionGroup().andLike(memberSearchName, memberSearchKeyWord)); } List status = new ArrayList<>(); - status.add(MemberStatus.NORMAL.getCode()); - status.add(MemberStatus.TURN_IN.getCode()); - status.add(MemberStatus.RESTORE.getCode()); +// status.add(MemberStatus.NORMAL.getCode()); +// status.add(MemberStatus.TURN_IN.getCode()); +// status.add(MemberStatus.RESTORE.getCode()); if (!ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { cnd.and("unionid", "=", Vi.getUnionId()); @@ -440,22 +446,22 @@ public class MemberChangeManageController { memberService.update("sys_user", updateUnitChain, Cnd.where("id", "in", userId)); for (String uid : userId) { - MemberChangeRecord record = new MemberChangeRecord(); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setType(UserChangeType.UNIT_CHANGE.getCode()); - record.setUserId(uid); - record.setApplyTime(new Date()); - record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setStateId(MemberChangeApplyState.SUCCESS); - - Audit audit = new Audit(); - audit.setAuditPass(true); - audit.setAuditOpinion(MemberOrigin.BATCH.getDescription()); - String id = auditService.insert(audit).getId(); - - record.setSchoolAuditId(id); - memberService.insert(record); +// MemberChangeRecord record = new MemberChangeRecord(); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// record.setType(UserChangeType.UNIT_CHANGE.getCode()); +// record.setUserId(uid); +// record.setApplyTime(new Date()); +//// record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +//// record.setStateId(MemberChangeApplyState.SUCCESS); +// +// Audit audit = new Audit(); +// audit.setAuditPass(true); +//// audit.setAuditOpinion(MemberOrigin.BATCH.getDescription()); +// String id = auditService.insert(audit).getId(); +// +// record.setSchoolAuditId(id); +// memberService.insert(record); } }); @@ -521,24 +527,24 @@ public class MemberChangeManageController { 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(ShiroUtil.hasRole("H04") ? MemberChangeOrigin.UNION.getCode() : MemberChangeOrigin.UNION_GROUP.getCode()); - changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); - changeRecord.setUpdateWelfareMember(true); - changeRecord.setUserId(userId); - changeRecord.setApplyTime(new Date()); - changeRecord.setOriginUnitId(user.getUnitid()); - changeRecord.setOriginUnionId(user.getUnionid()); - changeRecord.setOriginThreeUnitId(user.getThreeUnitId()); - changeRecord.setCurrentUnionId(user.getUnionid()); - changeRecord.setCurrentUnitId(unitId); - changeRecord.setCurrentThreeUnitId(threeUnitId); - changeRecord.setUnionAuditId(audit.getId()); - changeRecord.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - changeRecord.setTaskId(taskId); - maps.add(changeRecord); +// User user = memberService.dao().fetch(User.class, Cnd.where("id", "=", userId)); +// MemberChangeRecord changeRecord = new MemberChangeRecord(); +// changeRecord.setType(UserChangeType.NEW.getCode()); +//// changeRecord.setApplyOrigin(ShiroUtil.hasRole("H04") ? MemberChangeOrigin.UNION.getCode() : MemberChangeOrigin.UNION_GROUP.getCode()); +//// changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); +// changeRecord.setUpdateWelfareMember(true); +// changeRecord.setUserId(userId); +// changeRecord.setApplyTime(new Date()); +// changeRecord.setOriginUnitId(user.getUnitid()); +// changeRecord.setOriginUnionId(user.getUnionid()); +// changeRecord.setOriginThreeUnitId(user.getThreeUnitId()); +// changeRecord.setCurrentUnionId(user.getUnionid()); +// changeRecord.setCurrentUnitId(unitId); +// changeRecord.setCurrentThreeUnitId(threeUnitId); +// changeRecord.setUnionAuditId(audit.getId()); +//// changeRecord.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// changeRecord.setTaskId(taskId); +// maps.add(changeRecord); } memberService.insert(maps); return null; @@ -581,6 +587,7 @@ public class MemberChangeManageController { @At @Ok("void") + @RequiresPermissions("member.change.mange") public void downloadImport(HttpServletResponse response) { try { ViTool.excelResponse(response, "会员导入模版.xlsx"); @@ -609,8 +616,9 @@ public class MemberChangeManageController { private final ReentrantLock lock = new ReentrantLock(true); @At - @AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"}) @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.mange") + @AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"}) @SLog(type = "会员管理系统", tag = "信息维护-会员高级管理", msg = "导入会员", param = true, result = true) public Object doImport(TempFile file) { try { @@ -721,4 +729,19 @@ public class MemberChangeManageController { } + @At + @ViReturn + @RequiresPermissions("member.change.mange") + public Object getAllChangeMemberInfo(String userId){ + List mapList = memberService.getAllChangeInfo(userId); + if (Lang.isEmpty(mapList)) { + return Result.error("未获取到异动数据"); + } + + User user = dao.fetch(User.class, Cnd.where("id", "=", userId)); + NutMap map = Lang.obj2nutmap(user); + map.put("user",user); + map.put("allChangeInfo", mapList); + return map; + } } diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java new file mode 100644 index 0000000..f656159 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java @@ -0,0 +1,149 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.change; + +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.services.SysLocalProcessService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.param.pageForm.MemberChangePageForm; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +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.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeMineController + * @Date 2025/2/14 11:13 + * @注释 + */ + +@IocBean +@Ok("json:full") +@At("/platform/member/change/mine") +public class MemberChangeMineController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService memberCommonService; + @Inject + private SysLocalProcessService sysLocalProcessService; + + + @At("") + @Ok("beetl:/platform/member/change/mine/index.html") + @RequiresPermissions("member.change.mine") + public void index() { + } + + + @At + @RequiresPermissions("member.change.mine") + public Object pageData(MemberChangePageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + record.*, + state.stateName + FROM + member_change_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "record."); + if (!ShiroUtil.hasAnyRoles("sysadmin,SchoolUnionAdmin,SchoolUnionMemberAdmin")) { + if (ShiroUtil.hasAnyRoles("H04,branchUnionMemberAdmin")) { + cnd.and("record.unionId", "=", Vi.getUnionId()); + } else { + cnd.and("record.userId", "=", ShiroUtil.getUserId()); + } + } + cnd.desc("record.applyDateTime"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.mine") + @SLog(tag = "会员入会申请", msg = "撤回申请") + public Object doRevoke(String id){ + dao.update(MemberChangeRecord.class, Chain.make("applyStateId", 10), Cnd.where("id", "=", id)); + sysLocalProcessService.revokeTask("MEMBER_CHANGE@" + id,"待提交申请"); + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.mine") + @SLog(tag = "会员入会申请", msg = "删除申请") + public Object doDelete(String id){ + dao.clear(MemberChangeRecord.class, Cnd.where("id", "=", id)); + sysLocalProcessService.deleteProcessInstance("MEMBER_CHANGE@" + id); + return null; + } + + + @At + @ViReturn + @RequiresPermissions("member.change.mine") + public Object findMemberChangeRecord(String id){ + Sql sql = Sqls.create(""" + SELECT + u.*, + record.id AS recordId, + record.applyDateTime, + record.branchUnionAuditId, + record.schoolUnionAuditId, + state.stateName + FROM + member_change_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + LEFT JOIN `user` u ON u.id = record.userId + WHERE + record.id = @id + """).setParam("id", id); + sql.setCallback(Sqls.callback.map()); + dao.execute(sql); + NutMap nutMap = (NutMap) sql.getResult(); + + List changeInfos = memberCommonService.getChangeInfos(nutMap.getString("recordId")); + nutMap.put("changeInfos", changeInfos); + + if (StrUtil.isNotBlank(nutMap.getString("schoolUnionAuditId"))) { + Audit audit = dao.fetch(Audit.class, Cnd.where("id", "=", nutMap.getString("schoolUnionAuditId"))); + nutMap.addv("schoolAudit", audit); + } + + if (StrUtil.isNotBlank(nutMap.getString("branchUnionAuditId"))) { + Audit audit = dao.fetch(Audit.class, Cnd.where("id", "=", nutMap.getString("branchUnionAuditId"))); + nutMap.addv("branchAudit", audit); + } + return nutMap; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeRecordsController.java similarity index 76% rename from src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeRecordsController.java index 6d263cf..3afe19b 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/change/MemberChangeRecordsController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeRecordsController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.change; +package io.v.nutz.zhgh.staffmanage.member.controller.change; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.annontation.ViReturn; @@ -8,13 +8,15 @@ 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 io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; 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; @@ -35,13 +37,13 @@ import java.util.List; public class MemberChangeRecordsController { @At("") - @Ok("beetl:/platform/member/change/Records.html") + @Ok("beetl:/platform/member/change/record/index.html") @RequiresPermissions("member.change.records") public void index() { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject("MemberChangeRecord") private ViService recordViService; @@ -59,10 +61,10 @@ 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 = "changeType", required = false) Integer changeType, - @Param(value = "applyOrigin", required = false) Integer applyOrigin) { + @Param(value = "changeTypes", required = false) String[] changeTypes, + @Param(value = "applyOrigin", required = false) String applyOrigin) { CndPlus cnd = CndPlus.create(); - pageForm.defaultSortDesc("mcr.applyTime"); + pageForm.defaultSortDesc("mcr.applyDateTime"); cnd.and(pageForm); //查询是否记录模式来自对会员还是福利会员 //cnd.and("mcr.recordMode", "=", MemberChangeRecordMode.MEMBER.getCode()); @@ -71,9 +73,15 @@ public class MemberChangeRecordsController { 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.changeOrigin", "=", applyOrigin); + if (Lang.isNotEmpty(changeTypes)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + for (String type : changeTypes) { + seg.or(new Static("JSON_CONTAINS(his.changeTypes, JSON_QUOTE('%s'), '$')".formatted(type))); + } + cnd.and(seg); + } if (!ShiroUtil.hasAnyRoles("sysadmin,H03,A06")) { if (ShiroUtil.hasRole("H04")) { cnd.and("u.unionId", "=", Vi.getUnionId()); @@ -87,12 +95,6 @@ public class MemberChangeRecordsController { } Pagination pagination = memberService.memberChangeRecords(pageForm, cnd); - List 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; } diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java new file mode 100644 index 0000000..ff6212f --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java @@ -0,0 +1,137 @@ +package io.v.nutz.zhgh.staffmanage.member.controller.change; + +import cn.hutool.core.date.DateUtil; +import cn.wizzer.framework.base.Result; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.model.Audit; +import io.v.nutz.sys.services.SysLocalProcessService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeToDoHandler; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.param.pageForm.MemberChangePageForm; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +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.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeSchoolUnionAuditController + * @Date 2025/2/14 14:13 + * @注释 + */ +@IocBean +@Ok("json:full") +@At("/platform/member/change/schoolUnion/audit") +public class MemberChangeSchoolUnionAuditController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService memberCommonService; + @Inject + private SysLocalProcessService localProcessService; + + + @At("") + @Ok("beetl:/platform/member/change/schoolUnionAudit/index.html") + @RequiresPermissions("member.change.schoolUnion.audit") + public void index() { + } + + + @At + @RequiresPermissions("member.change.schoolUnion.audit") + public Object pageData(MemberChangePageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + record.*, + state.stateName + FROM + member_change_record record + LEFT JOIN audit_state state ON state.stateId = record.applyStateId + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "record."); + if (pageForm.getAudit()) { + cnd.and("record.applyStateId", ">", 10050); + } else { + cnd.and("record.applyStateId", "=", 10050); + } + cnd.desc("record.applyDateTime"); + sql.setCondition(cnd); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success().addData(pagination); + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.schoolUnion.audit") + @SLog(type = "memberChange", tag = "会员变更", msg = "校工会审核") + public Object approval(@Param("audit") Audit audit, String id){ + audit.setAuditor(ShiroUtil.getUserId()); + audit.setLoginname(ShiroUtil.getPlatformLoginname()); + audit.setUsername(ShiroUtil.getPlatformUsername()); + audit.setAuditTime(DateUtil.date()); + audit = dao.insert(audit); + + MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id); + if (audit.getAuditType() == 2) { + // 退回修改 + record.setApplyStateId(10060); + } else if (audit.getAuditType() == 1) { + // 通过 + record.setApplyStateId(10080); + } else { + // 拒绝 + record.setApplyStateId(10070); + } + + record.setSchoolUnionAuditId(audit.getId()); + dao.updateIgnoreNull(record); + + MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核完成")); + if (audit.getAuditType() == 2) { + MemberChangeToDoHandler.CREATE_APPLY_RE_MODIFY_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会退回")); + } else if (audit.getAuditType() == 1) { + MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record, null); + memberCommonService.compareChangeInfoAndUpdateMember(record.getId()); + } else { + MemberChangeToDoHandler.REFUSE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核拒绝")); + } + return null; + } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions("member.change.schoolUnion.audit") + @SLog(type = "memberChange", tag = "会员变更", msg = "校工会撤回") + public Object doRevoke(String id){ + MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id); + dao.update(MemberChangeRecord.class, Chain.make("applyStateId", 10050) + .add("schoolUnionAuditId", null), Cnd.where("id", "=", id)); + dao.clear(Audit.class, Cnd.where("id", "=", record.getSchoolUnionAuditId())); + // 待办撤回 + localProcessService.revokeTask("MEMBER_CHANGE@" + id, "校工会审核"); + return null; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckPersonalController.java similarity index 98% rename from src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckPersonalController.java index 156bad3..80f6ad7 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckPersonalController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckPersonalController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.check; +package io.v.nutz.zhgh.staffmanage.member.controller.check; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -8,7 +8,7 @@ import io.v.nutz.base.query.PageForm; 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 io.v.nutz.zhgh.staffmanage.member.service.MemberCheckPersonalService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckSchoolController.java similarity index 81% rename from src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckSchoolController.java index f65da09..7ae3937 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckSchoolController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckSchoolController.java @@ -1,12 +1,12 @@ -package io.v.nutz.zhgh.member.controller.check; +package io.v.nutz.zhgh.staffmanage.member.controller.check; import cn.hutool.core.util.StrUtil; 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.zhgh.member.constant.MemberChangeApplyState; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -69,7 +69,7 @@ public class MemberCheckSchoolController { LEFT JOIN sys_union gh ON gh.id = mcut.unionId $condition """); - sql.setParam("stateId", MemberChangeApplyState.SCHOOL_UNION); +// sql.setParam("stateId", MemberChangeApplyState.SCHOOL_UNION); Cnd cnd = Cnd.NEW(); cnd.andEX("gh.id", "=", unionId); cnd.and("mcut.taskId", "=", taskId); @@ -79,22 +79,7 @@ public class MemberCheckSchoolController { sql.setCondition(cnd); List map = simpleService.listMap(sql); List changeRecords = simpleService.dao().query(MemberChangeRecord.class, - Cnd.where("stateId", "=", MemberChangeApplyState.SCHOOL_UNION) - .and("taskId", "=", taskId)); - map.forEach(v -> { - //该工会有多少个人需要审核 - //找出原工会和现工会不等于空的 - /*//找出的值为单位变更 - int size = changeRecords.stream().filter(c -> - StrUtil.isNotEmpty(c.getCurrentUnionId()) && - StrUtil.isNotEmpty(c.getOriginUnionId()) && - c.getCurrentUnionId().equals(v.getString("id"))).collect(Collectors.toList()).size();*/ - //找出除了单位变更的其他会员 - int size2 = changeRecords.stream().filter(c -> - StrUtil.isNotEmpty(c.getOriginUnionId()) && - c.getOriginUnionId().equals(v.getString("id"))).collect(Collectors.toList()).size(); - v.setv("notCheckNum", size2); - }); + Cnd.where("taskId", "=", taskId)); return map; } @@ -133,7 +118,7 @@ public class MemberCheckSchoolController { """); sql.setParam("taskId", taskId); sql.setParam("unionId", unionId); - sql.setParam("stateId", MemberChangeApplyState.SCHOOL_UNION); +// sql.setParam("stateId", MemberChangeApplyState.SCHOOL_UNION); List list = simpleService.listMap(sql); return list; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckTaskController.java similarity index 87% rename from src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckTaskController.java index b207204..824c05b 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckTaskController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckTaskController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.check; +package io.v.nutz.zhgh.staffmanage.member.controller.check; import cn.hutool.core.lang.Assert; import io.v.nutz.base.annontation.ViReturn; @@ -6,11 +6,11 @@ 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.zhgh.member.constant.MemberChangeRecordMode; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckSelfTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckUnionTask; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -59,7 +59,7 @@ public class MemberCheckTaskController { select * from member_check_task $condition """); Cnd cnd = Cnd.NEW(); - cnd.and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode()); +// cnd.and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode()); cnd.andEX("year", "=", year); sql.setCondition(cnd); return simpleService.list(pageForm, sql); @@ -74,7 +74,7 @@ public class MemberCheckTaskController { List sysUnions = dao.query(Sys_union.class, null); Trans.exec(() -> { task.setYear(calendar.get(Calendar.YEAR)); - task.setTaskMode(MemberChangeRecordMode.MEMBER.getCode()); +// task.setTaskMode(MemberChangeRecordMode.MEMBER.getCode()); dao.insert(task); if (task.getCreateTaskMode() == 1) { List unionTasks = sysUnions.stream().map(v -> { @@ -120,7 +120,7 @@ public class MemberCheckTaskController { } Calendar calendar = Calendar.getInstance(); calendar.setTime(task.getStartTime()); - task.setTaskMode(MemberChangeRecordMode.MEMBER.getCode()); +// task.setTaskMode(MemberChangeRecordMode.MEMBER.getCode()); task.setYear(calendar.get(Calendar.YEAR)); dao.updateIgnoreNull(task); @@ -149,7 +149,7 @@ public class MemberCheckTaskController { Cnd cnd = Cnd.NEW(); cnd.andEX("year", "=", year); cnd.and("createTaskMode", "=", 1); - cnd.and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode()); +// cnd.and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode()); cnd.desc("year"); return dao.query(MemberCheckTask.class, cnd); } @@ -160,7 +160,7 @@ public class MemberCheckTaskController { Cnd cnd = Cnd.NEW(); cnd.andEX("year", "=", year); cnd.andEX("createTaskMode", "=", 2); - cnd.and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode()); +// cnd.and("taskMode", "=", MemberChangeRecordMode.MEMBER.getCode()); return dao.query(MemberCheckTask.class, cnd); } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckUnionController.java similarity index 77% rename from src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckUnionController.java index c46e366..54750ba 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/check/MemberCheckUnionController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/check/MemberCheckUnionController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.check; +package io.v.nutz.zhgh.staffmanage.member.controller.check; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; @@ -11,12 +11,13 @@ 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; -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.zhgh.member.constant.MemberChangeApplyState; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +//import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; +//import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeAuditHandle; +//import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeAuditHandle; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckUnionTask; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; @@ -178,8 +179,8 @@ public class MemberCheckUnionController { sql.setCondition(cnd); - sql.setParam("success", MemberChangeApplyState.SUCCESS); - sql.setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); +// sql.setParam("success", MemberChangeApplyState.SUCCESS); +// sql.setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); return simpleService.list(pageForm, sql); } @@ -264,8 +265,8 @@ public class MemberCheckUnionController { } sql.setCondition(cnd); - sql.setParam("success", MemberChangeApplyState.SUCCESS); - sql.setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); +// sql.setParam("success", MemberChangeApplyState.SUCCESS); +// sql.setVar("failStates", Joiner.on(",").join(List.of(MemberChangeApplyState.UNION_FAIL, MemberChangeApplyState.SCHOOL_UNION_FAIL))); return simpleService.fetch(sql); } @@ -288,54 +289,6 @@ public class MemberCheckUnionController { @ViReturn @RequiresPermissions("member.check.union") public Object doSubmitChangeUser(MemberChangeRecord memberChangeRecord) { - 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"); - - if (unionGroupEnable && memberChangeRecord.getCurrentThreeUnitId().equals(memberChangeRecord.getOriginThreeUnitId())) { - return Result.error("请选择不同的单位!"); - } else if (!unionGroupEnable && memberChangeRecord.getCurrentUnitId().equals(memberChangeRecord.getOriginUnitId())) { - return Result.error("请选择不同的单位!"); - } - } - if (!Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { - memberChangeRecord.setCurrentUnitId(null); - 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.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() + ",您无需变更!"); - } - } - if (memberChangeRecord.getType() == UserChangeType.RETIREMENT.getCode()) { - if (userState.equals(UserChangeType.RETIREMENT.getDescription())) { - return Result.error("该用户当前的状态已经是" + UserChangeType.RETIREMENT.getDescription() + ",您无需变更!"); - } - } - - - memberChangeRecord.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - memberChangeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); - memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); - - Audit audit = new Audit(); - audit.setAuditPass(true); - audit.setAuditOpinion(memberChangeRecord.getRemark()); - - MemberChangeAuditHandle.UNION.next(memberChangeRecord, audit); return null; } diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java similarity index 84% rename from src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java index a1ba028..c75b2b8 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberBatchMakeController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.info; +package io.v.nutz.zhgh.staffmanage.member.controller.info; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -14,14 +14,14 @@ 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; -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.constant.MemberOrigin; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.UserMode; +//import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +//import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; +//import io.v.nutz.zhgh.member.constant.MemberOrigin; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -60,7 +60,7 @@ public class MemberBatchMakeController { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private SysUserService sysUserService; @@ -148,22 +148,22 @@ public class MemberBatchMakeController { Trans.exec(() -> { UserMode.addMemberRole(userIds); for (String v : userIds) { - MemberChangeRecord record = new MemberChangeRecord(); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setType(UserChangeType.RESTORE.getCode()); - record.setUserId(v); - record.setApplyTime(new Date()); - record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setStateId(MemberChangeApplyState.SUCCESS); - - Audit audit = new Audit(); - audit.setAuditPass(true); - audit.setAuditOpinion(MemberOrigin.BATCH.getDescription()); - String id = auditService.insert(audit).getId(); - - record.setSchoolAuditId(id); - sysUserService.insert(record); +// MemberChangeRecord record = new MemberChangeRecord(); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// record.setType(UserChangeType.RESTORE.getCode()); +// record.setUserId(v); +// record.setApplyTime(new Date()); +//// record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode());///////// +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +//// record.setStateId(MemberChangeApplyState.SUCCESS); +// +// Audit audit = new Audit(); +// audit.setAuditPass(true); +//// audit.setAuditOpinion(MemberOrigin.BATCH.getDescription()); +// String id = auditService.insert(audit).getId(); +// +// record.setSchoolAuditId(id); +// sysUserService.insert(record); } }); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberDataManageController.java similarity index 88% rename from src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberDataManageController.java index cf2103d..195e3f9 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberDataManageController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberDataManageController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.info; +package io.v.nutz.zhgh.staffmanage.member.controller.info; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; @@ -9,15 +9,15 @@ 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; -import io.v.nutz.zhgh.member.WelfareMemberMode; -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.constant.MemberOrigin; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.UserMode; +import io.v.nutz.zhgh.staffmanage.member.WelfareMemberMode; +//import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +//import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; +//import io.v.nutz.zhgh.member.constant.MemberOrigin; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; @@ -52,7 +52,7 @@ public class MemberDataManageController { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private Dao dao; @@ -207,7 +207,7 @@ public class MemberDataManageController { //如果是先清空再追加 if (confirm) { - dao.update(Sys_user.class, Chain.make("member", MemberMode.NONE.getCode()).add("memberOrigin", MemberOrigin.BATCH.getCode()), Cnd.NEW()); +// dao.update(Sys_user.class, Chain.make("member", MemberMode.NONE.getCode()).add("memberOrigin", MemberOrigin.BATCH.getCode()), Cnd.NEW()); } Sql sql = Sqls.create("SELECT id from `user` $condition"); @@ -266,18 +266,18 @@ public class MemberDataManageController { UserMode.addMemberRole(userIds); Audit audit = new Audit(); audit.setAuditPass(true); - audit.setAuditOpinion("数据管理工具" + MemberOrigin.BATCH.getDescription()); +// audit.setAuditOpinion("数据管理工具" + MemberOrigin.BATCH.getDescription()); dao.insert(audit); List insertMemberChangeRecords = Arrays.stream(userIds).map(v -> { MemberChangeRecord record = new MemberChangeRecord(); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setType(UserChangeType.RESTORE.getCode()); - record.setUserId(v); - record.setApplyTime(new Date()); - record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setStateId(MemberChangeApplyState.SUCCESS); - record.setSchoolAuditId(audit.getId()); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// record.setType(UserChangeType.RESTORE.getCode()); +// record.setUserId(v); +// record.setApplyTime(new Date()); +//// record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +//// record.setStateId(MemberChangeApplyState.SUCCESS); +// record.setSchoolAuditId(audit.getId()); return record; }).collect(Collectors.toList()); dao.insert(insertMemberChangeRecords); @@ -389,18 +389,18 @@ public class MemberDataManageController { Audit audit = new Audit(); audit.setAuditPass(true); - audit.setAuditOpinion("数据管理工具" + MemberOrigin.BATCH.getDescription()); +// audit.setAuditOpinion("数据管理工具" + MemberOrigin.BATCH.getDescription()); dao.insert(audit); List insertMemberChangeRecords = Arrays.stream(userIds).map(v -> { MemberChangeRecord record = new MemberChangeRecord(); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setType(UserChangeType.RESTORE.getCode()); - record.setUserId(v); - record.setApplyTime(new Date()); - record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setStateId(MemberChangeApplyState.SUCCESS); - record.setSchoolAuditId(audit.getId()); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// record.setType(UserChangeType.RESTORE.getCode()); +// record.setUserId(v); +// record.setApplyTime(new Date()); +//// record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); +//// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +//// record.setStateId(MemberChangeApplyState.SUCCESS); +// record.setSchoolAuditId(audit.getId()); return record; }).collect(Collectors.toList()); dao.insert(insertMemberChangeRecords); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberGroupInfoController.java similarity index 96% rename from src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberGroupInfoController.java index 427a041..dce464e 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberGroupInfoController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberGroupInfoController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.info; +package io.v.nutz.zhgh.staffmanage.member.controller.info; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -14,11 +14,11 @@ 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.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.UserMode; +import io.v.nutz.zhgh.staffmanage.member.model.MemberHistory; +import io.v.nutz.zhgh.staffmanage.member.service.MemberHistoryService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -60,7 +60,7 @@ public class MemberGroupInfoController { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private SysUserService sysUserService; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberMakeController.java similarity index 77% rename from src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberMakeController.java index bba61f8..f19eb32 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberMakeController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberMakeController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.info; +package io.v.nutz.zhgh.staffmanage.member.controller.info; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.dao.CndPlus; @@ -10,10 +10,11 @@ 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; -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.zhgh.staffmanage.member.UserMode; +//import io.v.nutz.zhgh.member.constant.*; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; @@ -50,7 +51,7 @@ public class MemberMakeController { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private SysUserService sysUserService; @@ -100,7 +101,7 @@ public class MemberMakeController { """); CndPlus cnd = CndPlus.create(); - cnd.and("memberOrigin", "=", MemberOrigin.MAKE.getCode()); +// cnd.and("memberOrigin", "=", MemberOrigin.MAKE.getCode()); cnd.andEX("unionid", "=", unionId); cnd.andEX("unitid", "=", unitId); @@ -111,9 +112,9 @@ public class MemberMakeController { cnd.andEX("campusName", "=", campus); List status = new ArrayList<>(); - status.add(MemberStatus.NORMAL.getCode()); - status.add(MemberStatus.TURN_IN.getCode()); - status.add(MemberStatus.RESTORE.getCode()); +// status.add(MemberStatus.NORMAL.getCode()); +// status.add(MemberStatus.TURN_IN.getCode()); +// status.add(MemberStatus.RESTORE.getCode()); if (memberStatus == null || status.contains(memberStatus)) { cnd.andEX("member", "=", 1); @@ -148,7 +149,7 @@ public class MemberMakeController { @RequiresPermissions("member.info.make") public Object joinMemberFamily(Sys_user sys_user) { memberService.transactional(() -> { - sysUserService.update(Chain.make("memberOrigin", MemberOrigin.MAKE.getCode()), Cnd.where("id", "=", sys_user.getId())); +// sysUserService.update(Chain.make("memberOrigin", MemberOrigin.MAKE.getCode()), Cnd.where("id", "=", sys_user.getId())); UserMode.addMemberRole(sys_user.getId()); @@ -157,26 +158,26 @@ public class MemberMakeController { UserHistory userHistory = new UserHistory(); BeanUtils.copyProperties(new_user, userHistory); userHistory.setChangeTime(new Date()); - userHistory.setChangeType(UserChangeType.NEW.getCode()); +// userHistory.setChangeType(UserChangeType.NEW.getCode()); historyUserService.insert(userHistory); //添加到会员变更表 MemberChangeRecord record = new MemberChangeRecord(); - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setType(UserChangeType.NEW.getCode()); - record.setUserId(new_user.getId()); - record.setCurrentUnitId(sys_user.getUnitid()); - record.setCurrentUnionId(sys_user.getUnionid()); - record.setApplyTime(new Date()); +// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// record.setType(UserChangeType.NEW.getCode()); +// record.setUserId(new_user.getId()); +// record.setCurrentUnitId(sys_user.getUnitid()); +// record.setCurrentUnionId(sys_user.getUnionid()); +// record.setApplyTime(new Date()); if (ShiroUtil.hasAnyRoles("sysadmin,A06,H03")) { - record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); +// record.setApplyOrigin(MemberChangeOrigin.SCHOOL.getCode()); } else if (ShiroUtil.hasAnyRoles("H04")) { - record.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); +// record.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); } else { - record.setApplyOrigin(MemberChangeOrigin.UNION_GROUP.getCode()); +// record.setApplyOrigin(MemberChangeOrigin.UNION_GROUP.getCode()); } - record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); - record.setStateId(MemberChangeApplyState.SUCCESS); +// record.setRecordMode(MemberChangeRecordMode.MEMBER.getCode()); +// record.setStateId(MemberChangeApplyState.SUCCESS); historyUserService.insert(record); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberPersonInfoController.java similarity index 89% rename from src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberPersonInfoController.java index 8aa0522..757ad91 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/info/MemberPersonInfoController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/info/MemberPersonInfoController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.info; +package io.v.nutz.zhgh.staffmanage.member.controller.info; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberAnalysisController.java similarity index 98% rename from src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberAnalysisController.java index beae080..727fb20 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberAnalysisController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberAnalysisController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.inquire; +package io.v.nutz.zhgh.staffmanage.member.controller.inquire; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -7,7 +7,7 @@ import io.v.nutz.base.annontation.ViReturn; 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.MemberService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -33,7 +33,7 @@ import java.util.stream.Collectors; public class MemberAnalysisController { @Inject - private MemberService memberService; + private MemberCommonService memberService; @At("") @Ok("beetl:/platform/member/inquire/Analysis.html") diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java similarity index 96% rename from src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java index 4709752..b72174c 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberDataBoardController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java @@ -1,8 +1,8 @@ -package io.v.nutz.zhgh.member.controller.inquire; +package io.v.nutz.zhgh.staffmanage.member.controller.inquire; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.DateUtil; -import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Sqls; import org.nutz.dao.entity.Record; @@ -35,7 +35,7 @@ public class MemberDataBoardController { } @Inject - private MemberService memberService; + private MemberCommonService memberService; /** diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberHistoyController.java similarity index 98% rename from src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberHistoyController.java index 3d1d47f..d64d948 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberHistoyController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberHistoyController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.inquire; +package io.v.nutz.zhgh.staffmanage.member.controller.inquire; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberInquireIntegrateController.java similarity index 97% rename from src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberInquireIntegrateController.java index 235b768..cb4cb09 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberInquireIntegrateController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberInquireIntegrateController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.inquire; +package io.v.nutz.zhgh.staffmanage.member.controller.inquire; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.annotation.Excel; @@ -13,9 +13,9 @@ 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 io.v.nutz.zhgh.member.constant.MemberStatus; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.member.utils.MemberUtils; import lombok.Data; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -57,7 +57,7 @@ public class MemberInquireIntegrateController { } @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private SysUserService sysUserService; @@ -123,9 +123,9 @@ public class MemberInquireIntegrateController { } List status = new ArrayList<>(); - status.add(MemberStatus.NORMAL.getCode()); - status.add(MemberStatus.TURN_IN.getCode()); - status.add(MemberStatus.RESTORE.getCode()); +// status.add(MemberStatus.NORMAL.getCode()); +// status.add(MemberStatus.TURN_IN.getCode()); +// status.add(MemberStatus.RESTORE.getCode()); // if (memberStatus != null && memberStatus.length > 0) { // cnd.andEX("memberStatus", "in", memberStatus); diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberStatisticsController.java similarity index 99% rename from src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberStatisticsController.java index 26a17a0..41c9671 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberStatisticsController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberStatisticsController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.inquire; +package io.v.nutz.zhgh.staffmanage.member.controller.inquire; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; diff --git a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberUserTypeController.java similarity index 98% rename from src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberUserTypeController.java index 92fb71c..2eea9cd 100644 --- a/src/main/java/io/v/nutz/zhgh/member/controller/inquire/MemberUserTypeController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberUserTypeController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.controller.inquire; +package io.v.nutz.zhgh.staffmanage.member.controller.inquire; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -8,7 +8,7 @@ import io.v.nutz.base.utils.Vi; 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 io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Sqls; @@ -32,7 +32,7 @@ import java.util.stream.Collectors; public class MemberUserTypeController { @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private SysDictService sysDictService; diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java similarity index 56% rename from src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java index a27ee68..160190e 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberApplyToDoHandler.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java @@ -1,13 +1,13 @@ -package io.v.nutz.zhgh.member.handle; +package io.v.nutz.zhgh.staffmanage.member.handle; 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.staffmanage.member.model.MemberApplyRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.member.service.impl.MemberCommonServiceImpl; import lombok.Getter; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -18,6 +18,14 @@ import org.nutz.lang.util.NutMap; import java.util.List; import java.util.stream.Collectors; +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplyController + * @Date 2025/1/20 19:01 + * @注释 会员申请流程 + */ + @Getter public enum MemberApplyToDoHandler { @@ -28,54 +36,41 @@ public enum MemberApplyToDoHandler { @Override public void exec(MemberApplyRecord 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( - user.getUnionname() + "(" + user.getUsername() + ")【会员入会】申请", - "member_apply_record@" + record.getId(), + "【会员入会申请】" + user.getUsername(), + "MEMBER_APPLY@" + record.getId(), "", record.getUserId(), - "/platform/member/apply/submit", - "/platform/member/apply/submit" + "/platform/member/apply", + "/platform/member/apply/h5" ); } }, - /** - * 审核拒绝 - */ - 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, + "MEMBER_APPLY@" + record.getId(), + "MEMBER_APPLY_BACK", + "退回重新修改", ShiroUtil.getUserId(), List.of(loginname), - "/platform/member/apply/submit", - "/platform/member/apply/submit", - "/platform/member/apply/submit", - "/platform/member/apply/submit" + "/platform/member/apply", + "/platform/member/apply", + "/platform/member/apply", + "/platform/member/apply" ); - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "退回重新修改"); } }, @@ -87,36 +82,79 @@ public enum MemberApplyToDoHandler { public void exec(MemberApplyRecord record, NutMap extra) { String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "member_apply_record_back", - "member_apply_record@" + record.getId(), + "MEMBER_APPLY_BACK", + "MEMBER_APPLY@" + record.getId(), ShiroUtil.getUserId(), nodeName ); - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), nodeName); } }, + + /** + * 创建校工会任务 + */ + CREATE_SCHOOL_TASK() { + @Override + public void exec(MemberApplyRecord record, NutMap extra) { + // 获取校工会会员管理员 + List schoolLeaderLoginNames = memberService.getSchoolOrBranchUnionMemberAdminLoginNames("school", record.getUserId()); + localProcessService.createTask( + "MEMBER_APPLY@" + record.getId(), + "MEMBER_APPLY_SCHOOL_AUDIT", + "校工会审核", + ShiroUtil.getUserId(), + schoolLeaderLoginNames, + "/platform/member/apply/audit/school", + "/platform/member/apply/audit/school", + "/platform/member/apply/audit/school", + "/platform/member/apply/audit/school" + ); + + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "校工会审核"); + } + }, + + + /** + * 校工会完成 + */ + COMPLETE_SCHOOL_TASK() { + @Override + public void exec(MemberApplyRecord record, NutMap extra) { + String nodeName = extra.getString("nodeName"); + localProcessService.completeTask( + "MEMBER_APPLY_SCHOOL_AUDIT", + "MEMBER_APPLY@" + record.getId(), + ShiroUtil.getUserId(), + nodeName + ); + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), nodeName); + } + }, + + /** * 创建分工会任务 */ CREATE_UNION_TASK() { @Override public void exec(MemberApplyRecord record, NutMap extra) { - List mapList = extra.getAsList("unionLeader", NutMap.class); - List unionLeader = mapList.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); + List unionLeaderLoginNames = extra.getAsList("unionLeaderLoginNames", String.class); localProcessService.createTask( - "member_apply_record@" + record.getId(), - "member_apply_union_audit", - "基层工会审核", + "MEMBER_APPLY@" + record.getId(), + "MEMBER_APPLY_UNION_AUDIT", + "分工会审核", ShiroUtil.getUserId(), - unionLeader, + unionLeaderLoginNames, "/platform/member/apply/audit/union", "/platform/member/apply/audit/union", "/platform/member/apply/audit/union", "/platform/member/apply/audit/union" ); - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), "基层工会审核"); + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "分工会审核"); } }, @@ -128,55 +166,26 @@ public enum MemberApplyToDoHandler { public void exec(MemberApplyRecord record, NutMap extra) { String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "member_apply_union_audit", - "member_apply_record@" + record.getId(), + "MEMBER_APPLY_UNION_AUDIT", + "MEMBER_APPLY@" + record.getId(), ShiroUtil.getUserId(), nodeName ); - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), nodeName); } }, + /** - * 创建校工会任务 + * 审核拒绝 */ - CREATE_SCHOOL_TASK() { + REFUSE_UNION_TASK(){ @Override public void exec(MemberApplyRecord record, NutMap extra) { - List mapList = extra.getAsList("schoolLeader", NutMap.class); - List schoolLeader = mapList.stream().map(v -> v.getString("loginname")).collect(Collectors.toList()); - localProcessService.createTask( - "member_apply_record@" + record.getId(), - "member_apply_school_audit", - "校工会审核", - ShiroUtil.getUserId(), - schoolLeader, - "/platform/member/apply/audit/school", - "/platform/member/apply/audit/school", - "/platform/member/apply/audit/school", - "/platform/member/apply/audit/school" - ); - - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), "校工会审核"); + localProcessService.refuseProcess("MEMBER_APPLY@" + record.getId(),extra.getString("nodeName")); } }, - /** - * 校工会完成 - */ - COMPLETE_SCHOOL_TASK() { - @Override - public void exec(MemberApplyRecord record, NutMap extra) { - String nodeName = extra.getString("nodeName"); - localProcessService.completeTask( - "member_apply_school_audit", - "member_apply_record@" + record.getId(), - ShiroUtil.getUserId(), - nodeName - ); - localProcessService.updateProcessNodeName("member_apply_record@" + record.getId(), nodeName); - } - }, /** * 流程结束 @@ -184,7 +193,8 @@ public enum MemberApplyToDoHandler { COMPLETE_PROCESS() { @Override public void exec(MemberApplyRecord record, NutMap extra) { - localProcessService.completeProcess("member_apply_record@" + record.getId()); + localProcessService.completeProcess("MEMBER_APPLY@" + record.getId()); + localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "审核通过"); } }; @@ -192,6 +202,6 @@ public enum MemberApplyToDoHandler { public abstract void exec(MemberApplyRecord record, NutMap extra); public Dao dao = ViResource.dao; - public MemberService memberService = ViResource.ioc.get(MemberServiceImpl.class); + public MemberCommonService memberService = ViResource.ioc.get(MemberCommonServiceImpl.class); public SysLocalProcessService localProcessService = ViResource.ioc.get(SysLocalProcessServiceImpl.class); } diff --git a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java similarity index 50% rename from src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java index c6c9e17..fe13e0f 100644 --- a/src/main/java/io/v/nutz/zhgh/member/handle/MemberChangeToDoHandler.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java @@ -1,15 +1,13 @@ -package io.v.nutz.zhgh.member.handle; +package io.v.nutz.zhgh.staffmanage.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.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.member.service.impl.MemberCommonServiceImpl; import lombok.Getter; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -31,12 +29,9 @@ public enum MemberChangeToDoHandler { @Override 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( - user.getUnionname() + "(" + user.getUsername() + ")【会员变更】申请", - "member_change_record@" + record.getId(), + "【会员变更】" + user.getUsername(), + "MEMBER_CHANGE@" + record.getId(), "", record.getUserId(), "/platform/member/change/apply", @@ -51,7 +46,7 @@ public enum MemberChangeToDoHandler { REFUSE_UNION_TASK(){ @Override public void exec(MemberChangeRecord record, NutMap extra) { - localProcessService.refuseProcess("member_change_record@" + record.getId(),extra.getString("nodeName")); + localProcessService.refuseProcess("MEMBER_CHANGE@" + record.getId(),extra.getString("nodeName")); } }, @@ -67,8 +62,8 @@ public enum MemberChangeToDoHandler { String loginname = sql.getString(); localProcessService.createTask( - "member_change_record@" + record.getId(), - "member_change_record_back", + "MEMBER_CHANGE@" + record.getId(), + "MEMBER_CHANGE_BACK", nodeName, ShiroUtil.getUserId(), List.of(loginname), @@ -78,7 +73,7 @@ public enum MemberChangeToDoHandler { "/platform/member/change/apply" ); - localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), nodeName); } }, @@ -90,13 +85,13 @@ public enum MemberChangeToDoHandler { public void exec(MemberChangeRecord record, NutMap extra) { String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "member_change_record_back", - "member_change_record@" + record.getId(), + "MEMBER_CHANGE_BACK", + "MEMBER_CHANGE@" + record.getId(), ShiroUtil.getUserId(), nodeName ); - localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), nodeName); } }, @@ -106,21 +101,20 @@ public enum MemberChangeToDoHandler { CREATE_UNION_TASK() { @Override public void exec(MemberChangeRecord record, NutMap extra) { -// List unionLeader = Vi.getUnionLeader(record.getUserId()); + List branchLeaders = memberService.getSchoolOrBranchUnionMemberAdminLoginNames("branch", record.getUserId()); + localProcessService.createTask( + "MEMBER_CHANGE@" + record.getId(), + "MEMBER_CHANGE_BRANCH_UNION_AUDIT", + "分工会审核", + ShiroUtil.getUserId(), + branchLeaders, + "/platform/member/change/audit/union", + "/platform/member/change/audit/union", + "/platform/member/change/audit/union", + "/platform/member/change/audit/union" + ); -// 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(), "基层工会审核"); + localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), "分工会审核"); } }, @@ -133,13 +127,13 @@ public enum MemberChangeToDoHandler { public void exec(MemberChangeRecord record, NutMap extra) { String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "member_change_record_union_audit", - "member_change_record@" + record.getId(), + "MEMBER_CHANGE_BRANCH_UNION_AUDIT", + "MEMBER_CHANGE@" + record.getId(), ShiroUtil.getUserId(), nodeName ); - localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), nodeName); } }, @@ -149,32 +143,20 @@ public enum MemberChangeToDoHandler { CREATE_SCHOOL_TASK() { @Override 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 list = (List) Daos.query(dao, sql.toString(), Sqls.callback.maps()); -// List 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(), "校工会审核"); + List schoolLeaders = memberService.getSchoolOrBranchUnionMemberAdminLoginNames("school", record.getUserId()); + localProcessService.createTask( + "MEMBER_CHANGE@" + record.getId(), + "MEMBER_CHANGE_SCHOOL_UNION_AUDIT", + "校工会审核", + ShiroUtil.getUserId(), + schoolLeaders, + "/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.getId(), "校工会审核"); } }, @@ -186,12 +168,12 @@ public enum MemberChangeToDoHandler { public void exec(MemberChangeRecord record, NutMap extra) { String nodeName = extra.getString("nodeName"); localProcessService.completeTask( - "member_change_record_school_audit", - "member_change_record@" + record.getId(), + "MEMBER_CHANGE_SCHOOL_UNION_AUDIT", + "MEMBER_CHANGE@" + record.getId(), ShiroUtil.getUserId(), nodeName ); - localProcessService.updateProcessNodeName("member_change_record@" + record.getId(), nodeName); + localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), nodeName); } }, @@ -201,7 +183,8 @@ public enum MemberChangeToDoHandler { COMPLETE_PROCESS() { @Override public void exec(MemberChangeRecord record, NutMap extra) { - localProcessService.completeProcess("member_change_record@" + record.getId()); + localProcessService.completeProcess("MEMBER_CHANGE@" + record.getId()); + localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), "审核通过"); } }, @@ -212,7 +195,7 @@ public enum MemberChangeToDoHandler { DELETE_PROCESS_AND_TASK() { @Override public void exec(MemberChangeRecord record, NutMap extra) { - localProcessService.deleteProcessInstance("member_change_record@" + record.getId()); + localProcessService.deleteProcessInstance("MEMBER_CHANGE@" + record.getId()); } }; @@ -220,6 +203,6 @@ public enum MemberChangeToDoHandler { public abstract void exec(MemberChangeRecord record, NutMap extra); public Dao dao = ViResource.dao; - public MemberService memberService = ViResource.ioc.get(MemberServiceImpl.class); + public MemberCommonService memberService = ViResource.ioc.get(MemberCommonServiceImpl.class); public SysLocalProcessService localProcessService = ViResource.ioc.get(SysLocalProcessServiceImpl.class); } diff --git a/src/main/java/io/v/nutz/zhgh/member/job/MemberArchiveJob.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/job/MemberArchiveJob.java similarity index 88% rename from src/main/java/io/v/nutz/zhgh/member/job/MemberArchiveJob.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/job/MemberArchiveJob.java index bc95f29..ae3a6df 100644 --- a/src/main/java/io/v/nutz/zhgh/member/job/MemberArchiveJob.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/job/MemberArchiveJob.java @@ -1,6 +1,6 @@ -package io.v.nutz.zhgh.member.job; +package io.v.nutz.zhgh.staffmanage.member.job; -import io.v.nutz.zhgh.member.service.MemberHistoryService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberHistoryService; import lombok.extern.slf4j.Slf4j; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberApplyRecord.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberApplyRecord.java new file mode 100644 index 0000000..50ad5a5 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberApplyRecord.java @@ -0,0 +1,220 @@ +package io.v.nutz.zhgh.staffmanage.member.model; + +import cn.hutool.json.JSONObject; +import lombok.Data; +import lombok.experimental.Accessors; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.List; + +/** + * 会员申请记录 + * + * @author: 1V + * @date: 2021/1/25 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +@Table("member_apply_record") +public class MemberApplyRecord { + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String userId; + + @Column + @Comment("姓名") + @ColDefine(type = ColType.VARCHAR, width = 100) + @Size(max = 100) + private String username; + + @Column + @Comment("工号") + @ColDefine(type = ColType.VARCHAR, width = 100) + @Size(max = 100) + private String loginname; + + @Column + @Comment("出生日期") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String birthday; + + @Column + @Comment("单位id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String unitId; + + @Column + @Comment("单位名称") + @ColDefine(type = ColType.VARCHAR, width = 200) + @Size(max = 200) + private String unitName; + + @Column + @Comment("工会id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String unionId; + + @Column + @Comment("工会名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String unionName; + + @Column + @Comment("性别") + @ColDefine(type = ColType.VARCHAR, width = 10) + @Size(max = 10) + private String sex; + + @Column + @Comment("证件号码") + @ColDefine(type = ColType.VARCHAR, width = 30) + @Size(max = 30) + private String idCard; + + @Column + @Comment("民族") + @ColDefine(type = ColType.VARCHAR, width = 20) + @Size(max = 20) + private String nation; + + @Column + @Comment("政治面貌") + @ColDefine(type = ColType.VARCHAR, width = 100) + @Size(max = 100) + private String political; + + @Column + @Comment("学历") + @ColDefine(type = ColType.VARCHAR, width = 20) + @Size(max = 20) + private String education; + + @Column + @Comment("学位") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String academicDegree; + + @Column + @Comment("党政职务") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String position; + + @Column + @Comment("在职状态") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String userState; + + @Column + @Comment("人事编制") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String preparedBy; + + @Column + @Comment("人员类别") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String personType; + + @Column + @Comment("手机号码") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String mobile; + + @Column + @Comment("电子邮箱") + @ColDefine(type = ColType.VARCHAR, width = 255) + @Size(max = 255) + private String email; + + @Column + @Comment("会员状态") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + private Boolean member; + + @Column + @Comment("福利会员状态") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + private Boolean welfareMember; + + @Column + @Comment("校区") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String campus; + + @Column + @Comment("家庭主要成员及其工作单位") + @ColDefine(type = ColType.MYSQL_JSON) + private List families; + + @Column + @Comment("个人简况") + @ColDefine(type = ColType.VARCHAR, customType = "text") + private String vita; + + @Column + @Comment("备注") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String notes; + + @Column + @Comment("当前状态") + @ColDefine(type = ColType.INT) + private Integer applyStateId; + + @Column + @Comment("校工会审核id") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String schoolUnionAuditId; + + @Column + @Comment("分工会审核id") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String branchUnionAuditId; + + @Column + @Comment("变更类型") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String changeType; + + @Column + @Comment("变更类型集合") + @ColDefine(type = ColType.MYSQL_JSON) + private List changeTypes; + + @Column + @Comment("变更来源") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String changeOrigin; + + @Column + @Comment("申请时间") + @ColDefine(type = ColType.DATETIME) + @PrevInsert(now = true) + private Date applyDateTime; + + @Column + @Comment("分配的工会关系") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String allocationUnionId; +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java new file mode 100644 index 0000000..4f3b3ee --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java @@ -0,0 +1,238 @@ +package io.v.nutz.zhgh.staffmanage.member.model; + +import cn.hutool.json.JSONObject; +import lombok.Data; +import lombok.experimental.Accessors; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.List; + +/** + * 会员变更记录 + * + * @author: 1V + * @date: 2021/1/25 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +@Table("member_change_record") +public class MemberChangeRecord { + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String userId; + + @Column + @Comment("姓名") + @ColDefine(type = ColType.VARCHAR, width = 100) + @Size(max = 100) + private String username; + + @Column + @Comment("工号") + @ColDefine(type = ColType.VARCHAR, width = 100) + @Size(max = 100) + private String loginname; + + @Column + @Comment("单位id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String unitId; + + @Column + @Comment("单位名称") + @ColDefine(type = ColType.VARCHAR, width = 200) + @Size(max = 200) + private String unitName; + + @Column + @Comment("工会id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String unionId; + + @Column + @Comment("工会名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String unionName; + + @Column + @Comment("性别") + @ColDefine(type = ColType.VARCHAR, width = 10) + @Size(max = 10) + private String sex; + + @Column + @Comment("出生日期") + @ColDefine(type = ColType.VARCHAR, width = 10) + @Size(max = 10) + private String birthday; + + @Column + @Comment("证件号码") + @ColDefine(type = ColType.VARCHAR, width = 30) + @Size(max = 30) + private String idCard; + + @Column + @Comment("民族") + @ColDefine(type = ColType.VARCHAR, width = 20) + @Size(max = 20) + private String nation; + + @Column + @Comment("政治面貌") + @ColDefine(type = ColType.VARCHAR, width = 100) + @Size(max = 100) + private String political; + + @Column + @Comment("学历") + @ColDefine(type = ColType.VARCHAR, width = 20) + @Size(max = 20) + private String education; + + @Column + @Comment("学位") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String academicDegree; + + @Column + @Comment("党政职务") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String position; + + @Column + @Comment("在职状态") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String userState; + + @Column + @Comment("人事编制") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String preparedBy; + + @Column + @Comment("人员类别") + @ColDefine(type = ColType.VARCHAR, width = 50) + @Size(max = 50) + private String personType; + + @Column + @Comment("手机号码") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String mobile; + + @Column + @Comment("电子邮箱") + @ColDefine(type = ColType.VARCHAR, width = 255) + @Size(max = 255) + private String email; + + @Column + @Comment("会员状态") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + private Boolean member; + + @Column + @Comment("福利会员状态") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + private Boolean welfareMember; + + @Column + @Comment("校区") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String campus; + + @Column + @Comment("家庭主要成员及其工作单位") + @ColDefine(type = ColType.MYSQL_JSON) + private List families; + + @Column + @Comment("个人简况") + @ColDefine(type = ColType.VARCHAR, customType = "text") + private String vita; + + @Column + @Comment("备注") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String notes; + + @Column + @Comment("当前状态") + @ColDefine(type = ColType.INT) + private Integer applyStateId; + + @Column + @Comment("校工会审核id") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String schoolUnionAuditId; + + @Column + @Comment("分工会审核id") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String branchUnionAuditId; + + @Column + @Comment("是否加入会员组别") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isJoinActivityMemberScope; + + @Column + @Comment("是否退出会员组别") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isExitActivityMemberScope; + + @Column + @Comment("是否加入福利项目") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isJoinWelfareProject; + + @Column + @Comment("福利项目id") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String welfareProjectId; + + @Column + @Comment("变更类型") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String changeType; + + @Column + @Comment("变更类型集合") + @ColDefine(type = ColType.MYSQL_JSON) + private List changeTypes; + + @Column + @Comment("变更来源") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String changeOrigin; + + @Column + @Comment("申请时间") + @ColDefine(type = ColType.DATETIME) + @PrevInsert(now = true) + private Date applyDateTime; + + private Boolean edit; +} diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckSelfTask.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckSelfTask.java similarity index 95% rename from src/main/java/io/v/nutz/zhgh/member/model/MemberCheckSelfTask.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckSelfTask.java index 71599f6..045d38d 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckSelfTask.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckSelfTask.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.model; +package io.v.nutz.zhgh.staffmanage.member.model; import cn.wizzer.framework.base.model.BaseModel; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckTask.java similarity index 97% rename from src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckTask.java index 6678b61..a6cc831 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckTask.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckTask.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.model; +package io.v.nutz.zhgh.staffmanage.member.model; import cn.wizzer.framework.base.model.BaseModel; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckUnionTask.java similarity index 95% rename from src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckUnionTask.java index 337082d..f37b7b7 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberCheckUnionTask.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberCheckUnionTask.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.model; +package io.v.nutz.zhgh.staffmanage.member.model; import cn.wizzer.framework.base.model.BaseModel; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/member/model/MemberHistory.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberHistory.java similarity index 93% rename from src/main/java/io/v/nutz/zhgh/member/model/MemberHistory.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberHistory.java index e98f97c..8527de2 100644 --- a/src/main/java/io/v/nutz/zhgh/member/model/MemberHistory.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberHistory.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.model; +package io.v.nutz.zhgh.staffmanage.member.model; import io.v.nutz.sys.models.Sys_user; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberApplyPageForm.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberApplyPageForm.java new file mode 100644 index 0000000..9fee4f6 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberApplyPageForm.java @@ -0,0 +1,54 @@ +package io.v.nutz.zhgh.staffmanage.member.param.pageForm; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.base.query.PageForm; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.Cnd; +import org.nutz.dao.util.cri.SqlExpressionGroup; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplyPageForm + * @Date 2025/2/12 16:09 + * @注释 会员入会查询表单 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MemberApplyPageForm extends PageForm { + + // 是否审核 + private Boolean audit; + + // 工会id + private String unionId; + + // 单位id + private String unitId; + + // 在职状态 + private String userState; + + // 人员类型 + private String personType; + + + public void buildSearch(Cnd cnd, String prefix){ + if (cnd == null) { + cnd = Cnd.NEW(); + } + + if (StrUtil.isNotBlank(this.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike(prefix + "username", this.getSearchKeyword()); + seg.orLike(prefix + "loginname", this.getSearchKeyword()); + cnd.and(seg); + } + + cnd.andEX(prefix + "unionId", "=", this.getUnionId()); + cnd.andEX(prefix + "unitId", "=", this.getUnitId()); + cnd.andEX(prefix + "userState", "=", this.getUserState()); + cnd.andEX(prefix + "personType", "=", this.getPersonType()); + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberChangePageForm.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberChangePageForm.java new file mode 100644 index 0000000..a8be362 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/param/pageForm/MemberChangePageForm.java @@ -0,0 +1,54 @@ +package io.v.nutz.zhgh.staffmanage.member.param.pageForm; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.base.query.PageForm; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.Cnd; +import org.nutz.dao.util.cri.SqlExpressionGroup; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangePageForm + * @Date 2025/2/14 14:05 + * @注释 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MemberChangePageForm extends PageForm { + + // 是否审核 + private Boolean audit; + + // 工会id + private String unionId; + + // 单位id + private String unitId; + + // 在职状态 + private String userState; + + // 人员类型 + private String personType; + + + public void buildSearch(Cnd cnd, String prefix){ + if (cnd == null) { + cnd = Cnd.NEW(); + } + + if (StrUtil.isNotBlank(this.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike(prefix + "username", this.getSearchKeyword()); + seg.orLike(prefix + "loginname", this.getSearchKeyword()); + cnd.and(seg); + } + + cnd.andEX(prefix + "unionId", "=", this.getUnionId()); + cnd.andEX(prefix + "unitId", "=", this.getUnitId()); + cnd.andEX(prefix + "userState", "=", this.getUserState()); + cnd.andEX(prefix + "personType", "=", this.getPersonType()); + } +} diff --git a/src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCheckPersonalService.java similarity index 79% rename from src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCheckPersonalService.java index c56144a..e7677ca 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/MemberCheckPersonalService.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCheckPersonalService.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.service; +package io.v.nutz.zhgh.staffmanage.member.service; import io.v.nutz.base.service.ViService; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCommonService.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCommonService.java new file mode 100644 index 0000000..468ba64 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberCommonService.java @@ -0,0 +1,99 @@ +package io.v.nutz.zhgh.staffmanage.member.service; + +import cn.wizzer.framework.page.Pagination; +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 io.v.nutz.sys.models.User; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import org.nutz.lang.util.NutMap; + +import java.util.List; +import java.util.Map; + +/** + * Todo + * + * @author: 1V + * @date: 2021/1/25 + * @since 1.0 + */ +public interface MemberCommonService extends ViService { + + /** + * 会员变更记录 + * + * @param userId + * @return + */ + List memberChangeRecords(String userId); + + + /** + * 会员变更记录 + * + * @param cnd + * @return + */ + Pagination memberChangeRecords(PageForm pageForm, CndPlus cnd); + + /** + * 某会员历史变更记录 + * @param userId + * @return + */ + List memberHistoryRecordsByUserId(String userId); + + + /** + * 获取校工会或分工会会员管理员的工号 + * queryType 传 school 查询校工会会员管理员工号,branch 查询分工会会员管理员工号 + * @return + */ + List getSchoolOrBranchUnionMemberAdminLoginNames(String queryType, String userId); + + + NutMap getDictAllowChangeFields(); + + /** + * 获取变更详情 + * @param recordId 变更记录id + * @return + */ + List getChangeInfos(String recordId); + + List getChangeInfos(MemberChangeRecord record); + + /** + * 比较有哪些变更类型 + * @param record + * @param user + * @return + */ + List compareChangeType(MemberChangeRecord record, User user); + + /** + * 存储比较变更信息并更新会员信息 + * @param recordId + */ + void compareChangeInfoAndUpdateMember(String recordId); + + /** + * 获取会员的变更信息 + * @param userId + * @return + */ + List getAllChangeInfo(String userId); + + + /** + * 比较两个对象,并记录变更的字段工具 + * + * @param newMap 新数据 + * @param sourceMap 原数据 + * @param fieldsMap 变更字段 + * @param changeList 变更集合 + */ + void extractChange(NutMap newMap, NutMap sourceMap, String fieldName, Map fieldsMap, List changeList); +} diff --git a/src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberHistoryService.java similarity index 67% rename from src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberHistoryService.java index a46e202..42d9a75 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/MemberHistoryService.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/MemberHistoryService.java @@ -1,7 +1,7 @@ -package io.v.nutz.zhgh.member.service; +package io.v.nutz.zhgh.staffmanage.member.service; import io.v.nutz.base.service.ViService; -import io.v.nutz.zhgh.member.model.MemberHistory; +import io.v.nutz.zhgh.staffmanage.member.model.MemberHistory; /** * Todo diff --git a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCheckPersonalServiceImpl.java similarity index 76% rename from src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCheckPersonalServiceImpl.java index 4e8db7b..50eaee9 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberCheckPersonalServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCheckPersonalServiceImpl.java @@ -1,7 +1,7 @@ -package io.v.nutz.zhgh.member.service.impl; +package io.v.nutz.zhgh.staffmanage.member.service.impl; import io.v.nutz.base.service.impl.ViServiceImpl; -import io.v.nutz.zhgh.member.service.MemberCheckPersonalService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCheckPersonalService; import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java new file mode 100644 index 0000000..b366fe4 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java @@ -0,0 +1,442 @@ +package io.v.nutz.zhgh.staffmanage.member.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HtmlUtil; +import cn.wizzer.framework.page.Pagination; +import io.v.nutz.base.dao.CndPlus; +import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.service.impl.ViServiceImpl; +import io.v.nutz.base.utils.Roles; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.sys.models.*; +import io.v.nutz.sys.services.SysDictService; +import io.v.nutz.sys.services.SysRoleService; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.zhgh.activity.models.ActivityUserScope; +import io.v.nutz.zhgh.data.model.UserHistory; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.specialstaff.model.SpecialStaff; +import io.v.nutz.zhgh.welfare.model.WelfareList; +import lombok.extern.slf4j.Slf4j; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +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.lang.Lang; +import org.nutz.lang.random.R; +import org.nutz.lang.util.NutMap; +import org.nutz.plugins.wkcache.annotation.CacheDefaults; + +import java.util.*; +import java.util.stream.Collectors; + + +/** + * @author 1V + */ +@Slf4j +@IocBean(args = {"refer:dao"}) +@CacheDefaults(cacheName = "member") +public class MemberCommonServiceImpl extends ViServiceImpl implements MemberCommonService { + public MemberCommonServiceImpl(Dao dao) { + super(dao); + } + + @Inject + private SysDictService sysDictService; + @Inject + private SysUserService sysUserService; + @Inject + private SysRoleService sysRoleService; + + private final String MEMBER_CHANGE_RECORDS = """ + SELECT + mcr.*, + u.unitname AS userUnitName, + u.unionname AS userUnionName, + u.threeUnitName AS userThreeUnitName, + u.unionGroupName AS userUnionGroupName, + state.stateId, + state.stateName, + state.stateColor + FROM + member_change_record mcr + LEFT JOIN `user` u ON mcr.userId = u.id + LEFT JOIN audit_state state ON mcr.applyStateId = state.stateId + $condition + """; + + @Override + public List memberChangeRecords(String userId) { + Sql sql = Sqls.create(MEMBER_CHANGE_RECORDS); + sql.setCondition(Cnd.where("mcr.userId", "=", userId).desc("mcr.applyTime")); + return listMap(sql); + } + + @Override + public Pagination memberChangeRecords(PageForm pageForm, CndPlus cnd) { + Sql sql = Sqls.create(MEMBER_CHANGE_RECORDS).setCondition(cnd); + return list(pageForm, sql); + } + + + @Override + public List memberHistoryRecordsByUserId(String userId) { + 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 + """); + Cnd cnd = Cnd.NEW(); + cnd.and("u.id", "=", userId); + cnd.desc("his.changeTime"); + sql.setCondition(cnd); + return listMap(sql); + } + + + @Override + public List getSchoolOrBranchUnionMemberAdminLoginNames(String queryType, String userId) { + Sql sql = Sqls.create(""" + SELECT + u.loginname + FROM + `sys_user_role` userRole + LEFT JOIN sys_role role ON role.id = userRole.roleId + LEFT JOIN `user` u ON u.id = userRole.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + if ("school".equals(queryType)) { + cnd.and("role.`code`", "=", "SchoolUnionMemberAdmin"); + } else { + Sql sqlUnionId = Sqls.fetchString(Sqls.create("select unionid from `user` where id = @id").setParam("id", userId).toString()); + dao().execute(sqlUnionId); + String unionid = sql.getString(); + cnd.and("u.unionid", "=",unionid); + cnd.and("role.`code`", "=", "BranchUnionMemberAdmin"); + } + sql.setCondition(cnd); + sql.setCallback(Sqls.callback.strList()); + dao().execute(sql); + return sql.getList(String.class); + } + + @Override + public NutMap getDictAllowChangeFields() { + //获取可变更字段 + List dictList = sysDictService.getSubListByCode("ALLOW_CHANGE_FIELDS"); + Set allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet()); + allowChangeFieldNames.add("member"); + allowChangeFieldNames.add("welfareMember"); + Map dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); + dictMap.put("member", "会员状态"); + dictMap.put("welfareMember", "福利会员状态"); + return NutMap.NEW().addv("allowChangeFieldNames", allowChangeFieldNames).addv("dictMap", dictMap); + } + + /** + * 获取变更记录详情 + * + * @param recordId 变更记录id + * @return + */ + @Override + public List getChangeInfos(String recordId) { + UserHistory history = dao().fetch(UserHistory.class, Cnd.where("recordId", "=", recordId)); + if (Lang.isNotEmpty(history)) { + return history.getChangeInfos(); + } else { + MemberChangeRecord record = dao().fetch(MemberChangeRecord.class, recordId); + return getChangeInfos(record); + } + } + + @Override + public List getChangeInfos(MemberChangeRecord record) { + User info = dao().fetch(User.class, Cnd.where("id", "=", record.getUserId())); + + NutMap map = getDictAllowChangeFields(); + Set allowChangeFieldNames = map.getAs("allowChangeFieldNames", Set.class); + Map dictMap = map.getAs("dictMap", Map.class); + + // 新数据 + NutMap newMap = Lang.obj2nutmap(record); + // 原数据 + NutMap sourceMap = Lang.obj2nutmap(info); + List changeList = new ArrayList<>(); + + for (String fieldName : allowChangeFieldNames) { + extractChange(newMap, sourceMap, fieldName, dictMap, changeList); + } + return changeList; + } + + + @Override + public List compareChangeType(MemberChangeRecord record, User user) { + List changeTypes = new ArrayList<>(); + changeTypes.add(MemberChangeType.BASIC_CHANGE.getType()); + if (!ObjectUtil.equals(user.getUserState(), record.getUserState())) { + List list = Arrays.stream(MemberChangeType.values()) + .filter(v -> v.getChangeTypeName().equals(record.getUserState())).toList(); + if (Lang.isNotEmpty(list)) { + changeTypes.add(list.get(0).getType()); + } + } + if (!ObjectUtil.equals(user.getMember() == 1, record.getMember())){ + if (record.getMember()) { + changeTypes.add(MemberChangeType.RESTORE.getType()); + } else { + changeTypes.add(MemberChangeType.WITHDRAWAL.getType()); + } + } + if (!ObjectUtil.equals(user.getUnitid(), record.getUnitId())) { + changeTypes.add(MemberChangeType.UNIT_CHANGE.getType()); + } + if (!ObjectUtil.equals(user.getUnionid(), record.getUnionId())) { + changeTypes.add(MemberChangeType.UNION_CHANGE.getType()); + } + return changeTypes; + } + + @Override + public void compareChangeInfoAndUpdateMember(String recordId) { + MemberChangeRecord record = dao().fetch(MemberChangeRecord.class, recordId); + List changeList = getChangeInfos(record); + + // 如果有工会关系人员,这个user用来存储数据 + User user = dao().fetch(User.class, Cnd.where("id", "=", record.getUserId())); + // 获取会员信息,用于存储变更记录 + Sys_user info = dao().fetch(Sys_user.class, Cnd.where("id", "=", record.getUserId())); + String userId = info.getId(); + UserHistory history = new UserHistory(); + if (Lang.isNotEmpty(changeList)) { + BeanUtil.copyProperties(info, history); + } + + if (Lang.isNotEmpty(history)) { + history.setRecordId(recordId); + history.setChangeTime(DateUtil.date()); + history.setChangeTypes(record.getChangeTypes()); + history.setChangeOrigin(record.getChangeOrigin()); + history.setChangeInfos(changeList); + String changeInfos = changeList.stream().map(v -> { + return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; + }).collect(Collectors.joining(";")); + history.setChangeInfosStr(changeInfos); + + // 加入会员 + if (record.getMember()) { + int activityCount = dao().count(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); + int memberCount = dao().count(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", Roles.MEMBER)); + if (activityCount <= 0) { + // 取消或加入会员组别 + if (record.getIsJoinActivityMemberScope() != null && record.getIsJoinActivityMemberScope()) { + ActivityUserScope scope = new ActivityUserScope(); + scope.setUserId(userId); + scope.setGroupId(1); + scope.setGroupName("工会会员"); + dao().insert(scope); + } + } + if (memberCount <= 0) { + Sys_user_role userRole = new Sys_user_role(); + userRole.setUserId(userId); + userRole.setRoleId(Roles.MEMBER); + dao().insert(userRole); + } + // 杭医特有,其他学校请删除 + record.setPreparedBy("会员"); + } else { + if (record.getIsExitActivityMemberScope() != null && record.getIsExitActivityMemberScope()) { + dao().clear(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); + } + dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", Roles.MEMBER)); + // 杭医特有,其他学校请删除 + record.setPreparedBy("教职工"); + } + + // 加入福利会员 是否加入福利项目 + if (record.getWelfareMember() && record.getIsJoinWelfareProject() != null && record.getIsJoinWelfareProject()) { + WelfareList welfareList = new WelfareList(); + welfareList.setId(R.UU32()); + welfareList.setProjectId(record.getWelfareProjectId()); + welfareList.setUserId(userId); + welfareList.setIsReceive(false); + welfareList.setIsAutoSelect(false); + welfareList.setUserState(record.getUserState()); + welfareList.setPersonType(record.getPersonType()); + welfareList.setWelfareUnitId(record.getUnitId()); + dao().insert(welfareList); + } + + // 到此,表明审核通过,需要存储历史数据,并修改用户数据 + BeanUtil.copyProperties(record, info); + info.setId(userId); + info.setIdcard(record.getIdCard()); + + // 如果有单位变更,则需要记录单位关系 + if (record.getChangeTypes().contains(MemberChangeType.UNIT_CHANGE.getType())) { + info.setUnitid(record.getUnitId()); + } + + // 如果工会发生变更了,就是工会关系变更,记录到特殊人员表中 + if (record.getChangeTypes().contains(MemberChangeType.UNION_CHANGE.getType())) { + Sys_union union = dao().fetch(Sys_union.class, Cnd.where("id", "=", record.getUnionId())); + SpecialStaff staff = new SpecialStaff(); + staff.setUserId(userId); + staff.setPersonnelRelationUnitId(user.getUnitid()); + staff.setPersonnelRelationUnitName(user.getUnitname()); + staff.setUnionRelationUnionId(union.getId()); + staff.setUnionRelationUnionName(union.getUnionname()); + staff.setIsManyUnit(false); + staff.setSpecialStaffType("HMC_RELATION"); + dao().insert(staff); + } + + dao().updateIgnoreNull(info); + dao().insert(history); + + sysUserService.clearCache(); + sysRoleService.clearCache(); + } + } + + + /** + * 获取所有变更记录 + * @param userId + * @return + */ + @Override + public List getAllChangeInfo(String userId) { + List resultMapList = new ArrayList<>(); + + Sql sql = Sqls.fetchString(Sqls.create("select loginname from sys_user where id = @id").setParam("id", userId).toString()); + dao().execute(sql); + String loginName = sql.getString(); + + MemberChangeRecord record = dao().fetch(MemberChangeRecord.class, Cnd.where("userId", "=", userId).desc("applyDateTime")); + + List historyList = dao().query(UserHistory.class, Cnd.where("loginname", "=", loginName) + .and("changeInfos", "is not", null).desc("changeTime")); + + List recordList = historyList.stream().map(UserHistory::getRecordId).toList(); + + if (Lang.isNotEmpty(record) && !recordList.contains(record.getId())) { + NutMap map = NutMap.NEW(); + List changeInfos = getChangeInfos(record.getId()); + map.put("changeInfos", changeInfos); + map.put("timestamp", DateUtil.format(record.getApplyDateTime(), "yyyy-MM-dd HH:mm:ss")); + map.put("changeOriginName", MemberChangeOrigin.valueOf(MemberChangeOrigin.class, record.getChangeOrigin()).changeOriginName); + resultMapList.add(map); + } + for (UserHistory history : historyList) { + NutMap map = NutMap.NEW(); + List changeInfos = history.getChangeInfos(); + map.put("changeInfos", changeInfos); + map.put("timestamp", DateUtil.format(history.getChangeTime(), "yyyy-MM-dd HH:mm:ss")); + map.put("changeOriginName", MemberChangeOrigin.valueOf(MemberChangeOrigin.class, history.getChangeOrigin()).changeOriginName); + resultMapList.add(map); + } + return resultMapList; + } + + + /** + * 比较两个对象,并记录变更的字段工具 + * + * @param newMap 新数据 + * @param sourceMap 原数据 + * @param fieldsMap 变更字段 + * @param changeList 变更集合 + */ + @Override + public void extractChange(NutMap newMap, NutMap sourceMap, String fieldName, Map fieldsMap, List changeList) { + try { + Object currentValue = this.booleanVerification(newMap.get(fieldName)); + Object previousValue = this.booleanVerification(sourceMap.get(fieldName)); + + if (!ObjectUtil.equals(currentValue, previousValue)) { + String name = fieldsMap.getOrDefault(fieldName, fieldName); + if ("unitId".equals(fieldName)) { + List unitList = dao().query(Sys_unit.class, + Cnd.where("id", "in", List.of(previousValue, currentValue))); + Object finalPreviousValue = previousValue; + previousValue = unitList.stream().filter(v -> v.getId().equals(String.valueOf(finalPreviousValue))) + .findFirst().orElse(new Sys_unit()).getName(); + Object finalCurrentValue = currentValue; + currentValue = unitList.stream().filter(v -> v.getId().equals(String.valueOf(finalCurrentValue))) + .findFirst().orElse(new Sys_unit()).getName(); + } + changeList.add(NutMap.NEW() + .setv("field", fieldName) + .setv("fieldName", name) + .setv("sourceValue", previousValue) + .setv("newValue", currentValue)); + } + + } catch (Exception e) { + log.error("Error while extracting and comparing changes for field: {}", fieldName, e); + } + } + + + /** + * 处理布尔值和数值类型 + * + * @param value + * @return + */ + private String booleanVerification(Object value) { + // 检查是否为null或空字符串 + if (ObjectUtil.isAllEmpty(value, "")) { + return "无数据"; + } + // 处理布尔值 + if (value instanceof Boolean) { + return ((Boolean) value) ? "是" : "否"; + } + // 处理数值类型 + if (value instanceof Number && List.of(0, 1).contains((Integer) value)) { + return ((Number) value).intValue() != 0 ? "是" : "否"; + } + // 其他对象,返回其字符串表示 + if (value instanceof Date) { + return DateUtil.format((Date) value, "yyyy-MM-dd"); + } + return value.toString(); + } +} diff --git a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberHistoryServiceImpl.java similarity index 91% rename from src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberHistoryServiceImpl.java index 94efeb1..049375d 100644 --- a/src/main/java/io/v/nutz/zhgh/member/service/impl/MemberHistoryServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberHistoryServiceImpl.java @@ -1,11 +1,11 @@ -package io.v.nutz.zhgh.member.service.impl; +package io.v.nutz.zhgh.staffmanage.member.service.impl; 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 io.v.nutz.zhgh.member.model.MemberHistory; -import io.v.nutz.zhgh.member.service.MemberHistoryService; +import io.v.nutz.zhgh.staffmanage.member.model.MemberHistory; +import io.v.nutz.zhgh.staffmanage.member.service.MemberHistoryService; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; diff --git a/src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/template/MemberTemp.java similarity index 93% rename from src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/template/MemberTemp.java index 1180ade..cf75914 100644 --- a/src/main/java/io/v/nutz/zhgh/member/template/MemberTemp.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/template/MemberTemp.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.member.template; +package io.v.nutz.zhgh.staffmanage.member.template; import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/utils/MemberUtils.java similarity index 76% rename from src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/member/utils/MemberUtils.java index f58e771..408ef85 100644 --- a/src/main/java/io/v/nutz/zhgh/member/utils/MemberUtils.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/utils/MemberUtils.java @@ -1,12 +1,8 @@ -package io.v.nutz.zhgh.member.utils; +package io.v.nutz.zhgh.staffmanage.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 org.apache.commons.lang.ArrayUtils; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -23,43 +19,6 @@ import org.nutz.lang.Strings; **/ public class MemberUtils { - public static void memberCorrespondence(Integer type, Sys_user user) { - int member = MemberMode.NONE.getCode(); - int memberStatus = 0; - - if (type == UserChangeType.UNIT_CHANGE.getCode()) { - member = MemberMode.NORMAL.getCode(); - memberStatus = MemberStatus.TURN_IN.getCode(); - } - if (type == UserChangeType.NEW.getCode()) { - member = MemberMode.NORMAL.getCode(); - memberStatus = MemberStatus.NORMAL.getCode(); - } - if (type == UserChangeType.RESIGN.getCode()) { - member = MemberMode.NONE.getCode(); - memberStatus = MemberStatus.TURN_OUT.getCode(); - } - if (type == UserChangeType.RETIREMENT.getCode()) { - member = MemberMode.NONE.getCode(); - memberStatus = MemberStatus.KEEP.getCode(); - } -// if (type == UserChangeType.EXPELLED.getCode()) { -// 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(); - } - - user.setMember(member).setMemberStatus(memberStatus); - } - - public static Cnd getCnd(PageForm pageForm, String startDate, String endDate, diff --git a/src/main/java/io/v/nutz/zhgh/single/controller/SingleUserController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/single/controller/SingleUserController.java similarity index 97% rename from src/main/java/io/v/nutz/zhgh/single/controller/SingleUserController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/single/controller/SingleUserController.java index 9742591..12d3887 100644 --- a/src/main/java/io/v/nutz/zhgh/single/controller/SingleUserController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/single/controller/SingleUserController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.single.controller; +package io.v.nutz.zhgh.staffmanage.single.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; @@ -10,10 +10,10 @@ import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.result.Result; import io.v.nutz.base.query.PageForm; import io.v.nutz.web.commons.slog.annotation.SLog; -import io.v.nutz.zhgh.single.service.SingleUserService; +import io.v.nutz.zhgh.staffmanage.single.service.SingleUserService; import io.v.nutz.base.utils.ViTool; import io.v.nutz.sys.models.Sys_user; -import io.v.nutz.zhgh.thirtyteach.template.ThirtyTeachTemp; +import io.v.nutz.zhgh.staffmanage.thirtyteach.template.ThirtyTeachTemp; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; @@ -30,7 +30,6 @@ import org.nutz.mvc.annotation.Param; import org.nutz.mvc.upload.TempFile; import org.nutz.mvc.upload.UploadAdaptor; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/io/v/nutz/zhgh/single/controller/SingleUserStatisticsController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/single/controller/SingleUserStatisticsController.java similarity index 97% rename from src/main/java/io/v/nutz/zhgh/single/controller/SingleUserStatisticsController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/single/controller/SingleUserStatisticsController.java index 919bc95..d9f8153 100644 --- a/src/main/java/io/v/nutz/zhgh/single/controller/SingleUserStatisticsController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/single/controller/SingleUserStatisticsController.java @@ -1,10 +1,10 @@ -package io.v.nutz.zhgh.single.controller; +package io.v.nutz.zhgh.staffmanage.single.controller; 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.zhgh.single.service.SingleUserService; +import io.v.nutz.zhgh.staffmanage.single.service.SingleUserService; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.ioc.loader.annotation.Inject; diff --git a/src/main/java/io/v/nutz/zhgh/single/service/SingleUserService.java b/src/main/java/io/v/nutz/zhgh/staffmanage/single/service/SingleUserService.java similarity index 95% rename from src/main/java/io/v/nutz/zhgh/single/service/SingleUserService.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/single/service/SingleUserService.java index a07af65..c0651b7 100644 --- a/src/main/java/io/v/nutz/zhgh/single/service/SingleUserService.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/single/service/SingleUserService.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.single.service; +package io.v.nutz.zhgh.staffmanage.single.service; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.service.ViService; diff --git a/src/main/java/io/v/nutz/zhgh/single/service/impl/SingleUserServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/single/service/impl/SingleUserServiceImpl.java similarity index 99% rename from src/main/java/io/v/nutz/zhgh/single/service/impl/SingleUserServiceImpl.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/single/service/impl/SingleUserServiceImpl.java index 7d65f21..f9a4a98 100644 --- a/src/main/java/io/v/nutz/zhgh/single/service/impl/SingleUserServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/single/service/impl/SingleUserServiceImpl.java @@ -1,11 +1,11 @@ -package io.v.nutz.zhgh.single.service.impl; +package io.v.nutz.zhgh.staffmanage.single.service.impl; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.service.impl.ViServiceImpl; -import io.v.nutz.zhgh.single.service.SingleUserService; +import io.v.nutz.zhgh.staffmanage.single.service.SingleUserService; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.commons.lang.StringUtils; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeConfigController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeConfigController.java new file mode 100644 index 0000000..03be31c --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeConfigController.java @@ -0,0 +1,83 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.controller; + +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeConfig; +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.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangeConfigController + * @Date 2025/2/13 15:45 + * @注释 会员更新配置 + */ +@IocBean +@Ok("json:full") +@At("/platform/sourcechange/config") +public class SourceChangeConfigController { + + @Inject + private Dao dao; + @Inject + private SysUserService sysUserService; + + @At("/") + @Ok("beetl:/platform/sourcechange/config/index.html") + @RequiresPermissions("sourcechange.config") + public void index() {} + + + @At + @ViReturn + @RequiresPermissions("sourcechange.config") + public Object getSourceChangeConfig(){ + SourceChangeConfig config = dao.fetch(SourceChangeConfig.class, Cnd.NEW()); + List memberSiftList = config.getMemberSiftList(); + for (SourceChangeConfig.MemberSift sift : memberSiftList) { + Object siftValue = sift.getSiftValue(); + System.out.println(siftValue); + List list = (List) siftValue; + System.out.println(list); + } + return null; + } + + + @At + @ViReturn + @RequiresPermissions("sourcechange.config") + public Object doAddOrModify(@Param("data") SourceChangeConfig config){ + System.out.println(config); + dao.insertOrUpdate(config); + return null; + } + + + @At + @ViReturn + @RequiresPermissions("sourcechange.config") + public Object getRemoteSearchUser(String query){ + Sql sql = Sqls.create("select id,loginname,username,unitname,unionname from `user` $condition"); + Cnd cnd = Cnd.NEW(); + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("loginname", query); + seg.orLike("username", query); + cnd.and(seg); + sql.setCondition(cnd); + return sysUserService.listPageMap(1, 10, sql); + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java new file mode 100644 index 0000000..2c2d0ae --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java @@ -0,0 +1,153 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.controller; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.utils.PageUtil; +import io.v.nutz.sys.models.Sys_dict; +import io.v.nutz.sys.models.User; +import io.v.nutz.sys.services.SysDictService; +import io.v.nutz.web.commons.slog.annotation.SLog; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeMiddleTable; +import io.v.nutz.zhgh.staffmanage.sourcechange.param.pageform.SourceChangePageForm; +import io.v.nutz.zhgh.staffmanage.sourcechange.service.SourceChangeManageService; +import lombok.extern.slf4j.Slf4j; +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.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; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangeManageController + * @Date 2025/2/17 16:08 + * @注释 人员异动查看 + */ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/sourcechange/manage") +public class SourceChangeManageController { + + @Inject + private Dao dao; + @Inject + private MemberCommonService commonService; + @Inject + private SourceChangeManageService sourceChangeManageService; + + + @At("") + @Ok("beetl:/platform/sourcechange/manage/index.html") + @RequiresPermissions("sourcechange.manage") + public void index() { + } + + + @At + @ViReturn + @RequiresPermissions("sourcechange.manage") + public Object pageData(SourceChangePageForm pageForm){ + Sql sql = Sqls.create(""" + SELECT + scmt.id, + scmt.loginname, + scmt.username, + u.sex, + u.unitName, + u.unionName, + scmt.userState, + scmt.personType, + scmt.preparedBy, + scmt.changeTime, + scmt.changeTypes, + scmt.changeOrigin, + scmt.isOperate, + u.id AS userId + FROM + source_change_middle_table scmt + LEFT JOIN `user` u ON scmt.loginname = u.loginname + $condition + """); + Cnd cnd = Cnd.NEW(); + if(StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("username",pageForm.getSearchKeyword()); + seg.orLike("loginname",pageForm.getSearchKeyword()); + cnd.and(seg); + } + if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } else { + cnd.desc("changeTime"); + } + + if (Lang.isNotEmpty(pageForm.getChangeTypes())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + for (String type : pageForm.getChangeTypes()) { + seg.or(new Static("JSON_CONTAINS(scmt.changeTypes, JSON_QUOTE('%s'), '$')".formatted(type))); + } + cnd.and(seg); + } + + cnd.andEX("unionId", "=", pageForm.getUnionId()); + cnd.andEX("unitId", "=", pageForm.getUnitId()); + cnd.andEX("sex", "=", pageForm.getSex()); + cnd.andEX("personType", "=", pageForm.getPersonType()); + cnd.andEX("preparedBy", "=", pageForm.getPreparedBy()); + cnd.andEX("userState", "=", pageForm.getUserState()); + cnd.andEX("isOperate", "=", pageForm.getIsOperate()); + if (StrUtil.isAllNotBlank(pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())) { + cnd.and(new Static(String.format("Date(changeTime) >= '%s' and Date(changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd()))); + } else { + cnd.and("Date(changeTime)", "=", DateUtil.today()); + } + sql.setCondition(cnd); + return commonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + + /** + * 获取比变更信息和当前人员信息 + * @param sourceChangeId + * @return + */ + @At + @ViReturn + @RequiresPermissions("sourcechange.manage") + public Object getSourceChangeAndCurrent(String sourceChangeId){ + SourceChangeMiddleTable middleTable = dao.fetch(SourceChangeMiddleTable.class, sourceChangeId); + User user = dao.fetch(User.class, Cnd.where("loginname", "=", middleTable.getLoginname())); + + NutMap map = NutMap.NEW(); + map.put("middleTable", middleTable); + map.put("userData", user); + return map; + } + + + @At + @ViReturn + @RequiresPermissions("sourcechange.manage") + @SLog(tag = "人员变更管理", msg = "手动提交变更") + public Object doSubmit(SourceChangeMiddleTable middleTable) { + sourceChangeManageService.doSourceChange(middleTable); + return null; + } +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeConfig.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeConfig.java new file mode 100644 index 0000000..b7363b5 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeConfig.java @@ -0,0 +1,79 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.model; + +import lombok.Data; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangeConfig + * @Date 2025/2/12 10:48 + * @注释 更新配置 + */ +@Data +@Table +public class SourceChangeConfig { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("人员更新模式(自动、手动)") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String sourceChangeType; + + // ========================================= 会员相关 start + @Column + @Comment("会员区分") + @ColDefine(type = ColType.MYSQL_JSON) + private List memberSiftList; + + @Data + public static class MemberSift implements Serializable { + // 筛选名称 + private String siftName; + // 筛选值 + private Object siftValue; + } + + @Column + @Comment("新进职工是否加入会员组别") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isJoinMemberActivityScope; + + @Column + @Comment("非会员是否剔除会员组别") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isDeleteMemberActivityScope; + // ========================================= 会员相关 end + + + // ========================================= 福利会员相关 start + @Column + @Comment("福利会员区分") + @ColDefine(type = ColType.MYSQL_JSON) + private List welfareMemberSiftList; + + @Data + public static class WelfareMemberSift implements Serializable { + // 筛选名称 + private String siftName; + // 筛选编码 + private String siftCode; + // 筛选值 + private Object siftValue; + } + + @Column + @Comment("新进职工是否加入正在进行中的福利项目") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isJoinWelfareProject; + // ========================================= 福利会员相关 end +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeMiddleTable.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeMiddleTable.java new file mode 100644 index 0000000..e3b9d4d --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/model/SourceChangeMiddleTable.java @@ -0,0 +1,92 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.model; + +import io.v.nutz.sys.models.Sys_user; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; +import org.nutz.lang.util.NutMap; + +import java.util.Date; +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangeMiddleTable + * @Date 2025/2/17 17:24 + * @注释 + */ +@Data +@Table +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +@TableIndexes({ + @Index(name = "INDEX_HISTORY_USER_LOGIN_NAME", fields = {"loginname"}, unique = false), + @Index(name = "INDEX_HISTORY_USER_UNIT", fields = {"unitid"}, unique = false), + @Index(name = "INDEX_HISTORY_USER_UNION", fields = {"unionid"}, unique = false), +}) +public class SourceChangeMiddleTable extends Sys_user { + + @Name + @Column + @Comment("ID") + @PrevInsert(uu32 = true) + @ColDefine(type = ColType.VARCHAR, width = 32) + private String id; + + + @Column + @Comment("是否加入会员组别") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isJoinActivityMemberScope; + + @Column + @Comment("是否退出会员组别") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isExitActivityMemberScope; + + @Column + @Comment("是否加入福利项目") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isJoinWelfareProject; + + @Column + @Comment("福利项目id") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String welfareProjectId; + + @Column + @Comment("更新时间") + @ColDefine(type = ColType.DATETIME) + private Date changeTime; + + /** + * @see io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType + */ + @Column + @Comment("变更类型(多种)") + @ColDefine(type = ColType.MYSQL_JSON) + private List changeTypes; + + @Column + @Comment("变更来源") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String changeOrigin; + + @Column + @Comment("详细变更记录,用于查询、列表展示") + @ColDefine(type = ColType.MYSQL_JSON) + private List changeInfos; + + @Column + @Comment("详细变更记录,文本类型,可用于导出") + @ColDefine(type = ColType.TEXT) + private String changeInfosStr; + + @Column + @Comment("是否操作") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isOperate; +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/param/pageform/SourceChangePageForm.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/param/pageform/SourceChangePageForm.java new file mode 100644 index 0000000..d61c5d5 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/param/pageform/SourceChangePageForm.java @@ -0,0 +1,49 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.param.pageform; + +import io.v.nutz.base.query.PageForm; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangePageForm + * @Date 2025/2/17 17:20 + * @注释 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SourceChangePageForm extends PageForm { + + // 工会id + private String unionId; + + // 单位id + private String unitId; + + // 性别 + private String sex; + + // 人员类型 + private String personType; + + // 杭医是人员区分,其他为人员编制 + private String preparedBy; + + // 在职状态 + private String userState; + + //变更状态数组 + private List changeTypes; + + // 变更开始查询时间 + private String changeDateBefore; + + // 变更结束查询时间 + private String changeDateEnd; + + // 是否操作 + private Boolean isOperate; +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/SourceChangeManageService.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/SourceChangeManageService.java new file mode 100644 index 0000000..6ad8f1d --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/SourceChangeManageService.java @@ -0,0 +1,20 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.service; + +import io.v.nutz.base.service.BaseService; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeMiddleTable; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangeManageService + * @Date 2025/2/19 14:54 + * @注释 :人员变更管理 + */ +public interface SourceChangeManageService extends BaseService { + + /** + * 人工变更,做变更 + * @param middleTable + */ + void doSourceChange(SourceChangeMiddleTable middleTable); +} diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java new file mode 100644 index 0000000..06d1fb4 --- /dev/null +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java @@ -0,0 +1,195 @@ +package io.v.nutz.zhgh.staffmanage.sourcechange.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HtmlUtil; +import io.v.nutz.base.service.impl.BaseServiceImpl; +import io.v.nutz.base.utils.Roles; +import io.v.nutz.sys.models.Sys_union; +import io.v.nutz.sys.models.Sys_user; +import io.v.nutz.sys.models.Sys_user_role; +import io.v.nutz.sys.models.User; +import io.v.nutz.sys.services.SysRoleService; +import io.v.nutz.sys.services.SysUserService; +import io.v.nutz.zhgh.activity.models.ActivityUserScope; +import io.v.nutz.zhgh.data.model.UserHistory; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeMiddleTable; +import io.v.nutz.zhgh.staffmanage.sourcechange.service.SourceChangeManageService; +import io.v.nutz.zhgh.staffmanage.specialstaff.model.SpecialStaff; +import io.v.nutz.zhgh.welfare.model.WelfareList; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; +import org.nutz.lang.random.R; +import org.nutz.lang.util.NutMap; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @version 1.0 + * @Author zzr + * @name:SourceChangeManageServiceImpl + * @Date 2025/2/19 14:55 + * @注释 + */ +@IocBean(args = {"refer:dao"}) +public class SourceChangeManageServiceImpl extends BaseServiceImpl implements SourceChangeManageService { + public SourceChangeManageServiceImpl(Dao dao) { + super(dao); + } + + @Inject + private MemberCommonService commonService; + @Inject + private SysRoleService sysRoleService; + @Inject + private SysUserService sysUserService; + + + @Override + @Aop(TransAop.READ_COMMITTED) + public void doSourceChange(SourceChangeMiddleTable middleTable) { + User user = dao().fetch(User.class, Cnd.where("loginname", "=", middleTable.getLoginname())); + + //获取可变更字段 + NutMap map = commonService.getDictAllowChangeFields(); + Set allowChangeFieldNames = map.getAs("allowChangeFieldNames", Set.class); + Map dictMap = map.getAs("dictMap", Map.class); + + // 新数据 + NutMap newMap = Lang.obj2nutmap(middleTable); + // 原数据 + NutMap sourceMap = Lang.obj2nutmap(user); + List changeList = new ArrayList<>(); + + for (String fieldName : allowChangeFieldNames) { + commonService.extractChange(newMap, sourceMap, fieldName, dictMap, changeList); + } + + List changeTypes = new ArrayList<>(); + changeTypes.add(MemberChangeType.BASIC_CHANGE.getType()); + if (!ObjectUtil.equals(user.getUserState(), middleTable.getUserState())) { + List list = Arrays.stream(MemberChangeType.values()) + .filter(v -> v.getChangeTypeName().equals(middleTable.getUserState())).toList(); + if (Lang.isNotEmpty(list)) { + changeTypes.add(list.get(0).getType()); + } + } + if (!ObjectUtil.equals(user.getMember(), middleTable.getMember())){ + if (middleTable.getMember() == 1) { + changeTypes.add(MemberChangeType.RESTORE.getType()); + } else { + changeTypes.add(MemberChangeType.WITHDRAWAL.getType()); + } + } + + + Sys_user info = dao().fetch(Sys_user.class, Cnd.where("loginname", "=", middleTable.getLoginname())); + String userId = info.getId(); + UserHistory history = new UserHistory(); + if (Lang.isNotEmpty(changeList)) { + BeanUtil.copyProperties(info, history); + } + + if (Lang.isNotEmpty(history)) { + history.setChangeTime(DateUtil.date()); + history.setChangeOrigin(MemberChangeOrigin.HAND_MOVEMENT.name()); + history.setChangeInfos(changeList); + String changeInfos = changeList.stream().map(v -> { + return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; + }).collect(Collectors.joining(";")); + history.setChangeInfosStr(changeInfos); + + // 加入会员 + if (middleTable.getMember() == 1) { + int activityCount = dao().count(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); + int memberCount = dao().count(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", Roles.MEMBER)); + if (activityCount <= 0) { + // 取消或加入会员组别 + if (middleTable.getIsJoinActivityMemberScope()) { + ActivityUserScope scope = new ActivityUserScope(); + scope.setUserId(userId); + scope.setGroupId(1); + scope.setGroupName("工会会员"); + dao().insert(scope); + } + } + if (memberCount <= 0) { + Sys_user_role userRole = new Sys_user_role(); + userRole.setUserId(userId); + userRole.setRoleId(Roles.MEMBER); + dao().insert(userRole); + } + // 杭医特有,其他学校请删除 + middleTable.setPreparedBy("会员"); + } else { + if (middleTable.getIsExitActivityMemberScope()) { + dao().clear(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); + } + dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", Roles.MEMBER)); + // 杭医特有,其他学校请删除 + middleTable.setPreparedBy("教职工"); + } + + // 加入福利会员 是否加入福利项目 + if (middleTable.getWelfareMember() == 1 && middleTable.getIsJoinWelfareProject()) { + WelfareList welfareList = new WelfareList(); + welfareList.setId(R.UU32()); + welfareList.setProjectId(middleTable.getWelfareProjectId()); + welfareList.setUserId(userId); + welfareList.setIsReceive(false); + welfareList.setIsAutoSelect(false); + welfareList.setUserState(middleTable.getUserState()); + welfareList.setPersonType(middleTable.getPersonType()); + welfareList.setWelfareUnitId(middleTable.getUnitid()); + dao().insert(welfareList); + } + + // 到此,表明审核通过,需要存储历史数据,并修改用户数据 + BeanUtil.copyProperties(middleTable, info); + info.setId(userId); + info.setIdcard(middleTable.getIdcard()); + + // 如果有单位变更,则需要记录单位关系 + if (!ObjectUtil.equals(user.getUnitid(), middleTable.getUnitid())) { + changeTypes.add(MemberChangeType.UNIT_CHANGE.getType()); + info.setUnitid(middleTable.getUnitid()); + } + + // 如果工会发生变更了,就是工会关系变更,记录到特殊人员表中 + if (!ObjectUtil.equals(user.getUnionid(), middleTable.getUnionid())) { + changeTypes.add(MemberChangeType.UNION_CHANGE.getType()); + Sys_union union = dao().fetch(Sys_union.class, Cnd.where("id", "=", middleTable.getUnionid())); + SpecialStaff staff = new SpecialStaff(); + staff.setUserId(userId); + staff.setPersonnelRelationUnitId(user.getUnitid()); + staff.setPersonnelRelationUnitName(user.getUnitname()); + staff.setUnionRelationUnionId(union.getId()); + staff.setUnionRelationUnionName(union.getUnionname()); + staff.setIsManyUnit(false); + staff.setSpecialStaffType("HMC_RELATION"); + dao().insert(staff); + } + + dao().updateIgnoreNull(info); + history.setChangeTypes(changeTypes); + dao().insert(history); + + dao().update(SourceChangeMiddleTable.class, Chain.make("isOperate", 2), Cnd.where("id", "=", middleTable.getId())); + + sysUserService.clearCache(); + sysRoleService.clearCache(); + } + + } +} diff --git a/src/main/java/io/v/nutz/zhgh/specialstaff/controller/SpecialStaffManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java similarity index 94% rename from src/main/java/io/v/nutz/zhgh/specialstaff/controller/SpecialStaffManageController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java index 2882d72..2963e24 100644 --- a/src/main/java/io/v/nutz/zhgh/specialstaff/controller/SpecialStaffManageController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.specialstaff.controller; +package io.v.nutz.zhgh.staffmanage.specialstaff.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; @@ -6,10 +6,10 @@ import io.v.nutz.base.page.Pagination; import io.v.nutz.base.result.Result; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.User; -import io.v.nutz.zhgh.specialstaff.model.SpecialStaff; -import io.v.nutz.zhgh.specialstaff.param.SpecialStaffPageForm; -import io.v.nutz.zhgh.specialstaff.service.SpecialStaffManageService; -import io.v.nutz.zhgh.specialstaff.vo.SpecialStaffVo; +import io.v.nutz.zhgh.staffmanage.specialstaff.model.SpecialStaff; +import io.v.nutz.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm; +import io.v.nutz.zhgh.staffmanage.specialstaff.service.SpecialStaffManageService; +import io.v.nutz.zhgh.staffmanage.specialstaff.vo.SpecialStaffVo; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; diff --git a/src/main/java/io/v/nutz/zhgh/specialstaff/model/SpecialStaff.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/model/SpecialStaff.java similarity index 98% rename from src/main/java/io/v/nutz/zhgh/specialstaff/model/SpecialStaff.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/model/SpecialStaff.java index aedb2c5..2c624f6 100644 --- a/src/main/java/io/v/nutz/zhgh/specialstaff/model/SpecialStaff.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/model/SpecialStaff.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.specialstaff.model; +package io.v.nutz.zhgh.staffmanage.specialstaff.model; import io.v.nutz.base.model.BaseModel; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/specialstaff/param/SpecialStaffPageForm.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/param/SpecialStaffPageForm.java similarity index 90% rename from src/main/java/io/v/nutz/zhgh/specialstaff/param/SpecialStaffPageForm.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/param/SpecialStaffPageForm.java index 4fdf4ce..d3a59d7 100644 --- a/src/main/java/io/v/nutz/zhgh/specialstaff/param/SpecialStaffPageForm.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/param/SpecialStaffPageForm.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.specialstaff.param; +package io.v.nutz.zhgh.staffmanage.specialstaff.param; import io.v.nutz.base.query.PageForm; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/specialstaff/service/SpecialStaffManageService.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java similarity index 78% rename from src/main/java/io/v/nutz/zhgh/specialstaff/service/SpecialStaffManageService.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java index c8b850d..f1def5f 100644 --- a/src/main/java/io/v/nutz/zhgh/specialstaff/service/SpecialStaffManageService.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java @@ -1,9 +1,9 @@ -package io.v.nutz.zhgh.specialstaff.service; +package io.v.nutz.zhgh.staffmanage.specialstaff.service; import io.v.nutz.base.page.Pagination; import io.v.nutz.base.service.BaseService; -import io.v.nutz.zhgh.specialstaff.model.SpecialStaff; -import io.v.nutz.zhgh.specialstaff.param.SpecialStaffPageForm; +import io.v.nutz.zhgh.staffmanage.specialstaff.model.SpecialStaff; +import io.v.nutz.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm; import org.nutz.lang.util.NutMap; /** diff --git a/src/main/java/io/v/nutz/zhgh/specialstaff/service/impl/SpecialStaffManageServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java similarity index 94% rename from src/main/java/io/v/nutz/zhgh/specialstaff/service/impl/SpecialStaffManageServiceImpl.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java index 7c89363..b9837ae 100644 --- a/src/main/java/io/v/nutz/zhgh/specialstaff/service/impl/SpecialStaffManageServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.specialstaff.service.impl; +package io.v.nutz.zhgh.staffmanage.specialstaff.service.impl; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.page.Pagination; @@ -6,9 +6,9 @@ import io.v.nutz.base.service.impl.BaseServiceImpl; import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.utils.Vi; import io.v.nutz.web.commons.utils.ShiroUtil; -import io.v.nutz.zhgh.specialstaff.model.SpecialStaff; -import io.v.nutz.zhgh.specialstaff.param.SpecialStaffPageForm; -import io.v.nutz.zhgh.specialstaff.service.SpecialStaffManageService; +import io.v.nutz.zhgh.staffmanage.specialstaff.model.SpecialStaff; +import io.v.nutz.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm; +import io.v.nutz.zhgh.staffmanage.specialstaff.service.SpecialStaffManageService; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; diff --git a/src/main/java/io/v/nutz/zhgh/specialstaff/vo/SpecialStaffVo.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/vo/SpecialStaffVo.java similarity index 95% rename from src/main/java/io/v/nutz/zhgh/specialstaff/vo/SpecialStaffVo.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/vo/SpecialStaffVo.java index 2f8fe0a..f49e8a5 100644 --- a/src/main/java/io/v/nutz/zhgh/specialstaff/vo/SpecialStaffVo.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/vo/SpecialStaffVo.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.specialstaff.vo; +package io.v.nutz.zhgh.staffmanage.specialstaff.vo; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/thirtyteach/controller/ThirtyTeachController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/thirtyteach/controller/ThirtyTeachController.java similarity index 99% rename from src/main/java/io/v/nutz/zhgh/thirtyteach/controller/ThirtyTeachController.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/thirtyteach/controller/ThirtyTeachController.java index 5cef02a..4faf87f 100644 --- a/src/main/java/io/v/nutz/zhgh/thirtyteach/controller/ThirtyTeachController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/thirtyteach/controller/ThirtyTeachController.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.thirtyteach.controller; +package io.v.nutz.zhgh.staffmanage.thirtyteach.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; @@ -6,7 +6,6 @@ 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.date.DateUtil; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.result.Result; @@ -18,7 +17,7 @@ import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.base.utils.ViTool; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.zhgh.thirtyteach.template.ThirtyTeachTemp; +import io.v.nutz.zhgh.staffmanage.thirtyteach.template.ThirtyTeachTemp; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.aop.interceptor.ioc.TransAop; diff --git a/src/main/java/io/v/nutz/zhgh/thirtyteach/template/ThirtyTeachTemp.java b/src/main/java/io/v/nutz/zhgh/staffmanage/thirtyteach/template/ThirtyTeachTemp.java similarity index 93% rename from src/main/java/io/v/nutz/zhgh/thirtyteach/template/ThirtyTeachTemp.java rename to src/main/java/io/v/nutz/zhgh/staffmanage/thirtyteach/template/ThirtyTeachTemp.java index 2e35c03..a36b5c2 100644 --- a/src/main/java/io/v/nutz/zhgh/thirtyteach/template/ThirtyTeachTemp.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/thirtyteach/template/ThirtyTeachTemp.java @@ -1,4 +1,4 @@ -package io.v.nutz.zhgh.thirtyteach.template; +package io.v.nutz.zhgh.staffmanage.thirtyteach.template; import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareAgendaController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareAgendaController.java index 2a8a880..a92c669 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareAgendaController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareAgendaController.java @@ -2,8 +2,8 @@ package io.v.nutz.zhgh.welfare.controller; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.Vi; -import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; -import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; +//import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; +//import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.welfare.constant.WelfareMemberApplyState; import io.v.nutz.zhgh.welfare.service.WelfareMemberService; @@ -45,8 +45,8 @@ public class WelfareAgendaController { int welfareMemberAuditNumber = service.count(Sqls.create("SELECT count(1) from welfare_member_apply_record WHERE stateId = @state").setParam("state", WelfareMemberApplyState.SCHOOL_UNION)); list.add(new NutMap().addv("iconClass", vi.getIconByPath("/platform/welfare/member/audit/school")).addv("label", "福利会员审核").addv("number", welfareMemberAuditNumber).addv("url", "/platform/welfare/member/audit/school")); - int welfareMemberChangeAuditNumber = service.count(Sqls.create("SELECT count(1) from member_change_record WHERE recordMode = @mode and stateId = @state").setParam("mode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()).setParam("state", MemberChangeApplyState.SCHOOL_UNION)); - list.add(new NutMap().addv("iconClass", vi.getIconByPath("/platform/welfare/member/change/audit")).addv("label", "福利会员变更审核").addv("number", welfareMemberChangeAuditNumber).addv("url", "/platform/welfare/member/change/audit")); +// int welfareMemberChangeAuditNumber = service.count(Sqls.create("SELECT count(1) from member_change_record WHERE recordMode = @mode and stateId = @state").setParam("mode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()).setParam("state", MemberChangeApplyState.SCHOOL_UNION)); +// list.add(new NutMap().addv("iconClass", vi.getIconByPath("/platform/welfare/member/change/audit")).addv("label", "福利会员变更审核").addv("number", welfareMemberChangeAuditNumber).addv("url", "/platform/welfare/member/change/audit")); return list; } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java index fdd2134..e9a7a56 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareCommonController.java @@ -10,7 +10,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; @@ -20,7 +19,7 @@ import io.v.nutz.base.utils.ExpressSelectUtil; import io.v.nutz.base.utils.OfficeTemplateUtil; import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.zhgh.member.service.MemberService; +import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; import io.v.nutz.sys.models.Sys_dict; import io.v.nutz.sys.services.SysDictService; import io.v.nutz.base.utils.ViTool; @@ -39,7 +38,6 @@ import lombok.Data; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.apache.shiro.authz.annotation.RequiresRoles; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; @@ -78,7 +76,7 @@ import java.util.stream.Collectors; public class WelfareCommonController { @Inject - private MemberService memberService; + private MemberCommonService memberService; @Inject private WelfareProjectService projectService; diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java index 7ca7814..6108aad 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberAdjustmentController.java @@ -7,12 +7,9 @@ import io.v.nutz.base.dao.CndPlus; import io.v.nutz.zhgh.data.constant.UserChangeType; import io.v.nutz.zhgh.data.service.HistoryUserService; import io.v.nutz.base.lang.Lang; -import io.v.nutz.zhgh.member.MemberMode; -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.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; import io.v.nutz.sys.models.User; @@ -107,10 +104,10 @@ public class WelfareMemberAdjustmentController { LEFT JOIN audit_state mcr_state ON mcr_state.stateId = mcr.stateId $condition - """) - .setParam("recordMode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()) - .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) - .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL); + """); +// .setParam("recordMode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()) +// .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) +// .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL); sql.setVar("states", Joiner.on(",").join(List.of(WelfareMemberApplyState.SCHOOL_UNION_FAIL))); @@ -323,18 +320,18 @@ public class WelfareMemberAdjustmentController { for (String userId : userIds) { User user = historyUserService.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.hasAnyRoles("H04,gh12") ? MemberChangeOrigin.UNION.getCode() : MemberChangeOrigin.UNION_GROUP.getCode()); - changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); - changeRecord.setUpdateWelfareMember(true); - changeRecord.setUserId(userId); - changeRecord.setApplyTime(new Date()); - changeRecord.setOriginUnitId(user.getUnitid()); - changeRecord.setOriginUnionId(user.getUnionid()); - changeRecord.setOriginThreeUnitId(user.getThreeUnitId()); - changeRecord.setUnionAuditId(audit.getId()); - changeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); - changeRecord.setTaskId(null); +// changeRecord.setType(UserChangeType.NEW.getCode()); +//// changeRecord.setApplyOrigin(io.v.nutz.web.commons.utils.ShiroUtil.hasAnyRoles("H04,gh12") ? MemberChangeOrigin.UNION.getCode() : MemberChangeOrigin.UNION_GROUP.getCode()); +//// changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); +// changeRecord.setUpdateWelfareMember(true); +// changeRecord.setUserId(userId); +// changeRecord.setApplyTime(new Date()); +// changeRecord.setOriginUnitId(user.getUnitid()); +// changeRecord.setOriginUnionId(user.getUnionid()); +// changeRecord.setOriginThreeUnitId(user.getThreeUnitId()); +// changeRecord.setUnionAuditId(audit.getId()); +//// changeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// changeRecord.setTaskId(null); maps.add(changeRecord); } historyUserService.insert(maps); @@ -352,16 +349,16 @@ public class WelfareMemberAdjustmentController { @ViReturn @RequiresPermissions("welfare.member.adjustment") public Object change(MemberChangeRecord record) { - record.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); - if (WelfareFeature.judgmentAuthority()) { - 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)); - } +// record.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// if (WelfareFeature.judgmentAuthority()) { +// 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; } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java index 405bf77..b965a95 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberChangeApplyAuditController.java @@ -5,10 +5,7 @@ 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.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.zhgh.staffmanage.member.model.MemberChangeRecord; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.ViService; @@ -102,7 +99,7 @@ public class WelfareMemberChangeApplyAuditController { pageForm.defaultSortAsc("mcr.stateId"); cnd.and(pageForm); - cnd.and("mcr.recordMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// cnd.and("mcr.recordMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); if (date != null && date.length == 2) { cnd.and("date(mcr.applyTime)", ">=", date[0]); @@ -110,7 +107,7 @@ public class WelfareMemberChangeApplyAuditController { } if (audit) { - cnd.and("mcr.stateId", "=", source == 1 ? MemberChangeApplyState.UNION : MemberChangeApplyState.SCHOOL_UNION); +// cnd.and("mcr.stateId", "=", source == 1 ? MemberChangeApplyState.UNION : MemberChangeApplyState.SCHOOL_UNION); } cnd.andEx("u.unionid", "=", unionId); @@ -118,8 +115,8 @@ public class WelfareMemberChangeApplyAuditController { cnd.andEx("wun.welfareUnitId", "=", welfareUnit); - cnd.and("mcr.stateId", ">=", MemberChangeApplyState.SCHOOL_UNION); - sql.setParam("auditState", MemberChangeApplyState.SCHOOL_UNION); +// cnd.and("mcr.stateId", ">=", MemberChangeApplyState.SCHOOL_UNION); +// sql.setParam("auditState", MemberChangeApplyState.SCHOOL_UNION); sql.setCondition(cnd); @@ -133,8 +130,8 @@ public class WelfareMemberChangeApplyAuditController { @RequiresPermissions("welfare.member.change.audit.school") public Object doAudit(@ViRequired String recordId, Audit audit) { MemberChangeRecord record = recordViService.fetch(recordId); - MemberChangeAuditHandle applyHandle = Enum.instance(MemberChangeAuditHandle.class, record.getStateId()); - applyHandle.next(record, audit); +// MemberChangeAuditHandle applyHandle = Enum.instance(MemberChangeAuditHandle.class, record.getStateId()); +// applyHandle.next(record, audit); return null; } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java index 05059bf..0c8a96d 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareMemberMangeController.java @@ -21,9 +21,9 @@ import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.models.User; 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.WelfareMemberMode; -import io.v.nutz.zhgh.member.model.MemberCheckTask; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.WelfareMemberMode; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask; import io.v.nutz.zhgh.welfare.feature.WelfareFeature; import io.v.nutz.zhgh.welfare.model.template.WelfareMemberTemp; import io.v.nutz.zhgh.welfare.service.WelfareMemberService; diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareSelfAgentController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareSelfAgentController.java index 1aecc1e..91041b8 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareSelfAgentController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/WelfareSelfAgentController.java @@ -3,9 +3,8 @@ package io.v.nutz.zhgh.welfare.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.zhgh.member.constant.MemberChangeRecordMode; -import io.v.nutz.zhgh.member.model.MemberCheckSelfTask; -import io.v.nutz.zhgh.member.model.MemberCheckTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckSelfTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask; import io.v.nutz.web.commons.utils.ShiroUtil; import org.nutz.dao.Cnd; import org.nutz.ioc.loader.annotation.Inject; @@ -39,8 +38,8 @@ public class WelfareSelfAgentController { List checkTasks = baseService.dao().query(MemberCheckTask.class, Cnd.where("startTime", "<", DateUtil.date()) .and("endTime", ">", DateUtil.date()) .and("createTaskMode", "=", 2) - .and("year", "=", DateUtil.thisYear()) - .and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode())); + .and("year", "=", DateUtil.thisYear())); +// .and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode())); final String title = "【福利系统】"; List list = new ArrayList<>(); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java index 6b2aac0..21d3983 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareCheckPersonalController.java @@ -5,7 +5,7 @@ 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.zhgh.staffmanage.member.service.MemberCheckPersonalService; import io.v.nutz.base.query.PageForm; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.base.utils.ViTool; diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckSchoolController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckSchoolController.java index 658da09..8eb5b0b 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckSchoolController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckSchoolController.java @@ -11,9 +11,7 @@ import io.v.nutz.base.service.SimpleService; import io.v.nutz.base.utils.Roles; import io.v.nutz.base.utils.ViTool; import io.v.nutz.zhgh.data.constant.UserChangeType; -import io.v.nutz.zhgh.member.constant.MemberChangeApplyState; -import io.v.nutz.zhgh.member.constant.MemberChangeRecordMode; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -89,9 +87,9 @@ public class WelfareMemberCheckSchoolController { cnd.asc("gh.unioncode"); sql.setCondition(cnd); List map = simpleService.listMap(sql); - List changeRecords = simpleService.dao().query(MemberChangeRecord.class, - Cnd.where("stateId", "=", MemberChangeApplyState.SCHOOL_UNION) - .and("taskId", "=", taskId)); +// List changeRecords = simpleService.dao().query(MemberChangeRecord.class, +// Cnd.where("stateId", "=", MemberChangeApplyState.SCHOOL_UNION) +// .and("taskId", "=", taskId)); map.forEach(v -> { //该工会有多少个人需要审核 //找出原工会和现工会不等于空的 @@ -101,11 +99,11 @@ public class WelfareMemberCheckSchoolController { StrUtil.isNotEmpty(c.getOriginUnionId()) && c.getCurrentUnionId().equals(v.getString("id"))).collect(Collectors.toList()).size();*/ //找出除了单位变更的其他会员 - int size2 = changeRecords.stream().filter(c -> - StrUtil.isNotEmpty(c.getOriginUnionId()) && - - c.getOriginUnionId().equals(v.getString("id"))).collect(Collectors.toList()).size(); - v.setv("notCheckNum", size2); +// int size2 = changeRecords.stream().filter(c -> +// StrUtil.isNotEmpty(c.getOriginUnionId()) && +// +// c.getOriginUnionId().equals(v.getString("id"))).collect(Collectors.toList()).size(); +// v.setv("notCheckNum", size2); }); return map; } @@ -147,9 +145,9 @@ public class WelfareMemberCheckSchoolController { Cnd cnd = Cnd.NEW(); cnd.and("mcr.taskId", "=", taskId); if (!isView) { - cnd.and("mcr.stateId", "=", MemberChangeApplyState.SCHOOL_UNION); +// cnd.and("mcr.stateId", "=", MemberChangeApplyState.SCHOOL_UNION); } else { - cnd.and("mcr.stateId", "in", List.of(MemberChangeApplyState.SCHOOL_UNION_FAIL, MemberChangeApplyState.SUCCESS)); +// cnd.and("mcr.stateId", "in", List.of(MemberChangeApplyState.SCHOOL_UNION_FAIL, MemberChangeApplyState.SUCCESS)); } cnd.and("mcr.originUnionId", "=", unionId); sql.setCondition(cnd); @@ -207,7 +205,7 @@ public class WelfareMemberCheckSchoolController { AND mcr.recordMode = @mode """); sql.setParam("taskId", taskId); - sql.setParam("mode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// sql.setParam("mode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); List dataList = (List) simpleService.listMap(sql); for (NutMap map : dataList) { diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckTaskController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckTaskController.java index 3666313..6926b4c 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckTaskController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckTaskController.java @@ -7,11 +7,10 @@ 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.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckSelfTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckUnionTask; import io.v.nutz.zhgh.welfare.model.WelfareMemberCheckUser; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -62,7 +61,7 @@ public class WelfareMemberCheckTaskController { select * from member_check_task $condition """); Cnd cnd = Cnd.NEW(); - cnd.and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// cnd.and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); cnd.andEX("year", "=", year); sql.setCondition(cnd); return simpleService.list(pageForm, sql); @@ -78,7 +77,7 @@ public class WelfareMemberCheckTaskController { Trans.exec(() -> { task.setYear(calendar.get(Calendar.YEAR)); - task.setTaskMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// task.setTaskMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); dao.insert(task); if (task.getCreateTaskMode() == 1) { List unionTasks = sysUnions.stream().map(v -> { @@ -159,7 +158,7 @@ public class WelfareMemberCheckTaskController { Calendar calendar = Calendar.getInstance(); calendar.setTime(task.getStartTime()); - task.setTaskMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// task.setTaskMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); task.setYear(calendar.get(Calendar.YEAR)); dao.updateIgnoreNull(task); return null; @@ -184,7 +183,7 @@ public class WelfareMemberCheckTaskController { public Object getAllTask(Integer year) { Cnd cnd = Cnd.NEW(); cnd.andEX("year", "=", year); - cnd.and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// cnd.and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); cnd.and("createTaskMode", "=", 1); cnd.desc("startTime"); return dao.query(MemberCheckTask.class, cnd); @@ -196,7 +195,7 @@ public class WelfareMemberCheckTaskController { Cnd cnd = Cnd.NEW(); cnd.andEX("year", "=", year); cnd.andEX("createTaskMode", "=", 2); - cnd.and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// cnd.and("taskMode", "=", MemberChangeRecordMode.WELFARE_MEMBER.getCode()); return dao.query(MemberCheckTask.class, cnd); } diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java index e0c4a5f..b536127 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/check/WelfareMemberCheckUnionController.java @@ -13,13 +13,10 @@ import io.v.nutz.base.utils.Vi; import io.v.nutz.base.dao.CndPlus; import io.v.nutz.sys.models.Sys_config; import io.v.nutz.zhgh.data.constant.UserChangeType; -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.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.model.MemberCheckTask; -import io.v.nutz.zhgh.member.model.MemberCheckUnionTask; +import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckTask; +import io.v.nutz.zhgh.staffmanage.member.model.MemberCheckUnionTask; import io.v.nutz.base.model.Audit; import io.v.nutz.base.query.PageForm; import io.v.nutz.sys.models.User; @@ -27,9 +24,7 @@ import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.base.utils.ViTool; import io.v.nutz.zhgh.welfare.constant.WelfareMemberApplyState; import io.v.nutz.zhgh.welfare.feature.WelfareFeature; -import io.v.nutz.zhgh.welfare.handle.WelfareMemberApplyAuditHandle; import io.v.nutz.zhgh.welfare.mode.WelfareMemberMode; -import io.v.nutz.zhgh.welfare.model.WelfareMemberApplyRecord; import io.v.nutz.zhgh.welfare.model.WelfareMemberCheckUser; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -122,10 +117,10 @@ public class WelfareMemberCheckUnionController { LEFT JOIN audit_state state ON wmar.stateId = state.stateId LEFT JOIN audit_state mcr_state ON mcr_state.stateId = mcr.stateId $condition - """) - .setParam("recordMode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()) - .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) - .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL); + """); +// .setParam("recordMode", MemberChangeRecordMode.WELFARE_MEMBER.getCode()) +// .setParam("changeUnitAuditing", MemberChangeApplyState.SCHOOL_UNION) +// .setParam("changeUnitError", MemberChangeApplyState.SCHOOL_UNION_FAIL); sql.setVar("states", Joiner.on(",").join(List.of(WelfareMemberApplyState.SCHOOL_UNION_FAIL))); @@ -244,54 +239,54 @@ public class WelfareMemberCheckUnionController { @ViReturn @RequiresPermissions("welfare.member.check.union") public Object doSubmitChangeUser(MemberChangeRecord memberChangeRecord) { - 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"); +// 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"); +// +// if (unionGroupEnable && memberChangeRecord.getCurrentThreeUnitId().equals(memberChangeRecord.getOriginThreeUnitId())) { +// return Result.error("请选择不同的单位!"); +// } else if (!unionGroupEnable && memberChangeRecord.getCurrentUnitId().equals(memberChangeRecord.getOriginUnitId())) { +// return Result.error("请选择不同的单位!"); +// } +// } +// if (!Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { +// memberChangeRecord.setCurrentUnitId(null); +// 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() + ",您无需变更!"); +// } +// } +// +// +//// memberChangeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +//// memberChangeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); +//// memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); +// +// Audit audit = new Audit(); +// audit.setAuditPass(true); +// audit.setAuditOpinion(memberChangeRecord.getRemark()); - if (unionGroupEnable && memberChangeRecord.getCurrentThreeUnitId().equals(memberChangeRecord.getOriginThreeUnitId())) { - return Result.error("请选择不同的单位!"); - } else if (!unionGroupEnable && memberChangeRecord.getCurrentUnitId().equals(memberChangeRecord.getOriginUnitId())) { - return Result.error("请选择不同的单位!"); - } - } - if (!Objects.equals(memberChangeRecord.getType(), UserChangeType.UNIT_CHANGE.getCode())) { - memberChangeRecord.setCurrentUnitId(null); - 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() + ",您无需变更!"); - } - } - - - memberChangeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); - memberChangeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); - memberChangeRecord = MemberChangeAuditHandle.CREATE.next(memberChangeRecord, null); - - Audit audit = new Audit(); - audit.setAuditPass(true); - audit.setAuditOpinion(memberChangeRecord.getRemark()); - - MemberChangeAuditHandle.UNION.next(memberChangeRecord, audit); +// MemberChangeAuditHandle.UNION.next(memberChangeRecord, audit); return null; } @@ -348,25 +343,25 @@ public class WelfareMemberCheckUnionController { MemberChangeRecord changeRecord = new MemberChangeRecord(); // 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); - changeRecord.setUserId(userId); - changeRecord.setApplyTime(new Date()); - changeRecord.setOriginUnitId(user.getUnitid()); - changeRecord.setOriginUnionId(user.getUnionid()); - changeRecord.setOriginThreeUnitId(user.getThreeUnitId()); - changeRecord.setCurrentUnionId(user.getUnionid()); - changeRecord.setCurrentUnitId(unitId); - changeRecord.setCurrentThreeUnitId(threeUnitId); - changeRecord.setUnionAuditId(audit.getId()); - changeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); - changeRecord.setTaskId(taskId); +// changeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); +// changeRecord.setStateId(MemberChangeApplyState.SCHOOL_UNION); +// changeRecord.setUpdateWelfareMember(true); +// changeRecord.setUserId(userId); +// changeRecord.setApplyTime(new Date()); +// changeRecord.setOriginUnitId(user.getUnitid()); +// changeRecord.setOriginUnionId(user.getUnionid()); +// changeRecord.setOriginThreeUnitId(user.getThreeUnitId()); +// changeRecord.setCurrentUnionId(user.getUnionid()); +// changeRecord.setCurrentUnitId(unitId); +// changeRecord.setCurrentThreeUnitId(threeUnitId); +// changeRecord.setUnionAuditId(audit.getId()); +//// changeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// changeRecord.setTaskId(taskId); // maps.add(changeRecord); - changeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); - changeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); - changeRecord = MemberChangeAuditHandle.CREATE.next(changeRecord, null); - MemberChangeAuditHandle.UNION.next(changeRecord, audit); +// changeRecord.setRecordMode(MemberChangeRecordMode.WELFARE_MEMBER.getCode()); +// changeRecord.setApplyOrigin(MemberChangeOrigin.UNION.getCode()); +// changeRecord = MemberChangeAuditHandle.CREATE.next(changeRecord, null); +// MemberChangeAuditHandle.UNION.next(changeRecord, audit); WelfareMemberCheckUser checkUser = new WelfareMemberCheckUser(); checkUser.setUserId(userId); diff --git a/src/main/java/io/v/nutz/zhgh/welfare/handle/WelfareMemberApplyAuditHandle.java b/src/main/java/io/v/nutz/zhgh/welfare/handle/WelfareMemberApplyAuditHandle.java index 4cf0829..05a4790 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/handle/WelfareMemberApplyAuditHandle.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/handle/WelfareMemberApplyAuditHandle.java @@ -7,7 +7,6 @@ import io.v.nutz.base.utils.Vi; import io.v.nutz.base.utils.ViResource; import io.v.nutz.sys.models.Sys_user_role; import io.v.nutz.sys.services.SysUserService; -import io.v.nutz.zhgh.member.constant.MemberApplyState; import io.v.nutz.zhgh.welfare.constant.WelfareMemberApplyState; import io.v.nutz.zhgh.welfare.feature.WelfareFeature; import io.v.nutz.zhgh.welfare.mode.WelfareMemberMode; @@ -59,7 +58,7 @@ public enum WelfareMemberApplyAuditHandle { /** * 校工会审核 */ - AUDIT_SCHOOL(MemberApplyState.SCHOOL_UNION) { + AUDIT_SCHOOL(null) { @Override public void next(WelfareMemberApplyRecord record, Audit audit) { next(List.of(record), audit); diff --git a/src/main/java/io/v/nutz/zhgh/zgfw/controller/rxdj/RxdjPlanController.java b/src/main/java/io/v/nutz/zhgh/zgfw/controller/rxdj/RxdjPlanController.java index 18fe695..6b8ecda 100644 --- a/src/main/java/io/v/nutz/zhgh/zgfw/controller/rxdj/RxdjPlanController.java +++ b/src/main/java/io/v/nutz/zhgh/zgfw/controller/rxdj/RxdjPlanController.java @@ -5,7 +5,7 @@ import cn.wizzer.framework.base.Result; import cn.wizzer.framework.base.service.BaseService; import cn.wizzer.framework.page.Pagination; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.zhgh.member.MemberMode; +import io.v.nutz.zhgh.staffmanage.member.MemberMode; import io.v.nutz.sys.models.Sys_msg; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysMsgService; diff --git a/src/main/resources/static/assets/platform/css/common.css b/src/main/resources/static/assets/platform/css/common.css index 5299b10..0be7b26 100644 --- a/src/main/resources/static/assets/platform/css/common.css +++ b/src/main/resources/static/assets/platform/css/common.css @@ -209,4 +209,83 @@ ::-webkit-scrollbar-thumb { background-color: silver; border-radius: 3px -} \ No newline at end of file +} + + +.process-task-record .el-descriptions__header { + margin: 0; + /*border: 1px solid var(--border-color-lighter);*/ + border-bottom: 0; + padding: 10px 5px; + /*background: var(--table-header-background-color);*/ + color: #1867b0; +} + +.process-task-record .el-descriptions__header .el-descriptions__title { + font-weight: 600; + letter-spacing: 1px; + font-size: 14px; +} + +.process-task-record .el-descriptions { + margin-bottom: 10px; +} + + +.process-title { + font-size: 20px; + color: #000000; + font-weight: 600; + margin: 10px 0 10px 0; + padding-left: 10px; + position: relative; + line-height: 1.1; + font-family: inherit; +} + +.process-title::before { + content: ""; + width: 5px; + background: #1867b0; + display: inline-block; + position: absolute; + left: 0; + top: 0; + bottom: 0; +} + +.signature-image { + height: 100px; + width: auto; +} + +.form-box { + margin: 0 auto; +} + +.descriptions-form .el-form-item { + margin-bottom: 0; +} + +.descriptions-form th.el-descriptions-item__label:has(+ td.el-descriptions-item__content > div.el-form-item.is-required):before { + content: "*"; + color: #f56c6c; + margin-right: 3px; +} + +.descriptions-form .el-form-item .el-form-item__label { + display: none; +} + +.descriptions-form .el-form-item .el-form-item__content > div { + width: 100%; +} + + +.descriptions-form .el-form-item input, .descriptions-form .el-form-item textarea { + /*border: none;*/ +} + +.descriptions-form .el-form-item .el-date-editor { + width: 100%; +} diff --git a/src/main/resources/static/assets/platform/js/util/commonUtil.js b/src/main/resources/static/assets/platform/js/util/commonUtil.js new file mode 100644 index 0000000..468c0d1 --- /dev/null +++ b/src/main/resources/static/assets/platform/js/util/commonUtil.js @@ -0,0 +1,68 @@ +const commonUtil = { + //权限认证 + authService() { + function authPermission(permission) { + // if (typeof permission !== "string" || !permission.trim()) { + // return false + // } + // const permissions = store.state.user.permissions + // if (!Array.isArray(permissions) || permissions.length === 0) { + // return false + // } + // const permissionsSet = new Set(permissions) + // return permissionsSet.has(permission.trim()) + } + + function authRole(role) { + if (typeof role !== "string" || !role.trim()) { + return false + } + const user = JSON.parse(window.sessionStorage.getItem('user')) + const roles = user.roles.map((item) => item.code) + if (!Array.isArray(roles) || roles.length === 0) { + return false + } + const rolesSet = new Set(roles) + return rolesSet.has(role.trim()) + } + + return { + // 验证用户是否具备某权限 + hasPermission(permission) { + return authPermission(permission) + }, + // 验证用户是否含有指定权限,只需包含其中一个 + hasPermissionOr(permissionsOrPermissionsStr) { + const permissions = Array.isArray(permissionsOrPermissionsStr) ? permissionsOrPermissionsStr : permissionsOrPermissionsStr.split(",") + return permissions.some((item) => { + return authPermission(item) + }) + }, + // 验证用户是否含有指定权限,必须全部拥有 + hasPermissionAnd(permissionsOrPermissionsStr) { + const permissions = Array.isArray(permissionsOrPermissionsStr) ? permissionsOrPermissionsStr : permissionsOrPermissionsStr.split(",") + return permissions.every((item) => { + return authPermission(item) + }) + }, + // 判断用户是否拥有某个角色 + hasRole(role) { + return authRole(role) + }, + // 判断用户是否拥有某些角色中的任意一个 + hasRoleOr(rolesOrRoleStr) { + const roles = Array.isArray(rolesOrRoleStr) ? rolesOrRoleStr : rolesOrRoleStr.split(",") + return roles.some((item) => { + return authRole(item.trim()) + }) + }, + // 判断用户是否拥有某些角色中的所有 + hasRoleAnd(rolesOrRoleStr) { + const roles = Array.isArray(rolesOrRoleStr) ? rolesOrRoleStr : rolesOrRoleStr.split(",") + return roles.every((item) => { + return authRole(item) + }) + } + } + }, +} diff --git a/src/main/resources/static/components/member/MemChangeApply.vue b/src/main/resources/static/components/member/MemChangeApply.vue index 72fda22..1b4c37e 100644 --- a/src/main/resources/static/components/member/MemChangeApply.vue +++ b/src/main/resources/static/components/member/MemChangeApply.vue @@ -154,7 +154,7 @@ + code="USER_STATE"> @@ -169,7 +169,7 @@ + code="PERSON_TYPE"> @@ -201,7 +201,7 @@ + code="USER_EDUCATION"> diff --git a/src/main/resources/static/components/member/MemberInfo.vue b/src/main/resources/static/components/member/MemberInfo.vue index 4d9513e..2eecc85 100644 --- a/src/main/resources/static/components/member/MemberInfo.vue +++ b/src/main/resources/static/components/member/MemberInfo.vue @@ -76,7 +76,7 @@
- + @@ -84,7 +84,7 @@ v-model="formData.academicDegree" style="width: 100%" placeholder="请选择学位" - code="academicDegree" + code="USER_ACADEMIC_DEGREE" >
@@ -100,7 +100,7 @@ v-model="formData.political" style="width: 100%" placeholder="请选择政治面貌" - code="political" + code="USER_POLITICAL" > @@ -110,7 +110,7 @@ v-model="formData.personType" style="width: 100%" placeholder="请选择人员类型" - code="UserType" + code="PERSON_TYPE" > @@ -119,7 +119,7 @@ v-model="formData.userState" style="width: 100%" placeholder="请选择在职状态" - code="UserState" + code="USER_STATE" > diff --git a/src/main/resources/static/components/plugins/UserDataScope.vue b/src/main/resources/static/components/plugins/UserDataScope.vue index 8146cca..8c6401c 100644 --- a/src/main/resources/static/components/plugins/UserDataScope.vue +++ b/src/main/resources/static/components/plugins/UserDataScope.vue @@ -95,7 +95,7 @@ + code="PERSON_TYPE"> @@ -105,7 +105,7 @@ + code="USER_STATE"> diff --git a/src/main/resources/static/components/plugins/UserScope.vue b/src/main/resources/static/components/plugins/UserScope.vue index 400c0d1..91fc574 100644 --- a/src/main/resources/static/components/plugins/UserScope.vue +++ b/src/main/resources/static/components/plugins/UserScope.vue @@ -665,8 +665,8 @@ module.exports = { }*/ await this.flushUnits() await this.getActivityGroup() - this.personTypeOptions = await getDictOptions("UserType") - this.userStateOptions = await getDictOptions("UserState") + this.personTypeOptions = await getDictOptions("PERSON_TYPE") + this.userStateOptions = await getDictOptions("USER_STATE") await this.getMenuOptions() await this.pageData() }, diff --git a/src/main/resources/static/components/sign/sign.vue b/src/main/resources/static/components/sign/sign.vue index f3078f3..a649f23 100644 --- a/src/main/resources/static/components/sign/sign.vue +++ b/src/main/resources/static/components/sign/sign.vue @@ -81,8 +81,8 @@ module.exports = { clearInterval(signatureInterval) const ts = new Date().getTime() + (Math.floor(Math.random() * (1000 - 1 + 1)) + 1).toString() console.log(ts) - // this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 - this.postAddress = 'https://zhgh.hmc.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 + this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 + // this.postAddress = 'https://zhgh.hmc.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 this.showQrCode = true diff --git a/src/main/resources/static/components/userpartupdate/UserDataPartUpSet.vue b/src/main/resources/static/components/userpartupdate/UserDataPartUpSet.vue index 9096051..d67df46 100644 --- a/src/main/resources/static/components/userpartupdate/UserDataPartUpSet.vue +++ b/src/main/resources/static/components/userpartupdate/UserDataPartUpSet.vue @@ -64,7 +64,7 @@ + code="PERSON_TYPE"> @@ -74,7 +74,7 @@ + code="USER_STATE"> diff --git a/src/main/resources/static/components/userpartupdate/UserPartUpdateSet.vue b/src/main/resources/static/components/userpartupdate/UserPartUpdateSet.vue index b183836..d6e07e0 100644 --- a/src/main/resources/static/components/userpartupdate/UserPartUpdateSet.vue +++ b/src/main/resources/static/components/userpartupdate/UserPartUpdateSet.vue @@ -624,8 +624,8 @@ module.exports = { } await this.flushUnits() await this.getActivityGroup() - this.personTypeOptions = await getDictOptions("UserType") - this.userStateOptions = await getDictOptions("UserState") + this.personTypeOptions = await getDictOptions("PERSON_TYPE") + this.userStateOptions = await getDictOptions("USER_STATE") await this.getMenuOptions() await this.pageData() }, diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index ba16777..a526f1b 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -103,6 +103,7 @@ + @@ -144,7 +145,7 @@ }; window.viewImage = viewImage; Vue.prototype.$viewImage = viewImage - + Vue.prototype.$auth = commonUtil.authService() diff --git a/src/main/resources/views/mobile/member/apply/sbumit/index.html b/src/main/resources/views/mobile/member/apply/sbumit/index.html new file mode 100644 index 0000000..85cb3b0 --- /dev/null +++ b/src/main/resources/views/mobile/member/apply/sbumit/index.html @@ -0,0 +1,15 @@ + +
+ +
+ + diff --git a/src/main/resources/views/platform/activity/basic/ActivityScope.html b/src/main/resources/views/platform/activity/basic/ActivityScope.html index 029b3d7..0e34e44 100644 --- a/src/main/resources/views/platform/activity/basic/ActivityScope.html +++ b/src/main/resources/views/platform/activity/basic/ActivityScope.html @@ -296,8 +296,8 @@ layout("/layouts/platform.html"){ } this.flushUnits() await this.getActivityGroup() - this.personTypeOptions = await getDictOptions("UserType") - this.userStateOptions = await getDictOptions("UserState") + this.personTypeOptions = await getDictOptions("PERSON_TYPE") + this.userStateOptions = await getDictOptions("USER_STATE") await this.getMenuOptions() this.pageData()*/ diff --git a/src/main/resources/views/platform/activity/basic/ActivityUser.html b/src/main/resources/views/platform/activity/basic/ActivityUser.html index 8cf14f9..387f0ed 100644 --- a/src/main/resources/views/platform/activity/basic/ActivityUser.html +++ b/src/main/resources/views/platform/activity/basic/ActivityUser.html @@ -120,7 +120,7 @@ layout("/layouts/platform.html"){ + code="PERSON_TYPE"> @@ -130,7 +130,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> diff --git a/src/main/resources/views/platform/blessing/blessingUser.html b/src/main/resources/views/platform/blessing/blessingUser.html index fd846cf..e3a2d9a 100644 --- a/src/main/resources/views/platform/blessing/blessingUser.html +++ b/src/main/resources/views/platform/blessing/blessingUser.html @@ -87,7 +87,7 @@ layout("/layouts/platform.html"){
+ code="PERSON_TYPE">
@@ -96,7 +96,7 @@ layout("/layouts/platform.html"){
+ code="USER_STATE">
diff --git a/src/main/resources/views/platform/data/user/SourceUser.html b/src/main/resources/views/platform/data/user/SourceUser.html index 8d5f05b..b4ee2c8 100644 --- a/src/main/resources/views/platform/data/user/SourceUser.html +++ b/src/main/resources/views/platform/data/user/SourceUser.html @@ -48,12 +48,12 @@ layout("/layouts/platform.html"){
+ code="PERSON_TYPE">
+ code="USER_STATE">
diff --git a/src/main/resources/views/platform/data/user/UpdateUser.html b/src/main/resources/views/platform/data/user/UpdateUser.html index 3263f5c..3d2b774 100644 --- a/src/main/resources/views/platform/data/user/UpdateUser.html +++ b/src/main/resources/views/platform/data/user/UpdateUser.html @@ -61,13 +61,13 @@ layout("/layouts/platform.html"){
+ code="PERSON_TYPE">
+ code="USER_STATE">
\ No newline at end of file +#--> diff --git a/src/main/resources/views/platform/jdh/db/audit.html b/src/main/resources/views/platform/jdh/db/audit.html index 61aeb8d..26ef66b 100644 --- a/src/main/resources/views/platform/jdh/db/audit.html +++ b/src/main/resources/views/platform/jdh/db/audit.html @@ -191,7 +191,7 @@ layout("/layouts/platform.html"){ - + diff --git a/src/main/resources/views/platform/jdh/db/push.html b/src/main/resources/views/platform/jdh/db/push.html index 7341edc..12f42ec 100644 --- a/src/main/resources/views/platform/jdh/db/push.html +++ b/src/main/resources/views/platform/jdh/db/push.html @@ -104,7 +104,7 @@ layout("/layouts/platform.html"){ width="150px" show-overflow-tooltip> diff --git a/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html b/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html new file mode 100644 index 0000000..879b9ea --- /dev/null +++ b/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html @@ -0,0 +1,205 @@ + +
+ + + + + +
+ + diff --git a/src/main/resources/views/platform/member/apply/common/commonQuery.js b/src/main/resources/views/platform/member/apply/common/commonQuery.js new file mode 100644 index 0000000..601ded4 --- /dev/null +++ b/src/main/resources/views/platform/member/apply/common/commonQuery.js @@ -0,0 +1,90 @@ +const COMMON_QUERY = { + template: /*language=HTML*/ ` + + `, + mixins: [initTableMixins], + data() { + return{ + unions: [], + units: [], + pageForm: { + searchKeyword: '', + unionId: '', + unitId: '', + userState: '', + personType: '' + } + } + }, + methods: { + doSearch(){ + this.$emit('search', this.pageForm) + }, + async initData(){ + if (this.$auth.hasRoleOr('sysadmin, SchoolUnionMemberAdmin, SchoolUnionAdmin')) { + this.unions = await getUnions(this.pageForm.unionId) + this.units = await getUnits() + } else { + const user = JSON.parse(window.sessionStorage.getItem('user')) + this.unions = await getUnions(user.union.id) + this.units = await getUnits(user.union.id) + } + }, + async flushUnits(){ + this.$set(this.pageForm, "unitId", null) + this.units = [] + if (this.pageForm.unionId) { + this.units = await getUnits(this.pageForm.unionId) + } + } + }, + async created() { + this.initData() + } +} diff --git a/src/main/resources/views/platform/member/apply/common/memberApplyAuditInfo.js b/src/main/resources/views/platform/member/apply/common/memberApplyAuditInfo.js new file mode 100644 index 0000000..442d85f --- /dev/null +++ b/src/main/resources/views/platform/member/apply/common/memberApplyAuditInfo.js @@ -0,0 +1,109 @@ +const MEMBER_APPLY_AUDIT_INFO = { + template: /*language=HTML*/ ` +
+ + + + {{ viewData.loginname }} + {{ viewData.username }} + {{ viewData.sex }} + + {{ viewData.nation }} + {{ moment(viewData.birthday).format("YYYY年MM月DD日") }} + {{ viewData.political }} + + {{ viewData.education }} + {{ viewData.academicDegree }} + {{ viewData.position }} + + {{ viewData.userUnitName }} + {{ viewData.userUnionName }} + {{ viewData.campus }} + + {{ viewData.idCard }} + {{ viewData.mobile }} + {{ viewData.email }} + + {{ viewData.userState }} + {{ viewData.personType }} + + + {{ viewData.member ? '会员' : '非会员' }} + {{ viewData.welfareMember ? '福利会员' : '非福利会员' }} + + + + + + + + + + + + + + + + + +
+ 无数据 +
+
+
+ +
校工会审核信息
+ + {{ viewData.schoolAudit.username }} + + {{ viewData.schoolAudit.auditTime }} + + + {{ viewData.allocationUnionName }} + + {{ viewData.schoolAudit.auditOpinion }} + + +
+ +
分工会接收信息
+ + {{ viewData.branchAudit.username }} + + {{ viewData.branchAudit.auditTime }} + + {{ viewData.branchAudit.auditOpinion }} + + +
+
+
+ `, + data() { + return{ + activeName: "basicInfo", + viewData: { + schoolAudit: {}, + branchAudit: {} + } + } + }, + methods: { + async onOpen(id){ + const resp = await $.post('/platform/member/apply/mine/findMemberApplyRecord', {id}) + if (resp.code === 0) { + this.viewData = resp.data + this.$emit('union-name', this.viewData.userUnionName) + if (this.viewData.families) { + this.viewData.families = JSON.parse(this.viewData.families) + } else { + this.viewData.families = [] + } + } + } + } +} diff --git a/src/main/resources/views/platform/member/apply/index.html b/src/main/resources/views/platform/member/apply/index.html deleted file mode 100644 index 59eb847..0000000 --- a/src/main/resources/views/platform/member/apply/index.html +++ /dev/null @@ -1,546 +0,0 @@ - - - - - -
- - - - - - - - - - - -
- - - diff --git a/src/main/resources/views/platform/member/apply/mine/index.html b/src/main/resources/views/platform/member/apply/mine/index.html new file mode 100644 index 0000000..eac44df --- /dev/null +++ b/src/main/resources/views/platform/member/apply/mine/index.html @@ -0,0 +1,126 @@ + +
+ + + + + +
+ + diff --git a/src/main/resources/views/platform/member/apply/schoolUnionAudit/index.html b/src/main/resources/views/platform/member/apply/schoolUnionAudit/index.html new file mode 100644 index 0000000..a7112f4 --- /dev/null +++ b/src/main/resources/views/platform/member/apply/schoolUnionAudit/index.html @@ -0,0 +1,237 @@ + +
+ + + + + +
+ + diff --git a/src/main/resources/views/platform/member/apply/submit/index.html b/src/main/resources/views/platform/member/apply/submit/index.html new file mode 100644 index 0000000..4bc52ec --- /dev/null +++ b/src/main/resources/views/platform/member/apply/submit/index.html @@ -0,0 +1,325 @@ + +
+ +
入会申请
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 返 回 + 保存申请 + 提交申请 + +
+
+ + diff --git a/src/main/resources/views/platform/member/change/Manage.html b/src/main/resources/views/platform/member/change/Manage.html index 14d22f3..c800f62 100644 --- a/src/main/resources/views/platform/member/change/Manage.html +++ b/src/main/resources/views/platform/member/change/Manage.html @@ -72,7 +72,7 @@ layout("/layouts/platform.html"){ style="width: 100%" clearable placeholder="在职状态" - code="userState"> + code="USER_STATE">
@@ -83,7 +83,7 @@ layout("/layouts/platform.html"){ style="width: 100%" clearable placeholder="人员类型" - code="UserType"> + code="PERSON_TYPE"> @@ -102,10 +102,10 @@ layout("/layouts/platform.html"){
变更类型:
+ code="USER_STATE">
@@ -77,7 +77,7 @@ layout("/layouts/platform.html"){ multiple clearable placeholder="人员类型" - code="UserType"> + code="PERSON_TYPE"> diff --git a/src/main/resources/views/platform/member/change/audit/Layout.html b/src/main/resources/views/platform/member/change/audit/Layout.html index d50354d..059e0a7 100644 --- a/src/main/resources/views/platform/member/change/audit/Layout.html +++ b/src/main/resources/views/platform/member/change/audit/Layout.html @@ -33,7 +33,7 @@ multiple clearable placeholder="在职状态" - code="userState"> + code="USER_STATE"> @@ -45,7 +45,7 @@ multiple clearable placeholder="人员类型" - code="UserType"> + code="PERSON_TYPE"> diff --git a/src/main/resources/views/platform/member/change/branchUnionAudit/index.html b/src/main/resources/views/platform/member/change/branchUnionAudit/index.html new file mode 100644 index 0000000..baa97d9 --- /dev/null +++ b/src/main/resources/views/platform/member/change/branchUnionAudit/index.html @@ -0,0 +1,235 @@ + +
+ + + + + + + +
+ + diff --git a/src/main/resources/views/platform/member/change/common/commonQuery.js b/src/main/resources/views/platform/member/change/common/commonQuery.js new file mode 100644 index 0000000..601ded4 --- /dev/null +++ b/src/main/resources/views/platform/member/change/common/commonQuery.js @@ -0,0 +1,90 @@ +const COMMON_QUERY = { + template: /*language=HTML*/ ` + + `, + mixins: [initTableMixins], + data() { + return{ + unions: [], + units: [], + pageForm: { + searchKeyword: '', + unionId: '', + unitId: '', + userState: '', + personType: '' + } + } + }, + methods: { + doSearch(){ + this.$emit('search', this.pageForm) + }, + async initData(){ + if (this.$auth.hasRoleOr('sysadmin, SchoolUnionMemberAdmin, SchoolUnionAdmin')) { + this.unions = await getUnions(this.pageForm.unionId) + this.units = await getUnits() + } else { + const user = JSON.parse(window.sessionStorage.getItem('user')) + this.unions = await getUnions(user.union.id) + this.units = await getUnits(user.union.id) + } + }, + async flushUnits(){ + this.$set(this.pageForm, "unitId", null) + this.units = [] + if (this.pageForm.unionId) { + this.units = await getUnits(this.pageForm.unionId) + } + } + }, + async created() { + this.initData() + } +} diff --git a/src/main/resources/views/platform/member/change/common/memberAllChangeInfo.js b/src/main/resources/views/platform/member/change/common/memberAllChangeInfo.js new file mode 100644 index 0000000..fc4de9a --- /dev/null +++ b/src/main/resources/views/platform/member/change/common/memberAllChangeInfo.js @@ -0,0 +1,103 @@ +const MEMBER_ALL_CHANGE_INFO = { + template: /*language=HTML*/ ` + + + + {{ viewData.loginname }} + {{ viewData.username }} + {{ viewData.sex }} + + {{ viewData.nation }} + {{ moment(viewData.birthday).format("YYYY年MM月DD日") }} + {{ viewData.political }} + + {{ viewData.education }} + {{ viewData.academicDegree }} + {{ viewData.position }} + + {{ viewData.unitname }} + {{ viewData.unionname }} + {{ viewData.campus }} + + {{ viewData.idCard }} + {{ viewData.mobile }} + {{ viewData.email }} + + {{ viewData.userState }} + {{ viewData.personType }} + + + {{ viewData.member ? '会员' : '非会员' }} + {{ viewData.welfareMember ? '福利会员' : '非福利会员' }} + + + + + + + + + + + + + + + + + +
+ 无数据 +
+
+
+ + + + +

{{ changeData.changeOriginName }}

+ + + + + + + + + + +
+
+
+
+
+ `, + mixins: [initTableMixins], + data(){ + return{ + viewData: {}, + activeName: "basicInfo" + } + }, + methods:{ + onOpen(userId){ + $.post('/platform/member/change/mange/getAllChangeMemberInfo', {userId}) + .then(resp => { + if (resp.code === 0) { + this.viewData = resp.data + } else { + this.$message.warning(resp.msg) + } + }) + } + } +} diff --git a/src/main/resources/views/platform/member/change/common/memberChange.js b/src/main/resources/views/platform/member/change/common/memberChange.js new file mode 100644 index 0000000..6ec6ee4 --- /dev/null +++ b/src/main/resources/views/platform/member/change/common/memberChange.js @@ -0,0 +1,492 @@ +const MEMBER_CHANGE = { + template: /*language=html*/ ` + +
会员变更
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 会员 + 非会员 + + + + + + + + 福利会员 + 非福利会员 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 返 回 + + 提交变更 + +
+ `, + props: { + id: { type: String, default: '' }, + }, + mixins: [initTableMixins], + data(){ + return{ + isShow: true, + user: {}, + units: [], + unions: [], + // 允许变更的字段 + allowChangeFields: [], + formData: { + families: [], + }, + formRules: { + username: [{required: false, message: "必填", trigger: ["change", "blur"]}], + sex: [{required: false, message: "必填", trigger: ["change", "blur"]}], + email: [ + { + validator: (rule, value, callback) => { + if (!value) { + callback(); + } else if (/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(value)) { + callback(); + } else { + callback(new Error("邮箱格式错误")); + } + }, + trigger: ["change", "blur"] + } + ], + idCard: [ + { + validator: (rule, value, callback) => { + if (!value) { + // 如果值为空,直接通过校验 + 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)) { + // 18位身份证号码格式正确 + 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)) { + // 15位身份证号码格式正确 + 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)) { + // 外国人身份证号码格式正确(18位) + 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)) { + // 外国人身份证号码格式正确(15位) + callback(); + } else { + // 格式错误,返回错误信息 + callback(new Error("身份证号码格式错误")); + } + }, + trigger: ["change", "blur"] + } + ], + mobile: [ + { + validator: (rule, value, callback) => { + if (!value) { + // 如果值为空,直接通过校验 + callback(); + } else if (/^[1][345789][0-9]{9}$/.test(value)) { + // 手机号格式正确 + callback(); + } else if (/^\d+-\d+$/.test(value) && value.length <= 16) { + // 座机号格式正确 + callback(); + } else { + // 格式错误,返回错误信息 + callback(new Error(value.includes('-') ? '座机号码格式错误' : '手机号码格式错误')); + } + }, + trigger: ["change", "blur"] + } + ] + }, + + welfareProjectList: [] + } + }, + methods: { + allowFields(prop) { + return !this.allowChangeFields.map(v => v.code).includes(prop) + }, + doSave(){ + this.$confirm("保存后可在我的申请里面再次编辑,您确定要保存吗?", "提示", { type: "warning" }) + .then(() => { + const formData = this.formData + if (formData.families) { + formData.families = JSON.stringify(this.formData.families) + } + this.$emit('do-save', formData) + }) + .catch() + }, + doSubmit() { + this.$refs.formRef.validate((valid) => { + if (valid) { + this.$confirm("提交后将进入审核流程,无法再进行编辑,您确定要提交申请吗?", "提示", { type: "warning" }) + .then(() => { + const formData = this.formData + if (formData.families) { + formData.families = JSON.stringify(this.formData.families) + } + this.$emit('do-submit', formData) + }) + .catch() + } + }) + }, + async init(userId){ + if (userId) { + this.isShow = false + await this.getUserById(userId) + } else { + this.isShow = true + this.user = JSON.parse(window.sessionStorage.getItem('user')) + } + this.getFormDataValue(this.id) + this.allowChangeFields = await getDictOptions("ALLOW_CHANGE_FIELDS") + if (this.$auth.hasRoleOr('sysadmin, SchoolUnionMemberAdmin, SchoolUnionAdmin')) { + this.units = await getUnits() + this.unions = await getUnions() + } else { + this.units = await getUnits(this.user.unionid) + } + }, + async getUserById(userId){ + const resp = await $.post("/platform/member/change/apply/getUserByIdForMemberChange", { userId }) + if (resp.code === 0) { + this.user = resp.data + } + }, + getFormDataValue(id){ + if (id) { + $.post("/platform/member/change/apply/findChangeById", { id }).then((res) => { + if (res.code === 0) { + this.formData = res.data + this.formData.unionid = this.user.unionid + if (this.formData.families) { + this.formData.families = JSON.parse(this.formData.families) + } else { + this.formData.families = [] + } + } + }) + } else { + const { + id, + username, + loginname, + sex, + member, + welfareMember, + nation, + birthday, + political, + education, + academicDegree, + position, + unit, + union, + campus, + userState, + personType, + preparedBy, + idCard, + mobile, + email, + families, + vita + } = this.user + + this.$set(this.formData, "userId", id) + this.$set(this.formData, "username", username) + this.$set(this.formData, "loginname", loginname) + this.$set(this.formData, "birthday", birthday) + this.$set(this.formData, "sex", sex) + this.$set(this.formData, "member", member === 1) + this.$set(this.formData, "welfareMember", welfareMember === 1) + this.$set(this.formData, "idCard", idCard) + this.$set(this.formData, "nation", nation) + this.$set(this.formData, "political", political) + this.$set(this.formData, "position", position) + this.$set(this.formData, "education", education) + this.$set(this.formData, "academicDegree", academicDegree) + this.$set(this.formData, "campus", campus) + this.$set(this.formData, "userState", userState) + this.$set(this.formData, "personType", personType) + this.$set(this.formData, "preparedBy", preparedBy) + this.$set(this.formData, "unitName", unit ? unit.name : null) + this.$set(this.formData, "unitId", unit ? unit.id : null) + this.$set(this.formData, "unionName", union ? union.unionname : null) + this.$set(this.formData, "unionId", union ? union.id : null) + + this.$set(this.formData, "mobile", mobile) + this.$set(this.formData, "email", email) + this.$set(this.formData, "families", families ? families : []) + this.$set(this.formData, "vita", vita) + } + } + }, + created(){ + this.init() + } +} diff --git a/src/main/resources/views/platform/member/change/common/memberChangeAuditInfo.js b/src/main/resources/views/platform/member/change/common/memberChangeAuditInfo.js new file mode 100644 index 0000000..82ffe0a --- /dev/null +++ b/src/main/resources/views/platform/member/change/common/memberChangeAuditInfo.js @@ -0,0 +1,117 @@ +const MEMBER_CHANGE_AUDIT_INFO = { + template: /*language=HTML*/ ` +
+ + + + {{ viewData.loginname }} + {{ viewData.username }} + {{ viewData.sex }} + + {{ viewData.nation }} + {{ viewData.birthday ? moment(viewData.birthday).format("YYYY年MM月DD日") : '暂无' }} + {{ viewData.political }} + + {{ viewData.education }} + {{ viewData.academicDegree }} + {{ viewData.position }} + + {{ viewData.unitname }} + {{ viewData.unionname }} + {{ viewData.campus }} + + {{ viewData.idCard }} + {{ viewData.mobile }} + {{ viewData.email }} + + {{ viewData.userState }} + {{ viewData.personType }} + {{ viewData.preparedBy }} + + {{ viewData.member ? '会员' : '非会员' }} + {{ viewData.welfareMember ? '福利会员' : '非福利会员' }} + + + + + + + + + + + + + + + + + +
+ 无数据 +
+
+
+ + + + + + + + + + + + + + + {{ viewData.branchAudit.username }} + + {{ viewData.branchAudit.auditTime }} + + {{ viewData.branchAudit.auditOpinion }} + + + + + + {{ viewData.schoolAudit.username }} + + {{ viewData.schoolAudit.auditTime }} + + {{ viewData.schoolAudit.auditOpinion }} + + + +
+
+ `, + mixins: [initTableMixins], + data(){ + return{ + activeName: "basicInfo", + viewData: { + changeInfos: [], + schoolAudit: {}, + branchAudit: {} + } + } + }, + methods: { + async onOpen(id){ + const resp = await $.post('/platform/member/change/mine/findMemberChangeRecord', {id}) + if (resp.code === 0) { + this.viewData = resp.data + } + } + } +} diff --git a/src/main/resources/views/platform/member/change/manage/index.html b/src/main/resources/views/platform/member/change/manage/index.html new file mode 100644 index 0000000..5ea0265 --- /dev/null +++ b/src/main/resources/views/platform/member/change/manage/index.html @@ -0,0 +1,933 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确定 + + + + + + + 选择新单位 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确定 + + + + + + + + + 取 消 + 确定 + + + +
+ + + diff --git a/src/main/resources/views/platform/member/change/mine/index.html b/src/main/resources/views/platform/member/change/mine/index.html new file mode 100644 index 0000000..21a8c82 --- /dev/null +++ b/src/main/resources/views/platform/member/change/mine/index.html @@ -0,0 +1,148 @@ + +
+ + + + + +
+ + diff --git a/src/main/resources/views/platform/member/change/record/index.html b/src/main/resources/views/platform/member/change/record/index.html new file mode 100644 index 0000000..14415eb --- /dev/null +++ b/src/main/resources/views/platform/member/change/record/index.html @@ -0,0 +1,352 @@ + + + +
+ + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/member/change/schoolUnionAudit/index.html b/src/main/resources/views/platform/member/change/schoolUnionAudit/index.html new file mode 100644 index 0000000..9b2ce2b --- /dev/null +++ b/src/main/resources/views/platform/member/change/schoolUnionAudit/index.html @@ -0,0 +1,235 @@ + +
+ + + + + + + +
+ + diff --git a/src/main/resources/views/platform/member/change/submit/index.html b/src/main/resources/views/platform/member/change/submit/index.html new file mode 100644 index 0000000..4916f55 --- /dev/null +++ b/src/main/resources/views/platform/member/change/submit/index.html @@ -0,0 +1,60 @@ + +
+ +
+ + diff --git a/src/main/resources/views/platform/member/check/union.html b/src/main/resources/views/platform/member/check/union.html index 8158e8f..83af08d 100644 --- a/src/main/resources/views/platform/member/check/union.html +++ b/src/main/resources/views/platform/member/check/union.html @@ -92,7 +92,7 @@ layout("/layouts/platform.html"){ multiple clearable placeholder="在职状态" - code="userState"> + code="USER_STATE"> @@ -104,7 +104,7 @@ layout("/layouts/platform.html"){ multiple clearable placeholder="人员类型" - code="UserType"> + code="PERSON_TYPE"> diff --git a/src/main/resources/views/platform/member/common/memberInfo.js b/src/main/resources/views/platform/member/common/memberInfo.js new file mode 100644 index 0000000..886d9af --- /dev/null +++ b/src/main/resources/views/platform/member/common/memberInfo.js @@ -0,0 +1,72 @@ +const MEMBER_INFO = { + template: /*language=HTML*/ ` +
+
基础信息
+ + {{ viewData.loginname }} + {{ viewData.username }} + {{ viewData.sex }} + + {{ viewData.nation }} + {{ moment(viewData.birthday).format("YYYY年MM月DD日") }} + + {{ viewData.political }} + + {{ viewData.education }} + {{ viewData.academicDegree }} + {{ viewData.position }} + + {{ viewData.unitname }} + {{ viewData.unionname }} + {{ viewData.campus }} + + {{ viewData.idCard }} + {{ viewData.mobile }} + {{ viewData.email }} + + {{ viewData.userState }} + {{ viewData.personType }} + {{ viewData.preparedBy || '暂无' }} + + {{ viewData.member ? '会员' : '非会员' }} + {{ viewData.welfareMember ? '福利会员' : '非福利会员' }} + + + + + + + + + + + + + + + + + +
+ 无数据 +
+
+
+ `, + data() { + return { + viewData: {} + } + }, + methods: { + async onOpen(userId) { + const resp = await $.post("/platform/member/common/fetchMemberUserById", {userId}) + if (resp.code === 0) { + this.viewData = resp.data + } + } + } +} diff --git a/src/main/resources/views/platform/member/info/BatchMake.html b/src/main/resources/views/platform/member/info/BatchMake.html index b0df9df..1dc3bf7 100644 --- a/src/main/resources/views/platform/member/info/BatchMake.html +++ b/src/main/resources/views/platform/member/info/BatchMake.html @@ -100,7 +100,7 @@ layout("/layouts/platform.html"){ + code="PERSON_TYPE"> @@ -110,7 +110,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> diff --git a/src/main/resources/views/platform/member/info/GroupInfo.html b/src/main/resources/views/platform/member/info/GroupInfo.html index 3af03d7..30286cc 100644 --- a/src/main/resources/views/platform/member/info/GroupInfo.html +++ b/src/main/resources/views/platform/member/info/GroupInfo.html @@ -490,8 +490,8 @@ layout("/layouts/platform.html"){ this.$set(this.pageForm, 'unionId', this.unions ? this.unions[0].id : null) this.flushUnits() } - this.personTypeOptions = await getDictOptions("UserType") - this.userStateOptions = await getDictOptions("UserState") + this.personTypeOptions = await getDictOptions("PERSON_TYPE") + this.userStateOptions = await getDictOptions("USER_STATE") } }) diff --git a/src/main/resources/views/platform/member/info/Make.html b/src/main/resources/views/platform/member/info/Make.html index c346f97..58946dd 100644 --- a/src/main/resources/views/platform/member/info/Make.html +++ b/src/main/resources/views/platform/member/info/Make.html @@ -103,7 +103,7 @@ layout("/layouts/platform.html"){ + code="PERSON_TYPE"> @@ -113,7 +113,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> diff --git a/src/main/resources/views/platform/member/info/dataManage.html b/src/main/resources/views/platform/member/info/dataManage.html index 10a5e5e..06f9cf2 100644 --- a/src/main/resources/views/platform/member/info/dataManage.html +++ b/src/main/resources/views/platform/member/info/dataManage.html @@ -112,7 +112,7 @@ layout("/layouts/platform.html"){ + code="PERSON_TYPE"> @@ -122,7 +122,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> @@ -132,7 +132,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> @@ -535,8 +535,8 @@ layout("/layouts/platform.html"){ } this.pageData(); - this.personTypeOptions = await getDictOptions("UserType") - this.userStateOptions = await getDictOptions("UserState") + this.personTypeOptions = await getDictOptions("PERSON_TYPE") + this.userStateOptions = await getDictOptions("USER_STATE") this.preparedByOptions = await getDictOptions("PREPARED_BY") if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') { this.unions = await getUnions(null, false) diff --git a/src/main/resources/views/platform/member/inquire/History.html b/src/main/resources/views/platform/member/inquire/History.html index 678d08a..f2ef61b 100644 --- a/src/main/resources/views/platform/member/inquire/History.html +++ b/src/main/resources/views/platform/member/inquire/History.html @@ -119,7 +119,7 @@ layout("/layouts/platform.html"){ + code="PERSON_TYPE"> @@ -129,7 +129,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> diff --git a/src/main/resources/views/platform/member/inquire/Integrate.html b/src/main/resources/views/platform/member/inquire/Integrate.html index e0667b7..bb7beb8 100644 --- a/src/main/resources/views/platform/member/inquire/Integrate.html +++ b/src/main/resources/views/platform/member/inquire/Integrate.html @@ -60,28 +60,24 @@ layout("/layouts/platform.html"){ @@ -363,4 +363,4 @@ layout("/layouts/platform.html"){ \ No newline at end of file +#--> diff --git a/src/main/resources/views/platform/welfare/member/Adjustment.html b/src/main/resources/views/platform/welfare/member/Adjustment.html index 7711e67..814998d 100644 --- a/src/main/resources/views/platform/welfare/member/Adjustment.html +++ b/src/main/resources/views/platform/welfare/member/Adjustment.html @@ -78,7 +78,7 @@ layout("/layouts/platform.html"){ @change="doSearch" multiple placeholder="人员类型" - code="UserType"> + code="PERSON_TYPE">
@@ -90,7 +90,7 @@ layout("/layouts/platform.html"){ @change="doSearch" multiple placeholder="在职状态" - code="userState"> + code="USER_STATE">
diff --git a/src/main/resources/views/platform/welfare/member/AuditSchool.html b/src/main/resources/views/platform/welfare/member/AuditSchool.html index ad45951..1580625 100644 --- a/src/main/resources/views/platform/welfare/member/AuditSchool.html +++ b/src/main/resources/views/platform/welfare/member/AuditSchool.html @@ -72,7 +72,7 @@ layout("/layouts/platform.html"){
+ code="PERSON_TYPE">
@@ -80,7 +80,7 @@ layout("/layouts/platform.html"){
+ code="USER_STATE">
@@ -281,4 +281,4 @@ layout("/layouts/platform.html"){ \ No newline at end of file +#--> diff --git a/src/main/resources/views/platform/welfare/member/MemberMange.html b/src/main/resources/views/platform/welfare/member/MemberMange.html index 4f0d565..779337f 100644 --- a/src/main/resources/views/platform/welfare/member/MemberMange.html +++ b/src/main/resources/views/platform/welfare/member/MemberMange.html @@ -127,7 +127,7 @@ layout("/layouts/platform.html"){ @change="doSearch" multiple placeholder="人员类型" - code="UserType"> + code="PERSON_TYPE">
@@ -138,7 +138,7 @@ layout("/layouts/platform.html"){ @change="doSearch" multiple placeholder="在职状态" - code="userState"> + code="USER_STATE">
diff --git a/src/main/resources/views/platform/welfare/member/check/union.html b/src/main/resources/views/platform/welfare/member/check/union.html index f30cf7c..189f84d 100644 --- a/src/main/resources/views/platform/welfare/member/check/union.html +++ b/src/main/resources/views/platform/welfare/member/check/union.html @@ -47,7 +47,7 @@ layout("/layouts/platform.html"){
在职状态:
人员类型:
diff --git a/src/test/java/io/v/nutz/JugTest.java b/src/test/java/io/v/nutz/JugTest.java index f13334f..8fa5e70 100644 --- a/src/test/java/io/v/nutz/JugTest.java +++ b/src/test/java/io/v/nutz/JugTest.java @@ -3,7 +3,6 @@ package io.v.nutz; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.entity.ImportParams; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import io.v.nutz.base.service.BaseService; @@ -11,19 +10,13 @@ import io.v.nutz.base.utils.Roles; import io.v.nutz.sys.models.Sys_unit; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.Sys_user_role; -import io.v.nutz.zhgh.data.constant.SourceData; -import io.v.nutz.zhgh.data.model.UserHistory; import io.v.nutz.zhgh.data.model.UserSource; import io.v.nutz.zhgh.fitnessWalk.model.FitnessWalkActivity; import io.v.nutz.zhgh.fitnessWalk.model.FitnessWalkAwardUser; import io.v.nutz.zhgh.fitnessWalk.model.FitnessWalkStep; import io.v.nutz.zhgh.fitnessWalk.service.FitnessWalkCommonService; -import io.v.nutz.zhgh.jdh.model.db.Jdh_db; -import io.v.nutz.zhgh.lxy.model.Lxy_bm; import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund; -import io.v.nutz.zhgh.member.UserMode; -import io.v.nutz.zhgh.member.model.MemberChangeRecord; -import io.v.nutz.zhgh.member.model.MemberHistory; +import io.v.nutz.zhgh.staffmanage.sourcechange.model.SourceChangeConfig; import io.v.nutz.zhgh.welfare.model.WelfareCourierNumber; import io.v.nutz.zhgh.welfare.model.WelfareList; import lombok.AllArgsConstructor; @@ -57,9 +50,6 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.text.DecimalFormat; import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @IocBean @@ -415,152 +405,6 @@ public class JugTest { } - @Test - public void t09() { - List numbersList = new ArrayList<>(); - - numbersList.add("8202206006"); - numbersList.add("8201901023"); - numbersList.add("8272700215"); - numbersList.add("8202304003"); - numbersList.add("8262600225"); - numbersList.add("8202301005"); - numbersList.add("8019270005"); - numbersList.add("8201901025"); - numbersList.add("8201601003"); - numbersList.add("8202104492"); - numbersList.add("8201608116"); - numbersList.add("8202302005"); - numbersList.add("8272700254"); - numbersList.add("8201801004"); - numbersList.add("8201712164"); - numbersList.add("8849160003"); - numbersList.add("8201501001"); - numbersList.add("8949400006"); - numbersList.add("8202009387"); - numbersList.add("8012700050"); - numbersList.add("8373703015"); - numbersList.add("8073110106"); - numbersList.add("8201807160"); - numbersList.add("8202311002"); - numbersList.add("8201804055"); - numbersList.add("8272700223"); - numbersList.add("8202306003"); - numbersList.add("8202210003"); - numbersList.add("8052900070"); - numbersList.add("8202106024"); - numbersList.add("8201812194"); - numbersList.add("8202201007"); - numbersList.add("8052900087"); - numbersList.add("8202205011"); - numbersList.add("8201506077"); - numbersList.add("8202206004"); - numbersList.add("8201806094"); - numbersList.add("8292900207"); - numbersList.add("8201510140"); - numbersList.add("8073110081"); - numbersList.add("8272700243"); - numbersList.add("8202106001"); - numbersList.add("8201906102"); - numbersList.add("8201706085"); - numbersList.add("8313110187"); - numbersList.add("8052900096"); - numbersList.add("8201809158"); - numbersList.add("8383800026"); - numbersList.add("8262600184"); - numbersList.add("8201701022"); - numbersList.add("8073110069"); - numbersList.add("8292900206"); - numbersList.add("8292900178"); - numbersList.add("8022600029"); - numbersList.add("8202401009"); - numbersList.add("8272700260"); - numbersList.add("8201709135"); - numbersList.add("8022600116"); - numbersList.add("8202106006"); - numbersList.add("8012700080"); - numbersList.add("8012700149"); - numbersList.add("8201806106"); - numbersList.add("8022600060"); - numbersList.add("8201705048"); - numbersList.add("8073110093"); - numbersList.add("8313110149"); - numbersList.add("8949400019"); - numbersList.add("8201601006"); - numbersList.add("8029260012"); - numbersList.add("8202202002"); - numbersList.add("8202007333"); - numbersList.add("8201812196"); - numbersList.add("8059290005"); - numbersList.add("8202305013"); - numbersList.add("8029260011"); - numbersList.add("8201807123"); - numbersList.add("8343400169"); - numbersList.add("8202208019"); - numbersList.add("8052900095"); - numbersList.add("8292900199"); - numbersList.add("8262600230"); - numbersList.add("8022600183"); - numbersList.add("8201801015"); - numbersList.add("8202401012"); - numbersList.add("8313110107"); - numbersList.add("8272700240"); - numbersList.add("8202108006"); - numbersList.add("8073110072"); - numbersList.add("8202208018"); - numbersList.add("8201906076"); - numbersList.add("8262600196"); - numbersList.add("8201708118"); - numbersList.add("8201804056"); - numbersList.add("8202401010"); - numbersList.add("8201804059"); - numbersList.add("8201501002"); - numbersList.add("8029260013"); - numbersList.add("8202106050"); - numbersList.add("8062900131"); - numbersList.add("8313110189"); - numbersList.add("8201811190"); - numbersList.add("8202305002"); - numbersList.add("8292900175"); - numbersList.add("8313110174"); - numbersList.add("8202206029"); - numbersList.add("8022600028"); - numbersList.add("8292900218"); - numbersList.add("8073110148"); - numbersList.add("8073110079"); - numbersList.add("8262600232"); - numbersList.add("8929270007"); - numbersList.add("8052900071"); - numbersList.add("8313110146"); - numbersList.add("8201904065"); - numbersList.add("8202402005"); - numbersList.add("8052900147"); - numbersList.add("8201806086"); - numbersList.add("9363620028"); - numbersList.add("9822022007"); - numbersList.add("9202301021"); - - List list = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\新建 XLSX 工作表.xlsx"), kddh.class, new ImportParams()); - - - List list2 = list.stream().filter(v -> numbersList.contains(v.getLoginname())).collect(Collectors.toList()); - - List collect = list2.stream().map(v -> { - Sql sql = Sqls.fetchString("select id from sys_user where loginname = @loginname").setParam("loginname", v.getLoginname()); - dao.execute(sql); - String userId = sql.getString(); - WelfareCourierNumber courierNumber = new WelfareCourierNumber(); - courierNumber.setCourierNumber(v.getKddh()); - courierNumber.setSelectUserId(userId); - courierNumber.setWelfareId("fe1d51dafc104a1482cc946d05312e78"); - courierNumber.setSelectOptionId("roj77esogkga6pnbi9pegsofdl"); - return courierNumber; - }).collect(Collectors.toList()); - - dao.insert(collect); - - - } @Data public static class kddh { @@ -602,42 +446,6 @@ public class JugTest { // executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); } - @Test - public void t10(){ - List list = ExcelImportUtil.importExcel(new File("C:\\Users\\Administrator\\Desktop\\二期中奖名单.xlsx"), WinUser.class, new ImportParams()); - System.out.println(list.size()); - - List fitnessWalkAwardUsers = new ArrayList<>(); - - Date date = DateUtil.parseDate("2024-07-01"); - - - for (WinUser winUser : list) { - Sql sql = Sqls.create("select id,username,unitname,unionname from user where loginname = @loginname"); - sql.setParam("loginname",winUser.getLoginname()); - NutMap user = (NutMap)Daos.query(dao, sql.toString(), Sqls.callback.map()); - - FitnessWalkAwardUser awardUser = new FitnessWalkAwardUser(); - awardUser.setActivityId("63ca5b136625b7d808580dd258423e53"); - awardUser.setUserId(user.getString("id")); - awardUser.setUsername(user.getString("username")); - awardUser.setAwardName("健步走幸运"); - awardUser.setUnionId(user.getString("unionid")); - awardUser.setUnionName(user.getString("unionname")); - awardUser.setUnitId(user.getString("unitid")); - awardUser.setUnitName(user.getString("unitname")); - awardUser.setApplyDate(date); - awardUser.setIsRead(false); - awardUser.setLoginName(winUser.getLoginname()); - fitnessWalkAwardUsers.add(awardUser); - } - - dao.insert(fitnessWalkAwardUsers); - - System.out.println(Json.toJson(fitnessWalkAwardUsers)); - - } - @Data public static class WinUser{ @Excel(name = "工号") @@ -647,17 +455,55 @@ public class JugTest { @Test public void insertRole(){ - List dbs = dao.query(Jdh_db.class, Cnd.where("jdhid", "=", "4m2tgml52shcor5f6o845ifepr")); - List userRoles = dbs.stream().map(v -> { - Sys_user_role role = new Sys_user_role(); - role.setUserId(v.getDbid()); - role.setRoleId(Roles.ZSDB); - role.setDbtid(v.getDbtid()); - role.setJdhid(v.getJdhid()); - return role; - }).collect(Collectors.toList()); - dao.insert(userRoles); +// List dbs = dao.query(Jdh_db.class, Cnd.where("jdhid", "=", "4m2tgml52shcor5f6o845ifepr")); +// List userRoles = dbs.stream().map(v -> { +// Sys_user_role role = new Sys_user_role(); +// role.setUserId(v.getDbid()); +// role.setRoleId(Roles.ZSDB); +// role.setDbtid(v.getDbtid()); +// role.setJdhid(v.getJdhid()); +// return role; +// }).collect(Collectors.toList()); +// dao.insert(userRoles); + List list = dao.query(Sys_unit.class, Cnd.where("unionid", "=", "4c1e4f43474f4861a3abcd9ed517d692")); + List insertList = list.stream().map(v -> { + Sys_unit unit = new Sys_unit(); + unit.setId(v.getId() + "SJDW"); + unit.setParentId(v.getId()); + unit.setName(v.getName()); + unit.setUnitcode(v.getId() + "SJDW"); + unit.setUnitlevel(3); + return unit; + }).toList(); + dao.insert(insertList); } + @Test + public void testThreeUnitId(){ + List list = dao.query(Sys_unit.class, Cnd.where("unionid", "=", "4c1e4f43474f4861a3abcd9ed517d692")); + List insertList = list.stream().map(v -> { + Sys_unit unit = new Sys_unit(); + unit.setId(v.getId() + "SJDW"); + unit.setParentId(v.getId()); + unit.setName(v.getName()); + unit.setUnitcode(v.getId() + "SJDW"); + unit.setUnitlevel(3); + return unit; + }).toList(); + dao.insert(insertList); + } + + + @Test + public void t10(){ + SourceChangeConfig config = dao.fetch(SourceChangeConfig.class, Cnd.NEW()); + List memberSiftList = config.getMemberSiftList(); + for (SourceChangeConfig.MemberSift sift : memberSiftList) { + Object siftValue = sift.getSiftValue(); + System.out.println(siftValue); + List list = (List) siftValue; + System.out.println(list); + } + } }