Merge remote-tracking branch 'remotes/origin/feature/231001-福利档案基数调整记录' into fix/231102-福利档案,导入数据中的年月数据校验优化

This commit is contained in:
sy 2023-11-21 16:02:30 +08:00
commit 4ebad5ec83
11 changed files with 384 additions and 27 deletions

View File

@ -0,0 +1,39 @@
CREATE TABLE hrsa_insurance_base_history (
id NUMBER(20,0) NOT NULL,
employee_id NUMBER(20,0) NOT NULL,
payment_organization NUMBER(11,0) NOT NULL,
welfare_type NUMBER(11,0) NOT NULL,
adjust_before_scheme_id NUMBER(11,0) NULL,
adjust_after_scheme_id NUMBER(11,0) NULL,
adjust_before_base_value VARCHAR2(255) NULL,
adjust_after_base_value VARCHAR2(255) NULL,
adjust_welfare_item_id NUMBER(20,0) NOT NULL,
operator NUMBER(20,0) NOT NULL,
operate_time DATE NULL,
create_time DATE NOT NULL,
update_time DATE NOT NULL,
creator NUMBER(20,0) NOT NULL,
delete_type NUMBER(11,0) NOT NULL,
tenant_key VARCHAR2(10) NULL,
PRIMARY KEY (id)
);
/

View File

@ -0,0 +1,39 @@
CREATE TABLE hrsa_insurance_base_history (
id NUMBER(20,0) NOT NULL,
employee_id NUMBER(20,0) NOT NULL,
payment_organization NUMBER(11,0) NOT NULL,
welfare_type NUMBER(11,0) NOT NULL,
adjust_before_scheme_id NUMBER(11,0) NULL,
adjust_after_scheme_id NUMBER(11,0) NULL,
adjust_before_base_value VARCHAR2(255) NULL,
adjust_after_base_value VARCHAR2(255) NULL,
adjust_welfare_item_id NUMBER(20,0) NOT NULL,
operator NUMBER(20,0) NOT NULL,
operate_time DATE NULL,
create_time DATE NOT NULL,
update_time DATE NOT NULL,
creator NUMBER(20,0) NOT NULL,
delete_type NUMBER(11,0) NOT NULL,
tenant_key VARCHAR2(10) NULL,
PRIMARY KEY (id)
);
/

View File

@ -0,0 +1,39 @@
CREATE TABLE hrsa_insurance_base_history (
id NUMBER(20,0) NOT NULL,
employee_id NUMBER(20,0) NOT NULL,
payment_organization NUMBER(11,0) NOT NULL,
welfare_type NUMBER(11,0) NOT NULL,
adjust_before_scheme_id NUMBER(11,0) NULL,
adjust_after_scheme_id NUMBER(11,0) NULL,
adjust_before_base_value VARCHAR2(255) NULL,
adjust_after_base_value VARCHAR2(255) NULL,
adjust_welfare_item_id NUMBER(20,0) NOT NULL,
operator NUMBER(20,0) NOT NULL,
operate_time DATE NULL,
create_time DATE NOT NULL,
update_time DATE NOT NULL,
creator NUMBER(20,0) NOT NULL,
delete_type NUMBER(11,0) NOT NULL,
tenant_key VARCHAR2(10) NULL,
PRIMARY KEY (id)
);
/

View File

@ -0,0 +1,37 @@
CREATE TABLE hrsa_insurance_base_history (
id bigint NOT NULL,
employee_id bigint NOT NULL,
payment_organization int NOT NULL,
welfare_type int NOT NULL,
adjust_before_scheme_id int NULL,
adjust_after_scheme_id int NULL,
adjust_before_base_value varchar(255) NULL,
adjust_after_base_value varchar(255) NULL,
adjust_welfare_item_id bigint NOT NULL,
operator bigint NOT NULL,
operate_time datetime NULL,
create_time datetime NOT NULL,
update_time datetime NOT NULL,
creator bigint NOT NULL,
delete_type int NOT NULL,
tenant_key varchar(10) NULL,
PRIMARY KEY (id)
);

View File

@ -0,0 +1,38 @@
CREATE TABLE hrsa_insurance_base_history (
id NUMBER(20,0) NOT NULL,
employee_id NUMBER(20,0) NOT NULL,
payment_organization NUMBER(11,0) NOT NULL,
welfare_type NUMBER(11,0) NOT NULL,
adjust_before_scheme_id NUMBER(11,0) NULL,
adjust_after_scheme_id NUMBER(11,0) NULL,
adjust_before_base_value VARCHAR2(255) NULL,
adjust_after_base_value VARCHAR2(255) NULL,
adjust_welfare_item_id NUMBER(20,0) NOT NULL,
operator NUMBER(20,0) NOT NULL,
operate_time DATE NULL,
create_time DATE NOT NULL,
update_time DATE NOT NULL,
creator NUMBER(20,0) NOT NULL,
delete_type NUMBER(11,0) NOT NULL,
tenant_key VARCHAR2(10) NULL,
PRIMARY KEY (id)
)
/

View File

@ -0,0 +1,37 @@
CREATE TABLE hrsa_insurance_base_history (
id bigint NOT NULL,
employee_id bigint NOT NULL,
payment_organization int NOT NULL,
welfare_type int NOT NULL,
adjust_before_scheme_id int,
adjust_after_scheme_id int,
adjust_before_base_value varchar(255),
adjust_after_base_value varchar(255),
adjust_welfare_item_id bigint NOT NULL,
operator bigint NOT NULL,
operate_time timestamp(0),
create_time timestamp(0) NOT NULL,
update_time timestamp(0) NOT NULL,
creator bigint NOT NULL,
delete_type int NOT NULL,
tenant_key varchar(10),
PRIMARY KEY (id)
);

View File

@ -0,0 +1,39 @@
CREATE TABLE [hrsa_insurance_base_history] (
[id] bigint NOT NULL,
[employee_id] bigint NOT NULL,
[payment_organization] int NOT NULL,
[welfare_type] int NOT NULL,
[adjust_before_scheme_id] int NULL,
[adjust_after_scheme_id] int NULL,
[adjust_before_base_value] varchar(255) COLLATE Chinese_PRC_CI_AS NULL,
[adjust_after_base_value] varchar(255) COLLATE Chinese_PRC_CI_AS NULL,
[adjust_welfare_item_id] bigint NOT NULL,
[operator] bigint NOT NULL,
[operate_time] datetime NULL,
[create_time] datetime NOT NULL,
[update_time] datetime NOT NULL,
[creator] bigint NOT NULL,
[delete_type] int NOT NULL,
[tenant_key] varchar(10) COLLATE Chinese_PRC_CI_AS NULL,
PRIMARY KEY ([id])
)
GO

View File

@ -0,0 +1,39 @@
CREATE TABLE hrsa_insurance_base_history (
id NUMBER(20,0) NOT NULL,
employee_id NUMBER(20,0) NOT NULL,
payment_organization NUMBER(11,0) NOT NULL,
welfare_type NUMBER(11,0) NOT NULL,
adjust_before_scheme_id NUMBER(11,0) NULL,
adjust_after_scheme_id NUMBER(11,0) NULL,
adjust_before_base_value VARCHAR2(255) NULL,
adjust_after_base_value VARCHAR2(255) NULL,
adjust_welfare_item_id NUMBER(20,0) NOT NULL,
operator NUMBER(20,0) NOT NULL,
operate_time DATE NULL,
create_time DATE NOT NULL,
update_time DATE NOT NULL,
creator NUMBER(20,0) NOT NULL,
delete_type NUMBER(11,0) NOT NULL,
tenant_key VARCHAR2(10) NULL,
PRIMARY KEY (id)
);
/

View File

@ -1958,7 +1958,7 @@ public class SIArchivesBiz {
Date now = new Date();
List<InsuranceArchivesBaseHistoryPO> toCreateAdjustHistoryList = new ArrayList<>();
//旧档案不存在基数信息则直接遍历新的基数数据生成调整记录旧档案存在基数信息则合并新旧基数数据遍历合并后的技术数据中的key生成调整记录
if(adjustInfo.getAdjustAfterBaseJson() != null && adjustInfo.getAdjustBeforeBaseJson() == null) {
if(StringUtils.isNotBlank(adjustInfo.getAdjustAfterBaseJson()) && StringUtils.isBlank(adjustInfo.getAdjustBeforeBaseJson())) {
Map<String, Object> adjustAfterBaseMap = JSON.parseObject(adjustInfo.getAdjustAfterBaseJson(), new TypeReference<Map<String, Object>>() {
});
for (String key : adjustAfterBaseMap.keySet()) {
@ -1976,36 +1976,43 @@ public class SIArchivesBiz {
adjustItem.setId(IdGenerator.generate());
toCreateAdjustHistoryList.add(adjustItem);
}
} else if (adjustInfo.getAdjustAfterBaseJson() != null && adjustInfo.getAdjustBeforeBaseJson() != null) {
} else if (StringUtils.isNotBlank(adjustInfo.getAdjustAfterBaseJson()) && StringUtils.isNotBlank(adjustInfo.getAdjustBeforeBaseJson())) {
Map<String, Object> adjustAfterBaseMap = JSON.parseObject(adjustInfo.getAdjustAfterBaseJson(), new TypeReference<Map<String, Object>>() {
});
Map<String, Object> adjustBeforeBaseMap = JSON.parseObject(adjustInfo.getAdjustBeforeBaseJson(), new TypeReference<Map<String, Object>>() {
});
Map<String, Object> reDealMap = new HashMap<>();
reDealMap.putAll(adjustAfterBaseMap);
reDealMap.putAll(adjustBeforeBaseMap);
for (String key : reDealMap.keySet()) {
String beforeValue = (String) adjustBeforeBaseMap.get(key);
String afterValue = (String) adjustAfterBaseMap.get(key);
if (SalaryEntityUtil.empty2Zero(beforeValue).compareTo(SalaryEntityUtil.empty2Zero(afterValue)) == 0) {
continue;
}
InsuranceArchivesBaseHistoryPO adjustItem = new InsuranceArchivesBaseHistoryPO();
BeanUtils.copyProperties(adjustInfo, adjustItem);
adjustItem.setAdjustWelfareItemId(Long.valueOf(key));
adjustItem.setAdjustBeforeBaseValue(beforeValue);
adjustItem.setAdjustAfterBaseValue(afterValue);
adjustItem.setOperateTime(now);
adjustItem.setOperator(creator);
adjustItem.setCreator(creator);
adjustItem.setCreateTime(now);
adjustItem.setUpdateTime(now);
adjustItem.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue());
adjustItem.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY);
adjustItem.setId(IdGenerator.generate());
toCreateAdjustHistoryList.add(adjustItem);
if (adjustAfterBaseMap != null) {
reDealMap.putAll(adjustAfterBaseMap);
}
if (adjustBeforeBaseMap != null) {
reDealMap.putAll(adjustBeforeBaseMap);
}
if (reDealMap.size() >0) {
for (String key : reDealMap.keySet()) {
String beforeValue = (String) adjustBeforeBaseMap.get(key);
String afterValue = (String) adjustAfterBaseMap.get(key);
if (SalaryEntityUtil.empty2Zero(beforeValue).compareTo(SalaryEntityUtil.empty2Zero(afterValue)) == 0) {
continue;
}
InsuranceArchivesBaseHistoryPO adjustItem = new InsuranceArchivesBaseHistoryPO();
BeanUtils.copyProperties(adjustInfo, adjustItem);
adjustItem.setAdjustWelfareItemId(Long.valueOf(key));
adjustItem.setAdjustBeforeBaseValue(beforeValue);
adjustItem.setAdjustAfterBaseValue(afterValue);
adjustItem.setOperateTime(now);
adjustItem.setOperator(creator);
adjustItem.setCreator(creator);
adjustItem.setCreateTime(now);
adjustItem.setUpdateTime(now);
adjustItem.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue());
adjustItem.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY);
adjustItem.setId(IdGenerator.generate());
toCreateAdjustHistoryList.add(adjustItem);
}
}
}
return toCreateAdjustHistoryList;
}
@ -2059,8 +2066,14 @@ public class SIArchivesBiz {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
InsuranceBaseAdjustHistoryMapper mapper = sqlSession.getMapper(InsuranceBaseAdjustHistoryMapper.class);
List<InsuranceArchivesBaseHistoryDTO> list = mapper.listByEmployeeIdAndOperator(operator, employeeId);
return list;
List<InsuranceArchivesBaseHistoryDTO> empList = mapper.listByEmployeeIdAndOperator(operator, employeeId);
List<InsuranceArchivesBaseHistoryDTO> extEmpList = mapper.listByExtEmpIdAndOperator(operator, employeeId);
if (extEmpList != null) {
empList.addAll(extEmpList);
empList = empList.stream().filter(f -> StringUtils.isNotBlank(f.getEmployeeName()))
.sorted(Comparator.comparing(InsuranceArchivesBaseHistoryDTO::getOperateTime).reversed()).collect(Collectors.toList());
}
return empList;
} finally {
sqlSession.close();
}

View File

@ -26,4 +26,5 @@ public interface InsuranceBaseAdjustHistoryMapper {
* 根据操作人或操作对象获取基数调整记录
*/
List<InsuranceArchivesBaseHistoryDTO> listByEmployeeIdAndOperator(@Param("operator")Long operator, @Param("employeeId")Long employeeId);
List<InsuranceArchivesBaseHistoryDTO> listByExtEmpIdAndOperator(@Param("operator")Long operator, @Param("employeeId")Long employeeId);
}

View File

@ -196,4 +196,40 @@
</if>
ORDER BY t.operate_time DESC, t.adjust_welfare_item_id ASC
</select>
<select id="listByExtEmpIdAndOperator" resultType="com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseHistoryDTO">
SELECT
t.id
, t.employee_id
, t.payment_organization
, t.welfare_type
, t.adjust_before_scheme_id
, t.adjust_after_scheme_id
, t.adjust_before_base_value
, t.adjust_after_base_value
, t.adjust_welfare_item_id
, t.operator
, t.operate_time
, ca.insurance_name as welfareItemName
, sb.scheme_name as adjustBeforeSchemeName
, sa.scheme_name as adjustAfterSchemeName
, eo.lastname as operatorName
, ee.username as employeeName
, p.name as paymentOrganizationName
FROM hrsa_insurance_base_history t
LEFT JOIN hrmresource eo on eo.id = t.operator
LEFT JOIN hrsa_external_employee ee on ee.id = t.employee_id
LEFT JOIN hrsa_social_security_scheme sb on sb.id = t.adjust_before_scheme_id
LEFT JOIN hrsa_social_security_scheme sa on sa.id = t.adjust_after_scheme_id
LEFT JOIN hrsa_insurance_category ca on ca.id = t.adjust_welfare_item_id
LEFT JOIN hrsa_tax_agent p on p.id = t.payment_organization
WHERE t.delete_type = 0
<if test="employeeId != null ">
AND t.employee_id = #{employeeId}
</if>
<if test="operator != null ">
AND t.operator = #{operator}
</if>
ORDER BY t.operate_time DESC, t.adjust_welfare_item_id ASC
</select>
</mapper>