Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
manager
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
reyun
manager
Commits
f29456e6
Commit
f29456e6
authored
4 years ago
by
kangxiaoshan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
处理指定合同分摊收入
parent
d8b76c16
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
68 deletions
+128
-68
workspace.xml
.idea/workspace.xml
+52
-36
ShareIncomeServiceImpl.java
...main/java/common/service/impl/ShareIncomeServiceImpl.java
+76
-32
No files found.
.idea/workspace.xml
View file @
f29456e6
...
@@ -140,6 +140,10 @@
...
@@ -140,6 +140,10 @@
</option>
</option>
</method>
</method>
</configuration>
</configuration>
<list>
<item
itemvalue=
"Application.ShareIncomeServiceImpl"
/>
<item
itemvalue=
"Tomcat Server.tomcat"
/>
</list>
<recent_temporary>
<recent_temporary>
<list>
<list>
<item
itemvalue=
"Application.ShareIncomeServiceImpl"
/>
<item
itemvalue=
"Application.ShareIncomeServiceImpl"
/>
...
@@ -197,6 +201,10 @@
...
@@ -197,6 +201,10 @@
<workItem
from=
"1595210254869"
duration=
"331000"
/>
<workItem
from=
"1595210254869"
duration=
"331000"
/>
<workItem
from=
"1595249283758"
duration=
"1012000"
/>
<workItem
from=
"1595249283758"
duration=
"1012000"
/>
<workItem
from=
"1595296992575"
duration=
"2571000"
/>
<workItem
from=
"1595296992575"
duration=
"2571000"
/>
<workItem
from=
"1595411015947"
duration=
"2361000"
/>
<workItem
from=
"1595423418178"
duration=
"5133000"
/>
<workItem
from=
"1595834892104"
duration=
"1472000"
/>
<workItem
from=
"1595989766739"
duration=
"9839000"
/>
</task>
</task>
<servers
/>
<servers
/>
</component>
</component>
...
@@ -231,78 +239,78 @@
...
@@ -231,78 +239,78 @@
</option>
</option>
</component>
</component>
<component
name=
"WindowStateProjectService"
>
<component
name=
"WindowStateProjectService"
>
<state
x=
"
438"
y=
"66"
key=
"#xdebugger.evaluate"
timestamp=
"1595064059991
"
>
<state
x=
"
352"
y=
"132"
key=
"#xdebugger.evaluate"
timestamp=
"1596003888437
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
x=
"
438"
y=
"66"
key=
"#xdebugger.evaluate/0.0.1366.728@0.0.1366.728"
timestamp=
"1595064059991
"
/>
<state
x=
"
352"
y=
"132"
key=
"#xdebugger.evaluate/0.0.1366.728@0.0.1366.728"
timestamp=
"1596003888437
"
/>
<state
width=
"4
54"
height=
"438"
key=
"DebuggerActiveHint"
timestamp=
"1595063945975
"
>
<state
width=
"4
61"
height=
"438"
key=
"DebuggerActiveHint"
timestamp=
"1596003841176
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"4
54"
height=
"438"
key=
"DebuggerActiveHint/0.0.1366.728@0.0.1366.728"
timestamp=
"1595063945975
"
/>
<state
width=
"4
61"
height=
"438"
key=
"DebuggerActiveHint/0.0.1366.728@0.0.1366.728"
timestamp=
"1596003841176
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.bottom"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.bottom"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.center"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.center"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.left"
timestamp=
"159
5299506736
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.left"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506736
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.right"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.right"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.0.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.bottom"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.bottom"
timestamp=
"159
6005108492
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108492
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.center"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.center"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.left"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.left"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.right"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.right"
timestamp=
"159
6005108491
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.1.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108491
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.bottom"
timestamp=
"159
5299506738
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.bottom"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506738
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.center"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.center"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.left"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.left"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.right"
timestamp=
"159
5299506737
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.right"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506737
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.2.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.bottom"
timestamp=
"159
5299506738
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.bottom"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506738
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.bottom/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.center"
timestamp=
"159
5299506738
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.center"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506738
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.center/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.left"
timestamp=
"159
5299506738
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.left"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506738
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.left/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.right"
timestamp=
"159
5299506738
"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.right"
timestamp=
"159
6005108300
"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
5299506738
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.3.right/0.0.1366.728@0.0.1366.728"
timestamp=
"159
6005108300
"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.6.bottom"
timestamp=
"1595298613992"
>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.6.bottom"
timestamp=
"1595298613992"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
...
@@ -335,6 +343,14 @@
...
@@ -335,6 +343,14 @@
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.7.right/0.0.1366.728@0.0.1366.728"
timestamp=
"1595298613394"
/>
<state
width=
"1111"
height=
"308"
key=
"GridCell.Tab.7.right/0.0.1366.728@0.0.1366.728"
timestamp=
"1595298613394"
/>
<state
width=
"498"
height=
"446"
key=
"SwitcherDM"
timestamp=
"1595411365033"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
<state
width=
"498"
height=
"446"
key=
"SwitcherDM/0.0.1366.728@0.0.1366.728"
timestamp=
"1595411365033"
/>
<state
width=
"691"
height=
"364"
key=
"XDebugger.FullValuePopup"
timestamp=
"1595471656041"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
<state
width=
"691"
height=
"364"
key=
"XDebugger.FullValuePopup/0.0.1366.728@0.0.1366.728"
timestamp=
"1595471656041"
/>
<state
x=
"225"
y=
"100"
key=
"com.intellij.xdebugger.impl.breakpoints.ui.BreakpointsDialogFactory$2"
timestamp=
"1595063525107"
>
<state
x=
"225"
y=
"100"
key=
"com.intellij.xdebugger.impl.breakpoints.ui.BreakpointsDialogFactory$2"
timestamp=
"1595063525107"
>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
<screen
x=
"0"
y=
"0"
width=
"1366"
height=
"728"
/>
</state>
</state>
...
...
This diff is collapsed.
Click to expand it.
src/main/java/common/service/impl/ShareIncomeServiceImpl.java
View file @
f29456e6
package
common
.
service
.
impl
;
package
common
.
service
.
impl
;
import
com.amazonaws.services.dynamodbv2.xspec.B
;
import
com.amazonaws.services.dynamodbv2.xspec.B
;
import
com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer
;
import
common.model.*
;
import
common.model.*
;
import
common.repository.AuthRepository
;
import
common.repository.AuthRepository
;
import
common.repository.ContractBodyRepository
;
import
common.repository.ContractBodyRepository
;
...
@@ -118,7 +119,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -118,7 +119,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
usePart
[
0
]
=
usePart
[
0
].
compareTo
(
usePart
[
1
])
>=
0
?
usePart
[
1
]
:
usePart
[
0
];
usePart
[
0
]
=
usePart
[
0
].
compareTo
(
usePart
[
1
])
>=
0
?
usePart
[
1
]
:
usePart
[
0
];
/*DateTime[][] mainTimes = new DateTime[][]{selected, contractPart, usePart};*/
contract
.
setIntervalUseDays
(
getDayRange
(
contractPart
[
0
],
usePart
[
1
])
+
1
);
contract
.
setIntervalUseDays
(
getDayRange
(
contractPart
[
0
],
usePart
[
1
])
+
1
);
...
@@ -128,8 +128,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -128,8 +128,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
int
contractAllDay
=
getDayRange
(
contractPart
[
0
],
contractPart
[
1
])
+
1
;
//合同总天数
int
contractAllDay
=
getDayRange
(
contractPart
[
0
],
contractPart
[
1
])
+
1
;
//合同总天数
//处理精度
//处理精度
/*Long dayShareIncome = new BigDecimal(excludTax * 1.0 / contractAllDay)
.setScale(0, BigDecimal.ROUND_HALF_UP).longValue();//每日分摊收入(值扩大100倍)*/
BigDecimal
dayShareIncome
=
new
BigDecimal
(
excludTax
*
1.0
/
contractAllDay
);
BigDecimal
dayShareIncome
=
new
BigDecimal
(
excludTax
*
1.0
/
contractAllDay
);
...
@@ -145,6 +143,12 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -145,6 +143,12 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
return
;
return
;
}
}
//特殊合同处理
Contract
specilContract
=
this
.
specilContract
(
contract
,
dayShareIncome
,
contractPart
,
usePart
,
selected
);
if
(
specilContract
!=
null
)
{
return
;
}
//晚录合同处理
//晚录合同处理
DateTime
create
=
new
DateTime
(
new
DateTime
(
contract
.
getCreateTime
()).
toString
(
"yyyy-MM-dd"
));
//录入时间点
DateTime
create
=
new
DateTime
(
new
DateTime
(
contract
.
getCreateTime
()).
toString
(
"yyyy-MM-dd"
));
//录入时间点
DateTime
[]
creatPoints
=
new
DateTime
[]{
DateTime
[]
creatPoints
=
new
DateTime
[]{
...
@@ -156,6 +160,65 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -156,6 +160,65 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
}
}
private
Contract
specilContract
(
Contract
contract
,
BigDecimal
dayShareIncome
,
DateTime
[]
contractPart
,
DateTime
[]
usePart
,
DateTime
[]
selected
)
{
if
(!
"QQ-ADI-20190729-57"
.
equals
(
contract
.
getContractCode
()))
{
return
null
;
}
/*19年不含税金额:24268.88
已摊销天数:161
20不含税金额:31202.8181132075
未摊销天数:205
合同日期2019.7.24-2020.7.23,
合同编号:QQ-ADI-20190729-57*/
DateTime
[]
middlePoiont
=
new
DateTime
[]{
new
DateTime
(
"2019-12-31"
),
new
DateTime
(
"2020-01-01"
)};
int
daysIncom
=
getDayRange
(
usePart
[
0
],
usePart
[
1
])
+
1
;
BigDecimal
dayShare
=
null
;
if
(
checkTwoTime
(
usePart
[
0
],
middlePoiont
[
0
])
&&
checkTwoTime
(
middlePoiont
[
1
],
usePart
[
1
]))
{
//跨年选择 处理方式待定
contract
.
setIntervaIncomeShare
(
0L
);
contract
.
setIncomeExcludingTax
(
0L
);
contract
.
setAdjustmentFund
(
0L
);
contract
.
setIncomeShareAll
(
contract
.
getIntervaIncomeShare
());
return
contract
;
}
else
if
(
checkTwoTime
(
usePart
[
1
],
middlePoiont
[
0
]))
{
//按19年处理
dayShare
=
new
BigDecimal
(
24268.88
*
100
*
1.0
/
161
);
contract
.
setIncomeExcludingTax
(
new
BigDecimal
(
24268.88
*
100
).
longValue
());
}
else
{
//按20年处理
dayShare
=
new
BigDecimal
(
31202.8181132075
).
multiply
(
new
BigDecimal
(
100
))
.
divide
(
new
BigDecimal
(
205
),
15
,
BigDecimal
.
ROUND_HALF_UP
);
contract
.
setIncomeExcludingTax
(
new
BigDecimal
(
31202.8181132075
).
multiply
(
new
BigDecimal
(
100
))
.
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
).
longValue
());
}
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShare
,
new
BigDecimal
(
daysIncom
),
0
));
/*if (usePart[1].equals(middlePoiont[0])) {
//包含19年最后一日
long last = contract.getIncomeExcludingTax() - dayShare.setScale(0, BigDecimal.ROUND_HALF_UP).longValue() * 160;
contract.setIntervaIncomeShare(shareMultiply(dayShare, new BigDecimal(daysIncom - 1), 0) + last);
} else if (checkTwoTime(middlePoiont[1], usePart[1])) {
// 20 年包含合同最后一日
long last = contract.getIncomeExcludingTax() - dayShare.setScale(0, BigDecimal.ROUND_HALF_UP).longValue() * 204;
contract.setIntervaIncomeShare(shareMultiply(dayShare, new BigDecimal(daysIncom - 1), 0) + last);
}*/
contract
.
setAdjustmentFund
(
0L
);
contract
.
setIncomeShareAll
(
contract
.
getIntervaIncomeShare
());
return
contract
;
}
private
void
afterContract
(
Contract
contract
,
int
contractAllDay
,
BigDecimal
dayShareIncome
,
private
void
afterContract
(
Contract
contract
,
int
contractAllDay
,
BigDecimal
dayShareIncome
,
DateTime
[]
contractPart
,
DateTime
[]
usePart
,
DateTime
[]
selected
,
DateTime
[]
creatPoints
)
{
DateTime
[]
contractPart
,
DateTime
[]
usePart
,
DateTime
[]
selected
,
DateTime
[]
creatPoints
)
{
...
@@ -163,7 +226,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -163,7 +226,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
//时间范围内用于计算分摊金额的天数
//时间范围内用于计算分摊金额的天数
int
daysIncom
=
getDayRange
(
usePart
[
0
],
usePart
[
1
])
+
1
;
int
daysIncom
=
getDayRange
(
usePart
[
0
],
usePart
[
1
])
+
1
;
//区间分摊总收入
//区间分摊总收入
// contract.setIntervaIncomeShare(dayShareIncome * daysIncom);
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
daysIncom
),
0
));
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
daysIncom
),
0
));
Long
adjustmentFund
=
0L
;
//调整金
Long
adjustmentFund
=
0L
;
//调整金
...
@@ -186,6 +248,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -186,6 +248,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
contract
.
setIncomeShareAll
(
contract
.
getIntervaIncomeShare
());
contract
.
setIncomeShareAll
(
contract
.
getIntervaIncomeShare
());
isLater
=
false
;
isLater
=
false
;
}
else
if
(
selected
[
1
].
isBefore
(
creatPoints
[
1
]))
{
}
else
if
(
selected
[
1
].
isBefore
(
creatPoints
[
1
]))
{
//录入月1号之前 调整金为 0 分摊为 0
//录入月1号之前 调整金为 0 分摊为 0
contract
.
setIntervaIncomeShare
(
0L
);
contract
.
setIntervaIncomeShare
(
0L
);
...
@@ -198,10 +261,8 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -198,10 +261,8 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
//所选时间范围内的分摊收入(录入月1号 即creatPoints[1] 开始计算)
//所选时间范围内的分摊收入(录入月1号 即creatPoints[1] 开始计算)
DateTime
useStart
=
creatPoints
[
1
].
compareTo
(
selected
[
0
])
>=
0
?
creatPoints
[
1
]
:
selected
[
0
];
DateTime
useStart
=
creatPoints
[
1
].
compareTo
(
selected
[
0
])
>=
0
?
creatPoints
[
1
]
:
selected
[
0
];
daysIncom
=
getDayRange
(
useStart
,
usePart
[
1
])
+
1
;
daysIncom
=
getDayRange
(
useStart
,
usePart
[
1
])
+
1
;
/*contract.setIntervaIncomeShare(dayShareIncome * daysIncom);//时间范围内分摊金*/
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
daysIncom
),
0
));
/*adjustmentFund = (getDayRange(contractPart[0], creatPoints[1].plusDays(-1)) + 1) * dayShareIncome;*/
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
daysIncom
),
0
));
adjustmentFund
=
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
getDayRange
(
contractPart
[
0
],
creatPoints
[
1
].
plusDays
(-
1
))
+
1
),
0
);
adjustmentFund
=
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
getDayRange
(
contractPart
[
0
],
creatPoints
[
1
].
plusDays
(-
1
))
+
1
),
0
);
if
(
checkTwoTime
(
selected
[
0
],
creatPoints
[
1
])
&&
checkTwoTime
(
creatPoints
[
1
],
selected
[
1
]))
{
if
(
checkTwoTime
(
selected
[
0
],
creatPoints
[
1
])
&&
checkTwoTime
(
creatPoints
[
1
],
selected
[
1
]))
{
...
@@ -216,14 +277,11 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -216,14 +277,11 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
//最后一日分摊金计算处理
//最后一日分摊金计算处理
Long
lastDay
;
Long
lastDay
;
if
(
isLater
)
{
if
(
isLater
)
{
/*lastDay = contract.getIncomeExcludingTax() - adjustmentFund
- dayShareIncome * getDayRange(creatPoints[1], contractPart[1]);*/
lastDay
=
contract
.
getIncomeExcludingTax
()
-
adjustmentFund
lastDay
=
contract
.
getIncomeExcludingTax
()
-
adjustmentFund
-
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
getDayRange
(
creatPoints
[
1
],
contractPart
[
1
])),
0
);
-
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
getDayRange
(
creatPoints
[
1
],
contractPart
[
1
])),
0
);
}
else
{
}
else
{
/*lastDay = contract.getIncomeExcludingTax() - adjustmentFund
- dayShareIncome * getDayRange(contractPart[0], contractPart[1]);*/
lastDay
=
contract
.
getIncomeExcludingTax
()
-
adjustmentFund
lastDay
=
contract
.
getIncomeExcludingTax
()
-
adjustmentFund
-
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
getDayRange
(
contractPart
[
0
],
contractPart
[
1
])),
0
);
-
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
getDayRange
(
contractPart
[
0
],
contractPart
[
1
])),
0
);
}
}
...
@@ -303,10 +361,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -303,10 +361,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
// 合同终止日 或 作废日
// 合同终止日 或 作废日
DateTime
cancelDate
=
new
DateTime
(
contractChange
.
getDs
());
DateTime
cancelDate
=
new
DateTime
(
contractChange
.
getDs
());
/*Long adjustmentFund = (getDayRange(contractPart[0], cancelDate) + 1) * dayShareIncome * (-1);*/
Long
adjustmentFund
=
shareMultiply
(
new
BigDecimal
((
getDayRange
(
contractPart
[
0
],
cancelDate
)
+
1
)
*
-
1
),
dayShareIncome
,
0
);
Long
adjustmentFund
=
shareMultiply
(
new
BigDecimal
((
getDayRange
(
contractPart
[
0
],
cancelDate
)
+
1
)
*
-
1
),
dayShareIncome
,
0
);
DateTime
usedEnd
=
usePart
[
1
].
compareTo
(
cancelDate
)
<=
0
?
usePart
[
1
]
:
cancelDate
;
DateTime
usedEnd
=
usePart
[
1
].
compareTo
(
cancelDate
)
<=
0
?
usePart
[
1
]
:
cancelDate
;
int
daysIncom
=
Days
.
daysBetween
(
usePart
[
0
],
usedEnd
).
getDays
()
+
1
;
int
daysIncom
=
Days
.
daysBetween
(
usePart
[
0
],
usedEnd
).
getDays
()
+
1
;
...
@@ -314,14 +369,9 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -314,14 +369,9 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
contract
.
setIntervalUseDays
(
getDayRange
(
contractPart
[
0
],
usedEnd
)
+
1
);
contract
.
setIntervalUseDays
(
getDayRange
(
contractPart
[
0
],
usedEnd
)
+
1
);
//区间分摊总收入
//区间分摊总收入
/*contract.setIntervaIncomeShare(dayShareIncome * daysIncom);*/
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
daysIncom
),
0
));
contract
.
setIntervaIncomeShare
(
shareMultiply
(
dayShareIncome
,
new
BigDecimal
(
daysIncom
),
0
));
/*boolean fullRange = getDayRange(selected[0], selected[1])
>= Days.daysBetween(contractPart[0], cancelDate).getDays() ? true : false;
if (fullRange) {
contract.setAdjustmentFund(-1 * contract.getIntervaIncomeShare());
} else */
if
(
checkTwoTime
(
selected
[
0
],
cancelDate
)
&&
checkTwoTime
(
cancelDate
,
selected
[
1
]))
{
if
(
checkTwoTime
(
selected
[
0
],
cancelDate
)
&&
checkTwoTime
(
cancelDate
,
selected
[
1
]))
{
contract
.
setAdjustmentFund
(
adjustmentFund
);
contract
.
setAdjustmentFund
(
adjustmentFund
);
}
else
{
}
else
{
...
@@ -353,18 +403,12 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
...
@@ -353,18 +403,12 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
/* Long aa = new BigDecimal(1000 * 100 / 1.06).setScale(2, BigDecimal.ROUND_HALF_UP).longValue();
//2019.7.24-2020.7.23
Long bb = new BigDecimal(1000 / 1.06)
DateTime
[]
middlePoiont
=
new
DateTime
[]{
new
DateTime
(
"2019-12-31"
),
new
DateTime
(
"2020-01-01"
)};
.setScale(2, BigDecimal.ROUND_HALF_UP)
DateTime
[]
middlePoiont2
=
new
DateTime
[]{
new
DateTime
(
"2019-07-24"
),
new
DateTime
(
"2020-07-23"
)};
.multiply(new BigDecimal(100L)).longValue();
System
.
out
.
println
(
Days
.
daysBetween
(
middlePoiont2
[
1
],
middlePoiont2
[
0
]).
getDays
());
System
.
out
.
println
(
Days
.
daysBetween
(
middlePoiont2
[
1
],
middlePoiont
[
0
]).
getDays
());
System.out.println(aa);
System
.
out
.
println
(
Days
.
daysBetween
(
middlePoiont
[
1
],
middlePoiont2
[
0
]).
getDays
());
System.out.println(bb);*/
//252.3890909090909
System
.
out
.
println
(
new
BigDecimal
(
38867.92
*
1.0
/
154
).
doubleValue
());
}
}
...
...
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