This commit is contained in:
2025-11-19 08:57:49 +08:00
parent 63b7814e71
commit e6a1721f77
10 changed files with 83 additions and 61 deletions
@@ -264,7 +264,7 @@ public class SysHomeController {
// @CacheResult(cacheKey = "news", ignoreNull = true, cacheLiveTime = 60 * 60 * 24)
public Result getNews() {
// 定义要爬取的URL
String domain = "https://gh.hgu.edu.cn/index.htm";
String domain = "https://gh.hgu.edu.cn";
try {
// 使用Jsoup连接到URL并获取页面内容
Document doc = Jsoup.connect(domain).get();
@@ -133,6 +133,7 @@ public class ActivityCultureApplyActivityController {
}
tissue.setUserId(SecurityUtil.getUserId());
tissue.setApplyTime(DateUtil.now());
tissue.setIsUnseal(false);
activityCultureService.insertOrUpdate(tissue);
if (List.of(40002, 40003).contains(tissue.getActivity_type()) && tissue.getIsEnrollSystem()) {
@@ -149,7 +150,7 @@ public class ActivityCultureApplyActivityController {
}
return Result.success();
}
if (tissue.getIsUnseal() && tissue.getIsEnrollSystem()) {
if (tissue.getIsEnrollSystem()) {
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
activityCultureService.insertOrUpdate(sysHomeActivity);
}
@@ -59,12 +59,12 @@ public class ExecutiveCommitteeConfigController {
sun.id as unionId,
sun.name as unionName,
sun.unionCode ,
(SELECT count( 1 ) FROM vw_user where sun.id = unionId) as memberCount,
(SELECT count( 1 ) FROM teacher_congress_delegate where unionId =sun.id and sessionId=@sessionId) as dbCount,
0 as quotaCount
FROM
sys_union sun
ORDER BY unionCode ASC
""");
""").setParam("sessionId",sessionId);
List<NutMap> listMap = committeeConfigService.listMap(sql);
config.setUnionQuotaList(listMap);
}
@@ -15,6 +15,7 @@ import com.budwk.app.flow.constant.FlowConst;
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.ProcessInstanceStateEnum;
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
import com.budwk.app.sys.views.View_user;
@@ -123,8 +124,13 @@ public class TeacherCongressDelegatePushController {
cnd.and(group);
}
cnd.desc("info.createdAt");
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) {
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name())) {
if (AuthUtil.hasRole(RoleConstant.UNIT_PARTY_SECRETARY.name())) {
cnd.andEX("info.unionId", "=", SecurityUtil.getUnionId());
} else {
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
}
}
sql.setCondition(cnd);
Pagination<NutMap> pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
@@ -289,18 +295,36 @@ public class TeacherCongressDelegatePushController {
Sql sql = Sqls.create("""
SELECT
info.*,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable
FROM
teacher_congress_delegate_push info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id
AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.andEX("info.sessionId", "=", sessionId);
cnd.andEX("info.unionId", "=", SecurityUtil.getUnionId());
cnd.andEX("t.taskName", "=", "0cacd1e7-7bb2-47dd-818b-6a73062e0c62");
SqlExpressionGroup group = new SqlExpressionGroup();
group.or("t.taskName", "!=", "53ff0c2a-ba93-45e9-a9fd-db51cdab3080");
group.or("t.taskName", "is", null);
cnd.and(group);
cnd.and("ins.state", "!=", ProcessInstanceStateEnum.REJECT.getCode());
cnd.groupBy("info.id");
sql.setCondition(cnd);
List<NutMap> writeList = baseService.listMap(sql);
@@ -328,6 +352,9 @@ public class TeacherCongressDelegatePushController {
if (total > allocation.getAllocationNum()) {
tips.append("上报总人数超出分配名额!");
}
if (total < allocation.getAllocationNum()) {
tips.append("上报总人数不满足分配名额!");
}
if (seniorTeacher < allocation.getSeniorTeaNum()) {
tips.append("高级职称专任教师数不满足分配名额数!");
@@ -376,23 +403,7 @@ public class TeacherCongressDelegatePushController {
Sql sql = Sqls.create("""
SELECT
info.*,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariale,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(SELECT MAX(id) FROM wf_process_task WHERE processInstanceId = ins.id AND taskName = 'startTask' AND taskState IN (10, 20)) AS startTaskId
info.*
FROM
teacher_congress_delegate_push info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
@@ -401,10 +412,14 @@ public class TeacherCongressDelegatePushController {
$condition
""");
Cnd cnd = Cnd.NEW();
SqlExpressionGroup group = new SqlExpressionGroup();
group.or("t.taskName", "=", "900217e4-4332-4a21-90dd-363b8be17801");
group.or("t.taskName", "is", null);
cnd.and(group);
cnd.and("ins.state", "!=", ProcessInstanceStateEnum.REJECT.getCode());
cnd.andEX("info.sessionId", "=", sessionId);
cnd.andEX("info.unionId", "=", unionId);
cnd.andEX("info.representativeType", "=", "正式代表");
cnd.and("ins.state", "=", ProcessTaskStateEnum.FINISHED.getCode());
sql.setCondition(cnd);
List<NutMap> writeList = baseService.listMap(sql);
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -86,7 +86,7 @@ layout("/layouts/v4/baseLayout.html"){
</div>
<jcdt :list="websiteNews.grassroots"></jcdt>
<!-- <jcdt :list="websiteNews.grassroots"></jcdt>-->
</div>
</div>
@@ -4,21 +4,23 @@ const jcdt = {
<div class="jcdt-container">
<div class="jcdt-title">
<span>基层动态</span>
</div>
</div>
<div class="jcdt-content">
<div class="jcdt-list">
<div class="jcdt-item" v-for="item in list" :key="item.title" @click="onLink(item)">
<div class="date" v-if="item.date">{{item.date}}</div>
<div style="display: flex; align-items: center">
<div style="font-size: 28px">🆕</div>
<div >
<el-image style="width: 30px" src="/assets/platform/img/v4/xw.png" alt="流程中心"></el-image>
</div>
<div class="title">{{item.title}}</div>
</div>
<!--<div class="image">
<img v-if="item.image" :src="item.image" alt="">
<img v-else src="/assets/platform/img/v4/not-image.png" alt="">
</div>-->
<!-- <div class="summary">{{item.summary}}</div>-->
<!-- <div class="summary">{{item.summary}}</div>-->
</div>
</div>
</div>
@@ -120,7 +122,7 @@ const jcdt = {
.jcdt-item .date {
font-size: 20px;
font-weight: bold;
/*font-weight: bold;*/
white-space: nowrap;
text-align: left;
margin-bottom: 8px;
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
},
tableColumns: [
{prop: 'unionName', label: '分工会名称', sortable: true},
{prop: 'memberCount', label: '代表人数', sortable: true},
{prop: 'dbCount', label: '代表人数', sortable: true},
{prop: 'quotaCount', label: '分配人数', sortable: true}
],
formData: {},
@@ -27,25 +27,28 @@ layout("/layouts/platform.html"){
<el-card shadow="never">
<table-tool>
<el-button
icon="el-icon-plus"
size="small"
type="primary"
@click="$refs.pushFormalRef.onOpen(pageForm.sessionId,pageForm.unionId)"
>正式代表预选
</el-button>
<el-button
icon="el-icon-plus"
size="small"
type="primary"
@click="$refs.pushAttendanceRef.onOpen(pageForm.sessionId,pageForm.unionId)"
>列席代表预选
</el-button>
<!-- <el-button icon="el-icon-download" size="small" type="primary" @click="doExport">导出</el-button>-->
<el-button icon="el-icon-check" size="small" type="primary" @click="onBatchSubmit">正式代表提交上报
</el-button>
<template v-if="$auth.hasRoleOr(['SYSADMIN','SCHOOL_UNION_ADMIN','BRANCH_UNION_CHAIRMAN'])">
<el-button
icon="el-icon-plus"
size="small"
type="primary"
@click="$refs.pushFormalRef.onOpen(pageForm.sessionId,pageForm.unionId)"
>正式代表预选
</el-button>
<el-button
icon="el-icon-plus"
size="small"
type="primary"
@click="$refs.pushAttendanceRef.onOpen(pageForm.sessionId,pageForm.unionId)"
>列席代表预选
</el-button>
</template>
<template v-if="$auth.hasRoleOr(['SYSADMIN','SCHOOL_UNION_ADMIN','UNIT_PARTY_SECRETARY'])">
<el-button icon="el-icon-check" size="small" type="primary" @click="onBatchSubmit">正式代表提交上报
</el-button>
</template>
<el-button icon="el-icon-download" size="small" type="primary" @click="doExport">导出</el-button>
<el-radio-group v-model="pageForm.isFormalOrAttendance" size="small" class="ml10"
@change="doSearch">
<el-radio-button label="全部"></el-radio-button>
@@ -163,11 +166,12 @@ layout("/layouts/platform.html"){
<el-table-column label="操作" fixed="right" width="300">
<template slot-scope="{row}">
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
<el-button
v-if="row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId"
@click="onEdit(row)" size="mini"
type="primary">编辑
</el-button>
<el-button
v-if="(row.taskKey === 'startTask' || row.taskKey==='53ff0c2a-ba93-45e9-a9fd-db51cdab3080' || !row.instanceId)
&& $auth.hasRoleOr(['SYSADMIN'])"
@click="onEdit(row)" size="mini"
type="primary">编辑
</el-button>
<template>
<el-button v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')" @click="onDelete(row.id)"
size="mini" type="danger">
@@ -46,8 +46,8 @@ const apps = {
@touchmove="onTouchMove">
<!-- 图标 -->
<div class="app-grid-icon">
<van-icon v-if="app.picIcon" :name="app.picIcon" size="64"
style="border-radius: 12px; width: 64px; height: 64px;"></van-icon>
<van-icon v-if="app.picIcon" :name="app.picIcon" size="45"
style="border-radius: 12px; width: 45px; height: 45px;"></van-icon>
<van-icon v-else-if="app.icon" :name="app.icon" size="28"></van-icon>
<van-icon v-else name="apps-o" size="28"></van-icon>
</div>
@@ -443,10 +443,10 @@ const apps = {
}
.app-grid-icon {
width: 64px;
height: 64px;
width: 45px;
height: 45px;
max-width: 64px;
max-height: 64px;
max-height: 60px;
border-radius: 12px;
background: #f2f3f5;
display: flex;