薪资账套项目页面改造temp

This commit is contained in:
Harryxzy 2023-07-24 17:11:19 +08:00
parent 0119161173
commit a8a414a48b
15 changed files with 403 additions and 19 deletions

View File

@ -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();
}
}
}

View File

@ -75,6 +75,11 @@ public class SalaryItemFormDTO {
//公式内容")
private String formulaContent;
// 用于前端展示 公式原始内容
private String originFormulaContent;
// 用于前端展示 原始sql
private String originSqlContent;
//备注")
private String description;

View File

@ -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;
}

View File

@ -77,6 +77,22 @@ public class SalarySobItemSaveParam {
private Long itemHide;
private Boolean canDelete;
/**
* 进位规则
*/
private Integer roundingMode;
/**
* 保留小数位数
*/
private Integer pattern;
/**
* 取值方式
*/
private Integer valueType;
}
@Data

View File

@ -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;

View File

@ -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);
}

View File

@ -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>

View File

@ -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>

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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);
}
}