Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
long-tern-care-service
Project
Project
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
hubin
long-tern-care-service
Commits
22ef61f1
Commit
22ef61f1
authored
Apr 27, 2022
by
蔡镇泽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
费用结算
parent
71430389
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
673 additions
and
13 deletions
+673
-13
AccountController.java
...om/hungraim/ltc/account/controller/AccountController.java
+20
-3
ChSrvProgramMapper.java
...java/com/hungraim/ltc/account/dao/ChSrvProgramMapper.java
+14
-0
ChSrvProgramSetMapper.java
...a/com/hungraim/ltc/account/dao/ChSrvProgramSetMapper.java
+12
-0
ChSrvTaskDetailMapper.java
...a/com/hungraim/ltc/account/dao/ChSrvTaskDetailMapper.java
+12
-0
ChSrvTaskFinishItemMapper.java
...m/hungraim/ltc/account/dao/ChSrvTaskFinishItemMapper.java
+24
-0
SrvTaskMapper.java
...main/java/com/hungraim/ltc/account/dao/SrvTaskMapper.java
+46
-0
AccountService.java
...java/com/hungraim/ltc/account/service/AccountService.java
+5
-3
AccountServiceImpl.java
...hungraim/ltc/account/service/impl/AccountServiceImpl.java
+211
-7
ExpenseSettlementInfoBo.java
...hungraim/ltc/pojo/vo/account/ExpenseSettlementInfoBo.java
+77
-0
ExpenseSettlementReq.java
...om/hungraim/ltc/pojo/vo/account/ExpenseSettlementReq.java
+25
-0
ExpenseSettlementTotalVo.java
...ungraim/ltc/pojo/vo/account/ExpenseSettlementTotalVo.java
+38
-0
ExpenseSettlementVo.java
...com/hungraim/ltc/pojo/vo/account/ExpenseSettlementVo.java
+105
-0
CfgSrvLevel.java
...core/src/main/java/com/hungraim/ltc/util/CfgSrvLevel.java
+28
-0
DisableLevel.java
...ore/src/main/java/com/hungraim/ltc/util/DisableLevel.java
+28
-0
FndSrvMode.java
...-core/src/main/java/com/hungraim/ltc/util/FndSrvMode.java
+28
-0
No files found.
account/account-service/src/main/java/com/hungraim/ltc/account/controller/AccountController.java
View file @
22ef61f1
...
@@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...
@@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.hungraim.ltc.account.service.AccountService
;
import
com.hungraim.ltc.account.service.AccountService
;
import
com.hungraim.ltc.pojo.entity.account.ChDisabAccounts
;
import
com.hungraim.ltc.pojo.entity.account.ChDisabAccounts
;
import
com.hungraim.ltc.pojo.vo.account.AccountOperVo
;
import
com.hungraim.ltc.pojo.vo.account.*
;
import
com.hungraim.ltc.pojo.vo.account.SrvOrganListReq
;
import
com.hungraim.ltc.pojo.vo.account.SrvOrganListResp
;
import
com.hungraim.ltc.util.Result
;
import
com.hungraim.ltc.util.Result
;
import
com.hungraim.ltc.util.ResultCode
;
import
com.hungraim.ltc.util.ResultCode
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
...
@@ -78,4 +76,23 @@ public class AccountController {
...
@@ -78,4 +76,23 @@ public class AccountController {
}
}
return
Result
.
success
(
accountService
.
getSrvOrganDetail
(
accountsId
));
return
Result
.
success
(
accountService
.
getSrvOrganDetail
(
accountsId
));
}
}
/**
* 费用结算
*
* @return 返回机构结当月算详情
*/
@GetMapping
(
"/expenseSettlement"
)
public
Result
<
List
<
ExpenseSettlementVo
>>
expenseSettlement
(
ExpenseSettlementReq
req
)
{
if
(
null
==
req
.
getSrvOrganId
()
||
null
==
req
.
getAccountsTime
())
{
return
Result
.
failed
(
ResultCode
.
REQUEST_PARAM_ERROR
);
}
if
(
req
.
getPageNum
()
==
null
)
{
req
.
setPageNum
(
1
);
}
if
(
req
.
getPageSize
()
==
null
)
{
req
.
setPageSize
(
10
);
}
return
Result
.
success
(
accountService
.
expenseSettlement
(
req
));
}
}
}
account/account-service/src/main/java/com/hungraim/ltc/account/dao/ChSrvProgramMapper.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
account
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvProgram
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
@Mapper
@Repository
public
interface
ChSrvProgramMapper
extends
BaseMapper
<
ChSrvProgram
>
{
}
\ No newline at end of file
account/account-service/src/main/java/com/hungraim/ltc/account/dao/ChSrvProgramSetMapper.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
account
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvProgramSet
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
@Mapper
@Repository
public
interface
ChSrvProgramSetMapper
extends
BaseMapper
<
ChSrvProgramSet
>
{
}
\ No newline at end of file
account/account-service/src/main/java/com/hungraim/ltc/account/dao/ChSrvTaskDetailMapper.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
account
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvTaskDetail
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
@Mapper
@Repository
public
interface
ChSrvTaskDetailMapper
extends
BaseMapper
<
ChSrvTaskDetail
>
{
}
\ No newline at end of file
account/account-service/src/main/java/com/hungraim/ltc/account/dao/ChSrvTaskFinishItemMapper.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
account
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvTaskFinishItem
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.stereotype.Repository
;
@Mapper
@Repository
public
interface
ChSrvTaskFinishItemMapper
extends
BaseMapper
<
ChSrvTaskFinishItem
>
{
@Select
(
"<script>"
+
"SELECT "
+
" count(*) "
+
//护理机构id
"FROM "
+
" ch_srv_task_detail t1 "
+
" LEFT JOIN CH_SRV_TASK_FINISH_ITEM t2 ON t1.task_detail_id = t2.task_detail_id "
+
"<where> "
+
" t1.srv_organ_id = #{srvTaskId} AND t2.task_finish_item_id not null"
+
"</where></script>"
)
int
selectDetailsFinishCount
(
Integer
srvTaskId
);
}
\ No newline at end of file
account/account-service/src/main/java/com/hungraim/ltc/account/dao/SrvTaskMapper.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
account
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvTask
;
import
com.hungraim.ltc.pojo.vo.account.ExpenseSettlementInfoBo
;
import
com.hungraim.ltc.pojo.vo.account.ExpenseSettlementReq
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.stereotype.Repository
;
@Mapper
@Repository
public
interface
SrvTaskMapper
extends
BaseMapper
<
ChSrvTask
>
{
@Select
(
"<script>"
+
"SELECT "
+
" t1.srv_task_id, "
+
//服务任务id
" t4.program_id, "
+
//服务方案id
" t3.real_name, "
+
//失能人员姓名
" t3.certi_code, "
+
//失能人员身份证号
" t4.srv_mode_id, "
+
//服务方式id
" t5.srv_mode_name, "
+
//服务方式名称
" t2.srv_start_time, "
+
//服务开始时间
" t2.srv_end_time, "
+
//服务结束时间
" t4.srv_organ_id "
+
//护理机构id
" t6.disable_level_id "
+
//失能等级id
" t7.item_id "
+
//服务项目id
" t7.item_times "
+
//服务频次
" t7.planning_frequency "
+
//计划频次
" t8.srv_level_id "
+
//服务等级id
"FROM "
+
" ch_srv_task t1 "
+
" LEFT JOIN ch_srv_task_detail t2 ON t1.srv_task_id = t2.srv_task_id "
+
" LEFT JOIN ch_disable_info t3 ON t1.disab_info_id = t3.disab_info_id "
+
" LEFT JOIN ch_srv_program t4 ON t1.program_id = t4.program_id"
+
" LEFT JOIN ch_fnd_srv_mode t5 ON t4.srv_mode_id = t4.srv_mode_id"
+
" LEFT JOIN ch_apr_report t6 ON t5.task_id = t1.srv_task_id"
+
" LEFT JOIN ch_srv_program_set t7 ON t7.set_id = t4.program_id and t7.is_conf = 1"
+
" LEFT JOIN ch_cfg_srv_item t8 ON t8.item_id = t7.item_id"
+
"<where> "
+
" t4.srv_organ_id = #{req.srvOrganId} AND t4.PROG_STATUS = '1' AND t2.srv_start_time <= #{req.accountsTime} AND t2.srv_end_time >= #{req.accountsTime}"
+
"</where></script>"
)
Page
<
ExpenseSettlementInfoBo
>
getExpenseSettlementInfo
(
Page
<
ExpenseSettlementInfoBo
>
page
,
ExpenseSettlementReq
req
);
}
account/account-service/src/main/java/com/hungraim/ltc/account/service/AccountService.java
View file @
22ef61f1
...
@@ -3,9 +3,9 @@ package com.hungraim.ltc.account.service;
...
@@ -3,9 +3,9 @@ package com.hungraim.ltc.account.service;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.hungraim.ltc.pojo.entity.account.ChDisabAccounts
;
import
com.hungraim.ltc.pojo.entity.account.ChDisabAccounts
;
import
com.hungraim.ltc.pojo.vo.account.
AccountOperVo
;
import
com.hungraim.ltc.pojo.vo.account.
*
;
import
com.hungraim.ltc.pojo.vo.account.SrvOrganListReq
;
import
com.hungraim.ltc.pojo.vo.account.SrvOrganListResp
;
import
java.util.List
;
public
interface
AccountService
extends
IService
<
ChDisabAccounts
>
{
public
interface
AccountService
extends
IService
<
ChDisabAccounts
>
{
...
@@ -17,4 +17,6 @@ public interface AccountService extends IService<ChDisabAccounts> {
...
@@ -17,4 +17,6 @@ public interface AccountService extends IService<ChDisabAccounts> {
Page
<
SrvOrganListResp
>
searchSrvOrganList
(
SrvOrganListReq
srvOrganListReq
);
Page
<
SrvOrganListResp
>
searchSrvOrganList
(
SrvOrganListReq
srvOrganListReq
);
AccountOperVo
getSrvOrganDetail
(
Long
accountsId
);
AccountOperVo
getSrvOrganDetail
(
Long
accountsId
);
List
<
ExpenseSettlementVo
>
expenseSettlement
(
ExpenseSettlementReq
req
);
}
}
account/account-service/src/main/java/com/hungraim/ltc/account/service/impl/AccountServiceImpl.java
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
account
.
service
.
impl
;
package
com
.
hungraim
.
ltc
.
account
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.hungraim.ltc.account.dao.
ChDisabAccountsMapper
;
import
com.hungraim.ltc.account.dao.
*
;
import
com.hungraim.ltc.account.service.AccountService
;
import
com.hungraim.ltc.account.service.AccountService
;
import
com.hungraim.ltc.account.service.BaseAccountService
;
import
com.hungraim.ltc.account.service.BaseAccountService
;
import
com.hungraim.ltc.api.AttachFeignService
;
import
com.hungraim.ltc.api.AttachFeignService
;
import
com.hungraim.ltc.pojo.entity.SysConfig.ChFndAttach
;
import
com.hungraim.ltc.pojo.entity.SysConfig.ChFndAttach
;
import
com.hungraim.ltc.pojo.entity.account.ChDisabAccounts
;
import
com.hungraim.ltc.pojo.entity.account.ChDisabAccounts
;
import
com.hungraim.ltc.pojo.vo.account.AccountOperVo
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvProgramSet
;
import
com.hungraim.ltc.pojo.vo.account.SrvOrganListReq
;
import
com.hungraim.ltc.pojo.entity.serviceManage.ChSrvTaskDetail
;
import
com.hungraim.ltc.pojo.vo.account.SrvOrganListResp
;
import
com.hungraim.ltc.pojo.vo.account.*
;
import
com.hungraim.ltc.util.AttachType
;
import
com.hungraim.ltc.util.*
;
import
com.hungraim.ltc.util.Result
;
import
com.hungraim.ltc.util.ResultCode
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
@Service
@Service
...
@@ -30,6 +35,11 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
...
@@ -30,6 +35,11 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
private
final
AttachFeignService
attachFeignService
;
private
final
AttachFeignService
attachFeignService
;
private
final
BaseAccountService
baseAccountService
;
private
final
BaseAccountService
baseAccountService
;
private
final
ChDisabAccountsMapper
disabAccountsMapper
;
private
final
ChDisabAccountsMapper
disabAccountsMapper
;
private
final
SrvTaskMapper
srvTaskMapper
;
private
final
ChSrvTaskDetailMapper
taskDetailMapper
;
private
final
ChSrvTaskFinishItemMapper
taskFinishItemMapper
;
private
final
ChSrvProgramMapper
programMapper
;
private
final
ChSrvProgramSetMapper
programSetMapper
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -65,4 +75,198 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
...
@@ -65,4 +75,198 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
return
accountOperVo
;
return
accountOperVo
;
}
}
@Override
public
List
<
ExpenseSettlementVo
>
expenseSettlement
(
ExpenseSettlementReq
req
)
{
Page
<
ExpenseSettlementInfoBo
>
page
=
new
Page
<>(
req
.
getPageNum
(),
req
.
getPageSize
());
Page
<
ExpenseSettlementInfoBo
>
expenseSettlementInfo
=
srvTaskMapper
.
getExpenseSettlementInfo
(
page
,
req
);
List
<
ExpenseSettlementVo
>
vos
=
new
ArrayList
<>();
if
(
expenseSettlementInfo
!=
null
&&
expenseSettlementInfo
.
getRecords
()
!=
null
)
{
for
(
ExpenseSettlementInfoBo
bo
:
expenseSettlementInfo
.
getRecords
())
{
ExpenseSettlementVo
vo
=
new
ExpenseSettlementVo
();
BeanUtil
.
copyProperties
(
bo
,
vo
);
//服务开始时间
if
(
bo
.
getSrvStartTime
()
!=
null
)
{
if
(
bo
.
getSrvStartTime
().
getTime
()
>
req
.
getAccountsTime
().
getTime
())
{
vo
.
setSrvStartTime
(
bo
.
getSrvStartTime
());
}
else
{
vo
.
setSrvStartTime
(
req
.
getAccountsTime
());
}
}
//服务结束时间
if
(
bo
.
getSrvEndTime
()
!=
null
)
{
Date
lastDayOfMonth
=
getLastDayOfMonth
(
req
.
getAccountsTime
());
if
(
bo
.
getSrvEndTime
().
getTime
()
>
lastDayOfMonth
.
getTime
())
{
vo
.
setSrvEndTime
(
lastDayOfMonth
);
}
else
{
vo
.
setSrvEndTime
(
bo
.
getSrvEndTime
());
}
}
//有效结算日
int
startDay
=
getDay
(
vo
.
getSrvStartTime
());
int
endDay
=
getDay
(
vo
.
getSrvEndTime
());
vo
.
setEffectiveSettlementDate
(
endDay
-
startDay
+
1
);
//基护费用
Integer
effectiveSettlementDate
=
vo
.
getEffectiveSettlementDate
();
int
costStandardOfFoundationProtection
=
30
;
//基护费用标准(可配置)
BigDecimal
foundation
=
BigDecimal
.
valueOf
(
costStandardOfFoundationProtection
).
multiply
(
BigDecimal
.
valueOf
(
effectiveSettlementDate
));
vo
.
setFoundationProtectionCost
(
foundation
.
doubleValue
());
//基护完成率
Integer
srvTaskId
=
bo
.
getSrvTaskId
();
int
taskDetailsCount
=
taskDetailMapper
.
selectCount
(
new
LambdaQueryWrapper
<
ChSrvTaskDetail
>()
//计划次数
.
eq
(
ChSrvTaskDetail:
:
getSrvTaskId
,
srvTaskId
)
.
ne
(
ChSrvTaskDetail:
:
getStatus
,
3
));
List
<
ChSrvTaskDetail
>
taskDetails
=
taskDetailMapper
.
selectList
(
new
LambdaQueryWrapper
<
ChSrvTaskDetail
>()
.
eq
(
ChSrvTaskDetail:
:
getSrvTaskId
,
srvTaskId
)
.
eq
(
ChSrvTaskDetail:
:
getStatus
,
4
));
int
taskDetailsFinishCount
=
taskDetails
.
size
();
//完成次数
ChSrvProgramSet
chSrvProgramSet
=
programSetMapper
.
selectOne
(
new
LambdaQueryWrapper
<
ChSrvProgramSet
>()
.
eq
(
ChSrvProgramSet:
:
getProgramId
,
bo
.
getProgramId
())
.
eq
(
ChSrvProgramSet:
:
getIsConf
,
'1'
));
BigDecimal
divide
=
BigDecimal
.
valueOf
(
taskDetailsFinishCount
).
divide
(
BigDecimal
.
valueOf
(
taskDetailsCount
),
2
,
BigDecimal
.
ROUND_DOWN
);
BigDecimal
divide1
=
BigDecimal
.
valueOf
(
bo
.
getItemTimes
()).
divide
(
BigDecimal
.
valueOf
(
bo
.
getPlanningFrequency
()),
2
,
BigDecimal
.
ROUND_DOWN
);
if
(
divide
.
doubleValue
()
>
1
)
{
divide
=
BigDecimal
.
valueOf
(
1
);
}
if
(
divide1
.
doubleValue
()
>
1
)
{
divide1
=
BigDecimal
.
valueOf
(
1
);
}
BigDecimal
comp
=
divide
.
multiply
(
divide1
).
setScale
(
4
,
BigDecimal
.
ROUND_DOWN
);
//基护完成率
vo
.
setCompletionRateFoundationProtection
(
comp
.
multiply
(
BigDecimal
.
valueOf
(
100
)).
doubleValue
()
+
"%"
);
//巡护基护完成考核
BigDecimal
patrolAndBasicProtectionCompletedAssessment
=
null
;
//巡护基护完成考核
if
(
FndSrvMode
.
PATROL
.
getCode
().
equals
(
bo
.
getSrvModeId
()))
{
long
serviceTime
=
0
;
//服务时长/毫秒
int
serviceCount
=
0
;
//服务次数
for
(
ChSrvTaskDetail
taskDetail
:
taskDetails
)
{
long
l
=
taskDetail
.
getSrvEndTime
().
getTime
()
-
taskDetail
.
getSrvStartTime
().
getTime
();
serviceTime
+=
l
;
if
(
l
>
30
*
60
*
1000
)
{
serviceCount
++;
}
}
long
serviceTimeM
=
serviceTime
/
(
1000
*
60
*
60
);
//服务时长/小时
boolean
serviceCountK
=
false
;
//服务次数考核
boolean
serviceTimeK
=
false
;
//服务时长考核
if
(
serviceCount
>=
6
)
{
serviceCountK
=
true
;
}
if
(
DisableLevel
.
ONE
.
getCode
().
equals
(
bo
.
getDisableLevelId
()))
{
if
(
serviceTimeM
>=
8
)
{
serviceTimeK
=
true
;
}
}
else
if
(
DisableLevel
.
TWO
.
getCode
().
equals
(
bo
.
getDisableLevelId
()))
{
if
(
serviceTimeM
>=
10
)
{
serviceTimeK
=
true
;
}
}
else
if
(
DisableLevel
.
THREE
.
getCode
().
equals
(
bo
.
getDisableLevelId
()))
{
if
(
serviceTimeM
>=
12
)
{
serviceTimeK
=
true
;
}
}
if
(
serviceCountK
&&
serviceTimeK
)
{
patrolAndBasicProtectionCompletedAssessment
=
BigDecimal
.
valueOf
(
1
);
vo
.
setPatrolAndBasicProtectionCompletedAssessment
(
"100%"
);
}
else
if
(
serviceCountK
||
serviceTimeK
)
{
patrolAndBasicProtectionCompletedAssessment
=
BigDecimal
.
valueOf
(
0.9
);
vo
.
setPatrolAndBasicProtectionCompletedAssessment
(
"90%"
);
}
else
{
patrolAndBasicProtectionCompletedAssessment
=
BigDecimal
.
valueOf
(
0.8
);
vo
.
setPatrolAndBasicProtectionCompletedAssessment
(
"80%"
);
}
}
//基护应拨费用
BigDecimal
foundationProtectionCost
=
BigDecimal
.
valueOf
(
vo
.
getFoundationProtectionCost
());
//基护费用
if
(
FndSrvMode
.
PATROL
.
getCode
().
equals
(
bo
.
getSrvModeId
()))
{
//巡护
BigDecimal
multiply
=
foundationProtectionCost
.
multiply
(
comp
).
multiply
(
patrolAndBasicProtectionCompletedAssessment
).
multiply
(
BigDecimal
.
valueOf
(
0.9
)).
setScale
(
2
,
BigDecimal
.
ROUND_DOWN
);
vo
.
setExpensesPayableFoundationProtection
(
multiply
.
doubleValue
());
}
else
if
(
FndSrvMode
.
HOME_CARE
.
getCode
().
equals
(
bo
.
getSrvModeId
())
||
FndSrvMode
.
HOSPITAL_NURSING
.
getCode
().
equals
(
bo
.
getSrvModeId
()))
{
//家护/院护
BigDecimal
multiply
=
foundationProtectionCost
.
multiply
(
comp
).
multiply
(
BigDecimal
.
valueOf
(
0.9
)).
setScale
(
2
,
BigDecimal
.
ROUND_DOWN
);
vo
.
setExpensesPayableFoundationProtection
(
multiply
.
doubleValue
());
}
//照护费用标准
int
standardCareCost
=
0
;
if
(
CfgSrvLevel
.
ONE
.
getCode
().
equals
(
bo
.
getSrvLevelId
()))
{
//服务等级
standardCareCost
=
25
;
vo
.
setStandardCareCost
(
"25元/人/天"
);
}
else
if
(
CfgSrvLevel
.
TWO
.
getCode
().
equals
(
bo
.
getSrvLevelId
()))
{
standardCareCost
=
35
;
vo
.
setStandardCareCost
(
"35元/人/天"
);
}
else
if
(
CfgSrvLevel
.
THREE
.
getCode
().
equals
(
bo
.
getSrvLevelId
()))
{
standardCareCost
=
45
;
vo
.
setStandardCareCost
(
"45元/人/天"
);
}
//照护费用
BigDecimal
careCosts
=
BigDecimal
.
valueOf
(
standardCareCost
).
multiply
(
BigDecimal
.
valueOf
(
effectiveSettlementDate
));
if
(
FndSrvMode
.
PATROL
.
getCode
().
equals
(
bo
.
getSrvModeId
()))
{
//巡护
if
(
CfgSrvLevel
.
ONE
.
getCode
().
equals
(
bo
.
getSrvLevelId
()))
{
//服务等级
if
(
careCosts
.
intValue
()
>
600
)
{
careCosts
=
BigDecimal
.
valueOf
(
600
);
}
}
else
if
(
CfgSrvLevel
.
TWO
.
getCode
().
equals
(
bo
.
getSrvLevelId
()))
{
if
(
careCosts
.
intValue
()
>
800
)
{
careCosts
=
BigDecimal
.
valueOf
(
800
);
}
}
else
if
(
CfgSrvLevel
.
THREE
.
getCode
().
equals
(
bo
.
getSrvLevelId
()))
{
if
(
careCosts
.
intValue
()
>
1000
)
{
careCosts
=
BigDecimal
.
valueOf
(
1000
);
}
}
}
vo
.
setCareCosts
(
careCosts
.
doubleValue
());
//照护完成率
//巡护照护完成考核
if
(
FndSrvMode
.
PATROL
.
getCode
().
equals
(
bo
.
getSrvModeId
()))
{
//巡护
}
//照护应拨费用
//应拨付总金额
vo
.
setTotalAmountDue
(
BigDecimal
.
valueOf
(
vo
.
getExpensesPayableFoundationProtection
()).
add
(
BigDecimal
.
valueOf
(
vo
.
getCarePayable
())).
doubleValue
());
vos
.
add
(
vo
);
}
//合计
ExpenseSettlementTotalVo
totalVo
=
new
ExpenseSettlementTotalVo
();
BigDecimal
foundationProtectionCost
=
BigDecimal
.
valueOf
(
0
);
totalVo
.
setFoundationProtectionCost
(
foundationProtectionCost
.
doubleValue
());
BigDecimal
expensesPayableFoundationProtection
=
BigDecimal
.
valueOf
(
0
);
totalVo
.
setExpensesPayableFoundationProtection
(
foundationProtectionCost
.
doubleValue
());
BigDecimal
careCosts
=
BigDecimal
.
valueOf
(
0
);
totalVo
.
setCareCosts
(
foundationProtectionCost
.
doubleValue
());
BigDecimal
carePayable
=
BigDecimal
.
valueOf
(
0
);
totalVo
.
setCarePayable
(
foundationProtectionCost
.
doubleValue
());
BigDecimal
totalAmountDue
=
BigDecimal
.
valueOf
(
0
);
totalVo
.
setTotalAmountDue
(
foundationProtectionCost
.
doubleValue
());
for
(
ExpenseSettlementVo
vo
:
vos
)
{
//基护费用
foundationProtectionCost
=
foundationProtectionCost
.
add
(
BigDecimal
.
valueOf
(
vo
.
getFoundationProtectionCost
()));
//基护应拨费用
expensesPayableFoundationProtection
=
expensesPayableFoundationProtection
.
add
(
BigDecimal
.
valueOf
(
vo
.
getExpensesPayableFoundationProtection
()));
//照护费用
careCosts
=
careCosts
.
add
(
BigDecimal
.
valueOf
(
vo
.
getCareCosts
()));
//照护应拨费用
carePayable
=
carePayable
.
add
(
BigDecimal
.
valueOf
(
vo
.
getCarePayable
()));
//应拨付总金额
totalAmountDue
=
totalAmountDue
.
add
(
BigDecimal
.
valueOf
(
vo
.
getTotalAmountDue
()));
}
}
return
null
;
}
//求当月最后一天
private
Date
getLastDayOfMonth
(
Date
date
)
{
Calendar
cale
=
Calendar
.
getInstance
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
cale
.
setTime
(
date
);
cale
.
add
(
Calendar
.
MONTH
,
1
);
cale
.
set
(
Calendar
.
DAY_OF_MONTH
,
0
);
return
cale
.
getTime
();
}
//求年月日中的日
private
int
getDay
(
Date
date
)
{
Calendar
cale
=
Calendar
.
getInstance
();
cale
.
setTime
(
date
);
return
cale
.
get
(
Calendar
.
DAY_OF_WEEK
);
}
}
}
common/common-core/src/main/java/com/hungraim/ltc/pojo/vo/account/ExpenseSettlementInfoBo.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
pojo
.
vo
.
account
;
import
lombok.Data
;
import
java.util.Date
;
/**
*
*/
@Data
public
class
ExpenseSettlementInfoBo
{
/**
* 服务任务id
*/
private
Integer
srvTaskId
;
/**
* 服务方案id
*/
private
Integer
programId
;
/**
* 失能人员姓名
*/
private
String
realName
;
/**
* 失能人员身份证号
*/
private
Long
certiCode
;
/**
* 服务方式id
*/
private
String
srvModeId
;
/**
* 服务方式名称
*/
private
String
srvModeName
;
/**
* 服务开始时间
*/
private
Date
srvStartTime
;
/**
* 服务结束时间
*/
private
Date
srvEndTime
;
/**
* 失能等级id
*/
private
String
disableLevelId
;
/**
* 服务项目id
*/
private
String
itemId
;
/**
* 服务频次
*/
private
Integer
itemTimes
;
/**
* 计划频次
*/
private
Integer
planningFrequency
;
/**
* 服务等级id
*/
private
String
srvLevelId
;
}
common/common-core/src/main/java/com/hungraim/ltc/pojo/vo/account/ExpenseSettlementReq.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
pojo
.
vo
.
account
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.hungraim.ltc.pojo.vo.BaseReq
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
@Data
public
class
ExpenseSettlementReq
extends
BaseReq
{
/**
* 护理机构id
*/
private
Long
srvOrganId
;
/**
* 结算月份
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM"
)
@JsonFormat
(
pattern
=
"yyyy-MM"
,
timezone
=
"GMT+8"
)
private
Date
accountsTime
;
}
common/common-core/src/main/java/com/hungraim/ltc/pojo/vo/account/ExpenseSettlementTotalVo.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
pojo
.
vo
.
account
;
import
lombok.Data
;
@Data
public
class
ExpenseSettlementTotalVo
{
/**
* 基护费用
*/
private
Double
foundationProtectionCost
;
/**
* 基护应拨费用
*/
private
Double
expensesPayableFoundationProtection
;
/**
* 照护费用
*/
private
Double
careCosts
;
/**
* 照护违规扣除//TODO
*/
private
String
careCompletionRate
;
/**
* 照护应拨费用
*/
private
Double
carePayable
;
/**
* 应拨付总金额
*/
private
Double
totalAmountDue
;
}
common/common-core/src/main/java/com/hungraim/ltc/pojo/vo/account/ExpenseSettlementVo.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
pojo
.
vo
.
account
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
ExpenseSettlementVo
{
/**
* 失能人员姓名
*/
private
String
realName
;
/**
* 失能人员身份证号
*/
private
Long
certiCode
;
/**
* 护理等级
*/
private
Long
nursingGrade
;
/**
* 服务方式名称
*/
private
String
srvModeName
;
/**
* 服务开始时间
*/
private
Date
srvStartTime
;
/**
* 服务结束时间
*/
private
Date
srvEndTime
;
/**
* 有效结算日
*/
private
Integer
effectiveSettlementDate
;
/**
* 基护费用标准
*/
private
String
costStandardOfFoundationProtection
;
/**
* 基护费用
*/
private
Double
foundationProtectionCost
;
/**
* 基护完成率
*/
private
String
completionRateFoundationProtection
;
/**
* 巡护基护完成考核
*/
private
String
patrolAndBasicProtectionCompletedAssessment
;
/**
* 基护应拨费用
*/
private
Double
expensesPayableFoundationProtection
;
/**
* 照护费用标准
*/
private
String
standardCareCost
;
/**
* 照护费用
*/
private
Double
careCosts
;
/**
* 照护完成率
*/
private
String
careCompletionRate
;
/**
* 巡护照护完成考核
*/
private
String
patrolCareCompletionAssessment
;
/**
* 照护应拨费用
*/
private
Double
carePayable
;
/**
* 应拨付总金额
*/
private
Double
totalAmountDue
;
/**
* 合计
*/
private
String
total
;
}
common/common-core/src/main/java/com/hungraim/ltc/util/CfgSrvLevel.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
util
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
/**
* 服务等级枚举类
*/
@AllArgsConstructor
@NoArgsConstructor
public
enum
CfgSrvLevel
{
ONE
(
"1"
,
"一级"
),
TWO
(
"2"
,
"二级"
),
THREE
(
"3"
,
"三级"
);
private
String
code
;
private
String
msg
;
public
String
getCode
()
{
return
code
;
}
public
String
getMsg
()
{
return
msg
;
}
}
common/common-core/src/main/java/com/hungraim/ltc/util/DisableLevel.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
util
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
/**
* 失能等级枚举类
*/
@AllArgsConstructor
@NoArgsConstructor
public
enum
DisableLevel
{
ONE
(
"1"
,
"一级"
),
TWO
(
"2"
,
"二级"
),
THREE
(
"3"
,
"三级"
);
private
String
code
;
private
String
msg
;
public
String
getCode
()
{
return
code
;
}
public
String
getMsg
()
{
return
msg
;
}
}
common/common-core/src/main/java/com/hungraim/ltc/util/FndSrvMode.java
0 → 100644
View file @
22ef61f1
package
com
.
hungraim
.
ltc
.
util
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
/**
* 服务方式枚举类
*/
@AllArgsConstructor
@NoArgsConstructor
public
enum
FndSrvMode
{
PATROL
(
"1"
,
"巡护"
),
HOME_CARE
(
"2"
,
"家护"
),
HOSPITAL_NURSING
(
"3"
,
"院护"
);
private
String
code
;
private
String
msg
;
public
String
getCode
()
{
return
code
;
}
public
String
getMsg
()
{
return
msg
;
}
}
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