d.INVOICE_TITLE_SALARY as INVOICE_TITLE, -- 需要根据项目关联的实际封面抬头调整
if(DATE_FORMAT(now(),'%m')='01',5000,ifnull(a.COST_REDUCTION,ifnull(z.COST_REDUCTION,0)) + 5000) as COST_REDUCTION,
ifnull(a.TAX_MONTH,ifnull(z.TAX_MONTH,DATE_FORMAT(now(),'%Y%m'))) as TAX_MONTH,
0 as COST_REDUCTION,
'200001' as TAX_MONTH,
'1' as DATA_SOURCE, -- 1:项目
NULL as IMPORTER_NAME,
0 as DELETE_FLAG,
...
...
@@ -263,10 +275,9 @@
FROM mvp_archives.t_employee_project ep
left join mvp_archives.t_employee_info e on e.EMP_IDCARD=ep.EMP_IDCARD
left join mvp_archives.t_settle_domain d on d.id=ep.DEPT_ID
LEFT JOIN mvp_salary.t_salary_account a on a.EMP_IDCARD = ep.EMP_IDCARD and a.DELETE_FLAG = 0 and a.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and a.SETTLEMENT_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN ${tableNameOrLastTable} z on z.EMP_IDCARD = ep.EMP_IDCARD and z.DELETE_FLAG = 0 and z.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and z.SETTLE_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
WHERE ep.PROJECT_STATUS IN (0, 1) -- 0草稿、1已审核
AND ep.DELETE_FLAG = '0' AND ep.PROJECT_STATUS = 0 and d.INVOICE_TITLE_SALARY is not null and d.INVOICE_TITLE_SALARY != ''
WHERE ep.PROJECT_STATUS =0 -- 0草稿、1已审核
AND ep.DELETE_FLAG = '0' and d.INVOICE_TITLE_SALARY is not null and d.INVOICE_TITLE_SALARY != ''
GROUP BY ep.EMP_IDCARD,d.INVOICE_TITLE_SALARY
union ALL
SELECT REPLACE(UUID(),'-','') ID,id.EMP_NAME,
id.EMP_IDCARD_NO as EMP_IDCARD,
...
...
@@ -276,16 +287,14 @@
id.DEPT_NO,
DATE_FORMAT(now(),'%Y%m') as SETTLE_MONTH,
d.INVOICE_TITLE_SALARY as INVOICE_TITLE, -- 需要根据项目关联的实际封面抬头调整
if(DATE_FORMAT(now(),'%m')='01',5000,ifnull(a.COST_REDUCTION,ifnull(z.COST_REDUCTION,0)) + 5000) as COST_REDUCTION,
ifnull(a.TAX_MONTH,ifnull(z.TAX_MONTH,DATE_FORMAT(now(),'%Y%m'))) as TAX_MONTH,
0 as COST_REDUCTION,
'200001' as TAX_MONTH,
'2' as DATA_SOURCE, -- 2:商险
NULL as IMPORTER_NAME,
0 as DELETE_FLAG,
NOW() as CREATE_TIME
FROM mvp_insurances.t_insurance_detail id
left join mvp_archives.t_settle_domain d on d.id=id.DEPT_ID
LEFT JOIN mvp_salary.t_salary_account a on a.EMP_IDCARD = id.EMP_IDCARD_NO and a.DELETE_FLAG = 0 and a.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and a.SETTLEMENT_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN ${tableNameOrLastTable} z on z.EMP_IDCARD = id.EMP_IDCARD_NO and z.DELETE_FLAG = 0 and z.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and z.SETTLE_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
WHERE id.BUY_HANDLE_STATUS = 3 -- 已投保
AND id.IS_EFFECT = 0 -- 有效
AND id.IS_OVERDUE = 0 -- 未过期
...
...
@@ -294,20 +303,24 @@
AND NOT EXISTS (
SELECT 1
FROM mvp_archives.t_employee_project ep2
WHERE ep2.EMP_IDCARD = id.EMP_IDCARD_NO
AND ep2.PROJECT_STATUS IN (0, 1) AND ep2.DELETE_FLAG = '0'
AND ep2.PROJECT_STATUS = 0
left join mvp_archives.t_settle_domain d2 on d2.id=ep2.DEPT_ID
WHERE ep2.EMP_IDCARD = id.EMP_IDCARD_NO and d2.INVOICE_TITLE_SALARY=d.INVOICE_TITLE_SALARY
AND ep2.PROJECT_STATUS =0 AND ep2.DELETE_FLAG = '0'
d.INVOICE_TITLE_SALARY as INVOICE_TITLE, -- 需要根据项目关联的实际封面抬头调整
if(DATE_FORMAT(now(),'%m')='01',5000,ifnull(a.COST_REDUCTION,ifnull(z.COST_REDUCTION,0)) + 5000) as COST_REDUCTION,
ifnull(a.TAX_MONTH,ifnull(z.TAX_MONTH,DATE_FORMAT(now(),'%Y%m'))) as TAX_MONTH,
0 as COST_REDUCTION,
'200001' as TAX_MONTH,
'1' as DATA_SOURCE, -- 1:项目
NULL as IMPORTER_NAME,
if(ac.id is not null,2,0) as DELETE_FLAG,
0 as DELETE_FLAG,
NOW() as CREATE_TIME
FROM mvp_archives.t_employee_project ep
left join mvp_archives.t_employee_info e on e.EMP_IDCARD=ep.EMP_IDCARD
left join mvp_archives.t_settle_domain d on d.id=ep.DEPT_ID
LEFT JOIN mvp_salary.t_salary_account a on a.EMP_IDCARD = ep.EMP_IDCARD and a.DELETE_FLAG = 0 and a.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and a.SETTLEMENT_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN ${tableNameOrLastTable} z on z.EMP_IDCARD = ep.EMP_IDCARD and z.DELETE_FLAG = 0 and z.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and z.SETTLE_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN mvp_salary.t_salary_account ac on ac.EMP_IDCARD = ep.EMP_IDCARD and ac.DELETE_FLAG = 0 and ac.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and ac.SETTLEMENT_MONTH = DATE_FORMAT(now(),'%Y%m')
LEFT JOIN ${tableName} zc on zc.EMP_IDCARD = ep.EMP_IDCARD and zc.DELETE_FLAG in (0,2) and zc.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and zc.SETTLE_MONTH = DATE_FORMAT(now(),'%Y%m')
WHERE ep.PROJECT_STATUS IN (0, 1) -- 0草稿、1已审核
AND ep.DELETE_FLAG = '0' AND ep.PROJECT_STATUS = 0
AND DATE_FORMAT(ep.UPDATE_TIME,'%Y%m%d') = DATE_FORMAT(NOW(), '%Y%m%d')
AND zc.id is null and d.INVOICE_TITLE_SALARY is not null and d.INVOICE_TITLE_SALARY != ''
WHERE ep.PROJECT_STATUS =0 -- 0草稿、1已审核
AND ep.DELETE_FLAG = '0' and d.INVOICE_TITLE_SALARY is not null and d.INVOICE_TITLE_SALARY != ''
AND DATE_FORMAT(ep.UPDATE_TIME,'%Y%m%d') = DATE_FORMAT(NOW(), '%Y%m%d')
GROUP BY ep.EMP_IDCARD,d.INVOICE_TITLE_SALARY
union ALL
SELECT REPLACE(UUID(),'-','') ID,id.EMP_NAME,
id.EMP_IDCARD_NO as EMP_IDCARD,
...
...
@@ -341,18 +352,14 @@
id.DEPT_NO,
DATE_FORMAT(now(),'%Y%m') as SETTLE_MONTH,
d.INVOICE_TITLE_SALARY as INVOICE_TITLE, -- 需要根据项目关联的实际封面抬头调整
if(DATE_FORMAT(now(),'%m')='01',5000,ifnull(a.COST_REDUCTION,ifnull(z.COST_REDUCTION,0)) + 5000) as COST_REDUCTION,
ifnull(a.TAX_MONTH,ifnull(z.TAX_MONTH,DATE_FORMAT(now(),'%Y%m'))) as TAX_MONTH,
0 as COST_REDUCTION,
'200001' as TAX_MONTH,
'2' as DATA_SOURCE, -- 2:商险
NULL as IMPORTER_NAME,
if(ac.id is not null,2,0) as DELETE_FLAG,
0 as DELETE_FLAG,
NOW() as CREATE_TIME
FROM mvp_insurances.t_insurance_detail id
left join mvp_archives.t_settle_domain d on d.id=id.DEPT_ID
LEFT JOIN mvp_salary.t_salary_account a on a.EMP_IDCARD = id.EMP_IDCARD_NO and a.DELETE_FLAG = 0 and a.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and a.SETTLEMENT_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN ${tableNameOrLastTable} z on z.EMP_IDCARD = id.EMP_IDCARD_NO and z.DELETE_FLAG = 0 and z.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and z.SETTLE_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN mvp_salary.t_salary_account ac on ac.EMP_IDCARD = id.EMP_IDCARD_NO and ac.DELETE_FLAG = 0 and ac.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and ac.SETTLEMENT_MONTH = DATE_FORMAT(now(),'%Y%m')
LEFT JOIN ${tableName} zc on zc.EMP_IDCARD = id.EMP_IDCARD_NO and zc.DELETE_FLAG in (0,2) and zc.INVOICE_TITLE=d.INVOICE_TITLE_SALARY and zc.SETTLE_MONTH = DATE_FORMAT(now(),'%Y%m')
WHERE id.BUY_HANDLE_STATUS = 3 -- 已投保
AND id.IS_EFFECT = 0 -- 有效
AND id.IS_OVERDUE = 0 -- 未过期
...
...
@@ -361,19 +368,53 @@
AND NOT EXISTS (
SELECT 1
FROM mvp_archives.t_employee_project ep2
WHERE ep2.EMP_IDCARD = id.EMP_IDCARD_NO
AND ep2.PROJECT_STATUS IN (0, 1) AND ep2.DELETE_FLAG = '0'
AND ep2.PROJECT_STATUS = 0
left join mvp_archives.t_settle_domain d2 on d2.id=ep2.DEPT_ID
WHERE ep2.EMP_IDCARD = id.EMP_IDCARD_NO and d2.INVOICE_TITLE_SALARY=d.INVOICE_TITLE_SALARY
AND ep2.PROJECT_STATUS =0 AND ep2.DELETE_FLAG = '0'
)
AND zc.id is null
AND DATE_FORMAT(id.UPDATE_TIME,'%Y%m%d') = DATE_FORMAT(NOW(), '%Y%m%d')
) a
GROUP BY a.EMP_IDCARD,a.INVOICE_TITLE
AND DATE_FORMAT(id.UPDATE_TIME,'%Y%m%d') = DATE_FORMAT(NOW(), '%Y%m%d')
LEFT JOIN mvp_salary.t_salary_account a on a.EMP_IDCARD = t.EMP_IDCARD and a.DELETE_FLAG = 0 and a.INVOICE_TITLE=t.INVOICE_TITLE and a.SETTLEMENT_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN ${tableNameOrLastTable} z on z.EMP_IDCARD = t.EMP_IDCARD and z.DELETE_FLAG = 0 and z.INVOICE_TITLE=t.INVOICE_TITLE and z.SETTLE_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
set t.COST_REDUCTION=if(DATE_FORMAT(now(),'%m')='01',5000,ifnull(a.COST_REDUCTION,ifnull(z.COST_REDUCTION,0)) + 5000)
LEFT JOIN mvp_salary.t_salary_account a on a.EMP_IDCARD = t.EMP_IDCARD and a.DELETE_FLAG = 0 and a.INVOICE_TITLE=t.INVOICE_TITLE and a.SETTLEMENT_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
LEFT JOIN ${tableNameOrLastTable} z on z.EMP_IDCARD = t.EMP_IDCARD and z.DELETE_FLAG = 0 and z.INVOICE_TITLE=t.INVOICE_TITLE and z.SETTLE_MONTH = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
set t.COST_REDUCTION=if(DATE_FORMAT(now(),'%m')='01',5000,ifnull(a.COST_REDUCTION,ifnull(z.COST_REDUCTION,0)) + 5000)
LEFT JOIN mvp_salary.t_salary_account ac on ac.EMP_IDCARD = t.EMP_IDCARD and ac.DELETE_FLAG = 0 and ac.INVOICE_TITLE=t.INVOICE_TITLE and ac.SETTLEMENT_MONTH = DATE_FORMAT(now(),'%Y%m')
set t.DELETE_FLAG=2 where ac.id is not null
</update>
<!-- 插入0申报表 -->
<insertid="insertIntoSalaryZeroYear">
insert into ${tableName} ( select * FROM ${viewYearName} )