个税对接,人员报送相关接口

This commit is contained in:
钱涛 2023-08-09 18:35:09 +08:00
parent 827420c2bd
commit 615813c478
18 changed files with 996 additions and 153 deletions

View File

@ -0,0 +1,51 @@
create table hrsa_employee_declare_record
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
request_id varchar2(100)
);
/
create table hrsa_employee_declare
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
employee_id number,
employee_type number,
employee_name varchar2(100),
job_num varchar2(100),
card_type number,
card_num varchar2(100),
gender varchar2(100),
birthday date,
employment_status number,
mobile varchar2(100),
employment_type number,
employment_first_year varchar2(100),
employment_date date,
dismiss_date date,
disability number,
disability_card_no varchar2(100),
lonely_old number,
martyr_dependents number,
martyr_dependents_card_no varchar2(100),
deduct_expenses number,
successfully_declared number,
new_employee_info number,
declare_status number,
declare_error_msg varchar2(1000)
);
/

View File

@ -0,0 +1,51 @@
create table hrsa_employee_declare_record
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
request_id varchar2(100)
);
/
create table hrsa_employee_declare
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
employee_id number,
employee_type number,
employee_name varchar2(100),
job_num varchar2(100),
card_type number,
card_num varchar2(100),
gender varchar2(100),
birthday date,
employment_status number,
mobile varchar2(100),
employment_type number,
employment_first_year varchar2(100),
employment_date date,
dismiss_date date,
disability number,
disability_card_no varchar2(100),
lonely_old number,
martyr_dependents number,
martyr_dependents_card_no varchar2(100),
deduct_expenses number,
successfully_declared number,
new_employee_info number,
declare_status number,
declare_error_msg varchar2(1000)
);
/

View File

@ -0,0 +1,50 @@
create table hrsa_employee_declare_record
(
id bigint primary key comment 'ID' ,
create_time datetime comment '创建时间' ,
update_time datetime comment '修改时间' ,
creator bigint comment '创建人id' ,
delete_type int default 0 comment '是否删除' ,
tenant_key varchar(10) comment '租户KEY' ,
tax_agent_id bigint comment '个税扣缴义务人' ,
tax_cycle varchar(10) comment '税款所属期' ,
request_id varchar(100) comment '供应商第三方系统翻译的requestid'
)
;
create table hrsa_employee_declare
(
id bigint primary key comment 'ID' ,
create_time datetime comment '创建时间' ,
update_time datetime comment '修改时间' ,
creator bigint comment '创建人id' ,
delete_type int default 0 comment '是否删除' ,
tenant_key varchar(10) comment '租户KEY' ,
tax_agent_id bigint comment '个税扣缴义务人ID' ,
tax_cycle varchar(10) comment '税款所属期' ,
employee_id bigint comment '人员id' ,
employee_type tinyint comment '人员类型' ,
employee_name varchar(100) comment '姓名' ,
job_num varchar(100) comment '工号' ,
card_type tinyint comment '证件类型' ,
card_num varchar(100) comment '证件号码' ,
gender varchar(100) comment '性别' ,
birthday date comment '生日' ,
employment_status tinyint comment '人员状态' ,
mobile varchar(100) comment '手机号码' ,
employment_type tinyint comment '任职受雇从业类型' ,
employment_first_year varchar(100) comment '入职年度就业情形' ,
employment_date date comment '任职受雇从业日期' ,
dismiss_date date comment '离职日期' ,
disability tinyint comment '是否残疾' ,
disability_card_no varchar(100) comment '残疾证号码' ,
lonely_old tinyint comment '是否孤老' ,
martyr_dependents tinyint comment '是否烈属' ,
martyr_dependents_card_no varchar(100) comment '烈属证号码' ,
deduct_expenses tinyint comment '是否扣除减除费用' ,
successfully_declared tinyint comment '是否成功报送过' ,
new_employee_info tinyint comment '本月是否编辑过' ,
declare_status tinyint comment '报送状态' ,
declare_error_msg varchar(1000) comment '报送失败时的错误信息'
)
;

View File

@ -0,0 +1,50 @@
create table hrsa_employee_declare_record
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
request_id varchar2(100)
)
/
create table hrsa_employee_declare
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
employee_id number,
employee_type number,
employee_name varchar2(100),
job_num varchar2(100),
card_type number,
card_num varchar2(100),
gender varchar2(100),
birthday date,
employment_status number,
mobile varchar2(100),
employment_type number,
employment_first_year varchar2(100),
employment_date date,
dismiss_date date,
disability number,
disability_card_no varchar2(100),
lonely_old number,
martyr_dependents number,
martyr_dependents_card_no varchar2(100),
deduct_expenses number,
successfully_declared number,
new_employee_info number,
declare_status number,
declare_error_msg varchar2(1000)
)
/

View File

@ -0,0 +1,50 @@
create table hrsa_employee_declare_record
(
id bigint primary key ,
create_time timestamp,
update_time timestamp,
creator bigint,
delete_type int default 0,
tenant_key varchar(10),
tax_agent_id bigint,
tax_cycle varchar(10),
request_id varchar(100)
);
/
create table hrsa_employee_declare
(
id bigint primary key ,
create_time timestamp,
update_time timestamp,
creator bigint,
delete_type int default 0,
tenant_key varchar(10),
tax_agent_id bigint,
tax_cycle varchar(10),
employee_id bigint,
employee_type smallint,
employee_name varchar(100),
job_num varchar(100),
card_type smallint,
card_num varchar(100),
gender varchar(100),
birthday date,
employment_status smallint,
mobile varchar(100),
employment_type smallint,
employment_first_year varchar(100),
employment_date date,
dismiss_date date,
disability smallint,
disability_card_no varchar(100),
lonely_old smallint,
martyr_dependents smallint,
martyr_dependents_card_no varchar(100),
deduct_expenses smallint,
successfully_declared smallint,
new_employee_info smallint,
declare_status smallint,
declare_error_msg varchar(1000)
);
/

View File

@ -0,0 +1,50 @@
create table hrsa_employee_declare_record
(
id bigint primary key ,
create_time datetime,
update_time datetime,
creator bigint,
delete_type int default 0,
tenant_key nvarchar(10),
tax_agent_id bigint,
tax_cycle nvarchar(10),
request_id nvarchar(100)
)
GO
create table hrsa_employee_declare
(
id bigint primary key ,
create_time datetime,
update_time datetime,
creator bigint,
delete_type int default 0,
tenant_key nvarchar(10),
tax_agent_id bigint,
tax_cycle nvarchar(10),
employee_id bigint,
employee_type tinyint,
employee_name nvarchar(100),
job_num nvarchar(100),
card_type tinyint,
card_num nvarchar(100),
gender nvarchar(100),
birthday datetime,
employment_status tinyint,
mobile nvarchar(100),
employment_type tinyint,
employment_first_year nvarchar(100),
employment_date datetime,
dismiss_date datetime,
disability tinyint,
disability_card_no nvarchar(100),
lonely_old tinyint,
martyr_dependents tinyint,
martyr_dependents_card_no nvarchar(100),
deduct_expenses tinyint,
successfully_declared tinyint,
new_employee_info tinyint,
declare_status tinyint,
declare_error_msg nvarchar(1000)
)
GO

View File

@ -0,0 +1,51 @@
create table hrsa_employee_declare_record
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
request_id varchar2(100)
);
/
create table hrsa_employee_declare
(
id number primary key ,
create_time date,
update_time date,
creator number,
delete_type int default 0,
tenant_key varchar2(10),
tax_agent_id number,
tax_cycle varchar2(10),
employee_id number,
employee_type number,
employee_name varchar2(100),
job_num varchar2(100),
card_type number,
card_num varchar2(100),
gender varchar2(100),
birthday date,
employment_status number,
mobile varchar2(100),
employment_type number,
employment_first_year varchar2(100),
employment_date date,
dismiss_date date,
disability number,
disability_card_no varchar2(100),
lonely_old number,
martyr_dependents number,
martyr_dependents_card_no varchar2(100),
deduct_expenses number,
successfully_declared number,
new_employee_info number,
declare_status number,
declare_error_msg varchar2(1000)
);
/

View File

@ -0,0 +1,25 @@
package com.engine.salary.entity.employeedeclare.param;
import lombok.Data;
import java.util.Collection;
/**
* @description: 人员报送-批量编辑保存参数
* @author: xiajun
* @modified By: xiajun
* @date: Created in 2022/12/16 3:56 PM
* @version:v1.0
*/
@Data
public class EmployeeDeclareBatchUpdateParam extends EmployeeDeclareListQueryParam {
//报送人员的id
private Collection<Long> ids;
//批量编辑的项目
private String batchUpdateItem;
//批量编辑为
private String itemValue;
}

View File

@ -25,6 +25,7 @@ import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
//hrsa_employee_declare
public class EmployeeDeclarePO {
/**

View File

@ -3,6 +3,7 @@ package com.engine.salary.entity.employeedeclare.po;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Collection;
import java.util.Date;
/**
@ -53,4 +54,6 @@ public class EmployeeDeclareRecordPO {
* 更新时间
*/
private Date updateTime;
private Collection<Long> ids;
}

View File

@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
/**
@ -87,4 +88,7 @@ public class TaxDeclarationApiConfigPO implements Serializable {
* 更新时间
*/
private Date updateTime;
//查询条件
Collection<Long> ids;
}

View File

@ -0,0 +1,80 @@
package com.engine.salary.mapper.employeedeclare;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclareRecordPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
public interface EmployeeDeclareRecordMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<EmployeeDeclareRecordPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<EmployeeDeclareRecordPO> listSome(EmployeeDeclareRecordPO employeeDeclareRecord);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
EmployeeDeclareRecordPO getById(Long id);
/**
* 新增忽略null字段
*
* @param employeeDeclareRecord 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(EmployeeDeclareRecordPO employeeDeclareRecord);
/**
* 批量插入
*
* @param employeeDeclareRecord
*/
void batchInsert(@Param("collection") List<EmployeeDeclareRecordPO> employeeDeclareRecord);
/**
* 修改修改所有字段
*
* @param employeeDeclareRecord 修改的记录
* @return 返回影响行数
*/
int update(EmployeeDeclareRecordPO employeeDeclareRecord);
/**
* 修改忽略null字段
*
* @param employeeDeclareRecord 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(EmployeeDeclareRecordPO employeeDeclareRecord);
/**
* 删除记录
*
* @param employeeDeclareRecord 待删除的记录
* @return 返回影响行数
*/
int delete(EmployeeDeclareRecordPO employeeDeclareRecord);
/**
* 批量删除记录
*
* @param ids 主键id集合
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
}

View File

@ -0,0 +1,312 @@
<?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.engine.salary.mapper.employeedeclare.EmployeeDeclareRecordMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareRecordPO">
<result column="id" property="id"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
<result column="tax_agent_id" property="taxAgentId"/>
<result column="tax_cycle" property="taxCycle"/>
<result column="request_id" property="requestId"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.create_time
, t.update_time
, t.creator
, t.delete_type
, t.tenant_key
, t.tax_agent_id
, t.tax_cycle
, t.request_id
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_record t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_record t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareRecordPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_employee_declare_record t
WHERE delete_type = 0
<if test="id != null">
AND id = #{id}
</if>
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="taxAgentId != null">
AND tax_agent_id = #{taxAgentId}
</if>
<if test="taxCycle != null">
AND tax_cycle = #{taxCycle}
</if>
<if test="requestId != null">
AND request_id = #{requestId}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareRecordPO">
INSERT INTO hrsa_employee_declare_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
<if test="taxAgentId != null">
tax_agent_id,
</if>
<if test="taxCycle != null">
tax_cycle,
</if>
<if test="requestId != null">
request_id,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="taxAgentId != null">
#{taxAgentId},
</if>
<if test="taxCycle != null">
#{taxCycle},
</if>
<if test="requestId != null">
#{requestId},
</if>
</trim>
</insert>
<insert id="batchInsert">
INSERT INTO hrsa_employee_declare_record
(
id,
create_time,
update_time,
creator,
delete_type,
tenant_key,
tax_agent_id,
tax_cycle,
request_id,
)
VALUES
(
<foreach collection="collection" item="item" separator=",">
#{item.id},
#{item.createTime},
#{item.updateTime},
#{item.creator},
#{item.deleteType},
#{item.tenantKey},
#{item.taxAgentId},
#{item.taxCycle},
#{item.requestId},
</foreach>
)
</insert>
<insert id="batchInsert" databaseId="oracle">
INSERT INTO hrsa_employee_declare_record (
id,
create_time,
update_time,
creator,
delete_type,
tenant_key,
tax_agent_id,
tax_cycle,
request_id,
)
<foreach collection="collection" item="item" separator="union all">
select
#{item.id,jdbcType=DOUBLE},
#{item.createTime,jdbcType=DATE},
#{item.updateTime,jdbcType=DATE},
#{item.creator,jdbcType=DOUBLE},
#{item.deleteType,jdbcType=INTEGER},
#{item.tenantKey,jdbcType=VARCHAR},
#{item.taxAgentId,jdbcType=DOUBLE},
#{item.taxCycle,jdbcType=VARCHAR},
#{item.requestId,jdbcType=DOUBLE},
from dual
</foreach>
</insert>
<insert id="batchInsert" databaseId="sqlserver">
<foreach collection="collection" item="item" separator=";">
INSERT INTO hrsa_employee_declare_record (
id,
create_time,
update_time,
creator,
delete_type,
tenant_key,
tax_agent_id,
tax_cycle,
request_id,
)
VALUES
(
#{item.id,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.createTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.updateTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.creator,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.deleteType,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.tenantKey,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.taxAgentId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.taxCycle,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
#{item.requestId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER},
)
</foreach>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareRecordPO">
UPDATE hrsa_employee_declare_record
<set>
create_time=#{createTime},
update_time=#{updateTime},
creator=#{creator},
delete_type=#{deleteType},
tenant_key=#{tenantKey},
tax_agent_id=#{taxAgentId},
tax_cycle=#{taxCycle},
request_id=#{requestId},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.employeedeclare.po.EmployeeDeclareRecordPO">
UPDATE hrsa_employee_declare_record
<set>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
<if test="taxAgentId != null">
tax_agent_id=#{taxAgentId},
</if>
<if test="taxCycle != null">
tax_cycle=#{taxCycle},
</if>
<if test="requestId != null">
request_id=#{requestId},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete">
UPDATE hrsa_employee_declare_record
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<delete id="deleteByIds">
UPDATE hrsa_employee_declare_record
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -11,6 +11,10 @@
<result column="host" property="host"/>
<result column="app_key" property="appKey"/>
<result column="app_secret" property="appSecret"/>
<result column="enable_use" property="enableUse"/>
<result column="totality" property="totality"/>
<result column="remain" property="remain"/>
<result column="last_update_time" property="lastUpdateTime"/>
</resultMap>
<!-- 表字段 -->
@ -26,6 +30,10 @@
, t.host
, t.app_key
, t.app_secret
, t.enable_use
, t.totality
, t.remain
, t.last_update_time
</sql>
<!-- 查询全部 -->
@ -45,8 +53,7 @@
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO">
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_tax_declare_api_config t
@ -78,6 +85,18 @@
<if test="appSecret != null">
AND app_secret = #{appSecret}
</if>
<if test="enableUse != null">
AND enable_use = #{enableUse}
</if>
<if test="totality != null">
AND totality = #{totality}
</if>
<if test="remain != null">
AND remain = #{remain}
</if>
<if test="lastUpdateTime != null">
AND last_update_time = #{lastUpdateTime}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
@ -120,6 +139,18 @@
<if test="appSecret != null">
app_secret,
</if>
<if test="enableUse != null">
enable_use,
</if>
<if test="totality != null">
totality,
</if>
<if test="remain != null">
remain,
</if>
<if test="lastUpdateTime != null">
last_update_time,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -149,6 +180,18 @@
<if test="appSecret != null">
#{appSecret},
</if>
<if test="enableUse != null">
#{enableUse},
</if>
<if test="totality != null">
#{totality},
</if>
<if test="remain != null">
#{remain},
</if>
<if test="lastUpdateTime != null">
#{lastUpdateTime},
</if>
</trim>
</insert>
@ -164,6 +207,10 @@
host=#{host},
app_key=#{appKey},
app_secret=#{appSecret},
enable_use=#{enableUse},
totality=#{totality},
remain=#{remain},
last_update_time=#{lastUpdateTime},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -197,6 +244,18 @@
<if test="appSecret != null">
app_secret=#{appSecret},
</if>
<if test="enableUse != null">
enable_use=#{enableUse},
</if>
<if test="totality != null">
totality=#{totality},
</if>
<if test="remain != null">
remain=#{remain},
</if>
<if test="lastUpdateTime != null">
last_update_time=#{lastUpdateTime},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -227,4 +286,5 @@
WHERE delete_type = 0
</select>
</mapper>

View File

@ -119,10 +119,8 @@ public interface EmployeeDeclareService{
* 批量编辑
*
* @param batchUpdateParam
* @param employeeId
* @param tenantKey
*/
// void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam, Long employeeId);
void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam);
/**
* 删除

View File

@ -27,9 +27,11 @@ import com.engine.salary.entity.taxapiflow.bo.TaxApiFlowBO;
import com.engine.salary.entity.taxapiflow.po.TaxDeclarationApiFlowRecordPO;
import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO;
import com.engine.salary.enums.SalaryCycleTypeEnum;
import com.engine.salary.enums.SalaryOnOffEnum;
import com.engine.salary.enums.employeedeclare.CardTypeEnum;
import com.engine.salary.enums.employeedeclare.DeclareStatusEnum;
import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum;
import com.engine.salary.enums.employeedeclare.EmploymentTypeEnum;
import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum;
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum;
@ -54,6 +56,7 @@ import org.springframework.transaction.annotation.Transactional;
import weaver.general.Util;
import weaver.hrm.User;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
import java.util.*;
@ -97,6 +100,10 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
return ServiceUtil.getService(EmployeeDeclareRecordServiceImpl.class, user);
}
private TaxDeclarationApiBillingService getTaxDeclarationApiBillingService(User user) {
return ServiceUtil.getService(TaxDeclarationApiBillingServiceImpl.class, user);
}
@Override
public EmployeeDeclarePO getById(Long id) {
return getEmployeeDeclareMapper().getById(id);
@ -156,7 +163,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
// @Override
// public List<EmployeeDeclarePO> list4FailByParam(EmployeeDeclareFailListQueryParam queryParam) {
// return new LambdaQueryChainWrapper<>(employeeDeclareMapper)
// .eq(EmployeeDeclarePO::getTenantKey, tenantKey)
// .eq(EmployeeDeclarePO::getTenantKey)
// .eq(EmployeeDeclarePO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue())
// .eq(EmployeeDeclarePO::getTaxAgentId, queryParam.getTaxAgentId())
// .eq(EmployeeDeclarePO::getTaxCycle, queryParam.getTaxCycle().toString())
@ -257,109 +264,110 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
}
}
// @Override
// public void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam, Long employeeId) {
// // 查询报送人员
// List<EmployeeDeclarePO> employeeDeclares;
// if (CollectionUtils.isNotEmpty(batchUpdateParam.getIds())) {
// employeeDeclares = listByIds(batchUpdateParam.getIds(), tenantKey);
// } else {
// employeeDeclares = listByParam(batchUpdateParam, tenantKey);
// }
// // 人员为空时不允许批量编辑
// if (CollectionUtils.isEmpty(employeeDeclares)) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182693, "当前人员列表为空,请选择要批量编辑的人员"));
// }
// LocalDateTime now = LocalDateTime.now();
// // 校验参数
// if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "employmentStatus")) {
// EmploymentStatusEnum employmentStatusEnum = null;
// for (EmploymentStatusEnum value : EmploymentStatusEnum.values()) {
// if (Objects.equals(value.name(), batchUpdateParam.getItemValue())) {
// employmentStatusEnum = value;
// }
// }
// if (employmentStatusEnum == null) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
// }
// for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
// if (!Objects.equals(employeeDeclare.getEmploymentStatus(), employmentStatusEnum.getValue())) {
// employeeDeclare.setEmploymentStatus(employmentStatusEnum.getValue());
// employeeDeclare.setNewEmployeeInfo(1);
// employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
// employeeDeclare.setDeclareErrorMsg("");
// employeeDeclare.setUpdateTime(now);
// }
// }
// } else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "employmentType")) {
// EmploymentTypeEnum employmentTypeEnum = null;
// for (EmploymentTypeEnum value : EmploymentTypeEnum.values()) {
// if (Objects.equals(value.name(), batchUpdateParam.getItemValue())) {
// employmentTypeEnum = value;
// }
// }
// if (employmentTypeEnum == null) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
// }
// for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
// if (!Objects.equals(employeeDeclare.getEmploymentType(), employmentTypeEnum.getValue())) {
// employeeDeclare.setEmploymentType(employmentTypeEnum.getValue());
// employeeDeclare.setNewEmployeeInfo(1);
// employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
// employeeDeclare.setDeclareErrorMsg("");
// employeeDeclare.setUpdateTime(now);
// }
// }
// } else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "employmentDate")) {
// if (!SalaryDateUtil.checkDay(batchUpdateParam.getItemValue())) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
// }
// LocalDate employmentDate = LocalDate.parse(batchUpdateParam.getItemValue());
// for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
// if (!Objects.equals(employeeDeclare.getEmploymentDate(), employmentDate)) {
// employeeDeclare.setEmploymentDate(employmentDate);
// employeeDeclare.setNewEmployeeInfo(1);
// employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
// employeeDeclare.setDeclareErrorMsg("");
// employeeDeclare.setUpdateTime(now);
// }
// }
// } else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "dismissDate")) {
// if (!SalaryDateUtil.checkDay(batchUpdateParam.getItemValue())) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
// }
// LocalDate dismissDate = LocalDate.parse(batchUpdateParam.getItemValue());
// for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
// if (!Objects.equals(employeeDeclare.getDismissDate(), dismissDate)) {
// employeeDeclare.setDismissDate(dismissDate);
// employeeDeclare.setNewEmployeeInfo(1);
// employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
// employeeDeclare.setDeclareErrorMsg("");
// employeeDeclare.setUpdateTime(now);
// }
// }
// } else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "deductExpenses")) {
// SalaryOnOffEnum salaryOnOffEnum = null;
// for (SalaryOnOffEnum value : SalaryOnOffEnum.values()) {
// if (Objects.equals(value.name(), batchUpdateParam.getItemValue())) {
// salaryOnOffEnum = value;
// }
// }
// if (salaryOnOffEnum == null) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
// }
// for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
// if (!Objects.equals(employeeDeclare.getDeductExpenses(), salaryOnOffEnum.getValue())) {
// employeeDeclare.setDeductExpenses(salaryOnOffEnum.getValue());
// employeeDeclare.setNewEmployeeInfo(1);
// employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
// employeeDeclare.setDeclareErrorMsg("");
// employeeDeclare.setUpdateTime(now);
// }
// }
// }
@Override
public void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam) {
// 查询报送人员
List<EmployeeDeclarePO> employeeDeclares;
if (CollectionUtils.isNotEmpty(batchUpdateParam.getIds())) {
employeeDeclares = listByIds(batchUpdateParam.getIds());
} else {
employeeDeclares = listByParam(batchUpdateParam);
}
// 人员为空时不允许批量编辑
if (CollectionUtils.isEmpty(employeeDeclares)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182693, "当前人员列表为空,请选择要批量编辑的人员"));
}
Date now = new Date();
// 校验参数
if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "employmentStatus")) {
EmploymentStatusEnum employmentStatusEnum = null;
for (EmploymentStatusEnum value : EmploymentStatusEnum.values()) {
if (Objects.equals(value.name(), batchUpdateParam.getItemValue())) {
employmentStatusEnum = value;
}
}
if (employmentStatusEnum == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
if (!Objects.equals(employeeDeclare.getEmploymentStatus(), employmentStatusEnum.getValue())) {
employeeDeclare.setEmploymentStatus(employmentStatusEnum.getValue());
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setDeclareErrorMsg("");
employeeDeclare.setUpdateTime(now);
}
}
} else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "employmentType")) {
EmploymentTypeEnum employmentTypeEnum = null;
for (EmploymentTypeEnum value : EmploymentTypeEnum.values()) {
if (Objects.equals(value.name(), batchUpdateParam.getItemValue())) {
employmentTypeEnum = value;
}
}
if (employmentTypeEnum == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
if (!Objects.equals(employeeDeclare.getEmploymentType(), employmentTypeEnum.getValue())) {
employeeDeclare.setEmploymentType(employmentTypeEnum.getValue());
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setDeclareErrorMsg("");
employeeDeclare.setUpdateTime(now);
}
}
} else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "employmentDate")) {
if (!SalaryDateUtil.checkDay(batchUpdateParam.getItemValue())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
Date employmentDate = SalaryDateUtil.localDateToDate(LocalDate.parse(batchUpdateParam.getItemValue()));
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
if (!Objects.equals(employeeDeclare.getEmploymentDate(), employmentDate)) {
employeeDeclare.setEmploymentDate(employmentDate);
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setDeclareErrorMsg("");
employeeDeclare.setUpdateTime(now);
}
}
} else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "dismissDate")) {
if (!SalaryDateUtil.checkDay(batchUpdateParam.getItemValue())) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
Date dismissDate = SalaryDateUtil.localDateToDate(LocalDate.parse(batchUpdateParam.getItemValue()));
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
if (!Objects.equals(employeeDeclare.getDismissDate(), dismissDate)) {
employeeDeclare.setDismissDate(dismissDate);
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setDeclareErrorMsg("");
employeeDeclare.setUpdateTime(now);
}
}
} else if (Objects.equals(batchUpdateParam.getBatchUpdateItem(), "deductExpenses")) {
SalaryOnOffEnum salaryOnOffEnum = null;
for (SalaryOnOffEnum value : SalaryOnOffEnum.values()) {
if (Objects.equals(value.name(), batchUpdateParam.getItemValue())) {
salaryOnOffEnum = value;
}
}
if (salaryOnOffEnum == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
for (EmployeeDeclarePO employeeDeclare : employeeDeclares) {
if (!Objects.equals(employeeDeclare.getDeductExpenses(), salaryOnOffEnum.getValue())) {
employeeDeclare.setDeductExpenses(salaryOnOffEnum.getValue());
employeeDeclare.setNewEmployeeInfo(1);
employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue());
employeeDeclare.setDeclareErrorMsg("");
employeeDeclare.setUpdateTime(now);
}
}
}
employeeDeclares.forEach(getEmployeeDeclareMapper()::updateIgnoreNull);
// updateBatchById(employeeDeclares);
// }
}
@Override
public void deleteByIds(Collection<Long> ids) {
@ -470,7 +478,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
.collect(Collectors.toSet());
// 查询新增加的人员信息
List<DataCollectionEmployee> employeeInfos = getSalaryEmployeeService(user).getEmployeeByIdsAll(new ArrayList<>(newOrgEmployeeIds));
// List<SimpleUserInfo> newSimpleUserInfos = salaryEmployeeService.listByEmployeeIds(newOrgEmployeeIds, tenantKey);
// List<SimpleUserInfo> newSimpleUserInfos = salaryEmployeeService.listByEmployeeIds(newOrgEmployeeIds);
// List<HrmEmployeeComInfo> newHrmEmployeeComInfos = comInfoCache.getCacheList(HrmEmployeeComInfo.class, Lists.newArrayList(newOrgEmployeeIds));
// 查询本月增加了哪些非系统人员
// List<ExtEmpPO> extEmployees = extEmployeeService.listBySalaryCycleAndTaxAgentId(salaryCycleRange, refreshParam.getTaxAgentId());
@ -667,6 +675,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
// 更新员工的报送状态
if (CollectionUtils.isNotEmpty(needUpdateEmployeeDeclares)) {
//todo
needUpdateEmployeeDeclares.forEach(getEmployeeDeclareMapper()::updateIgnoreNull);
// updateBatchById(needUpdateEmployeeDeclares);
}
// 删除原来的人员报送记录
@ -682,7 +691,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
// employeeDeclareLoggerTemplate.write(loggerContext);
// 更新流量统计
//todo
// taxDeclarationApiBillingService.updateApiFlowInfo(apiFlowUpdateWrapper);
getTaxDeclarationApiBillingService(user).updateApiFlowInfo(apiFlowUpdateWrapper);
// 报送失败的
int declareFailSize = (int) needUpdateEmployeeDeclares.stream()
.filter(e -> Objects.equals(e.getDeclareStatus(), DeclareStatusEnum.DECLARE_FAIL.getValue()))

View File

@ -4,6 +4,7 @@ package com.engine.salary.web;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareFailListDTO;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareInfoDTO;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareRateDTO;
import com.engine.salary.entity.employeedeclare.dto.TaxAgentDeclareListDTO;
import com.engine.salary.entity.employeedeclare.param.*;
import com.engine.salary.util.ResponseResult;
@ -232,34 +233,34 @@ public class EmployeeDeclareController {
return new ResponseResult<EmployeeDeclareParam, EmployeeDeclareInfoDTO>(user).run(getEmployeeDeclareWrapper(user)::getDeclareFeedback, employeeDeclareParam);
}
// /**
// * 人员报送-后端业务逻辑是否已经完成
// *
// * @param index 进度索引
// * @return
// */
// @GetMapping("/getRate")
// @ApiOperation("人员报送-后端业务逻辑是否已经完成")
// @Produces(MediaType.APPLICATION_JSON)
// public WeaResult<EmployeeDeclareRateDTO> getRate(@RequestParam(value = "index") String index) {
// EmployeeDeclareRateDTO rate = employeeDeclareWrapper.getRate(index, TenantContext.getCurrentTenantKey());
// return WeaResult.success(rate);
// }
//
/**
* 人员报送-后端业务逻辑是否已经完成
*
* @param index 进度索引
* @return
*/
@GET
@Path("/getRate")
@Produces(MediaType.APPLICATION_JSON)
public String getRate(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "index") String index) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<String, EmployeeDeclareRateDTO>(user).run(getEmployeeDeclareWrapper(user)::getRate, index);
}
// /**
// * 人员报送-导出全部人员
// *
// * @param queryParam 导出参数
// * @return
// */
// @POST
// @Path("/export")
// @ApiOperation("人员报送-导出全部人员")
// @Produces(MediaType.APPLICATION_JSON)
// public WeaResult<Object> export(@RequestBody @Validated EmployeeDeclareListQueryParam queryParam) {
// public String export(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeDeclareListQueryParam queryParam) {
// Map<String, Object> exportMap = employeeDeclareWrapper.export(queryParam, UserContext.getCurrentUser());
// return WeaResult.success(exportMap);
// }
//
// /**
// * 人员报送-导出本月新增人员
// *
@ -302,7 +303,7 @@ public class EmployeeDeclareController {
// return WeaResult.success(exportMap);
// }
//
// @GetMapping("/getImportParam")
// @Path("/getImportParam")
// @ApiOperation("人员报送-获取导入参数")
// @Produces(MediaType.APPLICATION_JSON)
// public WeaResult<ExcelImportParam> getAcctResultImportParams() {

View File

@ -396,16 +396,14 @@ public class EmployeeDeclareWrapper extends Service {
}
// /**
// * 批量编辑
// *
// * @param batchUpdateParam
// * @param employeeId
// * @param tenantKey
// */
// public void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam, Long employeeId, String tenantKey) {
// getEmployeeDeclareService(user).batchUpdate(batchUpdateParam, employeeId, tenantKey);
// }
/**
* 批量编辑
*
* @param batchUpdateParam
*/
public void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam) {
getEmployeeDeclareService(user).batchUpdate(batchUpdateParam);
}
/**
* 人员报送-删除
@ -527,17 +525,16 @@ public class EmployeeDeclareWrapper extends Service {
return employeeDeclareRate.getIndex();
}
// /**
// * 获取人员报送相关后端接口是否已经完成
// *
// * @param index
// * @param tenantKey
// * @return
// */
// public EmployeeDeclareRateDTO getRate(String index, String tenantKey) {
// return getSalaryCacheService(user).get(SalaryCacheKey.EMPLOYEE_DECLARE, index, EmployeeDeclareRateDTO.class);
// }
//
/**
* 获取人员报送相关后端接口是否已经完成
*
* @param index
* @return
*/
public EmployeeDeclareRateDTO getRate(String index) {
return getSalaryCacheService(user).get(SalaryCacheKey.EMPLOYEE_DECLARE+ index);
}
// /**
// * 人员报送-导出本月全部的人员
// *