Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
231d9a6c
Commit
231d9a6c
authored
4 years ago
by
ilal
Committed by
chenzg
3 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
cb92198d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
116 additions
and
38 deletions
+116
-38
src/main/java/cn/timer/api/bean/xcgl/XcglAssoXcjsgz.java
+4
-0
src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
+110
-37
src/main/resources/mapping/xcgl/XcglAssoXcjsgzMapper.xml
+2
-1
No files found.
src/main/java/cn/timer/api/bean/xcgl/XcglAssoXcjsgz.java
View file @
231d9a6c
...
...
@@ -63,5 +63,8 @@ public class XcglAssoXcjsgz extends Model<XcglAssoXcjsgz> {
private
String
degkText
;
@ApiModelProperty
(
value
=
""
,
example
=
""
)
private
Integer
rulestate
;
@ApiModelProperty
(
value
=
""
,
example
=
""
)
private
Integer
defaulttype
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
View file @
231d9a6c
...
...
@@ -645,10 +645,13 @@ public class SalaryManagementController {
if
(!
xcjsgz
.
getGsxs
().
equals
(
modifysalaryruledto
.
getFormula
()))
{
XcglAssoJsgzzx
.
builder
().
gsid
(
modifysalaryruledto
.
getXcjsgzid
()).
gsgs
(
modifysalaryruledto
.
getFormula
())
.
rule
(
modifysalaryruledto
.
getFormula
()).
rulestate
(
3
).
id
(
modifysalaryruledto
.
getJsgzzxid
()).
build
().
updateById
();
}
else
{
XcglAssoJsgzzx
.
builder
().
gsid
(
modifysalaryruledto
.
getXcjsgzid
()).
gsgs
(
modifysalaryruledto
.
getFormula
())
.
rule
(
modifysalaryruledto
.
getFormula
()).
rulestate
(
xcjsgz
.
getOptionid
()).
id
(
modifysalaryruledto
.
getJsgzzxid
()).
build
().
updateById
();
}
}
else
{
XcglAssoJsgzzx
.
builder
().
gsid
(
modifysalaryruledto
.
getXcjsgzid
()).
gsgs
(
modifysalaryruledto
.
getFormula
())
.
rule
(
modifysalaryruledto
.
getFormula
()).
id
(
modifysalaryruledto
.
getJsgzzxid
()).
build
().
updateById
();
.
rule
(
modifysalaryruledto
.
getFormula
()).
rulestate
(
xcjsgz
.
getOptionid
()).
id
(
modifysalaryruledto
.
getJsgzzxid
()).
build
().
updateById
();
}
return
ResultUtil
.
success
(
"操作成功!"
);
...
...
@@ -1406,7 +1409,6 @@ public class SalaryManagementController {
yjs
.
updateById
();
//薪资组信息
@SuppressWarnings
(
"unused"
)
XcglAdminXzz
xzz
=
new
LambdaQueryChainWrapper
<
XcglAdminXzz
>(
xcgladminxzzmapper
).
eq
(
XcglAdminXzz:
:
getId
,
id
).
one
();
// sxrq = xzz.getXzyf();
xzyf
=
xzz
.
getXzyf
();
...
...
@@ -1489,6 +1491,10 @@ public class SalaryManagementController {
if
(
lbcx
.
getId
()
==
24
)
{
numover
=
xcglassoxzbmapper
.
PeriodsOvertime
(
orgcode
,
xzyf
,
1
,
znr
.
getUserid
());}
if
(
lbcx
.
getId
()
==
25
)
{
numover
=
xcglassoxzbmapper
.
PeriodsOvertime
(
orgcode
,
xzyf
,
2
,
znr
.
getUserid
());}
if
(
lbcx
.
getId
()
==
26
)
{
numover
=
xcglassoxzbmapper
.
PeriodsOvertime
(
orgcode
,
xzyf
,
3
,
znr
.
getUserid
());}
}
else
if
(
tablename
.
equals
(
"xcgl_asso_gsjsmx"
))
{
QueryWrapper
<
XcglAssoGsjsmx
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
select
(
fieldname
).
eq
(
"user_num"
,
znr
.
getUserid
()).
eq
(
"qyid"
,
userBean
.
getOrgCode
()).
eq
(
"salary_month"
,
xzyf
);
//select #{tablename} from yggl_main_emp where emp_num = ?
list
=
xcglassogsjsmxmapper
.
selectMaps
(
queryWrapper
);
}
String
autacq
=
""
;
...
...
@@ -1641,24 +1647,29 @@ public class SalaryManagementController {
//算薪月份
String
salary_month
=
xzz
.
getXzyf
();
//算薪月份
//个税
double
perinctax
=
0
;
//基本工资,岗位津贴,应出勤天数,实出勤天数,事假,病假
double
base_pay
=
0
;
//基本工资
double
post_allowance
=
0
;
//岗位津贴
double
attendance_days
=
0
;
//应出勤天数
double
actual_attendance_days
=
0
;
//实出勤天数
double
matter_leave
=
0
;
//事假
double
sick_leave
;
//病假
double
sick_leave
=
0
;
//病假
double
absenteeism_days
=
0
;
//旷工天数
double
personal_income_tax
=
0
;
//个税
double
other_deductions
=
0
;
//其他扣除
double
wages_payable
=
0
;
//应发工资
double
late_cs
=
0
;
//迟到次数
double
leave_early_cs
=
0
;
//早退次数
double
late_sc
=
0
;
//迟到时长
double
leave_early_sc
=
0
;
//早退时长
double
achievement_bonus
=
0
;
//绩效奖金
double
performance_commission
=
0
;
//业绩提成
double
pre_taxmakediff
=
0
;
//税前补差
double
matter_leave_deduction
=
0
;
//事假扣款
double
sick_leave_deduction
=
0
;
//病假扣款
double
secretary_ling
=
0
;
//司龄
double
grsb
=
0
;
//个人社保
double
grgjj
=
0
;
//个人公积金
//薪资组内成员
for
(
XcglAssoXzury
pag
:
paygrlist
)
{
...
...
@@ -1673,63 +1684,125 @@ public class SalaryManagementController {
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()).
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
()));
post_allowance
=
xzb
.
getXzxjg
();
}
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()).
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
()));
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
10
)
{
//应出勤天数
attendance_days
=
xzb
.
getXzxjg
();
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
11
)
{
//实出勤天数
actual_attendance_days
=
xzb
.
getXzxjg
();
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
32
)
{
//事假
matter_leave
=
xzb
.
getXzxjg
();
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
34
)
{
//病假
sick_leave
=
xzb
.
getXzxjg
();
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
72
)
{
//其他扣除
other_deductions
=
xzb
.
getXzxjg
();
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
10
)
{
attendance_days
=
xzb
.
getXzxjg
();
}
//实出勤天数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
11
)
{
actual_attendance_days
=
xzb
.
getXzxjg
();
}
//实出勤天数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
32
)
{
matter_leave
=
xzb
.
getXzxjg
();
}
//事假
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
34
)
{
sick_leave
=
xzb
.
getXzxjg
();
}
//病假
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
12
)
{
absenteeism_days
=
xzb
.
getXzxjg
();
}
//旷工天数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
72
)
{
other_deductions
=
xzb
.
getXzxjg
();
}
//其他扣除
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
13
)
{
late_cs
=
xzb
.
getXzxjg
();
}
//迟到次数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
14
)
{
leave_early_cs
=
xzb
.
getXzxjg
();
}
//早退次数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
18
)
{
late_sc
=
xzb
.
getXzxjg
();
}
//迟到时长
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
22
)
{
leave_early_sc
=
xzb
.
getXzxjg
();
}
//早退时长
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
50
)
{
grsb
=
xzb
.
getXzxjg
();
}
//个人社保
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
51
)
{
grgjj
=
xzb
.
getXzxjg
();
}
//个人公积金
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
43
)
{
//司龄
YgglMainEmp
xzrz
=
YgglMainEmp
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getEmpNum
,
pag
.
getUserid
()).
eq
(
YgglMainEmp:
:
getOrgCode
,
orgcode
));
int
entry_date
=
Integer
.
valueOf
(
ClockInTool
.
SunNovCSTY
(
xzrz
.
getRzTime
()));
//yyyy
if
(
Integer
.
valueOf
(
strY
)
-
entry_date
>=
0
)
{
secretary_ling
=
Integer
.
valueOf
(
strY
)
-
entry_date
;
}
XcglAssoXzb
.
builder
().
xzxjg
(
secretary_ling
).
build
().
update
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()).
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
()));
}
//公式计算
//(固定公式计算):迟到早退扣款、事假扣款、病假扣款、旷工扣款、司龄工资、应发工资、实发工资
if
(
xzx
.
getRulestate
().
equals
(
2
))
{
double
result
=
0
;
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
31
)
{
//司龄工资
String
formula
=
xzx
.
getGsgs
();
//#司龄#*100
String
qaz
=
formula
.
replace
(
"#司龄#"
,
String
.
valueOf
(
secretary_ling
));
double
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
XcglAssoXzb
.
builder
().
xzxjg
(
result
).
build
().
update
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()).
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
()));
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
27
)
{
//事假扣款
String
formula
=
xzx
.
getGsgs
();
//#基本工资#/#应出勤天数#*#事假# #事假#*200
String
qaz
=
formula
.
replace
(
"#基本工资#"
,
String
.
valueOf
(
base_pay
)).
replace
(
"#应出勤天数#"
,
String
.
valueOf
(
attendance_days
)).
replace
(
"#事假#"
,
String
.
valueOf
(
matter_leave
));
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
matter_leave_deduction
=
result
;
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
28
)
{
//病假扣款
String
formula
=
xzx
.
getGsgs
();
//#基本工资#/#应出勤天数#*#病假#*0.4 #病假#*100
String
qaz
=
formula
.
replace
(
"#基本工资#"
,
String
.
valueOf
(
base_pay
)).
replace
(
"#应出勤天数#"
,
String
.
valueOf
(
attendance_days
)).
replace
(
"#病假#"
,
String
.
valueOf
(
sick_leave
));
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
sick_leave_deduction
=
result
;
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
29
)
{
//旷工扣款
String
formula
=
xzx
.
getGsgs
();
//#基本工资#/#应出勤天数#*#旷工天数#*3 #旷工天数#*100
String
qaz
=
formula
.
replace
(
"#基本工资#"
,
String
.
valueOf
(
base_pay
)).
replace
(
"#应出勤天数#"
,
String
.
valueOf
(
attendance_days
)).
replace
(
"#旷工天数#"
,
String
.
valueOf
(
absenteeism_days
));
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
30
)
{
//迟到早退扣款
String
qaz
=
""
;
if
(
xzx
.
getGsid
().
equals
(
1
))
{
String
formula
=
xzx
.
getGsgs
();
//#迟到次数#*20+#早退次数#*15
qaz
=
formula
.
replace
(
"#迟到次数#"
,
String
.
valueOf
(
late_cs
)).
replace
(
"#早退次数#"
,
String
.
valueOf
(
leave_early_cs
));
}
else
{
String
formula
=
xzx
.
getGsgs
();
//#迟到时长#*10+#早退时长#*5
qaz
=
formula
.
replace
(
"#迟到时长#"
,
String
.
valueOf
(
late_sc
)).
replace
(
"#早退时长数#"
,
String
.
valueOf
(
leave_early_sc
));
}
if
(!(
""
).
equals
(
qaz
))
{
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
}
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
48
)
{
//应发工资
String
formula
=
xzx
.
getGsgs
();
//#基本工资#+#岗位津贴#+#绩效奖金#+#业绩提成#+#税前补差#-#事假扣款#-#病假扣款#
String
qaz
=
formula
.
replace
(
"#基本工资#"
,
String
.
valueOf
(
base_pay
)).
replace
(
"#岗位津贴#"
,
String
.
valueOf
(
post_allowance
)).
replace
(
"#绩效奖金#"
,
String
.
valueOf
(
achievement_bonus
))
.
replace
(
"#业绩提成#"
,
String
.
valueOf
(
performance_commission
)).
replace
(
"#税前补差#"
,
String
.
valueOf
(
pre_taxmakediff
))
.
replace
(
"#事假扣款#"
,
String
.
valueOf
(
matter_leave_deduction
)).
replace
(
"#病假扣款#"
,
String
.
valueOf
(
sick_leave_deduction
));
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
wages_payable
=
result
;
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
69
)
{
//个税
//个税计算
try
{
personal_income_tax
=
CalculationOfIndividualIncomeTax
(
String
.
valueOf
(
pag
.
getUserid
()),
salary_month
,
orgcode
,
wages_payable
,
other_deductions
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"个税计算错误"
);
}
result
=
personal_income_tax
;
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
70
)
{
//实发工资
String
formula
=
xzx
.
getGsgs
();
//#应发工资#-#个人社保#-#个人公积金#-#个税#
String
qaz
=
formula
.
replace
(
"#应发工资#"
,
String
.
valueOf
(
wages_payable
)).
replace
(
"#个人社保#"
,
String
.
valueOf
(
grsb
)).
replace
(
"#个人公积金#"
,
String
.
valueOf
(
grgjj
)).
replace
(
"#个税#"
,
String
.
valueOf
(
personal_income_tax
));
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
}
XcglAssoXzb
.
builder
().
xzxjg
(
result
).
build
().
update
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()).
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
()));
}
//(自定义公式计算): 应发工资、实发工资
if
(
xzx
.
getRulestate
()
==
3
)
{
//计薪规则组项中自定义项
List
<
XcglAssoJsgzzx
>
zdyx
=
XcglAssoJsgzzx
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
XcglAssoJsgzzx
>().
lambda
().
eq
(
XcglAssoJsgzzx:
:
getXzzid
,
calcomtiondto
.
getPay_group_id
()).
eq
(
XcglAssoJsgzzx:
:
getIsCustom
,
1
));
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
48
)
{
//应发工资
String
formula
=
xzx
.
getGsgs
();
//#基本工资#+#岗位津贴#+#绩效奖金#+#业绩提成#+#税前补差#-#事假扣款#-#病假扣款#?
String
qaz
=
formula
.
replace
(
"#基本工资#"
,
String
.
valueOf
(
base_pay
)).
replace
(
"#岗位津贴#"
,
String
.
valueOf
(
post_allowance
)).
replace
(
"#绩效奖金#"
,
String
.
valueOf
(
achievement_bonus
))
.
replace
(
"#业绩提成#"
,
String
.
valueOf
(
performance_commission
)).
replace
(
"#税前补差#"
,
String
.
valueOf
(
pre_taxmakediff
))
.
replace
(
"#事假扣款#"
,
String
.
valueOf
(
matter_leave_deduction
)).
replace
(
"#病假扣款#"
,
String
.
valueOf
(
sick_leave_deduction
));
for
(
XcglAssoJsgzzx
zdy
:
zdyx
)
{
}
double
result
=
Double
.
valueOf
(
String
.
valueOf
(
js
.
eval
(
qaz
)));
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
70
)
{
//实发工资
}
}
}
//个税计算
try
{
personal_income_tax
=
CalculationOfIndividualIncomeTax
(
String
.
valueOf
(
pag
.
getUserid
()),
salary_month
,
orgcode
,
wages_payable
,
other_deductions
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"个税计算错误"
);
}
}
//存在的计薪规则组项数据对应 写入薪资表 --结束
}
}
//薪资组内成员--结束
return
ResultUtil
.
data
(
null
,
"计算完成"
);
}
...
...
This diff is collapsed.
Click to expand it.
src/main/resources/mapping/xcgl/XcglAssoXcjsgzMapper.xml
View file @
231d9a6c
...
...
@@ -15,6 +15,7 @@
<result
column=
"dygk_text"
property=
"dygkText"
/>
<result
column=
"degk_text"
property=
"degkText"
/>
<result
column=
"rulestate"
property=
"rulestate"
/>
<result
column=
"defaulttype"
property=
"defaulttype"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
...
...
@@ -38,7 +39,7 @@
<select
id=
"QuerySalaryRules"
resultMap=
"BaseResultMap"
>
select * from xcgl_asso_xcjsgz jsgz
where jsgz.formulaname = #{formulaname}
ORDER BY jsgz.id ASC LIMIT
1
and jsgz.defaulttype =
1
</select>
<!--
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment