diff --git a/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java new file mode 100644 index 000000000..7b7b9b9a2 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushRecordDetailPO.java @@ -0,0 +1,84 @@ +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 PushRecordDetailPO { + + + @ElogTransform(name = "id") + private Long id; + + /** + * 推送记录id + */ + @ElogTransform(name = "推送记录id") + private Long recordId; + + /** + * 核算人员id + */ + @ElogTransform(name = "核算人员id") + private Long acctEmpId; + + /** + * 执行状态 + */ + @ElogTransform(name = "执行状态") + private Integer status; + + /** + * 执行sql + */ + @ElogTransform(name = "执行sql") + private String execute; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/push/po/PushRecordPO.java b/src/com/engine/salary/entity/push/po/PushRecordPO.java new file mode 100644 index 000000000..ee6249123 --- /dev/null +++ b/src/com/engine/salary/entity/push/po/PushRecordPO.java @@ -0,0 +1,89 @@ +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 PushRecordPO { + + @ElogTransform(name = "") + private Long id; + + /** + * 记录名 + */ + @ElogTransform(name = "记录名") + private String name; + + /** + * 核算记录id + */ + @ElogTransform(name = "核算记录id") + private Long acctRecordId; + + + /** + * 推送配置id + */ + @ElogTransform(name = "推送配置id") + private Long settingId; + + /** + * 推送状态 + */ + @ElogTransform(name = "推送状态") + private Integer status; + + /** + * 推送类型 + */ + @ElogTransform(name = "推送类型") + private Integer type; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/push/PushItemSourceEnum.java b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java similarity index 57% rename from src/com/engine/salary/enums/push/PushItemSourceEnum.java rename to src/com/engine/salary/enums/push/PushRecordStatusEnum.java index ec9ee71bd..34e3d7a51 100644 --- a/src/com/engine/salary/enums/push/PushItemSourceEnum.java +++ b/src/com/engine/salary/enums/push/PushRecordStatusEnum.java @@ -6,26 +6,33 @@ import java.util.Arrays; import java.util.Objects; /** - * 推送数据来源 + * 推送记录状态 *

Copyright: Copyright (c) 2024

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ -public enum PushItemSourceEnum implements BaseEnum { +public enum PushRecordStatusEnum implements BaseEnum { + + NUMBER(1, "待推送", 87625) { + }, + TEXT(2, "文本", 85393) { + }, + YEAR(4, "日期文本-年", 85393) { + }, + YEAR_MONTH(5, "日期文本-年月", 85393) { + }, + YEAR_MONTH_DAY(6, "日期文本-年月日", 85393) { + }; - 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) { + PushRecordStatusEnum(int value, String defaultLabel, int labelId) { this.value = value; this.defaultLabel = defaultLabel; this.labelId = labelId; @@ -46,22 +53,22 @@ public enum PushItemSourceEnum implements BaseEnum { return labelId; } - public static PushItemSourceEnum parseByValue(int value) { - for (PushItemSourceEnum salaryDataSourceEnum : PushItemSourceEnum.values()) { + public static PushRecordStatusEnum parseByValue(int value) { + for (PushRecordStatusEnum salaryDataSourceEnum : PushRecordStatusEnum.values()) { if (Objects.equals(salaryDataSourceEnum.getValue(), value)) { return salaryDataSourceEnum; } } - return null; + return TEXT; } 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)) { + PushRecordStatusEnum[] enumAry = PushRecordStatusEnum.values(); + for (int i = 0; i < Arrays.asList(enumAry).size(); i++) { + if (enumAry[i].getValue().equals(value)) { return enumAry[i].getDefaultLabel(); } } diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java new file mode 100644 index 000000000..469d40eea --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.java @@ -0,0 +1,72 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushRecordDetailPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushRecordDetailMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushRecordDetailPO pushRecordDetail); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushRecordDetailPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushRecordDetail 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushRecordDetailPO pushRecordDetail); + + /** + * 修改,修改所有字段 + * + * @param pushRecordDetail 修改的记录 + * @return 返回影响行数 + */ + int update(PushRecordDetailPO pushRecordDetail); + + /** + * 修改,忽略null字段 + * + * @param pushRecordDetail 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushRecordDetailPO pushRecordDetail); + + /** + * 删除记录 + * + * @param pushRecordDetail 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushRecordDetailPO pushRecordDetail); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml new file mode 100644 index 000000000..06cdca169 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordDetailMapper.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + t + . + acct_emp_id + , t.create_time + , t.creator + , t.delete_type + , t.execute + , t.id + , t.record_id + , t.status + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_record_detail + + + + acct_emp_id, + + + create_time, + + + creator, + + + delete_type, + + + execute, + + + id, + + + record_id, + + + status, + + + tenant_key, + + + update_time, + + + + + #{acctEmpId}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{execute}, + + + #{id}, + + + #{recordId}, + + + #{status}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_record_detail + + acct_emp_id=#{acctEmpId}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + execute=#{execute}, + record_id=#{recordId}, + status=#{status}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record_detail + + + acct_emp_id=#{acctEmpId}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + execute=#{execute}, + + + record_id=#{recordId}, + + + status=#{status}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record_detail + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_record_detail + 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/PushRecordMapper.java b/src/com/engine/salary/mapper/push/PushRecordMapper.java new file mode 100644 index 000000000..d87df17f2 --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.push; + +import com.engine.salary.entity.push.po.PushRecordPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PushRecordMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PushRecordPO pushRecord); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PushRecordPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pushRecord 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PushRecordPO pushRecord); + + + /** + * 修改,修改所有字段 + * + * @param pushRecord 修改的记录 + * @return 返回影响行数 + */ + int update(PushRecordPO pushRecord); + + /** + * 修改,忽略null字段 + * + * @param pushRecord 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PushRecordPO pushRecord); + + /** + * 删除记录 + * + * @param pushRecord 待删除的记录 + * @return 返回影响行数 + */ + int delete(PushRecordPO pushRecord); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/push/PushRecordMapper.xml b/src/com/engine/salary/mapper/push/PushRecordMapper.xml new file mode 100644 index 000000000..5c740c64f --- /dev/null +++ b/src/com/engine/salary/mapper/push/PushRecordMapper.xml @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + t + . + acct_record_id + , t.create_time + , t.creator + , t.delete_type + , t.id + , t.name + , t.setting_id + , t.status + , t.tenant_key + , t.type + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_push_record + + + + acct_record_id, + + + create_time, + + + creator, + + + delete_type, + + + id, + + + name, + + + setting_id, + + + status, + + + tenant_key, + + + type, + + + update_time, + + + + + #{acctRecordId}, + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{name}, + + + #{settingId}, + + + #{status}, + + + #{tenantKey}, + + + #{type}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_push_record + + acct_record_id=#{acctRecordId}, + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + name=#{name}, + setting_id=#{settingId}, + status=#{status}, + tenant_key=#{tenantKey}, + type=#{type}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record + + + acct_record_id=#{acctRecordId}, + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + name=#{name}, + + + setting_id=#{settingId}, + + + status=#{status}, + + + tenant_key=#{tenantKey}, + + + type=#{type}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_push_record + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_push_record + 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 index 41ba368e4..be673826d 100644 --- a/src/com/engine/salary/service/PushService.java +++ b/src/com/engine/salary/service/PushService.java @@ -60,11 +60,10 @@ public interface PushService { /** * 推送一条核算记录下的所有数据 * - * @param salarySobId + * @param salaryAcctRecordId * @return */ - void pushOneRecord(Long salarySobId); + void pushOneRecord(Long salaryAcctRecordId); - -// void push(List recodes); + void createPushRecord(Long salaryAcctRecordId); } diff --git a/src/com/engine/salary/service/impl/PushServiceImpl.java b/src/com/engine/salary/service/impl/PushServiceImpl.java index 62e21f181..638dae412 100644 --- a/src/com/engine/salary/service/impl/PushServiceImpl.java +++ b/src/com/engine/salary/service/impl/PushServiceImpl.java @@ -11,6 +11,7 @@ import com.engine.salary.entity.push.param.PushSettingItemQueryParam; import com.engine.salary.entity.push.param.PushSettingItemSaveParam; import com.engine.salary.entity.push.param.PushSettingQueryParam; import com.engine.salary.entity.push.param.PushSettingSaveParam; +import com.engine.salary.entity.push.po.PushRecordPO; import com.engine.salary.entity.push.po.PushSettingItemPO; import com.engine.salary.entity.push.po.PushSettingPO; import com.engine.salary.entity.salaryacct.bo.CalculateFormulaVarBO; @@ -324,7 +325,6 @@ public class PushServiceImpl extends Service implements PushService { } String tableName = setting.getTableName(); String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); - System.out.println(sql); RecordSet rs = new RecordSet(); rs.execute(sql); @@ -339,9 +339,28 @@ public class PushServiceImpl extends Service implements PushService { ModeRightInfo.editModeDataShare(1, modeId, mainId); } } - }); } + @Override + public void createPushRecord(Long salaryAcctRecordId) { + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("核算记录不存在!"); + } + + PushRecordPO.builder() + .id(IdGenerator.generate()) + .acctRecordId(salaryAcctRecordId) + .status(0) + + } + + + //创建推送记录 + + //推送记录明细 + } diff --git a/src/com/engine/salary/web/PushController.java b/src/com/engine/salary/web/PushController.java index f57703312..d42e3b222 100644 --- a/src/com/engine/salary/web/PushController.java +++ b/src/com/engine/salary/web/PushController.java @@ -41,7 +41,7 @@ public class PushController { return new ResponseResult>(user).run(getPushWrapper(user)::settingList, param); } - @GET + @POST @Path("/mode/list") @Produces(MediaType.APPLICATION_JSON) public String modeList(@Context HttpServletRequest request, @Context HttpServletResponse response) { diff --git a/src/com/engine/salary/wrapper/PushWrapper.java b/src/com/engine/salary/wrapper/PushWrapper.java index 002092e13..2ce0ea4e5 100644 --- a/src/com/engine/salary/wrapper/PushWrapper.java +++ b/src/com/engine/salary/wrapper/PushWrapper.java @@ -23,6 +23,16 @@ public class PushWrapper extends Service { return ServiceUtil.getService(PushServiceImpl.class, user); } + + public Object modeList() { + Map map = new HashMap<>(); + map.put("appid", 1); + map.put("appidForAppname", 2); + map.put("aLLorCurrentKey", 1); + Map execute = commandExecutor.execute(new GetModeList(map, user)); + + return execute; + } public PageInfo settingList(PushSettingQueryParam param) { return getPushService(user).settingList(param); } @@ -52,13 +62,4 @@ public class PushWrapper extends Service { getPushService(user).pushOneRecord(pushParam.getSalaryAcctRecordId()); } - public Object modeList() { - Map map = new HashMap<>(); - map.put("appid", 1); - map.put("appidForAppname", 2); - map.put("aLLorCurrentKey", 1); - Map execute = commandExecutor.execute(new GetModeList(map, user)); - - return execute; - } }