275 lines
13 KiB
XML
275 lines
13 KiB
XML
|
|
<?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.bonus.gzrn.rnbmw.PersonComprehensive.dao.PersonComprehensiveDao">
|
||
|
|
|
||
|
|
<insert id="insertBasePersonBasicData">
|
||
|
|
replace into bm_worker
|
||
|
|
(`id_number`, `name`, `sex`, `ethnic`,`birthday`, `address`, `issueauthority`,
|
||
|
|
`sign_date`, `expiry_date`, `phone`, is_twins, is_active)
|
||
|
|
values
|
||
|
|
<foreach item="params" collection="list" separator=",">
|
||
|
|
(#{params.idNumber},#{params.name},#{params.sex},#{params.ethnic},
|
||
|
|
#{params.birthday},#{params.address},#{params.issueauthority},
|
||
|
|
#{params.signDate},#{params.expiryDate},#{params.phone},'0', 1)
|
||
|
|
</foreach>
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertBasePersonBankData">
|
||
|
|
replace into bm_worker_payroll(id_number,upload_time, BANK_CARD, BANK_NAME, ROLL_BANK_NAME,
|
||
|
|
bankAffiliated, upload_id, is_active)
|
||
|
|
values(#{idNumber}, now(), #{bankCard}, #{bankName},
|
||
|
|
#{wageBankSubBranchName}, #{bankAffiliated}, #{userId}, 1)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertPersonContractData">
|
||
|
|
replace into bm_worker_contract
|
||
|
|
(id,idCard,`name`,`post`, contractCode, laborContractType, role, contractValidDate, contractInvalidDate,
|
||
|
|
contractType, wageApprovedWay, wageCriterion, miurInsurance, whetherOnJob, endowmentInsurance
|
||
|
|
<if test="contractType == '纸质合同'">
|
||
|
|
,is_audit
|
||
|
|
</if>
|
||
|
|
)
|
||
|
|
values (#{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
|
||
|
|
#{contractInvalidDate},
|
||
|
|
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{isJob},
|
||
|
|
#{endowmentInsurance}
|
||
|
|
<if test="contractType == '纸质合同'">
|
||
|
|
,1
|
||
|
|
</if>
|
||
|
|
)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="replacePersonContractData">
|
||
|
|
insert into bm_worker_contract
|
||
|
|
(id,idCard,`name`,`post`, contractCode, laborContractType, role, contractValidDate, contractInvalidDate,
|
||
|
|
contractType, wageApprovedWay, wageCriterion, miurInsurance, whetherOnJob, endowmentInsurance
|
||
|
|
<if test="contractType == '纸质合同'">
|
||
|
|
,is_audit
|
||
|
|
</if>
|
||
|
|
)
|
||
|
|
select #{contractId}, #{idNumber},#{name}, #{postId},#{contractCode}, #{laborContractType}, #{role}, #{contractValidDate},
|
||
|
|
#{contractInvalidDate},
|
||
|
|
#{contractType}, #{wageApprovedWay}, #{wageCriterion}, #{miurInsurance}, #{whetherOnJob},
|
||
|
|
#{endowmentInsurance}
|
||
|
|
<if test="contractType == '纸质合同'">
|
||
|
|
,1
|
||
|
|
</if>
|
||
|
|
from dual
|
||
|
|
where NOT EXISTS (
|
||
|
|
select * from bm_worker_contract where id = #{contractId}
|
||
|
|
);
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertWageContractFile">
|
||
|
|
insert into bm_worker_witness(id_number,witness_path,witness_type, upload_date,
|
||
|
|
upload_time, upload_id, is_active
|
||
|
|
<if test="contractId != null and contractId !=''">
|
||
|
|
,contract_id
|
||
|
|
</if>)
|
||
|
|
values(#{idNumber},#{wageCardPath}, #{fileType}, CURDATE(), now(), #{userId}, 1
|
||
|
|
<if test="contractId != null and contractId !=''">
|
||
|
|
,#{contractId}
|
||
|
|
</if>)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertPersonEinData">
|
||
|
|
replace into bm_worker_record(ID_NUMBER,SUB_ID,ORG_ID,PROJECT_ID,TEAM_ID,POST_ID,EIN_DATE,EIN_TIME,
|
||
|
|
WHETHER_ONJOB, PE_STATUS, SAFETY_SCORE, TEAM_CAPTAIN, FOREMAN, FOREMAN_PHONE, FOREMAN_IDNUMBER,
|
||
|
|
PRINCIPAL_NAME, PRINCIPAL_IDNUMBER, PRINCIPAL_PHONE, ein_status,IS_ACTIVE)
|
||
|
|
values(#{idNumber},#{subId},#{orgId},#{proId},#{teamId},#{postId},CURDATE(),now(),
|
||
|
|
#{whetherOnjob}, #{peStatus}, #{safetyScore}, #{teamCaptain}, #{foreman}, #{foremanPhone},
|
||
|
|
#{foremanIdNumber}, #{principalName}, #{principalIdNumber}, #{principalPhone},1,1);
|
||
|
|
|
||
|
|
replace into bm_worker_attend_history(ID_NUMBER,NAME,ein_time,PROJECT_ID,SUB_ID,ORG_ID,POST_ID,TEAM_ID,IS_ACTIVE, is_short_term)
|
||
|
|
values(#{idNumber},#{name},now(),#{proId},#{subId},#{orgId},#{postId},#{teamId},1, 0)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertPersonFacePhoto">
|
||
|
|
replace into bm_worker_photo
|
||
|
|
(id_number, PHOTO_TYPE, PHOTO_PATH, upload_id
|
||
|
|
<if test="faceFeatureByte != null and faceFeatureByte !=''">
|
||
|
|
,FACE_FEATURES
|
||
|
|
</if>
|
||
|
|
,is_active)
|
||
|
|
values (#{idNumber}, 3, #{facePhoto}, #{userId}
|
||
|
|
<if test="faceFeatureByte != null and faceFeatureByte !=''">
|
||
|
|
,#{faceFeatureByte}
|
||
|
|
</if>
|
||
|
|
, 1)
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<insert id="insertAttendanceMachinePush">
|
||
|
|
insert into bm_attendance_machine_push(id_number, face_path, attendance_machine_id, operate)
|
||
|
|
values (#{idNumber}, #{facePhoto}, #{attendanceMachineId}, #{operate});
|
||
|
|
|
||
|
|
replace into bm_attendance_machine_push_history(id_number, attendance_machine_id) values
|
||
|
|
(#{idNumber}, #{attendanceMachineId})
|
||
|
|
</insert>
|
||
|
|
|
||
|
|
<update id="updatePerson">
|
||
|
|
update bm_worker set
|
||
|
|
`name` = #{name}, `sex` = #{sex}, `ethnic` = #{ethnic}, `birthday` = #{birthday},
|
||
|
|
`address` = #{address}, `issueauthority` = #{issueauthority},
|
||
|
|
`sign_date` = #{signDate}, `expiry_date` = #{expiryDate}, `phone` = #{phone}
|
||
|
|
where id_number = #{idNumber} and is_active = '1';
|
||
|
|
|
||
|
|
update bm_worker_record set WHETHER_ONJOB = #{whetherOnjob}, PE_STATUS = #{peStatus},
|
||
|
|
SAFETY_SCORE = #{safetyScore}, TEAM_CAPTAIN = #{teamCaptain}, FOREMAN = #{foreman},
|
||
|
|
FOREMAN_PHONE = #{foremanPhone}, FOREMAN_IDNUMBER = #{foremanIdNumber},
|
||
|
|
PRINCIPAL_NAME = #{principalName}, PRINCIPAL_IDNUMBER = #{principalIdNumber},
|
||
|
|
PRINCIPAL_PHONE = #{principalPhone}
|
||
|
|
where id_number = #{idNumber} and is_active = '1';
|
||
|
|
</update>
|
||
|
|
|
||
|
|
<update id="updatePersonBankData">
|
||
|
|
update bm_worker_payroll set
|
||
|
|
`bank_card` = #{bankCard},
|
||
|
|
`bank_name` = #{bankName},
|
||
|
|
`roll_bank_name` = #{wageBankSubBranchName},
|
||
|
|
bankAffiliated = #{bankAffiliated}
|
||
|
|
where id_number = #{idNumber} and is_active = '1'
|
||
|
|
</update>
|
||
|
|
|
||
|
|
<update id="updatePersonEinData">
|
||
|
|
update bm_worker_ein_history set sub_id = #{subId},
|
||
|
|
team_id = #{teamId}, post_id = #{postId}
|
||
|
|
where id_number = #{idNumber} and project_id = #{proId} and is_active = 1
|
||
|
|
</update>
|
||
|
|
|
||
|
|
<select id="selectPersonComprehensiveList" resultType="com.bonus.gzrn.rnbmw.PersonComprehensive.entity.PersonComprehensiveBean">
|
||
|
|
SELECT
|
||
|
|
bw.`name`,
|
||
|
|
bw.id_number AS idNumber,
|
||
|
|
bw.sex,
|
||
|
|
td.name AS postName,
|
||
|
|
bw.phone,
|
||
|
|
IF
|
||
|
|
( bwb.ID_NUMBER IS NOT NULL AND bwb.BANK_CARD IS NOT NULL AND LENGTH(bwb.BANK_CARD) > 0, '1', '0' ) AS isPayCard,
|
||
|
|
IF( bwc.is_active = 1, 1, 0 ) AS isContract,
|
||
|
|
bst.id AS teamId,
|
||
|
|
bst.name AS teamName,
|
||
|
|
bp.id AS proId,
|
||
|
|
bp.`name` AS proName
|
||
|
|
FROM
|
||
|
|
bm_worker bw
|
||
|
|
LEFT JOIN bm_worker_photo face ON face.ID_NUMBER = bw.id_number
|
||
|
|
AND face.PHOTO_TYPE = 3
|
||
|
|
AND face.IS_ACTIVE = 1
|
||
|
|
LEFT JOIN bm_worker_photo aoto ON aoto.ID_NUMBER = bw.id_number
|
||
|
|
AND aoto.PHOTO_TYPE = 5
|
||
|
|
AND aoto.IS_ACTIVE = 1
|
||
|
|
LEFT JOIN bm_worker_payroll bwb ON bwb.ID_NUMBER = bw.id_number
|
||
|
|
AND bwb.is_active = '1'
|
||
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number
|
||
|
|
AND bwc.is_active = '1'
|
||
|
|
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bw.id_number
|
||
|
|
AND bwcd.is_active = '1'
|
||
|
|
left join bm_worker_record bweh on bweh.id_number = bw.id_number
|
||
|
|
and bweh.is_active = '1'
|
||
|
|
LEFT JOIN bm_sub_team bst ON bst.id = bweh.team_id
|
||
|
|
LEFT JOIN bm_project bp ON bp.id = bweh.project_id
|
||
|
|
LEFT JOIN sys_dic_detail td ON td.id = bweh.post_id
|
||
|
|
WHERE
|
||
|
|
bw.IS_ACTIVE = 1
|
||
|
|
<if test="params.name != null and params.name != ''">
|
||
|
|
and locate (#{params.name},bw.name)
|
||
|
|
</if>
|
||
|
|
<if test="params.idNumber != null and params.idNumber != ''">
|
||
|
|
and locate (#{params.idNumber},bw.id_number)
|
||
|
|
</if>
|
||
|
|
<if test="params.proName != null and params.proName != ''">
|
||
|
|
and locate (#{params.proName},bp.name)
|
||
|
|
</if>
|
||
|
|
GROUP BY
|
||
|
|
bw.id_number
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getExistPerson" resultType="java.lang.String">
|
||
|
|
select distinct id_number from bm_worker where id_number = #{idNumber} and is_active = '1'
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getPersonById" resultType="com.bonus.gzrn.rnbmw.PersonComprehensive.entity.PersonComprehensiveBean">
|
||
|
|
SELECT
|
||
|
|
bw.`name`, bw.`id_number` AS idNumber, bwr.SUB_ID as subId, bw.phone,
|
||
|
|
bw.`sex`, bw.`birthday`, bw.`ethnic`, bw.`issueauthority`, bw.`address`,
|
||
|
|
bw.`sign_date` AS signDate, bw.`expiry_date` AS expiryDate,
|
||
|
|
bwr.PROJECT_ID as proId, bwr.TEAM_ID as teamId, bwr.POST_ID as postId,
|
||
|
|
bwr.WHETHER_ONJOB as whetherOnjob, bwr.PE_STATUS as peStatus, bwr.SAFETY_SCORE as safetyScore,
|
||
|
|
bwp.BANK_NAME as bankName, bwp.BANK_CARD as bankCard, bwp.ROLL_BANK_NAME as wageBankSubBranchName,
|
||
|
|
bwp.bankAffiliated, bwr.TEAM_CAPTAIN as teamCaptain, bwr.FOREMAN, bwr.FOREMAN_PHONE as foremanPhone,
|
||
|
|
bwr.FOREMAN_IDNUMBER as foremanIdNumber, bwr.PRINCIPAL_NAME as principalName,
|
||
|
|
bwr.PRINCIPAL_IDNUMBER as principalIdNumber, bwr.PRINCIPAL_PHONE as principalPhone,
|
||
|
|
GROUP_CONCAT(DISTINCT bank.witness_path) as wageCardPath,
|
||
|
|
GROUP_CONCAT(DISTINCT contract.witness_path) as contractPath, bwc.whetherOnJob as isJob,
|
||
|
|
bwc.contractCode as contractCode, bwc.id as contractId, bwc.laborContractType,
|
||
|
|
bwc.contractValidDate, bwc.contractInvalidDate, bwc.wageApprovedWay, bwc.wageCriterion,
|
||
|
|
bwc.role, bwc.contractType, bwc.miurInsurance, bwc.endowmentInsurance,face.PHOTO_PATH as facePhoto,
|
||
|
|
face.FACE_FEATURES AS faceFeatureByte
|
||
|
|
FROM `bm_worker` bw
|
||
|
|
left join bm_worker_record bwr on bwr.id_number = bw.id_number
|
||
|
|
and bwr.is_active = 1
|
||
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bw.id_number
|
||
|
|
AND bwp.is_active = '1'
|
||
|
|
LEFT JOIN bm_subcontractor bs ON bs.id = bwr.sub_id
|
||
|
|
LEFT JOIN bm_project bp ON bp.id = bwr.PROJECT_ID
|
||
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number AND bwc.is_active = '1'
|
||
|
|
LEFT JOIN bm_worker_witness bank ON bank.ID_NUMBER = bw.ID_NUMBER and bank.is_active = '1' and bank.witness_type = 2
|
||
|
|
LEFT JOIN bm_worker_witness contract ON contract.ID_NUMBER = bw.ID_NUMBER and contract.is_active = '1' and contract.witness_type = 1
|
||
|
|
LEFT JOIN bm_worker_photo face ON face.ID_NUMBER = bw.id_number
|
||
|
|
AND face.PHOTO_TYPE = 3
|
||
|
|
AND face.IS_ACTIVE = 1
|
||
|
|
WHERE bw.is_active = '1' AND bw.id_number = #{idNumber}
|
||
|
|
GROUP BY bw.id_number
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getBlackPerson" resultType="java.lang.String">
|
||
|
|
select distinct id_number from bm_blacklist_worker where id_number = #{idNumber}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getWorkerBank" resultType="java.lang.Integer">
|
||
|
|
select COUNT(1) from bm_worker_payroll where id_number = #{idNumber} and is_active = '1'
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getContractByIdNumber" resultType="com.bonus.gzrn.rnbmw.PersonComprehensive.entity.PersonComprehensiveBean">
|
||
|
|
SELECT
|
||
|
|
bwc.id AS contractId,
|
||
|
|
bwc.contractCode,
|
||
|
|
bwc.laborContractType,
|
||
|
|
bwc.contractValidDate,
|
||
|
|
bwc.contractInvalidDate,
|
||
|
|
bwc.wageApprovedWay,
|
||
|
|
bwc.wageCriterion,
|
||
|
|
bwc.role,
|
||
|
|
bwc.contractType,
|
||
|
|
bwc.miurInsurance,
|
||
|
|
bwc.whetherOnJob,
|
||
|
|
bwc.endowmentInsurance,
|
||
|
|
GROUP_CONCAT( bwcw.witness_path ) AS contractPath
|
||
|
|
FROM
|
||
|
|
`bm_worker` bw
|
||
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bw.id_number
|
||
|
|
AND bwc.is_active = '1'
|
||
|
|
LEFT JOIN bm_worker_contract_witness bwcw ON bwcw.contract_id = bwc.id
|
||
|
|
AND bwcw.is_active = '1'
|
||
|
|
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.id_card = bw.id_number
|
||
|
|
AND bwcd.is_active = '1'
|
||
|
|
WHERE
|
||
|
|
bw.id_number = #{idNumber} and bw.IS_ACTIVE = 1
|
||
|
|
GROUP BY
|
||
|
|
bw.id_number
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="selectOrgIdByProId" resultType="java.lang.String">
|
||
|
|
select org_id from bm_project where id = #{proId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="selectAttendanceMachineArr" resultType="java.lang.String">
|
||
|
|
select bam.id from bm_attendance_machine bam
|
||
|
|
left join bm_attendance_machine_pro_relation bampr on
|
||
|
|
bampr.attendance_machine_id = bam.id and bampr.is_active = 1
|
||
|
|
where bam.is_active = 1 and bampr.pro_id = #{proId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
|
||
|
|
</mapper>
|