From f4c025e078566033c65b4065482b69996eec1729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 7 Apr 2025 09:19:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202504030103.sql | 3 + resource/sqlupgrade/GS/sql202504030103.sql | 3 + resource/sqlupgrade/JC/sql202504030103.sql | 3 + resource/sqlupgrade/Mysql/sql202504030103.sql | 4 +- .../sqlupgrade/Oracle/sql202504030103.sql | 3 + resource/sqlupgrade/PG/sql202504030103.sql | 4 +- .../sqlupgrade/SQLServer/sql202504030103.sql | 3 + resource/sqlupgrade/ST/sql202504030103.sql | 3 + .../salary/entity/push/dto/PushRecordDTO.java | 2 +- .../entity/push/po/PushRecordDetailPO.java | 5 ++ .../push/PushRecordDetailStatusEnum.java | 3 +- .../enums/push/PushRecordStatusEnum.java | 11 ++- .../mapper/push/PushRecordDetailMapper.xml | 13 +++ .../engine/salary/service/PushService.java | 2 + .../salary/service/impl/PushServiceImpl.java | 84 +++++++++---------- .../impl/SalaryAcctRecordServiceImpl.java | 5 +- 16 files changed, 97 insertions(+), 54 deletions(-) diff --git a/resource/sqlupgrade/DM/sql202504030103.sql b/resource/sqlupgrade/DM/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/DM/sql202504030103.sql +++ b/resource/sqlupgrade/DM/sql202504030103.sql @@ -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); +/ + diff --git a/resource/sqlupgrade/GS/sql202504030103.sql b/resource/sqlupgrade/GS/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/GS/sql202504030103.sql +++ b/resource/sqlupgrade/GS/sql202504030103.sql @@ -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); +/ + diff --git a/resource/sqlupgrade/JC/sql202504030103.sql b/resource/sqlupgrade/JC/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/JC/sql202504030103.sql +++ b/resource/sqlupgrade/JC/sql202504030103.sql @@ -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); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202504030103.sql b/resource/sqlupgrade/Mysql/sql202504030103.sql index 44253d12e..f21868d14 100644 --- a/resource/sqlupgrade/Mysql/sql202504030103.sql +++ b/resource/sqlupgrade/Mysql/sql202504030103.sql @@ -1 +1,3 @@ -ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0); \ No newline at end of file +ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0); + +ALTER TABLE hrsa_push_record_detail ADD COLUMN data_id bigint(0); diff --git a/resource/sqlupgrade/Oracle/sql202504030103.sql b/resource/sqlupgrade/Oracle/sql202504030103.sql index d5ea36ecf..8c2ab620f 100644 --- a/resource/sqlupgrade/Oracle/sql202504030103.sql +++ b/resource/sqlupgrade/Oracle/sql202504030103.sql @@ -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); / \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202504030103.sql b/resource/sqlupgrade/PG/sql202504030103.sql index 4dd4ec62f..a0bda613d 100644 --- a/resource/sqlupgrade/PG/sql202504030103.sql +++ b/resource/sqlupgrade/PG/sql202504030103.sql @@ -1 +1,3 @@ -alter table hrsa_push_setting_item add sorted_index int ; \ No newline at end of file +alter table hrsa_push_setting_item add sorted_index int ; + +alter table hrsa_push_record_detail add data_id bigint ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202504030103.sql b/resource/sqlupgrade/SQLServer/sql202504030103.sql index ace32b9be..db030fdb3 100644 --- a/resource/sqlupgrade/SQLServer/sql202504030103.sql +++ b/resource/sqlupgrade/SQLServer/sql202504030103.sql @@ -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 \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202504030103.sql b/resource/sqlupgrade/ST/sql202504030103.sql index 97725c02c..013d261c1 100644 --- a/resource/sqlupgrade/ST/sql202504030103.sql +++ b/resource/sqlupgrade/ST/sql202504030103.sql @@ -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); +/ + diff --git a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java index 03243eb73..74df0f8d4 100644 --- a/src/com/engine/salary/entity/push/dto/PushRecordDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushRecordDTO.java @@ -51,7 +51,7 @@ public class PushRecordDTO { /** * 数据库表名 */ - @TableTitle(title = "数据表名", dataIndex = "name", key = "tableName") + @TableTitle(title = "数据表名", dataIndex = "tableName", key = "tableName") private String tableName; diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java index f55a9c8f0..f971532e6 100644 --- a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -34,6 +34,11 @@ public class PushRecordDetailPO { @ElogTransform(name = "核算人员id") private Long acctEmpId; + /** + * 核算人员id + */ + private Long dataId; + /** * 执行状态 * @see com.engine.salary.enums.push.PushRecordDetailStatusEnum diff --git a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java index c303de40b..c2d677d42 100644 --- a/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordDetailStatusEnum.java @@ -17,7 +17,8 @@ public enum PushRecordDetailStatusEnum implements BaseEnum { PREPARE(0, "待推送", 87625), SUCCESS(1, "推送成功", 85393), FAIL(2, "推送失败", 85393), - WITHDRAW(3, "已撤回", 85393); + WITHDRAW_SUCCESS(3, "已撤回", 85393), + WITHDRAW_FAIL(4, "撤回失败", 85393); private int value; diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 392985cc1..3e3ea14c4 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -17,12 +17,11 @@ public enum PushRecordStatusEnum implements BaseEnum { 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; diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml index 6ab97fdc5..bdbee38fc 100644 --- a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -13,6 +13,7 @@ + @@ -30,6 +31,7 @@ , t.tenant_key , t.update_time , t.fail_reason + , t.data_id @@ -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 @@ fail_reason, + + data_id, + @@ -214,6 +220,9 @@ #{failReason}, + + #{dataId}, + @@ -231,6 +240,7 @@ tenant_key=#{tenantKey}, update_time=#{updateTime}, fail_reason=#{failReason}, + data_id=#{dataId}, WHERE id = #{id} AND delete_type = 0 @@ -270,6 +280,9 @@ fail_reason=#{failReason}, + + data_id=#{dataId}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index 975cb77de..59a6f311d 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -60,6 +60,8 @@ public interface PushService { void createPushRecord(Long salaryAcctRecordId); + void withdrawPushRecord(Long salaryAcctRecordId); + void push(Long id); void withdraw(Long id); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index bb6f172b0..fd1d7ec4d 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -401,10 +401,16 @@ public class PushServiceImpl extends Service implements PushService { } //开始 - startBatchPush(recordIds); + recordIds.forEach(this::push); } + @Override + public void withdrawPushRecord(Long salaryAcctRecordId) { + List 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 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 recordIds) { - recordIds.forEach(this::push); - } - @Override public void removeRecords(List recordIds) { diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 4ac2e690f..c451f0f67 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -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); + // // 查询税款所在年的该个税扣缴义务人所有薪资核算记录 // // 获取账套所属个税扣缴义务人的核算记录