TInsuranceWarnMapper.xml 5.72 KB
Newer Older
1 2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
3 4
		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
<mapper namespace="com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TInsuranceWarnMapper">

	<resultMap id="BaseResultMap" type="com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert">
		<id property="id" column="ID" jdbcType="VARCHAR"/>
		<result property="empName" column="EMP_NAME" jdbcType="VARCHAR"/>
		<result property="empIdcardNo" column="EMP_IDCARD_NO" jdbcType="VARCHAR"/>
		<result property="deptNo" column="DEPT_NO" jdbcType="VARCHAR"/>
		<result property="post" column="POST" jdbcType="VARCHAR"/>
		<result property="insuranceCompanyName" column="INSURANCE_COMPANY_NAME" jdbcType="VARCHAR"/>
		<result property="insuranceTypeName" column="INSURANCE_TYPE_NAME" jdbcType="VARCHAR"/>
		<result property="buyStandard" column="BUY_STANDARD" jdbcType="VARCHAR"/>
		<result property="medicalQuota" column="MEDICAL_QUOTA" jdbcType="VARCHAR"/>
		<result property="dieDisableQuota" column="DIE_DISABLE_QUOTA" jdbcType="VARCHAR"/>
		<result property="policyNo" column="POLICY_NO" jdbcType="VARCHAR"/>
		<result property="policyStart" column="POLICY_START" jdbcType="DATE"/>
		<result property="policyEnd" column="POLICY_END" jdbcType="DATE"/>
		<result property="policyEffect" column="POLICY_EFFECT" jdbcType="DATE"/>
		<result property="settleMonth" column="SETTLE_MONTH" jdbcType="VARCHAR"/>
		<result property="invoiceNo" column="INVOICE_NO" jdbcType="VARCHAR"/>
		<result property="insuranceProvinceName" column="INSURANCE_PROVINCE_NAME" jdbcType="VARCHAR"/>
		<result property="insuranceCityName" column="INSURANCE_CITY_NAME" jdbcType="VARCHAR"/>
		<result property="insuranceHandleProvinceName" column="INSURANCE_HANDLE_PROVINCE_NAME" jdbcType="VARCHAR"/>
		<result property="insuranceHandleCityName" column="INSURANCE_HANDLE_CITY_NAME" jdbcType="VARCHAR"/>
		<result property="settleType" column="SETTLE_TYPE" jdbcType="TINYINT"/>
		<result property="actualPremium" column="ACTUAL_PREMIUM" jdbcType="DECIMAL"/>
		<result property="estimatePremium" column="ESTIMATE_PREMIUM" jdbcType="DECIMAL"/>
		<result property="isEffect" column="IS_EFFECT" jdbcType="TINYINT"/>
		<result property="isOverdue" column="IS_OVERDUE" jdbcType="TINYINT"/>
		<result property="remark" column="REMARK" jdbcType="VARCHAR"/>
		<result property="createBy" column="CREATE_BY" jdbcType="VARCHAR"/>
		<result property="createName" column="CREATE_NAME" jdbcType="VARCHAR"/>
		<result property="createTime" column="CREATE_TIME" jdbcType="TIMESTAMP"/>
		<result property="updateBy" column="UPDATE_BY" jdbcType="VARCHAR"/>
		<result property="updateTime" column="UPDATE_TIME" jdbcType="TIMESTAMP"/>
		<result property="deleteFlag" column="DELETE_FLAG" jdbcType="TINYINT"/>
		<result property="createUserDeptName" column="CREATE_USER_DEPT_NAME" jdbcType="VARCHAR"/>
		<result property="deptName" column="DEPT_NAME" jdbcType="VARCHAR"/>
		<result property="unitName" column="UNIT_NAME" jdbcType="VARCHAR"/>
		<result property="unitNo" column="UNIT_NO" jdbcType="VARCHAR"/>
		<result property="expireIgnoreFlag" column="EXPIRE_IGNORE_FLAG" jdbcType="VARCHAR"/>
		<result property="expireRemark" column="EXPIRE_REMARK" jdbcType="VARCHAR"/>
	</resultMap>


	<select id="selectInsuranceAlert"  resultMap="BaseResultMap">
		SELECT
			a.ID,
			a.EMP_NAME,
			a.EMP_IDCARD_NO,
			a.DEPT_NO,
55
			a.DEPT_NAME,
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
			a.POST,
			a.INSURANCE_COMPANY_NAME,
			a.INSURANCE_TYPE_NAME,
			a.INSURANCE_CITY_NAME,
			a.INSURANCE_HANDLE_CITY_NAME,
			a.INSURANCE_HANDLE_PROVINCE_NAME,
			a.INSURANCE_PROVINCE_NAME,
			a.BUY_STANDARD,
			a.UNIT_NAME,
			a.UNIT_NO,
			a.SETTLE_TYPE,
			a.POLICY_EFFECT,
			a.EXPIRE_REMARK,
			a.EXPIRE_IGNORE_FLAG,
			a.SETTLE_MONTH,
			a.POLICY_START,
			a.POLICY_END,
			a.ACTUAL_PREMIUM,
			a.ESTIMATE_PREMIUM,
			a.INVOICE_NO,
			a.MEDICAL_QUOTA,
			a.DIE_DISABLE_QUOTA,
			a.DEPT_ID,
			a.POLICY_NO,
80
			IF( a.POLICY_END >= curdate(), 0, 1 ) IS_OVERDUE,
81 82 83 84 85 86 87 88 89 90 91
			a.REMARK,
			a.CREATE_BY,
			a.DELETE_FLAG,
			a.CREATE_NAME,
			a.CREATE_TIME,
			a.UPDATE_BY,
			a.UPDATE_TIME,
			a.IS_EFFECT,
			a.CREATE_USER_DEPT_NAME
		FROM
			t_insurance_detail a
92
				INNER JOIN (
93
				SELECT
94 95 96
					h.endTime,
					max( l.POLICY_START ) POLICY_START,
					l.EMP_IDCARD_NO
97 98 99
				FROM
					(
						SELECT
huyuchen's avatar
huyuchen committed
100
							b.EMP_IDCARD_NO,
101 102 103 104
							max( b.POLICY_END ) endTime
						FROM
							t_insurance_detail b
						WHERE
105 106
							b.POLICY_START BETWEEN date_sub( date_add( curdate(), INTERVAL 1 DAY ), INTERVAL 1 YEAR )
								AND curdate()
107
						  AND b.IS_EFFECT = 0
108
						  AND b.DELETE_FLAG = '0'
109 110 111 112 113 114 115 116
						  AND NOT EXISTS (
								SELECT
									1
								FROM
									t_insurance_detail ea
								WHERE
									ea.POLICY_START >= date_sub( date_add( curdate(), INTERVAL 1 DAY ), INTERVAL 1 YEAR )
								  AND ea.IS_EFFECT = 0
117
								  AND ea.DELETE_FLAG = '0'
118 119
								  AND ea.POLICY_END >= date_add( curdate(), INTERVAL 1 MONTH )
								  AND ea.EMP_IDCARD_NO = b.EMP_IDCARD_NO
120 121
								  AND ea.INSURANCE_COMPANY_NAME = b.INSURANCE_COMPANY_NAME
								  AND ea.INSURANCE_TYPE_NAME = b.INSURANCE_TYPE_NAME
122 123 124 125 126 127
							)
						GROUP BY
							b.EMP_IDCARD_NO,
							b.INSURANCE_COMPANY_NAME,
							b.INSURANCE_TYPE_NAME
					) h
huyuchen's avatar
huyuchen committed
128
						INNER JOIN t_insurance_detail l ON h.EMP_IDCARD_NO = l.EMP_IDCARD_NO
129
						AND l.DELETE_FLAG = '0'
130
						AND h.endTime = l.POLICY_END
131 132
						AND l.POLICY_START BETWEEN date_sub( date_add( curdate(), INTERVAL 1 DAY ), INTERVAL 1 YEAR )
															   AND curdate()
133 134
				WHERE
					l.EXPIRE_IGNORE_FLAG = '1'
135 136 137 138 139 140 141 142 143
				GROUP BY
					l.EMP_IDCARD_NO,
					l.INSURANCE_COMPANY_NAME,
					l.INSURANCE_TYPE_NAME,
					l.POLICY_END
			) ll ON ll.EMP_IDCARD_NO = a.EMP_IDCARD_NO
				AND ll.POLICY_START = a.POLICY_START
				AND ll.endTime = a.POLICY_END
		where a.DELETE_FLAG = '0'
144 145
	</select>
</mapper>