Merge remote-tracking branch 'origin/release/2.16.1.2410.01' into release/2.16.1.2410.01

This commit is contained in:
Harryxzy 2024-11-05 14:35:15 +08:00
commit 1026599131
13 changed files with 309 additions and 9 deletions

View File

@ -5,9 +5,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 薪资帐套表
*/
@Data
@Builder
@NoArgsConstructor

View File

@ -0,0 +1,19 @@
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 PageListTemplateDTO {
private Long id;
private String name;
}

View File

@ -0,0 +1,22 @@
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 PageListTemplateQueryParam {
@DataCheck(require = true,message = "请选择页面")
private String page;
private String name;
}

View File

@ -0,0 +1,38 @@
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 PageListTemplateSaveParam {
private Long id;
/**
* 页面0薪资明细
*/
@DataCheck(require = true,message = "请选择页面")
private String page;
/**
* 模板名称
*/
@DataCheck(require = true,message = "请选择模板名称")
private String name;
/**
* 设置
*/
@DataCheck(require = true,message = "请选择设置")
private List<Long> setting;
}

View File

@ -22,6 +22,18 @@ public class PageListSettingPO {
@ElogTransform(name = "")
private Long id;
/**
* 是否模板0否1是
*/
@ElogTransform(name = "是否模板")
private Integer template;
/**
* 模板名称
*/
@ElogTransform(name = "模板名称")
private String name;
/**
* 页面0薪资明细
*/

View File

@ -0,0 +1,39 @@
package com.engine.salary.enums.setting;
import com.engine.salary.enums.BaseEnum;
/**
* 人员类型
*/
public enum PageListSettingPageEnum implements BaseEnum<String> {
SALARY_DETAILS_REPORT("salary_details_report", "薪资明细报表", 109125)
;
private String value;
private String defaultLabel;
private int labelId;
PageListSettingPageEnum(String value, String defaultLabel, int labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
@Override
public String getValue() {
return value;
}
@Override
public Integer getLabelId() {
return labelId;
}
@Override
public String getDefaultLabel() {
return defaultLabel;
}
}

View File

@ -70,4 +70,6 @@ public interface PageListSettingMapper {
void deleteByIds(@Param("ids") Collection<Long> ids);
PageListSettingPO getByPage(String page);
List<PageListSettingPO> getTemplatesByPage(String page);
}

View File

@ -2,14 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.setting.PageListSettingMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.setting.po.PageListSettingPO">
<result column="create_time" property="createTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="id" property="id"/>
<result column="page" property="page"/>
<result column="name" property="name"/>
<result column="template" property="template"/>
<result column="setting" property="setting"/>
<result column="tenant_key" property="tenantKey"/>
<result column="create_time" property="createTime"/>
<result column="creator" property="creator"/>
<result column="update_time" property="updateTime"/>
<result column="delete_type" property="deleteType"/>
<result column="tenant_key" property="tenantKey"/>
</resultMap>
<!-- 表字段 -->
@ -21,6 +23,8 @@
, t.delete_type
, t.id
, t.page
, t.name
, t.template
, t.setting
, t.tenant_key
, t.update_time
@ -64,6 +68,12 @@
<if test="page != null">
AND page = #{page}
</if>
<if test="name != null">
AND name = #{name}
</if>
<if test="template != null">
AND template = #{template}
</if>
<if test="setting != null">
AND setting = #{setting}
</if>
@ -103,6 +113,12 @@
<if test="page != null">
page,
</if>
<if test="name != null">
name,
</if>
<if test="template != null">
template,
</if>
<if test="setting != null">
setting,
</if>
@ -129,6 +145,12 @@
<if test="page != null">
#{page},
</if>
<if test="name != null">
#{name},
</if>
<if test="template != null">
#{template},
</if>
<if test="setting != null">
#{setting},
</if>
@ -150,6 +172,8 @@
creator=#{creator},
delete_type=#{deleteType},
page=#{page},
name=#{name},
template=#{template},
setting=#{setting},
tenant_key=#{tenantKey},
update_time=#{updateTime},
@ -174,6 +198,12 @@
<if test="page != null">
page=#{page},
</if>
<if test="name != null">
name=#{name},
</if>
<if test="template != null">
template=#{template},
</if>
<if test="setting != null">
setting=#{setting},
</if>
@ -211,6 +241,16 @@
<include refid="baseColumns"/>
FROM hrsa_page_list_setting t
WHERE delete_type = 0
and template = 0
and page = #{page}
</select>
<select id="getTemplatesByPage" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_page_list_setting t
WHERE delete_type = 0
and template = 1
and page = #{page}
</select>

View File

@ -41,6 +41,8 @@ import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT;
/**
* 薪酬统计员工明细
* <p>Copyright: Copyright (c) 2022</p>
@ -348,7 +350,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala
@Override
public SalaryStatisticsEmployeeDetailResultDTO getDetailSalaryAcctResultByAcctEmp(List<SalaryAcctEmployeePO> salaryAcctEmployeeList) {
// 3.获取薪资项目
PageListSettingQueryParam param = PageListSettingQueryParam.builder().page("salary_details_report").build();
PageListSettingQueryParam param = PageListSettingQueryParam.builder().page(SALARY_DETAILS_REPORT.getValue()).build();
Map setting = getSettingService(user).getPageListSetting(param);
List<Long> checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>();
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(checked);

View File

@ -2,11 +2,19 @@ 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 java.util.List;
import java.util.Map;
public interface SettingService {
void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam);
Map getPageListSetting(PageListSettingQueryParam param);
List<PageListSettingPO> getPageListTemplates(PageListTemplateQueryParam queryParam);
PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param);
}

View File

@ -6,7 +6,11 @@ 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.po.PageListSettingPO;
import com.engine.salary.enums.SalaryOnOffEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.setting.PageListSettingMapper;
import com.engine.salary.service.SalaryItemService;
import com.engine.salary.service.SalarySobService;
@ -14,12 +18,14 @@ 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 com.engine.salary.util.valid.ValidUtil;
import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY;
import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT;
/**
* 薪资核算
@ -55,6 +61,8 @@ public class SettingServiceImpl extends Service implements SettingService {
} else {
pageListSettingPO = PageListSettingPO.builder()
.id(IdGenerator.generate())
.name("系统默认模板")
.template(SalaryOnOffEnum.OFF.getValue())
.page(pageListSettingSaveParam.getPage())
.setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting()))
.creator((long) user.getUID())
@ -72,7 +80,7 @@ public class SettingServiceImpl extends Service implements SettingService {
String page = param.getPage();
Map result = new HashMap();
PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page);
if ("salary_details_report".equals(page)) {
if (SALARY_DETAILS_REPORT.getValue().equals(page)) {
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listAll();
salaryItemList = salaryItemList.stream()
.filter(po -> {
@ -104,4 +112,64 @@ public class SettingServiceImpl extends Service implements SettingService {
}
return result;
}
@Override
public List<PageListSettingPO> getPageListTemplates(PageListTemplateQueryParam param) {
ValidUtil.doValidator(param);
String page = param.getPage();
List<PageListSettingPO> settingPOS = new ArrayList<>();
//系统默认模板
PageListSettingPO settingPO = getPageListSettingMapper().getByPage(page);
if (settingPO != null) {
settingPOS.add(settingPO);
}
List<PageListSettingPO> pos = getPageListSettingMapper().getTemplatesByPage(page);
settingPOS.addAll(pos);
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;
}
@Override
public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) {
ValidUtil.doValidator(param);
Date now = new Date();
Long id = param.getId();
PageListSettingPO po;
if (id == null) {
po = PageListSettingPO.builder()
.id(IdGenerator.generate())
.template(SalaryOnOffEnum.ON.getValue())
.name(param.getName())
.page(param.getPage())
.setting(JsonUtil.toJsonString(param.getSetting()))
.creator((long) user.getUID())
.createTime(now)
.updateTime(now)
.deleteType(0)
.tenantKey(DEFAULT_TENANT_KEY)
.build();
getPageListSettingMapper().insertIgnoreNull(po);
} else {
po = getPageListSettingMapper().getById(id);
if (po == null) {
throw new SalaryRunTimeException("模板不存在!");
}
po.setName(param.getName());
po.setSetting(JsonUtil.toJsonString(param.getSetting()));
po.setUpdateTime(now);
getPageListSettingMapper().updateIgnoreNull(po);
}
return po;
}
}

View File

@ -3,6 +3,9 @@ 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.po.PageListSettingPO;
import com.engine.salary.util.ResponseResult;
import com.engine.salary.util.SalaryEnumUtil;
import com.engine.salary.wrapper.SalaryCommonWrapper;
@ -66,6 +69,13 @@ public class SalaryCommonController {
return new ResponseResult<PageListSettingSaveParam, String>(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param);
}
/**
* 页面默认值
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/pageList/get/setting")
@Produces(MediaType.APPLICATION_JSON)
@ -73,4 +83,34 @@ public class SalaryCommonController {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<PageListSettingQueryParam, Map>(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param);
}
/**
* 页面模板列表
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/pageList/template/list")
@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<PageListTemplateQueryParam, List<PageListSettingPO>>(user).run(getSalaryCommonWrapper(user)::getPageListTemplates, param);
}
/**
* 页面模板列表
* @param request
* @param response
* @param param
* @return
*/
@POST
@Path("/pageList/template/save")
@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<PageListTemplateSaveParam, PageListSettingPO>(user).run(getSalaryCommonWrapper(user)::savePageListTemplate, param);
}
}

View File

@ -4,12 +4,16 @@ 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.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.List;
import java.util.Map;
@ -39,4 +43,12 @@ public class SalaryCommonWrapper extends Service {
public Map getPageListSetting(PageListSettingQueryParam param) {
return getSettingService(user).getPageListSetting(param);
}
public List<PageListSettingPO> getPageListTemplates(PageListTemplateQueryParam queryParam) {
return getSettingService(user).getPageListTemplates(queryParam);
}
public PageListSettingPO savePageListTemplate(PageListTemplateSaveParam param) {
return getSettingService(user).savePageListTemplate(param);
}
}