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
c9c7462a
Commit
c9c7462a
authored
Oct 19, 2020
by
ilal
Committed by
chenzg
Jul 05, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
873b80fc
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
11 deletions
+60
-11
src/main/java/cn/timer/api/controller/kqgl/ClockInTool.java
+10
-0
src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
+47
-11
src/main/java/cn/timer/api/dto/xcgl/PayTermDto.java
+1
-0
src/main/resources/mapping/xcgl/XcglAssoJxgzMapper.xml
+2
-0
No files found.
src/main/java/cn/timer/api/controller/kqgl/ClockInTool.java
View file @
c9c7462a
...
@@ -763,4 +763,14 @@ public class ClockInTool {
...
@@ -763,4 +763,14 @@ public class ClockInTool {
return
cst
;
return
cst
;
}
}
/**
* Sun Nov 01 00:00:00 CST 2020
*/
public
static
String
SunNovCSTY
(
Date
date2
){
String
cst
;
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy"
);
cst
=
simpleDateFormat
.
format
(
date2
);
return
cst
;
}
}
}
src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
View file @
c9c7462a
...
@@ -11,6 +11,9 @@ import java.util.List;
...
@@ -11,6 +11,9 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.script.ScriptEngine
;
import
javax.script.ScriptEngineManager
;
import
javax.script.ScriptException
;
import
cn.timer.api.dto.xcgl.*
;
import
cn.timer.api.dto.xcgl.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -1602,16 +1605,22 @@ public class SalaryManagementController {
...
@@ -1602,16 +1605,22 @@ public class SalaryManagementController {
* @param userBean
* @param userBean
* @param calcomtiondto
* @param calcomtiondto
* @return
* @return
* @throws ScriptException
* @throws NumberFormatException
*/
*/
@PostMapping
(
value
=
"/salary_calculation"
)
@PostMapping
(
value
=
"/salary_calculation"
)
@ApiOperation
(
value
=
"计算薪资"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"计算薪资"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
SalaryCalculation
(
@CurrentUser
UserBean
userBean
,
@RequestBody
CalculatingCompensationDto
calcomtiondto
)
{
public
Result
<
Object
>
SalaryCalculation
(
@CurrentUser
UserBean
userBean
,
@RequestBody
CalculatingCompensationDto
calcomtiondto
)
throws
NumberFormatException
,
ScriptException
{
int
orgcode
=
userBean
.
getOrgCode
();
int
orgcode
=
userBean
.
getOrgCode
();
String
strY
=
new
SimpleDateFormat
(
"yyyy"
).
format
(
new
Date
());
ScriptEngine
js
=
new
ScriptEngineManager
().
getEngineByName
(
"JavaScript"
);
//查询出薪资组内成员
//查询出薪资组内成员
List
<
XcglAssoXzury
>
paygrlist
=
XcglAssoXzury
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
XcglAssoXzury
>().
lambda
().
eq
(
XcglAssoXzury:
:
getXzzid
,
calcomtiondto
.
getPay_group_id
()));
List
<
XcglAssoXzury
>
paygrlist
=
XcglAssoXzury
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
XcglAssoXzury
>().
lambda
().
eq
(
XcglAssoXzury:
:
getXzzid
,
calcomtiondto
.
getPay_group_id
()));
//查询出当前薪资组里所有列表头 计薪规则组项 固定数值
//查询出当前薪资组里所有列表头 计薪规则组项 固定数值
//32:事假、33:调休、34:病假、35:年假、36:产假、37:陪产假、38:婚假、39:例假、40:丧假、41:哺乳假;
//32:事假、33:调休、34:病假、35:年假、36:产假、37:陪产假、38:婚假、39:例假、40:丧假、41:哺乳假;
List
<
XcglAssoJsgzzx
>
sjbt
=
XcglAssoJsgzzx
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
XcglAssoJsgzzx
>().
lambda
().
eq
(
XcglAssoJsgzzx:
:
getXzzid
,
calcomtiondto
.
getPay_group_id
()));
List
<
XcglAssoJsgzzx
>
sjbt
=
XcglAssoJsgzzx
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
XcglAssoJsgzzx
>().
lambda
().
eq
(
XcglAssoJsgzzx:
:
getXzzid
,
calcomtiondto
.
getPay_group_id
()));
//薪资组信息
//薪资组信息
XcglAdminXzz
xzz
=
XcglAdminXzz
.
builder
().
id
(
calcomtiondto
.
getPay_group_id
()).
build
().
selectById
();
XcglAdminXzz
xzz
=
XcglAdminXzz
.
builder
().
id
(
calcomtiondto
.
getPay_group_id
()).
build
().
selectById
();
//算薪月周期
//算薪月周期
...
@@ -1633,43 +1642,70 @@ public class SalaryManagementController {
...
@@ -1633,43 +1642,70 @@ public class SalaryManagementController {
double
other_deductions
=
0
;
//其他扣除
double
other_deductions
=
0
;
//其他扣除
double
wages_payable
=
0
;
//应发工资
double
wages_payable
=
0
;
//应发工资
double
achievement_bonus
=
0
;
//绩效奖金
double
performance_commission
=
0
;
//业绩提成
double
pre_taxmakediff
=
0
;
//税前补差
double
secretary_ling
=
0
;
//司龄
//薪资组内成员
//薪资组内成员
for
(
XcglAssoXzury
pag
:
paygrlist
)
{
for
(
XcglAssoXzury
pag
:
paygrlist
)
{
//存在的计薪规则组项数据对应
//存在的计薪规则组项数据对应
写入薪资表
for
(
XcglAssoJsgzzx
xzx
:
sjbt
)
{
for
(
XcglAssoJsgzzx
xzx
:
sjbt
)
{
if
(
xzx
.
getRulestate
()
==
1
&&
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
0
&&
xzx
.
getSalaryitem
().
equals
(
"基本工资"
))
{
if
(
xzx
.
getRulestate
()
==
1
&&
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
0
&&
xzx
.
getSalaryitem
().
equals
(
"基本工资"
))
{
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
())
.
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
())
);
base_pay
=
xzb
.
getXzxjg
();
base_pay
=
xzb
.
getXzxjg
();
}
}
if
(
xzx
.
getRulestate
()
==
1
&&
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
0
&&
xzx
.
getSalaryitem
().
equals
(
"岗位津贴"
))
{
if
(
xzx
.
getRulestate
()
==
1
&&
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
0
&&
xzx
.
getSalaryitem
().
equals
(
"岗位津贴"
))
{
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
())
.
eq
(
XcglAssoXzb:
:
getUserid
,
pag
.
getUserid
())
);
post_allowance
=
xzb
.
getXzxjg
();
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
)
{
//应出勤天数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
10
)
{
//应出勤天数
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
attendance_days
=
xzb
.
getXzxjg
();
attendance_days
=
xzb
.
getXzxjg
();
}
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
11
)
{
//实出勤天数
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
11
)
{
//实出勤天数
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
actual_attendance_days
=
xzb
.
getXzxjg
();
actual_attendance_days
=
xzb
.
getXzxjg
();
}
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
32
)
{
//事假
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
32
)
{
//事假
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
matter_leave
=
xzb
.
getXzxjg
();
matter_leave
=
xzb
.
getXzxjg
();
}
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
34
)
{
//病假
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
34
)
{
//病假
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
sick_leave
=
xzb
.
getXzxjg
();
sick_leave
=
xzb
.
getXzxjg
();
}
}
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
72
)
{
//其他扣除
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
72
)
{
//其他扣除
XcglAssoXzb
xzb
=
XcglAssoXzb
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
XcglAssoXzb
>().
lambda
().
eq
(
XcglAssoXzb:
:
getXzxid
,
xzx
.
getId
()));
other_deductions
=
xzb
.
getXzxjg
();
other_deductions
=
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
()
==
2
)
{
if
(
xzx
.
getIsCustom
()
==
0
&&
xzx
.
getOptionid
()
==
43
)
{
//司龄工资
String
formula
=
xzx
.
getGsgs
();
//#司龄#*100
String
qaz
=
formula
.
replace
(
"#司龄#"
,
"+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
()));
}
}
//(自定义公式计算): 应发工资、实发工资
if
(
xzx
.
getRulestate
()
==
3
)
{
}
}
}
...
...
src/main/java/cn/timer/api/dto/xcgl/PayTermDto.java
View file @
c9c7462a
...
@@ -23,5 +23,6 @@ public class PayTermDto implements Serializable {
...
@@ -23,5 +23,6 @@ public class PayTermDto implements Serializable {
Integer
xgsid
;
// 项对应的公式id
Integer
xgsid
;
// 项对应的公式id
String
xgsgs
;
// 项公式
String
xgsgs
;
// 项公式
Integer
xjxgzid
;
//
Integer
xjxgzid
;
//
Integer
xoptionid
;
}
}
src/main/resources/mapping/xcgl/XcglAssoJxgzMapper.xml
View file @
c9c7462a
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
<result
column=
"xgsid"
property=
"xgsid"
/>
<result
column=
"xgsid"
property=
"xgsid"
/>
<result
column=
"xgsgs"
property=
"xgsgs"
/>
<result
column=
"xgsgs"
property=
"xgsgs"
/>
<result
column=
"xjxgzid"
property=
"xjxgzid"
/>
<result
column=
"xjxgzid"
property=
"xjxgzid"
/>
<result
column=
"xoptionid"
property=
"xoptionid"
/>
</collection>
</collection>
</resultMap>
</resultMap>
...
@@ -180,6 +181,7 @@
...
@@ -180,6 +181,7 @@
gzzx.gsid as xgsid,
gzzx.gsid as xgsid,
gzzx.gsgs as xgsgs,
gzzx.gsgs as xgsgs,
gzzx.jxgzid as xjxgzid,
gzzx.jxgzid as xjxgzid,
gzzx.optionid as xoptionid,
jxgz.xzzid as zxzzid
jxgz.xzzid as zxzzid
from xcgl_asso_jxgz jxgz
from xcgl_asso_jxgz jxgz
LEFT JOIN xcgl_asso_jsgzzx as gzzx on gzzx.jxgzid = jxgz.id
LEFT JOIN xcgl_asso_jsgzzx as gzzx on gzzx.jxgzid = jxgz.id
...
...
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