数据推送配置

This commit is contained in:
钱涛 2024-11-15 13:57:35 +08:00
parent 00271f3a4b
commit a40697ec33
15 changed files with 1380 additions and 0 deletions

View File

@ -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{
}

View File

@ -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<Long> ids;
}

View File

@ -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<Long> salarySobIds;
/**
* 建模id
*/
private Integer modeId;
/**
* 模块名称
*/
private String modeName;
/**
* 数据库表
*/
@DataCheck(require = true, message = "数据库表为空")
private String tableName;
}

View File

@ -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<Long> ids;
}

View File

@ -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<Long> 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<Long> ids;
}

View File

@ -0,0 +1,73 @@
package com.engine.salary.enums.push;
import com.engine.salary.enums.BaseEnum;
import java.util.Arrays;
import java.util.Objects;
/**
* 推送数据来源
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public enum PushItemFieldEnum implements BaseEnum<Integer> {
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 "";
}
}

View File

@ -0,0 +1,70 @@
package com.engine.salary.enums.push;
import com.engine.salary.enums.BaseEnum;
import java.util.Arrays;
import java.util.Objects;
/**
* 推送数据来源
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public enum PushItemSourceEnum implements BaseEnum<Integer> {
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 "";
}
}

View File

@ -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<PushSettingItemPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<PushSettingItemPO> 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<Long> ids);
}

View File

@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.push.PushSettingItemMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.push.po.PushSettingItemPO">
<result column="create_time" property="createTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="field_name" property="fieldName"/>
<result column="field_type" property="fieldType"/>
<result column="id" property="id"/>
<result column="item" property="item"/>
<result column="item_name" property="itemName"/>
<result column="source" property="source"/>
<result column="setting_id" property="settingId"/>
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
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
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_push_setting_item t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_push_setting_item t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.push.po.PushSettingItemPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_push_setting_item t
WHERE delete_type = 0
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="fieldName != null">
AND field_name = #{fieldName}
</if>
<if test="fieldType != null">
AND field_type = #{fieldType}
</if>
<if test="id != null">
AND id = #{id}
</if>
<if test="item != null">
AND item = #{item}
</if>
<if test="itemName != null">
AND item_name = #{itemName}
</if>
<if test="source != null">
AND source = #{source}
</if>
<if test="settingId != null">
AND setting_id = #{settingId}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.push.po.PushSettingItemPO">
INSERT INTO hrsa_push_setting_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createTime != null">
create_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="fieldName != null">
field_name,
</if>
<if test="fieldType != null">
field_type,
</if>
<if test="id != null">
id,
</if>
<if test="item != null">
item,
</if>
<if test="itemName != null">
item_name,
</if>
<if test="source != null">
source,
</if>
<if test="settingId != null">
setting_id,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="createTime != null">
#{createTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="fieldName != null">
#{fieldName},
</if>
<if test="fieldType != null">
#{fieldType},
</if>
<if test="id != null">
#{id},
</if>
<if test="item != null">
#{item},
</if>
<if test="itemName != null">
#{itemName},
</if>
<if test="source != null">
#{source},
</if>
<if test="settingId != null">
#{settingId},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.push.po.PushSettingItemPO">
UPDATE hrsa_push_setting_item
<set>
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},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.push.po.PushSettingItemPO">
UPDATE hrsa_push_setting_item
<set>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="fieldName != null">
field_name=#{fieldName},
</if>
<if test="fieldType != null">
field_type=#{fieldType},
</if>
<if test="item != null">
item=#{item},
</if>
<if test="itemName != null">
item_name=#{itemName},
</if>
<if test="source != null">
source=#{source},
</if>
<if test="settingId != null">
setting_id=#{settingId},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete">
UPDATE hrsa_push_setting_item
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<delete id="deleteByIds">
UPDATE hrsa_push_setting_item
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -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<PushSettingPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<PushSettingPO> 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<Long> ids);
}

View File

@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.push.PushSettingMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.push.po.PushSettingPO">
<result column="id" property="id"/>
<result column="able" property="able"/>
<result column="name" property="name"/>
<result column="salary_sob_ids" property="salarySobIds" typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
<result column="table_name" property="tableName"/>
<result column="mode_id" property="modeId"/>
<result column="mode_name" property="modeName"/>
<result column="create_time" property="createTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
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
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_push_setting t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_push_setting t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.push.po.PushSettingPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_push_setting t
WHERE delete_type = 0
<if test="able != null">
AND able = #{able}
</if>
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="name != null">
AND name = #{name}
</if>
<if test="id != null">
AND id = #{id}
</if>
<if test="modeId != null">
AND mode_id = #{modeId}
</if>
<if test="modeName != null">
AND mode_name = #{modeName}
</if>
<if test="salarySobIds != null">
AND salary_sob_ids = #{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}
</if>
<if test="tableName != null">
AND table_name = #{tableName}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.push.po.PushSettingPO">
INSERT INTO hrsa_push_setting
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="able != null">
able,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="name != null">
name,
</if>
<if test="id != null">
id,
</if>
<if test="modeId != null">
mode_id,
</if>
<if test="modeName != null">
mode_name,
</if>
<if test="salarySobIds != null">
salary_sob_ids,
</if>
<if test="tableName != null">
table_name,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="able != null">
#{able},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="name != null">
#{name},
</if>
<if test="id != null">
#{id},
</if>
<if test="modeId != null">
#{modeId},
</if>
<if test="modeName != null">
#{modeName},
</if>
<if test="salarySobIds != null">
#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler},
</if>
<if test="tableName != null">
#{tableName},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.push.po.PushSettingPO">
UPDATE hrsa_push_setting
<set>
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},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.push.po.PushSettingPO">
UPDATE hrsa_push_setting
<set>
<if test="able != null">
able=#{able},
</if>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="name != null">
name=#{name},
</if>
<if test="modeId != null">
mode_id=#{modeId},
</if>
<if test="modeName != null">
mode_name=#{modeName},
</if>
<if test="salarySobIds != null">
salary_sob_ids=#{salarySobIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler},
</if>
<if test="tableName != null">
table_name=#{tableName},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete">
UPDATE hrsa_push_setting
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<delete id="deleteByIds">
UPDATE hrsa_push_setting
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -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);
}

View File

@ -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;
/**
* 推送服务
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @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;
}
}

View File

@ -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;
/**
* 数据推送
* <p>Copyright: Copyright (c) 2024</p>
* <p>Company: 泛微软件</p>
*
* @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<PushSettingSaveParam, PushSettingPO>(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<PushSettingItemSaveParam, PushSettingItemPO>(user).run(getPushWrapper(user)::saveItem, param);
}
}

View File

@ -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);
}
}