From 27f2b1670e3952a079f080a83091647690d59385 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Mon, 1 Jun 2026 11:03:09 +0800 Subject: [PATCH] Changes --- .../thirtyTeach/controller/ThirtyTeachController.java | 5 ++++- .../thirtyTeach/service/impl/ThirtyTeachServiceImpl.java | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java index 7d176c12..3ffa505e 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/controller/ThirtyTeachController.java @@ -58,6 +58,9 @@ import java.util.stream.Collectors; @At("/platform/thirtyTeach/manage") public class ThirtyTeachController { + private static final String TEACH_NUM_SQL = "CASE WHEN arrivalAtSchoolDate REGEXP '^[0-9]{4}-(0[1-9]|1[0-2])(-[0-9]{2})?$' " + + "THEN TIMESTAMPDIFF(YEAR, CONCAT(SUBSTRING(arrivalAtSchoolDate, 1, 7), '-01'), CURDATE()) ELSE NULL END"; + @Inject private ThirtyTeachService thirtyTeachService; @@ -91,7 +94,7 @@ public class ThirtyTeachController { Cnd cnd = Cnd.NEW(); cnd.and("arrivalAtSchoolDate", "is not", null); cnd.and("arrivalAtSchoolDate", "!=", ""); - cnd.and("TIMESTAMPDIFF(YEAR, CONCAT(arrivalAtSchoolDate, '-01'), CURDATE())", ">", setNum); + cnd.and(TEACH_NUM_SQL, ">", setNum); sysUserService.update(Chain.make("isThirtyTeach", 1), cnd); return Result.success(); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/service/impl/ThirtyTeachServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/service/impl/ThirtyTeachServiceImpl.java index 1ca70fb6..796b395f 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/service/impl/ThirtyTeachServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/thirtyTeach/service/impl/ThirtyTeachServiceImpl.java @@ -13,6 +13,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.loader.annotation.IocBean; /** @@ -22,6 +23,9 @@ import org.nutz.ioc.loader.annotation.IocBean; */ @IocBean(args = {"refer:dao"}) public class ThirtyTeachServiceImpl extends BaseServiceImpl implements ThirtyTeachService { + private static final String TEACH_NUM_SQL = "CASE WHEN arrivalAtSchoolDate REGEXP '^[0-9]{4}-(0[1-9]|1[0-2])(-[0-9]{2})?$' " + + "THEN TIMESTAMPDIFF(YEAR, CONCAT(SUBSTRING(arrivalAtSchoolDate, 1, 7), '-01'), CURDATE()) ELSE NULL END"; + public ThirtyTeachServiceImpl(Dao dao) { super(dao); } @@ -43,11 +47,12 @@ public class ThirtyTeachServiceImpl extends BaseServiceImpl implements ThirtyTea birthday, thirtyCertificateProcessingTime, false as isEditThirtyCertificateProcessingTime, - TIMESTAMPDIFF(YEAR, CONCAT(arrivalAtSchoolDate, '-01'), CURDATE()) AS teachNum + $teachNumSql AS teachNum FROM `vw_user` $condition """); + sql.setVar("teachNumSql", new Static(TEACH_NUM_SQL)); Cnd cnd = Cnd.NEW(); cnd.and("isThirtyTeach", "=", 1); if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { @@ -60,7 +65,7 @@ public class ThirtyTeachServiceImpl extends BaseServiceImpl implements ThirtyTea if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { cnd.and("unionId", "=", SecurityUtil.getUnionId()); } - cnd.andEX("TIMESTAMPDIFF(YEAR, CONCAT(arrivalAtSchoolDate, '-01'), CURDATE())", "=", pageForm.getTeachNum()); + cnd.andEX(TEACH_NUM_SQL, "=", pageForm.getTeachNum()); cnd.andEX("unionId", "=", pageForm.getUnionId()); cnd.andEX("unitId", "=", pageForm.getUnitId()); cnd.andEX("personType", "=", pageForm.getPersonType());