提案整改

This commit is contained in:
2026-04-10 09:04:58 +08:00
parent 476dc19590
commit 8e0f23d6af
2 changed files with 58 additions and 0 deletions
@@ -0,0 +1,17 @@
package com.budwk.app.zhgh.democratic.proposal.service;
import org.nutz.lang.util.NutMap;
import java.util.List;
public interface ProposalCaseCheckService {
/**
* 查询当前提案已经配置的承办单位。
* 二次答复只能从当前提案已有的主办/协办单位里选择,避免页面误选到无关单位。
*
* @param proposalId 提案ID
* @return 承办单位列表
*/
List<NutMap> listReplyUnits(String proposalId);
}
@@ -0,0 +1,41 @@
package com.budwk.app.zhgh.democratic.proposal.service.impl;
import com.budwk.app.base.exception.BaseException;
import com.budwk.app.zhgh.democratic.proposal.models.ProposalReplyUnit;
import com.budwk.app.zhgh.democratic.proposal.service.ProposalCaseCheckService;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap;
import java.util.List;
@IocBean(args = {"refer:dao"})
public class ProposalCaseCheckServiceImpl implements ProposalCaseCheckService {
private final Dao dao;
public ProposalCaseCheckServiceImpl(Dao dao) {
this.dao = dao;
}
@Override
public List<NutMap> listReplyUnits(String proposalId) {
if (proposalId == null || proposalId.isBlank()) {
throw new BaseException("提案ID不能为空");
}
/*
* 二次答复的承办单位来源于当前提案已落库的主办/协办配置。
* 这里按主办优先、再按单位名称排序,便于页面选择时直观看到主协办顺序。
*/
List<ProposalReplyUnit> replyUnits = dao.query(ProposalReplyUnit.class,
Cnd.where(ProposalReplyUnit::getProposalId, "=", proposalId)
.desc(ProposalReplyUnit::getIsMaster)
.asc(ProposalReplyUnit::getUnitName));
return replyUnits.stream().map(replyUnit -> NutMap.NEW()
.setv("unitId", replyUnit.getUnitId())
.setv("unitName", replyUnit.getUnitName())
.setv("isMaster", replyUnit.getIsMaster())
).toList();
}
}