数据推送

This commit is contained in:
钱涛 2025-04-07 09:19:47 +08:00
parent d4f45d5eb3
commit f4c025e078
16 changed files with 97 additions and 54 deletions

View File

@ -1,3 +1,6 @@
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER;
/
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0);
/

View File

@ -1,3 +1,6 @@
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER;
/
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0);
/

View File

@ -1,3 +1,6 @@
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER;
/
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0);
/

View File

@ -1 +1,3 @@
ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0);
ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0);
ALTER TABLE hrsa_push_record_detail ADD COLUMN data_id bigint(0);

View File

@ -1,2 +1,5 @@
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER;
/
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0);
/

View File

@ -1 +1,3 @@
alter table hrsa_push_setting_item add sorted_index int ;
alter table hrsa_push_setting_item add sorted_index int ;
alter table hrsa_push_record_detail add data_id bigint ;

View File

@ -1,2 +1,5 @@
alter table hrsa_push_setting_item add sorted_index int
go
alter table hrsa_push_record_detail add data_id bigint
go

View File

@ -1,3 +1,6 @@
ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER;
/
ALTER TABLE hrsa_push_record_detail ADD data_id NUMBER(38,0);
/

View File

@ -51,7 +51,7 @@ public class PushRecordDTO {
/**
* 数据库表名
*/
@TableTitle(title = "数据表名", dataIndex = "name", key = "tableName")
@TableTitle(title = "数据表名", dataIndex = "tableName", key = "tableName")
private String tableName;

View File

@ -34,6 +34,11 @@ public class PushRecordDetailPO {
@ElogTransform(name = "核算人员id")
private Long acctEmpId;
/**
* 核算人员id
*/
private Long dataId;
/**
* 执行状态
* @see com.engine.salary.enums.push.PushRecordDetailStatusEnum

View File

@ -17,7 +17,8 @@ public enum PushRecordDetailStatusEnum implements BaseEnum<Integer> {
PREPARE(0, "待推送", 87625),
SUCCESS(1, "推送成功", 85393),
FAIL(2, "推送失败", 85393),
WITHDRAW(3, "已撤回", 85393);
WITHDRAW_SUCCESS(3, "已撤回", 85393),
WITHDRAW_FAIL(4, "撤回失败", 85393);
private int value;

View File

@ -17,12 +17,11 @@ public enum PushRecordStatusEnum implements BaseEnum<Integer> {
DATA_PREPARE(0, "准备中", 87625),
DATA_FINISH(1, "准备完毕", 87625),
RUN_PROGRESS(2, "推送中", 85393),
RUN_COMPLETE(3, "推送完毕", 85393),
RUN_SUCCESS(4, "推送成功", 85393),
RUN_FAIL(5, "推送失败", 85393),
WITHDRAW(6, "撤回中", 85393),
WITHDRAW_SUCCESS(7, "撤回成功", 85393),
WITHDRAW_FAIL(8, "撤回失败", 85393);
RUN_SUCCESS(3, "推送成功", 85393),
RUN_FAIL(4, "推送失败", 85393),
WITHDRAW(5, "撤回中", 85393),
WITHDRAW_SUCCESS(6, "已撤回", 85393),
WITHDRAW_FAIL(7, "撤回失败", 85393);
private int value;

View File

@ -13,6 +13,7 @@
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
<result column="fail_reason" property="failReason"/>
<result column="data_id" property="dataId"/>
</resultMap>
<!-- 表字段 -->
@ -30,6 +31,7 @@
, t.tenant_key
, t.update_time
, t.fail_reason
, t.data_id
</sql>
<!-- 查询全部 -->
@ -106,6 +108,7 @@
, t.tenant_key
, t.update_time
, t.fail_reason as failReason
, t.data_id as dataId
, e.LASTNAME as username
FROM hrsa_push_record_detail t
left join hrsa_salary_acct_emp emp
@ -179,6 +182,9 @@
<if test="failReason != null">
fail_reason,
</if>
<if test="dataId != null">
data_id,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="acctEmpId != null">
@ -214,6 +220,9 @@
<if test="failReason != null">
#{failReason},
</if>
<if test="dataId != null">
#{dataId},
</if>
</trim>
</insert>
@ -231,6 +240,7 @@
tenant_key=#{tenantKey},
update_time=#{updateTime},
fail_reason=#{failReason},
data_id=#{dataId},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -270,6 +280,9 @@
<if test="failReason != null">
fail_reason=#{failReason},
</if>
<if test="dataId != null">
data_id=#{dataId},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>

View File

@ -60,6 +60,8 @@ public interface PushService {
void createPushRecord(Long salaryAcctRecordId);
void withdrawPushRecord(Long salaryAcctRecordId);
void push(Long id);
void withdraw(Long id);

View File

@ -401,10 +401,16 @@ public class PushServiceImpl extends Service implements PushService {
}
//开始
startBatchPush(recordIds);
recordIds.forEach(this::push);
}
@Override
public void withdrawPushRecord(Long salaryAcctRecordId) {
List<PushRecordPO> pushRecordPOS = getPushRecordMapper().listSome(PushRecordPO.builder().acctRecordId(salaryAcctRecordId).status(PushRecordStatusEnum.RUN_SUCCESS.getValue()).build());
pushRecordPOS.stream().map(PushRecordPO::getId).forEach(this::withdraw);
}
@Override
public void push(Long id) {
//待推送
@ -421,22 +427,29 @@ public class PushServiceImpl extends Service implements PushService {
try {
String execute = pushRecordDetailPO.getExecute();
RecordSet rs = new RecordSet();
rs.execute(execute);
//建模需要权限重构
Integer modeId = pushRecordPO.getModeId();
if (modeId != null) {
String tableName = pushRecordPO.getTableName();
rs.executeQuery("select max(id) from " + tableName);
int mainId = 0;
if (rs.next()) {
mainId = rs.getInt(1);
}
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, modeId, mainId);
}
boolean success = rs.execute(execute);
if (success) {
//建模需要权限重构
Integer modeId = pushRecordPO.getModeId();
if (modeId != null) {
String tableName = pushRecordPO.getTableName();
rs.executeQuery("select max(id) from " + tableName);
int mainId = 0;
if (rs.next()) {
mainId = rs.getInt(1);
}
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, modeId, mainId);
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue());
//记录数据id
pushRecordDetailPO.setDataId((long) mainId);
}
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue());
} else {
pushRecordDetailPO.setFailReason("sql执行失败");
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue());
}
} catch (Exception e) {
pushRecordDetailPO.setFailReason(e.getMessage());
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue());
@ -462,31 +475,25 @@ public class PushServiceImpl extends Service implements PushService {
pushRecordPO.setStartTime(new Date());
pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW.getValue());
getPushRecordMapper().updateIgnoreNull(pushRecordPO);
PushSettingPO pushSettingPO = getPushSettingMapper().getById(pushRecordPO.getSettingId());
String tableName = pushSettingPO.getTableName();
List<PushRecordDetailPO> pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build());
pushRecordDetailPOS.forEach(pushRecordDetailPO -> {
try {
String execute = pushRecordDetailPO.getExecute();
RecordSet rs = new RecordSet();
rs.execute(execute);
//建模需要权限重构
Integer modeId = pushRecordPO.getModeId();
if (modeId != null) {
String tableName = pushRecordPO.getTableName();
rs.executeQuery("select max(id) from " + tableName);
int mainId = 0;
if (rs.next()) {
mainId = rs.getInt(1);
}
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, modeId, mainId);
String sql = String.format("delete from %s where id = %s", tableName, pushRecordDetailPO.getDataId());
boolean execute = rs.execute(sql);
if (execute) {
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.WITHDRAW_SUCCESS.getValue());
} else {
pushRecordDetailPO.setFailReason("sql执行失败");
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.WITHDRAW_FAIL.getValue());
}
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue());
} catch (Exception e) {
pushRecordDetailPO.setFailReason(e.getMessage());
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue());
pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.WITHDRAW_FAIL.getValue());
}
getPushRecordDetailMapper().updateIgnoreNull(pushRecordDetailPO);
});
@ -500,15 +507,6 @@ public class PushServiceImpl extends Service implements PushService {
getPushRecordMapper().updateIgnoreNull(pushRecordPO);
}
/**
* 启动推送
*
* @param recordIds
*/
private void startBatchPush(List<Long> recordIds) {
recordIds.forEach(this::push);
}
@Override
public void removeRecords(List<Long> recordIds) {

View File

@ -543,7 +543,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
getSalaryStatisticsReportService(user).removeReportCache();
//获取推送配置
//开始推送数据
getPushService(user).createPushRecord(salaryAcctRecordId);
@ -570,6 +570,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
// 重新核算
reCalcOrBackCalc(salaryAcctRecordPO, true);
//开始推送数据
getPushService(user).withdrawPushRecord(salaryAcctRecordId);
// // 查询税款所在年的该个税扣缴义务人所有薪资核算记录
// // 获取账套所属个税扣缴义务人的核算记录