From 99a2748330340e27014dc23625df26b34114fcc7 Mon Sep 17 00:00:00 2001 From: Paidax Date: Tue, 9 Sep 2025 14:39:09 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BC=98=E5=8C=96=E3=80=81=E6=8F=90?= =?UTF-8?q?=E6=A1=88=E5=82=AC=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transact/ProposalReplyController.java | 75 ++++++++--- .../components/plugins/UserDataScope.vue | 4 +- .../static/components/plugins/UserScope.vue | 4 +- .../activity/union/applyActivity.html | 9 +- .../platform/proposal/transact/reply.html | 122 +++++++++++++++++- .../resources/views/platform/single/list.html | 4 +- .../views/platform/single/myApply.html | 4 +- .../views/platform/single/schoolAudit.html | 4 +- .../views/platform/single/unionAudit.html | 4 +- 9 files changed, 193 insertions(+), 37 deletions(-) diff --git a/src/main/java/io/v/nutz/zhgh/proposal/controller/transact/ProposalReplyController.java b/src/main/java/io/v/nutz/zhgh/proposal/controller/transact/ProposalReplyController.java index 6449c5e..fe52b39 100644 --- a/src/main/java/io/v/nutz/zhgh/proposal/controller/transact/ProposalReplyController.java +++ b/src/main/java/io/v/nutz/zhgh/proposal/controller/transact/ProposalReplyController.java @@ -1,16 +1,10 @@ package io.v.nutz.zhgh.proposal.controller.transact; -import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import cn.wizzer.framework.base.Result; -import com.deepoove.poi.XWPFTemplate; -import com.deepoove.poi.config.Configure; -import com.deepoove.poi.policy.HackLoopTableRenderPolicy; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.DateUtil; -import io.v.nutz.base.utils.Html2Text; -import io.v.nutz.base.utils.MsgApi; -import io.v.nutz.base.utils.Vi; +import io.v.nutz.base.utils.*; import io.v.nutz.base.query.PageForm; import io.v.nutz.web.commons.slog.annotation.SLog; import io.v.nutz.zhgh.proposal.constants.ProposalState; @@ -36,12 +30,7 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import org.nutz.trans.Trans; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.util.*; -import java.util.stream.Collectors; /** @@ -73,6 +62,9 @@ public class ProposalReplyController { @Inject private ProposalReplyService replyService; + @Inject + private MsgApi msgApi; + @At("") @Ok("beetl:/platform/proposal/transact/reply.html") @RequiresPermissions("proposal.transact.reply") @@ -82,10 +74,10 @@ public class ProposalReplyController { @At @ViReturn @RequiresPermissions("proposal.transact.reply") - public Object pageData(PageForm page, ProposalSearch search) { + public Object pageData(PageForm page, ProposalSearch search, Boolean listButtonTypeAdmin) { Cnd cnd = Cnd.NEW(); proposalInfoService.sortAndSearch(cnd, page, search); - if (ShiroUtil.hasAnyRoles("sysadmin, tamange,A06")) { + if (ShiroUtil.hasAnyRoles("sysadmin, tamange, jdh10, A06") && listButtonTypeAdmin) { return proposalReplyService.pageDataBySuperAdmin(page, cnd, search); } else { return proposalReplyService.pageDataByUnitAdmin(page, cnd, search); @@ -194,4 +186,57 @@ public class ProposalReplyController { proposalReplyService.forwardReply(replyForwardList); return null; } + + @At + @ViReturn + @RequiresPermissions("proposal.transact.reply") + public Result sendNotify(@Param("sessionId") String sessionId, @Param("proposalId") String proposalId, + @Param("title") String title, @Param("content") String content) { + try { + Sql sql = Sqls.create(""" + SELECT + info.proposalName, + pu.unitName, + r.replyUnitId, + r.proposalId, + u.username, + u.loginname + FROM + proposal_reply r + LEFT JOIN sys_user_role sur ON sur.cbdwid = r.replyUnitId + AND sur.roleId = @roleId + LEFT JOIN sys_user u ON u.id = sur.userId + LEFT JOIN proposal_undertake pu ON pu.id = r.replyUnitId + LEFT JOIN proposal_info info ON info.id = r.proposalId + WHERE + r.proposalId IN (SELECT id FROM proposal_info WHERE teacherMeetingId = @sessionId) + AND r.isReply = 0 + and r.undertakeType = 1 + and info.resultCode in ('determine','opinion') + $sql + GROUP BY + r.replyUnitId + """).setParam("roleId", Roles.CONTRACTOR_PERSON).setParam("sessionId", sessionId); + if (StrUtil.isNotBlank(proposalId)) { + sql.setVar("sql", " AND info.id = '%s'".formatted(proposalId)); + } + + sql.setCallback(Sqls.callback.maps()); + dao.execute(sql); + List replyList = (List) sql.getResult(); + + + String linkUrl = Globals.AppDomain + "/platform/proposal/transact/reply"; + for (NutMap reply : replyList) { + String loginname = reply.getString("loginname"); + System.out.println(JSONUtil.toJsonStr(reply)); + msgApi.sendMsg(List.of("DingTalk"), loginname, 2, title, content, "", linkUrl); + } + return Result.success(); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(); + } + } + } diff --git a/src/main/resources/static/components/plugins/UserDataScope.vue b/src/main/resources/static/components/plugins/UserDataScope.vue index 548dec4..59c0043 100644 --- a/src/main/resources/static/components/plugins/UserDataScope.vue +++ b/src/main/resources/static/components/plugins/UserDataScope.vue @@ -95,7 +95,7 @@ + code="PERSON_TYPE"> @@ -105,7 +105,7 @@ + code="USER_STATE"> diff --git a/src/main/resources/static/components/plugins/UserScope.vue b/src/main/resources/static/components/plugins/UserScope.vue index d17045e..e0ba695 100644 --- a/src/main/resources/static/components/plugins/UserScope.vue +++ b/src/main/resources/static/components/plugins/UserScope.vue @@ -835,8 +835,8 @@ module.exports = { } await this.flushUnits() await this.getActivityGroup() - this.personTypeOptions = await getDictOptions("UserType") - this.userStateOptions = await getDictOptions("UserState") + this.personTypeOptions = await getDictOptions("PERSON_TYPE") + this.userStateOptions = await getDictOptions("USER_STATE") await this.getMenuOptions() await this.pageData() }, diff --git a/src/main/resources/views/platform/activity/union/applyActivity.html b/src/main/resources/views/platform/activity/union/applyActivity.html index af5c4ec..594cecb 100644 --- a/src/main/resources/views/platform/activity/union/applyActivity.html +++ b/src/main/resources/views/platform/activity/union/applyActivity.html @@ -192,7 +192,7 @@ v-for="item in activityGroupList"> -
+
设置 @@ -657,7 +657,10 @@ >
- + + diff --git a/src/main/resources/views/platform/single/list.html b/src/main/resources/views/platform/single/list.html index 8ab6134..043955c 100644 --- a/src/main/resources/views/platform/single/list.html +++ b/src/main/resources/views/platform/single/list.html @@ -140,7 +140,7 @@ layout("/layouts/platform.html"){ - + @@ -149,7 +149,7 @@ layout("/layouts/platform.html"){ - + diff --git a/src/main/resources/views/platform/single/myApply.html b/src/main/resources/views/platform/single/myApply.html index cbc4b8e..305d256 100644 --- a/src/main/resources/views/platform/single/myApply.html +++ b/src/main/resources/views/platform/single/myApply.html @@ -89,7 +89,7 @@ layout("/layouts/platform.html"){ + code="PERSON_TYPE">
@@ -99,7 +99,7 @@ layout("/layouts/platform.html"){ + code="USER_STATE"> diff --git a/src/main/resources/views/platform/single/schoolAudit.html b/src/main/resources/views/platform/single/schoolAudit.html index 1821cf2..0f5e070 100644 --- a/src/main/resources/views/platform/single/schoolAudit.html +++ b/src/main/resources/views/platform/single/schoolAudit.html @@ -85,7 +85,7 @@ layout("/layouts/platform.html"){
人员类型:
- @@ -95,7 +95,7 @@ layout("/layouts/platform.html"){
在职状态:
- diff --git a/src/main/resources/views/platform/single/unionAudit.html b/src/main/resources/views/platform/single/unionAudit.html index a82edbb..9423800 100644 --- a/src/main/resources/views/platform/single/unionAudit.html +++ b/src/main/resources/views/platform/single/unionAudit.html @@ -85,7 +85,7 @@ layout("/layouts/platform.html"){
人员类型:
- @@ -95,7 +95,7 @@ layout("/layouts/platform.html"){
在职状态:
-