From a40697ec3356306084cf9560f80e66ff732030bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 15 Nov 2024 13:57:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/api/salary/web/PushController.java | 8 + .../push/param/PushSettingItemSaveParam.java | 65 +++++ .../push/param/PushSettingSaveParam.java | 59 ++++ .../entity/push/po/PushSettingItemPO.java | 95 +++++++ .../salary/entity/push/po/PushSettingPO.java | 93 ++++++ .../salary/enums/push/PushItemFieldEnum.java | 73 +++++ .../salary/enums/push/PushItemSourceEnum.java | 70 +++++ .../mapper/push/PushSettingItemMapper.java | 72 +++++ .../mapper/push/PushSettingItemMapper.xml | 268 ++++++++++++++++++ .../salary/mapper/push/PushSettingMapper.java | 73 +++++ .../salary/mapper/push/PushSettingMapper.xml | 268 ++++++++++++++++++ .../engine/salary/service/PushService.java | 21 ++ .../salary/service/impl/PushServiceImpl.java | 134 +++++++++ src/com/engine/salary/web/PushController.java | 53 ++++ .../engine/salary/wrapper/PushWrapper.java | 28 ++ 15 files changed, 1380 insertions(+) create mode 100644 src/com/api/salary/web/PushController.java create mode 100644 src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java create mode 100644 src/com/engine/salary/entity/push/param/PushSettingSaveParam.java create mode 100644 src/com/engine/salary/entity/push/po/PushSettingItemPO.java create mode 100644 src/com/engine/salary/entity/push/po/PushSettingPO.java create mode 100644 src/com/engine/salary/enums/push/PushItemFieldEnum.java create mode 100644 src/com/engine/salary/enums/push/PushItemSourceEnum.java create mode 100644 src/com/engine/salary/mapper/push/PushSettingItemMapper.java create mode 100644 src/com/engine/salary/mapper/push/PushSettingItemMapper.xml create mode 100644 src/com/engine/salary/mapper/push/PushSettingMapper.java create mode 100644 src/com/engine/salary/mapper/push/PushSettingMapper.xml create mode 100644 src/com/engine/salary/service/PushService.java create mode 100644 src/com/engine/salary/service/impl/PushServiceImpl.java create mode 100644 src/com/engine/salary/web/PushController.java create mode 100644 src/com/engine/salary/wrapper/PushWrapper.java diff --git a/src/com/api/salary/web/PushController.java b/src/com/api/salary/web/PushController.java new file mode 100644 index 000000000..854a3b9b7 --- /dev/null +++ b/src/com/api/salary/web/PushController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/push") +public class PushController extends com.engine.salary.web.PushController{ + +} diff --git a/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java new file mode 100644 index 000000000..af96be721 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingItemSaveParam.java @@ -0,0 +1,65 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.enums.push.PushItemFieldEnum; +import com.engine.salary.enums.push.PushItemSourceEnum; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; + +/** + * 数据推送配置明细 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemSaveParam { + + + private Long id; + + /** + * 设置id + */ + @DataCheck(require = true, message = "设置id为空") + private Long settingId; + + /** + * 项目 + */ + @DataCheck(require = true, message = "项目为空") + private String item; + + /** + * 项目名 + */ + @DataCheck(require = true, message = "项目名为空") + private String itemName; + + /** + * 项目类型 + */ + @DataCheck(require = true, message = "数据来源") + private PushItemSourceEnum source; + + /** + * 数据库字段 + */ + @DataCheck(require = true, message = "数据库字段为空") + private String fieldName; + + /** + * 字段类型 + */ + @DataCheck(require = true, message = "字段类型为空") + private PushItemFieldEnum fieldType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java b/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java new file mode 100644 index 000000000..cdc28d327 --- /dev/null +++ b/src/com/engine/salary/entity/push/param/PushSettingSaveParam.java @@ -0,0 +1,59 @@ +package com.engine.salary.entity.push.param; + +import com.engine.salary.util.valid.DataCheck; +import com.engine.salary.util.valid.ValidTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 数据推送配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingSaveParam { + + private Long id; + + /** + * 任务名称 + */ + @DataCheck(require = true, type = ValidTypeEnum.STRING, max = 50, labelId = 86185, message = "任务名称为空") + private String name; + + /** + * 是否启用,0否 1是 + */ + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, message = "是否启用为空") + private Integer able; + + + /** + * 薪资帐套集合 + */ + private List salarySobIds; + + /** + * 建模id + */ + private Integer modeId; + + /** + * 模块名称 + */ + private String modeName; + + + /** + * 数据库表 + */ + @DataCheck(require = true, message = "数据库表为空") + private String tableName; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingItemPO.java b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java new file mode 100644 index 000000000..fdd9b1442 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushSettingItemPO.java @@ -0,0 +1,95 @@ +package com.engine.salary.entity.push.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 数据推送配置明细 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingItemPO { + + + @ElogTransform(name = "") + private Long id; + + /** + * 设置id + */ + @ElogTransform(name = "设置id") + private Long settingId; + + /** + * 项目 + */ + @ElogTransform(name = "项目") + private String item; + + /** + * 项目名 + */ + @ElogTransform(name = "项目名") + private String itemName; + + /** + * 项目类型 + */ + @ElogTransform(name = "项目类型") + private Integer source; + + /** + * 数据库字段 + */ + @ElogTransform(name = "数据库字段") + private String fieldName; + + /** + * 字段类型 + */ + @ElogTransform(name = "字段类型") + private Integer fieldType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushSettingPO.java b/src/com/engine/salary/entity/push/po/PushSettingPO.java new file mode 100644 index 000000000..a997593f9 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushSettingPO.java @@ -0,0 +1,93 @@ +package com.engine.salary.entity.push.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + * 数据推送配置 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PushSettingPO { + + @ElogTransform(name = "") + private Long id; + + /** + * 是否启用,0否 1是 + */ + @ElogTransform(name = "是否启用,0否 1是") + private Integer able; + + + @ElogTransform(name = "任务名称") + private String name; + + /** + * 薪资帐套集合 + */ + @ElogTransform(name = "薪资帐套集合") + private List salarySobIds; + + /** + * 建模id + */ + @ElogTransform(name = "建模id") + private Integer modeId; + + /** + * 模块名称 + */ + @ElogTransform(name = "模块名称") + private String modeName; + + /** + * 数据库表 + */ + @ElogTransform(name = "数据库表") + private String tableName; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/push/PushItemFieldEnum.java b/src/com/engine/salary/enums/push/PushItemFieldEnum.java new file mode 100644 index 000000000..fee779972 --- /dev/null +++ b/src/com/engine/salary/enums/push/PushItemFieldEnum.java @@ -0,0 +1,73 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 推送数据来源 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushItemFieldEnum implements BaseEnum { + + NUMBER(1, "数值", 87625), + TEXT(2, "文本", 85393), + DATE(3, "日期", 85393), + YEAR(4, "日期文本-年", 85393), + YEAR_MONTH(5, "日期文本-年月", 85393), + YEAR_MONTH_DAY(6, "日期文本-年月日", 85393); + + private int value; + + private String defaultLabel; + + private int labelId; + + PushItemFieldEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushItemFieldEnum parseByValue(int value) { + for (PushItemFieldEnum salaryDataSourceEnum : PushItemFieldEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushItemFieldEnum[] enumAry = PushItemFieldEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (enumAry[i].getValue().equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/enums/push/PushItemSourceEnum.java b/src/com/engine/salary/enums/push/PushItemSourceEnum.java new file mode 100644 index 000000000..ec9ee71bd --- /dev/null +++ b/src/com/engine/salary/enums/push/PushItemSourceEnum.java @@ -0,0 +1,70 @@ +package com.engine.salary.enums.push; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Arrays; +import java.util.Objects; + +/** + * 推送数据来源 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum PushItemSourceEnum implements BaseEnum { + + EMPLOYEE_INFO(0, "员工基本信息", 85366), + SALARY_ACCT_EMPLOYEE(1, "核算信息", 85368), + SALARY_CYCLE(2, "核算日期", 85368), + SALARY_ITEM(3, "薪资项目", 84960); + private int value; + + private String defaultLabel; + + private int labelId; + + PushItemSourceEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static PushItemSourceEnum parseByValue(int value) { + for (PushItemSourceEnum salaryDataSourceEnum : PushItemSourceEnum.values()) { + if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { + return salaryDataSourceEnum; + } + } + return null; + } + + public static String getDefaultLabelByValue(Integer value) { + if (value == null) { + return ""; + } + PushItemSourceEnum[] enumAry = PushItemSourceEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (Integer.valueOf(enumAry[i].getValue()).equals(value)) { + return enumAry[i].getDefaultLabel(); + } + } + return ""; + } +} diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.java b/src/com/engine/salary/mapper/push/PushSettingItemMapper.java new file mode 100644 index 000000000..3f550b532 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushSettingItemPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushSettingItemMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushSettingItemPO pushSettingItem); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushSettingItemPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushSettingItem 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushSettingItemPO pushSettingItem); + + /** + * 修改,修改所有字段 + * + * @param pushSettingItem 修改的记录 + * @return 返回影响行数 + */ + int update(PushSettingItemPO pushSettingItem); + + /** + * 修改,忽略null字段 + * + * @param pushSettingItem 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushSettingItemPO pushSettingItem); + + /** + * 删除记录 + * + * @param pushSettingItem 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushSettingItemPO pushSettingItem); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml new file mode 100644 index 000000000..f708ed48c --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingItemMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.field_name + , t.field_type + , t.id + , t.item + , t.item_name + , t.source + , t.setting_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_setting_item + + + + create_time, + + + creator, + + + delete_type, + + + field_name, + + + field_type, + + + id, + + + item, + + + item_name, + + + source, + + + setting_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{fieldName}, + + + #{fieldType}, + + + #{id}, + + + #{item}, + + + #{itemName}, + + + #{source}, + + + #{settingId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_setting_item + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + field_name=#{fieldName}, + field_type=#{fieldType}, + item=#{item}, + item_name=#{itemName}, + source=#{source}, + setting_id=#{settingId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting_item + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + field_name=#{fieldName}, + + + field_type=#{fieldType}, + + + item=#{item}, + + + item_name=#{itemName}, + + + source=#{source}, + + + setting_id=#{settingId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting_item + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_setting_item + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.java b/src/com/engine/salary/mapper/push/PushSettingMapper.java new file mode 100644 index 000000000..dcfe71ccc --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushSettingPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushSettingMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushSettingPO pushSetting); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushSettingPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushSetting 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushSettingPO pushSetting); + + + /** + * 修改,修改所有字段 + * + * @param pushSetting 修改的记录 + * @return 返回影响行数 + */ + int update(PushSettingPO pushSetting); + + /** + * 修改,忽略null字段 + * + * @param pushSetting 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushSettingPO pushSetting); + + /** + * 删除记录 + * + * @param pushSetting 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushSettingPO pushSetting); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushSettingMapper.xml b/src/com/engine/salary/mapper/push/PushSettingMapper.xml new file mode 100644 index 000000000..fa162f0b8 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushSettingMapper.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + t + . + able + , t.create_time + , t.creator + , t.delete_type + , t.name + , t.id + , t.mode_id + , t.mode_name + , t.salary_sob_ids + , t.table_name + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_setting + + + + able, + + + create_time, + + + creator, + + + delete_type, + + + name, + + + id, + + + mode_id, + + + mode_name, + + + salary_sob_ids, + + + table_name, + + + tenant_key, + + + update_time, + + + + + #{able}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{name}, + + + #{id}, + + + #{modeId}, + + + #{modeName}, + + + #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{tableName}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_setting + + able=#{able}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + name=#{name}, + mode_id=#{modeId}, + mode_name=#{modeName}, + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + table_name=#{tableName}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting + + + able=#{able}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + name=#{name}, + + + mode_id=#{modeId}, + + + mode_name=#{modeName}, + + + salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + table_name=#{tableName}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_setting + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_setting + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/PushService.java b/src/com/engine/salary/service/PushService.java new file mode 100644 index 000000000..3c9e60f66 --- /dev/null +++ b/src/com/engine/salary/service/PushService.java @@ -0,0 +1,21 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; + +public interface PushService { + + /** + * 保存推送配置 + * @param param + */ + PushSettingPO save(PushSettingSaveParam param); + + /** + * 保存明细配置 + * @param param + */ + PushSettingItemPO saveItem(PushSettingItemSaveParam param); +} diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java new file mode 100644 index 000000000..2fa5678ac --- /dev/null +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -0,0 +1,134 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.push.PushSettingItemMapper; +import com.engine.salary.mapper.push.PushSettingMapper; +import com.engine.salary.service.PushService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.valid.ValidUtil; +import weaver.hrm.User; + +import java.util.Date; + +/** + * 推送服务 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class PushServiceImpl extends Service implements PushService { + + private PushSettingMapper getPushSettingMapper() { + return MapperProxyFactory.getProxy(PushSettingMapper.class); + } + + private PushSettingItemMapper getPushSettingItemMapper() { + return MapperProxyFactory.getProxy(PushSettingItemMapper.class); + } + + + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + @Override + public PushSettingPO save(PushSettingSaveParam param) { + ValidUtil.doValidator(param); + + Date now = new Date(); + + Long id = param.getId(); + PushSettingPO po; + if (id == null) { + po = PushSettingPO.builder() + .id(IdGenerator.generate()) + .able(param.getAble()) + .name(param.getName()) + .salarySobIds(param.getSalarySobIds()) + .modeId(param.getModeId()) + .modeName(param.getModeName()) + .tableName(param.getTableName()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushSettingMapper().insertIgnoreNull(po); + + } else { + po = getPushSettingMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("推送配置不存在!"); + } + po.setAble(param.getAble()); + po.setAble(param.getAble()); + po.setName(param.getName()); + po.setSalarySobIds(param.getSalarySobIds()); + po.setModeId(param.getModeId()); + po.setModeName(param.getModeName()); + po.setTableName(param.getTableName()); + po.setUpdateTime(now); + + getPushSettingMapper().update(po); + } + + return po; + } + + @Override + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { + ValidUtil.doValidator(param); + Date now = new Date(); + Long id = param.getId(); + PushSettingItemPO po; + if (id == null) { + po = PushSettingItemPO.builder() + .id(IdGenerator.generate()) + .settingId(param.getSettingId()) + .item(param.getItem()) + .itemName(param.getItemName()) + .source(param.getSource().getValue()) + .fieldName(param.getFieldName()) + .fieldType(param.getFieldType().getValue()) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + + getPushSettingItemMapper().insertIgnoreNull(po); + + } else { + po = getPushSettingItemMapper().getById(id); + if (po == null) { + throw new SalaryRunTimeException("推送配置明细不存在!"); + } + po.setSettingId(param.getSettingId()); + po.setItem(param.getItem()); + po.setItemName(param.getItemName()); + po.setSource(param.getSource().getValue()); + po.setFieldName(param.getFieldName()); + po.setFieldType(param.getFieldType().getValue()); + po.setUpdateTime(now); + + getPushSettingItemMapper().update(po); + + } + + return po; + } +} diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java new file mode 100644 index 000000000..f85626da1 --- /dev/null +++ b/src/com/engine/salary/web/PushController.java @@ -0,0 +1,53 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.wrapper.PushWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; + +/** + * 数据推送 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class PushController { + + private PushWrapper getPushWrapper(User user) { + return ServiceUtil.getService(PushWrapper.class, user); + } + + @POST + @Path("/setting/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::save, param); + } + + + @POST + @Path("/item/save") + @Produces(MediaType.APPLICATION_JSON) + public String saveitem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PushSettingItemSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getPushWrapper(user)::saveItem, param); + } + +} diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java new file mode 100644 index 000000000..3c552f608 --- /dev/null +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -0,0 +1,28 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.push.param.PushSettingItemSaveParam; +import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushSettingItemPO; +import com.engine.salary.entity.push.po.PushSettingPO; +import com.engine.salary.service.PushService; +import com.engine.salary.service.impl.PushServiceImpl; +import weaver.hrm.User; + + +public class PushWrapper extends Service { + + private PushService getPushService(User user) { + return ServiceUtil.getService(PushServiceImpl.class, user); + } + + + public PushSettingPO save(PushSettingSaveParam param) { + return getPushService(user).save(param); + } + + public PushSettingItemPO saveItem(PushSettingItemSaveParam param) { + return getPushService(user).saveItem(param); + } +}