diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureApplyActivityController.java b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureApplyActivityController.java index e13bd2b6..e88821fc 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureApplyActivityController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureApplyActivityController.java @@ -149,7 +149,7 @@ public class ActivityCultureApplyActivityController { } return Result.success(); } - if (tissue.getIsUnseal() && tissue.getIsEnrollSystem()) { + if (tissue.getIsUnseal()!=null && tissue.getIsUnseal() && tissue.getIsEnrollSystem()) { Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity(); activityCultureService.insertOrUpdate(sysHomeActivity); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureAuditActivityController.java b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureAuditActivityController.java index 69cdbd4b..6e14f26e 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureAuditActivityController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureAuditActivityController.java @@ -137,7 +137,7 @@ public class ActivityCultureAuditActivityController { public Result doReview(@Param("data") String param, String id) { Dict args = Json.fromJson(Dict.class, param); ActivityTissue tissue = activityCultureService.dao().fetch(ActivityTissue.class, id); - if (tissue.getIsUnseal() && args.getInt("submitType") == 1) { + if (tissue.getIsUnseal()!=null &&tissue.getIsUnseal() && args.getInt("submitType") == 1) { Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity(); activityCultureService.insertOrUpdate(sysHomeActivity); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/models/ActivityTissue.java b/src/main/java/com/budwk/app/zhgh/activity/culture/models/ActivityTissue.java index 943a667e..c82a6f3f 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/models/ActivityTissue.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/models/ActivityTissue.java @@ -231,6 +231,7 @@ public class ActivityTissue extends BaseModel implements Serializable, SysHomeCo @Column @Comment("是否开启") + @Default("0") @ColDefine(type = ColType.BOOLEAN) private Boolean isUnseal; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingActController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingActController.java index 07556885..e7eb24fe 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingActController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingActController.java @@ -3,9 +3,12 @@ package com.budwk.app.zhgh.dayofficework.cadreTraining.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.dayofficework.cadreTraining.model.CadreTrainingAct; import com.budwk.app.zhgh.dayofficework.cadreTraining.service.CadreTrainingActService; import io.swagger.annotations.Api; @@ -14,6 +17,7 @@ import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; +import org.nutz.dao.util.cri.Static; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingSignUpController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingSignUpController.java index d009b12c..150f39d3 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingSignUpController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/controller/CadreTrainingSignUpController.java @@ -1,10 +1,12 @@ package com.budwk.app.zhgh.dayofficework.cadreTraining.controller; +import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; @@ -13,7 +15,9 @@ import com.budwk.app.flow.engine.FlowEngine; import com.budwk.app.flow.entity.ProcessInstance; import com.budwk.app.flow.entity.ProcessTask; import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; +import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson; import com.budwk.app.zhgh.dayofficework.cadreTraining.model.CadreTrainingAct; import com.budwk.app.zhgh.dayofficework.cadreTraining.model.CadreTrainingSignUp; import com.budwk.app.zhgh.dayofficework.cadreTraining.service.CadreTrainingActService; @@ -25,8 +29,10 @@ 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.Static; 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; @@ -59,19 +65,26 @@ public class CadreTrainingSignUpController { @At @SaCheckPermission("cadreTraining.branchUnionSignUp") @ApiOperation("分页查询") - public Result pageData(@Valid PageForm pageForm,Integer year) { + public Result pageData(@Valid PageForm pageForm,Integer year, boolean isEnrolled) { Sql sql = Sqls.create(""" SELECT - info.* + info.*, + CASE WHEN cts.id IS NOT NULL THEN 1 ELSE 0 END AS isEnrolled FROM cadre_training info + LEFT JOIN cadre_training_signup cts on cts.cadreTrainingActId=info.id AND (cts.applyUserId = @userId OR cts.userId = @userId) $condition - """); + """).setParam("userId", SecurityUtil.getUserId()); Cnd cnd = Cnd.NEW(); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), + RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { + cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=activityGroupId AND userId='%s') >0".formatted(SecurityUtil.getUserId()))); + } cnd.andEX("year(signUpStartTime)", "=", year); if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { cnd.where().andLike(CadreTrainingAct::getName, pageForm.getSearchKeyword()); } + cnd.and("cts.id", isEnrolled ? "IS NOT" : "IS", null); sql.setCondition(cnd); Pagination pagination = cadreTrainingActService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); return Result.success(pagination); @@ -98,6 +111,20 @@ public class CadreTrainingSignUpController { return Result.success(); } + @At + @SaCheckLogin + @ApiOperation(value = "队友搜索") + public Result queryTeammate(@Valid String keyword) { + Sql sql = Sqls.create("select id userId,username userName,loginname loginName,sex,mobile,unitName,unionId,unionName from vw_user $condition limit 0,10"); + Cnd cnd = Cnd.NEW(); + cnd.or(Cnd.likeEX("username", keyword)); + cnd.or(Cnd.likeEX("loginname", keyword)); + cnd.and("unionid", "=", SecurityUtil.getUnionId()); + sql.setCondition(cnd); + List list = cadreTrainingActService.listMap(sql); + return Result.success(list); + } + @At diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingAct.java b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingAct.java index 5eb90d8d..cddbb74c 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingAct.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingAct.java @@ -37,6 +37,11 @@ public class CadreTrainingAct extends BaseModel { @ColDefine(type = ColType.VARCHAR, width = 50) private String name; + @Column + @Comment("活动范围Id") + @ColDefine(type = ColType.INT, width = 32) + private Integer activityGroupId; + @Column @Comment("报名开始时间") @ColDefine(type = ColType.DATETIME) diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingSignUp.java b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingSignUp.java index 53b53730..02e6f6e4 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingSignUp.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/cadreTraining/model/CadreTrainingSignUp.java @@ -28,6 +28,16 @@ public class CadreTrainingSignUp extends BaseModel { @ColDefine(type = ColType.VARCHAR, width = 32) private String cadreTrainingActId; + @Column + @Comment("报名人ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String applyUserId; + + @Column + @Comment("报名人姓名") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String applyUserUserName; + @Column @Comment("用户ID") @ColDefine(type = ColType.VARCHAR, width = 32) diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/controller/MutualInsuranceApplyController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/controller/MutualInsuranceApplyController.java index 55eccf20..15c11d81 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/controller/MutualInsuranceApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/controller/MutualInsuranceApplyController.java @@ -33,6 +33,7 @@ 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.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -119,6 +120,7 @@ public class MutualInsuranceApplyController { Cnd cnd = Cnd.NEW(); cnd.andEX("`year`", "=", year == null ? DateUtil.thisYear() : year); cnd.and("isOpen", "=", true); + cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=activityGroupId AND userId='%s') >0".formatted(SecurityUtil.getUserId()))); List query = mutualInsuranceProjectService.query(cnd); return Result.success(query); } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/model/MutualInsuranceProject.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/model/MutualInsuranceProject.java index 47ef1a10..9116a8e9 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/model/MutualInsuranceProject.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/mutualInsurance/model/MutualInsuranceProject.java @@ -40,6 +40,16 @@ public class MutualInsuranceProject extends BaseModel implements Serializable { @ColDefine(type = ColType.VARCHAR, width = 255) private String projectName; + @Column + @Comment("活动范围Id") + @ColDefine(type = ColType.INT, width = 32) + private Integer activityGroupId; + + @Column + @Comment("活动范围名称") + @ColDefine(type = ColType.VARCHAR, width = 40) + private String activityGroupName; + @Column @Comment("开始时间") @ColDefine(type = ColType.DATETIME) diff --git a/src/main/resources/views/layouts/v4/apps.html b/src/main/resources/views/layouts/v4/apps.html index 2ef6c44b..122c562c 100644 --- a/src/main/resources/views/layouts/v4/apps.html +++ b/src/main/resources/views/layouts/v4/apps.html @@ -354,20 +354,20 @@ layout("/layouts/v4/baseLayout.html"){ -
-
首字母:
-
-
全部
-
- {{ letter }} -
-
-
+ + + + + + + + + + + + + + diff --git a/src/main/resources/views/platform/zhgh/activity/culture/common/singleSignUp.js b/src/main/resources/views/platform/zhgh/activity/culture/common/singleSignUp.js index 223dafcf..ac0ffdbb 100644 --- a/src/main/resources/views/platform/zhgh/activity/culture/common/singleSignUp.js +++ b/src/main/resources/views/platform/zhgh/activity/culture/common/singleSignUp.js @@ -42,8 +42,8 @@ const singleSignUp = { 个人报名 - 分工会报名 - 组队报名 + 组队报名 + 分工会报名 无需报名 diff --git a/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/activity/formEdit.js b/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/activity/formEdit.js index d090707d..71baaa4d 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/activity/formEdit.js +++ b/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/activity/formEdit.js @@ -9,12 +9,41 @@ const formEdit = {
+ + - + + + +
+
+ + + +
+
+ 设置 + +
+
+
+
+
+ @@ -107,8 +136,16 @@ const formEdit = { {{ submitting ? '提交中...' : '确定' }}
+ `, + components: { + "drawer-user-scope": httpVueLoader("/components/module/activity/DrawerUserScope.vue") + }, data() { // 日期验证器 const validateDateRange = (rule, value, callback) => { @@ -142,6 +179,7 @@ const formEdit = { visible: false, activeStep: 0, submitting: false, + activityGroupList: [], formData: { quotas: [] }, @@ -188,6 +226,10 @@ const formEdit = { } }, methods: { + async getActivityGroup() { + const { data } = await $.get("/platform/activity/basic/scope/getActivityUserScopeGroup") + this.activityGroupList = data + }, // 处理关闭弹窗 handleClose() { this.visible = false; @@ -367,6 +409,9 @@ const formEdit = { }) } }, + async created() { + await this.getActivityGroup() + }, style: /*language=CSS*/ ` .form-container { padding: 0 50px; diff --git a/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/index.html b/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/index.html index 9bcb3d86..b4a1dcfa 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/index.html @@ -15,7 +15,12 @@ layout("/layouts/platform.html"){ - + + + 已报名 + 未报名 + + @@ -65,6 +70,7 @@ layout("/layouts/platform.html"){ data() { return { pageForm: { + isEnrolled: false, year: new Date().getFullYear().toString(), searchKeyword: "" }, diff --git a/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/signForm.js b/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/signForm.js index 39f0b380..5973d49f 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/signForm.js +++ b/src/main/resources/views/platform/zhgh/dayofficework/cadreTraining/signUp/signForm.js @@ -5,9 +5,12 @@ const signForm = { - + {{ viewData.name }} + + {{ quota }}人 / 剩余: {{ remainingQuota }}人 + {{ viewData.signUpStartTime }} @@ -20,16 +23,32 @@ const signForm = { {{ viewData.endTime }} - - {{ quota }}人 / 剩余: {{ remainingQuota }}人 -
-
个人报名信息
+
选择报名人员
+ + + + + 添加 + @@ -42,6 +61,12 @@ const signForm = { + + + @@ -54,9 +79,12 @@ const signForm = { store, data() { return { + //搜索框 + searchTeammateUserId: null, + teammateOptions: [], dialogVisible: false, viewData: {}, - formData: {}, // 将 signUpData 改为 formData + formData: {}, id: null, //表格用户(实际上只包含当前用户) teamUsers: [], @@ -88,6 +116,44 @@ const signForm = { this.loadUserData() }, + //查询队友信息 + queryTeammate(val) { + if (val) { + this.$axios.post("/platform/cadreTraining/branchUnionSignUp/queryTeammate", { + keyword: val, + tissueId: this.id, + }).then((res) => { + if (res.code === 0) { + res.data.map(v => v.applyUserId = this.$store.state.user.id) + this.teammateOptions = res.data + } + }) + } + }, + + //添加队友 + addTeamUser() { + if (!this.searchTeammateUserId) { + this.$message.error("请先选择后再添加") + return + } + if (this.teamUsers.some((v) => v.userId === this.searchTeammateUserId)) { + this.$message.error("请勿重复添加") + return + } + if (this.teamUsers.length >= this.viewData.teamNum) { + this.$message.error("已满员") + return + } + this.teamUsers.push(this.teammateOptions.find((v) => v.userId === this.searchTeammateUserId)) + this.searchTeammateUserId = null + }, + + //移除队友 + removeTeamUser(index) { + this.teamUsers.splice(index, 1) + }, + // 加载用户数据 async loadUserData() { try { diff --git a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/apply/index.html b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/apply/index.html index 3be1cf2c..769f7044 100644 --- a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/apply/index.html +++ b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/apply/index.html @@ -109,65 +109,66 @@ layout("/layouts/platform.html"){ - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + - + - + @@ -254,7 +255,6 @@ layout("/layouts/platform.html"){ idCard: [{ required: true, message: '请填写身份证号', trigger: 'blur' }, {pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, message: '请输入正确的身份证号码', trigger: 'blur'}], age: [{ required: true, message: '请输入年龄', trigger: 'blur' }, { type: 'number', min: 16, max: 60, message: '年龄必须在16-60岁之间', trigger: 'blur', transform: (value) => Number(value) }], bankCardNumber: [ { pattern: /^([1-9]{1})(\d{15}|\d{18})$/, message: '请输入正确的银行卡号', trigger: 'blur' }], - sign: [{ required: true, message: '请签字', trigger: 'change' }] }, projectList: [], } @@ -421,6 +421,10 @@ layout("/layouts/platform.html"){ }) }, onView() { + if (!this.formData.projectId) { + this.$message.warning('请先选择所属事项'); + return; + } this.$refs.guava.view(() => { this.$refs.projectInfoRef.onOpen(this.formData.projectId) }) diff --git a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/collect/index.html b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/collect/index.html index b94fc2b8..264c1660 100644 --- a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/collect/index.html +++ b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/collect/index.html @@ -61,7 +61,7 @@ layout("/layouts/platform.html"){ - + diff --git a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/common/formEdit.js b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/common/formEdit.js index 175d61f6..3f3a274b 100644 --- a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/common/formEdit.js +++ b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/common/formEdit.js @@ -2,11 +2,39 @@ const formEdit = { template: /*language=HTML*/ ` + + + - + + +
+
+ + + +
+
+ 设置 + +
+
+
+
+
@@ -49,8 +77,16 @@ const formEdit = { 取消 确定 +
`, + components: { + "drawer-user-scope": httpVueLoader("/components/module/activity/DrawerUserScope.vue") + }, data() { // 日期验证器 const validateDateRange = (rule, value, callback) => { @@ -70,6 +106,7 @@ const formEdit = { visible: false, submitting: false, formData: {}, + activityGroupList: [], formRules: { projectName: [ { required: true, message: "请输入事项名称", trigger: "blur" }, @@ -106,6 +143,10 @@ const formEdit = { }) } }, + async getActivityGroup() { + const { data } = await $.get("/platform/activity/basic/scope/getActivityUserScopeGroup") + this.activityGroupList = data + }, async doSubmit() { const valid = await this.$refs['form'].validate() @@ -131,5 +172,8 @@ const formEdit = { this.submitting = false; }) } + }, + async created() { + await this.getActivityGroup() } } diff --git a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/mine/index.html b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/mine/index.html index 49bab11c..9b6a4a03 100644 --- a/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/mine/index.html +++ b/src/main/resources/views/platform/zhgh/staffbenefit/mutualInsurance/mine/index.html @@ -16,7 +16,7 @@ layout("/layouts/platform.html"){ - +