薪资账套项目页面改造temp
This commit is contained in:
parent
0119161173
commit
a8a414a48b
|
|
@ -10,11 +10,11 @@ import java.util.List;
|
|||
|
||||
public class SalarySobItemHideBiz {
|
||||
|
||||
public List<Long> listSome(SalarySobItemHidePO salarySobPO) {
|
||||
public List<Long> listHideItemIds(SalarySobItemHidePO salarySobPO) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemHideMapper mapper = sqlSession.getMapper(SalarySobItemHideMapper.class);
|
||||
return mapper.getById(salarySobPO);
|
||||
return mapper.listHideItemIds(salarySobPO);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
|
|
@ -53,4 +53,14 @@ public class SalarySobItemHideBiz {
|
|||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public List<SalarySobItemHidePO> listSome(SalarySobItemHidePO po) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemHideMapper mapper = sqlSession.getMapper(SalarySobItemHideMapper.class);
|
||||
return mapper.listSome(po);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,6 +75,11 @@ public class SalaryItemFormDTO {
|
|||
//公式内容")
|
||||
private String formulaContent;
|
||||
|
||||
// 用于前端展示 公式原始内容
|
||||
private String originFormulaContent;
|
||||
// 用于前端展示 原始sql
|
||||
private String originSqlContent;
|
||||
|
||||
//备注")
|
||||
private String description;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
package com.engine.salary.entity.salarysob.dto;
|
||||
|
||||
import com.engine.salary.enums.SalaryRoundingModeEnum;
|
||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
||||
import com.engine.salary.util.valid.DataCheck;
|
||||
import com.engine.salary.util.valid.RuntimeTypeEnum;
|
||||
import com.engine.salary.util.valid.ValidTypeEnum;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 薪资账套-薪资项目表单
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author xzy
|
||||
* @version 1.0
|
||||
**/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SalarySobItemFormDTO {
|
||||
|
||||
//主键id")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "id不允许为空")
|
||||
private Long id;
|
||||
|
||||
//名称")
|
||||
private String name;
|
||||
|
||||
//核算时隐藏")
|
||||
@DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "核算时隐藏不允许为空")
|
||||
private Integer itemHide;
|
||||
|
||||
//字段类型
|
||||
/**
|
||||
* @see SalaryDataTypeEnum
|
||||
*/
|
||||
private String dataType;
|
||||
|
||||
//舍入规则")
|
||||
/**
|
||||
* @see SalaryRoundingModeEnum
|
||||
*/
|
||||
@DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "舍入规则不允许为空")
|
||||
private Integer roundingMode;
|
||||
|
||||
//保留小数位")
|
||||
@DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 6, message = "小数位最多为6")
|
||||
private Integer pattern;
|
||||
|
||||
//取值方式")
|
||||
/**
|
||||
* @see SalaryValueTypeEnum
|
||||
*/
|
||||
@DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "取值方式不允许为空")
|
||||
private Integer valueType;
|
||||
|
||||
//公式")
|
||||
private Long formulaId;
|
||||
|
||||
//公式内容")
|
||||
private String formulaContent;
|
||||
|
||||
// 用于前端展示 公式原始内容
|
||||
private String originFormulaContent;
|
||||
// 用于前端展示 原始sql
|
||||
private String originSqlContent;
|
||||
|
||||
//备注")
|
||||
private String description;
|
||||
|
||||
//是否可以编辑")
|
||||
private Integer canEdit;
|
||||
|
||||
}
|
||||
|
|
@ -77,6 +77,22 @@ public class SalarySobItemSaveParam {
|
|||
private Long itemHide;
|
||||
|
||||
private Boolean canDelete;
|
||||
|
||||
/**
|
||||
* 进位规则
|
||||
*/
|
||||
private Integer roundingMode;
|
||||
|
||||
/**
|
||||
* 保留小数位数
|
||||
*/
|
||||
private Integer pattern;
|
||||
|
||||
/**
|
||||
* 取值方式
|
||||
*/
|
||||
private Integer valueType;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.engine.salary.entity.salarysob.po;
|
||||
|
||||
import com.engine.salary.enums.SalaryRoundingModeEnum;
|
||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
|
@ -88,6 +90,26 @@ public class SalarySobItemPO {
|
|||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 进位规则
|
||||
*
|
||||
* @see SalaryRoundingModeEnum
|
||||
*/
|
||||
private Integer roundingMode;
|
||||
|
||||
/**
|
||||
* 保留的小数位数
|
||||
*/
|
||||
private Integer pattern;
|
||||
|
||||
/**
|
||||
* 取值方式
|
||||
*
|
||||
* @see SalaryValueTypeEnum
|
||||
*/
|
||||
private Integer valueType;
|
||||
|
||||
|
||||
//该分类是否隐藏(0不隐藏,1隐藏)
|
||||
private Long itemHide;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public interface SalarySobItemHideMapper {
|
|||
* @param salarySobPO
|
||||
* @return
|
||||
*/
|
||||
List<Long> getById(SalarySobItemHidePO salarySobPO);
|
||||
List<Long> listHideItemIds(SalarySobItemHidePO salarySobPO);
|
||||
|
||||
/***
|
||||
* @description 删除薪资账套的薪资项目隐藏信息
|
||||
|
|
@ -28,4 +28,5 @@ public interface SalarySobItemHideMapper {
|
|||
|
||||
void updateByItemId(SalarySobItemHidePO salarySobGroupItemHidePO);
|
||||
|
||||
List<SalarySobItemHidePO> listSome(@Param("param") SalarySobItemHidePO po);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
|
||||
<!-- 根据账套id获取关闭显示开关的itemID -->
|
||||
<select id="getById" resultType="java.lang.Long">
|
||||
<select id="listHideItemIds" resultType="java.lang.Long">
|
||||
SELECT salary_item_id FROM hrsa_salary_item_hide
|
||||
where delete_type=0
|
||||
and salary_sob_id=#{salarySobId}
|
||||
|
|
@ -20,6 +20,35 @@
|
|||
<if test="isGroup!=null">
|
||||
and is_group=#{isGroup}
|
||||
</if>
|
||||
<if test="salaryItemId!=null">
|
||||
and salary_item_id=#{salaryItemId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="listSome" resultType="com.engine.salary.entity.salarysob.po.SalarySobItemHidePO">
|
||||
SELECT
|
||||
id
|
||||
, salary_sob_id
|
||||
, salary_item_id
|
||||
, is_group
|
||||
, item_hide
|
||||
FROM hrsa_salary_item_hide
|
||||
where delete_type=0
|
||||
<if test="param.id!=null">
|
||||
and id=#{param.id}
|
||||
</if>
|
||||
<if test="param.salarySobId!=null">
|
||||
and salary_sob_id=#{param.salarySobId}
|
||||
</if>
|
||||
<if test="param.itemHide!=null">
|
||||
and item_hide=#{param.itemHide}
|
||||
</if>
|
||||
<if test="param.isGroup!=null">
|
||||
and is_group=#{param.isGroup}
|
||||
</if>
|
||||
<if test="param.salaryItemId!=null">
|
||||
and salary_item_id=#{param.salaryItemId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,10 @@
|
|||
, t.sorted_index
|
||||
, t.tenant_key
|
||||
, t.update_time
|
||||
,t.can_delete
|
||||
, t.can_delete
|
||||
, t.rounding_mode
|
||||
, t.pattern
|
||||
, t.value_type
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
|
|
@ -318,6 +321,15 @@
|
|||
<if test="canDelete != null">
|
||||
can_delete=#{canDelete},
|
||||
</if>
|
||||
<if test="roundingMode != null">
|
||||
rounding_mode=#{roundingMode},
|
||||
</if>
|
||||
<if test="pattern != null">
|
||||
pattern=#{pattern},
|
||||
</if>
|
||||
<if test="valueType != null">
|
||||
value_type=#{valueType},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
|
@ -364,7 +376,7 @@
|
|||
|
||||
<insert id="batchInsert">
|
||||
INSERT INTO hrsa_salary_sob_item(salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
|
||||
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete)
|
||||
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type)
|
||||
VALUES
|
||||
<foreach collection="collection" item="item" separator=",">
|
||||
(
|
||||
|
|
@ -379,13 +391,16 @@
|
|||
#{item.creator},
|
||||
#{item.deleteType},
|
||||
#{item.tenantKey},
|
||||
#{item.canDelete}
|
||||
#{item.canDelete},
|
||||
#{item.roundingMode},
|
||||
#{item.pattern},
|
||||
#{item.valueType}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
<insert id="batchInsert" databaseId="oracle">
|
||||
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
|
||||
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete)
|
||||
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type)
|
||||
|
||||
<foreach collection="collection" item="item" separator="union all">
|
||||
select
|
||||
|
|
@ -400,14 +415,17 @@
|
|||
#{item.creator,jdbcType=DOUBLE},
|
||||
#{item.deleteType,jdbcType=INTEGER},
|
||||
#{item.tenantKey,jdbcType=VARCHAR},
|
||||
#{item.canDelete,jdbcType=INTEGER}
|
||||
#{item.canDelete,jdbcType=INTEGER},
|
||||
#{item.roundingMode,jdbcType=INTEGER},
|
||||
#{item.pattern,jdbcType=INTEGER},
|
||||
#{item.valueType,jdbcType=INTEGER}
|
||||
from dual
|
||||
</foreach>
|
||||
</insert>
|
||||
<insert id="batchInsert" databaseId="sqlserver">
|
||||
<foreach collection="collection" item="item" separator=";">
|
||||
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
|
||||
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete)
|
||||
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type)
|
||||
VALUES
|
||||
(
|
||||
#{item.salarySobId},
|
||||
|
|
@ -421,7 +439,10 @@
|
|||
#{item.creator},
|
||||
#{item.deleteType},
|
||||
#{item.tenantKey},
|
||||
#{item.canDelete}
|
||||
#{item.canDelete},
|
||||
#{item.roundingMode},
|
||||
#{item.pattern},
|
||||
#{item.valueType}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
|
|
|||
|
|
@ -13,4 +13,14 @@ public interface SalarySobItemHideService {
|
|||
* @return
|
||||
*/
|
||||
List<Long> listHideGroupBysalarySobId(SalarySobItemHidePO salarySobId);
|
||||
|
||||
/**
|
||||
* 根据薪资账套id查询哪些字段关闭显示
|
||||
*
|
||||
* @param po
|
||||
* @return
|
||||
*/
|
||||
List<SalarySobItemHidePO> listSome(SalarySobItemHidePO po);
|
||||
|
||||
void updateById(SalarySobItemHidePO salarySobItemHidePO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.service;
|
|||
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO;
|
||||
import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
|
||||
|
|
@ -119,4 +120,15 @@ public interface SalarySobItemService {
|
|||
*
|
||||
*/
|
||||
void deleteItemShowBySalarySobIds(Collection<Long> salarySobIds);
|
||||
|
||||
/**
|
||||
* 薪资项目的详情
|
||||
*/
|
||||
SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param);
|
||||
|
||||
/**
|
||||
* 薪资账套-保存薪资项目详情设置
|
||||
* @param saveParam
|
||||
*/
|
||||
void saveSalaryItemDetail(SalarySobItemFormDTO saveParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,16 @@ public class SalarySobItemHideServiceImpl extends Service implements SalarySobIt
|
|||
|
||||
@Override
|
||||
public List<Long> listHideGroupBysalarySobId(SalarySobItemHidePO salarySobPO) {
|
||||
return salarySobItemHideMapper.listSome(salarySobPO);
|
||||
return salarySobItemHideMapper.listHideItemIds(salarySobPO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalarySobItemHidePO> listSome(SalarySobItemHidePO po) {
|
||||
return salarySobItemHideMapper.listSome(po);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateById(SalarySobItemHidePO salarySobItemHidePO) {
|
||||
salarySobItemHideMapper.update(salarySobItemHidePO);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,11 @@ import com.engine.salary.entity.salaryformula.ExpressFormula;
|
|||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO;
|
||||
import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam;
|
||||
import com.engine.salary.entity.salarysob.po.*;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salarysob.SalarySobDefaultItemMapper;
|
||||
import com.engine.salary.mapper.salarysob.SalarySobEmpFieldMapper;
|
||||
|
|
@ -22,11 +24,14 @@ import com.engine.salary.service.*;
|
|||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.valid.RuntimeTypeEnum;
|
||||
import com.engine.salary.util.valid.ValidUtil;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.*;
|
||||
|
|
@ -201,10 +206,6 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
// 查询薪资账套的薪资项目分类
|
||||
List<SalarySobItemGroupPO> salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobIdWithItemHide(salarySobId);
|
||||
|
||||
if (isBackCalc) {
|
||||
// 回算分类
|
||||
|
||||
}
|
||||
// 获取关闭显示的分类
|
||||
List<Long> hideGroupIDs = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder().salarySobId(salarySobId).isGroup(1).build());
|
||||
// 过滤关闭显示的薪资项目分类
|
||||
|
|
@ -348,6 +349,10 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
List<SalarySobItemSaveParam.SalarySobItemGroupParam> needUpdateGroup = itemGroups.stream().filter(f -> f.getId() != null && oldGroupIds.contains(f.getId())).collect(Collectors.toList());
|
||||
List<Long> needDeleteGroupIds = oldGroupIds.stream().filter(f -> !newGroupIds.contains(f)).collect(Collectors.toList());
|
||||
|
||||
// 获取所有薪资项目
|
||||
List<SalaryItemPO> allSalaryItemList = getSalaryItemService(user).listAll();
|
||||
Map<Long, SalaryItemPO> salaryItemsMap = SalaryEntityUtil.convert2Map(allSalaryItemList, SalaryItemPO::getId);
|
||||
|
||||
// 需要保存的隐藏项目
|
||||
List<SalarySobItemHidePO> needInsertItemShow = new ArrayList<>();
|
||||
|
||||
|
|
@ -390,6 +395,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : itemGroupParam.getItems()) {
|
||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
|
|
@ -403,6 +409,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO))
|
||||
.roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode())
|
||||
.pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern())
|
||||
.valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType())
|
||||
.build();
|
||||
salarySobItems.add(salarySobItemPO);
|
||||
|
||||
|
|
@ -465,6 +474,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
|
||||
//新增
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
|
|
@ -478,6 +488,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
.updateTime(now)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode())
|
||||
.pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern())
|
||||
.valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType())
|
||||
.build();
|
||||
salarySobItems.add(salarySobItemPO);
|
||||
|
||||
|
|
@ -499,6 +512,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
}
|
||||
//更新
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.id(itemParam.getId())
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
|
|
@ -508,6 +522,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
.canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO))
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode())
|
||||
.pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern())
|
||||
.valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType())
|
||||
.build();
|
||||
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
||||
// 保存薪资项目是否展示
|
||||
|
|
@ -547,7 +564,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
List<SalarySobItemSaveParam.SalarySobItemParam> needUpdateItems = items.stream().filter(f -> f.getId() != null && oldItemIds.contains(f.getId())).collect(Collectors.toList());
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
||||
|
||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
|
|
@ -561,6 +578,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO))
|
||||
.roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode())
|
||||
.pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern())
|
||||
.valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType())
|
||||
.build();
|
||||
salarySobItems.add(salarySobItemPO);
|
||||
|
||||
|
|
@ -583,13 +603,16 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
}
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
||||
|
||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.id(itemParam.getId())
|
||||
.formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO))
|
||||
.sortedIndex(itemParam.getSortedIndex())
|
||||
.updateTime(now)
|
||||
.canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO))
|
||||
.roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode())
|
||||
.pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern())
|
||||
.valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType())
|
||||
.build();
|
||||
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
||||
|
||||
|
|
@ -622,6 +645,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
batchSaveShow(needInsertItemShow);
|
||||
}
|
||||
|
||||
private SalaryItemPO checkItemExists(Long salaryItemId, Map<Long, SalaryItemPO> salaryItemsMap) {
|
||||
SalaryItemPO salaryItemPO = salaryItemsMap.get(salaryItemId);
|
||||
if (ObjectUtils.isEmpty(salaryItemPO)){
|
||||
throw new SalaryRunTimeException("保存失败!存在薪资项目不存在或已被删除");
|
||||
}
|
||||
return salaryItemPO;
|
||||
}
|
||||
|
||||
|
||||
private void handleEmpField(SalarySobItemSaveParam saveParam) {
|
||||
|
|
@ -697,4 +727,96 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
public void deleteItemShowBySalarySobIds(Collection<Long> salarySobIds) {
|
||||
salarySobItemMapper.deleteItemShowBySalarySobId(salarySobIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param) {
|
||||
SalarySobItemFormDTO salarySobItemFormDTO = new SalarySobItemFormDTO();
|
||||
salarySobItemFormDTO.setCanEdit(1);
|
||||
// 默认可以编辑
|
||||
if (ObjectUtils.isNotEmpty(param.getSalarySobId()) && ObjectUtils.isNotEmpty(param.getSalaryItemId())) {
|
||||
// 查询薪资账套
|
||||
SalarySobPO salarySobPO = salarySobBiz.getById(param.getSalarySobId());
|
||||
if (Objects.isNull(salarySobPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "参数错误,薪资账套不存在或者已被删除"));
|
||||
}
|
||||
// 查询薪资项目
|
||||
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemMapper().listSome(SalarySobItemPO.builder().salarySobId(param.getSalarySobId()).salaryItemId(param.getSalaryItemId()).build());
|
||||
if (CollectionUtils.isEmpty(salarySobItemPOS)){
|
||||
throw new SalaryRunTimeException("账套中薪资项目不存在");
|
||||
}
|
||||
SalarySobItemPO salarySobItemPO = salarySobItemPOS.get(0);
|
||||
SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(salarySobItemPO.getSalaryItemId());
|
||||
if (ObjectUtils.isEmpty(salaryItemPO)){
|
||||
throw new SalaryRunTimeException("薪资项目不存在或已被删除");
|
||||
}
|
||||
//获取系统值
|
||||
List<SalarySobDefaultItemPO> salarySobDefaultItemPOS = getSalarySobDefaultItemMapper().listAll();
|
||||
salarySobDefaultItemPOS = salarySobDefaultItemPOS.stream().filter(po -> po.getSysSalaryItemId() != 0).collect(Collectors.toList());
|
||||
Map<Long, Integer> longIntegerMap = SalaryEntityUtil.convert2Map(salarySobDefaultItemPOS, SalarySobDefaultItemPO::getSysSalaryItemId, SalarySobDefaultItemPO::getCanDelete);
|
||||
if (salaryItemPO.getSysSalaryItemId() != null){
|
||||
salarySobItemPO.setCanDelete(longIntegerMap.getOrDefault(salaryItemPO.getSysSalaryItemId(), 1));
|
||||
}
|
||||
// 获取薪资项目公式
|
||||
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(salarySobItemPO.getFormulaId()));
|
||||
// 强制开启账套的公式配置
|
||||
BaseBean baseBean = new BaseBean();
|
||||
final Boolean openFormulaForcedEditing = "true".equals(baseBean.getPropValue("hrmSalary", "openFormulaForcedEditing"));
|
||||
// 获取核算时隐藏的薪资项目id
|
||||
List<Long> hideItemIds = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder()
|
||||
.salarySobId(param.getSalarySobId())
|
||||
.isGroup(new Integer(0))
|
||||
.salaryItemId(param.getSalaryItemId())
|
||||
.build());
|
||||
|
||||
String formulaContent = CollectionUtils.isEmpty(expressFormulas) ? "" : expressFormulas.get(0).getFormula();
|
||||
Integer valueType = ObjectUtils.isEmpty(salarySobItemPO.getValueType()) ? salaryItemPO.getValueType() : salarySobItemPO.getValueType();
|
||||
salarySobItemFormDTO
|
||||
.setId(salarySobItemPO.getId())
|
||||
.setName(salaryItemPO.getName())
|
||||
.setItemHide(hideItemIds.contains(salaryItemPO.getId()) ? 1 : 0)
|
||||
.setDataType(salaryItemPO.getDataType())
|
||||
.setRoundingMode(ObjectUtils.isEmpty(salarySobItemPO.getRoundingMode()) ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode())
|
||||
.setPattern(ObjectUtils.isEmpty(salarySobItemPO.getPattern()) ? salaryItemPO.getPattern() : salarySobItemPO.getPattern())
|
||||
.setValueType(valueType)
|
||||
.setFormulaId(salarySobItemPO.getFormulaId())
|
||||
.setFormulaContent(CollectionUtils.isNotEmpty(expressFormulas) ? formulaContent : "")
|
||||
.setOriginFormulaContent(valueType.equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "")
|
||||
.setOriginSqlContent(valueType.equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "")
|
||||
.setDescription(salarySobItemPO.getDescription())
|
||||
.setCanEdit((openFormulaForcedEditing || salaryItemPO.getCanEdit().equals(1)) ? 1 : 0);
|
||||
}
|
||||
return salarySobItemFormDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveSalaryItemDetail(SalarySobItemFormDTO saveParam) {
|
||||
ValidUtil.doValidator(saveParam, RuntimeTypeEnum.UPDATE);
|
||||
// 查询薪资项目,判断薪资项目是否存在
|
||||
SalarySobItemPO salarySobItemPO = getSalarySobItemMapper().getById(saveParam.getId());
|
||||
if (Objects.isNull(salarySobItemPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98299, "参数错误,薪资项目不存在或已被删除"));
|
||||
}
|
||||
|
||||
// 更新薪资项目
|
||||
SalarySobItemPO newSalarySobItemPO = new SalarySobItemPO();
|
||||
newSalarySobItemPO.setId(saveParam.getId());
|
||||
newSalarySobItemPO.setFormulaId(saveParam.getFormulaId());
|
||||
newSalarySobItemPO.setDescription(saveParam.getDescription());
|
||||
newSalarySobItemPO.setUpdateTime(new Date());
|
||||
newSalarySobItemPO.setRoundingMode(saveParam.getRoundingMode());
|
||||
newSalarySobItemPO.setPattern(saveParam.getPattern());
|
||||
newSalarySobItemPO.setValueType(saveParam.getValueType());
|
||||
getSalarySobItemMapper().updateIgnoreNull(newSalarySobItemPO);
|
||||
|
||||
// 更新隐藏信息
|
||||
List<SalarySobItemHidePO> salarySobItemHideList = getSalarySobItemHideService(user).listSome(SalarySobItemHidePO.builder()
|
||||
.salarySobId(salarySobItemPO.getSalarySobId())
|
||||
.salaryItemId(salarySobItemPO.getSalaryItemId())
|
||||
.build());
|
||||
if(CollectionUtils.isNotEmpty(salarySobItemHideList)){
|
||||
SalarySobItemHidePO salarySobItemHidePO = salarySobItemHideList.get(0);
|
||||
salarySobItemHidePO.setItemHide(Long.valueOf(saveParam.getItemHide()));
|
||||
getSalarySobItemHideService(user).updateById(salarySobItemHidePO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
|||
import com.engine.salary.entity.salarysob.dto.*;
|
||||
import com.engine.salary.entity.salarysob.param.*;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.util.ResponseResult;
|
||||
|
|
@ -367,6 +368,28 @@ public class SalarySobController {
|
|||
return new ResponseResult<SalarySobItemSaveParam, Map<String, Object>>(user).run(getSalarySobItemWrapper(user)::save, saveParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 薪资账套-薪资项目的详情
|
||||
*/
|
||||
@POST
|
||||
@Path("/item/getSalaryItemForm")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getSalaryItemForm(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobItemPO param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalarySobItemPO, SalarySobItemFormDTO>(user).run(getSalarySobItemWrapper(user)::getSalaryItemForm, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 薪资账套-保存薪资项目详情设置
|
||||
*/
|
||||
@POST
|
||||
@Path("/item/saveSalaryItemDetail")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String saveSalaryItemDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobItemFormDTO saveParam) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalarySobItemFormDTO, String>(user).run(getSalarySobItemWrapper(user)::saveSalaryItemDetail, saveParam);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -192,7 +192,10 @@ public class SalaryItemWrapper extends Service {
|
|||
salaryItemFormDTO = SalaryItemBO.convert2FormDTO(salaryItemPO);
|
||||
expressFormula = getSalaryFormulaService(user).getExpressFormula(salaryItemPO.getFormulaId());
|
||||
}
|
||||
salaryItemFormDTO.setFormulaContent(Optional.ofNullable(expressFormula).map(ExpressFormula::getFormula).orElse(""));
|
||||
String formulaContent = Optional.ofNullable(expressFormula).map(ExpressFormula::getFormula).orElse("");
|
||||
salaryItemFormDTO.setFormulaContent(formulaContent);
|
||||
salaryItemFormDTO.setOriginFormulaContent(salaryItemFormDTO.getValueType().equals(SalaryValueTypeEnum.FORMULA.getValue()) ? formulaContent : "");
|
||||
salaryItemFormDTO.setOriginSqlContent(salaryItemFormDTO.getValueType().equals(SalaryValueTypeEnum.SQL.getValue()) ? formulaContent : "");
|
||||
}
|
||||
return salaryItemFormDTO;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@ import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
|||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO;
|
||||
import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.service.impl.*;
|
||||
|
|
@ -168,4 +170,19 @@ public class SalarySobItemWrapper extends Service {
|
|||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 薪资项目的详情
|
||||
*/
|
||||
public SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param) {
|
||||
return getSalarySobItemService(user).getSalaryItemForm(param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 薪资账套-保存薪资项目详情设置
|
||||
* @param saveParam
|
||||
*/
|
||||
public void saveSalaryItemDetail(SalarySobItemFormDTO saveParam) {
|
||||
getSalarySobItemService(user).saveSalaryItemDetail(saveParam);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue