This commit is contained in:
zhouhefeng
2026-06-01 11:03:09 +08:00
parent 8b47088953
commit 27f2b1670e
2 changed files with 11 additions and 3 deletions
@@ -58,6 +58,9 @@ import java.util.stream.Collectors;
@At("/platform/thirtyTeach/manage") @At("/platform/thirtyTeach/manage")
public class ThirtyTeachController { 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 @Inject
private ThirtyTeachService thirtyTeachService; private ThirtyTeachService thirtyTeachService;
@@ -91,7 +94,7 @@ public class ThirtyTeachController {
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("arrivalAtSchoolDate", "is not", null); cnd.and("arrivalAtSchoolDate", "is not", null);
cnd.and("arrivalAtSchoolDate", "!=", ""); 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); sysUserService.update(Chain.make("isThirtyTeach", 1), cnd);
return Result.success(); return Result.success();
} }
@@ -13,6 +13,7 @@ import org.nutz.dao.Dao;
import org.nutz.dao.Sqls; import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql; import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.ioc.loader.annotation.IocBean;
/** /**
@@ -22,6 +23,9 @@ import org.nutz.ioc.loader.annotation.IocBean;
*/ */
@IocBean(args = {"refer:dao"}) @IocBean(args = {"refer:dao"})
public class ThirtyTeachServiceImpl extends BaseServiceImpl implements ThirtyTeachService { 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) { public ThirtyTeachServiceImpl(Dao dao) {
super(dao); super(dao);
} }
@@ -43,11 +47,12 @@ public class ThirtyTeachServiceImpl extends BaseServiceImpl implements ThirtyTea
birthday, birthday,
thirtyCertificateProcessingTime, thirtyCertificateProcessingTime,
false as isEditThirtyCertificateProcessingTime, false as isEditThirtyCertificateProcessingTime,
TIMESTAMPDIFF(YEAR, CONCAT(arrivalAtSchoolDate, '-01'), CURDATE()) AS teachNum $teachNumSql AS teachNum
FROM FROM
`vw_user` `vw_user`
$condition $condition
"""); """);
sql.setVar("teachNumSql", new Static(TEACH_NUM_SQL));
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("isThirtyTeach", "=", 1); cnd.and("isThirtyTeach", "=", 1);
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { 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())) { if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("unionId", "=", SecurityUtil.getUnionId()); 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("unionId", "=", pageForm.getUnionId());
cnd.andEX("unitId", "=", pageForm.getUnitId()); cnd.andEX("unitId", "=", pageForm.getUnitId());
cnd.andEX("personType", "=", pageForm.getPersonType()); cnd.andEX("personType", "=", pageForm.getPersonType());