diff --git a/resource/sqlupgrade/DM/sql202410110103.sql b/resource/sqlupgrade/DM/sql202410110103.sql
new file mode 100644
index 000000000..80fd04daf
--- /dev/null
+++ b/resource/sqlupgrade/DM/sql202410110103.sql
@@ -0,0 +1,13 @@
+create table hrsa_page_list_setting
+(
+ id number primary key ,
+ setting clob ,
+ page varchar2(200),
+ creator number,
+ create_time date ,
+ update_time date,
+ delete_type int ,
+ tenant_key varchar2(10)
+);
+/
+
diff --git a/resource/sqlupgrade/GS/sql202410110103.sql b/resource/sqlupgrade/GS/sql202410110103.sql
new file mode 100644
index 000000000..80fd04daf
--- /dev/null
+++ b/resource/sqlupgrade/GS/sql202410110103.sql
@@ -0,0 +1,13 @@
+create table hrsa_page_list_setting
+(
+ id number primary key ,
+ setting clob ,
+ page varchar2(200),
+ creator number,
+ create_time date ,
+ update_time date,
+ delete_type int ,
+ tenant_key varchar2(10)
+);
+/
+
diff --git a/resource/sqlupgrade/JC/sql202410110103.sql b/resource/sqlupgrade/JC/sql202410110103.sql
new file mode 100644
index 000000000..80fd04daf
--- /dev/null
+++ b/resource/sqlupgrade/JC/sql202410110103.sql
@@ -0,0 +1,13 @@
+create table hrsa_page_list_setting
+(
+ id number primary key ,
+ setting clob ,
+ page varchar2(200),
+ creator number,
+ create_time date ,
+ update_time date,
+ delete_type int ,
+ tenant_key varchar2(10)
+);
+/
+
diff --git a/resource/sqlupgrade/Mysql/sql202410110103.sql b/resource/sqlupgrade/Mysql/sql202410110103.sql
new file mode 100644
index 000000000..04ed725c6
--- /dev/null
+++ b/resource/sqlupgrade/Mysql/sql202410110103.sql
@@ -0,0 +1,12 @@
+CREATE TABLE hrsa_page_list_setting
+(
+ id bigint(0) NOT NULL ,
+ setting text ,
+ page varchar(200),
+ creator bigint(0),
+ create_time datetime(0) ,
+ update_time datetime(0),
+ delete_type int(0) ,
+ tenant_key varchar(10) ,
+ PRIMARY KEY (id)
+);
\ No newline at end of file
diff --git a/resource/sqlupgrade/Oracle/sql202410110103.sql b/resource/sqlupgrade/Oracle/sql202410110103.sql
new file mode 100644
index 000000000..554fd4221
--- /dev/null
+++ b/resource/sqlupgrade/Oracle/sql202410110103.sql
@@ -0,0 +1,12 @@
+create table hrsa_page_list_setting
+(
+ id number primary key ,
+ setting clob ,
+ page varchar2(200),
+ creator number,
+ create_time date ,
+ update_time date,
+ delete_type int ,
+ tenant_key varchar2(10)
+)
+/
\ No newline at end of file
diff --git a/resource/sqlupgrade/PG/sql202410110103.sql b/resource/sqlupgrade/PG/sql202410110103.sql
new file mode 100644
index 000000000..813426c47
--- /dev/null
+++ b/resource/sqlupgrade/PG/sql202410110103.sql
@@ -0,0 +1,11 @@
+create table hrsa_page_list_setting
+(
+ id bigint primary key ,
+ setting text ,
+ page varchar(200),
+ creator bigint,
+ create_time timestamp ,
+ update_time timestamp,
+ delete_type int ,
+ tenant_key varchar(10)
+);
\ No newline at end of file
diff --git a/resource/sqlupgrade/SQLServer/sql202410110103.sql b/resource/sqlupgrade/SQLServer/sql202410110103.sql
new file mode 100644
index 000000000..8a2dae190
--- /dev/null
+++ b/resource/sqlupgrade/SQLServer/sql202410110103.sql
@@ -0,0 +1,12 @@
+create table hrsa_page_list_setting
+(
+ id bigint primary key ,
+ setting ntext ,
+ page varchar(200),
+ creator bigint,
+ create_time datetime ,
+ update_time datetime,
+ delete_type int ,
+ tenant_key varchar(10)
+)
+GO
\ No newline at end of file
diff --git a/resource/sqlupgrade/ST/sql202410110103.sql b/resource/sqlupgrade/ST/sql202410110103.sql
new file mode 100644
index 000000000..80fd04daf
--- /dev/null
+++ b/resource/sqlupgrade/ST/sql202410110103.sql
@@ -0,0 +1,13 @@
+create table hrsa_page_list_setting
+(
+ id number primary key ,
+ setting clob ,
+ page varchar2(200),
+ creator number,
+ create_time date ,
+ update_time date,
+ delete_type int ,
+ tenant_key varchar2(10)
+);
+/
+
diff --git a/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java b/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java
index 184ccee40..4e60d65e0 100644
--- a/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java
+++ b/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java
@@ -1,12 +1,13 @@
package com.engine.salary.constant;
/**
- * @description: 默认的租户key
- * @author: xiajun
- * @modified By: xiajun
- * @date: Created in 2/8/22 11:25 AM
- * @version:v1.0
- */
+ * 默认租户
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
public class SalaryDefaultTenantConstant {
public static final String DEFAULT_TENANT_KEY = "all_teams";
diff --git a/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java
new file mode 100644
index 000000000..afe2de81c
--- /dev/null
+++ b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java
@@ -0,0 +1,20 @@
+package com.engine.salary.entity.setting.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 薪资帐套表
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageListSettingDTO {
+
+ private String name;
+
+ private String value;
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java
new file mode 100644
index 000000000..bd97950e7
--- /dev/null
+++ b/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java
@@ -0,0 +1,31 @@
+package com.engine.salary.entity.setting.param;
+
+import com.engine.salary.util.valid.DataCheck;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 薪资帐套表
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageListSettingSaveParam {
+
+ /**
+ * 页面,0:薪资明细
+ */
+ @DataCheck(require = true,message = "请选择页面")
+ private String page;
+
+ /**
+ * 设置
+ */
+ @DataCheck(require = true,message = "请选择设置")
+ private List setting;
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java
new file mode 100644
index 000000000..59b7f2ea1
--- /dev/null
+++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java
@@ -0,0 +1,72 @@
+package com.engine.salary.entity.setting.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 PageListSettingPO {
+
+
+ @ElogTransform(name = "")
+ private Long id;
+
+ /**
+ * 页面,0:薪资明细
+ */
+ @ElogTransform(name = "页面,0:薪资明细")
+ private String page;
+
+ /**
+ * 设置
+ */
+ @ElogTransform(name = "设置")
+ private String setting;
+
+
+ /**
+ * 更新时间
+ */
+ @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
+ */
+ @ElogTransform(name = "租户ID")
+ private String tenantKey;
+
+
+ //主键id集合
+ private Collection ids;
+
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java
new file mode 100644
index 000000000..9c2ce51f8
--- /dev/null
+++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java
@@ -0,0 +1,73 @@
+package com.engine.salary.mapper.setting;
+
+import com.engine.salary.entity.setting.po.PageListSettingPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface PageListSettingMapper {
+
+ /**
+ * 查询所有记录
+ *
+ * @return 返回集合,没有返回空List
+ */
+ List listAll();
+
+ /**
+ * 条件查询
+ *
+ * @return 返回集合,没有返回空List
+ */
+ List listSome(PageListSettingPO pageListSetting);
+
+
+ /**
+ * 根据主键查询
+ *
+ * @param id 主键
+ * @return 返回记录,没有返回null
+ */
+ PageListSettingPO getById(Long id);
+
+ /**
+ * 新增,忽略null字段
+ *
+ * @param pageListSetting 新增的记录
+ * @return 返回影响行数
+ */
+ int insertIgnoreNull(PageListSettingPO pageListSetting);
+
+ /**
+ * 修改,修改所有字段
+ *
+ * @param pageListSetting 修改的记录
+ * @return 返回影响行数
+ */
+ int update(PageListSettingPO pageListSetting);
+
+ /**
+ * 修改,忽略null字段
+ *
+ * @param pageListSetting 修改的记录
+ * @return 返回影响行数
+ */
+ int updateIgnoreNull(PageListSettingPO pageListSetting);
+
+ /**
+ * 删除记录
+ *
+ * @param pageListSetting 待删除的记录
+ * @return 返回影响行数
+ */
+ int delete(PageListSettingPO pageListSetting);
+
+ /**
+ * 批量删除记录
+ * @param ids 主键id集合
+ */
+ void deleteByIds(@Param("ids") Collection ids);
+
+ PageListSettingPO getByPage(String page);
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml
new file mode 100644
index 000000000..df06cf162
--- /dev/null
+++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ t
+ .
+ create_time
+ , t.creator
+ , t.delete_type
+ , t.id
+ , t.page
+ , t.setting
+ , t.tenant_key
+ , t.update_time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO hrsa_page_list_setting
+
+
+
+ create_time,
+
+
+ creator,
+
+
+ delete_type,
+
+
+ page,
+
+
+ setting,
+
+
+ tenant_key,
+
+
+ update_time,
+
+
+
+
+ #{createTime},
+
+
+ #{creator},
+
+
+ #{deleteType},
+
+
+ #{page},
+
+
+ #{setting},
+
+
+ #{tenantKey},
+
+
+ #{updateTime},
+
+
+
+
+
+
+
+ UPDATE hrsa_page_list_setting
+
+ create_time=#{createTime},
+ creator=#{creator},
+ delete_type=#{deleteType},
+ page=#{page},
+ setting=#{setting},
+ tenant_key=#{tenantKey},
+ update_time=#{updateTime},
+
+ WHERE id = #{id} AND delete_type = 0
+
+
+
+
+
+ UPDATE hrsa_page_list_setting
+
+
+ create_time=#{createTime},
+
+
+ creator=#{creator},
+
+
+ delete_type=#{deleteType},
+
+
+ page=#{page},
+
+
+ setting=#{setting},
+
+
+ tenant_key=#{tenantKey},
+
+
+ update_time=#{updateTime},
+
+
+ WHERE id = #{id} AND delete_type = 0
+
+
+
+
+
+ UPDATE hrsa_page_list_setting
+ SET delete_type=1
+ WHERE id = #{id}
+ AND delete_type = 0
+
+
+
+ UPDATE hrsa_page_list_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/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java
index 5728f0886..635134b5f 100644
--- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java
+++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java
@@ -25,10 +25,7 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQuery
import com.engine.salary.report.service.SalaryStatisticsEmployeeService;
import com.engine.salary.service.*;
import com.engine.salary.service.impl.*;
-import com.engine.salary.util.SalaryAssert;
-import com.engine.salary.util.SalaryDateUtil;
-import com.engine.salary.util.SalaryEntityUtil;
-import com.engine.salary.util.SalaryI18nUtil;
+import com.engine.salary.util.*;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
@@ -89,6 +86,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
}
+ private SettingService getSettingService(User user) {
+ return ServiceUtil.getService(SettingServiceImpl.class, user);
+ }
+
@Override
public PageInfo listPage(SalaryStatisticsEmployeeQueryParam queryParam) {
List list = Collections.emptyList();
@@ -270,7 +271,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
map.put("id", se.getId().toString());
map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(se.getSalaryMonth()));
map.put("taxAgent", taxAgentMap.get(se.getTaxAgentId()));
- map.put("salarySob",SalarySobMap.get(se.getSalarySobId()));
+ map.put("salarySob", SalarySobMap.get(se.getSalarySobId()));
map.put("acctTimes", salaryAcctRecordMap.get(se.getSalaryAcctRecordId()));
map.put("userName", Util.null2String(emp.getUsername()));
map.put("subCompany", Util.null2String(emp.getSubcompanyName()));
@@ -302,10 +303,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
// 2.年月参数处理,注意:薪资所属月居然是用字符串存储的,无法通过sql between处理
List dataParam = new ArrayList<>();
if (StringUtils.isNotBlank(queryParam.getStartDateStr())) {
- dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr()+ "-01 00:00:00"));
+ dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr() + "-01 00:00:00"));
}
if (StringUtils.isNotBlank(queryParam.getEndDateStr())) {
- dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr()+ "-01 00:00:00"));
+ dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr() + "-01 00:00:00"));
}
Set salaryMonths = SalaryStatisticsEmployeeBO.getSalaryMonths(null, dataParam)
.stream()
@@ -319,13 +320,13 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
// 根据分部、部门筛选
List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds());
// 根据关键词过滤
- if(StringUtils.isNotBlank(queryParam.getKeyword())) {
+ if (StringUtils.isNotBlank(queryParam.getKeyword())) {
employeeList = employeeList.stream()
.filter(e -> (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword()))))
.collect(Collectors.toList());
}
List employeeIds = employeeList.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
- salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter( acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList());
+ salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList());
}
if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) {
return new PageInfo<>();
@@ -358,23 +359,25 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
// 3.获取薪资项目
- List salaryItemList = getSalaryItemService(user).listAll();
- salaryItemList = salaryItemList.stream()
- .sorted(new Comparator() {
- @Override
- public int compare(SalaryItemPO o1, SalaryItemPO o2) {
- if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
- Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
- Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
- return systemType1.compareTo(systemType2);
- } else {
- Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
- Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
- return sortedIndex2.compareTo(sortedIndex1);
- }
- }
- })
- .collect(Collectors.toList());
+ Map setting = getSettingService(user).getPageListSetting("salary_details_report");
+ List checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>();
+ List salaryItemList = getSalaryItemService(user).listByIds(checked);
+// salaryItemList = salaryItemList.stream()
+// .sorted(new Comparator() {
+// @Override
+// public int compare(SalaryItemPO o1, SalaryItemPO o2) {
+// if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
+// Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
+// Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
+// return systemType1.compareTo(systemType2);
+// } else {
+// Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
+// Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
+// return sortedIndex2.compareTo(sortedIndex1);
+// }
+// }
+// })
+// .collect(Collectors.toList());
return SalaryStatisticsEmployeeDetailResultDTO.builder()
.salaryAcctEmployeeList(salaryAcctEmployeeList)
diff --git a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java
index b4e668513..4fa4ae64a 100644
--- a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java
+++ b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java
@@ -73,7 +73,7 @@ public class SalaryStatisticsEmployeeController {
}
/**
- * 员工薪资列表
+ * 薪资明细
*
* @param queryParam
* @return
diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java
index 646600f08..63e0863cf 100644
--- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java
+++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java
@@ -229,6 +229,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service {
// 获取发薪人员
PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam);
List employeePOS = salaryAcctEmployeePageInfo.getList();
+ if (CollectionUtils.isEmpty(employeePOS)){
+ return resultMap;
+ }
Map sumResultMap = Maps.newHashMap();
diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java
new file mode 100644
index 000000000..7b4f1d9bc
--- /dev/null
+++ b/src/com/engine/salary/service/SettingService.java
@@ -0,0 +1,11 @@
+package com.engine.salary.service;
+
+import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
+
+import java.util.Map;
+
+public interface SettingService {
+ void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam);
+
+ Map getPageListSetting(String page);
+}
diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java
new file mode 100644
index 000000000..66b13c126
--- /dev/null
+++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java
@@ -0,0 +1,102 @@
+package com.engine.salary.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.engine.common.util.ServiceUtil;
+import com.engine.core.impl.Service;
+import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
+import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
+import com.engine.salary.entity.setting.po.PageListSettingPO;
+import com.engine.salary.mapper.setting.PageListSettingMapper;
+import com.engine.salary.service.SalaryItemService;
+import com.engine.salary.service.SalarySobService;
+import com.engine.salary.service.SettingService;
+import com.engine.salary.util.JsonUtil;
+import com.engine.salary.util.db.IdGenerator;
+import com.engine.salary.util.db.MapperProxyFactory;
+import weaver.hrm.User;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY;
+
+/**
+ * 薪资核算
+ * Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+public class SettingServiceImpl extends Service implements SettingService {
+
+ private PageListSettingMapper getPageListSettingMapper() {
+ return MapperProxyFactory.getProxy(PageListSettingMapper.class);
+ }
+
+ private SalarySobService getSalarySobService(User user) {
+ return ServiceUtil.getService(SalarySobServiceImpl.class, user);
+ }
+
+ private SalaryItemService getSalaryItemService(User user) {
+ return ServiceUtil.getService(SalaryItemServiceImpl.class, user);
+ }
+
+ @Override
+ public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) {
+ Date now = new Date();
+
+ PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage());
+ if (pageListSettingPO != null) {
+ pageListSettingPO.setSetting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting()));
+ pageListSettingPO.setUpdateTime(now);
+ getPageListSettingMapper().updateIgnoreNull(pageListSettingPO);
+ } else {
+ pageListSettingPO = PageListSettingPO.builder()
+ .id(IdGenerator.generate())
+ .page(pageListSettingSaveParam.getPage())
+ .setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting()))
+ .creator((long) user.getUID())
+ .createTime(now)
+ .updateTime(now)
+ .deleteType(0)
+ .tenantKey(DEFAULT_TENANT_KEY)
+ .build();
+ getPageListSettingMapper().insertIgnoreNull(pageListSettingPO);
+ }
+ }
+
+ @Override
+ public Map getPageListSetting(String page) {
+
+ Map result = new HashMap();
+ PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page);
+ if ("salary_details_report".equals(page)) {
+ List salaryItemList = getSalaryItemService(user).listAll();
+ salaryItemList = salaryItemList.stream()
+ .sorted(new Comparator() {
+ @Override
+ public int compare(SalaryItemPO o1, SalaryItemPO o2) {
+ if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) {
+ Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType();
+ Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType();
+ return systemType1.compareTo(systemType2);
+ } else {
+ Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
+ Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
+ return sortedIndex2.compareTo(sortedIndex1);
+ }
+ }
+ })
+ .collect(Collectors.toList());
+ result.put("setting", salaryItemList);
+ if (pageListSettingPO != null && StrUtil.isNotEmpty(pageListSettingPO.getSetting())) {
+ result.put("checked", JsonUtil.parseList(pageListSettingPO.getSetting(), Long.class));
+ } else {
+ List collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
+ result.put("checked", collect);
+ }
+ }
+ return result;
+ }
+}
diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java
index 7f1637a5c..2f7e87d6e 100644
--- a/src/com/engine/salary/web/SalaryCommonController.java
+++ b/src/com/engine/salary/web/SalaryCommonController.java
@@ -1,19 +1,18 @@
package com.engine.salary.web;
import com.engine.common.util.ServiceUtil;
+import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
import com.engine.salary.util.ResponseResult;
import com.engine.salary.util.SalaryEnumUtil;
import com.engine.salary.wrapper.SalaryCommonWrapper;
+import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
+import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.List;
@@ -52,4 +51,25 @@ public class SalaryCommonController {
}
+ /**
+ * 页面模板设置
+ *
+ * @param param
+ * @return
+ */
+ @POST
+ @Path("/pageList/save/setting")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String savePageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PageListSettingSaveParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param);
+ }
+
+ @GET
+ @Path("/pageList/get/setting")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, page);
+ }
}
diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java
index 982c1e5e9..cbeefbb42 100644
--- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java
@@ -2,10 +2,15 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
+import com.engine.salary.entity.setting.param.PageListSettingSaveParam;
import com.engine.salary.service.SalaryCacheService;
+import com.engine.salary.service.SettingService;
import com.engine.salary.service.impl.SalaryCacheServiceImpl;
+import com.engine.salary.service.impl.SettingServiceImpl;
import weaver.hrm.User;
+import java.util.Map;
+
public class SalaryCommonWrapper extends Service {
@@ -13,6 +18,10 @@ public class SalaryCommonWrapper extends Service {
return ServiceUtil.getService(SalaryCacheServiceImpl.class, user);
}
+ private SettingService getSettingService(User user) {
+ return ServiceUtil.getService(SettingServiceImpl.class, user);
+ }
+
public Object getCacheInfo(String key) {
return getSalaryCacheService(user).get(key);
}
@@ -20,4 +29,13 @@ public class SalaryCommonWrapper extends Service {
public void removeCache(String key) {
getSalaryCacheService(user).remove(key);
}
+
+ public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) {
+ getSettingService(user).savePageListSetting(pageListSettingSaveParam);
+ }
+
+
+ public Map getPageListSetting(String page) {
+ return getSettingService(user).getPageListSetting(page);
+ }
}