From e537ffaa5a452775a40c480b75b1fab14939393d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 7 Nov 2024 17:45:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sqlupgrade/DM/sql202411060203.sql | 30 +++ sqlupgrade/GS/sql202411060203.sql | 30 +++ sqlupgrade/JC/sql202411060203.sql | 30 +++ sqlupgrade/Mysql/sql202411060203.sql | 28 ++ sqlupgrade/Oracle/sql202411060203.sql | 29 ++ sqlupgrade/PG/sql202411060203.sql | 27 ++ sqlupgrade/SQLServer/sql202411060203.sql | 29 ++ sqlupgrade/ST/sql202411060203.sql | 30 +++ .../setting/dto/PageListTemplateDTO.java | 9 +- .../param/PageListColumnsQueryParam.java | 21 ++ .../param/PageListTemplateChangeParam.java | 31 +++ .../param/PageListTemplateQueryParam.java | 5 + .../param/PageListTemplateSaveParam.java | 7 +- .../salary/entity/setting/po/PageLinkPO.java | 70 +++++ .../entity/setting/po/PageListSettingPO.java | 18 +- .../entity/setting/po/PageListTemplatePO.java | 94 +++++++ .../salary/mapper/setting/PageLinkMapper.java | 74 ++++++ .../salary/mapper/setting/PageLinkMapper.xml | 232 ++++++++++++++++ .../mapper/setting/PageListSettingMapper.java | 2 + .../mapper/setting/PageListSettingMapper.xml | 43 +-- .../setting/PageListTemplateMapper.java | 73 +++++ .../mapper/setting/PageListTemplateMapper.xml | 251 ++++++++++++++++++ .../SalaryStatisticsEmployeeServiceImpl.java | 107 -------- .../SalaryStatisticsEmployeeWrapper.java | 40 ++- .../engine/salary/service/SettingService.java | 23 +- .../service/impl/SettingServiceImpl.java | 197 +++++++++++--- .../sys/constant/SalarySysConstant.java | 5 + .../salary/web/SalaryCommonController.java | 41 ++- .../salary/wrapper/SalaryCommonWrapper.java | 24 +- 29 files changed, 1363 insertions(+), 237 deletions(-) create mode 100644 sqlupgrade/DM/sql202411060203.sql create mode 100644 sqlupgrade/GS/sql202411060203.sql create mode 100644 sqlupgrade/JC/sql202411060203.sql create mode 100644 sqlupgrade/Mysql/sql202411060203.sql create mode 100644 sqlupgrade/Oracle/sql202411060203.sql create mode 100644 sqlupgrade/PG/sql202411060203.sql create mode 100644 sqlupgrade/SQLServer/sql202411060203.sql create mode 100644 sqlupgrade/ST/sql202411060203.sql create mode 100644 src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java create mode 100644 src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java create mode 100644 src/com/engine/salary/entity/setting/po/PageLinkPO.java create mode 100644 src/com/engine/salary/entity/setting/po/PageListTemplatePO.java create mode 100644 src/com/engine/salary/mapper/setting/PageLinkMapper.java create mode 100644 src/com/engine/salary/mapper/setting/PageLinkMapper.xml create mode 100644 src/com/engine/salary/mapper/setting/PageListTemplateMapper.java create mode 100644 src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml diff --git a/sqlupgrade/DM/sql202411060203.sql b/sqlupgrade/DM/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/DM/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/sqlupgrade/GS/sql202411060203.sql b/sqlupgrade/GS/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/GS/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/sqlupgrade/JC/sql202411060203.sql b/sqlupgrade/JC/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/JC/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/sqlupgrade/Mysql/sql202411060203.sql b/sqlupgrade/Mysql/sql202411060203.sql new file mode 100644 index 000000000..d6431564c --- /dev/null +++ b/sqlupgrade/Mysql/sql202411060203.sql @@ -0,0 +1,28 @@ +CREATE TABLE hrsa_page_link +( + id bigint(0) NOT NULL, + employee_id bigint(0), + page varchar(200), + page_setting_id bigint(0), + creator bigint(0), + create_time datetime(0), + update_time datetime(0), + delete_type int(0), + tenant_key varchar(10), + PRIMARY KEY (id) USING BTREE +); + +CREATE TABLE hrsa_page_list_template ( +id bigint(0) NOT NULL, +name varchar(200), +page varchar(200), +shared_type int(0), +limit_ids varchar(2000), +setting text, +creator bigint(0), +create_time datetime(0), +update_time datetime(0), +delete_type int(0), +tenant_key varchar(10), +PRIMARY KEY (id) USING BTREE +); diff --git a/sqlupgrade/Oracle/sql202411060203.sql b/sqlupgrade/Oracle/sql202411060203.sql new file mode 100644 index 000000000..065125f8c --- /dev/null +++ b/sqlupgrade/Oracle/sql202411060203.sql @@ -0,0 +1,29 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +) +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/sqlupgrade/PG/sql202411060203.sql b/sqlupgrade/PG/sql202411060203.sql new file mode 100644 index 000000000..981b8955d --- /dev/null +++ b/sqlupgrade/PG/sql202411060203.sql @@ -0,0 +1,27 @@ +create table hrsa_page_link +( + id bigint primary key, + employee_id bigint, + page varchar(200), + page_setting_id bigint, + creator bigint, + create_time timestamp, + update_time timestamp, + delete_type int, + tenant_key varchar(10) +); + +create table hrsa_page_list_template +( + id bigint primary key, + name varchar(200), + page varchar(200), + shared_type int, + limit_ids varchar(2000), + setting text, + creator bigint, + create_time timestamp, + update_time timestamp, + delete_type int, + tenant_key varchar(10) +); \ No newline at end of file diff --git a/sqlupgrade/SQLServer/sql202411060203.sql b/sqlupgrade/SQLServer/sql202411060203.sql new file mode 100644 index 000000000..c81f2ab3f --- /dev/null +++ b/sqlupgrade/SQLServer/sql202411060203.sql @@ -0,0 +1,29 @@ +create table hrsa_page_link +( + id bigint primary key, + employee_id bigint, + page varchar(200), + page_setting_id bigint, + creator bigint, + create_time datetime, + update_time datetime, + delete_type int, + tenant_key varchar(10) +) +GO + +create table hrsa_page_list_template +( + id bigint primary key, + name varchar(200), + page varchar(200), + shared_type int, + limit_ids varchar(2000), + setting text, + 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/sqlupgrade/ST/sql202411060203.sql b/sqlupgrade/ST/sql202411060203.sql new file mode 100644 index 000000000..de7d06e71 --- /dev/null +++ b/sqlupgrade/ST/sql202411060203.sql @@ -0,0 +1,30 @@ +CREATE TABLE hrsa_page_link +( + id NUMBER(38,0) primary key NOT NULL, + employee_id NUMBER(38,0), + page varchar2(200), + page_setting_id NUMBER(38,0), + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + +CREATE TABLE hrsa_page_list_template +( + id NUMBER(38,0) primary key NOT NULL, + name varchar2(200), + page varchar2(200), + shared_type number, + limit_ids varchar2(2000), + setting CLOB, + creator NUMBER(38,0), + create_time date, + update_time date, + delete_type number, + tenant_key varchar2(10) +); +/ + diff --git a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java index 15f47fa0d..c79352ed9 100644 --- a/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java +++ b/src/com/engine/salary/entity/setting/dto/PageListTemplateDTO.java @@ -1,19 +1,20 @@ package com.engine.salary.entity.setting.dto; +import com.cloudstore.eccom.pc.table.WeaTableColumn; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @Builder @NoArgsConstructor @AllArgsConstructor public class PageListTemplateDTO { - - private Long id; - - private String name; + private List setting; + private List checked; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java new file mode 100644 index 000000000..5f8072d19 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListColumnsQueryParam.java @@ -0,0 +1,21 @@ +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; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListColumnsQueryParam { + + @DataCheck(require = true,message = "请选择页面") + private String page; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.java new file mode 100644 index 000000000..3f8d05fd3 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateChangeParam.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; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplateChangeParam { + + /** + * 页面,0:薪资明细 + */ + @DataCheck(require = true,message = "请选择页面") + private String page; + + /** + * 模板id + */ + @DataCheck(require = true,message = "请选择模板") + private Long templateId; + + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java index b939ac6f1..61213bbee 100644 --- a/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateQueryParam.java @@ -15,8 +15,13 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class PageListTemplateQueryParam { + private Long id; + @DataCheck(require = true,message = "请选择页面") private String page; + /** + * 字段name + */ private String name; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java index 2c5cd996c..1ef45247a 100644 --- a/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java +++ b/src/com/engine/salary/entity/setting/param/PageListTemplateSaveParam.java @@ -30,9 +30,14 @@ public class PageListTemplateSaveParam { @DataCheck(require = true,message = "请选择模板名称") private String name; + @DataCheck(require = true,message = "请选择共享类型") + private Integer sharedType; + + private List limitIds; + /** * 设置 */ @DataCheck(require = true,message = "请选择设置") - private List setting; + private List setting; } \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageLinkPO.java b/src/com/engine/salary/entity/setting/po/PageLinkPO.java new file mode 100644 index 000000000..7037abe77 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageLinkPO.java @@ -0,0 +1,70 @@ +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 PageLinkPO { + + @ElogTransform(name = "id") + private Long id; + + @ElogTransform(name = "人员id") + private Long employeeId; + + /** + * 页面 + */ + @ElogTransform(name = "页面") + private String page; + + /** + * 页面模板id + */ + @ElogTransform(name = "页面模板id") + private Long templateId; + + /** + * 租户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/setting/po/PageListSettingPO.java b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java index ae7b83bf9..8b24728f6 100644 --- a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java +++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.List; /** * 薪资帐套表 @@ -18,22 +19,9 @@ import java.util.Date; @AllArgsConstructor public class PageListSettingPO { - - @ElogTransform(name = "") + @ElogTransform(name = "id") private Long id; - /** - * 是否模板:0否,1是 - */ - @ElogTransform(name = "是否模板") - private Integer template; - - /** - * 模板名称 - */ - @ElogTransform(name = "模板名称") - private String name; - /** * 页面,0:薪资明细 */ @@ -44,7 +32,7 @@ public class PageListSettingPO { * 设置 */ @ElogTransform(name = "设置") - private String setting; + private List setting; /** diff --git a/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java new file mode 100644 index 000000000..8177534c1 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageListTemplatePO.java @@ -0,0 +1,94 @@ +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; +import java.util.List; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListTemplatePO { + + + @ElogTransform(name = "id") + private Long id; + + + /** + * 模板名称 + */ + @ElogTransform(name = "模板名称") + private String name; + + /** + * 页面 + */ + @ElogTransform(name = "页面") + private String page; + + /** + * 设置 + */ + @ElogTransform(name = "设置") + private List setting; + + /** + * 是否共享,0否,1是 + */ + @ElogTransform(name = "是否共享,0否,1是") + private Integer sharedType; + + + /** + * 限制 + */ + @ElogTransform(name = "限制") + private List limitIds; + + /** + * 租户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; + + private Boolean checked; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageLinkMapper.java b/src/com/engine/salary/mapper/setting/PageLinkMapper.java new file mode 100644 index 000000000..a15e69330 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageLinkMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageLinkPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageLinkMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PageLinkPO pageLink); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PageLinkPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pageLink 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PageLinkPO pageLink); + + + /** + * 修改,修改所有字段 + * + * @param pageLink 修改的记录 + * @return 返回影响行数 + */ + int update(PageLinkPO pageLink); + + /** + * 修改,忽略null字段 + * + * @param pageLink 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PageLinkPO pageLink); + + /** + * 删除记录 + * + * @param pageLink 待删除的记录 + * @return 返回影响行数 + */ + int delete(PageLinkPO pageLink); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + PageLinkPO getLink(@Param("employeeId")Long employeeId, @Param("page")String page); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageLinkMapper.xml b/src/com/engine/salary/mapper/setting/PageLinkMapper.xml new file mode 100644 index 000000000..7e5d1856c --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageLinkMapper.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.employee_id + , t.id + , t.page + , t.template_id + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_page_link + + + + create_time, + + + creator, + + + delete_type, + + + employee_id, + + + id, + + + page, + + + template_id, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{employeeId}, + + + #{id}, + + + #{page}, + + + #{templateId}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_page_link + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + employee_id=#{employeeId}, + page=#{page}, + template_id=#{templateId}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_link + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + employee_id=#{employeeId}, + + + page=#{page}, + + + template_id=#{templateId}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_link + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_link + 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/setting/PageListSettingMapper.java b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java index 5fc974dc1..d45faa161 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java @@ -69,7 +69,9 @@ public interface PageListSettingMapper { */ void deleteByIds(@Param("ids") Collection ids); + //获取页面默认配置 PageListSettingPO getByPage(String page); + //获取页面配置模板 List getTemplatesByPage(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 index a9a656b76..f52abe207 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -4,9 +4,7 @@ - - - + @@ -23,8 +21,6 @@ , t.delete_type , t.id , t.page - , t.name - , t.template , t.setting , t.tenant_key , t.update_time @@ -68,15 +64,6 @@ AND page = #{page} - - AND name = #{name} - - - AND template = #{template} - - - AND setting = #{setting} - AND tenant_key = #{tenantKey} @@ -113,12 +100,6 @@ page, - - name, - - - template, - setting, @@ -145,14 +126,8 @@ #{page}, - - #{name}, - - - #{template}, - - #{setting}, + #{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, #{tenantKey}, @@ -172,9 +147,7 @@ creator=#{creator}, delete_type=#{deleteType}, page=#{page}, - name=#{name}, - template=#{template}, - setting=#{setting}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, tenant_key=#{tenantKey}, update_time=#{updateTime}, @@ -198,14 +171,8 @@ page=#{page}, - - name=#{name}, - - - template=#{template}, - - setting=#{setting}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, tenant_key=#{tenantKey}, @@ -241,7 +208,6 @@ FROM hrsa_page_list_setting t WHERE delete_type = 0 - and template = 0 and page = #{page} @@ -250,7 +216,6 @@ FROM hrsa_page_list_setting t WHERE delete_type = 0 - and template = 1 and page = #{page} diff --git a/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java new file mode 100644 index 000000000..b729cd64e --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageListTemplatePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageListTemplateMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PageListTemplatePO pageListTemplate); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PageListTemplatePO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pageListTemplate 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PageListTemplatePO pageListTemplate); + + + /** + * 修改,修改所有字段 + * + * @param pageListTemplate 修改的记录 + * @return 返回影响行数 + */ + int update(PageListTemplatePO pageListTemplate); + + /** + * 修改,忽略null字段 + * + * @param pageListTemplate 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PageListTemplatePO pageListTemplate); + + /** + * 删除记录 + * + * @param pageListTemplate 待删除的记录 + * @return 返回影响行数 + */ + int delete(PageListTemplatePO pageListTemplate); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml new file mode 100644 index 000000000..80704b199 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListTemplateMapper.xml @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.limit_ids + , t.name + , t.page + , t.setting + , t.shared_type + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_page_list_template + + + + create_time, + + + creator, + + + delete_type, + + + id, + + + limit_ids, + + + name, + + + page, + + + setting, + + + shared_type, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{id}, + + + #{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{name}, + + + #{page}, + + + #{setting , jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + #{sharedType}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + UPDATE hrsa_page_list_template + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + limit_ids=#{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + name=#{name}, + page=#{page}, + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + shared_type=#{sharedType}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_template + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + limit_ids=#{limitIds, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + name=#{name}, + + + page=#{page}, + + + setting=#{setting, jdbcType=ARRAY, typeHandler=com.engine.salary.handle.SalaryListTypeHandler}, + + + shared_type=#{sharedType}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_template + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_list_template + 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 1da1b84b6..5737baf97 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -354,23 +354,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala Map setting = getSettingService(user).getPageListSetting(param); 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()); - if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(Collections.emptyList()) @@ -383,100 +366,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); - - return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) .salaryAcctResultValueList(salaryAcctResultValues) .salaryItemList(salaryItemList) .build(); } - - - // @Override -// public void exportDetailList(Map map, SalaryStatisticsEmployeeDetailQueryParam queryParam) { -// DataCollectionEmployee employee = getSalaryEmployeeService(user).getEmployeeById(queryParam.getEmployeeId()); -// // 获取核算数据 -// SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult; -// if (Objects.isNull(employee)) { -// salaryStatisticsEmployeeDetailResult = SalaryStatisticsEmployeeDetailResultDTO.builder() -// .salaryAcctEmployeeList(Lists.newArrayList()) -// .salaryAcctResultValueList(Lists.newArrayList()) -// .salaryItemList(Lists.newArrayList()) -// .build(); -// } else { -// salaryStatisticsEmployeeDetailResult = this.getDetailSalaryAcctResult(queryParam); -// } -// -// String nameI18n = (StringUtils.isEmpty(employee.getUsername()) ? "" : "[" + employee.getUsername() + "]") + SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 177855, "薪资明细表"); -// -// List sheetList = new ArrayList<>(); -// ExcelSheetData excelSheetData = new ExcelSheetData(); -// // 1.工作簿名称 -// excelSheetData.setSheetName(nameI18n); -// List headerList = Lists.newArrayList(); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 87614, "薪资所属月")); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "个税扣缴义务人")); -// headerList.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 121908, "收入所得项目")); -// salaryStatisticsEmployeeDetailResult.getSalaryItemList().forEach(item -> headerList.add(item.getName())); -// // 2.表头 -// excelSheetData.setHeaders(Collections.singletonList(headerList.toArray(new String[]{}))); -// -// List taxAgentList = getTaxAgentService(user).listAll(tenantKey); -// Map taxAgentMap = SalaryEntityUtil.convert2Map(taxAgentList, TaxAgentPO::getId, TaxAgentPO::getName); -// -// Map> acctResultValueMap = SalaryEntityUtil.convert2Map(salaryStatisticsEmployeeDetailResult.getSalaryAcctResultValueList(), SalaryAcctResultPO::getSalaryAcctEmployeeId, SalaryAcctResultPO::getResultValue); -// -// // 组装数据 -// List> rows = new ArrayList<>(); -// for (SalaryAcctEmployeePO se : salaryStatisticsEmployeeDetailResult.getSalaryAcctEmployeeList()) { -// if (CollectionUtils.isNotEmpty(queryParam.getIds()) && !queryParam.getIds().contains(se.getId())) { -// continue; -// } -// List row = new ArrayList<>(); -// row.add(se.getSalaryMonth()); -// row.add(taxAgentMap.get(se.getTaxAgentId())); -// IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); -// row.add(Objects.isNull(incomeCategoryEnum) ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel())); -// // 薪资项目 -// Map resultValueMap = Optional.ofNullable(acctResultValueMap.get(se.getId())).orElse(Maps.newHashMap()); -// salaryStatisticsEmployeeDetailResult.getSalaryItemList().forEach(item -> row.add(Optional.ofNullable(resultValueMap.get(item.getId().toString())).orElse(""))); -// -// rows.add(row); -// } -// if (CollectionUtils.isNotEmpty(rows)) { -// List countRow = new ArrayList<>(); -// countRow.add(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 93278, "合计")); -// countRow.add("-"); -// countRow.add("-"); -// -// for (int i = 3; i < headerList.size(); i++) { -// BigDecimal sumBigDecimal = new BigDecimal(SalaryStatisticsReportBO.D_ZERO); -// for (List row : rows) { -// sumBigDecimal = sumBigDecimal.add(new BigDecimal(StringUtils.isEmpty(row.get(i).toString()) ? SalaryStatisticsReportBO.ZERO : row.get(i).toString())); -// } -// countRow.add(sumBigDecimal.toString()); -// } -// rows.add(countRow); -// } -// -// // 3.表数据 -// excelSheetData.setRows(rows); -// -// sheetList.add(excelSheetData); -// -// salaryBatchService.simpleExportExcel(ExportExcelInfo.builder() -//// .sharePassword(queryParam.getSharePassword()) -// .bizId(map.get("biz").toString()) -// .flag(true) -// .userId(employeeId) -// .eteamsId(map.get("eteamsId").toString()) -// .tenantKey(tenantKey) -// .operator(map.get("username").toString()) -// .module(map.get("module").toString()) -// .fileName(nameI18n + ReportTimeUtil.getFormatLocalDateTime(LocalDateTime.now())) -// .handlerName("exportSalaryStatisticsEmployeeDetailList") -// .dataType(nameI18n) -// .function("exportSalaryStatisticsEmployeeDetailList").build(), sheetList); -// } } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 63e0863cf..de4c32dd1 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -23,7 +23,11 @@ import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.report.service.impl.SalaryStatisticsEmployeeServiceImpl; import com.engine.salary.report.util.ReportDataUtil; import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryItemServiceImpl; +import com.engine.salary.service.impl.SettingServiceImpl; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.excel.ExcelUtilPlus; @@ -46,6 +50,9 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; +import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; +import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_DETAILS_REPORT_SHOW_TYPE; + /** * 薪酬统计员工明细 *

Copyright: Copyright (c) 2022

@@ -64,6 +71,17 @@ public class SalaryStatisticsEmployeeWrapper extends Service { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //是否模板显示 + private final boolean templateShow = "1".equals(getSalarySysConfService(user).getValueByCode(SALARY_DETAILS_REPORT_SHOW_TYPE)); + /** * 员工列表 * @@ -189,12 +207,18 @@ public class SalaryStatisticsEmployeeWrapper extends Service { } pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); - // 列表columns - List weaTableColumns = buildDetailTableColumns(salaryStatisticsEmployeeDetailResult, true); + List weaTableColumns; + //显示方案1,显示模板 + if (templateShow) { + weaTableColumns = getSettingService(user).getPageListColumns(SALARY_DETAILS_REPORT.getValue()); + } else { + // 显示方案0,显示定制列,默认方式 + weaTableColumns = buildDetailTableColumns(salaryStatisticsEmployeeDetailResult, true); + } // 结果 + resultMap.put("columns", weaTableColumns); if (queryParam.isExport()) { - resultMap.put("columns", weaTableColumns); resultMap.put("salaryItems", salaryStatisticsEmployeeDetailResult.getSalaryItemList()); resultMap.put("countResult", countResultMap); } else { @@ -229,7 +253,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 获取发薪人员 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); List employeePOS = salaryAcctEmployeePageInfo.getList(); - if (CollectionUtils.isEmpty(employeePOS)){ + if (CollectionUtils.isEmpty(employeePOS)) { return resultMap; } @@ -274,9 +298,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service { queryParam.setCurrent(1); queryParam.setExport(true); Map resultMap = salaryList(queryParam); - List columns = (List)resultMap.get("columns"); + List columns = (List) resultMap.get("columns"); List> resultList = ((PageInfo>) resultMap.get("pageInfo")).getList(); - Map countResult = (Map)resultMap.get("countResult"); + Map countResult = (Map) resultMap.get("countResult"); Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); // 获取薪资项目保留小数位数 @@ -299,7 +323,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { for (Map valueMap : resultList) { List list = new ArrayList<>(); for (Object column : finalColumns) { - WeaTableColumnGroup col = (WeaTableColumnGroup)column; + WeaTableColumnGroup col = (WeaTableColumnGroup) column; if (col.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())) { try { list.add(new BigDecimal(Util.null2String(valueMap.get(col.getColumn())))); @@ -316,7 +340,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { List sumRow = new ArrayList<>(); sumRow.add("总计"); for (int i = 1; i < finalColumns.size(); i++) { - WeaTableColumnGroup weaTableColumnGroup = (WeaTableColumnGroup)finalColumns.get(i); + WeaTableColumnGroup weaTableColumnGroup = (WeaTableColumnGroup) finalColumns.get(i); if (weaTableColumnGroup.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())) { try { sumRow.add(new BigDecimal(Util.null2String(countResult.get(weaTableColumnGroup.getColumn())))); diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 1a5be79a8..aa6526b02 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -1,20 +1,25 @@ package com.engine.salary.service; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; -import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageListTemplatePO; import java.util.List; import java.util.Map; public interface SettingService { - void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); + void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); - Map getPageListSetting(PageListSettingQueryParam param); + Map getPageListSetting(PageListSettingQueryParam param); - List getPageListTemplates(PageListTemplateQueryParam queryParam); + PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param); - PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param); + List getPageListTemplates(PageListTemplateQueryParam queryParam); + + PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param); + + void changePageListTemplate(PageListTemplateChangeParam param); + + List getPageListColumns(String page); } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 039786acf..207faa365 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -1,21 +1,29 @@ package com.engine.salary.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.cloudstore.eccom.constant.WeaBoolAttr; +import com.cloudstore.eccom.pc.table.WeaTableColumn; 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.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageLinkPO; import com.engine.salary.entity.setting.po.PageListSettingPO; -import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.entity.setting.po.PageListTemplatePO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.setting.PageLinkMapper; import com.engine.salary.mapper.setting.PageListSettingMapper; +import com.engine.salary.mapper.setting.PageListTemplateMapper; +import com.engine.salary.report.common.constant.SalaryConstant; 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.service.TaxAgentService; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; @@ -41,30 +49,36 @@ public class SettingServiceImpl extends Service implements SettingService { return MapperProxyFactory.getProxy(PageListSettingMapper.class); } - private SalarySobService getSalarySobService(User user) { - return ServiceUtil.getService(SalarySobServiceImpl.class, user); + private PageListTemplateMapper getPageListTemplateMapper() { + return MapperProxyFactory.getProxy(PageListTemplateMapper.class); + } + + private PageLinkMapper getPageLinkMapper() { + return MapperProxyFactory.getProxy(PageLinkMapper.class); } private SalaryItemService getSalaryItemService(User user) { return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } + private TaxAgentService getTaxAgentService() { + return ServiceUtil.getService(TaxAgentServiceImpl.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.setSetting(pageListSettingSaveParam.getSetting()); pageListSettingPO.setUpdateTime(now); getPageListSettingMapper().updateIgnoreNull(pageListSettingPO); } else { pageListSettingPO = PageListSettingPO.builder() .id(IdGenerator.generate()) - .name("系统默认模板") - .template(SalaryOnOffEnum.OFF.getValue()) .page(pageListSettingSaveParam.getPage()) - .setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())) + .setting(pageListSettingSaveParam.getSetting()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) @@ -103,8 +117,8 @@ public class SettingServiceImpl extends Service implements SettingService { }) .collect(Collectors.toList()); result.put("setting", salaryItemList); - if (pageListSettingPO != null && StrUtil.isNotEmpty(pageListSettingPO.getSetting())) { - result.put("checked", JsonUtil.parseList(pageListSettingPO.getSetting(), Long.class)); + if (pageListSettingPO != null && CollUtil.isNotEmpty(pageListSettingPO.getSetting())) { + result.put("checked", pageListSettingPO.getSetting()); } else { List collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); result.put("checked", collect); @@ -114,62 +128,165 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public List getPageListTemplates(PageListTemplateQueryParam param) { + public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) { + String page = param.getPage(); + Long id = param.getId(); + if (SALARY_DETAILS_REPORT.getValue().equals(page)) { + List columns = new ArrayList<>(); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "薪资所属月"), "salaryMonth")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgent")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "账套"), "salarySob")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "姓名"), "userName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "分部"), "subCompany")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "部门"), "department")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "岗位"), "jobTitle")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "员工状态"), "status")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "入职日期"), "companystartdate")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "次数"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); + if (StrUtil.isNotBlank(param.getName())) { + columns = columns.stream().filter(column -> column.getText().contains(param.getName())).collect(Collectors.toList()); + } + + List salaryItemList = getSalaryItemService(user).listAll(); + List collect = salaryItemList.stream() + .filter(po -> { + String name = param.getName(); + if (StrUtil.isNotEmpty(name)) { + return po.getName() != null && po.getName().contains(name); + } + return true; + }) + .sorted((o1, 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); + } + }) + .map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)) + .collect(Collectors.toList()); + + columns.addAll(collect); + + Map columnMap = SalaryEntityUtil.convert2Map(columns, WeaTableColumn::getColumn); + List checkedList = new ArrayList<>(); + if (id != null) { + PageListTemplatePO po = getPageListTemplateMapper().getById(id); + if (po != null) { + checkedList = Optional.ofNullable(po.getSetting()).orElse(new ArrayList<>()) + .stream() + .map(s -> columnMap.getOrDefault(s, new WeaTableColumn())) + .collect(Collectors.toList()); + + } + } + return PageListTemplateDTO.builder().setting(columns).checked(checkedList).build(); + } + + return PageListTemplateDTO.builder().build(); + } + + @Override + public List getPageListTemplates(PageListTemplateQueryParam param) { ValidUtil.doValidator(param); String page = param.getPage(); - List settingPOS = new ArrayList<>(); - //系统默认模板 - PageListSettingPO settingPO = getPageListSettingMapper().getByPage(page); - if (settingPO != null) { - settingPOS.add(settingPO); - } + PageListTemplatePO build = PageListTemplatePO.builder().page(page).build(); + List pos = getPageListTemplateMapper().listSome(build); - List pos = getPageListSettingMapper().getTemplatesByPage(page); - settingPOS.addAll(pos); + //获取当前选择的模板 + PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), SALARY_DETAILS_REPORT.getValue()); - String name = param.getName(); - if (StrUtil.isNotBlank(name)) { - settingPOS = settingPOS.stream().filter(po -> po.getName() != null && po.getName().contains(name)).collect(Collectors.toList()); - } - - return settingPOS; + Collection taxAgentPOS = getTaxAgentService().listAllTaxAgents((long) user.getUID()); + List taxIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId, Collectors.toList()); + pos = pos.stream() + .filter(po -> po.getSharedType() != 1 || CollectionUtil.intersection(po.getLimitIds(), taxIds).size() != 0) + .peek(po -> { + po.setChecked(link != null && po.getId().equals(link.getTemplateId())); + }) + .collect(Collectors.toList()); + return pos; } @Override - public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) { + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { ValidUtil.doValidator(param); Date now = new Date(); Long id = param.getId(); - PageListSettingPO po; + PageListTemplatePO po; if (id == null) { - po = PageListSettingPO.builder() + po = PageListTemplatePO.builder() .id(IdGenerator.generate()) - .template(SalaryOnOffEnum.ON.getValue()) - .name(param.getName()) .page(param.getPage()) - .setting(JsonUtil.toJsonString(param.getSetting())) + .name(param.getName()) + .sharedType(param.getSharedType()) + .limitIds(param.getLimitIds()) + .setting(param.getSetting()) .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(0) .tenantKey(DEFAULT_TENANT_KEY) .build(); - getPageListSettingMapper().insertIgnoreNull(po); + getPageListTemplateMapper().insertIgnoreNull(po); } else { - po = getPageListSettingMapper().getById(id); + po = getPageListTemplateMapper().getById(id); if (po == null) { throw new SalaryRunTimeException("模板不存在!"); } po.setName(param.getName()); - po.setSetting(JsonUtil.toJsonString(param.getSetting())); + po.setSharedType(param.getSharedType()); + po.setLimitIds(param.getLimitIds()); + po.setSetting(param.getSetting()); po.setUpdateTime(now); - getPageListSettingMapper().updateIgnoreNull(po); + getPageListTemplateMapper().updateIgnoreNull(po); } return po; } + + @Override + public void changePageListTemplate(PageListTemplateChangeParam param) { + + ValidUtil.doValidator(param); + + List pageLinkPOS = getPageLinkMapper().listSome(PageLinkPO.builder().employeeId((long) user.getUID()).page(param.getPage()).build()); + if (CollUtil.isNotEmpty(pageLinkPOS)) { + Set ids = SalaryEntityUtil.properties(pageLinkPOS, PageLinkPO::getId); + getPageLinkMapper().deleteByIds(ids); + } + PageLinkPO pageLinkPO = PageLinkPO.builder() + .id(IdGenerator.generate()) + .employeeId((long) user.getUID()) + .page(param.getPage()) + .templateId(param.getTemplateId()) + .tenantKey(DEFAULT_TENANT_KEY) + .createTime(new Date()) + .updateTime(new Date()) + .creator((long) user.getUID()) + .deleteType(0) + .build(); + + getPageLinkMapper().insertIgnoreNull(pageLinkPO); + } + + @Override + public List getPageListColumns(String page) { + PageLinkPO link = getPageLinkMapper().getLink((long) user.getUID(), page); + if (link != null) { + PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).id(link.getTemplateId()).build()); + return pageListTemplate.getChecked(); + }else { + PageListTemplateDTO pageListTemplate = getPageListTemplate(PageListTemplateQueryParam.builder().page(page).build()); + return pageListTemplate.getSetting(); + } + } } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ee89c5974..70bdecb64 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -166,4 +166,9 @@ public class SalarySysConstant { * 报表组织类型,null/0 :核算时组织信息 1:实时组织信息 */ public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; + + /** + * 薪资明细页面显示类型 + */ + public static final String SALARY_DETAILS_REPORT_SHOW_TYPE = "SALARY_DETAILS_REPORT_SHOW_TYPE"; } diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 43eb418d1..28155c729 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,11 +1,10 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.param.*; import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.wrapper.SalaryCommonWrapper; @@ -84,6 +83,21 @@ public class SalaryCommonController { return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); } + /** + * 页面模板表单 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/get") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListTemplate, param); + } + /** * 页面模板列表 * @param request @@ -96,7 +110,7 @@ public class SalaryCommonController { @Produces(MediaType.APPLICATION_JSON) public String getPageListTemplates(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); + return new ResponseResult>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param); } /** @@ -111,6 +125,21 @@ public class SalaryCommonController { @Produces(MediaType.APPLICATION_JSON) public String savePageListTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param); + } + + /** + * 页面模板列表 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/pageList/template/change") + @Produces(MediaType.APPLICATION_JSON) + public String changeTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListTemplateChangeParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::changePageListTemplate, param); } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 428ad2d0d..7719c6d5a 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -2,11 +2,9 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.entity.setting.param.PageListSettingQueryParam; -import com.engine.salary.entity.setting.param.PageListSettingSaveParam; -import com.engine.salary.entity.setting.param.PageListTemplateQueryParam; -import com.engine.salary.entity.setting.param.PageListTemplateSaveParam; -import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.entity.setting.dto.PageListTemplateDTO; +import com.engine.salary.entity.setting.param.*; +import com.engine.salary.entity.setting.po.PageListTemplatePO; import com.engine.salary.service.SalaryCacheService; import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryCacheServiceImpl; @@ -44,11 +42,21 @@ public class SalaryCommonWrapper extends Service { return getSettingService(user).getPageListSetting(param); } - public List getPageListTemplates(PageListTemplateQueryParam queryParam) { - return getSettingService(user).getPageListTemplates(queryParam); + + public PageListTemplateDTO getPageListTemplate(PageListTemplateQueryParam param) { + return getSettingService(user).getPageListTemplate(param); } - public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) { + public List getPageListTemplates(PageListTemplateQueryParam param) { + return getSettingService(user).getPageListTemplates(param); + } + + public PageListTemplatePO savePageListTemplate(PageListTemplateSaveParam param) { return getSettingService(user).savePageListTemplate(param); } + + public void changePageListTemplate(PageListTemplateChangeParam param) { + getSettingService(user).changePageListTemplate(param); + } + }