feat(meeting): 会议详情页参会人 CRUD + BizProjectPlan audit 字段
- 后端: BizMeetingAttendee 增 list/add/update/delete 4 端点 按手机号定位 sys_user (无则新建, 用户名=密码=phone, role_type='doctor') Mapper: insertWithProfile (一次写完整档案) + deleteByPrimaryKey Service: insertByPhoneWithProfile (重复参会人抛友好异常) - #4 配套: BizProjectPlan.auditOpinion/auditBy/auditTime + 关联项目名 BizProjectPlan.projectName (LEFT JOIN biz_project) 用于 #4 通知 content - 前端 MeetingDetail.vue: 劳务材料 tab 内, 劳务明细表 file-row 下方 直接出表 (无表题), 含姓名/手机/单位/科室/职称/劳务费/签字状态/操作 新增/编辑 dialog 共用, 删除走 ElMessageBox.confirm 二次确认 - 触发 #5: 新参会人 POST 时也发会议邀请通知 (与 BizMeetingController.add 一致)
This commit is contained in:
@@ -40,6 +40,20 @@
|
||||
insert into biz_meeting_attendee(meeting_id, user_id, create_by, create_time)
|
||||
values(#{meetingId}, #{userId}, #{createBy}, sysdate())
|
||||
</insert>
|
||||
<!--
|
||||
管理端新增参会人 (MeetingDetail 参会人 CRUD 用):
|
||||
一次性写入 meeting_id+user_id+档案字段 (name/phone/work_unit/...).
|
||||
若档案字段为 NULL 则不写 (COALESCE 在调用方给空字符串兜底).
|
||||
useGeneratedKeys 让调用方能拿到新 attendee.id (用于 #5 触发邀请通知).
|
||||
-->
|
||||
<insert id="insertWithProfile" parameterType="BizMeetingAttendee" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into biz_meeting_attendee(meeting_id, user_id, name, phone, work_unit, department, title,
|
||||
id_card, bank_card, bank_name, bank_branch, bank_region, bank_address, account_name,
|
||||
id_card_attachments, labor_form, fee_pre_tax, tax, fee, create_by, create_time)
|
||||
values(#{meetingId}, #{userId}, #{name}, #{phone}, #{workUnit}, #{department}, #{title},
|
||||
#{idCard}, #{bankCard}, #{bankName}, #{bankBranch}, #{bankRegion}, #{bankAddress}, #{accountName},
|
||||
#{idCardAttachments}, #{laborForm}, #{feePreTax}, #{tax}, #{fee}, #{createBy}, sysdate())
|
||||
</insert>
|
||||
<!-- 批量插入参会人 (BizMeetingController.add 调用) -->
|
||||
<insert id="insertBatch">
|
||||
insert into biz_meeting_attendee(meeting_id, user_id, create_by, create_time)
|
||||
@@ -103,6 +117,10 @@
|
||||
<delete id="deleteByMeetingId" parameterType="Long">
|
||||
delete from biz_meeting_attendee where meeting_id = #{meetingId}
|
||||
</delete>
|
||||
<!-- MeetingDetail 参会人 CRUD 用: 按 id 单删 -->
|
||||
<delete id="deleteByPrimaryKey" parameterType="Long">
|
||||
delete from biz_meeting_attendee where id = #{id}
|
||||
</delete>
|
||||
<delete id="deleteByMeetingIdAndUserId" parameterType="BizMeetingAttendee">
|
||||
delete from biz_meeting_attendee where meeting_id = #{meetingId} and user_id = #{userId}
|
||||
</delete>
|
||||
@@ -133,4 +151,11 @@
|
||||
and (a.handsign is null or a.handsign = '' or a.labor_protocol is null or a.labor_protocol = '')
|
||||
order by m.start_time asc
|
||||
</select>
|
||||
<!--
|
||||
给 BizMeetingController.edit 做差集用: 查该会议已存在的参会人 userId 列表.
|
||||
用于 #5 会议邀请: 仅给"新加入"的 userId 发通知, 已存在的用户不重发.
|
||||
-->
|
||||
<select id="selectUserIdsByMeetingId" resultType="java.lang.Long" parameterType="Long">
|
||||
select user_id from biz_meeting_attendee where meeting_id = #{meetingId}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -13,7 +13,11 @@
|
||||
<result property="status" column="status" />
|
||||
<result property="isSettled" column="is_settled" />
|
||||
<result property="projectNo" column="project_no" />
|
||||
<result property="projectName" column="project_name" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="auditOpinion" column="audit_opinion" />
|
||||
<result property="auditBy" column="audit_by" />
|
||||
<result property="auditTime" column="audit_time" />
|
||||
<result property="submitterId" column="submitter_id" />
|
||||
<result property="submitterName" column="submitter_name" />
|
||||
<result property="createBy" column="create_by" />
|
||||
@@ -25,13 +29,15 @@
|
||||
select p.plan_id, p.plan_name, p.plan_direction, p.plan_direction_id,
|
||||
s.title as plan_direction_title,
|
||||
p.plan_category, p.project_form, p.design_file_url, p.status, p.is_settled,
|
||||
p.project_no, p.remark, p.submitter_id,
|
||||
p.project_no, p.remark, p.audit_opinion, p.audit_by, p.audit_time, p.submitter_id,
|
||||
COALESCE(bp.name, u.user_name) as submitter_name,
|
||||
proj.project_name as project_name,
|
||||
p.create_by, p.create_time, p.update_by, p.update_time
|
||||
from biz_project_plan p
|
||||
left join biz_special_plan s on s.id = p.plan_direction_id
|
||||
left join sys_user u on u.user_id = p.submitter_id
|
||||
left join biz_person bp on bp.user_id = u.user_id
|
||||
left join biz_project proj on proj.project_no = p.project_no
|
||||
</sql>
|
||||
<select id="selectByPrimaryKey" resultMap="BizProjectPlanResult" parameterType="String">
|
||||
<include refid="selectFields"/>
|
||||
|
||||
Reference in New Issue
Block a user