refactor: 重命名 ruoyi-info-collection 模块为 ccdi-info-collection

- 重命名模块目录 ruoyi-info-collection -> ccdi-info-collection
- 更新所有 pom.xml 中的模块引用
- 更新 IDEA 配置文件 (compiler.xml, encodings.xml)
- Java 包名保持不变 (com.ruoyi.info.collection)
- 编译测试通过
This commit is contained in:
wkc
2026-02-26 10:43:10 +08:00
parent e497d8e62f
commit 621579f39f
169 changed files with 4 additions and 4 deletions

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiBaseStaffMapper">
<!-- 员工基本信息ResultMap用于列表查询不包含亲属 -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiBaseStaffVO" id="CcdiBaseStaffVOResult">
<id property="staffId" column="staff_id"/>
<result property="name" column="name"/>
<result property="deptId" column="dept_id"/>
<result property="deptName" column="dept_name"/>
<result property="idCard" column="id_card"/>
<result property="phone" column="phone"/>
<result property="hireDate" column="hire_date"/>
<result property="status" column="status"/>
<result property="createTime" column="create_time"/>
</resultMap>
<select id="selectBaseStaffPageWithDept" resultMap="CcdiBaseStaffVOResult">
SELECT
e.staff_id, e.name, e.dept_id, e.id_card, e.phone, e.hire_date, e.status, e.create_time,
d.dept_name
FROM ccdi_base_staff e
LEFT JOIN sys_dept d ON e.dept_id = d.dept_id
<where>
<if test="query.name != null and query.name != ''">
AND e.name LIKE CONCAT('%', #{query.name}, '%')
</if>
<if test="query.staffId != null">
AND e.staff_id = #{query.staffId}
</if>
<if test="query.deptId != null">
AND e.dept_id = #{query.deptId}
</if>
<if test="query.idCard != null and query.idCard != ''">
AND e.id_card LIKE CONCAT('%', #{query.idCard}, '%')
</if>
<if test="query.status != null and query.status != ''">
AND e.status = #{query.status}
</if>
</where>
ORDER BY e.create_time DESC
</select>
<!-- 批量插入或更新员工信息只更新非null字段 -->
<insert id="insertOrUpdateBatch" parameterType="java.util.List">
INSERT INTO ccdi_base_staff
(staff_id, name, dept_id, id_card, phone, hire_date, status,
create_time, create_by, update_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.staffId}, #{item.name}, #{item.deptId}, #{item.idCard},
#{item.phone}, #{item.hireDate}, #{item.status}, NOW(),
#{item.createBy}, #{item.updateBy}, NOW())
</foreach>
ON DUPLICATE KEY UPDATE
name = COALESCE(VALUES(name), name),
dept_id = COALESCE(VALUES(dept_id), dept_id),
phone = COALESCE(VALUES(phone), phone),
hire_date = COALESCE(VALUES(hire_date), hire_date),
status = COALESCE(VALUES(status), status),
update_by = COALESCE(VALUES(update_by), update_by),
update_time = NOW()
</insert>
<!-- 批量插入员工信息 -->
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO ccdi_base_staff
(staff_id, name, dept_id, id_card, phone, hire_date, status,
create_time, create_by, update_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.staffId}, #{item.name}, #{item.deptId}, #{item.idCard},
#{item.phone}, #{item.hireDate}, #{item.status}, NOW(),
#{item.createBy}, #{item.updateBy}, NOW())
</foreach>
</insert>
<!-- 查询员工选项(用于下拉选择框) -->
<!-- 支持按员工ID或姓名模糊搜索只返回在职员工 -->
<select id="selectStaffOptions" resultType="com.ruoyi.info.collection.domain.vo.CcdiBaseStaffOptionVO">
SELECT
e.staff_id,
e.name,
e.dept_id,
d.dept_name
FROM ccdi_base_staff e
LEFT JOIN sys_dept d ON e.dept_id = d.dept_id
<where>
e.status = '0'
<if test="query != null and query != ''">
AND (CAST(e.staff_id AS CHAR) LIKE CONCAT('%', #{query}, '%')
OR e.name LIKE CONCAT('%', #{query}, '%'))
</if>
</where>
ORDER BY e.staff_id
LIMIT 100
</select>
</mapper>

View File

@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiBizIntermediaryMapper">
<!-- 批量插入个人中介 -->
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO ccdi_biz_intermediary (
biz_id, person_type, person_sub_type, relation_type,
name, gender, id_type, person_id, mobile, wechat_no,
contact_address, company, social_credit_code, position,
related_num_id, data_source, remark,
created_by, updated_by, create_time, update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.bizId}, #{item.personType}, #{item.personSubType}, #{item.relationType},
#{item.name}, #{item.gender}, #{item.idType}, #{item.personId}, #{item.mobile}, #{item.wechatNo},
#{item.contactAddress}, #{item.company}, #{item.socialCreditCode}, #{item.position},
#{item.relatedNumId}, #{item.dataSource}, #{item.remark},
#{item.createdBy}, #{item.updatedBy}, #{item.createTime}, #{item.updateTime}
)
</foreach>
</insert>
<!-- 批量更新个人中介 -->
<update id="updateBatch" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
UPDATE ccdi_biz_intermediary
<set>
<if test="item.personType != null">person_type = #{item.personType},</if>
<if test="item.personSubType != null">person_sub_type = #{item.personSubType},</if>
<if test="item.relationType != null">relation_type = #{item.relationType},</if>
<if test="item.name != null and item.name != ''">name = #{item.name},</if>
<if test="item.gender != null">gender = #{item.gender},</if>
<if test="item.idType != null">id_type = #{item.idType},</if>
<if test="item.personId != null and item.personId != ''">person_id = #{item.personId},</if>
<if test="item.mobile != null">mobile = #{item.mobile},</if>
<if test="item.wechatNo != null">wechat_no = #{item.wechatNo},</if>
<if test="item.contactAddress != null">contact_address = #{item.contactAddress},</if>
<if test="item.company != null">company = #{item.company},</if>
<if test="item.socialCreditCode != null">social_credit_code = #{item.socialCreditCode},</if>
<if test="item.position != null">position = #{item.position},</if>
<if test="item.relatedNumId != null">related_num_id = #{item.relatedNumId},</if>
<if test="item.dataSource != null">data_source = #{item.dataSource},</if>
<if test="item.remark != null">remark = #{item.remark},</if>
<if test="item.updatedBy != null">updated_by = #{item.updatedBy},</if>
update_time = #{item.updateTime}
</set>
WHERE biz_id = #{item.bizId}
</foreach>
</update>
<!-- 批量导入个人中介数据(使用ON DUPLICATE KEY UPDATE) -->
<insert id="importPersonBatch">
INSERT INTO ccdi_biz_intermediary (
biz_id, person_type, person_sub_type, relation_type,
name, gender, id_type, person_id, mobile, wechat_no,
contact_address, company, social_credit_code, position,
related_num_id, data_source, remark,
created_by, updated_by, create_time, update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.bizId}, #{item.personType}, #{item.personSubType}, #{item.relationType},
#{item.name}, #{item.gender}, #{item.idType}, #{item.personId}, #{item.mobile}, #{item.wechatNo},
#{item.contactAddress}, #{item.company}, #{item.socialCreditCode}, #{item.position},
#{item.relatedNumId}, #{item.dataSource}, #{item.remark},
#{item.createdBy}, #{item.updatedBy}, #{item.createTime}, #{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
name = IF(VALUES(name) IS NOT NULL AND VALUES(name) != '', VALUES(name), name),
gender = IF(VALUES(gender) IS NOT NULL, VALUES(gender), gender),
id_type = IF(VALUES(id_type) IS NOT NULL AND VALUES(id_type) != '', VALUES(id_type), id_type),
person_id = IF(VALUES(person_id) IS NOT NULL AND VALUES(person_id) != '', VALUES(person_id), person_id),
mobile = IF(VALUES(mobile) IS NOT NULL AND VALUES(mobile) != '', VALUES(mobile), mobile),
wechat_no = IF(VALUES(wechat_no) IS NOT NULL AND VALUES(wechat_no) != '', VALUES(wechat_no), wechat_no),
contact_address = IF(VALUES(contact_address) IS NOT NULL AND VALUES(contact_address) != '', VALUES(contact_address), contact_address),
company = IF(VALUES(company) IS NOT NULL AND VALUES(company) != '', VALUES(company), company),
social_credit_code = IF(VALUES(social_credit_code) IS NOT NULL AND VALUES(social_credit_code) != '', VALUES(social_credit_code), social_credit_code),
position = IF(VALUES(position) IS NOT NULL AND VALUES(position) != '', VALUES(position), position),
related_num_id = IF(VALUES(related_num_id) IS NOT NULL AND VALUES(related_num_id) != '', VALUES(related_num_id), related_num_id),
relation_type = IF(VALUES(relation_type) IS NOT NULL AND VALUES(relation_type) != '', VALUES(relation_type), relation_type),
person_type = IF(VALUES(person_type) IS NOT NULL AND VALUES(person_type) != '', VALUES(person_type), person_type),
person_sub_type = IF(VALUES(person_sub_type) IS NOT NULL AND VALUES(person_sub_type) != '', VALUES(person_sub_type), person_sub_type),
data_source = IF(VALUES(data_source) IS NOT NULL AND VALUES(data_source) != '', VALUES(data_source), data_source),
remark = IF(VALUES(remark) IS NOT NULL, VALUES(remark), remark),
update_time = NOW(),
update_by = VALUES(updated_by)
</insert>
</mapper>

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiCustEnterpriseRelationMapper">
<!-- 信贷客户实体关联信息ResultMap -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiCustEnterpriseRelationVO" id="CcdiCustEnterpriseRelationVOResult">
<id property="id" column="id"/>
<result property="personId" column="person_id"/>
<result property="relationPersonPost" column="relation_person_post"/>
<result property="socialCreditCode" column="social_credit_code"/>
<result property="enterpriseName" column="enterprise_name"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="dataSource" column="data_source"/>
<result property="isEmployee" column="is_employee"/>
<result property="isEmpFamily" column="is_emp_family"/>
<result property="isCustomer" column="is_customer"/>
<result property="isCustFamily" column="is_cust_family"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createdBy" column="created_by"/>
<result property="updatedBy" column="updated_by"/>
</resultMap>
<!-- 分页查询信贷客户实体关联列表 -->
<select id="selectRelationPage" resultMap="CcdiCustEnterpriseRelationVOResult">
SELECT
id, person_id, relation_person_post,
social_credit_code, enterprise_name, status, remark,
data_source, is_employee, is_emp_family, is_customer,
is_cust_family, created_by, create_time, updated_by,
update_time
FROM ccdi_cust_enterprise_relation
<where>
<if test="query.personId != null and query.personId != ''">
AND person_id LIKE CONCAT('%', #{query.personId}, '%')
</if>
<if test="query.socialCreditCode != null and query.socialCreditCode != ''">
AND social_credit_code LIKE CONCAT('%', #{query.socialCreditCode}, '%')
</if>
<if test="query.enterpriseName != null and query.enterpriseName != ''">
AND enterprise_name LIKE CONCAT('%', #{query.enterpriseName}, '%')
</if>
<if test="query.status != null">
AND status = #{query.status}
</if>
</where>
ORDER BY create_time DESC
</select>
<!-- 查询信贷客户实体关联详情 -->
<select id="selectRelationById" resultMap="CcdiCustEnterpriseRelationVOResult">
SELECT
id, person_id, relation_person_post,
social_credit_code, enterprise_name, status, remark,
data_source, is_employee, is_emp_family, is_customer,
is_cust_family, created_by, create_time, updated_by,
update_time
FROM ccdi_cust_enterprise_relation
WHERE id = #{id}
</select>
<!-- 判断身份证号和统一社会信用代码的组合是否已存在 -->
<select id="existsByPersonIdAndSocialCreditCode" resultType="boolean">
SELECT COUNT(1) > 0
FROM ccdi_cust_enterprise_relation
WHERE person_id = #{personId}
AND social_credit_code = #{socialCreditCode}
</select>
<!-- 批量查询已存在的person_id + social_credit_code组合 -->
<!-- 优化导入性能一次性查询所有组合避免N+1查询问题 -->
<select id="batchExistsByCombinations" resultType="string">
SELECT CONCAT(person_id, '|', social_credit_code) AS combination
FROM ccdi_cust_enterprise_relation
WHERE CONCAT(person_id, '|', social_credit_code) IN
<foreach collection="combinations" item="combination" open="(" separator="," close=")">
#{combination}
</foreach>
</select>
<!-- 批量插入信贷客户实体关联数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_cust_enterprise_relation
(person_id, relation_person_post, social_credit_code, enterprise_name,
status, remark, data_source, is_employee, is_emp_family, is_customer, is_cust_family,
created_by, create_time, updated_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.personId}, #{item.relationPersonPost}, #{item.socialCreditCode}, #{item.enterpriseName},
#{item.status}, #{item.remark}, #{item.dataSource}, #{item.isEmployee}, #{item.isEmpFamily}, #{item.isCustomer}, #{item.isCustFamily},
#{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</insert>
</mapper>

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiCustFmyRelationMapper">
<resultMap id="CcdiCustFmyRelationVOResult" type="com.ruoyi.info.collection.domain.vo.CcdiCustFmyRelationVO">
<id property="id" column="id"/>
<result property="personId" column="person_id"/>
<result property="relationType" column="relation_type"/>
<result property="relationName" column="relation_name"/>
<result property="gender" column="gender"/>
<result property="birthDate" column="birth_date"/>
<result property="relationCertType" column="relation_cert_type"/>
<result property="relationCertNo" column="relation_cert_no"/>
<result property="mobilePhone1" column="mobile_phone1"/>
<result property="mobilePhone2" column="mobile_phone2"/>
<result property="wechatNo1" column="wechat_no1"/>
<result property="wechatNo2" column="wechat_no2"/>
<result property="wechatNo3" column="wechat_no3"/>
<result property="contactAddress" column="contact_address"/>
<result property="relationDesc" column="relation_desc"/>
<result property="effectiveDate" column="effective_date"/>
<result property="invalidDate" column="invalid_date"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="dataSource" column="data_source"/>
<result property="isEmpFamily" column="is_emp_family"/>
<result property="isCustFamily" column="is_cust_family"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createdBy" column="created_by"/>
<result property="updatedBy" column="updated_by"/>
</resultMap>
<!-- 分页查询信贷客户家庭关系 -->
<select id="selectRelationPage" resultMap="CcdiCustFmyRelationVOResult">
SELECT
r.id, r.person_id, r.relation_type, r.relation_name,
r.gender, r.birth_date, r.relation_cert_type, r.relation_cert_no,
r.mobile_phone1, r.mobile_phone2, r.wechat_no1, r.wechat_no2, r.wechat_no3,
r.contact_address, r.relation_desc, r.effective_date, r.invalid_date,
r.status, r.remark, r.data_source, r.is_emp_family, r.is_cust_family,
r.created_by, r.create_time, r.updated_by, r.update_time
FROM ccdi_cust_fmy_relation r
WHERE r.is_cust_family = 1
<if test="query.personId != null and query.personId != ''">
AND r.person_id LIKE CONCAT('%', #{query.personId}, '%')
</if>
<if test="query.relationType != null and query.relationType != ''">
AND r.relation_type = #{query.relationType}
</if>
<if test="query.relationName != null and query.relationName != ''">
AND r.relation_name LIKE CONCAT('%', #{query.relationName}, '%')
</if>
ORDER BY r.create_time DESC
</select>
<!-- 根据ID查询详情 -->
<select id="selectRelationById" resultMap="CcdiCustFmyRelationVOResult">
SELECT
r.id, r.person_id, r.relation_type, r.relation_name,
r.gender, r.birth_date, r.relation_cert_type, r.relation_cert_no,
r.mobile_phone1, r.mobile_phone2, r.wechat_no1, r.wechat_no2, r.wechat_no3,
r.contact_address, r.relation_desc, r.effective_date, r.invalid_date,
r.status, r.remark, r.data_source, r.is_emp_family, r.is_cust_family,
r.created_by, r.create_time, r.updated_by, r.update_time
FROM ccdi_cust_fmy_relation r
WHERE r.id = #{id} AND r.is_cust_family = 1 AND 1=1
</select>
<!-- 查询已存在的关系(用于导入校验) -->
<select id="selectExistingRelations" resultType="com.ruoyi.info.collection.domain.CcdiCustFmyRelation">
SELECT *
FROM ccdi_cust_fmy_relation
WHERE is_cust_family = 1
AND person_id = #{personId}
AND relation_type = #{relationType}
AND relation_cert_no = #{relationCertNo}
AND status = 1
LIMIT 1
</select>
<!-- 批量插入 -->
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO ccdi_cust_fmy_relation (
person_id, relation_type, relation_name, gender, birth_date,
relation_cert_type, relation_cert_no, mobile_phone1, mobile_phone2,
wechat_no1, wechat_no2, wechat_no3, contact_address, relation_desc,
status, effective_date, invalid_date, remark, data_source,
is_emp_family, is_cust_family, created_by, create_time
) VALUES
<foreach collection="relations" item="item" separator=",">
(
#{item.personId}, #{item.relationType}, #{item.relationName},
#{item.gender}, #{item.birthDate}, #{item.relationCertType},
#{item.relationCertNo}, #{item.mobilePhone1}, #{item.mobilePhone2},
#{item.wechatNo1}, #{item.wechatNo2}, #{item.wechatNo3},
#{item.contactAddress}, #{item.relationDesc}, #{item.status},
#{item.effectiveDate}, #{item.invalidDate}, #{item.remark},
#{item.dataSource}, #{item.isEmpFamily}, #{item.isCustFamily},
#{item.createdBy}, #{item.createTime}
)
</foreach>
</insert>
<!-- 根据证件号码查询关系数量 -->
<select id="countByCertNo" resultType="int">
SELECT COUNT(1)
FROM ccdi_cust_fmy_relation
WHERE is_cust_family = 1
AND relation_cert_no = #{relationCertNo}
AND status = 1
</select>
<!-- 批量查询已存在的关系组合(性能优化) -->
<select id="batchExistsByCombinations" resultType="string">
SELECT CONCAT(person_id, '|', relation_type, '|', relation_cert_no)
FROM ccdi_cust_fmy_relation
WHERE is_cust_family = 1
AND status = 1
AND CONCAT(person_id, '|', relation_type, '|', relation_cert_no) IN
<foreach collection="combinations" item="combo" open="(" separator="," close=")">
#{combo}
</foreach>
</select>
</mapper>

View File

@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiEnterpriseBaseInfoMapper">
<!-- 批量插入实体中介 -->
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO ccdi_enterprise_base_info (
social_credit_code, enterprise_name, enterprise_type, enterprise_nature,
industry_class, industry_name, establish_date, register_address,
legal_representative, legal_cert_type, legal_cert_no,
shareholder1, shareholder2, shareholder3, shareholder4, shareholder5,
status, risk_level, ent_source, data_source,
created_by, updated_by, create_time, update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.socialCreditCode}, #{item.enterpriseName}, #{item.enterpriseType}, #{item.enterpriseNature},
#{item.industryClass}, #{item.industryName}, #{item.establishDate}, #{item.registerAddress},
#{item.legalRepresentative}, #{item.legalCertType}, #{item.legalCertNo},
#{item.shareholder1}, #{item.shareholder2}, #{item.shareholder3}, #{item.shareholder4}, #{item.shareholder5},
#{item.status}, #{item.riskLevel}, #{item.entSource}, #{item.dataSource},
#{item.createdBy}, #{item.updatedBy}, #{item.createTime}, #{item.updateTime}
)
</foreach>
</insert>
<!-- 批量导入实体中介数据(存在则更新,不存在则插入) -->
<insert id="importEntityBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
INSERT INTO ccdi_enterprise_base_info (
social_credit_code, enterprise_name, enterprise_type, enterprise_nature,
industry_class, industry_name, establish_date, register_address,
legal_representative, legal_cert_type, legal_cert_no,
shareholder1, shareholder2, shareholder3, shareholder4, shareholder5,
status, risk_level, ent_source, data_source,
created_by, updated_by, create_time, update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.socialCreditCode}, #{item.enterpriseName}, #{item.enterpriseType}, #{item.enterpriseNature},
#{item.industryClass}, #{item.industryName}, #{item.establishDate}, #{item.registerAddress},
#{item.legalRepresentative}, #{item.legalCertType}, #{item.legalCertNo},
#{item.shareholder1}, #{item.shareholder2}, #{item.shareholder3}, #{item.shareholder4}, #{item.shareholder5},
#{item.status}, #{item.riskLevel}, #{item.entSource}, #{item.dataSource},
#{item.createdBy}, #{item.updatedBy}, #{item.createTime}, #{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
enterprise_name = VALUES(enterprise_name),
enterprise_type = VALUES(enterprise_type),
enterprise_nature = VALUES(enterprise_nature),
industry_class = VALUES(industry_class),
industry_name = VALUES(industry_name),
establish_date = VALUES(establish_date),
register_address = VALUES(register_address),
legal_representative = VALUES(legal_representative),
legal_cert_type = VALUES(legal_cert_type),
legal_cert_no = VALUES(legal_cert_no),
shareholder1 = VALUES(shareholder1),
shareholder2 = VALUES(shareholder2),
shareholder3 = VALUES(shareholder3),
shareholder4 = VALUES(shareholder4),
shareholder5 = VALUES(shareholder5),
status = VALUES(status),
risk_level = VALUES(risk_level),
ent_source = VALUES(ent_source),
data_source = VALUES(data_source),
updated_by = VALUES(updated_by),
update_time = VALUES(update_time)
</insert>
<!-- 批量更新实体中介 -->
<update id="updateBatch" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
UPDATE ccdi_enterprise_base_info
<set>
<if test="item.enterpriseName != null and item.enterpriseName != ''">enterprise_name = #{item.enterpriseName},</if>
<if test="item.enterpriseType != null">enterprise_type = #{item.enterpriseType},</if>
<if test="item.enterpriseNature != null">enterprise_nature = #{item.enterpriseNature},</if>
<if test="item.industryClass != null">industry_class = #{item.industryClass},</if>
<if test="item.industryName != null">industry_name = #{item.industryName},</if>
<if test="item.establishDate != null">establish_date = #{item.establishDate},</if>
<if test="item.registerAddress != null">register_address = #{item.registerAddress},</if>
<if test="item.legalRepresentative != null">legal_representative = #{item.legalRepresentative},</if>
<if test="item.legalCertType != null">legal_cert_type = #{item.legalCertType},</if>
<if test="item.legalCertNo != null">legal_cert_no = #{item.legalCertNo},</if>
<if test="item.shareholder1 != null">shareholder1 = #{item.shareholder1},</if>
<if test="item.shareholder2 != null">shareholder2 = #{item.shareholder2},</if>
<if test="item.shareholder3 != null">shareholder3 = #{item.shareholder3},</if>
<if test="item.shareholder4 != null">shareholder4 = #{item.shareholder4},</if>
<if test="item.shareholder5 != null">shareholder5 = #{item.shareholder5},</if>
<if test="item.status != null">status = #{item.status},</if>
<if test="item.riskLevel != null">risk_level = #{item.riskLevel},</if>
<if test="item.entSource != null">ent_source = #{item.entSource},</if>
<if test="item.dataSource != null">data_source = #{item.dataSource},</if>
<if test="item.updatedBy != null">updated_by = #{item.updatedBy},</if>
update_time = #{item.updateTime}
</set>
WHERE social_credit_code = #{item.socialCreditCode}
</foreach>
</update>
</mapper>

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiIntermediaryMapper">
<!--
中介黑名单联合查询
支持按中介类型筛选: 1=个人中介, 2=实体中介, null=全部
使用MyBatis Plus分页插件自动处理分页
-->
<select id="selectIntermediaryList" resultType="com.ruoyi.info.collection.domain.vo.CcdiIntermediaryVO">
SELECT * FROM (
<!-- 查询个人中介 -->
SELECT
biz_id as id,
name,
person_id as certificate_no,
'1' as intermediary_type,
person_type,
company,
data_source,
create_time,
update_time
FROM ccdi_biz_intermediary
UNION ALL
<!-- 查询实体中介 -->
SELECT
social_credit_code as id,
enterprise_name as name,
social_credit_code as certificate_no,
'2' as intermediary_type,
'实体' as person_type,
enterprise_name as company,
data_source,
create_time,
update_time
FROM ccdi_enterprise_base_info
WHERE risk_level = '1' AND ent_source = 'INTERMEDIARY'
) AS combined_result
<where>
<!-- 按中介类型筛选 -->
<if test="query.intermediaryType != null and query.intermediaryType != ''">
AND intermediary_type = #{query.intermediaryType}
</if>
<!-- 按姓名/机构名称模糊查询 -->
<if test="query.name != null and query.name != ''">
AND name LIKE CONCAT('%', #{query.name}, '%')
</if>
<!-- 按证件号/统一社会信用代码精确查询 -->
<if test="query.certificateNo != null and query.certificateNo != ''">
AND certificate_no = #{query.certificateNo}
</if>
</where>
ORDER BY update_time DESC
</select>
</mapper>

View File

@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiPurchaseTransactionMapper">
<!-- 采购交易信息ResultMap -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiPurchaseTransactionVO" id="CcdiPurchaseTransactionVOResult">
<id property="purchaseId" column="purchase_id"/>
<result property="purchaseCategory" column="purchase_category"/>
<result property="projectName" column="project_name"/>
<result property="subjectName" column="subject_name"/>
<result property="subjectDesc" column="subject_desc"/>
<result property="purchaseQty" column="purchase_qty"/>
<result property="budgetAmount" column="budget_amount"/>
<result property="bidAmount" column="bid_amount"/>
<result property="actualAmount" column="actual_amount"/>
<result property="contractAmount" column="contract_amount"/>
<result property="settlementAmount" column="settlement_amount"/>
<result property="purchaseMethod" column="purchase_method"/>
<result property="supplierName" column="supplier_name"/>
<result property="contactPerson" column="contact_person"/>
<result property="contactPhone" column="contact_phone"/>
<result property="supplierUscc" column="supplier_uscc"/>
<result property="supplierBankAccount" column="supplier_bank_account"/>
<result property="applyDate" column="apply_date"/>
<result property="planApproveDate" column="plan_approve_date"/>
<result property="announceDate" column="announce_date"/>
<result property="bidOpenDate" column="bid_open_date"/>
<result property="contractSignDate" column="contract_sign_date"/>
<result property="expectedDeliveryDate" column="expected_delivery_date"/>
<result property="actualDeliveryDate" column="actual_delivery_date"/>
<result property="acceptanceDate" column="acceptance_date"/>
<result property="settlementDate" column="settlement_date"/>
<result property="applicantId" column="applicant_id"/>
<result property="applicantName" column="applicant_name"/>
<result property="applyDepartment" column="apply_department"/>
<result property="purchaseLeaderId" column="purchase_leader_id"/>
<result property="purchaseLeaderName" column="purchase_leader_name"/>
<result property="purchaseDepartment" column="purchase_department"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createdBy" column="created_by"/>
<result property="updatedBy" column="updated_by"/>
</resultMap>
<!-- 分页查询采购交易列表 -->
<select id="selectTransactionPage" resultMap="CcdiPurchaseTransactionVOResult">
SELECT
purchase_id, purchase_category, project_name, subject_name, subject_desc,
purchase_qty, budget_amount, bid_amount, actual_amount, contract_amount, settlement_amount,
purchase_method, supplier_name, contact_person, contact_phone, supplier_uscc, supplier_bank_account,
apply_date, plan_approve_date, announce_date, bid_open_date, contract_sign_date,
expected_delivery_date, actual_delivery_date, acceptance_date, settlement_date,
applicant_id, applicant_name, apply_department, purchase_leader_id, purchase_leader_name, purchase_department,
created_by, create_time, updated_by, update_time
FROM ccdi_purchase_transaction
<where>
<if test="query.projectName != null and query.projectName != ''">
AND project_name LIKE CONCAT('%', #{query.projectName}, '%')
</if>
<if test="query.subjectName != null and query.subjectName != ''">
AND subject_name LIKE CONCAT('%', #{query.subjectName}, '%')
</if>
<if test="query.applicantName != null and query.applicantName != ''">
AND applicant_name LIKE CONCAT('%', #{query.applicantName}, '%')
</if>
<if test="query.applicantId != null and query.applicantId != ''">
AND applicant_id = #{query.applicantId}
</if>
<if test="query.applyDateStart != null">
AND apply_date &gt;= #{query.applyDateStart}
</if>
<if test="query.applyDateEnd != null">
AND apply_date &lt;= #{query.applyDateEnd}
</if>
</where>
ORDER BY create_time DESC
</select>
<!-- 查询采购交易详情 -->
<select id="selectTransactionById" resultMap="CcdiPurchaseTransactionVOResult">
SELECT
purchase_id, purchase_category, project_name, subject_name, subject_desc,
purchase_qty, budget_amount, bid_amount, actual_amount, contract_amount, settlement_amount,
purchase_method, supplier_name, contact_person, contact_phone, supplier_uscc, supplier_bank_account,
apply_date, plan_approve_date, announce_date, bid_open_date, contract_sign_date,
expected_delivery_date, actual_delivery_date, acceptance_date, settlement_date,
applicant_id, applicant_name, apply_department, purchase_leader_id, purchase_leader_name, purchase_department,
created_by, create_time, updated_by, update_time
FROM ccdi_purchase_transaction
WHERE purchase_id = #{purchaseId}
</select>
<!-- 批量插入采购交易数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_purchase_transaction
(purchase_id, purchase_category, project_name, subject_name, subject_desc,
purchase_qty, budget_amount, bid_amount, actual_amount, contract_amount, settlement_amount,
purchase_method, supplier_name, contact_person, contact_phone, supplier_uscc, supplier_bank_account,
apply_date, plan_approve_date, announce_date, bid_open_date, contract_sign_date,
expected_delivery_date, actual_delivery_date, acceptance_date, settlement_date,
applicant_id, applicant_name, apply_department, purchase_leader_id, purchase_leader_name, purchase_department,
created_by, create_time, updated_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.purchaseId}, #{item.purchaseCategory}, #{item.projectName}, #{item.subjectName}, #{item.subjectDesc},
#{item.purchaseQty}, #{item.budgetAmount}, #{item.bidAmount}, #{item.actualAmount}, #{item.contractAmount}, #{item.settlementAmount},
#{item.purchaseMethod}, #{item.supplierName}, #{item.contactPerson}, #{item.contactPhone}, #{item.supplierUscc}, #{item.supplierBankAccount},
#{item.applyDate}, #{item.planApproveDate}, #{item.announceDate}, #{item.bidOpenDate}, #{item.contractSignDate},
#{item.expectedDeliveryDate}, #{item.actualDeliveryDate}, #{item.acceptanceDate}, #{item.settlementDate},
#{item.applicantId}, #{item.applicantName}, #{item.applyDepartment}, #{item.purchaseLeaderId}, #{item.purchaseLeaderName}, #{item.purchaseDepartment},
#{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</insert>
<!-- 批量更新采购交易数据(先删除再插入) -->
<update id="insertOrUpdateBatch">
<foreach collection="list" item="item" separator=";">
DELETE FROM ccdi_purchase_transaction WHERE purchase_id = #{item.purchaseId};
INSERT INTO ccdi_purchase_transaction
(purchase_id, purchase_category, project_name, subject_name, subject_desc,
purchase_qty, budget_amount, bid_amount, actual_amount, contract_amount, settlement_amount,
purchase_method, supplier_name, contact_person, contact_phone, supplier_uscc, supplier_bank_account,
apply_date, plan_approve_date, announce_date, bid_open_date, contract_sign_date,
expected_delivery_date, actual_delivery_date, acceptance_date, settlement_date,
applicant_id, applicant_name, apply_department, purchase_leader_id, purchase_leader_name, purchase_department,
created_by, create_time, updated_by, update_time)
VALUES
(#{item.purchaseId}, #{item.purchaseCategory}, #{item.projectName}, #{item.subjectName}, #{item.subjectDesc},
#{item.purchaseQty}, #{item.budgetAmount}, #{item.bidAmount}, #{item.actualAmount}, #{item.contractAmount}, #{item.settlementAmount},
#{item.purchaseMethod}, #{item.supplierName}, #{item.contactPerson}, #{item.contactPhone}, #{item.supplierUscc}, #{item.supplierBankAccount},
#{item.applyDate}, #{item.planApproveDate}, #{item.announceDate}, #{item.bidOpenDate}, #{item.contractSignDate},
#{item.expectedDeliveryDate}, #{item.actualDeliveryDate}, #{item.acceptanceDate}, #{item.settlementDate},
#{item.applicantId}, #{item.applicantName}, #{item.applyDepartment}, #{item.purchaseLeaderId}, #{item.purchaseLeaderName}, #{item.purchaseDepartment},
#{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</update>
</mapper>

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiStaffEnterpriseRelationMapper">
<!-- 员工实体关系信息ResultMap -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiStaffEnterpriseRelationVO" id="CcdiStaffEnterpriseRelationVOResult">
<id property="id" column="id"/>
<result property="personId" column="person_id"/>
<result property="personName" column="person_name"/>
<result property="relationPersonPost" column="relation_person_post"/>
<result property="socialCreditCode" column="social_credit_code"/>
<result property="enterpriseName" column="enterprise_name"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="dataSource" column="data_source"/>
<result property="isEmployee" column="is_employee"/>
<result property="isEmpFamily" column="is_emp_family"/>
<result property="isCustomer" column="is_customer"/>
<result property="isCustFamily" column="is_cust_family"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createdBy" column="created_by"/>
<result property="updatedBy" column="updated_by"/>
</resultMap>
<!-- 分页查询员工实体关系列表 -->
<select id="selectRelationPage" resultMap="CcdiStaffEnterpriseRelationVOResult">
SELECT
ser.id, ser.person_id, bs.name as person_name, ser.relation_person_post,
ser.social_credit_code, ser.enterprise_name, ser.status, ser.remark,
ser.data_source, ser.is_employee, ser.is_emp_family, ser.is_customer,
ser.is_cust_family, ser.created_by, ser.create_time, ser.updated_by,
ser.update_time
FROM ccdi_staff_enterprise_relation ser
LEFT JOIN ccdi_base_staff bs ON ser.person_id = bs.id_card
<where>
<if test="query.personId != null and query.personId != ''">
AND ser.person_id LIKE CONCAT('%', #{query.personId}, '%')
</if>
<if test="query.socialCreditCode != null and query.socialCreditCode != ''">
AND ser.social_credit_code LIKE CONCAT('%', #{query.socialCreditCode}, '%')
</if>
<if test="query.enterpriseName != null and query.enterpriseName != ''">
AND ser.enterprise_name LIKE CONCAT('%', #{query.enterpriseName}, '%')
</if>
<if test="query.status != null">
AND ser.status = #{query.status}
</if>
</where>
ORDER BY ser.create_time DESC
</select>
<!-- 查询员工实体关系详情 -->
<select id="selectRelationById" resultMap="CcdiStaffEnterpriseRelationVOResult">
SELECT
ser.id, ser.person_id, bs.name as person_name, ser.relation_person_post,
ser.social_credit_code, ser.enterprise_name, ser.status, ser.remark,
ser.data_source, ser.is_employee, ser.is_emp_family, ser.is_customer,
ser.is_cust_family, ser.created_by, ser.create_time, ser.updated_by,
ser.update_time
FROM ccdi_staff_enterprise_relation ser
LEFT JOIN ccdi_base_staff bs ON ser.person_id = bs.id_card
WHERE ser.id = #{id}
</select>
<!-- 判断身份证号和统一社会信用代码的组合是否已存在 -->
<select id="existsByPersonIdAndSocialCreditCode" resultType="boolean">
SELECT COUNT(1) > 0
FROM ccdi_staff_enterprise_relation
WHERE person_id = #{personId}
AND social_credit_code = #{socialCreditCode}
</select>
<!-- 批量查询已存在的person_id + social_credit_code组合 -->
<!-- 优化导入性能一次性查询所有组合避免N+1查询问题 -->
<select id="batchExistsByCombinations" resultType="string">
SELECT CONCAT(person_id, '|', social_credit_code) AS combination
FROM ccdi_staff_enterprise_relation
WHERE CONCAT(person_id, '|', social_credit_code) IN
<foreach collection="combinations" item="combination" open="(" separator="," close=")">
#{combination}
</foreach>
</select>
<!-- 批量插入员工实体关系数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_staff_enterprise_relation
(person_id, relation_person_post, social_credit_code, enterprise_name,
status, remark, data_source, is_employee, is_emp_family, is_customer, is_cust_family,
created_by, create_time, updated_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.personId}, #{item.relationPersonPost}, #{item.socialCreditCode}, #{item.enterpriseName},
#{item.status}, #{item.remark}, #{item.dataSource}, #{item.isEmployee}, #{item.isEmpFamily}, #{item.isCustomer}, #{item.isCustFamily},
#{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</insert>
</mapper>

View File

@@ -0,0 +1,168 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiStaffFmyRelationMapper">
<!-- 员工亲属关系ResultMap -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiStaffFmyRelationVO" id="CcdiStaffFmyRelationVOResult">
<id property="id" column="id"/>
<result property="personId" column="person_id"/>
<result property="personName" column="person_name"/>
<result property="relationType" column="relation_type"/>
<result property="relationName" column="relation_name"/>
<result property="gender" column="gender"/>
<result property="birthDate" column="birth_date"/>
<result property="relationCertType" column="relation_cert_type"/>
<result property="relationCertNo" column="relation_cert_no"/>
<result property="mobilePhone1" column="mobile_phone1"/>
<result property="mobilePhone2" column="mobile_phone2"/>
<result property="wechatNo1" column="wechat_no1"/>
<result property="wechatNo2" column="wechat_no2"/>
<result property="wechatNo3" column="wechat_no3"/>
<result property="contactAddress" column="contact_address"/>
<result property="relationDesc" column="relation_desc"/>
<result property="effectiveDate" column="effective_date"/>
<result property="invalidDate" column="invalid_date"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="dataSource" column="data_source"/>
<result property="isEmpFamily" column="is_emp_family"/>
<result property="isCustFamily" column="is_cust_family"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createdBy" column="created_by"/>
<result property="updatedBy" column="updated_by"/>
</resultMap>
<!-- 分页查询员工亲属关系列表 -->
<select id="selectRelationPage" resultMap="CcdiStaffFmyRelationVOResult">
SELECT
r.id, r.person_id, s.name as person_name, r.relation_type, r.relation_name,
r.gender, r.birth_date, r.relation_cert_type, r.relation_cert_no,
r.mobile_phone1, r.mobile_phone2, r.wechat_no1, r.wechat_no2, r.wechat_no3,
r.contact_address, r.relation_desc, r.effective_date, r.invalid_date,
r.status, r.remark, r.data_source, r.is_emp_family, r.is_cust_family,
r.created_by, r.create_time, r.updated_by, r.update_time
FROM ccdi_staff_fmy_relation r
LEFT JOIN ccdi_base_staff s ON r.person_id = s.id_card
<where>
r.is_emp_family = 1
<if test="query.personId != null and query.personId != ''">
AND r.person_id = #{query.personId}
</if>
<if test="query.personName != null and query.personName != ''">
AND s.name LIKE CONCAT('%', #{query.personName}, '%')
</if>
<if test="query.relationType != null and query.relationType != ''">
AND r.relation_type = #{query.relationType}
</if>
<if test="query.relationName != null and query.relationName != ''">
AND r.relation_name LIKE CONCAT('%', #{query.relationName}, '%')
</if>
<if test="query.status != null">
AND r.status = #{query.status}
</if>
<if test="query.dataSource != null and query.dataSource != ''">
AND r.data_source = #{query.dataSource}
</if>
<if test="query.effectiveDateStart != null">
AND r.effective_date &gt;= #{query.effectiveDateStart}
</if>
<if test="query.effectiveDateEnd != null">
AND r.effective_date &lt;= #{query.effectiveDateEnd}
</if>
</where>
ORDER BY r.create_time DESC
</select>
<!-- 查询员工亲属关系详情 -->
<select id="selectRelationById" resultMap="CcdiStaffFmyRelationVOResult">
SELECT
r.id, r.person_id, s.name as person_name, r.relation_type, r.relation_name,
r.gender, r.birth_date, r.relation_cert_type, r.relation_cert_no,
r.mobile_phone1, r.mobile_phone2, r.wechat_no1, r.wechat_no2, r.wechat_no3,
r.contact_address, r.relation_desc, r.effective_date, r.invalid_date,
r.status, r.remark, r.data_source, r.is_emp_family, r.is_cust_family,
r.created_by, r.create_time, r.updated_by, r.update_time
FROM ccdi_staff_fmy_relation r
LEFT JOIN ccdi_base_staff s ON r.person_id = s.id_card
WHERE r.id = #{id}
</select>
<!-- 查询员工亲属关系列表(用于导出) -->
<select id="selectRelationListForExport" resultMap="CcdiStaffFmyRelationVOResult">
SELECT
r.id, r.person_id, s.name as person_name, r.relation_type, r.relation_name,
r.gender, r.birth_date, r.relation_cert_type, r.relation_cert_no,
r.mobile_phone1, r.mobile_phone2, r.wechat_no1, r.wechat_no2, r.wechat_no3,
r.contact_address, r.relation_desc, r.effective_date, r.invalid_date,
r.status, r.remark, r.data_source, r.is_emp_family, r.is_cust_family,
r.created_by, r.create_time, r.updated_by, r.update_time
FROM ccdi_staff_fmy_relation r
LEFT JOIN ccdi_base_staff s ON r.person_id = s.id_card
<where>
r.is_emp_family = 1
<if test="query.personId != null and query.personId != ''">
AND r.person_id = #{query.personId}
</if>
<if test="query.personName != null and query.personName != ''">
AND s.name LIKE CONCAT('%', #{query.personName}, '%')
</if>
<if test="query.relationType != null and query.relationType != ''">
AND r.relation_type = #{query.relationType}
</if>
<if test="query.relationName != null and query.relationName != ''">
AND r.relation_name LIKE CONCAT('%', #{query.relationName}, '%')
</if>
<if test="query.status != null">
AND r.status = #{query.status}
</if>
<if test="query.dataSource != null and query.dataSource != ''">
AND r.data_source = #{query.dataSource}
</if>
<if test="query.effectiveDateStart != null">
AND r.effective_date &gt;= #{query.effectiveDateStart}
</if>
<if test="query.effectiveDateEnd != null">
AND r.effective_date &lt;= #{query.effectiveDateEnd}
</if>
</where>
ORDER BY r.create_time DESC
</select>
<!-- 批量插入员工亲属关系数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_staff_fmy_relation
(person_id, relation_type, relation_name, gender, birth_date, relation_cert_type, relation_cert_no,
mobile_phone1, mobile_phone2, wechat_no1, wechat_no2, wechat_no3, contact_address, relation_desc,
effective_date, invalid_date, status, remark, data_source, is_emp_family, is_cust_family,
created_by, create_time, updated_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.personId}, #{item.relationType}, #{item.relationName}, #{item.gender},
#{item.birthDate}, #{item.relationCertType}, #{item.relationCertNo}, #{item.mobilePhone1},
#{item.mobilePhone2}, #{item.wechatNo1}, #{item.wechatNo2}, #{item.wechatNo3}, #{item.contactAddress},
#{item.relationDesc}, #{item.effectiveDate}, #{item.invalidDate}, #{item.status}, #{item.remark},
#{item.dataSource}, #{item.isEmpFamily}, #{item.isCustFamily}, #{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</insert>
<!-- 批量查询已存在的员工亲属关系(用于导入唯一性校验) -->
<select id="selectExistingRelations" resultType="com.ruoyi.info.collection.domain.CcdiStaffFmyRelation">
SELECT
id, person_id, relation_type, relation_name, gender, birth_date,
relation_cert_type, relation_cert_no
FROM ccdi_staff_fmy_relation
WHERE is_emp_family = 1
AND person_id IN
<foreach collection="personIds" item="personId" open="(" separator="," close=")">
#{personId}
</foreach>
AND relation_cert_no IN
<foreach collection="relationCertNos" item="relationCertNo" open="(" separator="," close=")">
#{relationCertNo}
</foreach>
</select>
</mapper>

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiStaffRecruitmentMapper">
<!-- 招聘信息ResultMap -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiStaffRecruitmentVO" id="CcdiStaffRecruitmentVOResult">
<id property="recruitId" column="recruit_id"/>
<result property="recruitName" column="recruit_name"/>
<result property="posName" column="pos_name"/>
<result property="posCategory" column="pos_category"/>
<result property="posDesc" column="pos_desc"/>
<result property="candName" column="cand_name"/>
<result property="candEdu" column="cand_edu"/>
<result property="candId" column="cand_id"/>
<result property="candSchool" column="cand_school"/>
<result property="candMajor" column="cand_major"/>
<result property="candGrad" column="cand_grad"/>
<result property="admitStatus" column="admit_status"/>
<result property="interviewerName1" column="interviewer_name1"/>
<result property="interviewerId1" column="interviewer_id1"/>
<result property="interviewerName2" column="interviewer_name2"/>
<result property="interviewerId2" column="interviewer_id2"/>
<result property="createdBy" column="created_by"/>
<result property="createTime" column="create_time"/>
<result property="updatedBy" column="updated_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<!-- 分页查询招聘信息列表 -->
<select id="selectRecruitmentPage" resultMap="CcdiStaffRecruitmentVOResult">
SELECT
recruit_id, recruit_name, pos_name, pos_category, pos_desc,
cand_name, cand_edu, cand_id, cand_school, cand_major, cand_grad,
admit_status, interviewer_name1, interviewer_id1, interviewer_name2, interviewer_id2,
created_by, create_time, updated_by, update_time
FROM ccdi_staff_recruitment
<where>
<if test="query.recruitName != null and query.recruitName != ''">
AND recruit_name LIKE CONCAT('%', #{query.recruitName}, '%')
</if>
<if test="query.posName != null and query.posName != ''">
AND pos_name LIKE CONCAT('%', #{query.posName}, '%')
</if>
<if test="query.candName != null and query.candName != ''">
AND cand_name LIKE CONCAT('%', #{query.candName}, '%')
</if>
<if test="query.candId != null and query.candId != ''">
AND cand_id = #{query.candId}
</if>
<if test="query.admitStatus != null and query.admitStatus != ''">
AND admit_status = #{query.admitStatus}
</if>
<if test="query.interviewerName != null and query.interviewerName != ''">
AND (interviewer_name1 LIKE CONCAT('%', #{query.interviewerName}, '%')
OR interviewer_name2 LIKE CONCAT('%', #{query.interviewerName}, '%'))
</if>
<if test="query.interviewerId != null and query.interviewerId != ''">
AND (interviewer_id1 = #{query.interviewerId}
OR interviewer_id2 = #{query.interviewerId})
</if>
</where>
ORDER BY create_time DESC
</select>
<!-- 查询招聘信息详情 -->
<select id="selectRecruitmentById" resultMap="CcdiStaffRecruitmentVOResult">
SELECT
recruit_id, recruit_name, pos_name, pos_category, pos_desc,
cand_name, cand_edu, cand_id, cand_school, cand_major, cand_grad,
admit_status, interviewer_name1, interviewer_id1, interviewer_name2, interviewer_id2,
created_by, create_time, updated_by, update_time
FROM ccdi_staff_recruitment
WHERE recruit_id = #{recruitId}
</select>
<!-- 批量插入招聘信息数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_staff_recruitment
(recruit_id, recruit_name, pos_name, pos_category, pos_desc,
cand_name, cand_edu, cand_id, cand_school, cand_major, cand_grad,
admit_status, interviewer_name1, interviewer_id1, interviewer_name2, interviewer_id2,
created_by, create_time, updated_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.recruitId}, #{item.recruitName}, #{item.posName}, #{item.posCategory}, #{item.posDesc},
#{item.candName}, #{item.candEdu}, #{item.candId}, #{item.candSchool}, #{item.candMajor}, #{item.candGrad},
#{item.admitStatus}, #{item.interviewerName1}, #{item.interviewerId1}, #{item.interviewerName2}, #{item.interviewerId2},
#{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</insert>
<!-- 批量更新招聘信息数据 -->
<update id="updateBatch">
<foreach collection="list" item="item" separator=";">
UPDATE ccdi_staff_recruitment
SET recruit_name = #{item.recruitName},
pos_name = #{item.posName},
pos_category = #{item.posCategory},
pos_desc = #{item.posDesc},
cand_name = #{item.candName},
cand_edu = #{item.candEdu},
cand_id = #{item.candId},
cand_school = #{item.candSchool},
cand_major = #{item.candMajor},
cand_grad = #{item.candGrad},
admit_status = #{item.admitStatus},
interviewer_name1 = #{item.interviewerName1},
interviewer_id1 = #{item.interviewerId1},
interviewer_name2 = #{item.interviewerName2},
interviewer_id2 = #{item.interviewerId2},
updated_by = #{item.updatedBy},
update_time = NOW()
WHERE recruit_id = #{item.recruitId}
</foreach>
</update>
</mapper>

View File

@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiStaffTransferMapper">
<!-- 员工调动记录ResultMap -->
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiStaffTransferVO" id="CcdiStaffTransferVOResult">
<id property="id" column="id"/>
<result property="staffId" column="staff_id"/>
<result property="staffName" column="staff_name"/>
<result property="transferType" column="transfer_type"/>
<result property="transferSubType" column="transfer_sub_type"/>
<result property="deptIdBefore" column="dept_id_before"/>
<result property="deptNameBefore" column="dept_name_before"/>
<result property="gradeBefore" column="grade_before"/>
<result property="positionBefore" column="position_before"/>
<result property="salaryLevelBefore" column="salary_level_before"/>
<result property="deptIdAfter" column="dept_id_after"/>
<result property="deptNameAfter" column="dept_name_after"/>
<result property="gradeAfter" column="grade_after"/>
<result property="positionAfter" column="position_after"/>
<result property="salaryLevelAfter" column="salary_level_after"/>
<result property="transferDate" column="transfer_date"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createdBy" column="created_by"/>
<result property="updatedBy" column="updated_by"/>
</resultMap>
<!-- 分页查询员工调动记录列表 -->
<select id="selectTransferPage" resultMap="CcdiStaffTransferVOResult">
SELECT
t.id, t.staff_id, s.name as staff_name, t.transfer_type, t.transfer_sub_type,
t.dept_id_before, t.dept_name_before, t.grade_before, t.position_before, t.salary_level_before,
t.dept_id_after, t.dept_name_after, t.grade_after, t.position_after, t.salary_level_after,
t.transfer_date, t.created_by, t.create_time, t.updated_by, t.update_time
FROM ccdi_staff_transfer t
LEFT JOIN ccdi_base_staff s ON t.staff_id = s.staff_id
<where>
<if test="query.staffId != null">
AND t.staff_id = #{query.staffId}
</if>
<if test="query.staffName != null and query.staffName != ''">
AND s.name LIKE CONCAT('%', #{query.staffName}, '%')
</if>
<if test="query.transferType != null and query.transferType != ''">
AND t.transfer_type = #{query.transferType}
</if>
<if test="query.transferSubType != null and query.transferSubType != ''">
AND t.transfer_sub_type = #{query.transferSubType}
</if>
<if test="query.deptIdBefore != null">
AND t.dept_id_before = #{query.deptIdBefore}
</if>
<if test="query.deptIdAfter != null">
AND t.dept_id_after = #{query.deptIdAfter}
</if>
<if test="query.transferDateStart != null">
AND t.transfer_date &gt;= #{query.transferDateStart}
</if>
<if test="query.transferDateEnd != null">
AND t.transfer_date &lt;= #{query.transferDateEnd}
</if>
</where>
ORDER BY t.transfer_date DESC, t.create_time DESC
</select>
<!-- 查询员工调动记录详情 -->
<select id="selectTransferById" resultMap="CcdiStaffTransferVOResult">
SELECT
t.id, t.staff_id, s.name as staff_name, t.transfer_type, t.transfer_sub_type,
t.dept_id_before, t.dept_name_before, t.grade_before, t.position_before, t.salary_level_before,
t.dept_id_after, t.dept_name_after, t.grade_after, t.position_after, t.salary_level_after,
t.transfer_date, t.created_by, t.create_time, t.updated_by, t.update_time
FROM ccdi_staff_transfer t
LEFT JOIN ccdi_base_staff s ON t.staff_id = s.staff_id
WHERE t.id = #{id}
</select>
<!-- 查询员工调动记录列表(用于导出) -->
<select id="selectTransferListForExport" resultMap="CcdiStaffTransferVOResult">
SELECT
t.id, t.staff_id, s.name as staff_name, t.transfer_type, t.transfer_sub_type,
t.dept_id_before, t.dept_name_before, t.grade_before, t.position_before, t.salary_level_before,
t.dept_id_after, t.dept_name_after, t.grade_after, t.position_after, t.salary_level_after,
t.transfer_date, t.created_by, t.create_time, t.updated_by, t.update_time
FROM ccdi_staff_transfer t
LEFT JOIN ccdi_base_staff s ON t.staff_id = s.staff_id
<where>
<if test="query.staffId != null">
AND t.staff_id = #{query.staffId}
</if>
<if test="query.staffName != null and query.staffName != ''">
AND s.name LIKE CONCAT('%', #{query.staffName}, '%')
</if>
<if test="query.transferType != null and query.transferType != ''">
AND t.transfer_type = #{query.transferType}
</if>
<if test="query.transferSubType != null and query.transferSubType != ''">
AND t.transfer_sub_type = #{query.transferSubType}
</if>
<if test="query.deptIdBefore != null">
AND t.dept_id_before = #{query.deptIdBefore}
</if>
<if test="query.deptIdAfter != null">
AND t.dept_id_after = #{query.deptIdAfter}
</if>
<if test="query.transferDateStart != null">
AND t.transfer_date &gt;= #{query.transferDateStart}
</if>
<if test="query.transferDateEnd != null">
AND t.transfer_date &lt;= #{query.transferDateEnd}
</if>
</where>
ORDER BY t.transfer_date DESC, t.create_time DESC
</select>
<!-- 批量插入员工调动记录数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_staff_transfer
(staff_id, transfer_type, transfer_sub_type, dept_id_before, dept_name_before, grade_before,
position_before, salary_level_before, dept_id_after, dept_name_after, grade_after,
position_after, salary_level_after, transfer_date, created_by, create_time, updated_by, update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.staffId}, #{item.transferType}, #{item.transferSubType}, #{item.deptIdBefore},
#{item.deptNameBefore}, #{item.gradeBefore}, #{item.positionBefore}, #{item.salaryLevelBefore},
#{item.deptIdAfter}, #{item.deptNameAfter}, #{item.gradeAfter}, #{item.positionAfter},
#{item.salaryLevelAfter}, #{item.transferDate}, #{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
</foreach>
</insert>
<!-- 查询单条记录是否存在(根据唯一键) -->
<select id="checkExists" resultType="com.ruoyi.info.collection.domain.CcdiStaffTransfer">
SELECT
id, staff_id, dept_id_before, dept_id_after, transfer_date
FROM ccdi_staff_transfer
WHERE staff_id = #{key.staffId}
AND dept_id_before = #{key.deptIdBefore}
AND dept_id_after = #{key.deptIdAfter}
AND transfer_date = #{key.transferDate}
LIMIT 1
</select>
<!-- 查询单条记录是否存在排除指定ID -->
<select id="checkExistsExcludeId" resultType="com.ruoyi.info.collection.domain.CcdiStaffTransfer">
SELECT
id, staff_id, dept_id_before, dept_id_after, transfer_date
FROM ccdi_staff_transfer
WHERE staff_id = #{key.staffId}
AND dept_id_before = #{key.deptIdBefore}
AND dept_id_after = #{key.deptIdAfter}
AND transfer_date = #{key.transferDate}
AND id != #{excludeId}
LIMIT 1
</select>
</mapper>