diff --git a/resource/sqlupgrade/DM/sql202504030103.sql b/resource/sqlupgrade/DM/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/DM/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/resource/sqlupgrade/GS/sql202504030103.sql b/resource/sqlupgrade/GS/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/GS/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/resource/sqlupgrade/JC/sql202504030103.sql b/resource/sqlupgrade/JC/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/JC/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202504030103.sql b/resource/sqlupgrade/Mysql/sql202504030103.sql new file mode 100644 index 000000000..44253d12e --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202504030103.sql @@ -0,0 +1 @@ +ALTER TABLE hrsa_push_setting_item ADD COLUMN sorted_index int(0); \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202504030103.sql b/resource/sqlupgrade/Oracle/sql202504030103.sql new file mode 100644 index 000000000..d5ea36ecf --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202504030103.sql @@ -0,0 +1,2 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202504030103.sql b/resource/sqlupgrade/PG/sql202504030103.sql new file mode 100644 index 000000000..4dd4ec62f --- /dev/null +++ b/resource/sqlupgrade/PG/sql202504030103.sql @@ -0,0 +1 @@ +alter table hrsa_push_setting_item add sorted_index int ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202504030103.sql b/resource/sqlupgrade/SQLServer/sql202504030103.sql new file mode 100644 index 000000000..ace32b9be --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202504030103.sql @@ -0,0 +1,2 @@ +alter table hrsa_push_setting_item add sorted_index int +go \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202504030103.sql b/resource/sqlupgrade/ST/sql202504030103.sql new file mode 100644 index 000000000..97725c02c --- /dev/null +++ b/resource/sqlupgrade/ST/sql202504030103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_push_setting_item ADD sorted_index NUMBER; +/ + diff --git a/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java index a45d4635f..22c8832d6 100644 --- a/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java +++ b/src/com/engine/salary/entity/push/dto/PushSettingItemDTO.java @@ -59,4 +59,7 @@ public class PushSettingItemDTO { @TableTitle(title = "字段类型", dataIndex = "fieldTypeName", key = "fieldTypeName") private String fieldTypeName; + @TableTitle(title = "排序", dataIndex = "sortedIndex", key = "sortedIndex") + private Integer sortedIndex; + } \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java index 57f46c330..d095b9697 100644 --- a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -59,6 +59,11 @@ public class PushSettingItemSaveParam { @DataCheck(require = true, message = "字段类型为空") private PushItemFieldEnum fieldType; + /** + * 排序 + */ + private Integer sortedIndex; + //主键id集合 private Collection ids; diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java index ad7f97da1..71b16e335 100644 --- a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -62,6 +62,10 @@ public class PushSettingItemPO { @ElogTransform(name = "字段类型") private Integer fieldType; + + @ElogTransform(name = "排序") + private Integer sortedIndex; + /** * 租户ID */ diff --git a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java index 57321e2ad..392985cc1 100644 --- a/src/com/engine/salary/enums/push/PushRecordStatusEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -14,13 +14,15 @@ import java.util.Objects; * @version 1.0 **/ public enum PushRecordStatusEnum implements BaseEnum { - DATA_PREPARE(0, "数据构建", 87625), - DATA_FINISH(1, "构建完毕", 87625), - RUN_WAITING(2, "等待执行", 87625), - RUN_PROGRESS(3, "执行中", 85393), - RUN_COMPLETE(4, "执行完毕", 85393), - RUN_SUCCESS(5, "执行成功", 85393), - RUN_FAIL(6, "执行失败", 85393); + 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); private int value; diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml index f708ed48c..2c5322940 100644 --- a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml @@ -12,6 +12,7 @@ + @@ -32,6 +33,7 @@ , t.setting_id , t.tenant_key , t.update_time + , t.sorted_index @@ -40,6 +42,7 @@ FROM hrsa_push_setting_item t WHERE delete_type = 0 + ORDER BY sorted_index DESC @@ -85,6 +88,9 @@ AND setting_id = #{settingId} + + + AND sorted_index = #{sortedIndex} AND tenant_key = #{tenantKey} @@ -98,7 +104,7 @@ #{id} - ORDER BY id DESC + ORDER BY sorted_index DESC @@ -137,6 +143,9 @@ setting_id, + + sorted_index, + tenant_key, @@ -175,6 +184,9 @@ #{settingId}, + + #{sortedIndex}, + #{tenantKey}, @@ -197,6 +209,7 @@ item_name=#{itemName}, source=#{source}, setting_id=#{settingId}, + sorted_index=#{sortedIndex}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -235,6 +248,9 @@ setting_id=#{settingId}, + + sorted_index=#{sortedIndex}, + tenant_key=#{tenantKey}, diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java index f3e5c91f9..975cb77de 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -62,6 +62,8 @@ public interface PushService { void push(Long id); + void withdraw(Long id); + void removeRecords(List records); PageInfo recordList(RecordListQueryParam param); diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 548c4b3f0..bb6f172b0 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -191,6 +191,7 @@ public class PushServiceImpl extends Service implements PushService { .fieldName(po.getFieldName()) .fieldType(PushItemFieldEnum.parseByValue(po.getFieldType())) .fieldTypeName(PushItemFieldEnum.parseByValue(po.getFieldType()).getDefaultLabel()) + .sortedIndex(po.getSortedIndex()) .build() ).collect(Collectors.toList()); @@ -212,6 +213,7 @@ public class PushServiceImpl extends Service implements PushService { .source(param.getSource()) .fieldName(param.getFieldName()) .fieldType(param.getFieldType().getValue()) + .sortedIndex(param.getSortedIndex()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -232,6 +234,7 @@ public class PushServiceImpl extends Service implements PushService { po.setSource(param.getSource()); po.setFieldName(param.getFieldName()); po.setFieldType(param.getFieldType().getValue()); + po.setSortedIndex(param.getSortedIndex()); po.setUpdateTime(now); getPushSettingItemMapper().update(po); @@ -406,14 +409,12 @@ public class PushServiceImpl extends Service implements PushService { public void push(Long id) { //待推送 PushRecordPO pushRecordPO = getPushRecordMapper().getById(id); - pushRecordPO.setStatus(PushRecordStatusEnum.RUN_WAITING.getValue()); - pushRecordPO.setStartTime(new Date()); - getPushRecordMapper().updateIgnoreNull(pushRecordPO); try { pushRecordPO.setStartTime(new Date()); pushRecordPO.setStatus(PushRecordStatusEnum.RUN_PROGRESS.getValue()); getPushRecordMapper().updateIgnoreNull(pushRecordPO); + List pushRecordDetailPOS = getPushRecordDetailMapper().listSome(PushRecordDetailPO.builder().recordId(pushRecordPO.getId()).build()); pushRecordDetailPOS.forEach(pushRecordDetailPO -> { @@ -452,6 +453,53 @@ public class PushServiceImpl extends Service implements PushService { getPushRecordMapper().updateIgnoreNull(pushRecordPO); } + @Override + public void withdraw(Long id) { + //待撤回 + PushRecordPO pushRecordPO = getPushRecordMapper().getById(id); + + try { + pushRecordPO.setStartTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW.getValue()); + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + 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); + } + + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.SUCCESS.getValue()); + } catch (Exception e) { + pushRecordDetailPO.setFailReason(e.getMessage()); + pushRecordDetailPO.setStatus(PushRecordDetailStatusEnum.FAIL.getValue()); + } + getPushRecordDetailMapper().updateIgnoreNull(pushRecordDetailPO); + }); + + pushRecordPO.setEndTime(new Date()); + pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW_SUCCESS.getValue()); + } catch (Exception e) { + pushRecordPO.setFailReason(e.getMessage()); + pushRecordPO.setStatus(PushRecordStatusEnum.WITHDRAW_FAIL.getValue()); + } + getPushRecordMapper().updateIgnoreNull(pushRecordPO); + } + /** * 启动推送 *