Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
K
klck
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
位宇华
klck
Commits
e9cdecd0
Commit
e9cdecd0
authored
Jun 24, 2024
by
刘_震
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
将公式的解析设置成一个工具类(方便后续使用)
parent
36afbb07
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
56 additions
and
76 deletions
+56
-76
ruoyi-wages/src/main/java/com/ruoyi/system/service/impl/WagesCalculateConversionServiceImpl.java
...tem/service/impl/WagesCalculateConversionServiceImpl.java
+6
-39
ruoyi-wages/src/main/java/com/ruoyi/system/service/impl/WagesServiceImpl.java
.../java/com/ruoyi/system/service/impl/WagesServiceImpl.java
+2
-37
ruoyi-wages/src/main/java/com/ruoyi/system/utils/ValueUtils.java
...ages/src/main/java/com/ruoyi/system/utils/ValueUtils.java
+48
-0
No files found.
ruoyi-wages/src/main/java/com/ruoyi/system/service/impl/WagesCalculateConversionServiceImpl.java
View file @
e9cdecd0
...
...
@@ -9,6 +9,7 @@ import com.ruoyi.system.model.wages.dto.WagesFormulaListDto;
import
com.ruoyi.system.model.wages.vo.WagesFormulaVo
;
import
com.ruoyi.system.service.WagesCalculateConversionService
;
import
com.ruoyi.system.utils.CountUtils
;
import
com.ruoyi.system.utils.ValueUtils
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -93,7 +94,7 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
String
value
=
wagesFormulaDto
.
getValue
();
String
value1
=
value
;
//解析公式value
Map
<
String
,
List
<
String
>>
operandsMap
=
extractOperands
(
value
);
Map
<
String
,
List
<
String
>>
operandsMap
=
ValueUtils
.
extractOperands
(
value
);
//只含公式中的字段
List
<
String
>
formula
=
operandsMap
.
get
(
"operands"
);
try
{
...
...
@@ -122,7 +123,7 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
vo2
.
setC
(
wagesFormulaDto
.
getC
());
voList
.
add
(
vo2
);
}
}
else
if
(
wagesFormulaDto
.
getValue
().
contains
(
"应付工资"
))
{
}
else
if
(
wagesFormulaDto
.
getValue
().
contains
(
"应付工资"
))
{
for
(
WagesOverviewOriginalExcelDAO
dao
:
wagesList
)
{
Optional
<
WagesDetailsOriginalExcelDAO
>
first
=
wagesDetails
.
parallelStream
().
filter
(
v
->
v
.
getUnitName
().
equals
(
dao
.
getUnitName
())).
findFirst
();
WagesFormulaVo
vo
=
new
WagesFormulaVo
();
...
...
@@ -150,7 +151,7 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
value
=
StringUtils
.
replaceOnce
(
value
,
s
,
s
);
}
}
// vo.setValue(count(value));
// vo.setValue(count(value));
vo
.
setValue
(
dao
.
getTotalWagesPayable
().
toString
());
// 假设 count(value) 返回的是一个字符串,表示一个数值
String
countString
=
CountUtils
.
count
(
value
);
...
...
@@ -194,14 +195,14 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
vo
.
setCadre
(
"0"
);
vo
.
setC
(
wagesFormulaDto
.
getC
());
for
(
String
s
:
formula
)
{
if
(
fieldMapping
.
containsKey
(
s
)){
if
(
fieldMapping
.
containsKey
(
s
))
{
String
sqlResult
=
fieldMapping
.
get
(
s
);
Field
wagesField
=
null
;
wagesField
=
WagesDetailsOriginalExcelDAO
.
class
.
getDeclaredField
(
sqlResult
);
wagesField
.
setAccessible
(
true
);
Object
fieldValue
=
wagesField
.
get
(
wagesDetail
);
value
=
StringUtils
.
replaceOnce
(
value
,
s
,
fieldValue
.
toString
());
}
else
{
}
else
{
value
=
StringUtils
.
replaceOnce
(
value
,
s
,
s
);
}
}
...
...
@@ -217,38 +218,4 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
}
return
voList
;
}
private
Map
<
String
,
List
<
String
>>
extractOperands
(
String
value
)
{
Map
<
String
,
List
<
String
>>
operandsMap
=
new
HashMap
<>();
List
<
String
>
operands
=
new
ArrayList
<>();
List
<
String
>
operators
=
new
ArrayList
<>();
StringBuilder
operandBuilder
=
new
StringBuilder
();
for
(
char
c
:
value
.
toCharArray
())
{
if
(
isOperator
(
c
))
{
if
(
operandBuilder
.
length
()
>
0
)
{
operands
.
add
(
operandBuilder
.
toString
().
trim
());
operandBuilder
=
new
StringBuilder
();
}
operators
.
add
(
String
.
valueOf
(
c
));
}
else
{
operandBuilder
.
append
(
c
);
}
}
if
(
operandBuilder
.
length
()
>
0
)
{
operands
.
add
(
operandBuilder
.
toString
().
trim
());
}
operandsMap
.
put
(
"operands"
,
operands
);
operandsMap
.
put
(
"operators"
,
operators
);
return
operandsMap
;
}
//判断是否是操作符
private
boolean
isOperator
(
char
c
)
{
return
c
==
'+'
||
c
==
'-'
||
c
==
'*'
||
c
==
'/'
;
}
}
\ No newline at end of file
ruoyi-wages/src/main/java/com/ruoyi/system/service/impl/WagesServiceImpl.java
View file @
e9cdecd0
...
...
@@ -17,6 +17,7 @@ import com.ruoyi.system.model.wages.vo.WagesLxVo;
import
com.ruoyi.system.model.wages.vo.WagesOverviewOriginalDataVO
;
import
com.ruoyi.system.service.WagesService
;
import
com.ruoyi.system.utils.CountUtils
;
import
com.ruoyi.system.utils.ValueUtils
;
import
com.ruoyi.system.utils.WagesUtils
;
import
com.ruoyi.system.yyinterface.VoucherUtils
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -339,7 +340,7 @@ public class WagesServiceImpl implements WagesService {
for
(
WagesFormulaDto
wagesFormulaDto
:
data
)
{
String
value
=
wagesFormulaDto
.
getValue
();
//解析公式value
Map
<
String
,
List
<
String
>>
operandsMap
=
extractOperands
(
value
);
Map
<
String
,
List
<
String
>>
operandsMap
=
ValueUtils
.
extractOperands
(
value
);
//只含公式中的字段
List
<
String
>
formula
=
operandsMap
.
get
(
"operands"
);
//用来保存匹配的字段名
...
...
@@ -391,42 +392,6 @@ public class WagesServiceImpl implements WagesService {
return
wagesFormulaVos
;
}
//解析公式value
private
Map
<
String
,
List
<
String
>>
extractOperands
(
String
value
)
{
Map
<
String
,
List
<
String
>>
operandsMap
=
new
HashMap
<>();
List
<
String
>
operands
=
new
ArrayList
<>();
List
<
String
>
operators
=
new
ArrayList
<>();
StringBuilder
operandBuilder
=
new
StringBuilder
();
for
(
char
c
:
value
.
toCharArray
())
{
if
(
isOperator
(
c
))
{
if
(
operandBuilder
.
length
()
>
0
)
{
operands
.
add
(
operandBuilder
.
toString
().
trim
());
operandBuilder
=
new
StringBuilder
();
}
operators
.
add
(
String
.
valueOf
(
c
));
}
else
{
operandBuilder
.
append
(
c
);
}
}
if
(
operandBuilder
.
length
()
>
0
)
{
operands
.
add
(
operandBuilder
.
toString
().
trim
());
}
operandsMap
.
put
(
"operands"
,
operands
);
operandsMap
.
put
(
"operators"
,
operators
);
return
operandsMap
;
}
//判断是否是操作符
private
boolean
isOperator
(
char
c
)
{
return
c
==
'+'
||
c
==
'-'
||
c
==
'*'
||
c
==
'/'
;
}
public
JSONArray
getCustomDoc
(
CustomDocRequestModel
customDocRequestModel
)
{
ReturnResult
customDocument
=
VoucherUtils
.
callVoucherQuery
(
customDocRequestModel
,
"/yonbip/digitalModel/customerdoc/list"
);
if
(
customDocument
!=
null
)
{
...
...
ruoyi-wages/src/main/java/com/ruoyi/system/utils/ValueUtils.java
0 → 100644
View file @
e9cdecd0
package
com.ruoyi.system.utils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author haiwe
* @date 2024/6/24
*/
public
class
ValueUtils
{
public
static
Map
<
String
,
List
<
String
>>
extractOperands
(
String
value
)
{
Map
<
String
,
List
<
String
>>
operandsMap
=
new
HashMap
<>();
List
<
String
>
operands
=
new
ArrayList
<>();
List
<
String
>
operators
=
new
ArrayList
<>();
StringBuilder
operandBuilder
=
new
StringBuilder
();
for
(
char
c
:
value
.
toCharArray
())
{
if
(
isOperator
(
c
))
{
if
(
operandBuilder
.
length
()
>
0
)
{
operands
.
add
(
operandBuilder
.
toString
().
trim
());
operandBuilder
=
new
StringBuilder
();
}
operators
.
add
(
String
.
valueOf
(
c
));
}
else
{
operandBuilder
.
append
(
c
);
}
}
if
(
operandBuilder
.
length
()
>
0
)
{
operands
.
add
(
operandBuilder
.
toString
().
trim
());
}
operandsMap
.
put
(
"operands"
,
operands
);
operandsMap
.
put
(
"operators"
,
operators
);
return
operandsMap
;
}
//判断是否是操作符
private
static
boolean
isOperator
(
char
c
)
{
return
c
==
'+'
||
c
==
'-'
||
c
==
'*'
||
c
==
'/'
;
}
}
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