修复人员过多时bug

This commit is contained in:
钱涛 2023-05-04 11:56:34 +08:00
parent 20e4856c23
commit ae719ad65b
13 changed files with 785 additions and 27 deletions

View File

@ -0,0 +1,8 @@
package com.api.salary.web;
import javax.ws.rs.Path;
@Path("/bs/hrmsalary/report/statistics/echarts")
public class SalaryStatisticsEchartsController extends com.engine.salary.report.web.SalaryStatisticsEchartsController{
}

View File

@ -0,0 +1,72 @@
package com.engine.salary.mapper.report;
import com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
public interface SalaryStatisticsEChartsSettingMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<SalaryStatisticsEChartsSettingPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<SalaryStatisticsEChartsSettingPO> listSome(SalaryStatisticsEChartsSettingPO SalaryStatisticsEChartsSettingPO);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
SalaryStatisticsEChartsSettingPO getById(Long id);
/**
* 新增忽略null字段
*
* @param SalaryStatisticsEChartsSettingPO 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(SalaryStatisticsEChartsSettingPO SalaryStatisticsEChartsSettingPO);
/**
* 修改修改所有字段
*
* @param SalaryStatisticsEChartsSettingPO 修改的记录
* @return 返回影响行数
*/
int update(SalaryStatisticsEChartsSettingPO SalaryStatisticsEChartsSettingPO);
/**
* 修改忽略null字段
*
* @param SalaryStatisticsEChartsSettingPO 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(SalaryStatisticsEChartsSettingPO SalaryStatisticsEChartsSettingPO);
/**
* 删除记录
*
* @param SalaryStatisticsEChartsSettingPO 待删除的记录
* @return 返回影响行数
*/
int delete(SalaryStatisticsEChartsSettingPO SalaryStatisticsEChartsSettingPO);
/**
* 批量删除记录
* @param ids 主键id集合
*/
void deleteByIds(@Param("ids") Collection<Long> ids);
void deleteByReportId(Long reportId);
}

View File

@ -0,0 +1,321 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.report.SalaryStatisticsEChartsSettingMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO">
<result column="charts_type" property="chartsType"/>
<result column="create_time" property="createTime"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="dimension_range" property="dimensionRange"/>
<result column="id" property="id"/>
<result column="item_col_sort_value" property="itemColSortValue"/>
<result column="item_col_value" property="itemColValue"/>
<result column="item_sort_value" property="itemSortValue"/>
<result column="item_values" property="itemValues"/>
<result column="report_id" property="reportId"/>
<result column="sort_num" property="sortNum"/>
<result column="sort_type" property="sortType"/>
<result column="tenant_key" property="tenantKey"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
charts_type
, t.create_time
, t.creator
, t.delete_type
, t.dimension_range
, t.id
, t.item_col_sort_value
, t.item_col_value
, t.item_sort_value
, t.item_values
, t.report_id
, t.sort_num
, t.sort_type
, t.tenant_key
, t.update_time
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_echarts_setting t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_echarts_setting t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap"
parameterType="com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_echarts_setting t
WHERE delete_type = 0
<if test="chartsType != null">
AND charts_type = #{chartsType}
</if>
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="creator != null">
AND creator = #{creator}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="dimensionRange != null">
AND dimension_range = #{dimensionRange}
</if>
<if test="id != null">
AND id = #{id}
</if>
<if test="itemColSortValue != null">
AND item_col_sort_value = #{itemColSortValue}
</if>
<if test="itemColValue != null">
AND item_col_value = #{itemColValue}
</if>
<if test="itemSortValue != null">
AND item_sort_value = #{itemSortValue}
</if>
<if test="itemValues != null">
AND item_values = #{itemValues}
</if>
<if test="reportId != null">
AND report_id = #{reportId}
</if>
<if test="sortNum != null">
AND sort_num = #{sortNum}
</if>
<if test="sortType != null">
AND sort_type = #{sortType}
</if>
<if test="tenantKey != null">
AND tenant_key = #{tenantKey}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO">
INSERT INTO hrsa_salary_echarts_setting
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="chartsType != null">
charts_type,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="dimensionRange != null">
dimension_range,
</if>
<if test="id != null">
id,
</if>
<if test="itemColSortValue != null">
item_col_sort_value,
</if>
<if test="itemColValue != null">
item_col_value,
</if>
<if test="itemSortValue != null">
item_sort_value,
</if>
<if test="itemValues != null">
item_values,
</if>
<if test="reportId != null">
report_id,
</if>
<if test="sortNum != null">
sort_num,
</if>
<if test="sortType != null">
sort_type,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="chartsType != null">
#{chartsType},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="dimensionRange != null">
#{dimensionRange},
</if>
<if test="id != null">
#{id},
</if>
<if test="itemColSortValue != null">
#{itemColSortValue},
</if>
<if test="itemColValue != null">
#{itemColValue},
</if>
<if test="itemSortValue != null">
#{itemSortValue},
</if>
<if test="itemValues != null">
#{itemValues},
</if>
<if test="reportId != null">
#{reportId},
</if>
<if test="sortNum != null">
#{sortNum},
</if>
<if test="sortType != null">
#{sortType},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO">
UPDATE hrsa_salary_echarts_setting
<set>
charts_type=#{chartsType},
create_time=#{createTime},
creator=#{creator},
delete_type=#{deleteType},
dimension_range=#{dimensionRange},
item_col_sort_value=#{itemColSortValue},
item_col_value=#{itemColValue},
item_sort_value=#{itemSortValue},
item_values=#{itemValues},
report_id=#{reportId},
sort_num=#{sortNum},
sort_type=#{sortType},
tenant_key=#{tenantKey},
update_time=#{updateTime},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO">
UPDATE hrsa_salary_echarts_setting
<set>
<if test="chartsType != null">
charts_type=#{chartsType},
</if>
<if test="createTime != null">
create_time=#{createTime},
</if>
<if test="creator != null">
creator=#{creator},
</if>
<if test="deleteType != null">
delete_type=#{deleteType},
</if>
<if test="dimensionRange != null">
dimension_range=#{dimensionRange},
</if>
<if test="itemColSortValue != null">
item_col_sort_value=#{itemColSortValue},
</if>
<if test="itemColValue != null">
item_col_value=#{itemColValue},
</if>
<if test="itemSortValue != null">
item_sort_value=#{itemSortValue},
</if>
<if test="itemValues != null">
item_values=#{itemValues},
</if>
<if test="reportId != null">
report_id=#{reportId},
</if>
<if test="sortNum != null">
sort_num=#{sortNum},
</if>
<if test="sortType != null">
sort_type=#{sortType},
</if>
<if test="tenantKey != null">
tenant_key=#{tenantKey},
</if>
<if test="updateTime != null">
update_time=#{updateTime},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete">
UPDATE hrsa_salary_echarts_setting
SET delete_type=1
WHERE id = #{id}
AND delete_type = 0
</delete>
<delete id="deleteByIds">
UPDATE hrsa_salary_echarts_setting
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteByReportId">
UPDATE hrsa_salary_echarts_setting
SET delete_type=1
WHERE report_id = #{reportId}
AND delete_type = 0
</delete>
</mapper>

View File

@ -0,0 +1,76 @@
package com.engine.salary.report.entity.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Description: 薪酬统计图表
* @Author: wangxiangzhong
* @Date: 2023/1/31 15:25
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_salary_echarts_setting//
public class SalaryStatisticsEChartsSettingPO {
//分析图配置表id
private Long id;
//报表id
private Long reportId;
//报表类型
private Integer chartsType;
//统计项目
private String itemValues;
//统计列
private String itemColValue;
//维度统计范围
private Integer dimensionRange;
//排序统计项目
private String itemSortValue;
//排序列
private String itemColSortValue;
//排序类型
private Integer sortType;
//排序取数值
private Integer sortNum;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人
*/
private Long creator;
/**
* 是否已删除0未删除1已删除
*/
private Integer deleteType;
/**
* 租户ID
*/
private String tenantKey;
}

View File

@ -0,0 +1,37 @@
package com.engine.salary.report.service;
import com.engine.salary.report.entity.dto.SalaryStatisticsEchartsDTO;
/**
* 薪酬统计图表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public interface SalaryStatisticsEchartsService {
/**
* 分析图数据展示范围设置保存
*
* @param saveParam
* @return
*/
String saveRangeSetting(SalaryStatisticsEchartsDTO saveParam);
/**
* 分析图数据展示范围设置删除
*
* @param reportId
* @return
*/
String deleteRangeSetting(Long reportId);
/**
* 分析图数据展示范围设置查询
*
* @return
*/
SalaryStatisticsEchartsDTO queryRangeSetting(SalaryStatisticsEchartsDTO param);
}

View File

@ -0,0 +1,104 @@
package com.engine.salary.report.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.engine.core.impl.Service;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.enums.sicategory.DeleteTypeEnum;
import com.engine.salary.mapper.report.SalaryStatisticsEChartsSettingMapper;
import com.engine.salary.report.entity.dto.SalaryStatisticsEchartsDTO;
import com.engine.salary.report.entity.po.SalaryStatisticsEChartsSettingPO;
import com.engine.salary.report.service.SalaryStatisticsEchartsService;
import com.engine.salary.util.SalaryAssert;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import dm.jdbc.util.IdGenerator;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 薪酬统计图表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class SalaryStatisticsEchartsServiceImpl extends Service implements SalaryStatisticsEchartsService {
private SalaryStatisticsEChartsSettingMapper getSalaryStatisticsDimensionMapper() {
return MapperProxyFactory.getProxy(SalaryStatisticsEChartsSettingMapper.class);
}
@Override
public String saveRangeSetting(SalaryStatisticsEchartsDTO saveParam) {
SalaryAssert.notNull(saveParam.getReportId(), SalaryI18nUtil.getI18nLabel( 152562, "报表id不能为空"));
SalaryAssert.notNull(saveParam.getChartsType(), SalaryI18nUtil.getI18nLabel( 177912, "报表类型不能为空"));
SalaryStatisticsEChartsSettingPO salaryStatisticsEChartsSettingQue = null;
List<SalaryStatisticsEChartsSettingPO> pos = getSalaryStatisticsDimensionMapper().listSome(SalaryStatisticsEChartsSettingPO.builder().reportId(saveParam.getReportId()).chartsType(saveParam.getChartsType()).build());
if(CollectionUtils.isNotEmpty(pos)){
salaryStatisticsEChartsSettingQue = pos.get(0);
}
if (salaryStatisticsEChartsSettingQue != null) {
getSalaryStatisticsDimensionMapper().delete(salaryStatisticsEChartsSettingQue);
}
Date now = new Date();
SalaryStatisticsEChartsSettingPO salaryStatisticsEChartsSetting = SalaryStatisticsEChartsSettingPO.builder()
.id(IdGenerator.generate())
.reportId(saveParam.getReportId())
.chartsType(saveParam.getChartsType())
.itemValues(JSONArray.toJSONString(saveParam.getItemValues()))
.itemColValue(saveParam.getItemColValue())
.dimensionRange(Objects.isNull(saveParam.getDimensionRange()) ? 0 : saveParam.getDimensionRange())
.itemSortValue(saveParam.getItemSortValue())
.itemColSortValue(saveParam.getItemColSortValue())
.sortType(saveParam.getSortType())
.sortNum(saveParam.getSortNum())
.createTime(now)
.updateTime(now)
.deleteType(DeleteTypeEnum.NOT_DELETED.getValue())
.creator((long)user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
getSalaryStatisticsDimensionMapper().insertIgnoreNull(salaryStatisticsEChartsSetting);
return StringUtils.EMPTY;
}
@Override
public String deleteRangeSetting(Long reportId) {
getSalaryStatisticsDimensionMapper().deleteByReportId(reportId);
return StringUtils.EMPTY;
}
@Override
public SalaryStatisticsEchartsDTO queryRangeSetting(SalaryStatisticsEchartsDTO resp) {
SalaryStatisticsEChartsSettingPO salaryStatisticsEChartsSetting = null;
List<SalaryStatisticsEChartsSettingPO> pos = getSalaryStatisticsDimensionMapper().listSome(SalaryStatisticsEChartsSettingPO.builder().reportId(resp.getReportId()).chartsType(resp.getChartsType()).build());
if(CollectionUtils.isNotEmpty(pos)){
salaryStatisticsEChartsSetting = pos.get(0);
}
if (salaryStatisticsEChartsSetting != null) {
resp.setId(salaryStatisticsEChartsSetting.getId());
resp.setReportId(salaryStatisticsEChartsSetting.getReportId());
resp.setChartsType(salaryStatisticsEChartsSetting.getChartsType());
resp.setDimensionRange(salaryStatisticsEChartsSetting.getDimensionRange());
resp.setItemValues(JSONArray.parseArray(salaryStatisticsEChartsSetting.getItemValues(), String.class));
resp.setSortNum(salaryStatisticsEChartsSetting.getSortNum());
resp.setSortType(salaryStatisticsEChartsSetting.getSortType());
resp.setItemColValue(salaryStatisticsEChartsSetting.getItemColValue());
resp.setItemSortValue(salaryStatisticsEChartsSetting.getItemSortValue());
resp.setItemColSortValue(salaryStatisticsEChartsSetting.getItemColSortValue());
return resp;
}
return resp;
}
}

View File

@ -108,14 +108,14 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
@Override
public List<SalaryStatisticsReportPO> list() {
Boolean needAuth = getTaxAgentService(user).isNeedAuth((long)user.getUID());
if(needAuth){
Boolean needAuth = getTaxAgentService(user).isNeedAuth((long) user.getUID());
if (needAuth) {
Boolean adminEnable = getTaxAgentService(user).isAdminEnable((long) user.getUID());
if(!adminEnable){
if (!adminEnable) {
return new ArrayList<>();
}
}
return getSalaryStatisticsReportMapper().listSome(SalaryStatisticsReportPO.builder().build());
}
@ -325,7 +325,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
allList.addAll(list);
allList.addAll(lastList);
allList.addAll(sameList);
Set<Long> salaryAcctEmployeeIds = allList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toSet());
List<Long> salaryAcctEmployeeIds = allList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
// Map<Long, List<SalaryAcctResultPO>> salaryAcctResultValueMap = SalaryEntityUtil.convert2Map();
Map<Long, List<SalaryAcctResultPO>> salaryAcctEmpResultMap = SalaryEntityUtil.group2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId);
@ -400,8 +400,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary
} else if (SalaryStatisticsDimensionTypeEnum.RATION_GROUP_SPACING.getValue().equals(dimension.getDimType())) {
return buildRationGroupSpacing4Records(dimension, data, salaryAcctResultValueMap);
// 定量-单项式分组
}
else if (SalaryStatisticsDimensionTypeEnum.RATION_GROUP_INDIVIDUAL.getValue().equals(dimension.getDimType())) {
} else if (SalaryStatisticsDimensionTypeEnum.RATION_GROUP_INDIVIDUAL.getValue().equals(dimension.getDimType())) {
return buildRationGroupIndividual4Records(dimension, data, salaryAcctResultValueMap);
}
return new PageInfo<>();

View File

@ -0,0 +1,78 @@
package com.engine.salary.report.web;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.report.entity.dto.SalaryStatisticsEchartsDTO;
import com.engine.salary.report.wrapper.SalaryStatisticsEchartsWrapper;
import com.engine.salary.util.ResponseResult;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
/**
* 薪酬统计图表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class SalaryStatisticsEchartsController {
private SalaryStatisticsEchartsWrapper getSalaryStatisticsEchartsWrapper(User user) {
return ServiceUtil.getService(SalaryStatisticsEchartsWrapper.class, user);
}
/**
* 分析图数据展示范围设置保存
*
* @param saveParam
* @return
*/
@POST
@Path("/saveRangeSetting")
@Produces(MediaType.APPLICATION_JSON)
public String saveRangeSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsEchartsDTO saveParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryStatisticsEchartsDTO, String>(user).run(getSalaryStatisticsEchartsWrapper(user)::saveRangeSetting, saveParam);
}
/**
* 分析图数据展示范围设置删除
*
* @param reportId
* @return
*/
@GET
@Path("/deleteRangeSetting")
@Produces(MediaType.APPLICATION_JSON)
public String deleteRangeSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "reportId")Long reportId) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<Long, String>(user).run(getSalaryStatisticsEchartsWrapper(user)::deleteRangeSetting, reportId);
}
/**
* 分析图数据展示范围设置查询
*
* @param reportId
* @param chartsType
* @return
*/
@GET
@Path("/queryRangeSetting")
@Produces(MediaType.APPLICATION_JSON)
public String deleteRangeSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "reportId")Long reportId, @QueryParam(value = "chartsType")Integer chartsType) {
User user = HrmUserVarify.getUser(request, response);
SalaryStatisticsEchartsDTO resp = SalaryStatisticsEchartsDTO.builder()
.reportId(reportId)
.chartsType(chartsType)
.build();
return new ResponseResult<SalaryStatisticsEchartsDTO, SalaryStatisticsEchartsDTO>(user).run(getSalaryStatisticsEchartsWrapper(user)::queryRangeSetting, resp);
}
}

View File

@ -34,7 +34,6 @@ public class SalaryStatisticsItemController {
* @param id
* @return
*/
@GET
@Path("/getForm")
@Produces(MediaType.APPLICATION_JSON)

View File

@ -0,0 +1,51 @@
package com.engine.salary.report.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.report.entity.dto.SalaryStatisticsEchartsDTO;
import com.engine.salary.report.service.SalaryStatisticsEchartsService;
import com.engine.salary.report.service.impl.SalaryStatisticsEchartsServiceImpl;
import weaver.hrm.User;
/**
* 薪酬统计图表
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class SalaryStatisticsEchartsWrapper extends Service {
private SalaryStatisticsEchartsService getSalaryStatisticsEchartsService(User user) {
return ServiceUtil.getService(SalaryStatisticsEchartsServiceImpl.class, user);
}
/**
* 分析图数据展示范围设置保存
*
* @param saveParam
* @return
*/
public String saveRangeSetting(SalaryStatisticsEchartsDTO saveParam) {
return getSalaryStatisticsEchartsService(user).saveRangeSetting(saveParam);
}
/**
* 分析图数据展示范围设置删除
*
* @param reportId
* @return
*/
public String deleteRangeSetting(Long reportId) {
return getSalaryStatisticsEchartsService(user).deleteRangeSetting(reportId);
}
/**
* 分析图数据展示范围设置查询
*
* @return
*/
public SalaryStatisticsEchartsDTO queryRangeSetting(SalaryStatisticsEchartsDTO param) {
return getSalaryStatisticsEchartsService(user).queryRangeSetting(param);
}
}

View File

@ -132,7 +132,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
// 7查询考勤数据
List<AttendQuoteDataDTO> attendQuoteDataDTOS = getAttendQuoteDataService(user).getAttendQuoteData(salarySobCycleDTO.getSalaryMonth(), salarySobCycleDTO.getSalarySobId(), employeeIds);
// 8查询薪资核算人员的薪资核算结果
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctCalculateBO.getSalaryAcctEmployeePOS(), SalaryAcctEmployeePO::getId,Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
// 薪资回算时回算前的核算结果 (没有回算项)

View File

@ -182,7 +182,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) {
return Collections.emptyList();
}
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).build());
List<List<Long>> partition = Lists.partition((List<Long>) salaryAcctEmployeeIds, 2000);
List<SalaryAcctResultPO> salaryAcctResultPOS = new ArrayList<>();
partition.forEach(empIds -> {
salaryAcctResultPOS.addAll(getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).build()));
});
// 解密
encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class);
return salaryAcctResultPOS;
@ -193,7 +197,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
if (CollectionUtils.isEmpty(salaryAcctRecordIds) || CollectionUtils.isEmpty(employeeIds)) {
return Collections.emptyList();
}
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).employeeIds(employeeIds).build());
List<List<Long>> partition = Lists.partition((List<Long>) employeeIds, 2000);
List<SalaryAcctResultPO> salaryAcctResultPOS = new ArrayList<>();
partition.forEach(empIds -> {
salaryAcctResultPOS.addAll(getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).employeeIds(empIds).build()));
});
encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class);
return salaryAcctResultPOS;
}
@ -237,16 +245,16 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
List<SalaryItemPO> salaryBackItemPOS = Collections.emptyList();
// key:账套中回算薪资项目的薪资项目id value:账套中回算薪资项目所对应的公式内容
Map<Long, String> salaryBackItemFormula = new HashMap<>();
if(isBackCal){
if (isBackCal) {
salarySobBackItemPOList = getSalarySobBackItemService(user).listBySalarySobId(byId.getSalarySobId());
Set<Long> salarySobBackItemIds = SalaryEntityUtil.properties(salarySobBackItemPOList, SalarySobBackItemPO::getSalaryItemId);
salaryBackItemPOS = getSalaryItemService(user).listByIds(salarySobBackItemIds);
// 查询薪资账套中已发补发的公式内容
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(SalaryEntityUtil.properties(salarySobBackItemPOList, SalarySobBackItemPO::getFormulaId));
Map<Long, String> expressFormulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
for(SalarySobBackItemPO salarySobBackItemPO:salarySobBackItemPOList){
for (SalarySobBackItemPO salarySobBackItemPO : salarySobBackItemPOList) {
String exp = Objects.equals(expressFormulaMap.get(salarySobBackItemPO.getFormulaId()), 0) ? "输入" : expressFormulaMap.get(salarySobBackItemPO.getFormulaId());
salaryBackItemFormula.put(salarySobBackItemPO.getSalaryItemId(),exp);
salaryBackItemFormula.put(salarySobBackItemPO.getSalaryItemId(), exp);
}
}
@ -299,7 +307,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId);
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds);
// 查询薪资核算结果
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
Map<String, Object> map = new HashMap<>();
@ -356,7 +364,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
}
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds);
// 查询薪资核算结果
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
// 查询人员信息
List<Long> employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList());
@ -379,7 +387,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
// 获取回算公式
if (isBackCalc) {
formulaIds.addAll(salarySobBackItemPOList.stream().map(SalarySobBackItemPO :: getFormulaId ).collect(Collectors.toList()));
formulaIds.addAll(salarySobBackItemPOList.stream().map(SalarySobBackItemPO::getFormulaId).collect(Collectors.toList()));
}
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
Map<Long, String> expressFormulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
@ -437,7 +445,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByRecordIdsAndEmpIdAndTaxAgentId(salaryAcctRecordIds, salaryAcctEmployeePO.getEmployeeId(), salaryAcctEmployeePO.getTaxAgentId());
}
// 查询薪资核算人员的薪资核算结果
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId,Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
// 查询薪资核算人员所有合并计税的薪资核算记录所用的账套
Set<Long> salarySobIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getSalarySobId);
@ -512,7 +520,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
// 查询原来的薪资核算结果
List<SalaryAcctResultPO> salaryAcctResultPOSOld = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpId(saveParam.getSalaryAcctEmpId()).build());
// 解密
encryptUtil.decryptList(salaryAcctResultPOSOld,SalaryAcctResultPO.class);
encryptUtil.decryptList(salaryAcctResultPOSOld, SalaryAcctResultPO.class);
// 保存参数转换成薪资核算结果po
List<SalaryAcctResultPO> salaryAcctResultPOS = SalaryAcctResultBO.convert2PO(salaryAcctResultPOSOld, saveParam, salaryAcctEmployeePO, (long) user.getUID());
@ -615,7 +623,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
}
// 回算薪资项目
List<SalarySobBackItemPO> salarySobBackItems = Collections.emptyList();
if(Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), 1)){
if (Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), 1)) {
salarySobBackItems = getSalarySobBackItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
}
// 4查询当前租户的所有薪资项目
@ -642,7 +650,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
// 8查询公式详情
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
formulaIds.addAll(SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getFormulaId));
formulaIds.addAll(SalaryEntityUtil.properties(salarySobBackItems,SalarySobBackItemPO::getFormulaId));
formulaIds.addAll(SalaryEntityUtil.properties(salarySobBackItems, SalarySobBackItemPO::getFormulaId));
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
// 本次运算的回算薪资项目所涉及的变量
Set<String> issuedFieldIds = new HashSet<>();
@ -825,7 +833,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
return;
}
// 查询薪资核算结果
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployees, SalaryAcctEmployeePO::getId);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployees, SalaryAcctEmployeePO::getId,Collectors.toList());
List<SalaryAcctResultPO> salaryAcctResultValues = this.listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
Map<Long, SalaryAcctResultPO> salaryAcctResultValueMap = SalaryEntityUtil.convert2Map(salaryAcctResultValues, SalaryAcctResultPO::getSalaryAcctEmpId);
// 值可以锁定的薪资项目
@ -860,11 +868,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
@Override
public List<SalaryAcctResultPO> listBySalaryAcctRecordIdsAndSalaryItemIds(Collection<Long> salaryAcctRecordIds, Collection<Long> salaryItemIds) {
if (CollectionUtils.isEmpty(salaryAcctRecordIds) || CollectionUtils.isEmpty(salaryItemIds) ) {
if (CollectionUtils.isEmpty(salaryAcctRecordIds) || CollectionUtils.isEmpty(salaryItemIds)) {
return Collections.emptyList();
}
List<SalaryAcctResultPO> list = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).salaryItemIds(salaryItemIds).build());
return encryptUtil.decryptList(list,SalaryAcctResultPO.class);
return encryptUtil.decryptList(list, SalaryAcctResultPO.class);
}

View File

@ -109,7 +109,12 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary
if (CollectionUtils.isEmpty(salaryAcctEmployeeIds)) {
return Collections.emptyList();
}
List<ExcelAcctResultPO> excelAcctResultPOS = getExcelAcctResultMapper().listSome(ExcelAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).build());
List<ExcelAcctResultPO> excelAcctResultPOS = new ArrayList<>();
List<List<Long>> partition = Lists.partition((List<Long>) salaryAcctEmployeeIds, 2000);
partition.forEach(empIds -> {
excelAcctResultPOS.addAll(getExcelAcctResultMapper().listSome(ExcelAcctResultPO.builder().salaryAcctEmpIds(empIds).build()));
});
return encryptUtil.decryptList(excelAcctResultPOS, ExcelAcctResultPO.class);
}
@ -159,7 +164,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds);
// 转换成聚合dto
SalarySobItemAggregateBO salarySobItemAggregateBO = new SalarySobItemAggregateBO(salarySobPO, salarySobEmpFieldPOS,
salarySobItemGroupPOS, salarySobItemPOS, expressFormulas, salaryItemPOS,Collections.emptyList(),Collections.emptyList());
salarySobItemGroupPOS, salarySobItemPOS, expressFormulas, salaryItemPOS, Collections.emptyList(), Collections.emptyList());
SalarySobItemAggregateDTO salarySobItemAggregateDTO = salarySobItemAggregateBO.convert2AggregateDTO();
// 薪资核算人员
@ -183,7 +188,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary
excelAcctResultPOS = listBySalaryAcctRecordId(queryParam.getSalaryAcctRecordId());
} else {
// 薪资核算人员id
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId);
List<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId, Collectors.toList());
// 查询薪资核算结果
salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
// 查询线下导入结果