diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/controller/EnrollmentRegistrationSummaryController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/controller/EnrollmentRegistrationSummaryController.java index 67ff1fe..66b2e4a 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/controller/EnrollmentRegistrationSummaryController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/controller/EnrollmentRegistrationSummaryController.java @@ -94,6 +94,29 @@ public class EnrollmentRegistrationSummaryController { return Result.success(); } + @At + @ApiOperation("设置解决状态") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("enrollmentRegistration.summary") + @SLog(tag = "子女入学-查询统计", type = "enrollmentRegistration", msg = "设置解决状态id: ${args[0]}") + public Result doUpdateSolved(String id, Boolean solved) { + if (StrUtil.isBlank(id) || solved == null) { + return Result.error("参数错误"); + } + enrollmentRegistrationSummaryService.updateSolved(id, solved); + return Result.success(); + } + + @At + @ApiOperation("一键设置已解决") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("enrollmentRegistration.summary") + @SLog(tag = "子女入学-查询统计", type = "enrollmentRegistration", msg = "一键设置已解决") + public Result doBatchSetSolved(@Param("data") EnrollmentRegistrationPageForm pageForm) { + int count = enrollmentRegistrationSummaryService.batchSetSolved(pageForm); + return Result.success("已设置" + count + "条数据"); + } + @At @Ok("void") @@ -108,6 +131,7 @@ public class EnrollmentRegistrationSummaryController { map.forEach(item -> { Sys_dict dict = dictList.stream().filter(sys_dict -> sys_dict.getCode().equals(item.getString("registrationType"))).findFirst().orElse(null); item.put("registrationTypeName", dict.getName()); + item.put("solvedName", item.getBoolean("solved", false) ? "已解决" : "未解决"); }); List entityList = new ArrayList<>(); @@ -123,6 +147,7 @@ public class EnrollmentRegistrationSummaryController { entityList.add(new ExcelExportEntity("手机号码", "mobile", 20)); entityList.add(new ExcelExportEntity("登记类型", "registrationTypeName", 20)); entityList.add(new ExcelExportEntity("填报时间", "applyTime", 20)); + entityList.add(new ExcelExportEntity("是否解决", "solvedName", 20)); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("子女信息登记汇总.xlsx", "UTF-8")); diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/model/EnrollmentRegistration.java b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/model/EnrollmentRegistration.java index d5a16e8..0b59774 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/model/EnrollmentRegistration.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/model/EnrollmentRegistration.java @@ -139,6 +139,12 @@ public class EnrollmentRegistration extends BaseModel implements Serializable { @Comment("子女出生证照片") private List birthCertificateFiles; + @Column + @ColDefine(type = ColType.BOOLEAN) + @Default("0") + @Comment("是否解决") + private Boolean solved; + } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/EnrollmentRegistrationSummaryService.java b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/EnrollmentRegistrationSummaryService.java index e41dac5..c38d931 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/EnrollmentRegistrationSummaryService.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/EnrollmentRegistrationSummaryService.java @@ -9,4 +9,20 @@ public interface EnrollmentRegistrationSummaryService extends BaseService { Sql getSql(EnrollmentRegistrationPageForm pageForm,String searchKeyword); + + /** + * 更新单条登记记录的解决状态。 + * + * @param id 登记记录id + * @param solved 是否解决 + */ + void updateSolved(String id, Boolean solved); + + /** + * 将当前筛选条件下的登记记录批量设置为已解决。 + * + * @param pageForm 当前汇总列表筛选条件 + * @return 实际更新条数 + */ + int batchSetSolved(EnrollmentRegistrationPageForm pageForm); } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/impl/EnrollmentRegistrationSummaryServiceImpl.java b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/impl/EnrollmentRegistrationSummaryServiceImpl.java index db70438..0634597 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/impl/EnrollmentRegistrationSummaryServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/service/impl/EnrollmentRegistrationSummaryServiceImpl.java @@ -3,14 +3,19 @@ package com.budwk.app.zhgh.dayofficework.enrollmentRegistration.service.impl; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.service.impl.BaseServiceImpl; import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.zhgh.dayofficework.enrollmentRegistration.model.EnrollmentRegistration; import com.budwk.app.zhgh.dayofficework.enrollmentRegistration.service.EnrollmentRegistrationSummaryService; import com.budwk.app.zhgh.dayofficework.enrollmentRegistration.vo.EnrollmentRegistrationPageForm; +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.dao.util.cri.SqlExpressionGroup; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; + +import java.util.List; /** * @author zhf @@ -53,11 +58,12 @@ public class EnrollmentRegistrationSummaryServiceImpl extends BaseServiceImpl im $condition """); Cnd cnd = Cnd.NEW(); - // 姓名和工号查询条件 - if (StrUtil.isNotBlank(searchKeyword)) { + // 统一处理列表、导出和批量设置的姓名/工号查询条件,保证各入口筛选范围一致。 + String keyword = StrUtil.blankToDefault(searchKeyword, pageForm.getSearchKeyword()); + if (StrUtil.isNotBlank(keyword)) { SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.orLike("info.userName", "%" + searchKeyword + "%"); - seg.orLike("info.loginName", "%" + searchKeyword + "%"); + seg.orLike("info.userName", "%" + keyword + "%"); + seg.orLike("info.loginName", "%" + keyword + "%"); cnd.and(seg); } cnd.andEX("YEAR(info.applyTime)", "=", pageForm.getYear()); @@ -65,7 +71,35 @@ public class EnrollmentRegistrationSummaryServiceImpl extends BaseServiceImpl im cnd.andEX("info.unionId","=",pageForm.getUnionId()); cnd.andEX("info.unitId","=",pageForm.getUnitId()); cnd.andEX("info.registrationType","=",pageForm.getRegistrationType()); + if (pageForm.getSolved() != null) { + if (pageForm.getSolved()) { + cnd.and("info.solved", "=", true); + } else { + // 历史数据的解决状态可能为空,按业务默认值一并视为未解决。 + cnd.and(Cnd.exps("info.solved", "=", false).or("info.solved", "is", null)); + } + } sql.setCondition(cnd); return sql; } + + @Override + public void updateSolved(String id, Boolean solved) { + if (StrUtil.isBlank(id) || solved == null) { + return; + } + dao().update(EnrollmentRegistration.class, Chain.make("solved", solved), Cnd.where("id", "=", id)); + } + + @Override + public int batchSetSolved(EnrollmentRegistrationPageForm pageForm) { + // 复用汇总列表查询条件,保证“一键设置已解决”的范围与当前列表筛选结果一致。 + Sql sql = getSql(pageForm, null); + List list = listMap(sql); + List idList = list.stream().map(item -> item.getString("id")).toList(); + if (idList.isEmpty()) { + return 0; + } + return dao().update(EnrollmentRegistration.class, Chain.make("solved", true), Cnd.where("id", "in", idList)); + } } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/vo/EnrollmentRegistrationPageForm.java b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/vo/EnrollmentRegistrationPageForm.java index 18a7605..d421623 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/vo/EnrollmentRegistrationPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/enrollmentRegistration/vo/EnrollmentRegistrationPageForm.java @@ -16,4 +16,5 @@ public class EnrollmentRegistrationPageForm extends PageForm { private String unionId; private String unitId; private String registrationType; + private Boolean solved; } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java index 8db1264..fcaa390 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java @@ -141,7 +141,7 @@ public class ProposalUnderTakeReplyController { List list = pagination.getList(); for (NutMap row : list) { if (row.getInt("taskIsMaster") == 1) { - boolean b = Stream.of("master_reply", "slave_reply", "school_leader") + boolean b = Stream.of("master_reply", "slave_reply", "feedback") .anyMatch(a -> row.getString("curTaskKey").contains(a)); row.setv("canRevoke", b && row.getInt("taskState") == ProcessTaskStateEnum.FINISHED.getCode()); } else { diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/legal/controller/LegalApplyController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/legal/controller/LegalApplyController.java index 8932e2c..a20016f 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/legal/controller/LegalApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/legal/controller/LegalApplyController.java @@ -115,6 +115,7 @@ public class LegalApplyController { Cnd.where(LegalApply::getDoctorUser, "=", nutMap.getString("userId")) .and(LegalApply::getStartTime, ">=", DateUtil.now()) .and(LegalApply::getUserId, "is", null) + .asc(LegalApply::getStartTimeTs) ); nutMap.put("times", applyList); } diff --git a/src/main/java/com/budwk/app/zhgh/staffbenefit/psychology/controller/PsychologyApplyController.java b/src/main/java/com/budwk/app/zhgh/staffbenefit/psychology/controller/PsychologyApplyController.java index 73122dc..948e739 100644 --- a/src/main/java/com/budwk/app/zhgh/staffbenefit/psychology/controller/PsychologyApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffbenefit/psychology/controller/PsychologyApplyController.java @@ -114,6 +114,7 @@ public class PsychologyApplyController { Cnd.where(PsychologyApply::getDoctorUser, "=", nutMap.getString("userId")) .and(PsychologyApply::getStartTime, ">=", DateUtil.now()) .and(PsychologyApply::getUserId, "is", null) + .asc(PsychologyApply::getStartTimeTs) ); nutMap.put("times", applyList); } diff --git a/src/main/resources/static/assets/mobile/img/home/home1.png b/src/main/resources/static/assets/mobile/img/home/home1.png index b5e90cb..4566f0a 100644 Binary files a/src/main/resources/static/assets/mobile/img/home/home1.png and b/src/main/resources/static/assets/mobile/img/home/home1.png differ diff --git a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/form.html b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/form.html index 6d8f539..76fb6f9 100644 --- a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/form.html +++ b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/form.html @@ -3,6 +3,12 @@ + + + 是 + 否 + + @@ -18,8 +24,16 @@ }, } }, + mounted() { + this.$set(this.formData, "select", "") + }, methods: { handleTaskAction(val) { + // 同意流转时必须带流程分支变量 select,供 HDBX 条件线判断是否进入副主席审核。 + if (val.submitType === 1 && !this.formData.select) { + this.$message.warning("请选择是否需要副主席审核") + return + } this.$refs.formRef.validate(valid => { if (valid) { console.log(val) diff --git a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/index.html b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/index.html index 8251b32..69ea229 100644 --- a/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/index.html +++ b/src/main/resources/views/platform/zhgh/activity/declarereimbursement/reimbursement/schoolunion/index.html @@ -127,6 +127,12 @@ layout("/layouts/platform.html"){ :rules="[{required:true,message:'必填',trigger:['change','blur']}]"> + + + 是 + 否 + + 取消 @@ -194,11 +200,17 @@ layout("/layouts/platform.html"){ processTaskId: row.taskId, taskName: row.curTaskName } + this.$set(this.formData, "select", "") this.$refs.infoRef.onOpen(row) }) }, handleTaskAction(val) { + // 同意流转时必须带流程分支变量 select,供 HDBX 条件线判断是否进入副主席审核。 + if (val === 1 && !this.formData.select) { + this.$message.warning("请选择是否需要副主席审核") + return + } this.$refs.formRef.validate((valid) => { if (valid) { this.$confirm("您确定要提交吗?", "提示", { diff --git a/src/main/resources/views/platform/zhgh/dayofficework/enrollmentRegistration/apply/index.html b/src/main/resources/views/platform/zhgh/dayofficework/enrollmentRegistration/apply/index.html index 3512d4e..2bbe26b 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/enrollmentRegistration/apply/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/enrollmentRegistration/apply/index.html @@ -132,8 +132,7 @@ layout("/layouts/platform.html"){ - + + + + + + + - 导出汇总名单 + 一键设置已解决 - 导出附件zip + 导出汇总名单 + + 导出附件zip @@ -66,9 +76,20 @@ layout("/layouts/platform.html"){ + + +