feat: 合并 admin/manager 重复页 + 公示意向 + 劳务签署
页合并 (admin/manager 共用, route.path 角色感知): - expert: Experts.vue + ExpertNew.vue (list/new/edit/view 一套) - sponsor-orgs: SponsorOrgs.vue - sponsor-people: SponsorPeople.vue + SponsorPersonNew.vue + SponsorPersonDetail.vue - executor-orgs: ExecutorOrgs.vue - executor-people: ExecutorPeople.vue + ExecutorPersonNew.vue + ExecutorPersonDetail.vue - 给 SponsorPeople / ExecutorPeople op 列补上 查看/编辑 按钮 (潜在 bug 修复) - 详情弹窗统一用 el-descriptions 风格 (替代 admin 旧版 ElMessageBox.alert) 后端: - BizSignController + BizSignServiceImpl + PdfService (劳务签署 PDF 流程) - BizPublicityIntentController (公示意向: 支持/执行) - BizPublicitySupportIntent / BizPublicityExecutionIntent ExportVo - BizMeetingAttendee 字段合并 (bank_region 替代 bankProvince/bankCity) - BizExpert 字段合并 (id_card_attachments CSV, bank_region) - Excel 导入模板精简 (开户行 1 列) 前端: - doctor/SignFill + SignContract + SignSuccess (劳务签署 3 页流程) - ImportResultDialog 通用组件 - IdCardUploader 重构 (单 v-model:idCardAttachments, CSV 格式) - AreaCascader 调整 - Login.vue + AdminLayout.vue + PortalShell.vue + Home.vue 适配 DB: 字段合并 (id_card_front/back → id_card_attachments, bank_province/city → bank_region)
This commit is contained in:
@@ -15,11 +15,9 @@
|
||||
<result property="titleCertUrl" column="title_cert_url" />
|
||||
<result property="bankCard" column="bank_card" />
|
||||
<result property="bankName" column="bank_name" />
|
||||
<result property="bankProvince" column="bank_province" />
|
||||
<result property="bankCity" column="bank_city" />
|
||||
<result property="bankRegion" column="bank_region" />
|
||||
<result property="bankAddress" column="bank_address" />
|
||||
<result property="idCardFrontUrl" column="id_card_front_url" />
|
||||
<result property="idCardBackUrl" column="id_card_back_url" />
|
||||
<result property="idCardAttachments" column="id_card_attachments" />
|
||||
<result property="auditStatus" column="audit_status" />
|
||||
<result property="auditBy" column="audit_by" />
|
||||
<result property="auditTime" column="audit_time" />
|
||||
@@ -29,7 +27,7 @@
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
<sql id="selectFields">
|
||||
select expert_id, user_id, name, phone, region, id_card, work_unit, department, title, practice_cert_url, title_cert_url, bank_card, bank_name, bank_province, bank_city, bank_address, id_card_front_url, id_card_back_url, audit_status, audit_by, audit_time, status, create_by, create_time, update_by, update_time
|
||||
select expert_id, user_id, name, phone, region, id_card, work_unit, department, title, practice_cert_url, title_cert_url, bank_card, bank_name, bank_region, bank_address, id_card_attachments, audit_status, audit_by, audit_time, status, create_by, create_time, update_by, update_time
|
||||
from biz_expert
|
||||
</sql>
|
||||
<select id="selectByUserId" resultMap="BizExpertResult" parameterType="Long">
|
||||
@@ -62,14 +60,12 @@
|
||||
<if test="workUnit != null">work_unit,</if>
|
||||
<if test="department != null">department,</if>
|
||||
<if test="title != null">title,</if>
|
||||
<if test="idCardFrontUrl != null">id_card_front_url,</if>
|
||||
<if test="idCardBackUrl != null">id_card_back_url,</if>
|
||||
<if test="idCardAttachments != null">id_card_attachments,</if>
|
||||
<if test="practiceCertUrl != null">practice_cert_url,</if>
|
||||
<if test="titleCertUrl != null">title_cert_url,</if>
|
||||
<if test="bankCard != null">bank_card,</if>
|
||||
<if test="bankName != null">bank_name,</if>
|
||||
<if test="bankProvince != null">bank_province,</if>
|
||||
<if test="bankCity != null">bank_city,</if>
|
||||
<if test="bankRegion != null">bank_region,</if>
|
||||
<if test="bankAddress != null">bank_address,</if>
|
||||
<if test="auditStatus != null">audit_status,</if>
|
||||
<if test="auditBy != null">audit_by,</if>
|
||||
@@ -90,14 +86,12 @@
|
||||
<if test="workUnit != null">#{workUnit},</if>
|
||||
<if test="department != null">#{department},</if>
|
||||
<if test="title != null">#{title},</if>
|
||||
<if test="idCardFrontUrl != null">#{idCardFrontUrl},</if>
|
||||
<if test="idCardBackUrl != null">#{idCardBackUrl},</if>
|
||||
<if test="idCardAttachments != null">#{idCardAttachments},</if>
|
||||
<if test="practiceCertUrl != null">#{practiceCertUrl},</if>
|
||||
<if test="titleCertUrl != null">#{titleCertUrl},</if>
|
||||
<if test="bankCard != null">#{bankCard},</if>
|
||||
<if test="bankName != null">#{bankName},</if>
|
||||
<if test="bankProvince != null">#{bankProvince},</if>
|
||||
<if test="bankCity != null">#{bankCity},</if>
|
||||
<if test="bankRegion != null">#{bankRegion},</if>
|
||||
<if test="bankAddress != null">#{bankAddress},</if>
|
||||
<if test="auditStatus != null">#{auditStatus},</if>
|
||||
<if test="auditBy != null">#{auditBy},</if>
|
||||
@@ -121,11 +115,9 @@
|
||||
<if test="idCard != null">id_card = #{idCard},</if>
|
||||
<if test="bankCard != null">bank_card = #{bankCard},</if>
|
||||
<if test="bankName != null">bank_name = #{bankName},</if>
|
||||
<if test="bankProvince != null">bank_province = #{bankProvince},</if>
|
||||
<if test="bankCity != null">bank_city = #{bankCity},</if>
|
||||
<if test="bankRegion != null">bank_region = #{bankRegion},</if>
|
||||
<if test="bankAddress != null">bank_address = #{bankAddress},</if>
|
||||
<if test="idCardFrontUrl != null">id_card_front_url = #{idCardFrontUrl},</if>
|
||||
<if test="idCardBackUrl != null">id_card_back_url = #{idCardBackUrl},</if>
|
||||
<if test="idCardAttachments != null">id_card_attachments = #{idCardAttachments},</if>
|
||||
<if test="practiceCertUrl != null">practice_cert_url = #{practiceCertUrl},</if>
|
||||
<if test="titleCertUrl != null">title_cert_url = #{titleCertUrl},</if>
|
||||
<if test="auditOpinion != null">audit_opinion = #{auditOpinion},</if>
|
||||
@@ -149,11 +141,9 @@
|
||||
<if test="idCard != null">id_card,</if>
|
||||
<if test="bankCard != null">bank_card,</if>
|
||||
<if test="bankName != null">bank_name,</if>
|
||||
<if test="bankProvince != null">bank_province,</if>
|
||||
<if test="bankCity != null">bank_city,</if>
|
||||
<if test="bankRegion != null">bank_region,</if>
|
||||
<if test="bankAddress != null">bank_address,</if>
|
||||
<if test="idCardFrontUrl != null">id_card_front_url,</if>
|
||||
<if test="idCardBackUrl != null">id_card_back_url,</if>
|
||||
<if test="idCardAttachments != null">id_card_attachments,</if>
|
||||
<if test="practiceCertUrl != null">practice_cert_url,</if>
|
||||
<if test="titleCertUrl != null">title_cert_url,</if>
|
||||
</trim>
|
||||
@@ -169,11 +159,9 @@
|
||||
<if test="idCard != null">#{idCard},</if>
|
||||
<if test="bankCard != null">#{bankCard},</if>
|
||||
<if test="bankName != null">#{bankName},</if>
|
||||
<if test="bankProvince != null">#{bankProvince},</if>
|
||||
<if test="bankCity != null">#{bankCity},</if>
|
||||
<if test="bankRegion != null">#{bankRegion},</if>
|
||||
<if test="bankAddress != null">#{bankAddress},</if>
|
||||
<if test="idCardFrontUrl != null">#{idCardFrontUrl},</if>
|
||||
<if test="idCardBackUrl != null">#{idCardBackUrl},</if>
|
||||
<if test="idCardAttachments != null">#{idCardAttachments},</if>
|
||||
<if test="practiceCertUrl != null">#{practiceCertUrl},</if>
|
||||
<if test="titleCertUrl != null">#{titleCertUrl},</if>
|
||||
</trim>
|
||||
@@ -187,11 +175,9 @@
|
||||
<if test="idCard != null and idCard != ''">id_card = #{idCard},</if>
|
||||
<if test="bankCard != null and bankCard != ''">bank_card = #{bankCard},</if>
|
||||
<if test="bankName != null and bankName != ''">bank_name = #{bankName},</if>
|
||||
<if test="bankProvince != null and bankProvince != ''">bank_province = #{bankProvince},</if>
|
||||
<if test="bankCity != null and bankCity != ''">bank_city = #{bankCity},</if>
|
||||
<if test="bankRegion != null and bankRegion != ''">bank_region = #{bankRegion},</if>
|
||||
<if test="bankAddress != null and bankAddress != ''">bank_address = #{bankAddress},</if>
|
||||
<if test="idCardFrontUrl != null and idCardFrontUrl != ''">id_card_front_url = #{idCardFrontUrl},</if>
|
||||
<if test="idCardBackUrl != null and idCardBackUrl != ''">id_card_back_url = #{idCardBackUrl},</if>
|
||||
<if test="idCardAttachments != null and idCardAttachments != ''">id_card_attachments = #{idCardAttachments},</if>
|
||||
<if test="practiceCertUrl != null and practiceCertUrl != ''">practice_cert_url = #{practiceCertUrl},</if>
|
||||
<if test="titleCertUrl != null and titleCertUrl != ''">title_cert_url = #{titleCertUrl},</if>
|
||||
<if test="auditStatus != null and auditStatus != ''">audit_status = #{auditStatus},</if>
|
||||
@@ -206,6 +192,28 @@
|
||||
</trim>
|
||||
where expert_id = #{expertId}
|
||||
</update>
|
||||
<!-- 批量插入 biz_expert (单批 caller 控制 ≤100; sysdate() 由 DB 生成) -->
|
||||
<insert id="batchInsert" parameterType="list">
|
||||
insert into biz_expert
|
||||
(expert_id, user_id, name, phone, region, id_card,
|
||||
work_unit, department, title,
|
||||
practice_cert_url, title_cert_url,
|
||||
bank_card, bank_name, bank_region, bank_address,
|
||||
id_card_attachments,
|
||||
audit_status, audit_by, audit_time, status,
|
||||
create_by, create_time)
|
||||
values
|
||||
<foreach collection="list" item="e" separator=",">
|
||||
(#{e.expertId}, #{e.userId}, #{e.name}, #{e.phone}, #{e.region}, #{e.idCard},
|
||||
#{e.workUnit}, #{e.department}, #{e.title},
|
||||
#{e.practiceCertUrl}, #{e.titleCertUrl},
|
||||
#{e.bankCard}, #{e.bankName}, #{e.bankRegion}, #{e.bankAddress},
|
||||
#{e.idCardAttachments},
|
||||
#{e.auditStatus}, #{e.auditBy}, #{e.auditTime}, #{e.status},
|
||||
#{e.createBy}, sysdate())
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<delete id="deleteByPrimaryKey" parameterType="Long">
|
||||
delete from biz_expert where expert_id = #{expertId}
|
||||
</delete>
|
||||
|
||||
+73
-3
@@ -5,11 +5,31 @@
|
||||
<id property="id" column="id" />
|
||||
<result property="meetingId" column="meeting_id" />
|
||||
<result property="userId" column="user_id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="phone" column="phone" />
|
||||
<result property="workUnit" column="work_unit" />
|
||||
<result property="department" column="department" />
|
||||
<result property="title" column="title" />
|
||||
<result property="idCard" column="id_card" />
|
||||
<result property="bankCard" column="bank_card" />
|
||||
<result property="bankName" column="bank_name" />
|
||||
<result property="bankBranch" column="bank_branch" />
|
||||
<result property="bankRegion" column="bank_region" />
|
||||
<result property="bankAddress" column="bank_address" />
|
||||
<result property="accountName" column="account_name" />
|
||||
<result property="idCardAttachments" column="id_card_attachments" />
|
||||
<result property="laborForm" column="labor_form" />
|
||||
<result property="feePreTax" column="fee_pre_tax" />
|
||||
<result property="tax" column="tax" />
|
||||
<result property="fee" column="fee" />
|
||||
<result property="signedAt" column="signed_at" />
|
||||
<result property="signedIp" column="signed_ip" />
|
||||
<result property="handsign" column="handsign" />
|
||||
<result property="laborProtocol" column="labor_protocol" />
|
||||
<result property="laborProtocolMasked" column="labor_protocol_masked" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<!-- 联表字段 (非持久化, entity transient 字段接收) -->
|
||||
<!-- 联表字段 (非持久化, entity transient property 接收) -->
|
||||
<result property="meetingName" column="meeting_name" />
|
||||
<result property="startTime" column="start_time" />
|
||||
<result property="endTime" column="end_time" />
|
||||
@@ -20,6 +40,40 @@
|
||||
insert into biz_meeting_attendee(meeting_id, user_id, create_by, create_time)
|
||||
values(#{meetingId}, #{userId}, #{createBy}, sysdate())
|
||||
</insert>
|
||||
<!-- 批量插入参会人 (BizMeetingController.add 调用) -->
|
||||
<insert id="insertBatch">
|
||||
insert into biz_meeting_attendee(meeting_id, user_id, create_by, create_time)
|
||||
values
|
||||
<foreach collection="userIds" item="userId" separator=",">
|
||||
(#{meetingId}, #{userId}, #{createBy}, sysdate())
|
||||
</foreach>
|
||||
</insert>
|
||||
<!-- 医生填写信息保存草稿: 更新所有签字字段 + 劳务信息 (不含签名/PDF) -->
|
||||
<update id="updateProfile" parameterType="BizMeetingAttendee">
|
||||
update biz_meeting_attendee
|
||||
<set>
|
||||
<if test="name != null">name = #{name},</if>
|
||||
<if test="phone != null">phone = #{phone},</if>
|
||||
<if test="workUnit != null">work_unit = #{workUnit},</if>
|
||||
<if test="department != null">department = #{department},</if>
|
||||
<if test="title != null">title = #{title},</if>
|
||||
<if test="idCard != null">id_card = #{idCard},</if>
|
||||
<if test="bankCard != null">bank_card = #{bankCard},</if>
|
||||
<if test="bankName != null">bank_name = #{bankName},</if>
|
||||
<if test="bankBranch != null">bank_branch = #{bankBranch},</if>
|
||||
<if test="bankRegion != null">bank_region = #{bankRegion},</if>
|
||||
<if test="bankAddress != null">bank_address = #{bankAddress},</if>
|
||||
<if test="accountName != null">account_name = #{accountName},</if>
|
||||
<if test="idCardAttachments != null">id_card_attachments = #{idCardAttachments},</if>
|
||||
<if test="laborForm != null">labor_form = #{laborForm},</if>
|
||||
<if test="feePreTax != null">fee_pre_tax = #{feePreTax},</if>
|
||||
<if test="tax != null">tax = #{tax},</if>
|
||||
<if test="fee != null">fee = #{fee},</if>
|
||||
update_by = #{updateBy},
|
||||
update_time = sysdate()
|
||||
</set>
|
||||
where id = #{id}
|
||||
</update>
|
||||
<update id="updateHandsign" parameterType="BizMeetingAttendee">
|
||||
update biz_meeting_attendee
|
||||
set handsign = #{handsign},
|
||||
@@ -27,6 +81,18 @@
|
||||
update_time = sysdate()
|
||||
where id = #{id}
|
||||
</update>
|
||||
<!-- 提交签字: 存 handsign + labor_protocol + signed_at + signed_ip -->
|
||||
<update id="updateSign" parameterType="BizMeetingAttendee">
|
||||
update biz_meeting_attendee
|
||||
set handsign = #{handsign},
|
||||
labor_protocol = #{laborProtocol},
|
||||
labor_protocol_masked = #{laborProtocolMasked},
|
||||
signed_at = #{signedAt},
|
||||
signed_ip = #{signedIp},
|
||||
update_by = #{updateBy},
|
||||
update_time = sysdate()
|
||||
where id = #{id}
|
||||
</update>
|
||||
<update id="updateLaborProtocol" parameterType="BizMeetingAttendee">
|
||||
update biz_meeting_attendee
|
||||
set labor_protocol = #{laborProtocol},
|
||||
@@ -41,13 +107,17 @@
|
||||
delete from biz_meeting_attendee where meeting_id = #{meetingId} and user_id = #{userId}
|
||||
</delete>
|
||||
<select id="selectByMeetingId" resultMap="BizMeetingAttendeeResult" parameterType="Long">
|
||||
select id, meeting_id, user_id, handsign, labor_protocol, create_by, create_time
|
||||
select id, 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, signed_at, signed_ip, handsign, labor_protocol, create_by, create_time
|
||||
from biz_meeting_attendee where meeting_id = #{meetingId}
|
||||
</select>
|
||||
<select id="selectByUserId" resultMap="BizMeetingAttendeeResult" parameterType="Long">
|
||||
select id, meeting_id, user_id, handsign, labor_protocol, create_by, create_time
|
||||
select id, 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, signed_at, signed_ip, handsign, labor_protocol, create_by, create_time
|
||||
from biz_meeting_attendee where user_id = #{userId}
|
||||
</select>
|
||||
<select id="selectById" resultMap="BizMeetingAttendeeResult" parameterType="Long">
|
||||
select id, 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, signed_at, signed_ip, handsign, labor_protocol, create_by, create_time
|
||||
from biz_meeting_attendee where id = #{id}
|
||||
</select>
|
||||
<!--
|
||||
当前用户的"待签署"会议列表 (任一未签: handsign 或 labor_protocol 为 NULL)
|
||||
INNER JOIN biz_meeting 取会议名/时间/项目名, 用于 /doctor/home 工作台
|
||||
|
||||
+2
-2
@@ -32,10 +32,10 @@
|
||||
<include refid="selectFields"/>
|
||||
<where>
|
||||
<if test="projectId != null"> and project_id = #{projectId}</if>
|
||||
<if test="projectNo != null and projectNo != ''"> and project_no = #{projectNo}</if>
|
||||
<if test="projectNo != null and projectNo != ''"> and project_no like concat('%', #{projectNo}, '%')</if>
|
||||
<if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
|
||||
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
|
||||
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
|
||||
<if test="phone != null and phone != ''"> and phone like concat('%', #{phone}, '%')</if>
|
||||
<if test="workUnit != null and workUnit != ''"> and work_unit like concat('%', #{workUnit}, '%')</if>
|
||||
<if test="intentStatus != null and intentStatus != ''"> and intent_status = #{intentStatus}</if>
|
||||
<if test="source != null and source != ''"> and source = #{source}</if>
|
||||
|
||||
+2
-2
@@ -32,10 +32,10 @@
|
||||
<include refid="selectFields"/>
|
||||
<where>
|
||||
<if test="projectId != null"> and project_id = #{projectId}</if>
|
||||
<if test="projectNo != null and projectNo != ''"> and project_no = #{projectNo}</if>
|
||||
<if test="projectNo != null and projectNo != ''"> and project_no like concat('%', #{projectNo}, '%')</if>
|
||||
<if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
|
||||
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
|
||||
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
|
||||
<if test="phone != null and phone != ''"> and phone like concat('%', #{phone}, '%')</if>
|
||||
<if test="workUnit != null and workUnit != ''"> and work_unit like concat('%', #{workUnit}, '%')</if>
|
||||
<if test="intentStatus != null and intentStatus != ''"> and intent_status = #{intentStatus}</if>
|
||||
<if test="source != null and source != ''"> and source = #{source}</if>
|
||||
|
||||
Reference in New Issue
Block a user