百川港需求
This commit is contained in:
parent
7b4ab93f4b
commit
7740241af8
|
|
@ -0,0 +1,2 @@
|
||||||
|
zyRoleId=29
|
||||||
|
jlRoleId=30
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
原始需求:
|
||||||
|
1、由人事专员正常进行薪资审核,审核过程中人事专员无法对具体几个薪资项进行核算如:经理基金项、实发工资等(无法核算,也无法查看指定薪资项)。
|
||||||
|
2、人事审核完成后指定人员可在薪资核算页面查看到由人事专员核算完成的薪资内容(状态为:待审批),指定人员可对该核算信息进行审批,审批时可针对人事专员审核节点无法核算的薪资项进行核算,审批完成后更新薪资核算状态为已归档。
|
||||||
|
----------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
开发点:
|
||||||
|
1、新增人事专员角色(可核算未隐藏的项目),人事经理角色(可核算所有新增项目) 2
|
||||||
|
2、支持配置对于人事专员隐藏的项目 2
|
||||||
|
3、新增审批按钮,人事专员提交审批后,薪资核算状态改为“待审批” 1
|
||||||
|
4、人事经理审批,提交审批核算状态改为归档 1
|
||||||
|
|
@ -50,7 +50,10 @@ public class SalaryAcctRecordBO {
|
||||||
List<TaxAgentPO> taxAgentPOS,
|
List<TaxAgentPO> taxAgentPOS,
|
||||||
List<Long> needApprovalSalarySobIds,
|
List<Long> needApprovalSalarySobIds,
|
||||||
boolean approvalCanFile,
|
boolean approvalCanFile,
|
||||||
boolean approvalCanReCalc) {
|
boolean approvalCanReCalc,
|
||||||
|
boolean zy,
|
||||||
|
boolean jl
|
||||||
|
) {
|
||||||
if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) {
|
if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
@ -69,20 +72,30 @@ public class SalaryAcctRecordBO {
|
||||||
List<WeaTableOperate> btnList = new ArrayList<>();
|
List<WeaTableOperate> btnList = new ArrayList<>();
|
||||||
if (SalaryAcctRecordStatusEnum.NOT_ARCHIVED == salaryAcctRecordStatusEnum) {
|
if (SalaryAcctRecordStatusEnum.NOT_ARCHIVED == salaryAcctRecordStatusEnum) {
|
||||||
btnList.add(new WeaTableOperate("核算", null, "0"));
|
btnList.add(new WeaTableOperate("核算", null, "0"));
|
||||||
if(!Objects.equals(salaryAcctRecordPO.getBackCalcStatus(),NumberUtils.INTEGER_ONE)){
|
if (!Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), NumberUtils.INTEGER_ONE)) {
|
||||||
btnList.add(new WeaTableOperate("删除", null, "1"));
|
btnList.add(new WeaTableOperate("删除", null, "1"));
|
||||||
}
|
}
|
||||||
if (approvalCanFile || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
// if (approvalCanFile || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
||||||
btnList.add(new WeaTableOperate("归档", null, "2"));
|
// btnList.add(new WeaTableOperate("归档", null, "2"));
|
||||||
|
// }
|
||||||
|
} else if (SalaryAcctRecordStatusEnum.APPROVAL == salaryAcctRecordStatusEnum) {
|
||||||
|
if (zy) {
|
||||||
|
btnList.add(new WeaTableOperate("查看", null, "3"));
|
||||||
}
|
}
|
||||||
} else if (SalaryAcctRecordStatusEnum.ARCHIVED == salaryAcctRecordStatusEnum && ( salarySendMap.get(salaryAcctRecordPO.getId()) ==Boolean.TRUE ) ){
|
if(jl){
|
||||||
|
btnList.add(new WeaTableOperate("核算", null, "0"));
|
||||||
|
if (approvalCanFile || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
||||||
|
btnList.add(new WeaTableOperate("归档", null, "2"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (SalaryAcctRecordStatusEnum.ARCHIVED == salaryAcctRecordStatusEnum && (salarySendMap.get(salaryAcctRecordPO.getId()) == Boolean.TRUE)) {
|
||||||
btnList.add(new WeaTableOperate("查看", null, "3"));
|
btnList.add(new WeaTableOperate("查看", null, "3"));
|
||||||
if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
||||||
btnList.add(new WeaTableOperate("重新核算", null, "4"));
|
btnList.add(new WeaTableOperate("重新核算", null, "4"));
|
||||||
}
|
}
|
||||||
if(salaryAcctRecordPO.getBackCalcStatus() == null || salaryAcctRecordPO.getBackCalcStatus() == NumberUtils.INTEGER_ZERO) {
|
// if (salaryAcctRecordPO.getBackCalcStatus() == null || salaryAcctRecordPO.getBackCalcStatus() == NumberUtils.INTEGER_ZERO) {
|
||||||
btnList.add(new WeaTableOperate("回算", null, "5"));
|
// btnList.add(new WeaTableOperate("回算", null, "5"));
|
||||||
}
|
// }
|
||||||
} else {
|
} else {
|
||||||
btnList.add(new WeaTableOperate("查看", null, "3"));
|
btnList.add(new WeaTableOperate("查看", null, "3"));
|
||||||
if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
if (approvalCanReCalc || !needApprovalSalarySobIds.contains(salaryAcctRecordPO.getSalarySobId())) {
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,7 @@ public class SalarySobDuplicateBO {
|
||||||
.description(salarySobItem.getDescription())
|
.description(salarySobItem.getDescription())
|
||||||
.canDelete(salarySobItem.getCanDelete())
|
.canDelete(salarySobItem.getCanDelete())
|
||||||
.itemHide(salarySobItem.getItemHide())
|
.itemHide(salarySobItem.getItemHide())
|
||||||
|
.zyHide(salarySobItem.getZyHide())
|
||||||
.roundingMode(salarySobItem.getRoundingMode())
|
.roundingMode(salarySobItem.getRoundingMode())
|
||||||
.pattern(salarySobItem.getPattern())
|
.pattern(salarySobItem.getPattern())
|
||||||
.valueType(salarySobItem.getValueType())
|
.valueType(salarySobItem.getValueType())
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,7 @@ public class SalarySobItemAggregateBO {
|
||||||
.pattern(Optional.ofNullable(salarySobItemPO.getPattern()).orElse(salaryItemPO.getPattern()))
|
.pattern(Optional.ofNullable(salarySobItemPO.getPattern()).orElse(salaryItemPO.getPattern()))
|
||||||
.name(salaryItemPO.getName())
|
.name(salaryItemPO.getName())
|
||||||
.itemHide(salarySobItemPO.getItemHide())
|
.itemHide(salarySobItemPO.getItemHide())
|
||||||
|
.zyHide(salarySobItemPO.getZyHide())
|
||||||
.formulaId(salarySobItemPO.getFormulaId())
|
.formulaId(salarySobItemPO.getFormulaId())
|
||||||
.formulaContent(formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), ""))
|
.formulaContent(formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), ""))
|
||||||
.originFormulaContent(valueType == SalaryValueTypeEnum.FORMULA.getValue() ? formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), "") : "")
|
.originFormulaContent(valueType == SalaryValueTypeEnum.FORMULA.getValue() ? formulaMap.getOrDefault(salarySobItemPO.getFormulaId(), "") : "")
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,7 @@ public class SalarySobItemDTO {
|
||||||
//该分类是否隐藏(0不隐藏,1隐藏)
|
//该分类是否隐藏(0不隐藏,1隐藏)
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long itemHide;
|
private Long itemHide;
|
||||||
|
private Integer zyHide;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进位规则
|
* 进位规则
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ public class SalarySobItemFormDTO {
|
||||||
//核算时隐藏")
|
//核算时隐藏")
|
||||||
@DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "核算时隐藏不允许为空")
|
@DataCheck(require = true, runtime = {RuntimeTypeEnum.UPDATE}, message = "核算时隐藏不允许为空")
|
||||||
private Integer itemHide;
|
private Integer itemHide;
|
||||||
|
private Integer zyHide;
|
||||||
|
|
||||||
//字段类型
|
//字段类型
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ public class SalarySobItemSaveParam {
|
||||||
|
|
||||||
//该分类是否隐藏(0不隐藏,1隐藏)
|
//该分类是否隐藏(0不隐藏,1隐藏)
|
||||||
private Long itemHide;
|
private Long itemHide;
|
||||||
|
private Integer zyHide;
|
||||||
|
|
||||||
private Boolean canDelete;
|
private Boolean canDelete;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,9 @@ public class SalarySobItemPO {
|
||||||
@XStreamAsAttribute
|
@XStreamAsAttribute
|
||||||
private Long itemHide;
|
private Long itemHide;
|
||||||
|
|
||||||
|
//百川二开,是否人员专员隐藏 0否 1是
|
||||||
|
private Integer zyHide;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认值
|
* 默认值
|
||||||
*/
|
*/
|
||||||
|
|
@ -194,6 +197,7 @@ public class SalarySobItemPO {
|
||||||
", pattern=" + pattern +
|
", pattern=" + pattern +
|
||||||
", valueType=" + valueType +
|
", valueType=" + valueType +
|
||||||
", itemHide=" + itemHide +
|
", itemHide=" + itemHide +
|
||||||
|
", zyHide=" + zyHide +
|
||||||
", defaultValue=" + defaultValue +
|
", defaultValue=" + defaultValue +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import java.util.Objects;
|
||||||
public enum SalaryAcctRecordStatusEnum implements BaseEnum<Integer> {
|
public enum SalaryAcctRecordStatusEnum implements BaseEnum<Integer> {
|
||||||
|
|
||||||
NOT_ARCHIVED(1, "未归档", 91870),
|
NOT_ARCHIVED(1, "未归档", 91870),
|
||||||
|
APPROVAL(4, "待审批", 91862),
|
||||||
ARCHIVED(2, "已归档", 91862),
|
ARCHIVED(2, "已归档", 91862),
|
||||||
DECLARED(3, "已申报", 100119),
|
DECLARED(3, "已申报", 100119),
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
<result column="can_delete" property="canDelete"/>
|
<result column="can_delete" property="canDelete"/>
|
||||||
<result column="item_hide" property="itemHide"/>
|
<result column="item_hide" property="itemHide"/>
|
||||||
|
<result column="zy_hide" property="zyHide"/>
|
||||||
<result column="default_value" property="defaultValue"/>
|
<result column="default_value" property="defaultValue"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
@ -41,6 +42,7 @@
|
||||||
, t.value_type
|
, t.value_type
|
||||||
, t.default_value
|
, t.default_value
|
||||||
, t.item_hide
|
, t.item_hide
|
||||||
|
, t.zy_hide
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<!-- 查询全部 -->
|
<!-- 查询全部 -->
|
||||||
|
|
@ -171,6 +173,7 @@
|
||||||
pattern=#{pattern},
|
pattern=#{pattern},
|
||||||
value_type=#{valueType},
|
value_type=#{valueType},
|
||||||
item_hide=#{itemHide},
|
item_hide=#{itemHide},
|
||||||
|
zy_hide=#{zyHide},
|
||||||
default_value=#{defaultValue},
|
default_value=#{defaultValue},
|
||||||
</set>
|
</set>
|
||||||
WHERE id = #{id} AND delete_type = 0
|
WHERE id = #{id} AND delete_type = 0
|
||||||
|
|
@ -232,6 +235,9 @@
|
||||||
<if test="itemHide != null">
|
<if test="itemHide != null">
|
||||||
item_hide=#{itemHide},
|
item_hide=#{itemHide},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="zyHide != null">
|
||||||
|
zy_hide=#{zyHide},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
WHERE id = #{id} AND delete_type = 0
|
WHERE id = #{id} AND delete_type = 0
|
||||||
</update>
|
</update>
|
||||||
|
|
@ -278,7 +284,7 @@
|
||||||
|
|
||||||
<insert id="batchInsert">
|
<insert id="batchInsert">
|
||||||
INSERT INTO hrsa_salary_sob_item(salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
|
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,rounding_mode,pattern,value_type,item_hide,default_value)
|
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,zy_hide,default_value)
|
||||||
VALUES
|
VALUES
|
||||||
<foreach collection="collection" item="item" separator=",">
|
<foreach collection="collection" item="item" separator=",">
|
||||||
(
|
(
|
||||||
|
|
@ -298,13 +304,14 @@
|
||||||
#{item.pattern},
|
#{item.pattern},
|
||||||
#{item.valueType},
|
#{item.valueType},
|
||||||
#{item.itemHide},
|
#{item.itemHide},
|
||||||
|
#{item.zyHide},
|
||||||
#{item.defaultValue}
|
#{item.defaultValue}
|
||||||
)
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="batchInsert" databaseId="oracle">
|
<insert id="batchInsert" databaseId="oracle">
|
||||||
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
|
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,rounding_mode,pattern,value_type,item_hide,default_value)
|
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,zy_hide,default_value)
|
||||||
|
|
||||||
<foreach collection="collection" item="item" separator="union all">
|
<foreach collection="collection" item="item" separator="union all">
|
||||||
select
|
select
|
||||||
|
|
@ -324,6 +331,7 @@
|
||||||
#{item.pattern,jdbcType=INTEGER},
|
#{item.pattern,jdbcType=INTEGER},
|
||||||
#{item.valueType,jdbcType=INTEGER},
|
#{item.valueType,jdbcType=INTEGER},
|
||||||
#{item.itemHide,jdbcType=DOUBLE},
|
#{item.itemHide,jdbcType=DOUBLE},
|
||||||
|
#{item.zyHide,jdbcType=INTEGER},
|
||||||
#{item.defaultValue,jdbcType=VARCHAR}
|
#{item.defaultValue,jdbcType=VARCHAR}
|
||||||
from dual
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
@ -331,7 +339,7 @@
|
||||||
<insert id="batchInsert" databaseId="sqlserver">
|
<insert id="batchInsert" databaseId="sqlserver">
|
||||||
<foreach collection="collection" item="item" separator=";">
|
<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,
|
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,rounding_mode,pattern,value_type,item_hide,default_value)
|
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,zy_hide,default_value)
|
||||||
VALUES
|
VALUES
|
||||||
(
|
(
|
||||||
#{item.salarySobId},
|
#{item.salarySobId},
|
||||||
|
|
@ -350,6 +358,7 @@
|
||||||
#{item.pattern},
|
#{item.pattern},
|
||||||
#{item.valueType},
|
#{item.valueType},
|
||||||
#{item.itemHide},
|
#{item.itemHide},
|
||||||
|
#{item.zyHide},
|
||||||
#{item.defaultValue}
|
#{item.defaultValue}
|
||||||
)
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,9 @@ public interface SalaryAcctRecordService {
|
||||||
* @param id 薪资核算记录的id
|
* @param id 薪资核算记录的id
|
||||||
*/
|
*/
|
||||||
void file(Long id);
|
void file(Long id);
|
||||||
|
String role(Long id);
|
||||||
|
void approval(Long id);
|
||||||
|
void refuse(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重新核算(并不是重新执行公式,而是变更薪资核算记录状态为未归档,并且撤回生成的工资单)
|
* 重新核算(并不是重新执行公式,而是变更薪资核算记录状态为未归档,并且撤回生成的工资单)
|
||||||
|
|
|
||||||
|
|
@ -83,4 +83,18 @@ public interface SalaryAcctSobConfigService{
|
||||||
* @param salaryAcctRecordIds
|
* @param salaryAcctRecordIds
|
||||||
*/
|
*/
|
||||||
void deleteBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds);
|
void deleteBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是专员
|
||||||
|
* @param uid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean isZY(Long uid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否是经理
|
||||||
|
* @param uid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean isJL(Long uid);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -524,6 +524,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
||||||
// 查询薪资核算记录所用的薪资账套的薪资项目副本
|
// 查询薪资核算记录所用的薪资账套的薪资项目副本
|
||||||
List<SalarySobItemPO> salarySobItems = config.getSalarySobItems();
|
List<SalarySobItemPO> salarySobItems = config.getSalarySobItems();
|
||||||
salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList());
|
salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList());
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if(zy){
|
||||||
|
salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getZyHide() == null || salarySobItemPO.getZyHide() == 0).collect(Collectors.toList());
|
||||||
|
}
|
||||||
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId);
|
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId);
|
||||||
// 查询薪资项目
|
// 查询薪资项目
|
||||||
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listByIds(salaryItemIds);
|
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listByIds(salaryItemIds);
|
||||||
|
|
@ -619,6 +623,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
||||||
// 查询薪资核算记录所用的薪资账套的薪资项目副本
|
// 查询薪资核算记录所用的薪资账套的薪资项目副本
|
||||||
List<SalarySobItemPO> salarySobItems = salaryAcctConfig.getSalarySobItems();
|
List<SalarySobItemPO> salarySobItems = salaryAcctConfig.getSalarySobItems();
|
||||||
salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList());
|
salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList());
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if(zy){
|
||||||
|
salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getZyHide() == null || salarySobItemPO.getZyHide() == 0).collect(Collectors.toList());
|
||||||
|
}
|
||||||
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId);
|
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId);
|
||||||
// 查询薪资项目
|
// 查询薪资项目
|
||||||
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listByIds(salaryItemIds);
|
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listByIds(salaryItemIds);
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
||||||
return ServiceUtil.getService(SalarySobItemServiceImpl.class, user);
|
return ServiceUtil.getService(SalarySobItemServiceImpl.class, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SalaryAcctSobConfigService getSalaryAcctSobConfigService(User user) {
|
||||||
|
return ServiceUtil.getService(SalaryAcctSobConfigServiceImpl.class, user);
|
||||||
|
}
|
||||||
|
|
||||||
// private SalaryCheckResultService salaryCheckResultService;
|
// private SalaryCheckResultService salaryCheckResultService;
|
||||||
//
|
//
|
||||||
// private SalaryCheckResultDetailService salaryCheckResultDetailService;
|
// private SalaryCheckResultDetailService salaryCheckResultDetailService;
|
||||||
|
|
@ -218,6 +222,16 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
||||||
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordMapper().listSome(po);
|
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordMapper().listSome(po);
|
||||||
salaryAcctRecordPOS = getAuthService(user).auth(salaryAcctRecordPOS, AuthFilterTypeEnum.DATA_OPT, SalaryAcctRecordPO.class);
|
salaryAcctRecordPOS = getAuthService(user).auth(salaryAcctRecordPOS, AuthFilterTypeEnum.DATA_OPT, SalaryAcctRecordPO.class);
|
||||||
|
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
boolean jl = getSalaryAcctSobConfigService(user).isJL((long) user.getUID());
|
||||||
|
if (zy) {
|
||||||
|
//百川二开,人事专员能看到所有记录,但只能修改”未归档“状态的记录
|
||||||
|
|
||||||
|
} else if (jl) {
|
||||||
|
//百川二开,人事经理只能看到“待审批”的记录
|
||||||
|
salaryAcctRecordPOS = salaryAcctRecordPOS.stream().filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
|
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
|
||||||
salaryAcctRecordPOS, SalaryAcctRecordPO.class);
|
salaryAcctRecordPOS, SalaryAcctRecordPO.class);
|
||||||
|
|
@ -345,7 +359,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
||||||
//获取账套所属个税扣缴义务人的核算记录
|
//获取账套所属个税扣缴义务人的核算记录
|
||||||
SalarySobPO salarySobPO = getSalarySobService(user).getById(saveParam.getSalarySobId());
|
SalarySobPO salarySobPO = getSalarySobService(user).getById(saveParam.getSalarySobId());
|
||||||
List<Long> taxAgentIds = salarySobPO.getTaxAgentIds();
|
List<Long> taxAgentIds = salarySobPO.getTaxAgentIds();
|
||||||
taxAgentIds.forEach(taxAgentId->{
|
taxAgentIds.forEach(taxAgentId -> {
|
||||||
//查询扣缴义务人下的所有账套
|
//查询扣缴义务人下的所有账套
|
||||||
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId);
|
List<SalarySobPO> salarySobPOS = getSalarySobService(user).listByTaxAgentId(taxAgentId);
|
||||||
Set<Long> salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId);
|
Set<Long> salarySobIds = SalaryEntityUtil.properties(salarySobPOS, SalarySobPO::getId);
|
||||||
|
|
@ -578,6 +592,92 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
||||||
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
|
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String role(Long id) {
|
||||||
|
|
||||||
|
// 查询薪资核算记录
|
||||||
|
SalaryAcctRecordPO salaryAcctRecordPO = getById(id);
|
||||||
|
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if (zy) {
|
||||||
|
return "zy";
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean jl = getSalaryAcctSobConfigService(user).isJL((long) user.getUID());
|
||||||
|
if (jl) {
|
||||||
|
return "zy";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void approval(Long id) {
|
||||||
|
|
||||||
|
// 查询薪资核算记录
|
||||||
|
SalaryAcctRecordPO salaryAcctRecordPO = getById(id);
|
||||||
|
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(id));
|
||||||
|
if (CollectionUtils.isEmpty(salaryAcctResultPOS)) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99691, "尚未核算,请先核算后再提交审批"));
|
||||||
|
}
|
||||||
|
// 更新薪资核算记录的状态
|
||||||
|
salaryAcctRecordPO.setStatus(SalaryAcctRecordStatusEnum.APPROVAL.getValue());
|
||||||
|
salaryAcctRecordPO.setUpdateTime(new Date());
|
||||||
|
getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO);
|
||||||
|
|
||||||
|
// 记录日志
|
||||||
|
String targetName = getLogTargetNameById(id);
|
||||||
|
LoggerContext<SalaryAcctRecordPO> loggerContext = new LoggerContext<>();
|
||||||
|
loggerContext.setUser(user);
|
||||||
|
loggerContext.setTargetId("" + salaryAcctRecordPO.getId());
|
||||||
|
loggerContext.setTargetName(targetName);
|
||||||
|
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||||
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "提交薪资审批"));
|
||||||
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "提交薪资审批") + ": " + targetName);
|
||||||
|
loggerContext.setNewValues(salaryAcctRecordPO);
|
||||||
|
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void refuse(Long id) {
|
||||||
|
|
||||||
|
// 查询薪资核算记录
|
||||||
|
SalaryAcctRecordPO salaryAcctRecordPO = getById(id);
|
||||||
|
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(id));
|
||||||
|
if (CollectionUtils.isEmpty(salaryAcctResultPOS)) {
|
||||||
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99691, "尚未核算,请先核算后再退回"));
|
||||||
|
}
|
||||||
|
// 更新薪资核算记录的状态
|
||||||
|
salaryAcctRecordPO.setStatus(SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue());
|
||||||
|
salaryAcctRecordPO.setUpdateTime(new Date());
|
||||||
|
getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO);
|
||||||
|
|
||||||
|
// 记录日志
|
||||||
|
String targetName = getLogTargetNameById(id);
|
||||||
|
LoggerContext<SalaryAcctRecordPO> loggerContext = new LoggerContext<>();
|
||||||
|
loggerContext.setUser(user);
|
||||||
|
loggerContext.setTargetId("" + salaryAcctRecordPO.getId());
|
||||||
|
loggerContext.setTargetName(targetName);
|
||||||
|
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
||||||
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "退回薪资审批"));
|
||||||
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "退回薪资审批") + ": " + targetName);
|
||||||
|
loggerContext.setNewValues(salaryAcctRecordPO);
|
||||||
|
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reCalculate(Long salaryAcctRecordId) {
|
public void reCalculate(Long salaryAcctRecordId) {
|
||||||
// 查询薪资核算记录
|
// 查询薪资核算记录
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package com.engine.salary.service.impl;
|
package com.engine.salary.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.engine.common.service.HrmCommonService;
|
||||||
|
import com.engine.common.service.impl.HrmCommonServiceImpl;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.core.impl.Service;
|
import com.engine.core.impl.Service;
|
||||||
import com.engine.hrmelog.entity.dto.LoggerContext;
|
import com.engine.hrmelog.entity.dto.LoggerContext;
|
||||||
|
|
@ -68,6 +70,8 @@ import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
import weaver.general.BaseBean;
|
import weaver.general.BaseBean;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
import weaver.hrm.roles.RolesComInfo;
|
||||||
|
import weaver.workflow.request.WorkflowRequestMessage;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -280,7 +284,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
||||||
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
||||||
// 过滤薪资项目
|
// 过滤薪资项目
|
||||||
salarySobItemPOS = salarySobItemPOS.stream().filter(item -> item.getItemHide() == null || item.getItemHide().equals(0L)).collect(Collectors.toList());
|
salarySobItemPOS = salarySobItemPOS.stream().filter(item -> item.getItemHide() == null || item.getItemHide().equals(0L)).collect(Collectors.toList());
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if(zy){
|
||||||
|
salarySobItemPOS = salarySobItemPOS.stream().filter(salarySobItemPO -> salarySobItemPO.getZyHide() == null || salarySobItemPO.getZyHide() == 0).collect(Collectors.toList());
|
||||||
|
}
|
||||||
// 查询已发补发薪资项目
|
// 查询已发补发薪资项目
|
||||||
List<SalarySobBackItemPO> salarySobBackItemPOList = Collections.emptyList();
|
List<SalarySobBackItemPO> salarySobBackItemPOList = Collections.emptyList();
|
||||||
List<SalaryItemPO> salaryBackItemPOS = Collections.emptyList();
|
List<SalaryItemPO> salaryBackItemPOS = Collections.emptyList();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package com.engine.salary.service.impl;
|
package com.engine.salary.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.engine.common.service.HrmCommonService;
|
||||||
|
import com.engine.common.service.impl.HrmCommonServiceImpl;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.core.impl.Service;
|
import com.engine.core.impl.Service;
|
||||||
import com.engine.salary.cache.SalaryCacheKey;
|
import com.engine.salary.cache.SalaryCacheKey;
|
||||||
|
|
@ -19,9 +22,11 @@ import com.engine.salary.util.SalaryEntityUtil;
|
||||||
import com.engine.salary.util.SalaryI18nUtil;
|
import com.engine.salary.util.SalaryI18nUtil;
|
||||||
import com.engine.salary.util.db.MapperProxyFactory;
|
import com.engine.salary.util.db.MapperProxyFactory;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import weaver.general.BaseBean;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 薪资核算的账套副本配置
|
* 薪资核算的账套副本配置
|
||||||
|
|
@ -197,4 +202,33 @@ public class SalaryAcctSobConfigServiceImpl extends Service implements SalaryAcc
|
||||||
public void deleteBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) {
|
public void deleteBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) {
|
||||||
getSalaryAcctSobConfigMapper().deleteBySalaryAcctRecordIds(salaryAcctRecordIds);
|
getSalaryAcctSobConfigMapper().deleteBySalaryAcctRecordIds(salaryAcctRecordIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isZY(Long uid) {
|
||||||
|
BaseBean bb = new BaseBean();
|
||||||
|
String zyRoleId = bb.getPropValue("hrmSalaryBCG", "zyRoleId");
|
||||||
|
|
||||||
|
HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
|
||||||
|
String roleMemberids = hrmCommonService.getRoleMemberIds(Integer.parseInt(zyRoleId), "0");
|
||||||
|
if (StrUtil.isNotBlank(roleMemberids)) {
|
||||||
|
return Arrays.stream(roleMemberids.split(",")).map(Long::valueOf).collect(Collectors.toList()).contains(uid);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isJL(Long uid) {
|
||||||
|
BaseBean bb = new BaseBean();
|
||||||
|
String jlRoleId = bb.getPropValue("hrmSalaryBCG", "jlRoleId");
|
||||||
|
|
||||||
|
HrmCommonService hrmCommonService = new HrmCommonServiceImpl();
|
||||||
|
String roleMemberids = hrmCommonService.getRoleMemberIds(jlRoleId, "0");
|
||||||
|
if (StrUtil.isNotBlank(roleMemberids)) {
|
||||||
|
return Arrays.stream(roleMemberids.split(",")).map(Long::valueOf).collect(Collectors.toList()).contains(uid);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -161,6 +161,10 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary
|
||||||
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
||||||
// 过滤在账套中隐藏的薪资项目
|
// 过滤在账套中隐藏的薪资项目
|
||||||
salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide() == 0).collect(Collectors.toList());
|
salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide() == 0).collect(Collectors.toList());
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if(zy){
|
||||||
|
salarySobItemPOS = salarySobItemPOS.stream().filter(salarySobItemPO -> salarySobItemPO.getZyHide() == null || salarySobItemPO.getZyHide() == 0).collect(Collectors.toList());
|
||||||
|
}
|
||||||
// 查询公式详情
|
// 查询公式详情
|
||||||
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
|
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
|
||||||
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
|
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
|
||||||
|
|
|
||||||
|
|
@ -216,6 +216,10 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
||||||
if (hideItem) {
|
if (hideItem) {
|
||||||
salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide().equals(0L)).collect(Collectors.toList());
|
salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide().equals(0L)).collect(Collectors.toList());
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if (zy) {
|
||||||
|
salarySobItemPOS = salarySobItemPOS.stream().filter(salarySobItemPO -> salarySobItemPO.getZyHide() == null || salarySobItemPO.getZyHide() == 0).collect(Collectors.toList());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 回算薪资项目
|
// 回算薪资项目
|
||||||
List<SalarySobBackItemPO> salarySobBackItems = salaryAcctConfig.getSalarySobBackItems();
|
List<SalarySobBackItemPO> salarySobBackItems = salaryAcctConfig.getSalarySobBackItems();
|
||||||
|
|
@ -263,7 +267,10 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
// 查询薪资账套的薪资项目副本(已经过滤关闭分类显示按钮的薪资项目)
|
// 查询薪资账套的薪资项目副本(已经过滤关闭分类显示按钮的薪资项目)
|
||||||
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
List<SalarySobItemPO> salarySobItemPOS = salaryAcctConfig.getSalarySobItems();
|
||||||
salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide().equals(0L)).collect(Collectors.toList());
|
salarySobItemPOS = salarySobItemPOS.stream().filter(po -> po.getItemHide() == null || po.getItemHide().equals(0L)).collect(Collectors.toList());
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
if (zy) {
|
||||||
|
salarySobItemPOS = salarySobItemPOS.stream().filter(salarySobItemPO -> salarySobItemPO.getZyHide() == null || salarySobItemPO.getZyHide() == 0).collect(Collectors.toList());
|
||||||
|
}
|
||||||
// 回算薪资项目
|
// 回算薪资项目
|
||||||
List<SalarySobBackItemPO> salarySobBackItems = Collections.emptyList();
|
List<SalarySobBackItemPO> salarySobBackItems = Collections.emptyList();
|
||||||
if (isBackCalc) {
|
if (isBackCalc) {
|
||||||
|
|
@ -389,7 +396,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
|
|
||||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : itemGroupParam.getItems()) {
|
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : itemGroupParam.getItems()) {
|
||||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(salarySobItemGroupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
|
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(salarySobItemGroupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).zyHide(itemParam.getZyHide()).build();
|
||||||
salarySobItems.add(salarySobItemPO);
|
salarySobItems.add(salarySobItemPO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -413,13 +420,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
//新增
|
//新增
|
||||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
||||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
|
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).zyHide(itemParam.getZyHide()).build();
|
||||||
salarySobItems.add(salarySobItemPO);
|
salarySobItems.add(salarySobItemPO);
|
||||||
}
|
}
|
||||||
//更新
|
//更新
|
||||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
||||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().id(itemParam.getId()).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
|
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().id(itemParam.getId()).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).zyHide(itemParam.getZyHide()).build();
|
||||||
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -446,13 +453,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
|
|
||||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
||||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
||||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(NumberUtils.LONG_ZERO).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
|
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(NumberUtils.LONG_ZERO).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).zyHide(itemParam.getZyHide()).build();
|
||||||
salarySobItems.add(salarySobItemPO);
|
salarySobItems.add(salarySobItemPO);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
||||||
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
|
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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
|
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()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).zyHide(itemParam.getZyHide()).build();
|
||||||
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -551,7 +558,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
}
|
}
|
||||||
salarySobItemPO.setFormula(formulaPO);
|
salarySobItemPO.setFormula(formulaPO);
|
||||||
}
|
}
|
||||||
if(SalaryEntityUtil.isNotNullOrEmpty(salarySobItemPO.getSalaryItemId())){
|
if (SalaryEntityUtil.isNotNullOrEmpty(salarySobItemPO.getSalaryItemId())) {
|
||||||
SalaryItemPO salaryItemPO = itemIdMap.get(salarySobItemPO.getSalaryItemId());
|
SalaryItemPO salaryItemPO = itemIdMap.get(salarySobItemPO.getSalaryItemId());
|
||||||
salarySobItemPO.setSalaryItem(salaryItemPO);
|
salarySobItemPO.setSalaryItem(salaryItemPO);
|
||||||
}
|
}
|
||||||
|
|
@ -599,7 +606,8 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
salarySobItemFormDTO
|
salarySobItemFormDTO
|
||||||
.setId(salarySobItemPO.getId())
|
.setId(salarySobItemPO.getId())
|
||||||
.setName(salaryItemPO.getName())
|
.setName(salaryItemPO.getName())
|
||||||
.setItemHide(salarySobItemPO.getItemHide()==null?0:Integer.parseInt(salarySobItemPO.getItemHide().toString()))
|
.setItemHide(salarySobItemPO.getItemHide() == null ? 0 : Integer.parseInt(salarySobItemPO.getItemHide().toString()))
|
||||||
|
.setZyHide(salarySobItemPO.getZyHide() == null ? 0 : salarySobItemPO.getZyHide())
|
||||||
.setDataType(salaryItemPO.getDataType())
|
.setDataType(salaryItemPO.getDataType())
|
||||||
.setRoundingMode(salarySobItemPO.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode())
|
.setRoundingMode(salarySobItemPO.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode())
|
||||||
.setPattern(salarySobItemPO.getPattern() == null ? salaryItemPO.getPattern() : salarySobItemPO.getPattern())
|
.setPattern(salarySobItemPO.getPattern() == null ? salaryItemPO.getPattern() : salarySobItemPO.getPattern())
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,32 @@ public class SalaryAcctController {
|
||||||
return new ResponseResult<Long, Long>(user).run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId());
|
return new ResponseResult<Long, Long>(user).run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GET
|
||||||
|
@Path("/role")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String role(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
return new ResponseResult<Long, String>(user).run(getSalaryAcctRecordWrapper(user)::role, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
//提交审批
|
||||||
|
@GET
|
||||||
|
@Path("/approval")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String approval(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
return new ResponseResult<Long, Long>(user).run(getSalaryAcctRecordWrapper(user)::approval, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
//退回
|
||||||
|
@GET
|
||||||
|
@Path("/refuse")
|
||||||
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
public String refuse(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||||
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
|
return new ResponseResult<Long, Long>(user).run(getSalaryAcctRecordWrapper(user)::refuse, id);
|
||||||
|
}
|
||||||
|
|
||||||
//薪资核算
|
//薪资核算
|
||||||
@POST
|
@POST
|
||||||
@Path("/batAccounting")
|
@Path("/batAccounting")
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
||||||
private SalaryAcctRecordService getSalaryAcctRecordService(User user) {
|
private SalaryAcctRecordService getSalaryAcctRecordService(User user) {
|
||||||
return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user);
|
return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SalaryAcctResultWrapper getSalaryAcctResultWrapper(User user) {
|
private SalaryAcctResultWrapper getSalaryAcctResultWrapper(User user) {
|
||||||
return ServiceUtil.getService(SalaryAcctResultWrapper.class, user);
|
return ServiceUtil.getService(SalaryAcctResultWrapper.class, user);
|
||||||
}
|
}
|
||||||
|
|
@ -151,8 +152,11 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
||||||
|
|
||||||
List<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAll();
|
List<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAll();
|
||||||
|
|
||||||
|
boolean zy = getSalaryAcctSobConfigService(user).isZY((long) user.getUID());
|
||||||
|
boolean jl = getSalaryAcctSobConfigService(user).isJL((long) user.getUID());
|
||||||
|
|
||||||
// 转换成列表dto
|
// 转换成列表dto
|
||||||
List<SalaryAcctRecordListDTO> salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc);
|
List<SalaryAcctRecordListDTO> salaryAcctRecordListDTOS = SalaryAcctRecordBO.convert2ListDTO(list, salarySobPOS, employeeComInfos, salaryAcctEmployeeCountDTOS, salarySendCheckResult, taxAgentPOS, needApprovalSalarySobIds, approvalCanFile, approvalCanReCalc, zy, jl);
|
||||||
dtoPage.setList(salaryAcctRecordListDTOS);
|
dtoPage.setList(salaryAcctRecordListDTOS);
|
||||||
// 规则设置中是否开启审批功能,默认关闭
|
// 规则设置中是否开启审批功能,默认关闭
|
||||||
if (CollectionUtils.isEmpty(needApprovalSalarySobIds)) {
|
if (CollectionUtils.isEmpty(needApprovalSalarySobIds)) {
|
||||||
|
|
@ -276,6 +280,18 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
||||||
getSalaryAcctRecordService(user).file(id);
|
getSalaryAcctRecordService(user).file(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String role(Long id) {
|
||||||
|
return getSalaryAcctRecordService(user).role(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void approval(Long id) {
|
||||||
|
getSalaryAcctRecordService(user).approval(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refuse(Long id) {
|
||||||
|
getSalaryAcctRecordService(user).refuse(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重新核算
|
* 重新核算
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue